In <9303181035 .
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 libc.so for while now. I just installed the libresolv.a objs
> in libc.so 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
> This must be due to something obvious I am doing wrong. The patched libc.so
> 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:
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...