Consultor Eletrônico



Kbase P144535: Warning when compiling application with g++ that uses OpenEdge ODBC drivers on Linux
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   17/04/2009
Status: Unverified

SYMPTOM(s):

Warning when compiling application with g++ that uses OpenEdge ODBC drivers on Linux

/usr/bin/ld: warning: libstdc++.so.5, needed by ../lib/libodbc.so, may conflict with libstdc++.so.6

Executable works as expected

Warning does not occur when compiling with cc or gcc

FACT(s) (Environment):

ldd against $DLC/odbc/lib/libodbc.so shows:

linux-gate.so.1 => (0xffffe000)
libpthread.so.0 => /lib/tls/libpthread.so.0 (0xf7ec4000)
librt.so.1 => /lib/tls/librt.so.1 (0xf7eb0000)
libodbcinst.so => not found
libpgicu23.so => not found
libdl.so.2 => /lib/libdl.so.2 (0xf7eac000)
libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0xf7df2000)
libm.so.6 => /lib/tls/libm.so.6 (0xf7dcf000)
libc.so.6 => /lib/tls/libc.so.6 (0xf7ca4000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xf7c9c000)
/lib/ld-linux.so.2 (0x56555000)
ldd against executable (demoodbc) created using gcc:

linux-gate.so.1 => (0xffffe000)
libodbc.so =>
as01/oe/linuxx64/v101C03/dlc/odbc/lib/libodbc.so (0xf7ef9000)
libodbcinst.so =>
as01/oe/linuxx64/v101C03/dlc/odbc/lib/libodbcinst.so (0xf7e4d000)
libc.so.6 => /lib/tls/libc.so.6 (0x005ed000)
libpthread.so.0 => /lib/tls/libpthread.so.0 (0x0071a000)
librt.so.1 => /lib/tls/librt.so.1 (0xf7e16000)
libpgicu23.so =>
as01/oe/linuxx64/v101C03/dlc/odbc/lib/libpgicu23.so (0xf731b000)
libdl.so.2 => /lib/libdl.so.2 (0x0072e000)
libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0xf7261000)
libm.so.6 => /lib/tls/libm.so.6 (0x00734000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00ab3000)
/lib/ld-linux.so.2 (0x005d4000)
libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++-libc6.2-2.so.3 (0xf721c000)
ldd against executable (demoodbc) created using g++:

linux-gate.so.1 => (0xffffe000)
libodbc.so => /usr/lib/libodbc.so (0x00b22000)
libodbcinst.so => not found
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x009b1000)
libm.so.6 => /lib/tls/libm.so.6 (0x00734000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00ab3000)
libc.so.6 => /lib/tls/libc.so.6 (0x005ed000)
libdl.so.2 => /lib/libdl.so.2 (0x0072e000)
libpthread.so.0 => /lib/tls/libpthread.so.0 (0x0071a000)
/lib/ld-linux.so.2 (0x005d4000)
OpenEdge 10.1C
OpenEdge 10.2A
Red Hat Linux

CAUSE:

g++ compiler uses a later version of the libstdc++.so.* library than libodbc.so expects

FIX:

The warning is just that; a warning. The executable should still work as expected but additional QA is recommended.
Alternatively compile with cc or gcc if possible.