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

Reply via email to