Great Circle Associates Firewalls
(March 1993)

Indexed By Date: [Previous] [Next] Indexed By Thread: [Previous] [Next]

Subject: Re: DNS/libresolv/4.1.3/dlopen ld complaints
From: sten @ ergon . ch (Sten Gunterberg)
Date: Fri, 19 Mar 93 09:34:02 +0100
To: firewalls @ GreatCircle . COM

In <9303181035 .
 AA00268 @
 tardis> Scott M. Hinnrichs writes:
> Well, this may not *really* be a firewall problem, but I am getting this
> problem building code for my firewall.  I haven't lived under a DNS
> patched for while now.  I just installed the libresolv.a objs
> in and now I am getting complaints from ld when making source:
> cc -O -DDEBUG dig.c -L`pwd` -lresolv list.o -o dig
> ld: Undefined symbol
>    _dlopen
>    _dlclose
>    _dlsym
>    __mbstowcs_xccs
>    __mbtowc_xccs
>    __wcstombs_xccs
>    __wctomb_xccs
> This must be due to something obvious I am doing wrong.  The patched
> is working fine and the binary ld creates works too!  But, many makefiles
> won't do a build even when using make -k, and it is a real pain... anyone
> seen this already??

Same problem I ran into last week. This is how I "solved" it:

The README in /usr/lib/shlib.etc tells you in point 3 to rename the files
rpc_dtablesize. and rpc_commondata. because they have lost their .o
extension due to the *stupid* 15-character name length limit of ar (argh!).
But apparently another file xccs.multibyte. -- new to 4.1.3 as far as I can
see -- also needs this treatment, which README forgets to mention. That was
my first try. This stops ld from complaining about the undefined symbols
__mb* and __wc* when linking, but the _dl* undefs remain.

Then I found out that apparently the multi-byte and wide character routines
do dynamic loading (dl*), i.e. they reference the dl* routines, which are not
part of libc, but in libdl.a. Because I certainly don't need the multi-byte
stuff on my firewall, I removed all *.o files having to do with that:

    (in /usr/lib/shlib.etc/tmp)
    mkdir REMOVED
    mv mblib.o mbstowcs.o mbtowc.o wcstombs.o wctomb.o REMOVED
    mv xccs.multibyte. REMOVED
(None of these modules are mentioned in /usr/lib/shlib.etc/lorder-sparc, so
I figure you don't have to adjust it)

Then I proceeded with the rest of the instructions in README (points 4-9)
and everything works! What happens if you try to use one of the multi-byte
handling functions? Not a clue. I don't care for the moment.

Hope this helps -- I think everybody configuring DNS w/o NIS on 4.1.3 will
run into this problem...

--- Sten

Indexed By Date Previous: Re: Packet filtering and FTP
From: "David I. Dalva" <dave @ TIS . COM>
Next: Re: Firewalls and NFS
From: Bill Wohler <wohler @ hw1175 . sap-ag . de>
Indexed By Thread Previous: Re: DNS/libresolv/4.1.3/dlopen ld complaints
From: Scott M. Hinnrichs <smh @ netserv . com>
Next: Re: proxy software? itelnet/iftp? packet screens? X?
From: Rens Troost <rens @ lorax . shearson . com>

Search Internet Search