On Thu, Oct 8, 2009 at 3:40 PM, Garrett D'Amore <gdamore at sun.com> wrote: > Okay, corrected I stand. ?Although I *suspect* this problem could be > corrected too. ?The library is coming in via the libc, not via the > application pulling it in directly. ?(So if the relevant 4lib libraries were > compiled to use normal libc, or got the important bits of libucb linked in > directly, then wouldn't that resolve the main concern here?)
Well, it would split the /usr/ucblib issue from the SunOS 4 binary compatibility issue. Which would at least clarify the aim of this case. You would then be happy to keep the binary compatibility for SunOS 4 in, while breaking compatibility for SunOS 5.x apps? However, investigations on the systems I have access to indicates that the problem is actually more widespread than I initially imagined. I am seeing use of /usr/ucblib/libtermcap.so.1 and /usr/ucblib/libucb.so.1 on x86, and given that this location has only ever seen Solaris 10 on x86 that must have been due to software built recently. (Not by myself, either, so I may have to track it down.) On sparc, I can see usage of all the libraries in /usr/ucblib that isn't due to binary compatibility. (More recent than /usr/4lib, in other words.) > Peter Tribble wrote: >> >> On Thu, Oct 8, 2009 at 3:14 PM, Garrett D'Amore <gdamore at sun.com> wrote: >> >>> >>> Actually, looking at the code, I don't see how /usr/ucblib is used by 4.x >>> *binaries*. ?I.e. if you have a SunOS 4.x binary, it looks like you get >>> the >>> libraries in /usr/4lib, using the a.out exec module. ?I don't think you >>> wind >>> up using any of the ELF stuff in /usr/ucblib. >>> >> >> % ldd /usr/4lib/libc.so.1.9 >> ? ? ? ?libucb.so.1 => ? /usr/ucblib/libucb.so.1 >> ? ? ? ?libc.so.1 => ? ? /lib/libc.so.1 >> ? ? ? ?libnsl.so.1 => ? /lib/libnsl.so.1 >> ? ? ? ?libsocket.so.1 => ? ? ? ?/lib/libsocket.so.1 >> ? ? ? ?libelf.so.1 => ? /lib/libelf.so.1 >> ? ? ? ?libmp.so.2 => ? ?/lib/libmp.so.2 >> ? ? ? ?libmd.so.1 => ? ?/lib/libmd.so.1 >> ? ? ? ?libscf.so.1 => ? /lib/libscf.so.1 >> ? ? ? ?libdoor.so.1 => ?/lib/libdoor.so.1 >> ? ? ? ?libuutil.so.1 => ? ? ? ? /lib/libuutil.so.1 >> ? ? ? ?libgen.so.1 => ? /lib/libgen.so.1 >> ? ? ? ?libm.so.2 => ? ? /lib/libm.so.2 >> ? ? ? ?/platform/SUNW,T5140/lib/libc_psr.so.1 >> ? ? ? ?/platform/SUNW,T5140/lib/libmd_psr.so.1 >> >> % dump -Lv /usr/4lib/libc.so.1.9 >> >> /usr/4lib/libc.so.1.9: >> >> ?**** DYNAMIC SECTION INFORMATION **** >> .dynamic: >> [INDEX] Tag ? ? ? ? Value >> [1] ? ? NEEDED ? ? ? ? ?libucb.so.1 >> [2] ? ? NEEDED ? ? ? ? ?libc.so.1 >> [3] ? ? NEEDED ? ? ? ? ?libnsl.so.1 >> [4] ? ? NEEDED ? ? ? ? ?libsocket.so.1 >> [5] ? ? INIT ? ? ? ? ? ?0x42f7c >> [6] ? ? FINI ? ? ? ? ? ?0x42f90 >> [7] ? ? SONAME ? ? ? ? ?libc.so.1.9 >> [8] ? ? RUNPATH ? ? ? ? /usr/ucblib >> [9] ? ? RPATH ? ? ? ? ? /usr/ucblib >> ... >> >> It's definitely pulling libucb in. >> >> > > -- -Peter Tribble http://www.petertribble.co.uk/ - http://ptribble.blogspot.com/