Error compiling newlib-1.13.0
Fri Sep 30 22:54:00 GMT 2005
OK, I have checked out the CVS tree on 27 Sep and I'm now a bit closer
to understanding my problems. It seems that my particular version of
/usr/include/linux/types.h includes time.h when __KERNEL_STRICT_NAMES
is not defined, and this causes newlib's time.h to be included
prematurely. I'll take up this issue with the Gentoo developers...
After fixing this I ran into a problem with stdint.h. The version of
stdint.h that is included from
newlib/libc/sys/linux/iconv/gconv_simple.c (line 26) is
newlib/libc/sys/linux/include/stdint.h, which is slightly different
from newlib/libc/include/stdint.h. The one in sys/linux/ doesn't have
typedefs for several types like int16_t and uint16_t, so including it
fails. Here is the compile output:
-O2 -Wall -D_I386MACH_ALLOW_HW_INTERRUPTS -DHAVE_FCNTL -fPIC
-D_I386MACH_NEED_SOTYPE_FUNCTION -DMISSING_SYSCALL_NAMES -fno-builtin
-O2 -g -O2 -c ../../../../../../../newlib-cvs/src/newlib/libc/sys/linux/iconv/gconv_simple.c
-fPIC -DPIC -o .libs/gconv_simple.o
In file included from
error: parse error before "int_least16_t"
warning: type defaults to `int' in declaration of `int_least16_t'
warning: data definition has no type or storage class
error: parse error before "uint_least16_t"
Is there a reason for these differences between
I see that sys/types.h has the missing typedefs, so including it
before stdint.h allows gconv_simple.c to be compiled, but I don't know
if that is in any way the right thing to do.
On 27/09/05, Jeff Johnston <email@example.com> wrote:
> Newlib plays a bit of a balancing act when building natively under
> Linux. It uses some of newlib's header files and some of the native
> header files. I have run into a number of problems as glibc has been
> updated and also some problems as gcc has updated to gcc4.
> Anyway, I recently made a set of patches to the tree to support
> building on FC4. Could you try checking out the CVS tree to see if that
> fixes your problems. I don't have Gentoo and have never tried it so
> you're partly in unchartered territory.
> -- Jeff J.
> Derick Swanepoel wrote:
> > Sorry, forgot about that. I configured newlib with the default host
> > and target, so in my case they are both "i686-pc-linux-gnu".
> > Derick
> > On 27/09/05, Jonathan S. Shapiro <firstname.lastname@example.org> wrote:
> >>I probably can't decipher your problem, but I *can* tell you that
> >>*nobody* can help you without knowing:
> >> What environment (configuration) are you compiling *for*
> >> What environment are you compiling *on*.
> >>On Tue, 2005-09-27 at 15:55 +0200, Derick Swanepoel wrote:
> >>>I am compiling newlib for the first time, but I'm not getting very
> >>>far. I get the following error:
> >>>gcc -I/home/derick/newlib-1.13.0/newlib/targ-include
> >>>-I/home/derick/newlib-1.13.0/newlib/libc/include -DPACKAGE=\"newlib\"
> >>>-DVERSION=\"1.13.0\" -I. -I. -O2 -Wall -D_I386MACH_ALLOW_HW_INTERRUPTS
> >>>-DHAVE_FCNTL -fPIC -D_I386MACH_NEED_SOTYPE_FUNCTION
> >>>-DMISSING_SYSCALL_NAMES -fno-builtin -g -O2 -c argz_add.c -fPIC -DPIC
> >>>-o .libs/argz_add.o
> >>>In file included from /home/derick/newlib-1.13.0/newlib/targ-include/time.h:11,
> >>> from /usr/include/linux/types.h:153,
> >>> from
> >>> from argz_add.c:9:
> >>>error: parse error before "suseconds_t"
> >>>I have determined that it happens because my
> >>>/usr/include/linux/types.h includes time.h before suseconds_t is
> >>>defined in newlib/targ-include/sys/types.h.
> >>>Here are some details about my system:
> >>>Gentoo Linux 2005.1
> >>>gcc 3.4.4
> >>>kernel headers: 2.6.11
> >>>Any help would be appreciated.
More information about the Newlib