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

See the CrossGCC FAQ for lots more information.


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: Errors while making gnatlib


Pee Seeumpornroj <pee@MIT.EDU> wrote:

>     I'm trying to build a GNAT cross compiler from host=i686-linux-pc to target=powerpc-elf.

 AFAIK the 'powerpc-elf' is almost an alias for 'powerpc-sysv'. If we look at the config
entries in the 'gcc-3.3.2/gcc/config.gcc' :

powerpc-*-sysv*)
        tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.
h"
        xm_defines=POSIX
        tmake_file="rs6000/t-ppcos rs6000/t-ppccomm"
         ;;

and :

powerpc-*-elf*)
        xm_defines=POSIX
        tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.
h"
        tmake_file="rs6000/t-ppcgas rs6000/t-ppccomm"
        ;;

the only difference is the target Makefile-fragment. The 'sysv' is for Unix/PPC or
Linux/PPC and the 'elf' for a static variation of it.  So your target is something with
an Unix-like opsys on PowerPC. But you didn't mention that yet...

>  After successfully building binutils, gcc, and newlib, I followed the intruction on GCC
> website to build gnat tools.  I ran into these errors while doing "make gnatlib":
> 
> In file included from /home/pee/XComp_source/CrossGNAT/script/XCompiler/powerpc-elf/include/dirent.h:6,
>                  from adaint.h:38,
>                  from adaint.c:128:
> /home/pee/XComp_source/CrossGNAT/script/XCompiler/powerpc-elf/include/sys/dirent.h:12:25: no include
> path in which to find dirent.h
> I have dirent.h in my $prefix/$target/include, but I don't know why gcc cannot find it.

 As you can see, it was found... But the 'dirent.h' belonging to your Unix-like operating
system was not found, the comment in the found header should have told this :

/home2/usr/local/ppc-eabi/include/sys > less dirent.h
/* <dirent.h> includes <sys/dirent.h>, which is this file.  On a
   system which supports <dirent.h>, this file is overridden by
   dirent.h in the libc/sys/.../sys directory.  On a system which does
   not support <dirent.h>, we will get this file which tries to find
   any other <dirent.h> which may be lurking around.  If there isn't
   one, the user will get an error indicating that there is no
   <dirent.h>.  */

 So your target expect this file being provided by something else...

> In file included from adaint.c:128:
> adaint.h:71: error: parse error before '*' token
> adaint.c:230: error: `MAXPATHLEN' undeclared here (not in a function)

 The 'limits.h' for your opsys should define this, the GCC's own 'limits.h' includes it
in the same way as the 'dirent.h'...

> adaint.c:725: error: parse error before "DIR"
> adaint.c:725: warning: data definition has no type or storage class
>  Moreover, in adaint.c and adaint.h, it doesn't recogize a type DIR.
>  Could you let me know if I'm missing any header file or anything?

 I remember Joel Sherril from Oarcorp telling here that ADA always requires an
opsys where to run. The headers and libs in newlib don't include any support for
some opsys with the 'powerpc-elf'...

 So you maybe are missing an suitable opsys for your PowerPC based HW.  If
so, there are several free choices like RTEMS (http://www.rtems.com), NetBSD
(http://www.netbsd.org) and Linux (http://www.linux.org).  The RTEMS-RTOS
maybe is most 'lightweight' among the mentioned, needing the least amount of
resources like memory and the mentioned Oarcorp is behind this RTOS...

Cheers, Kai

 

------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com


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