Date: Wed, 23 Apr 1997 11:53:21 +0930 (CST) From: Michael Smith <msmith@atrad.adelaide.edu.au> To: terry@lambert.org (Terry Lambert) Cc: msmith@atrad.adelaide.edu.au, rssh@cki.ipri.kiev.ua, freebsd-hackers@FreeBSD.org Subject: Re: Dynamic linking libraries [Q] Message-ID: <199704230223.LAA18646@genesis.atrad.adelaide.edu.au> In-Reply-To: <199704222058.NAA27156@phaeton.artisoft.com> from Terry Lambert at "Apr 22, 97 01:58:15 pm"
next in thread | previous in thread | raw e-mail | index | archive | help
Terry Lambert stands accused of saying: > > > > If you are referring to interprocess communication using static > > variables in a DLL, I think people here might be very ill. 8) > > I believe what he is referring to is that the MS executables put the > library-specific data segment into the DLL rather than statically > linking it with the program, as BSD does. Um, you are saying that if I link against a shared library, the .data segment from that library is linked into my executable at compile time? I honestly cannot believe that this is the case. eg. : cain:~/work/foo>cat testprog.c #include <stdio.h> #include <errno.h> main() { printf("%s\n", sys_errlist[E2BIG]); } cain:~/work/foo>./testprog Argument list too long cain:~/work/foo>strings -n 8 testprog /usr/libexec/ld.so Couldn't open Failure reading ld.so Bad magic: ld.so Cannot map ld.so (text) Cannot map ld.so (data) Cannot map ld.so (bss) ld.so failed Service unavailable __DYNAMIC __exit_dummy_decl _dlclose _dlerror ___do_global_dtors ___DTOR_LIST__ ___CTOR_LIST__ ___do_global_ctors ___progname _sys_errlist __exit_dummy_ref _environ I certainly don't see the static data from libc there. > The biggest example in FreeBSD's sordid static data history is the > change in the handling of sys_errlist[], which might have been > entirely opaque between libc.so revisions, assuing the program itself > did not reference it (a bogus thing for a program to do anyway). > > If that were the case, a program which pulled the data in from the > shared library instead of pulling it into the program image at link > time would have continued to function. Instead, the entire FreeBSD > world blew up. I think you must be thinking of something else. > Terry Lambert -- ]] Mike Smith, Software Engineer msmith@gsoft.com.au [[ ]] Genesis Software genesis@gsoft.com.au [[ ]] High-speed data acquisition and (GSM mobile) 0411-222-496 [[ ]] realtime instrument control. (ph) +61-8-8267-3493 [[ ]] Unix hardware collector. "Where are your PEZ?" The Tick [[
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199704230223.LAA18646>