updated question : Three questions when building newlib with arm-none-eabi toolchain

Can Finner can.finner@gmail.com
Wed Mar 30 13:37:00 GMT 2011

Hi, I previously sent this message but got no suggestion. in the past
days I got a little progress and try to present the question again

in file ./libgloss/config/default.mh, it says that the multilib option
is passed in $(CFLAGS).

targets like m68k seem to use
<target-specific-defines> -o $@ -c
to compile target libraries and crt0s.

the problem is that the counterpart Makefile rules in arm target as
following does not use $(CFLAGS).

This results in target libraries like librdimon.a are built without
multilib option, which are useless.

So any tips? Thanks.


---------- Forwarded message ----------
From: Can Finner <can.finner@gmail.com>
Date: Fri, Mar 25, 2011 at 2:09 PM
Subject: Three questions when building newlib with arm-none-eabi toolchain
To: newlib@sourceware.org

Hi all,
I am now trying to build newlib 1.18.0 with arm-none-eabi
toolchain(enable multilib), having three questions during building

In file ./newlib-1.18.0/libgloss/arm/Makefile.in

there are Makefile rules like:

rdimon-syscalls.o: syscalls.c

the question is the multilib options(like "-mthumb -march=armv7
-mfix-cortex-m3-ldrd") are passed in $(CFLAGS)
which is not used in this rule. This results in all multilib
librdimon.a are same, built with default multilib options.

2, when configuring newlib with following commands
newlib-1.18.0/configure --build=i686-linux-gnu --target=arm-none-eabi
--prefix=/opt/arm --host=i686-pc-linux --enable-newlib-io-long-long
--enable-newlib-register-fini --disable-nls

there are errors when building crt0.S for armv6-m version multilib like:

arm-none-eabi-gcc ......    -g -O2 ...... -g -O2  -mthumb
-march=armv6-m -c ....../newlib-1.18.0/libgloss/arm/crt0.S
......./newlib-1.18.0/libgloss/arm/crt0.S: Assembler messages:
......./newlib-1.18.0/libgloss/arm/crt0.S:30: Error: selected
processor does not support ARM opcodes
......./newlib-1.18.0/libgloss/arm/crt0.S:83: Error: attempt to use an
ARM instruction on a Thumb-only processor -- `ldr r3,.Lstack'

Though the building process continues, I guess there are something wrong here.

3 when configuring newlib with following command
newlib-1.18.0/configure --build=i686-linux-gnu --target=arm-none-eabi
--prefix=/opt/arm --host=i686-pc-linux --enable-newlib-io-long-long
--enable-newlib-register-fini --disable-nls

There are errors complain about missing files, like

arm-none-eabi-ar: ../sys/lib.a: No such file or directory
arm-none-eabi-ranlib libc.a
rm -rf tmp
rm -f crt0.o
ln sys/crt0.o crt0.o >/dev/null 2>/dev/null || cp sys/crt0.o crt0.o
cp: cannot stat `sys/crt0.o': No such file or directory

So any ideas? Any tips will be appreciated. Many thanks.

More information about the Newlib mailing list