Newbie problem building newlib-1.12.0 for i386-linux

Jeff Johnston jjohnstn@redhat.com
Tue Aug 10 06:21:00 GMT 2004


Michael,

   Newlib for x86 linux uses some of the system headers.  What level of glibc 
and what kernel is installed on your machine?

-- Jeff J.

Michael Kieser wrote:
> Thanks for your help,
> 
> but now I get everytime the following error and I don't know how to work 
> arround.
> 
> ...
> gcc -I/home/doc/newlib-build/i686-pc-linux-gnu/newlib/targ-include 
> -I/home/doc/newlib-1.12.0/newlib/libc/include -DPACKAGE=\"newlib\" 
> -DVERSION=\"1.12.0\" -I. -I../../../../../newlib-1.12.0/newlib/libc/search 
> -O2 -DMB_CAPABLE -Wall -D_I386MACH_ALLOW_HW_INTERRUPTS -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-1.12.0/newlib/libc/search/hash.c  -fPIC -DPIC 
> -o .libs/hash.o
> In file included from /usr/include/linux/stat.h:57,
>                  from /home/doc/newlib-build/i686-pc-linux-gnu/newlib/targ-include/sys/stat.h:11,
>                  from ../../../../../newlib-1.12.0/newlib/libc/search/hash.c:44:
> /usr/include/linux/time.h: In function `timespec_to_jiffies':
> /usr/include/linux/time.h:197: error: `u64' undeclared (first use in this 
> function)
> /usr/include/linux/time.h:197: error: (Each undeclared identifier is reported 
> only once
> /usr/include/linux/time.h:197: error: for each function it appears in.)
> /usr/include/linux/time.h:201: error: parse error before "sec"
> /usr/include/linux/time.h:201: error: parse error before ')' token
> /usr/include/linux/time.h: In function `jiffies_to_timespec':
> /usr/include/linux/time.h:214: error: `u64' undeclared (first use in this 
> function)
> /usr/include/linux/time.h:214: error: parse error before "nsec"
> /usr/include/linux/time.h:215: error: `nsec' undeclared (first use in this 
> function)
> /usr/include/linux/time.h: In function `timeval_to_jiffies':
> /usr/include/linux/time.h:236: error: `u64' undeclared (first use in this 
> function)
> /usr/include/linux/time.h:240: error: parse error before "sec"
> /usr/include/linux/time.h:240: error: parse error before ')' token
> /usr/include/linux/time.h: In function `jiffies_to_timeval':
> /usr/include/linux/time.h:252: error: `u64' undeclared (first use in this 
> function)
> /usr/include/linux/time.h:252: error: parse error before "nsec"
> /usr/include/linux/time.h:253: error: `nsec' undeclared (first use in this 
> function)
> make[4]: *** [hash.lo] Fehler 1
> make[4]: Leaving directory 
> `/home/doc/newlib-build/i686-pc-linux-gnu/newlib/libc/search'
> make[3]: *** [all-recursive] Fehler 1
> make[3]: Leaving directory 
> `/home/doc/newlib-build/i686-pc-linux-gnu/newlib/libc'
> make[2]: *** [all-recursive] Fehler 1
> make[2]: Leaving directory `/home/doc/newlib-build/i686-pc-linux-gnu/newlib'
> make[1]: *** [all-recursive-am] Fehler 2
> make[1]: Leaving directory `/home/doc/newlib-build/i686-pc-linux-gnu/newlib'
> make: *** [all-target-newlib] Fehler 2
> doc@gateway:~/newlib-build>
> 
> Don't know, why I can't compile simply as everywhere discribed.
> Thanks for help
> 
> Am Freitag, 6. August 2004 20:48 schrieben Sie:
> 
>>Michael,
>>
>>   Newlib isn't the default C library for a native linux platform such as
>>i386-linux; glibc is.  To get newlib to build for linux, you have to
>>specify the --with-newlib configuration option.  I would suggest you
>>specify your target to be i686-pc-linux-gnu if you are targetting the
>>machine you are building with.
>>
>>-- Jeff J.
>>
>>Michael Kieser wrote:
>>
>>>Hi all,
>>>
>>>I tried to build the newlib  but with or without a toolchain for
>>>i386-linux I never can built it.
>>>
>>>First I extracted newlib-1.12.tar.gz -> $HOME
>>>then created a subdirectory $HOME/newlib-build
>>>then created a subdirectory $HOME/cross
>>>
>>>then cd newlib-build
>>>then ../newlib-1.12.0/configure --prefix=$HOME/cross --target=i386-linux
>>>
>>>result is:
>>>
>>>doc@gateway:~/newlib-build> ../newlib-1.12.0/configure
>>>--prefix=$HOME/cross --target=i386-linux
>>>creating cache ./config.cache
>>>checking host system type... i686-pc-linux-gnu
>>>checking target system type... i386-pc-linux-gnu
>>>checking build system type... i686-pc-linux-gnu
>>>checking for a BSD compatible install... /usr/bin/install -c
>>>*** This configuration is not supported in the following subdirectories:
>>>     target-newlib target-libgloss
>>>    (Any other directories should still work fine.)
>>>checking for i686-pc-linux-gnu-ar... no
>>>checking for ar... ar
>>>checking for i686-pc-linux-gnu-as... no
>>>checking for as... as
>>>checking for i686-pc-linux-gnu-dlltool... no
>>>checking for dlltool... dlltool
>>>checking for
>>>i686-pc-linux-gnu-ld...
>>>/usr/lib/gcc-lib/i586-suse-linux/3.3.3/../../../../i586-suse-linux/bin/ld
>>>checking for i686-pc-linux-gnu-nm... no
>>>checking for nm... nm
>>>checking for i686-pc-linux-gnu-ranlib... no
>>>checking for ranlib... ranlib
>>>checking for i686-pc-linux-gnu-windres... no
>>>checking for windres... windres
>>>checking for i686-pc-linux-gnu-objcopy... no
>>>checking for objcopy... objcopy
>>>checking for i686-pc-linux-gnu-objdump... no
>>>checking for objdump... objdump
>>>checking for i386-linux-ar... no
>>>checking for i386-linux-as... no
>>>checking for i386-linux-dlltool... no
>>>checking for i386-linux-ld... no
>>>checking for i386-linux-nm... no
>>>checking for i386-linux-ranlib... no
>>>checking for i386-linux-windres... no
>>>checking whether to enable maintainer-specific portions of Makefiles...
>>>no updating cache ./config.cache
>>>creating ./config.status
>>>creating Makefile
>>>doc@gateway:~/newlib-build>
>>>
>>>with i386-linux toolchain there is the same result but
>>>...
>>>checking for i386-linux-ar...  i386-linux-ar
>>>checking for i386-linux-as...  i386-linux-as
>>>checking for i386-linux-dlltool... i386-linux-dlltool
>>>checking for i386-linux-ld... i386-linux-ld
>>>checking for i386-linux-nm...  i386-linux-nm
>>>checking for i386-linux-ranlib... i386-linux-ranlib
>>>checking for i386-linux-windres... 386-linux-windres
>>>...
>>>
>>>try of make all install ends up everytime with
>>>
>>>doc@gateway:~/newlib-build> make all install
>>>make[1]: Entering directory `/home/doc/newlib-build/etc'
>>>make[1]: Für das Ziel »all« ist nichts zu tun.
>>>make[1]: Leaving directory `/home/doc/newlib-build/etc'
>>>/bin/sh ../newlib-1.12.0/mkinstalldirs /home/doc/cross /home/doc/cross
>>>make[1]: Entering directory `/home/doc/newlib-build/etc'
>>>for f in standards.info configure.info; do \
>>>  if test -f ../../newlib-1.12.0/etc/`echo $f | sed -e
>>>'s/.info$/.texi/'`; then \
>>>    if make "MAKEINFO=/home/doc/newlib-1.12.0/missing makeinfo
>>>--split-size=5000000" $f; then \
>>>      true; \
>>>    else \
>>>      exit 1; \
>>>    fi; \
>>>  fi; \
>>>done
>>>make[2]: Entering directory `/home/doc/newlib-build/etc'
>>>make[2]: »standards.info« ist bereits aktualisiert.
>>>make[2]: Leaving directory `/home/doc/newlib-build/etc'
>>>make[2]: Entering directory `/home/doc/newlib-build/etc'
>>>make[2]: »configure.info« ist bereits aktualisiert.
>>>make[2]: Leaving directory `/home/doc/newlib-build/etc'
>>>/bin/sh ../../newlib-1.12.0/etc/../mkinstalldirs /home/doc/cross/info
>>>if test ! -f standards.info; then cd ../../newlib-1.12.0/etc; fi; \
>>>if test -f standards.info; then \
>>>  for i in standards.info*; do \
>>>    /usr/bin/install -c -m 644 $i /home/doc/cross/info/$i; \
>>>  done; \
>>>fi
>>>if test ! -f configure.info; then cd ../../newlib-1.12.0/etc; fi; \
>>>if test -f configure.info; then \
>>>  for i in configure.info*; do \
>>>    /usr/bin/install -c -m 644 $i /home/doc/cross/info/$i; \
>>>  done; \
>>>fi
>>>make[1]: Leaving directory `/home/doc/newlib-build/etc'
>>>doc@gateway:~/newlib-build>
>>>
>>>I don't need info files, only the newlib
>>>can anybody help me, getting the newlib compiled ??
>>>
>>>Thank
> 
> s



More information about the Newlib mailing list