Arm multilibs broken revisited

Dave Murphy wintermute2k4@ntlworld.com
Thu Aug 9 14:07:00 GMT 2007


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




More information about the Newlib mailing list