public inbox for newlib@sourceware.org
 help / color / mirror / Atom feed
From: "Richard Earnshaw (lists)" <Richard.Earnshaw@arm.com>
To: bitmap kid <bitmap.kid@gmail.com>, newlib@sourceware.org
Subject: Re: Newlib-3.3.0 build failed with gcc-9.3.0 armv6-m
Date: Wed, 25 Mar 2020 18:02:47 +0000	[thread overview]
Message-ID: <0b2ec839-cf69-6b65-e317-a60aab24114f@arm.com> (raw)
In-Reply-To: <CAPeH3XwL1Y6cZAnbftRc8knsHRNHhXAvMxg-_wnxm82gZ7w8gA@mail.gmail.com>

On 21/03/2020 17:45, bitmap kid via Newlib wrote:
> Hello,
> 
> When I compile newlib with a gcc-9.3.0, i get the following error :
> 
> arm-unknown-eabi-gcc
> -B/home/th/Downloads/newlib-3.3.0-build/arm-unknown-eabi/newlib/ -isystem
> /home/th/Downloads/newlib-3.3.0-build/arm-unknown-eabi/newlib/targ-include
> -isystem /home/th/Downloads/newlib-3.3.0/newlib/libc/include
> -B/home/th/Downloads/newlib-3.3.0-build/arm-unknown-eabi/libgloss/arm
> -L/home/th/Downloads/newlib-3.3.0-build/arm-unknown-eabi/libgloss/libnosys
> -L/home/th/Downloads/newlib-3.3.0/libgloss/arm    -g -O2 -I.
> -I../../../../newlib-3.3.0/libgloss/arm/.. `if [ -d ./../../newlib ]; then
> echo -I../../../../newlib-3.3.0/libgloss/arm/../../newlib/libc/machine/arm;
> fi` -g -O2 -c ../../../../newlib-3.3.0/libgloss/arm/linux-syscalls0.S
> ../../../../newlib-3.3.0/libgloss/arm/linux-syscalls0.S: Assembler messages:
> ../../../../newlib-3.3.0/libgloss/arm/linux-syscalls0.S:44: Error: SVC is
> not permitted on this architecture
> ../../../../newlib-3.3.0/libgloss/arm/linux-syscalls0.S:45: Error: SVC is
> not permitted on this architecture
> ../../../../newlib-3.3.0/libgloss/arm/linux-syscalls0.S:46: Error: SVC is
> not permitted on this architecture
> [...]
> ../../../../newlib-3.3.0/libgloss/arm/linux-syscalls0.S:102: Error: SVC is
> not permitted on this architecture
> ../../../../newlib-3.3.0/libgloss/arm/linux-syscalls0.S:103: Error: SVC is
> not permitted on this architecture
> make[3]: *** [Makefile:126 : linux-syscalls0.o] Erreur 1
> 
> Not really surprising, because this GCC is armv6-m default arch, an
> unavailable coprocessor instructions cpu.
> 
> Am I at an impasse ?
> 
> Below, the newlib configure command :
> 
> ../newlib-3.3.0/configure --prefix=/home/th/armv4vm-cc/
>   --disable-interwork --disable-newlib-supplied-syscalls --with-gnu-ld
> --with-gnu-as --disable-shared --disable-nls  --enable-newlib-io-long-long
> --enable-newlib-io-long-double  --enable-newlib-io-c99-formats
> --target=arm-unknown-eabi
> 
> I I will not hide from you that I have not checked if this version of gcc
> is compatible with this one from newlib :(
> 
> I thank you so much to help me to find a work around.
> 
> thierry
> 

SVC is supported by armv6s-m, which is a minor variant of the 
architecture.  You can use that if you want.

TLDR: the only difference between armv6-m and armv6s-m is how the SVC 
opcode is handled by the hardware.  In armv6s-m there is a specific 
exception mode to handle it.  In armv6-m this exception mode is lacking 
and the instruction will take the undefined instruction exception (which 
can then emulate the instruction if it so desires).  Either can 
therefore support SVC and the only difference is for 'kernel' code that 
has to understand the different behaviours.  There's a small performance 
cost as well, of course, because the instruction has to be decoded first 
if going via the undef instruction trap.

R.

  parent reply	other threads:[~2020-03-25 18:02 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-21 17:45 bitmap kid
2020-03-23 11:39 ` Emmanuel Blot
2020-03-25 18:02 ` Richard Earnshaw (lists) [this message]
2020-03-26 18:07   ` bitmap kid

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=0b2ec839-cf69-6b65-e317-a60aab24114f@arm.com \
    --to=richard.earnshaw@arm.com \
    --cc=bitmap.kid@gmail.com \
    --cc=newlib@sourceware.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).