Subject: Re: Enhancing sysctl support in ld.elf_so
To: None <tech-userlevel@netbsd.org>
From: Quentin Garnier <netbsd@quatriemek.com>
List: tech-userlevel
Date: 06/18/2004 06:21:11
This is a multi-part message in MIME format.
--Multipart=_Fri__18_Jun_2004_06_21_11_+0200_zu_3Xk=CFrXEwCcV
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Le Fri, 18 Jun 2004 02:20:46 GMT
Christos Zoulas a ecrit :
> In article <20040618004539.1f34c2f5.cube@NetBSD.org>,
> Quentin Garnier <cube@NetBSD.org> wrote:
> >-=-=-=-=-=-
> >-=-=-=-=-=-
> >
> >Hi,
> >
> >I made a patch to make ld.elf_so use the new sysctl API instead of the
> >limited functionality it has now.
> >
> >It's handy, but adds 12k to ld.elf_so.
> >
>
> I don't think you can just do this, because the getmibinfo() function
> uses static globals and other functions non necessarily
> available/functional at dynamic link time. I could be wrong.
Well, it works (arguably only tested on my amd64 in compat_netbsd32 mode).
Here's the diff in the symbol table. Is there anything I should worry
about in it?
--
Quentin Garnier - cube@cubidou.net - cube@NetBSD.org
"Feels like I'm fiddling while Rome is burning down.
Should I lay my fiddle down and take a rifle from the ground ?"
Leigh Nash/Sixpence None The Richer, Paralyzed, Divine Discontents, 2002.
--Multipart=_Fri__18_Jun_2004_06_21_11_+0200_zu_3Xk=CFrXEwCcV
Content-Type: text/plain;
name="syms.diff"
Content-Disposition: attachment;
filename="syms.diff"
Content-Transfer-Encoding: 7bit
--- syms2 2004-06-18 06:05:31.000000000 +0200
+++ syms 2004-06-18 06:05:35.000000000 +0200
@@ -34,14 +34,17 @@
t .L8
T .rtld_start
r WS
+R _C_ctype_
A _DYNAMIC
A _GLOBAL_OFFSET_TABLE_
+T ___learn_tree
W ___sigprocmask14
A __bss_start
T __cerror
B __cleanup
T __cxa_atexit
T __cxa_finalize
+T __divdi3
D __environ_lock
T __errno
T __findenv
@@ -49,6 +52,7 @@
t __i686.get_pc_thunk.bx
t __i686.get_pc_thunk.cx
D __isthreaded
+W __learn_tree
W __libc_cond_broadcast
T __libc_cond_catchall_stub
W __libc_cond_destroy
@@ -105,7 +109,9 @@
T __libc_thr_sigsetmask_stub
W __libc_thr_yield
T __libc_thr_yield_stub
+T __moddi3
B __progname
+T __qdivrem
W __sigaction14
T __sigaction_sigtramp
B __sigintr
@@ -117,6 +123,7 @@
T __syscall
T __sysctl
W _close
+D _ctype_
A _edata
A _end
T _exit
@@ -185,6 +192,8 @@
B _rtld_xforms
T _signal
T _strdup
+T _strlcat
+T _strlcpy
T _strsep
T _sys___sigprocmask14
T _sys_close
@@ -192,14 +201,13 @@
T _sys_open
T _sys_write
T _sysctl
+T _sysctlgetmibinfo
W _write
T abort
T atexit
b buf.0
b buf.0
W close
-d ctl_machdep
-d ctl_toplvl
T dladdr
T dlclose
T dlerror
@@ -218,7 +226,6 @@
T getpid
T getuid
W kill
-D lists
T malloc
T memcpy
T memset
@@ -234,21 +241,25 @@
b pagepool_start
b pagesz
t protflags
+T qsort
T realloc
D realloc_srchlen
-D secondlevel
W signal
T strchr
T strcmp
T strcpy
W strdup
+W strlcat
+W strlcpy
T strlen
T strncmp
T strncpy
+T strpbrk
T strrchr
W strsep
+T strtoq
W sysctl
-D toplevel
+W sysctlgetmibinfo
W write
T xcalloc
T xerr
--Multipart=_Fri__18_Jun_2004_06_21_11_+0200_zu_3Xk=CFrXEwCcV--