public inbox for gcc-help@gcc.gnu.org
 help / color / mirror / Atom feed
From: Gary Oblock <gary@amperecomputing.com>
To: Gary Oblock via Gcc-help <gcc-help@gcc.gnu.org>
Subject: Re: A ARM target question
Date: Fri, 17 Jun 2022 05:33:45 +0000	[thread overview]
Message-ID: <BYAPR01MB5464F7EABA729D8049FC3F5DC6AF9@BYAPR01MB5464.prod.exchangelabs.com> (raw)
In-Reply-To: <CAAxjCEzn+hm2eUShpaEmH9kLMo-rSTU71dNvMRmdqgt_wVvt2Q@mail.gmail.com>

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@gmail.com>
Sent: Thursday, June 16, 2022 12:45 AM
To: Gary Oblock <gary@amperecomputing.com>
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@amperecomputing.com> 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)

  parent reply	other threads:[~2022-06-17  5:33 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-14  4:57 Gary Oblock
2022-06-14 18:09 ` fedor_qd
2022-06-15 17:31 ` Stefan Ring
2022-06-16  9:06   ` Richard Earnshaw
     [not found]   ` <BYAPR01MB54649B0092B3C6403A697BC6C6AC9@BYAPR01MB5464.prod.exchangelabs.com>
     [not found]     ` <CAAxjCEzn+hm2eUShpaEmH9kLMo-rSTU71dNvMRmdqgt_wVvt2Q@mail.gmail.com>
2022-06-17  5:33       ` Gary Oblock [this message]
2022-06-17 11:59         ` Jonathan Wakely
2022-06-22  2:54 Gary Oblock

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=BYAPR01MB5464F7EABA729D8049FC3F5DC6AF9@BYAPR01MB5464.prod.exchangelabs.com \
    --to=gary@amperecomputing.com \
    --cc=gcc-help@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).