This is the mail archive of the newlib@sources.redhat.com mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Newbie problem building newlib-1.12.0 for i386-linux


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
Index: libc/sys/linux/sys/types.h
===================================================================
RCS file: /cvs/src/src/newlib/libc/sys/linux/sys/types.h,v
retrieving revision 1.16
diff -u -p -r1.16 types.h
--- libc/sys/linux/sys/types.h	7 Nov 2003 23:47:05 -0000	1.16
+++ libc/sys/linux/sys/types.h	12 Aug 2004 18:06:45 -0000
@@ -190,6 +190,8 @@ typedef __uint64_t              uint64_t
 #define _UINT64_T_DECLARED
 #endif
 
+typedef __uint64_t		u64;
+
 #if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE)
 typedef	struct _physadr {
 	int	r[1];

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]