linux -> sunos4 crossgcc still not building :(

Kai Ruottu karuottu@freenet.hut.fi
Thu Aug 19 07:39:00 GMT 1999


Fred Anger <anger@triib.com> wrote:

> Ok, so I built egcs-1.1.2 on my sunos4 box, and tarred up everything
> under $builddir/gcc/include, added /usr/include/sys/sysmacros.h (because
> unistd.h needs it), and stuck them all under
> /usr/local/sparc-sun-sunos4/include on my linux box, reconfigured using 
> 
> --program-prefix="sunos4-" 
> --target="sparc-sun-sunos4"
> --with-headers="/usr/local/sparc-sun-sunos4/include"
> 
> and re-ran the build.

 You should have tarred all the target system headers and libs and stuck them
on your Linux box under '/usr/local/sparc-sun-sunos4/', not only the 'fixed' 
headers... The legal aspects may say that only those 'copied-by-gcc' may be
transferred, but it is another problem...

> Now it's complaining about parse errors.
> _muldi3
> In file included from ../../../../egcs-1.1.2/gcc/libgcc2.c:41:
> include/stdlib.h:43: parse error before `mbstowcs'
> include/stdlib.h:43: warning: data definition has no type or storage
> class
> include/stdlib.h:44: parse error before `wcstombs'
> include/stdlib.h:44: warning: data definition has no type or storage
> class
> 
> *** lines 43-44 from stdlib.h are below ***
> extern size_t mbstowcs _PARAMS((__WCHAR_TYPE__ *, const char *,
> __SIZE_TYPE__ ))
> ;
> extern size_t wcstombs _PARAMS((char *, const __WCHAR_TYPE__ *,
> __SIZE_TYPE__ ))
> ;

 The error messages "parse error before `mbstowcs'" and "parse error before 
`wcstombs'" very clearly say what is wrong -- it doesn't know what the hell 
the 'size_t' means...

 It is defined in 'stddef.h', probably in '<sys/types.h>' etc., but why 
'stdlib.h' didn't got it defined earlier is a problem for you to track 
and solve... Ok, that was a joke, I help you a little... My 'sparc-sunos4.1' 
<stdlib.h> starts as :

---------------- clip -----------------
#ifndef	_STDLIB_H
#define	_STDLIB_H

/*	@(#)stdlib.h 1.2 89/10/10 SMI; from include/stdlib.h 1.6 */

#include <sys/stdtypes.h>	/* to get size_t */
#include <malloc.h>
---------------- clip -----------------

 So the <sys/stdtypes.h> should have the 'size_t' definition, just
as the comment says... You can continue looking at that... My thought
is that the 'fixincludes' fixed something wrong...

 Anyhow as an general rule the native Linux-headers shouldn't ever be
used with a cross-compiler (unless a 'Linux-gnulibc1-to-Linux-gnu' or 
something)...

 Cheers, Kai

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



More information about the crossgcc mailing list