[darwinbuild] Error building gcc: abi_check for i386 on ppc host
Dustin Lang
dalang at cs.ubc.ca
Tue Jan 10 10:09:31 PST 2006
Hi,
I'm trying to build 7W98 on a MacOS 10.3.9 PowerPC host.
While building gcc, I got the following:
cc-i386-on-ppc/ -DHAVE_CONFIG_H -I.
-I/SourceCache/gcc/gcc-1495/libstdc++-v3/libmath -I.. -arch i386
-no-cpp-precomp -B/private/var/tmp/gcc/gcc-1495.obj/cc-i386-on-ppc/ -O2
-pipe -g -c
/SourceCache/gcc/gcc-1495/libstdc++-v3/libmath/signbitf.c
/private/var/tmp/gcc/gcc-1495.obj/cc-i386-on-ppc/xgcc
-B/private/var/tmp/gcc/gcc-1495.obj/cc-i386-on-ppc/
-DHAVE_CONFIG_H -I. -I/SourceCache/gcc/gcc-1495/libstdc++-v3/libmath -I..
-arch i386 -no-cpp-precomp
-B/private/var/tmp/gcc/gcc-1495.obj/cc-i386-on-ppc/ -O2 -pipe -g -c
/SourceCache/gcc/gcc-1495/libstdc++-v3/libmath/signbitf.c -o signbitf.o
In file included from
/SourceCache/gcc/gcc-1495/libstdc++-v3/libmath/signbitf.c:32:
/SourceCache/gcc/gcc-1495/libstdc++-v3/libmath/mathconf.h:213: warning:
use of `long double' type; its size may
change in a future release
/SourceCache/gcc/gcc-1495/libstdc++-v3/libmath/mathconf.h:213: warning:
(Long double usage is reported only once
for each file.
/SourceCache/gcc/gcc-1495/libstdc++-v3/libmath/mathconf.h:213: warning: To
disable this warning, use
-Wno-long-double.)
/SourceCache/gcc/gcc-1495/libstdc++-v3/libmath/signbitf.c:36: error:
conflicting types for `__signbitf'
/usr/include/architecture/i386/math.h:190: error: previous declaration of
`__signbitf'
gnumake[3]: *** [signbitf.lo] Error 1
gnumake[2]: *** [all-recursive] Error 1
gnumake[1]: *** [all-recursive-am] Error 2
+ status=2
+ command set +x
+ set +x
************************************************
* *** gnumake failed building libstdc++-v3 *** *
************************************************
I fixed this by changing the definition in signbitf.c to be "long" instead
of "int".
I then got:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ Building libstdc++-v3 +
+ ------------------------------------------------------------ +
+ target = i386 +
+ cwd = /private/var/tmp/gcc/gcc-1495.obj/i386/libstdc++-v3 +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
[snip]
/private/var/tmp/gcc/gcc-1495.obj/cc-i386-on-ppc/g++
-B/private/var/tmp/gcc/gcc-1495.obj/cc-i386-on-ppc/ -arch
i386 -B/private/var/tmp/gcc/gcc-1495.obj/cc-i386-on-ppc/ -O2 -o abi_check
abi_check.o
-L/private/var/tmp/gcc/gcc-1495.obj/i386/libstdc++-v3/src/.libs
-L/private/var/tmp/gcc/gcc-1495.obj/i386/soft-float/libstdc++-v3/src/.libs
ld: warning -L: directory name
(/private/var/tmp/gcc/gcc-1495.obj/i386/soft-float/libstdc++-v3/src/.libs)
does
not exist
ld: warning /usr/lib/crt1.o cputype (18, architecture ppc) does not match
cputype (7) for specified -arch flag:
i386 (file not loaded)
ld: Undefined symbols:
dyld_stub_binding_helper
gnumake[3]: *** [abi_check] Error 1
gnumake[2]: *** [all-recursive] Error 1
gnumake[1]: *** [all-recursive-am] Error 2
+ status=2
+ command set +x
+ set +x
************************************************
* *** gnumake failed building libstdc++-v3 *** *
************************************************
This seems a little odd: it's trying to create an abi_check binary for the
i386 library, even though this is a ppc host. It pulls in
/usr/lib/crt1.o, which is compiled for ppc, which really doesn't seem like
a good idea :)
I modified the "make install" command line to include "TARGETS=ppc", and
the build finished successfully.
Finally, during the install phase (after the build script finishes), I
see:
/usr/bin/redo_prebinding: unknown option: -u
Usage: /usr/bin/redo_prebinding [-c|-p|-d] [-i] [-z] [-r rootdir] [-e
executable_path] [-seg_addr_table table_file_name]
[-seg_addr_table_filename pathname] [-o output_file] input_file
Another question: I see a lot of "make[1]: javaconfig: Command not found"
complaints during builds. Does one of the projects provide javaconfig?
Or should I just copy it over from MacOS to the BuildRoot?
Cheers,
dstn.
More information about the darwinbuild-dev
mailing list