Trying to figure out what host to use

Kai Ruottu kai.ruottu@luukku.com
Sun Apr 1 00:00:00 GMT 2001


Mark Palmerino wrote:
> 
> Ok, I'm still a bit hazy on the implications of the above.
> 
> Here are some lines from the Makefile in my build-gcc directory:
> 
> MULTILIB_OPTIONS = m68000/m68020/m5200 m68881/msoft-float

 In order to get the mcpu32-specific libs, the 'mcpu32' should also appear
here, ie. the line should be:

  MULTILIB_OPTIONS = m68000/m68020/mcpu32/m5200 m68881/msoft-float

and the MULTILIB_EXCEPTIONS should be:

  MULTILIB_EXCEPTIONS = *mcpu32/*m68881 *m5200/*m68881 *m5200/*msoft-float

to disable the '-mcpu32 -m68881' combination (or can this be possible?)
 
> >> Assembler messages:
> >> Error: invalid switch -mc68020
> >> make: *** [libgcc1-asm.a] Error 1
> 
> I did build binutils 2.9.1 before I attempted to build gcc.  As far as I can
> tell, that worked - with a little coaxing as described below.  I also
> followed the instructions in the FAQ, created a build-binutils directory and
> issued the following from this build directory:
> 
> ../binutils-2.9.1/configure --target=m68k-coff --prefix=/volume/FFS_500/bar
> 
> When this was done, I did the following:
> 
> make all install

 You should have 'as', 'ld' and all the other binutils in:

   /volume/FFS_500/bar/m68k-coff/bin

with their base names. The 'xgcc' searches them there, just check with the

   ./xgcc -print-search-dirs

If the FAQ, "Where GCC searches the programs, libraries and headers?" wasn't
answered in the CrossGCC FAQ in the beginning, this is really weird... More
than half of the questions are related to the problems with finding the needed
stuff...

BTW, the headers are searched with the 'cpp' and the './cpp -v' gives the
headers paths, at least with the newer 'cpp's:

E:\usr\local\lib\gcc-lib\m68k-coff\2_95.2>cpp -v
GNU CPP version 2.95.2 19991024 (release) (68k, Motorola syntax)
#include "..." search starts here:
#include <...> search starts here:
 \usr\local\lib\gcc-lib\m68k-coff\2_95.2\include
 \usr\local\lib\gcc-lib\m68k-coff\2_95.2\..\..\..\..\m68k-coff\include
End of search list.
The following default directories have been omitted from the search path:
 /usr/local/lib/gcc-lib/m68k-coff/2_95.2/../../../../include/g++-3
 /usr/local/lib/gcc-lib/m68k-coff/2_95.2/../../../../m68k-coff/sys-include
End of omitted list.
# 1 ""

(A Ctrl-C is needed to stop...)

 Getting the GCC manual is recommended and browsing the "Installation / Cross-
Compiler" section in it, saying for instance about the binutils:

------------------------- clip ---------------------------------------------
Tools and Libraries for a Cross-Compiler

If you have a cross-assembler and cross-linker available, you should install
them now.  Put them in the directory /usr/local/target/bin.  Here is a table
of the tools you should put in this directory:

as
  This should be the cross-assembler.

ld
  This should be the cross-linker.

ar
  This should be the cross-archiver: a program which can manipulate archive
  files (linker libraries) in the target machine's format.

ranlib
  This should be a program to construct a symbol table in an archive file.  

The installation of GNU CC will find these programs in that directory, and
copy or link them to the proper place to for the cross-compiler to find them
when run later.

The easiest way to provide these files is to build the Binutils package and
GAS.  Configure them with the same --host and --target options that you use
for configuring GNU CC, then build and install them.  They install their
executables automatically into the proper directory.  Alas, they do not
support all the targets that GNU CC supports.
------------------------- clip ---------------------------------------------

 The GCC-manual is available with the GCC sources and is built into the
GNU-info format, but HTML, PS and PDF-format ones are available in the
net, for instance at:

   http://www.redhat.com/support/manuals/gnupro.html

in PDF-format... Recommended...

> Ok, with the above change, the compile continues successfully to a
> completion. And the install puts things in the /volume/FFS_500/bar2
> directory.

 If the '--prefix=/volume/FFS_500/bar' really was used, how on earth the
'/volume/FFS_500/bar2' was used in installation? Or was this a typo?
Anyhow the 'as' and 'ld' etc. should be in the $prefix/$target/bin, in
this case in the '/volume/FFS_500/bar/m68k-coff/bin' so that the 'xgcc'
could find them...

Cheers, Kai

PS. Please learn the '--help' option and try to use it first with every
GNU tool as an 'quick on-line-manual' for the available options. Like:

E:\usr\local\m68k-coff\bin>as --help
Usage: as [option...] [asmfile...]
Options:
-a[sub-option...]       turn on listings
  Sub-options [default hls]:
  c     omit false conditionals
 ......
 <snip>
 ......
680X0 options:
-l                      use 1 word for refs to undefined symbols [default 2]
-m68000 | -m68008 | -m68010 | -m68020 | -m68030 | -m68040 | -m68060
 | -m68302 | -m68331 | -m68332 | -m68333 | -m68340 | -m68360 | -mcpu32
 | -m5200 | -m5202 | -m5203 | -m5204 | -m5206 | -m5206e | -m5307 | -m5400
                        specify variant of 680X0 architecture [default 68020]
-m68881 | -m68882 | -mno-68881 | -mno-68882
                        target has/lacks floating-point coprocessor
                        [default yes for 68020, 68030, and cpu32]
 <snip>


------
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