cross-compile failures

Neal Becker neal@ctd.comsat.com
Wed Dec 3 15:32:00 GMT 1997


I have been looking into cross-compile failures I have reported.  The
problem is building libiberty.

-------
make[3]: Entering directory `/src/m68k/egcs-971201/m68k-unknown-coff/libiberty'
test -z "" || \
  /src/m68k/egcs-971201/gcc/xgcc -B/src/m68k/egcs-971201/gcc/ -c -g -O2 -I. -I../../../../egcs-971201/libiberty/../include   ../../../../egcs-971201/libiberty/vsprintf.c -o pic/vsprintf.o
/src/m68k/egcs-971201/gcc/xgcc -B/src/m68k/egcs-971201/gcc/ -c -g -O2 -I. -I../../../../egcs-971201/libiberty/../include  ../../../../egcs-971201/libiberty/vsprintf.c
../../../../egcs-971201/libiberty/vsprintf.c: In function `vsprintf':
../../../../egcs-971201/libiberty/vsprintf.c:47: structure has no member named `_flag'
../../../../egcs-971201/libiberty/vsprintf.c:47: `_IOWRT' undeclared (first use this function)
../../../../egcs-971201/libiberty/vsprintf.c:47: (Each undeclared identifier is reported only once
../../../../egcs-971201/libiberty/vsprintf.c:47: for each function it appears in.)
../../../../egcs-971201/libiberty/vsprintf.c:47: `_IOSTRG' undeclared (first use this function)
../../../../egcs-971201/libiberty/vsprintf.c:48: structure has no member named `_ptr'
../../../../egcs-971201/libiberty/vsprintf.c:49: structure has no member named `_cnt'
make[3]: *** [vsprintf.o] Error 1
make[3]: Leaving directory `/src/m68k/egcs-971201/m68k-unknown-coff/libiberty'
make[2]: *** [libiberty.a] Error 2
make[2]: Leaving directory `/src/m68k/egcs-971201/m68k-unknown-coff/libiberty'
make[1]: *** [all-target-libiberty] Error 2
make[1]: Leaving directory `/src/m68k/egcs-971201'
make: *** [cross] Error 2
--------------

The problem is that we are using the target compiler, but not using
the target includes.

We have in /src/m68k/egcs-971201/m68k-unknown-coff/libiberty/Makefile:

errors: dummy.o $(EXTRA_OFILES)
	-($(ERRORS_CC) -o dummy $(CFLAGS) $(LDFLAGS) $(ERRORS_LDFLAGS) dummy.o $(EXTRA_OFILES) $(LOADLIBES)) >errors 2>&1 || true


When executed we get this:
(/src/m68k/egcs-971201/gcc/xgcc -B/src/m68k/egcs-971201/gcc/ -o dummy
-g -O2   dummy.o  ) >errors 2>&1 || true

The problem is, if we are going to use the target compiler we need to
add target includes and libs.  Why isn't this being done?  Even if I
say --with-headers=/usr/local/m68k/m68k-unknown-coff/include I still
get the same failure.



More information about the Gcc mailing list