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]

Re: More linux->sun problems


On Fri, 13 Jul 2001 02:53:50 -0700
Gabriel Rocha <grocha@neutraldomain.org> wrote:

> Ok, I kind of give up trying blindliy here, I have read both FAQ's
> (which arent totally useless, but pretty close to it, if you're trying
> to use a target that isnt listed...for example, solaris.

 The GCC-manual and the "Installation / Cross-Compiler" should explain
these things... cannot understand where the disgust against the manual
comes from and why the FAQs are always the first to read...  The famous
GNUPro-00r1 PDF-manuals contain the "Install" as an appendix in the
"Compiler tools"...

> I am using this line for my gcc configure 
> 
> ./gcc-2.95.3/configure --target=sparc-sun-solaris2.6
> --prefix=/usr/local/ --with-headers --with-gnu-ld --with-gnu-as -v

 The extra '/' in $prefix causes not so clean search paths :

>   /data/gcc/build-gcc/gcc/xgcc -B/data/gcc/build-gcc/gcc/
> -B/usr/local//sparc-sun-solaris2.6/bin/
> -I/usr/local//sparc-sun-solaris2.6/include

 Preinstalling the target stuff under the '/usr/local/sparc-sun-solaris2.6'
in this case should be enough. No need for the '--with-headers='. Probably
the only header needing fixing is the 'math.h', so fixing it manually later
is possible. Here is the well-known patch, needed for many other targets
too :

----------------- clip --------------------------------------------------
*** math.bak	Tue Dec 28 19:26:13 1999
--- math.h	Tue Dec 28 21:12:03 1999
***************
*** 72,78 ****
--- 72,82 ----
  extern enum version _lib_version;
  #endif
  
+ #ifdef __cplusplus
+ struct math_exception {
+ #else
  struct exception {
+ #endif
  	int type;
  	char *name;
  	double arg1;
***************
*** 183,189 ****
--- 187,197 ----
  /*
   * SVID
   */
+ #ifdef __cplusplus
+ extern int matherr __P((struct math_exception *));
+ #else
  extern int matherr __P((struct exception *));
+ #endif
  
  /*
   * IEEE Test Vector
----------------- clip --------------------------------------------------

 Also the 'limits.h' must be seen in the :

  /usr/local/sparc-sun-solaris2.6/sys-include

during the build, and the GCC's own 'stddef.h', 'stdarg.h' and 'varargs.h' must
be disabled after the install -- the fixinc doesn't do these jobs... The Solaris2
FAQ should tell about these things...

> binutils builds fine, same target. I tarred up /usr/lib and /usr/include
> in my solaris machine, untarred them onto my freebsd machine under
> $prefix/$target I get the following error on gmake all-gcc:
> _muldi3
> ./../gcc-2.95.3/gcc/libgcc2.c:42: unistd.h: No such file or directory

 Perhaps the Solaris2.6 C-headers weren't installed into the target machine,
but are only on the install-CDs still... They aren't installed as default,
neither the static libs. The 'unistd.h' surely is among the Solaris2
headers.

 The Solaris2 FAQ (via 'www.sunfreeware.com' or something) tells which
packages contain what on the install-CDs, the 'hea' was a part of the
name for the package containing the headers.

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


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