Link Problems with gcc/g++ 3.1 on AIX 4.3.3

Frank.Seehase@pdv-FS.de Frank.Seehase@pdv-FS.de
Mon Jul 22 05:25:00 GMT 2002


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
  



More information about the Gcc-help mailing list