Subject: Re: gcc and cross-compilers
From: [email-masked] (Kai Ruottu)

28 Apr 1998 00:19:58 -0700
Message-ID: <[email-masked]>
References: [email-masked] (Kai Ruottu)
Reply-To: [email-masked]
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
To: Hannu Koivisto <[email-masked]>
Cc: [email-masked]

Hannu Koivisto wrote:

> What about making both mingw32->mingw32 and linux->mingw32
> compilers (egcs) under Linux? For a long time I've wanted to
> experiment with latest egcs snapshots (I'm using these under
> Linux) for making Win32-mingw apps (both under Linux and NT),
> but as your www-page was lacking the mingw32 cross-compiling
> instructions at least when I checked it last time, I haven't yet
> been brave enough to try myself :) Is there something special I
> should remember before I start hitting my head to the wall?

 The rest of the message went badly over my head (reilusti yli
 hilseen)...

 Here's some problems and bugs revealed when trying to build a 
Linux-to-mingw32 compiler from the egcs-1.0.2 sources and using
the Mumit's libs and headers :
-------------------------------------------------------------
Problem:  Needs 'crt0.o' as the startup routine, mingw32 has 'crt1.o'.
Solution: make a symbolic link from 'crt1.o' to 'crt0.o'

Problem:  The prototypes for 'write()' and 'fdopen()' are wrong.
Solution: change 'unsigned int' to 'size_t' in 'write()' and add
          'const' before 'char *' in 'fdopen()'.

Problem:  The header 'sys/param.h' is missing.
Solution: add empty 'sys/param.h'.

Problem:  The header 'sys/times.h' is missing.
Solution: add a dummy 'sys/times.h' to contain '#include <time.h>'

Problem:  The routines 'dtime_', 'etime_', 'alarm' and 'sys_clock'
          for libf2c need structs which the mingw32 headers don't have.
Solution: disable the making and archiving of these routines.

Problem:  When building 'liberty.a' for the mingw32 target, we 
		  get the error :
		  strerror.c:461: conflicting types for `__imp__sys_errlist'          
		  include/errno.h:116: previous declaration of `__imp__sys_errlist' 
Solution: remove NEED_sys_errlist from i386-mingw32/libiberty/config.h.

Problem:  Prototypes for 'mkdir()' in 'dir.h' and 'umask()' in 'io.h'
          are wrong.
Solution: Correct them to be right...
-------------------------------------------------------------

 I got the C, C++, Objective-C, F77, libiberty and libiostream
made, but when trying the libstdc++, the make stopped with
"no rule to make 'all'". Ok, I'll run 'make clean' and try again...
Mumit's C++ libs are quite fat, so self-made slimmer ones will
be needed (how a library archive can be stripped anyhow?)

 After making five or so egcs-1.0.2-based compilers, this seems
the hardest to make... Linux-to-cygwin32 with egcs-1.0.2 was just
a piece of cake...

 Cheers (Laatokka ympäri), Kai
-
For help on using this list (especially unsubscribing), send a message to
"[email-masked]" with one line of text: "help".