This is the mail archive of the
crossgcc@sources.redhat.com
mailing list for the crossgcc project.
See the CrossGCC FAQ for lots
more information.
more troubles with SuSE 9.2
- From: Ray Bryant <raybry at sgi dot com>
- To: crossgcc at sources dot redhat dot com
- Date: Mon, 07 Feb 2005 19:11:15 -0600
- Subject: more troubles with SuSE 9.2
Actually, I'm not sure that this probem is specific to SuSE 9.2, it is
just where I am encountering it.
I am running on i386, trying to build a cross-compiler for ia64.
Consistently, whenever the script
gets around to trying to (cross) compile some ia64 assembler code, that
step fails with an "as: -x unrecognized
option" error. For example, I encounter the following:
make[1]: Entering directory
`/home/raybry/crosstool-0.28-rc37/build/ia64-unknown-linux-gnu/gcc-3.4.1-glibc-2.3.3/build-gcc-core/libiberty'
make[2]: Entering directory
`/home/raybry/crosstool-0.28-rc37/build/ia64-unknown-linux-gnu/gcc-3.4.1-glibc-2.3.3/build-gcc-core/libiberty/testsuite'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory
`/home/raybry/crosstool-0.28-rc37/build/ia64-unknown-linux-gnu/gcc-3.4.1-glibc-2.3.3/build-gcc-core/libiberty/testsuite'
make[1]: Leaving directory
`/home/raybry/crosstool-0.28-rc37/build/ia64-unknown-linux-gnu/gcc-3.4.1-glibc-2.3.3/build-gcc-core/libiberty'
make[1]: Entering directory
`/home/raybry/crosstool-0.28-rc37/build/ia64-unknown-linux-gnu/gcc-3.4.1-glibc-2.3.3/build-gcc-core/intl'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory
`/home/raybry/crosstool-0.28-rc37/build/ia64-unknown-linux-gnu/gcc-3.4.1-glibc-2.3.3/build-gcc-core/intl'
make[1]: Entering directory
`/home/raybry/crosstool-0.28-rc37/build/ia64-unknown-linux-gnu/gcc-3.4.1-glibc-2.3.3/build-gcc-core/gcc'
/home/raybry/crosstool-0.28-rc37/build/ia64-unknown-linux-gnu/gcc-3.4.1-glibc-2.3.3/build-gcc-core/gcc/xgcc
-B/home/raybry/crosstool-0.28-rc37/build/ia64-unknown-linux-gnu/gcc-3.4.1-glibc-2.3.3/build-gcc-core/gcc/
-B/opt/crosstool/ia64-unknown-linux-gnu/gcc-3.4.1-glibc-2.3.3/ia64-unknown-linux-gnu/bin/
-B/opt/crosstool/ia64-unknown-linux-gnu/gcc-3.4.1-glibc-2.3.3/ia64-unknown-linux-gnu/lib/
-isystem
/opt/crosstool/ia64-unknown-linux-gnu/gcc-3.4.1-glibc-2.3.3/ia64-unknown-linux-gnu/include
-isystem
/opt/crosstool/ia64-unknown-linux-gnu/gcc-3.4.1-glibc-2.3.3/ia64-unknown-linux-gnu/sys-include
-nostdinc -I. -c -o crtbegin.o -x assembler-with-cpp \
/home/raybry/crosstool-0.28-rc37/build/ia64-unknown-linux-gnu/gcc-3.4.1-glibc-2.3.3/gcc-3.4.1/gcc/config/ia64/crtbegin.asm
as: unrecognized option `-x'
make[1]: *** [crtbegin.o] Error 1
make[1]: Leaving directory
`/home/raybry/crosstool-0.28-rc37/build/ia64-unknown-linux-gnu/gcc-3.4.1-glibc-2.3.3/build-gcc-core/gcc'
make: *** [all-gcc] Error 2
Now the problem really is that xgcc is finding and invoking /usr/bin/as,
which is the i386 assembler, which
doesn't understand the -x option. (Indeed, if I replace /usr/bin/as
with a symbolic link to the ia64 assembler,
this step completes, but then the build fails the next time we need to
invoke the host assembler again).
This seems like a pretty fundamental problem in the cross compiler
domain. I mean, if you can't even
get the right assembler invoked, you are pretty much hosed.
So my questions are:
(1) Is this a problem for other Linux systems other than SuSE 9.2?
(2) Can anyone think of a better workaround (the other one I've come up
with is to preprocess the files
by hand, and then invoke the ia64 assembler directly instead of invoking
xgcc, but that is prone to
problems as well [getting the right include files found can be
difficult....]).
Best Regards,
Ray
Ray Bryant <raybry@sgi.com>
------
Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com