I'm not sure how to present all this so bear with me:
The problem: In the particular build I am trying to do, when
libgcc2.c is compled with -DL_floatdidf, instead of defining a
routine called _floatdidf or __floatdidf, it creates a routine called
__floattidf which references __floatdidf.
The call to compile as generated by configure is:
./xgcc -B./ -B/usr/local/powerpc-ibm-aix5.3.0.0/bin/ \
-isystem /usr/local/powerpc-ibm-aix5.3.0.0/include \
-isystem /usr/local/powerpc-ibm-aix5.3.0.0/sys-include \
-L/usr/local/src/build-gcc-4.0.2/gcc/../ld -O2 -DIN_GCC \
-W -Wall -Wwrite-strings -Wstrict-prototypes \
-Wmissing-prototypes -Wold-style-definition -isystem \
./include -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 \
-D__GCC_FLOAT_NOT_NEEDED -I. -I. -I../../gcc-4.0.2/gcc \
-I../../gcc-4.0.2/gcc/. \
-I../../gcc-4.0.2/gcc/../include \
-I../../gcc-4.0.2/gcc/../libcpp/include -DSHARED \
-maix64 -msoft-float -DL_floatdidf -c \
../../gcc-4.0.2/gcc/libgcc2.c \
-o libgcc/ppc64/soft-float/_floatdidf_s.o
(It compiles fine.)
This is on an RS/6000 AIX 5.3. I'm trying to compile gcc 4.0.2. I
have mucked with t-aix52 to produce not only pthread and ppc64 but
also libraries for soft-float. This particular compile is when it is
trying to produce the ppc64/soft-float shared (libgcc_s.a) library.
Of the eight different versions of libgcc_s.a, all of them link fine
except for ppc64/soft-float and pthead/ppc64/soft-float.
The link fails with __floatdidf, __fixdfdi, and __fixsfdi as
undefined. I have not dug into the details of the other two but I
assume they are all the same root cause.
I've noticed in libgcc2.h, a macro is created called __NDW that
appears may be doing this substitution. I'm currently looking into
that part of the code but was hoping someone could help me out a bit.
BTW, when the link for libgcc_s.a fails, the make does not stop. I
just keeps going. I did not notice this until install time when the
libraries did not exist.
Thank you very much,
Perry Smith