[fpc-devel] Revisiting MacOS for PPC (and possibly 68K)
pascaldragon at googlemail.com
Mon Dec 10 17:39:39 CET 2012
Am 10.12.2012 17:24, schrieb Mark Morgan Lloyd:
> Sven Barth wrote:
>> Am 10.12.2012 12:15, schrieb Mark Morgan Lloyd:
>>> I'm currently cross-compiling the MacOS RTL for PPC on a PC. I've
>>> fixed some trivial issues that had crept in since this was last
>>> maintained, some of which affect other targets, but am stuck at the
>>> errors below.
>>> /usr/local/src/fpc/fpc-trunk/compiler/ppcXppc -Ur -Tmacos -Ppowerpc
>>> -XPpowerpc-macos- -Xr -Ur -Xs -O2 -n -Fi../inc -Fi../powerpc -FE.
>>> -FU/usr/local/src/fpc/fpc-trunk/rtl/units/powerpc-macos -dpowerpc
>>> -dRELEASE -Us -Sg system.pp
>>> text.inc(1789,14) Warning: Implicit string type conversion from
>>> "AnsiString" to "UnicodeString"
>>> text.inc(2013,44) Warning: Implicit string type conversion with
>>> potential data loss from "UnicodeString" to "AnsiString"
>>> system.pp(481,2) Warning: User defined: To be implemented - using
>>> system.pp(571) Fatal: Internal error 2003090901
>>> Fatal: Compilation aborted
>>> make: *** [system.ppu] Error 1
>>> make: Leaving directory `/usr/local/src/fpc/fpc-trunk/rtl/macos'
>>> Allowing that system.pp ends at line 570, I presume that something
>>> after line 481 is confusing the compiler. Any suggestions would be
>> Not necessarily. It seems to be related to something "external".
>> You could try the following by adjusting the compiler source: before
>> the internalerror (in compiler/powerpc/agppcmpw.pas) add a
>> "writeln(tasmsymbol(p).typ)" and maybe also a "AsmFlush" so that the
>> assembler file up to the error will be written so you can see in
>> which function the problem exists.
> system.pp(481,2) Warning: User defined: To be implemented - using
> system.pp(571) Fatal: Internal error 2003090901
> Fatal: Compilation aborted
Hmm... could you output "p.name" as well? maybe that will give us a
lead... also two of the viable locations where such a tasmsymbol is
created is in compiler/aasmdata.pas in TAsmData.RefAsmSymbol and
TAsmData.WeakRefAsmSymbol. So you could writeln something (like what "s"
is) in case the result is not assigned...
> ./units/powerpc-macos/system.s is 28 bytes, containing only
> string asis
> aligning off
>> You could also debug the compiler (copy the command line from the
>> Makefile's output) when compiling the system unit and place a
>> breakpoint on the internalerror and then investigate the "p" variable.
> I'm not very good with gdb (noting also Pierre's contribution, but
> it's probably somewhat ahead of my skills at the moment). How do I get
> the true name of the place I need to set the breakpoint?
Couldn't you use Lazarus for that? Open the "ppcppc.lpi" project, adjust
the command line arguments, compile and run... at least that's how I do
my compiler development ;)
More information about the fpc-devel