Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-devel / 2013-11

Compiling Lazarus on PPC Linux

5 messages · 3 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Mark Morgan Lloyd

If smartlinking is enabled by appending -CX to fpc.cfg, FPC can build itself on PPC Linux and can build Lazarus, but when lazbuild is used to compile a project I see something like

Free Pascal Compiler version 2.6.2 [2013/02/15] for powerpc Copyright (c) 1993-2012 by Florian Klaempfl and others Target OS: Linux for PowerPC
Compiling SynTest.lpr
Compiling testbase.pas
Assembling testbase
Assembling with smartlinking testbase
/usr/local/share/lazarus-trunk/components/synedit/test/units/powerpc-linux/testbase.sl/TestBase0s87.s: Assembler messages:
/usr/local/share/lazarus-trunk/components/synedit/test/units/powerpc-linux/testbase.sl/TestBase0s87.s:142747: Error: undefined symbol `.Ll2' in operation
/usr/local/share/lazarus-trunk/components/synedit/test/units/powerpc-linux/testbase.sl/TestBase0s87.s:142747: Error: undefined symbol `.Ll1' in operation
..
/usr/local/share/lazarus-trunk/components/synedit/test/units/powerpc-linux/testbase.sl/TestBase0s87.s:145623: Error: undefined symbol `.Ll443' in operation
/usr/local/share/lazarus-trunk/components/synedit/test/units/powerpc-linux/testbase.sl/TestBase0s87.s:145623: Error: undefined symbol `.Ll442' in operation
testbase.pas(652) Error: Error while assembling exitcode 1 /usr/bin/ar: creating
/usr/local/share/lazarus-trunk/components/synedit/test/units/powerpc-linux/libptestbase.a /usr/bin/ar:
/usr/local/share/lazarus-trunk/components/synedit/test/units/powerpc-linux/testbase.sl/Test Base0s87.o: No such file or directory
testbase.pas(652) Error: Error while linking
testbase.pas(652) Fatal: There were 3 errors compiling module, stopping ERROR: failed compiling of project
/usr/local/share/lazarus-trunk/components/synedit/test/SynTest.lpi

Making sure that smartlinking isn't selected eliminates the problem.

Is this something I should be raising as a bug, or accepting as caused by architecture peculiarities?

Please note that either way, this is a request for guidance rather than a complaint.

Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues]

Reply by email

Sven Barth
to Mark Morgan Lloyd
Mark Morgan Lloyd wrote
If smartlinking is enabled by appending -CX to fpc.cfg, FPC can build itself on PPC Linux and can build Lazarus, but when lazbuild is used to compile a project I see something like

[snip]

Show quoted text 9 lines
Making sure that smartlinking isn't selected eliminates the problem. Is this something I should be raising as a bug, or accepting as caused by architecture peculiarities? Please note that either way, this is a request for guidance rather than a complaint.

I'd say raising a bug. Because either FPC should make sure that smartlinking works correctly or it should at least report a warning or error out on platforms where this isn't supported.

Regards,
Sven

Reply by email

Mark Morgan Lloyd
to Sven Barth
Sven Barth wrote 19 lines
On 29.11.2013 23:23, Mark Morgan Lloyd wrote: > If smartlinking is enabled by appending -CX to fpc.cfg, FPC can build > itself on PPC Linux and can build Lazarus, but when lazbuild is used to > compile a project I see something like > [snip] > > Making sure that smartlinking isn't selected eliminates the problem. > > Is this something I should be raising as a bug, or accepting as caused > by architecture peculiarities? > > Please note that either way, this is a request for guidance rather than > a complaint. > I'd say raising a bug. Because either FPC should make sure that smartlinking works correctly or it should at least report a warning or error out on platforms where this isn't supported.

Thanks. I'm fairly confident of my facts but I'll double-check and probably raise as a Lazarus issue.

I'm /hoping/ to find time to exercise FPC etc. on a PPC Mac, which in view of the apparent endian bug could be "interesting".

Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues]

Reply by email

Jonas Maebe
to Mark Morgan Lloyd: If smartlinking is enabled by appending -CX to fpc.cfg, FPC can build itself on PPC Linux…
Mark Morgan Lloyd wrote 14 lines
Free Pascal Compiler version 2.6.2 [2013/02/15] for powerpc Copyright (c) 1993-2012 by Florian Klaempfl and others Target OS: Linux for PowerPC Compiling SynTest.lpr Compiling testbase.pas Assembling testbase Assembling with smartlinking testbase /usr/local/share/lazarus-trunk/components/synedit/test/units/powerpc-linux/testbase.sl/TestBase0s87.s: Assembler messages: /usr/local/share/lazarus-trunk/components/synedit/test/units/powerpc-linux/testbase.sl/TestBase0s87.s:142747: Error: undefined symbol `.Ll2' in operation /usr/local/share/lazarus-trunk/components/synedit/test/units/powerpc-linux/testbase.sl/TestBase0s87.s:142747: Error: undefined symbol `.Ll1' in operation .. /usr/local/share/lazarus-trunk/components/synedit/test/units/powerpc-linux/testbase.sl/TestBase0s87.s:145623: Error: undefined symbol `.Ll443' in operation /usr/local/share/lazarus-trunk/components/synedit/test/units/powerpc-linux/testbase.sl/TestBase0s87.s:145623: Error: undefined symbol `.Ll442' in operation testbase.pas(652) Error: Error while assembling exitcode 1

It looks like a bug in library-based smartlinking. We should probably enable section-based smartlinking on Linux/ppc too, but afaik nobody maintains that platform anymore.

Jonas

Reply by email

Mark Morgan Lloyd
to Jonas Maebe
Jonas Maebe wrote 5 lines
> /usr/local/share/lazarus-trunk/components/synedit/test/units/powerpc-linux/testbase.sl/TestBase0s87.s:145623: Error: undefined symbol `.Ll443' in operation > /usr/local/share/lazarus-trunk/components/synedit/test/units/powerpc-linux/testbase.sl/TestBase0s87.s:145623: Error: undefined symbol `.Ll442' in operation > testbase.pas(652) Error: Error while assembling exitcode 1 It looks like a bug in library-based smartlinking. We should probably enable section-based smartlinking on Linux/ppc too, but afaik nobody maintains that platform anymore.

I'm not sure I'm up to taking on maintenance on a formal basis: there's just too many things I don't know about the innards of the compiler and related subsystems.

I'm happy to continue trying to test on the systems available to me, some of which are fairly uncommon by today's standards but I like to think that eliminating alignment etc. issues that might show up on some platforms but not others is generally worth doing.

Mark Morgan Lloyd markMLl .AT. telemetry.co .DOT. uk [Opinions above are the author's, not those of his employers or colleagues]

Reply by email