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