[fpc-pascal] PowerPC crosscompiler on i386 Mac OS X looks for, wrong assembler and linker
Jonas Maebe
jonas.maebe at elis.ugent.be
Tue Jul 3 10:57:40 CEST 2007
On 3 jul 2007, at 09:45, Adriaan van Os wrote:
>> Maybe you have a ~/.fpc.cfg, or an fpc.cfg in the current directory?
>
> No, there is only one fpc.cfg on my computer and that's the one in /
> etc/
Note the spelling of the first file: .fpc.cfg. Anyway, it doesn't
matter, see below.
>> By
>> default, no prefix is set, so it has to come from some
>> configuration file
>> you have somewhere.You can also try compiling with -va to see which
>> config files are parsed (and see a lot of other debug information).
>> Also, as far as I know you've cross-compiled successfully in the
>> past,
>
> I tried ppcppc, but it turned it to be a PowerPC binary
That's by design (I now see I read your 9165 bug report wrongly).
When doing a cross make all, you create both a cross compiler
(ppcrossXXX) and a native compiler for the selected target platform
(which can be used for bootstrapping on the target platform).
> and it has endian issues <http://www.freepascal.org/mantis/view.php?
> id=9165>.
I meant before that. Or was that the first time ever you tried to
compile a PowerPC binary on an Intel Mac?
Using ppu files with compilers compiled for a different endianess
than the compiler which generated those ppu files is simply something
which is not supported at this time, because no one does that anymore
nowadays (although Daniel is now trying to fix that -- and yes, we
should have given an error message instead of failing due to reading
invalid data from ppu files, but as I said, nobody even tried that
for a very long time). It is not needed either for cross compiling,
because all ppu files are generated using the cross compiler (and the
created native compiler is only intended for bootstrapping).
>> so
>> what changed? Maybe it's better to take this to the mailing list,
>> because
>> this doesn't sound like a bug to me but a configuration problem.
>
> I am doing that now, but I bet it's a bug. Even if not, why is the
> build system so obscure "some configuration file you have
> somewhere" that this can happen ? I am not at all saying that FPC
> should follow GNU conventions, no, but at least the rules are clear
> there. You configure for target, host and build and then the
> Makefile takes cares of the rest.
I'm sorry, but I'm not sure what is obscure here:
a) Under *nix, FPC, like pretty much every other *nix app out there,
supports three different default locations for configuration files,
which are sought in the order current directory, home directory,
global config directory (/etc on e.g. Mac OS X and Linux, /local/etc
under *BSD, ...)
b) when cross compiling, you can configure a prefix which has to be
prepended to the names of the binutils. This is done using the -XP
parameter.
You indeed cannot do point b) with gcc afaik, because I believe that
there the prefixes are hardcoded in the binary (probably specifiable
as parameter to configure). It's debatable whether this is an advantage.
As I asked, please try to use "-va" to see which config files are
loaded by the compiler and which options it encounters and parses.
And just like you now have a problem with fpc, other people also
sometimes have trouble getting cross gcc to build/install properly.
The number of howto's on how to build, install and use a cross-gcc is
quite big.
> If a configuration is not supported or if there is a problem, you
> get a clear error message.
Not always.
Jonas
More information about the fpc-pascal
mailing list