Stefan, I'm not at all clear which of those many config parameters are meaningfull. I borrowed your --target and tried to build with this: ../sources/configure --prefix=$BASE/install --disable-bootstrap --enable-language=c --disable-multilib --target=arm-linux-gnueabihf That failed like this: echo | /home/gary/gcc_build_cross/objdir/./gcc/xgcc -B/home/gary/gcc_build_cross/objdir/./gcc/ -E -dM - | \ sed -n -e 's/^#define \([^_][a-zA-Z0-9_]*\).*/\1/p' \ -e 's/^#define \(_[^_A-Z][a-zA-Z0-9_]*\).*/\1/p' | \ sort -u > tmp-macro_list cc1: error: no include path in which to search for stdc-predef.h There was another error after this: checking for arm-linux-gnueabihf-gcc... /home/gary/gcc_build_cross/objdir/./gcc/xgcc -B/home/gary/gcc_build_cross/objdir/./gcc/ -B/home/gary/gcc_build_cross/install/arm-linux-gnueabihf/bin/ -B/home/gary/gcc_build_cross/install/arm-linux-gnueabihf/lib/ -isystem /home/gary/gcc_build_cross/install/arm-linux-gnueabihf/include -isystem /home/gary/gcc_build_cross/install/arm-linux-gnueabihf/sys-include checking for suffix of object files... configure: error: in `/home/gary/gcc_build_cross/objdir/arm-linux-gnueabihf/libgcc': configure: error: cannot compute suffix of object files: cannot compile See `config.log' for more details make[1]: *** [Makefile:15371: configure-target-libgcc] Error 1 Any idea what went wrong? Note I looked at the config.log and there were lots of errors there too (not that they were helpful to me.) Many years ago I set up a simple GCC cross compiler for mips as the starting point for the person creating a new target for a new chip. It didn't seems so crazy hard as this is proving to be. Thanks, Gary ________________________________ From: Stefan Ring <stefanrin@xxxxxxxxx> Sent: Thursday, June 16, 2022 12:45 AM To: Gary Oblock <gary@xxxxxxxxxxxxxxxxxxx> Subject: Re: A ARM target question [EXTERNAL EMAIL NOTICE: This email originated from an external sender. Please be mindful of safe email handling and proprietary information protection practices.] On Thu, Jun 16, 2022 at 5:36 AM Gary Oblock <gary@xxxxxxxxxxxxxxxxxxx> wrote: > > Stefan, > > Frankly, I don't know. But, honestly, I don't think it matters if it's 64 machine running > in Thumb-2 mode for if it's 32-bit machine. I'm trying to pry this out of my FW group > but like I said I'm pretty sure that it doesn't matter. What does matter is it has to > use the GCC 12 code base because of the things GCC 12 is capable of doing. > This is a big experiment to see what if and not a production quality effort. > > I'm not sure GCC 12 or the latest binutils support Thumb-2. Do you know if they do? > If they do what would I used for "--target=*-*-*" ? It would be preferable to respond to the mailing list. I just checked in an Ubuntu impish chroot. It’s gcc 11.2, but I’m certain it will still work with gcc 12. For arm it’s usually a good idea to follow what Ubuntu does. (impish32)sr@odroid:~$ cat h.c #include <stdio.h> int main() { printf("Hello thumb!\n"); return 0; } (impish32)sr@odroid:~$ gcc -c -O2 h.c (impish32)sr@odroid:~$ objdump -d h.o h.o: file format elf32-littlearm Disassembly of section .text.startup: 00000000 <main>: 0: 4803 ldr r0, [pc, #12] ; (10 <main+0x10>) 2: b508 push {r3, lr} 4: 4478 add r0, pc 6: f7ff fffe bl 0 <puts> a: 2000 movs r0, #0 c: bd08 pop {r3, pc} e: bf00 nop 10: 00000008 .word 0x00000008 Sure looks like Thumb 2 to me. AFAIK you don’t need to do anything to enable Thumb support, but if it’s not the default by configuring with --with-mode=thumb, you can always enable it with -mthumb. (impish32)sr@odroid:~$ gcc h.o (impish32)sr@odroid:~$ ./a.out Hello thumb! (impish32)sr@odroid:~$ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabihf/11/lto-wrapper Target: arm-linux-gnueabihf Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.2.0-7ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=arm-linux-gnueabihf- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libitm --disable-libquadmath --disable-libquadmath-support --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-sjlj-exceptions --with-arch=armv7-a+fp --with-float=hard --with-mode=thumb --disable-werror --enable-checking=release --build=arm-linux-gnueabihf --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 11.2.0 (Ubuntu 11.2.0-7ubuntu2)