This is the mail archive of the
newlib@sourceware.org
mailing list for the newlib project.
Re: Arm multilibs broken revisited
- From: Dave Murphy <wintermute2k4 at ntlworld dot com>
- To: newlib at sources dot redhat dot com
- Date: Wed, 08 Aug 2007 20:48:01 +0100
- Subject: Re: Arm multilibs broken revisited
- References: <46AF2B03.2060209@ntlworld.com>
Dave Murphy wrote:
Hi
I'm now experiencing the broken multilibs problem on a mingw host as
mentioned in this post
http://www.cygwin.com/ml/newlib/2007/msg00487.html and this one
http://sourceware.org/ml/newlib/2006/msg00502.html
After a bit more poking around I found that the culprit turns out to be
make 3.81 - I reverted my msys make to 3.79.1 and everything worked as
it should.
There are some fragments of the build process at the end of this mail.
You can see the working build immediately creates the targ-include
directory when it enters the newlib build folder but when it fails it
seems to invoke make twice more before descending into the thumb
directory where the problem occurs.
I've just tried using make -j1 to see if the problem was due to parallel
commands but it still fails.
These tests were done with clean, unpatched newlib 1.15.0 sources.
Any suggestions to help find the problem will be gratefully received.
Dave
First the working make 3.79.1 build
make[3]: Entering directory
`/d/projects/devkitPro/test/build/newlib/clean/arm-eabi/newlib'
rm -rf targ-include stmp-targ-include
mkdir targ-include targ-include/sys targ-include/machine targ-include/bits
cp newlib.h targ-include/newlib.h
for i in
../../../../../newlib-1.15.0/newlib/libc/machine/arm/machine/*.h; do \
if [ -f $i ]; then \
cp $i targ-include/machine/`basename $i`; \
else true; fi ; \
done
and the non-working make 3.81 build process
make[2]: Entering directory
`/home/davem/projects/devkitpro/test/build/newlib/arm-eabi/arm-eabi/newlib'
make "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CFLAGS=-O2
-DREENTRANT_SYSCALLS_PROVIDED -DHAVE_RENAME " "CCASFLAGS="
"CFLAGS_FOR_BUILD=-DREENTRANT_SYSCALLS_PROVIDED -DHAVE_RENAME"
"CFLAGS_FOR_TARGET=-O2 -DREENTRANT_SYSCALLS_PROVIDED -DHAVE_RENAME "
"INSTALL=/usr/bin/install -c" "LDFLAGS=" "LIBCFLAGS=-O2
-DREENTRANT_SYSCALLS_PROVIDED -DHAVE_RENAME " "LIBCFLAGS_FOR_TARGET=-O2
-DREENTRANT_SYSCALLS_PROVIDED -DHAVE_RENAME " "MAKE=make"
"MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000 "
"PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "EXPECT=expect"
"RUNTEST=runtest" "RUNTESTFLAGS="
"exec_prefix=/usr/local/devkitPro/devkitARM"
"infodir=/usr/local/devkitPro/devkitARM/info"
"libdir=/usr/local/devkitPro/devkitARM/lib"
"prefix=/usr/local/devkitPro/devkitARM"
"tooldir=/usr/local/devkitPro/devkitARM/arm-eabi"
"top_toollibdir=/usr/local/devkitPro/devkitARM/arm-eabi/lib"
"AR=arm-eabi-ar" "AS=arm-eabi-as" "CC=arm-eabi-gcc
-B/home/davem/projects/devkitpro/test/build/newlib/arm-eabi/arm-eabi/newlib/
-isystem
/home/davem/projects/devkitpro/test/build/newlib/arm-eabi/arm-eabi/newlib/targ-include
-isystem
/home/davem/projects/devkitpro/test/newlib-1.15.0/newlib/libc/include"
"LD=arm-eabi-ld" "LIBCFLAGS=-O2 -DREENTRANT_SYSCALLS_PROVIDED
-DHAVE_RENAME " "NM=arm-eabi-nm" "PICFLAG=" "RANLIB=arm-eabi-ranlib"
"DESTDIR=" all-recursive
make[3]: Entering directory
`/home/davem/projects/devkitpro/test/build/newlib/arm-eabi/arm-eabi/newlib'
make "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CFLAGS=-O2
-DREENTRANT_SYSCALLS_PROVIDED -DHAVE_RENAME " "CCASFLAGS="
"CFLAGS_FOR_BUILD=-DREENTRANT_SYSCALLS_PROVIDED -DHAVE_RENAME"
"CFLAGS_FOR_TARGET=-O2 -DREENTRANT_SYSCALLS_PROVIDED -DHAVE_RENAME "
"INSTALL=/usr/bin/install -c" "LDFLAGS=" "LIBCFLAGS=-O2
-DREENTRANT_SYSCALLS_PROVIDED -DHAVE_RENAME " "LIBCFLAGS_FOR_TARGET=-O2
-DREENTRANT_SYSCALLS_PROVIDED -DHAVE_RENAME " "MAKE=make"
"MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000 "
"PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "EXPECT=expect"
"RUNTEST=runtest" "RUNTESTFLAGS="
"exec_prefix=/usr/local/devkitPro/devkitARM"
"infodir=/usr/local/devkitPro/devkitARM/info"
"libdir=/usr/local/devkitPro/devkitARM/lib"
"prefix=/usr/local/devkitPro/devkitARM"
"tooldir=/usr/local/devkitPro/devkitARM/arm-eabi"
"top_toollibdir=/usr/local/devkitPro/devkitARM/arm-eabi/lib"
"AR=arm-eabi-ar" "AS=arm-eabi-as" "CC=arm-eabi-gcc
-B/home/davem/projects/devkitpro/test/build/newlib/arm-eabi/arm-eabi/newlib/
-isystem
/home/davem/projects/devkitpro/test/build/newlib/arm-eabi/arm-eabi/newlib/targ-include
-isystem
/home/davem/projects/devkitpro/test/newlib-1.15.0/newlib/libc/include"
"LD=arm-eabi-ld" "LIBCFLAGS=-O2 -DREENTRANT_SYSCALLS_PROVIDED
-DHAVE_RENAME " "NM=arm-eabi-nm" "PICFLAG=" "RANLIB=arm-eabi-ranlib"
"DESTDIR=" DO=all multi-do # make
make[4]: Entering directory
`/home/davem/projects/devkitpro/test/build/newlib/arm-eabi/arm-eabi/newlib'
if [ -z "thumb be thumb/be" ]; then \
true; \
else \
rootpre=`${PWDCMD-pwd}`/; export rootpre; \
srcrootpre=`cd ../../../../../newlib-1.15.0/newlib;
${PWDCMD-pwd}`/; export srcrootpre; \
lib=`echo ${rootpre} | sed -e 's,^.*/\([^/][^/]*\)/$,\1,'`; \
compiler="arm-eabi-gcc
-B/home/davem/projects/devkitpro/test/build/newlib/arm-eabi/arm-eabi/newlib/
-isystem
/home/davem/projects/devkitpro/test/build/newlib/arm-eabi/arm-eabi/newlib/targ-include
-isystem
/home/davem/projects/devkitpro/test/newlib-1.15.0/newlib/libc/include"; \
for i in `${compiler} --print-multi-lib 2>/dev/null`; do \
dir=`echo $i | sed -e 's/;.*$//'`; \
if [ "${dir}" = "." ]; then \
true; \
else \
if [ -d ../${dir}/${lib} ]; then \
flags=`echo $i | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; \
if (cd ../${dir}/${lib}; make "AR_FLAGS=rc" "CC_FOR_BUILD=gcc"
"CFLAGS=-O2 -DREENTRANT_SYSCALLS_PROVIDED -DHAVE_RENAME " "CCASFLAGS="
"CFLAGS_FOR_BUILD=-DREENTRANT_SYSCALLS_PROVIDED -DHAVE_RENAME"
"CFLAGS_FOR_TARGET=-O2 -DREENTRANT_SYSCALLS_PROVIDED -DHAVE_RENAME "
"INSTALL=/usr/bin/install -c" "LDFLAGS=" "LIBCFLAGS=-O2
-DREENTRANT_SYSCALLS_PROVIDED -DHAVE_RENAME " "LIBCFLAGS_FOR_TARGET=-O2
-DREENTRANT_SYSCALLS_PROVIDED -DHAVE_RENAME " "MAKE=make"
"MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000 "
"PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/sh" "EXPECT=expect"
"RUNTEST=runtest" "RUNTESTFLAGS="
"exec_prefix=/usr/local/devkitPro/devkitARM"
"infodir=/usr/local/devkitPro/devkitARM/info"
"libdir=/usr/local/devkitPro/devkitARM/lib"
"prefix=/usr/local/devkitPro/devkitARM"
"tooldir=/usr/local/devkitPro/devkitARM/arm-eabi"
"top_toollibdir=/usr/local/devkitPro/devkitARM/arm-eabi/lib"
"AR=arm-eabi-ar" "AS=arm-eabi-as" "CC=arm-eabi-gcc
-B/home/davem/projects/devkitpro/test/build/newlib/arm-eabi/arm-eabi/newlib/
-isystem
/home/davem/projects/devkitpro/test/build/newlib/arm-eabi/arm-eabi/newlib/targ-include
-isystem
/home/davem/projects/devkitpro/test/newlib-1.15.0/newlib/libc/include"
"LD=arm-eabi-ld" "LIBCFLAGS=-O2 -DREENTRANT_SYSCALLS_PROVIDED
-DHAVE_RENAME " "NM=arm-eabi-nm" "PICFLAG=" "RANLIB=arm-eabi-ranlib"
"DESTDIR=" \
CFLAGS="-O2 -DREENTRANT_SYSCALLS_PROVIDED -DHAVE_RENAME
${flags}" \
CCASFLAGS=" ${flags}" \
FCFLAGS=" ${flags}" \
FFLAGS=" ${flags}" \
ADAFLAGS=" ${flags}" \
prefix="/usr/local/devkitPro/devkitARM" \
exec_prefix="/usr/local/devkitPro/devkitARM" \
GCJFLAGS=" ${flags}" \
CXXFLAGS="-g -O2 ${flags}" \
LIBCFLAGS="-O2 -DREENTRANT_SYSCALLS_PROVIDED
-DHAVE_RENAME ${flags}" \
LIBCXXFLAGS="-g -O2 -fno-implicit-templates ${flags}" \
LDFLAGS=" ${flags}" \
MULTIFLAGS="${flags}" \
DESTDIR="" \
INSTALL="/usr/bin/install -c" \
INSTALL_DATA="/usr/bin/install -c -m 644" \
INSTALL_PROGRAM="/usr/bin/install -c" \
INSTALL_SCRIPT="/usr/bin/install -c" \
all); then \
true; \
else \
exit 1; \
fi; \
else true; \
fi; \
fi; \
done; \
fi
make[5]: Entering directory
`/home/davem/projects/devkitpro/test/build/newlib/arm-eabi/arm-eabi/thumb/newlib'
make "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CFLAGS=-O2
-DREENTRANT_SYSCALLS_PROVIDED -DHAVE_RENAME -mthumb"
"CCASFLAGS=-mthumb" "CFLAGS_FOR_BUILD=-DREENTRANT_SYSCALLS_PROVIDED
-DHAVE_RENAME" "CFLAGS_FOR_TARGET=-O2 -DREENTRANT_SYSCALLS_PROVIDED
-DHAVE_RENAME " "INSTALL=/usr/bin/install -c" "LDFLAGS=-mthumb"
"LIBCFLAGS=-O2 -DREENTRANT_SYSCALLS_PROVIDED -DHAVE_RENAME -mthumb"
"LIBCFLAGS_FOR_TARGET=-O2 -DREENTRANT_SYSCALLS_PROVIDED -DHAVE_RENAME "
"MAKE=make" "MAKEINFO=makeinfo --split-size=5000000
--split-size=5000000 " "PICFLAG=" "PICFLAG_FOR_TARGET="
"SHELL=/bin/sh" "EXPECT=expect" "RUNTEST=runtest" "RUNTESTFLAGS="
"exec_prefix=/usr/local/devkitPro/devkitARM"
"infodir=/usr/local/devkitPro/devkitARM/info"
"libdir=/usr/local/devkitPro/devkitARM/lib"
"prefix=/usr/local/devkitPro/devkitARM"
"tooldir=/usr/local/devkitPro/devkitARM/arm-eabi"
"top_toollibdir=/usr/local/devkitPro/devkitARM/arm-eabi/lib/thumb"
"AR=arm-eabi-ar" "AS=arm-eabi-as" "CC=arm-eabi-gcc
-B/home/davem/projects/devkitpro/test/build/newlib/arm-eabi/arm-eabi/newlib/
-isystem
/home/davem/projects/devkitpro/test/build/newlib/arm-eabi/arm-eabi/newlib/targ-include
-isystem
/home/davem/projects/devkitpro/test/newlib-1.15.0/newlib/libc/include"
"LD=arm-eabi-ld" "LIBCFLAGS=-O2 -DREENTRANT_SYSCALLS_PROVIDED
-DHAVE_RENAME -mthumb" "NM=arm-eabi-nm" "PICFLAG="
"RANLIB=arm-eabi-ranlib" "DESTDIR=" all-recursive
make[6]: Entering directory
`/home/davem/projects/devkitpro/test/build/newlib/arm-eabi/arm-eabi/thumb/newlib'
true "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CFLAGS=-O2
-DREENTRANT_SYSCALLS_PROVIDED -DHAVE_RENAME -mthumb"
"CCASFLAGS=-mthumb" "CFLAGS_FOR_BUILD=-DREENTRANT_SYSCALLS_PROVIDED
-DHAVE_RENAME" "CFLAGS_FOR_TARGET=-O2 -DREENTRANT_SYSCALLS_PROVIDED
-DHAVE_RENAME " "INSTALL=/usr/bin/install -c" "LDFLAGS=-mthumb"
"LIBCFLAGS=-O2 -DREENTRANT_SYSCALLS_PROVIDED -DHAVE_RENAME -mthumb"
"LIBCFLAGS_FOR_TARGET=-O2 -DREENTRANT_SYSCALLS_PROVIDED -DHAVE_RENAME "
"MAKE=make" "MAKEINFO=makeinfo --split-size=5000000
--split-size=5000000 " "PICFLAG=" "PICFLAG_FOR_TARGET="
"SHELL=/bin/sh" "EXPECT=expect" "RUNTEST=runtest" "RUNTESTFLAGS="
"exec_prefix=/usr/local/devkitPro/devkitARM"
"infodir=/usr/local/devkitPro/devkitARM/info"
"libdir=/usr/local/devkitPro/devkitARM/lib"
"prefix=/usr/local/devkitPro/devkitARM"
"tooldir=/usr/local/devkitPro/devkitARM/arm-eabi"
"top_toollibdir=/usr/local/devkitPro/devkitARM/arm-eabi/lib/thumb"
"AR=arm-eabi-ar" "AS=arm-eabi-as" "CC=arm-eabi-gcc
-B/home/davem/projects/devkitpro/test/build/newlib/arm-eabi/arm-eabi/newlib/
-isystem
/home/davem/projects/devkitpro/test/build/newlib/arm-eabi/arm-eabi/newlib/targ-include
-isystem
/home/davem/projects/devkitpro/test/newlib-1.15.0/newlib/libc/include"
"LD=arm-eabi-ld" "LIBCFLAGS=-O2 -DREENTRANT_SYSCALLS_PROVIDED
-DHAVE_RENAME -mthumb" "NM=arm-eabi-nm" "PICFLAG="
"RANLIB=arm-eabi-ranlib" "DESTDIR=" DO=all multi-do # make
rm -rf targ-include stmp-targ-include
mkdir targ-include targ-include/sys targ-include/machine targ-include/bits