This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Link Problems with gcc/g++ 3.1 on AIX 4.3.3
- From: Frank dot Seehase at pdv-FS dot de
- To: gcc-help at gcc dot gnu dot org
- Date: Mon, 22 Jul 2002 14:24:19 +0200
- Subject: Link Problems with gcc/g++ 3.1 on AIX 4.3.3
Hi, I got a problem:
When linking an executable, not referenced objects
from libraries are pulled in, maybe due to static
objects initialization code, even if there is no C++ code.
The garbarge collection of the AIX Linker seem to fail.
If the code is compiled as .c (not .cc) files with gcc
(not g++) there is no problem.
AIX 4.3.3 ML 10
Configured with: ../configure --prefix=/tools/pkg/gcc/3.1 --disable-threads
Thread model: aix
> g++ -v
Reading specs from
/tools/pkg/gcc/3.1/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/3.1/specs
Configured with: ../configure --prefix=/tools/pkg/gcc/3.1 --disable-threads
Thread model: aix
gcc version 3.1
> ar -V
GNU ar 2.12.1
Example follows. The symbol fct3 is missing even fct2 is unused.
> 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
or
> g++ -Wall -o main main.o -L. -lTst
The sources:
/* ---------------------------------- */
/* --- fct2.cc --- */
void fct3( void );
void fct2( void )
{
fct3( );
}
/* --- fct1.cc --- */
void fct1( void )
{
}
/* --- main.cc --- */
void fct1( void );
int main( void )
{
fct1( );
return 0;
}
/* ---------------------------------- */
Whats wrong?
Any idea?
Thanks, Frank