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


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

Re: building egcs on Win32 platforms


I agree that Win32, DOS etc are inferior to Unix for development work in general,
but it's possible to make a very workable development gcc environment under DOS or
Windows by taking advantage of gcc's '-b' and '-v' options.

The cross-compilers on my web site have been built such that they can co-exist in
parallel directories under the root DJGPP directories.  EG if the root directory is
C:\XGCC, then the 68k tree goes in C:\XGCC\68K\2_8_1 and the command line to use the
compiler is 'gcc -b 68k ...'.  For Power PC, the tools reside in C:\XGCC\PPC\2_8_1
and the command line is 'gcc -b ppc ...' etc etc.

Under DJGPP, only one environment variable must be set:  'SET
DJGPP=C:\XGCC\DJGPP.ENV' and in addition the bin subdirectory must be added to the
path, eg 'PATH C:\XGCC\BIN; ...'  These settings stay the same no matter how many
cross compilers are installed.  The native compiler also works fine in this setup
with no changes.

I will have something similiar working under Win32 pretty soon, I just haven't had
much time to look at it lately... in the meantime, if you are interested please take
a look at the tools at http://www.objsw.com and let me know what you think.

Regards

Scott Howard
scott@objsw.com

Kai Ruottu wrote:

> Brendan Simon <brendan@dgs.monash.edu.au> wrote:
>
> > I want to build a powerpc cross compiler to hosted on a Win95/98 box.
> > RTEMS documentation mention getting cygwin32 beta19.  I'm pretty sure
> > this will work but I would like to build with MinGW32.
> > This is because the resulting crosscompiler will be native Win32 program
> > and will be faster (unless cygwin has changed in the last 6 months to a year).
>
>  Being a native Win32 program causes it to behave just like DJGPP and emx
> binaries -- you must toy with all kind of environment settings...  With
> cygwin32 the 'mount' command makes most environment settings unnecessary...
>
>  O.K. if someone can show me how the GCC_EXEC_PREFIX must be set so that
> all the possible cross-compilers work afterwards, I would reconsider my
> pessimism... Hmmm. perhaps just installing all programs, libs and includes to
> the 'install' directory, got with 'gcc-xxx -print-search-dirs', and setting
> GCC_EXEC_PREFIX to be 'D:/usr/local/lib/gcc-lib/' (using the default
> '/usr/local' prefix), where 'D:' is the disk name, could simply make it...
> (but I just don't think so) :
>
> C:\users\default>gcc-mgw32 -v
> Using builtin specs.
> gcc version 2.8.1
>
> C:\users\default>set GCC_EXEC_PREFIX=d:/usr/local/lib/gcc-lib/
>
> C:\users\default>gcc-mgw32 -v
> Reading specs from d:/usr/local/lib/gcc-lib/mingw32/2_8_1/specs
> gcc version 2.8.1
>
> C:\users\default>gcc-mgw32 -print-search-dirs
> install: /usr/local/lib/gcc-lib/mingw32/2_8_1/
> programs: d:/usr/local/lib/gcc-lib/mingw32/2_8_1/;d:/usr/local/lib/gcc-lib/;
> /usr/local/lib/gcc-lib/mingw32/2_8_1/;/usr/local/lib/gcc-lib/mingw32/;
> /usr/lib/gcc/mingw32/2_8_1/;/usr/lib/gcc/mingw32/;
> /usr/local/mingw32/bin/mingw32/2_8_1/;/usr/local/mingw32/bin/
> libraries: d:/usr/local/lib/gcc-lib/mingw32/2_8_1/;d:/usr/local/lib/gcc-lib/;
> /usr/local/lib/gcc-lib/mingw32/2_8_1/;/usr/lib/gcc/mingw32/2_8_1/;
> /usr/local/mingw32/lib/mingw32/2_8_1/;/usr/local/mingw32/lib/
>
>  Surely all the programs and libs will be found if installed to the
>    /usr/local/lib/gcc-lib/<target>/<version>/
> but what about the headers?
>
>  I have many times thought that "something must be done to this problem". It
> is in DJGPP, emx and mingw32, when used as hosts for multiple GCCs at the
> same machine. For quite a lot people this isn't a problem at all... "Just make
> BAT-files to change the environvent settings, before switching from one
> compiler to another" is the normal reaction... But nobody must do this under
> Unix or Cygwin32, so why then when using DJGPP, emx or mingw32 as the host?
>
>  Perhaps this is just the same kind of 'non-problem' as rebooting ones PC many
> times during a workday with DOS/Win or Win9x...
>
>  If having only GCC in the system, there aren't much troubles, but adding the
> first cross-compiler to the system brings all the "how to install and how to
> set the environment" problems...
>
>  If someone else thinks this is a problem and wants to do something to it...
>
>  My solution would be to add a new environment variable 'GCC_INSTALL_DISK',
> or something like that, which would be looked in the 'gcc.c' and 'cccp.c'
> source code with these 'DOS-like' hosts:
>
>   #if defined (__MINGW32__) || defined (__EMX__) || defined (__DJGPP__)
>
>   if (xyz = getenv("GCC_INSTALL_DISK") == NULL)
>   {
>       < add the disk prefix to all search directory names>
>   }
>
> > How is the naitive MinGW32 built from the sources ?  Using itself or
> > Cygwin32 ?
>
>  Feel free to choice... If one has a DOS-to-mingw32 cross-compiler, he
> probably thinks to be capable to build all kind of things for Mingw32
> host under DOS :>
>
>  I prefer using a real Unix system for building cygwin32, mingw32, emx
> and djgpp hosted native and cross-compilers using the Canadian Cross...
>
>  configure --build=i486-linux --host=i386-ming32 --target=i386-mingw32
>
> Cheers, Kai
> ________________________________________________
> To get help for the crossgcc list, send mail to
> crossgcc-request@cygnus.com with the text 'help'
> (without the quotes) in the body of the message.

________________________________________________
To get help for the crossgcc list, send mail to
crossgcc-request@cygnus.com with the text 'help'
(without the quotes) in the body of the message.