Newbie problem building newlib-1.12.0 for i386-linux
Jeff Johnston
jjohnstn@redhat.com
Thu Aug 12 21:32:00 GMT 2004
Michael,
Sorry for the delay. I am looking for a system to upgrade to glibc 2.3.3,
but please try the following patch. You will have to do a make
clean-target-newlib and rebuild.
You should be targetting for i486-pc-linux-gnu since that is your final target.
-- Jeff J.
Michael Kieser wrote:
> Hi Jeff,
>
> My development System is a P3 system which runs a 2.6.5 kernel with glibc
> 2.3.3.
> And the newlib I need for a target with 486 prozessor, running a 2.6.6 kernel
> without glibc, because of disk space.
>
> Thanks for help
> Michael
>
> Am Montag, 9. August 2004 20:53 schrieben Sie:
>
>>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:1
>>>1, 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/l
>>>>>d 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
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: u64.patch
URL: <http://sourceware.org/pipermail/newlib/attachments/20040812/f2b6b5cf/attachment.ksh>
More information about the Newlib
mailing list