c++/7234: Link Problem, GCC 3.1 on AIX 4.3.3

Roger van Valen RvanValen@seagull.nl
Wed Jan 22 10:51:00 GMT 2003


http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=7234

Hello,

I saw this problem report 7234 on g++ in the GNATS database, and I am experiencing the same problem.
The problem report is closed with a 'works as designed', but I can not imagine that this is a desired effect.

We have many libraries containing many objects, and some of our binaries only need a small part of it.

I did try some additional scenarios, with the example code from the problem report.
Also running on AIX 4.3.3.0-10 and having VisualAge C++ 6.0 installed.
And using gcc 3.2.1.

Scenario 1 - Compiling with g++ and invoking the linker with g++
g++ -Wall -c -o fct1.o fct1.cc
g++ -Wall -c -o fct2.o fct2.cc
g++ -Wall -c -o main.o main.cc
ar -rv libTst.a fct1.o fct2.o
g++ -Wall -o main main.o libTst.a

Results in:
r - fct1.o
r - fct2.o
ld: 0711-317 ERROR: Undefined symbol: .fct3()
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
collect2: ld returned 8 exit status


Scenario 2 - compiling with xlC (the VisualAge compiler)
xlC -c -o fct1.o fct1.cc
xlC -c -o fct2.o fct2.cc
xlC -c -o main.o main.cc
ar -rv libTst.a fct1.o fct2.o
xlC -v -o main main.o libTst.a

results in:
r - fct1.o
r - fct2.o
exec: /bin/ld(ld,-b32,/lib/crt0.o,-bpT:0x10000000,-bpD:0x20000000,-omain,main.o,libTst.a,-L/usr/lpp/xlopt,-lxlopt,-L/usr/vacpp/lib,-lC,-lm,-lc,-bnobind,NULL)  >/tmp/xlcLDbsxEqf
exec: /usr/vacpp/exe/munch(munch,-X,32,-b,-,-o,/tmp/xlcMCa9xEqd.c,-t,/tmp/xlcMTbsxEqe,NULL) </tmp/xlcLDbsxEqf
unlink: /tmp/xlcLDbsxEqf
exec: /bin/ld(ld,-b32,/lib/crt0.o,-bpT:0x10000000,-bpD:0x20000000,-omain,main.o,libTst.a,-L/usr/lpp/xlopt,-lxlopt,-L/usr/vacpp/lib,-lC,-lm,-lc,NULL)  |
exec: /usr/vacpp/bin/c++filt(c++filt,-S,NULL) |
exec: /bin/sed(sed,/317.*::virtual-fn-table-ptr$/ s/^\(.*: \)*{*\([^}]*\)\(}*.*\)::virtual-fn-table-ptr$/\1Virtual table for class "\2": first non-inline virtual function in "\2" is not defined./,NULL) 
unlink: /tmp/xlcW0auxEqa
unlink: /tmp/xlcW1auxEqb
unlink: /tmp/xlcW2auxEqc
unlink: /tmp/xlcMCa9xEqd.c
unlink: /tmp/xlcMCa9xEqd.o
unlink: /tmp/xlcMTbsxEqe
- and a linked binary.


Scenario 3 - compiling with g++ and invoking the linker using the the VisualAge compiler:
g++ -Wall -c -o fct1.o fct1.cc
g++ -Wall -c -o fct2.o fct2.cc
g++ -Wall -c -o main.o main.cc
ar -rv libTst.a fct1.o fct2.o
xlC -o main main.o libTst.a

results in:
r - fct1.o
r - fct2.o
- and a linked binary.


It looks like g++ doesn't invoke the system linker with the correct options.
I tried passing the -Wl,-bgc flag (for garbage collection in ld), but this did not help.
Using a -v and -Wl,-v in the g++ gives the following results (scenario 1):

# g++ -Wall -v -Wl,-v -o main main.o libTst.a
Reading specs from /usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.2.0/3.2.1/specs
Configured with: ../gcc-3.2.1/configure --disable-nls
Thread model: aix
gcc version 3.2.1
 /usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.2.0/3.2.1/collect2 -bpT:0x10000000 -bpD:0x20000000 -btextro -bnodelcsect -o main /lib/crt0.o -L/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.2.0/3.2.1 -L/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.2.0/3.2.1/../../.. -v main.o libTst.a -lstdc++ -lm -lgcc_s /usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.2.0/3.2.1/libgcc.a -lc -lgcc_s /usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.2.0/3.2.1/libgcc.a
collect2 version 3.2.1
/usr/local/bin/g++ -x c -c -o /tmp//ccSjBf7b.o -fno-exceptions -w /tmp//ccByTprb.c
/usr/bin/ld -bpT:0x10000000 -bpD:0x20000000 -btextro -bnodelcsect -o main /lib/crt0.o /tmp//ccSjBf7b.o -L/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.2.0/3.2.1 -L/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.2.0/3.2.1/../../.. -v main.o libTst.a -lstdc++ -lm -lgcc_s /usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.2.0/3.2.1/libgcc.a -lc -lgcc_s /usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.2.0/3.2.1/libgcc.a -binitfini:_GLOBAL__FI_main:_GLOBAL__FD_main> 
ld: 0711-219 WARNING: Archive member /usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.2.0/3.2.1/../../../libstdc++.a[libstdc++.so.4]
        The member is being ignored because the F_LOADONLY flag is set.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[acos_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[acosh_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[asin_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[asinh_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[atan_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[atan2_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[atanh_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[cabs_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[cbrt_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[class_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[copysign_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[cos_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[cosh_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[drem_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[erf_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[exp_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[exp__E_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[finite_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[floor_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[isnan_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[lgamma_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[ilogb_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[j0_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[j1_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[jn_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[log_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[log10_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[log1p_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[logb_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[log__L_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[nextaft_64.o]:> 
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[pow_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[scalb_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[sin_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[sinh_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[sqrt_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[tan_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[tanh_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[tantab_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[unord_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[acosF_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[asinF_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[atan2F_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[atanF_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[cosF_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[coshF_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[erfF_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[expF_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[floorF_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[lgammaF_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[log10F_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[logF_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[powF_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[sinF_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[sinhF_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[sqrtF_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[tanF_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[tanhF_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[rsqrt_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[rsqrtF_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[__set_errno128_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[sqrt_raise_xcp_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[_class_64.o]:> 
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[dtoi_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[guesses_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[_q_treducex_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[_qacos_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[_qasin_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[_qatan_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[_qcosh_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[_qexp_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[_qlog_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[_qpow_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[_qsincos_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[_qsinh_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[_qsqrt_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[_qtan_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[_qtanh_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[_q_a6_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[_q_d6_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[_q_m6_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[_qgamma_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[_qerf_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[expm1_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[m_tables_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[ceill_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[fabsl_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[floorl_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libm.a[fmodl_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[frexp_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[itrunc_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[ldexp_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[modf_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[logb_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[scalb_64.o]:> 
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[finite_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[uitrunc_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[_itrunc_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[_uitrunc_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[fstab_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[getttyent_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[getttynam_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[fill_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[strcat_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[strcpy_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[strcmp_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[strncat_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[strncpy_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[__set_errno128_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[move_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[moveeq_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[_qint_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[_qitrunc_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[_qnint_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[_setflm_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[_xlqadd_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[_xlqdiv_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[_xlqmul_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[_xlqsub_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[fsavres_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[longjmp_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[maxi64_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[mini64_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[multi64_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[compi64_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[compu64_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[llabs_64.o]:> 
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[_quitrunc_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[gsavres_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[clc_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[ptrgl_64_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[shr_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[aio_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[pse_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[dl_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-735 WARNING: Archive member /usr/lib/libc.a[pty_64.o]:
        XCOFF64 members are ignored in 32-bit mode.
ld: 0711-224 WARNING: Duplicate symbol: _GLOBAL__F___divdi3
ld: 0711-224 WARNING: Duplicate symbol: _GLOBAL__F___moddi3
ld: 0711-224 WARNING: Duplicate symbol: _GLOBAL__F___udivdi3
ld: 0711-224 WARNING: Duplicate symbol: _GLOBAL__F___umoddi3
ld: 0711-224 WARNING: Duplicate symbol: _GLOBAL__F___udiv_w_sdiv
ld: 0711-224 WARNING: Duplicate symbol: _GLOBAL__F___udivmoddi4
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
ld: 0711-323 WARNING: Storage-mapping class of symbol errno
        changed from XMC_UA to XMC_RW because of references.



To us it is very unconvenient that the linker also tries to resolve
externals from objects that are not used from the application.

Is there a way (or a compiler flag) to make the linking work?

The linker option -berok (-Wl,-berok) helps creating a working binary.
The option creates a binary regardless of any errors as unresolved externals.
But this is of course not as all a real solution, it may give very
unpredictable results if there is a required external not resolved.


Regards,
Roger van Valen
Software Engineer
<mailto: RvanValen@seagull.nl>

SEAGULL BUSINESS SOFTWARE B.V.
Korte Parallelweg 1, 3311 JN  Dordrecht, The Netherlands
Tel.   +31 78 6322800, Fax  +31 78 6138134

http://www.seagullsw.com/



More information about the Gcc-bugs mailing list