Tom Lane wrote:
>>If the problem is really that, against the expectations, the dynamic
>>linker picks the implementation in libc.so as opposed to the program, use
>> env LD_DEBUG=all LD_DEBUG_OUTPUT=somefile normal_program args...
>>to see a lot of output on the name resolution process. Search for the
>>symbol you're looking for in this output file.
>
> We may have to go back to Ulrich to decode what the output tells us,
> but it's something to try anyway ...
>
Thanks! I've attached the relevant portions from a Red Hat 8 and a Red
Hat 9 machine. There are two included symbols for the contrast:
- symbol=fft_factor gets resolved correctly to
/usr/local/lib/R/bin/libR.so in both cases
- symbol=re_compile_fastmap is correctly resolved on RH8, and
incorrectly (at least for my needs) on RH9
But it seems that libc.so.6 on both RH8 and RH9 have the symbol
re_compile_fastmap (see snipped line from nm output in attachment), so I
still don't understand why in RH9 the libc symbol is used, and in RH8
the one from libR.
Thanks,
Joe
env LD_DEBUG=all LD_DEBUG_OUTPUT=/home/postgres/dbg.out pg_ctl start
rh8 good:
19097: symbol=fft_factor; lookup in file=postgres: postgres regression [local] SELECT
19097: symbol=fft_factor; lookup in file=/usr/lib/libz.so.1
19097: symbol=fft_factor; lookup in file=/usr/lib/libreadline.so.4
19097: symbol=fft_factor; lookup in file=/lib/libtermcap.so.2
19097: symbol=fft_factor; lookup in file=/lib/libcrypt.so.1
19097: symbol=fft_factor; lookup in file=/lib/libresolv.so.2
19097: symbol=fft_factor; lookup in file=/lib/libnsl.so.1
19097: symbol=fft_factor; lookup in file=/lib/libdl.so.2
19097: symbol=fft_factor; lookup in file=/lib/i686/libm.so.6
19097: symbol=fft_factor; lookup in file=/lib/i686/libc.so.6
19097: symbol=fft_factor; lookup in file=/lib/ld-linux.so.2
19097: symbol=fft_factor; lookup in file=/usr/local/pgsql/lib/plr.so
19097: symbol=fft_factor; lookup in file=/usr/local/lib/R/bin/libR.so
19097: binding file /usr/local/lib/R/bin/libR.so to /usr/local/lib/R/bin/libR.so: normal symbol `fft_factor'
19097: symbol=re_compile_fastmap; lookup in file=postgres: postgres regression [local] SELECT
19097: symbol=re_compile_fastmap; lookup in file=/usr/lib/libz.so.1
19097: symbol=re_compile_fastmap; lookup in file=/usr/lib/libreadline.so.4
19097: symbol=re_compile_fastmap; lookup in file=/lib/libtermcap.so.2
19097: symbol=re_compile_fastmap; lookup in file=/lib/libcrypt.so.1
19097: symbol=re_compile_fastmap; lookup in file=/lib/libresolv.so.2
19097: symbol=re_compile_fastmap; lookup in file=/lib/libnsl.so.1
19097: symbol=re_compile_fastmap; lookup in file=/lib/libdl.so.2
19097: symbol=re_compile_fastmap; lookup in file=/lib/i686/libm.so.6
19097: symbol=re_compile_fastmap; lookup in file=/lib/i686/libc.so.6
19097: symbol=re_compile_fastmap; lookup in file=/lib/ld-linux.so.2
19097: symbol=re_compile_fastmap; lookup in file=/usr/local/pgsql/lib/plr.so
19097: symbol=re_compile_fastmap; lookup in file=/usr/local/lib/R/bin/libR.so
19097: binding file /usr/local/lib/R/bin/libR.so to /usr/local/lib/R/bin/libR.so: normal symbol
`re_compile_fastmap'
nm /lib/i686/libc.so.6
000b7dc0 W re_compile_fastmap
rh9 bad:
2074: symbol=fft_factor; lookup in file=postgres: postgres regression [local] SELECT
2074: symbol=fft_factor; lookup in file=/usr/lib/libz.so.1
2074: symbol=fft_factor; lookup in file=/usr/lib/libreadline.so.4
2074: symbol=fft_factor; lookup in file=/lib/libtermcap.so.2
2074: symbol=fft_factor; lookup in file=/lib/libcrypt.so.1
2074: symbol=fft_factor; lookup in file=/lib/libresolv.so.2
2074: symbol=fft_factor; lookup in file=/lib/libnsl.so.1
2074: symbol=fft_factor; lookup in file=/lib/libdl.so.2
2074: symbol=fft_factor; lookup in file=/lib/tls/libm.so.6
2074: symbol=fft_factor; lookup in file=/lib/tls/libc.so.6
2074: symbol=fft_factor; lookup in file=/lib/ld-linux.so.2
2074: symbol=fft_factor; lookup in file=/usr/lib/postgresql/plr.so
2074: symbol=fft_factor; lookup in file=/usr/local/lib/R/bin/libR.so
2074: binding file /usr/local/lib/R/bin/libR.so to /usr/local/lib/R/bin/libR.so: normal symbol `fft_factor'
2074: symbol=re_compile_fastmap; lookup in file=postgres: postgres regression [local] SELECT
2074: symbol=re_compile_fastmap; lookup in file=/usr/lib/libz.so.1
2074: symbol=re_compile_fastmap; lookup in file=/usr/lib/libreadline.so.4
2074: symbol=re_compile_fastmap; lookup in file=/lib/libtermcap.so.2
2074: symbol=re_compile_fastmap; lookup in file=/lib/libcrypt.so.1
2074: symbol=re_compile_fastmap; lookup in file=/lib/libresolv.so.2
2074: symbol=re_compile_fastmap; lookup in file=/lib/libnsl.so.1
2074: symbol=re_compile_fastmap; lookup in file=/lib/libdl.so.2
2074: symbol=re_compile_fastmap; lookup in file=/lib/tls/libm.so.6
2074: symbol=re_compile_fastmap; lookup in file=/lib/tls/libc.so.6
2074: binding file /usr/local/lib/R/bin/libR.so to /lib/tls/libc.so.6: normal symbol `re_compile_fastmap'
nm /lib/tls/libc.so.6
420b6450 W re_compile_fastmap