This is the mail archive of the
newlib@sources.redhat.com
mailing list for the newlib project.
Re: Newlib build error on ix86-linux
Jose Miguel Goncalves wrote:
J. Johnston wrote:
José Miguel Gonçalves wrote:
Hi all,
I am trying to build newlib natively on a Linux PC and I am getting
errors.
I am building it using the latest newlib sources from CVS, with a
Mandrake 9.1 distribution and gcc 2.96.
More details:
$ mkdir newlib-build
$ cd newlib-build
$ ../newlib-src/configure --prefix=/usr/local/newlib
--srcdir=../newlib-src
...
$ make all-target-newlib
...
gcc -I/home/jmpg/newlib-build/i686-pc-linux-gnu/newlib/targ-include
-I../../../newlib-src/newlib/./libc/include -DPACKAGE=\"newlib\"
-DVERSION=\"1.11.0\" -I. -I../../../../../newlib-src/newlib/libc/argz
-O2
-DMB_CAPABLE -Wall -D_I386MACH_ALLOW_HW_INTERRUPTS -D_LOOSE_KERNEL_NAMES
-DHAVE_FCNTL -DWANT_IO_POS_ARGS -DWANT_IO_LONG_DBL -fPIC
-D_I386MACH_NEED_SOTYPE_FUNCTION -DMISSING_SYSCALL_NAMES -fno-builtin
-O2 -g
-O2 -O2 -g -O2 -c
../../../../../newlib-src/newlib/libc/argz/argz_add.c -fPIC
-DPIC -o .libs/argz_add.o
In file included from
../../../../../newlib-src/newlib/libc/argz/argz_add.c:8:
/home/jmpg/newlib-build/i686-pc-linux-gnu/newlib/targ-include/sys/types.h:53:24:
sys/config.h: No such file or directory
/home/jmpg/newlib-build/i686-pc-linux-gnu/newlib/targ-include/sys/types.h:54:27:
machine/types.h: No such file or directory
make[4]: *** [argz_add.lo] Error 1
Any help would be appreciated.
José Goncalves
Jose,
Use absolute paths in your configure statement. Configuration is
getting the
relative directories wrong. Notice the difference in relative paths for
the newlib-src directory when specifying the argz directory vs the
libc directory in your
compile. If you specify an absolute path for the location of
configure, you don't need
to specify --srcdir.
-- Jeff J.
Jeff,
I've followed your advice and give an absolute path to configure
Unfortunely the build stiil aborts, now in another place:
gcc -I/home/jmpg/newlib-cvs/build/i686-pc-linux-gnu/newlib/targ-include
-I/home/jmpg/newlib-cvs/src/newlib/./libc/include -DPACKAGE=\"newlib\"
-DVERSION=\"1.11.0\" -I. -I/home/jmpg/newlib-cvs/src/newlib/libc/stdio
-O2 -DMB_CAPABLE -Wall -D_I386MACH_ALLOW_HW_INTERRUPTS
-D_LOOSE_KERNEL_NAMES -DHAVE_FCNTL -DWANT_IO_POS_ARGS -DWANT_IO_LONG_DBL
-fPIC -D_I386MACH_NEED_SOTYPE_FUNCTION -DMISSING_SYSCALL_NAMES
-fno-builtin -O2 -g -O2 -O2 -g -O2 -c
/home/jmpg/newlib-cvs/src/newlib/libc/stdio/findfp.c -fPIC -DPIC -o
.libs/findfp.o
In file included from
/home/jmpg/newlib-cvs/build/i686-pc-linux-gnu/newlib/targ-include/sys/lock.h:7,
from
/home/jmpg/newlib-cvs/src/newlib/libc/stdio/findfp.c:25:
/usr/include/bits/libc-lock.h:27:36: linuxthreads/internals.h: No such
file or directory
make[4]: *** [findfp.lo] Error 1
José Gonçalves
What level of glibc are you using? Newlib turns on the _LIBC flag to get
some special definitions but this flag is used for building glibc and
header files are within their rights to expect to drag things in the from the glibc
sources. Meshing newlib and glibc header files so they work in harmony will be an
on-going job. Can you send me a copy of your /usr/include/bits/libc-lock.h?
-- Jeff J.