Re: A ARM target question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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)




[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux