This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Trouble building GCC with objc for ARM Cortex-M4


Hi all.

I'm trying to build GCC 4.8.3 with ObjC support for ARM Cortex-M4.
I had this working with an earlier version of GCC (I think it was GCC 4.5).
-But now I get build errors.
It seems to me that it's required to add the --enable-libobjc switch (otherwise I the build stops when it can't find libobjc).
(I do not require libobjc, if it's possible to build GCC with ObjC support without libobjc).

I am building this toolchain on a PowerMac G5 (so it's not a trivial intel-Mac build, as the latest host-GCC I can use is v4.2!)

The bootstrap GCC builds fine. newlib-2.1.0 builds fine, however building the final GCC fails.

These are my build-lines:

Bootstrap GCC:
"$source/gcc-4.8.3/configure" --target="$target" --prefix="$prefix" --disable-nls --with-gcc --with-gnu-as --with-gnu-ld --with-dwarf2 --enable-multilib --enable-interwork --with-newlib --disable-libssp --with-system-zlib --disable-decimal-float --disable-libffi --disable-libmudflap --with-multilib-list=armv6-m,armv7-m,armv7e-m,armv7-r --disable-libstdcxx-pch --without-headers --enable-languages="c,c++,objc,obj-c++" --enable-libobjc
make all-gcc && sudo make install-gcc && echo "Success"

Newlib:
"$source/newlib-2.1.0/configure" --target="$target" --prefix="$prefix" --enable-interwork --enable-multilib --disable-libssp --disable-nls --enable-newlib-io-long-long --enable-newlib-register-fini --disable-newlib-supplied-syscalls
make CFLAGS_FOR_TARGET="-D__IEEE_BIG_ENDIAN -D__IEEE_BYTES_LITTLE_ENDIAN -D__BUFSIZ__=64" && sudo make install || sudo make install && echo "Success"

(note: make install fails on first try but succeeds on second try, which is why I do it twice - this is due to that a directory is missing the first time).

Final GCC:
"$source/gcc-4.8.3/configure" --target="$target" --prefix="$prefix" --disable-nls --with-gcc --with-gnu-as --with-gnu-ld --with-dwarf2 --enable-multilib --enable-interwork --with-newlib --disable-libssp --with-system-zlib --disable-decimal-float --disable-libffi --disable-libmudflap --with-multilib-list=armv6-m,armv7-m,armv7e-m,armv7-r --disable-libstdcxx-pch --with-headers=yes --enable-languages="c,c++,objc,obj-c++" --enable-libobjc
make all && sudo make install && echo "Success"



But when I add the --enable-libobjc, I get the following output:

---8<-----8<-----8<-----
make[4]: Nothing to be done for `all-am'.
Checking multilib configuration for libstdc++-v3...
Checking multilib configuration for libquadmath...
Checking multilib configuration for libobjc...
/bin/sh ./libtool  --mode=compile /Users/jens/toolchain/Build/gcc/./gcc/xgcc -B/Users/jens/toolchain/Build/gcc/./gcc/ -nostdinc -B/Users/jens/toolchain/Build/gcc/arm-none-eabi/newlib/ -isystem /Users/jens/toolchain/Build/gcc/arm-none-eabi/newlib/targ-include -isystem /Users/jens/toolchain/Source/gcc-4.8.3/newlib/libc/include -B/usr/local/arm-none-eabi/arm-none-eabi/bin/ -B/usr/local/arm-none-eabi/arm-none-eabi/lib/ -isystem /usr/local/arm-none-eabi/arm-none-eabi/include -isystem /usr/local/arm-none-eabi/arm-none-eabi/sys-include    /Users/jens/toolchain/Source/gcc-4.8.3/libobjc/NXConstStr.m -c \
	   -I. -I/Users/jens/toolchain/Source/gcc-4.8.3/libobjc   -g -O2 -W -Wall -Wwrite-strings -Wstrict-prototypes -DIN_GCC -DIN_TARGET_LIBS -fno-strict-aliasing -fexceptions -I/Users/jens/toolchain/Source/gcc-4.8.3/libobjc/../gcc -I/Users/jens/toolchain/Source/gcc-4.8.3/libobjc/../gcc/config -I../.././gcc -I/Users/jens/toolchain/Source/gcc-4.8.3/libobjc/../libgcc -I../libgcc -I/Users/jens/toolchain/Source/gcc-4.8.3/libobjc/../include  -fgnu-runtime \
	   -o NXConstStr.lo
/bin/sh ./libtool  --mode=compile /Users/jens/toolchain/Build/gcc/./gcc/xgcc -B/Users/jens/toolchain/Build/gcc/./gcc/ -nostdinc -B/Users/jens/toolchain/Build/gcc/arm-none-eabi/newlib/ -isystem /Users/jens/toolchain/Build/gcc/arm-none-eabi/newlib/targ-include -isystem /Users/jens/toolchain/Source/gcc-4.8.3/newlib/libc/include -B/usr/local/arm-none-eabi/arm-none-eabi/bin/ -B/usr/local/arm-none-eabi/arm-none-eabi/lib/ -isystem /usr/local/arm-none-eabi/arm-none-eabi/include -isystem /usr/local/arm-none-eabi/arm-none-eabi/sys-include    /Users/jens/toolchain/Source/gcc-4.8.3/libobjc/Object.m -c \
	   -I. -I/Users/jens/toolchain/Source/gcc-4.8.3/libobjc   -g -O2 -W -Wall -Wwrite-strings -Wstrict-prototypes -DIN_GCC -DIN_TARGET_LIBS -fno-strict-aliasing -fexceptions -I/Users/jens/toolchain/Source/gcc-4.8.3/libobjc/../gcc -I/Users/jens/toolchain/Source/gcc-4.8.3/libobjc/../gcc/config -I../.././gcc -I/Users/jens/toolchain/Source/gcc-4.8.3/libobjc/../libgcc -I../libgcc -I/Users/jens/toolchain/Source/gcc-4.8.3/libobjc/../include  -fgnu-runtime \
	   -o Object.lo
/bin/sh ./libtool  --mode=compile /Users/jens/toolchain/Build/gcc/./gcc/xgcc -B/Users/jens/toolchain/Build/gcc/./gcc/ -nostdinc -B/Users/jens/toolchain/Build/gcc/arm-none-eabi/newlib/ -isystem /Users/jens/toolchain/Build/gcc/arm-none-eabi/newlib/targ-include -isystem /Users/jens/toolchain/Source/gcc-4.8.3/newlib/libc/include -B/usr/local/arm-none-eabi/arm-none-eabi/bin/ -B/usr/local/arm-none-eabi/arm-none-eabi/lib/ -isystem /usr/local/arm-none-eabi/arm-none-eabi/include -isystem /usr/local/arm-none-eabi/arm-none-eabi/sys-include    /Users/jens/toolchain/Source/gcc-4.8.3/libobjc/Protocol.m -c \
	   -I. -I/Users/jens/toolchain/Source/gcc-4.8.3/libobjc   -g -O2 -W -Wall -Wwrite-strings -Wstrict-prototypes -DIN_GCC -DIN_TARGET_LIBS -fno-strict-aliasing -fexceptions -I/Users/jens/toolchain/Source/gcc-4.8.3/libobjc/../gcc -I/Users/jens/toolchain/Source/gcc-4.8.3/libobjc/../gcc/config -I../.././gcc -I/Users/jens/toolchain/Source/gcc-4.8.3/libobjc/../libgcc -I../libgcc -I/Users/jens/toolchain/Source/gcc-4.8.3/libobjc/../include  -fgnu-runtime \
	   -o Protocol.lo
/bin/sh ./libtool  --mode=compile /Users/jens/toolchain/Build/gcc/./gcc/xgcc -B/Users/jens/toolchain/Build/gcc/./gcc/ -nostdinc -B/Users/jens/toolchain/Build/gcc/arm-none-eabi/newlib/ -isystem /Users/jens/toolchain/Build/gcc/arm-none-eabi/newlib/targ-include -isystem /Users/jens/toolchain/Source/gcc-4.8.3/newlib/libc/include -B/usr/local/arm-none-eabi/arm-none-eabi/bin/ -B/usr/local/arm-none-eabi/arm-none-eabi/lib/ -isystem /usr/local/arm-none-eabi/arm-none-eabi/include -isystem /usr/local/arm-none-eabi/arm-none-eabi/sys-include    /Users/jens/toolchain/Source/gcc-4.8.3/libobjc/accessors.m -c \
	   -I. -I/Users/jens/toolchain/Source/gcc-4.8.3/libobjc   -g -O2 -W -Wall -Wwrite-strings -Wstrict-prototypes -DIN_GCC -DIN_TARGET_LIBS -fno-strict-aliasing -fexceptions -I/Users/jens/toolchain/Source/gcc-4.8.3/libobjc/../gcc -I/Users/jens/toolchain/Source/gcc-4.8.3/libobjc/../gcc/config -I../.././gcc -I/Users/jens/toolchain/Source/gcc-4.8.3/libobjc/../libgcc -I../libgcc -I/Users/jens/toolchain/Source/gcc-4.8.3/libobjc/../include  -fgnu-runtime \
	   -o accessors.lo
/bin/sh ./libtool  --mode=compile /Users/jens/toolchain/Build/gcc/./gcc/xgcc -B/Users/jens/toolchain/Build/gcc/./gcc/ -nostdinc -B/Users/jens/toolchain/Build/gcc/arm-none-eabi/newlib/ -isystem /Users/jens/toolchain/Build/gcc/arm-none-eabi/newlib/targ-include -isystem /Users/jens/toolchain/Source/gcc-4.8.3/newlib/libc/include -B/usr/local/arm-none-eabi/arm-none-eabi/bin/ -B/usr/local/arm-none-eabi/arm-none-eabi/lib/ -isystem /usr/local/arm-none-eabi/arm-none-eabi/include -isystem /usr/local/arm-none-eabi/arm-none-eabi/sys-include    /Users/jens/toolchain/Source/gcc-4.8.3/libobjc/linking.m -c \
	   -I. -I/Users/jens/toolchain/Source/gcc-4.8.3/libobjc   -g -O2 -W -Wall -Wwrite-strings -Wstrict-prototypes -DIN_GCC -DIN_TARGET_LIBS -fno-strict-aliasing -fexceptions -I/Users/jens/toolchain/Source/gcc-4.8.3/libobjc/../gcc -I/Users/jens/toolchain/Source/gcc-4.8.3/libobjc/../gcc/config -I../.././gcc -I/Users/jens/toolchain/Source/gcc-4.8.3/libobjc/../libgcc -I../libgcc -I/Users/jens/toolchain/Source/gcc-4.8.3/libobjc/../include  -fgnu-runtime \
	   -o linking.lo
/bin/sh: ./libtool: No such file or directory
/bin/sh: ./libtool: No such file or directory
make[2]: *** [NXConstStr.lo] Error 127
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [Object.lo] Error 127
/bin/sh: ./libtool: No such file or directory
make[2]: *** [Protocol.lo] Error 127
/bin/sh: ./libtool: No such file or directory
make[2]: *** [accessors.lo] Error 127
/bin/sh: ./libtool: No such file or directory
make[2]: *** [linking.lo] Error 127
make[1]: *** [all-target-libobjc] Error 2
make: *** [all] Error 2
--->8----->8----->8-----

Note: the "Checking multilib configuration for libobjc..."
The strange thing here is that the line above the failed one builds fine, but suddenly ./libtool is not found (?!??)

My question is: What's the correct / intended way of building GCC with ObjC support ?


Love
Jens


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]