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

Reply via email to