From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24754 invoked by alias); 22 Jan 2003 10:46:02 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 24720 invoked by uid 71); 22 Jan 2003 10:46:01 -0000 Date: Wed, 22 Jan 2003 10:46:00 -0000 Message-ID: <20030122104601.24719.qmail@sources.redhat.com> To: dje@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: "Roger van Valen" Subject: Re: c++/7234: Link Problem, GCC 3.1 on AIX 4.3.3 Reply-To: "Roger van Valen" X-SW-Source: 2003-01/txt/msg01192.txt.bz2 List-Id: The following reply was made to PR c++/7234; it has been noted by GNATS. From: "Roger van Valen" To: , , , , Cc: Subject: Re: c++/7234: Link Problem, GCC 3.1 on AIX 4.3.3 Date: Wed, 22 Jan 2003 11:36:27 +0100 Re: c++/7234: Link Problem, GCC 3.1 on AIX 4.3.3

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=3Dvie= w%20audit-trail&database=3Dgcc&pr=3D7234

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/xlcMT= bsxEqe,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)&nbs= p; |

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/