Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 520400 - Fails to link binaries on ppc64
Summary: Fails to link binaries on ppc64
Alias: None
Product: Fedora
Classification: Fedora
Component: fpc
Version: 12
Hardware: All
OS: Linux
Target Milestone: ---
Assignee: Joost van der Sluis
QA Contact: Fedora Extras Quality Assurance
Depends On:
Blocks: FE-ExcludeArch-ppc64, F-ExcludeArch-ppc64
TreeView+ depends on / blocked
Reported: 2009-08-31 10:51 UTC by Hans de Goede
Modified: 2010-12-05 06:31 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2010-12-05 06:31:08 UTC

Attachments (Terms of Use)

Description Hans de Goede 2009-08-31 10:51:06 UTC

Not sure if this is a fpc issue, as things used to work before, so it might
be caused by some underlying toolchain changes, but I have to start somewher.

When rebuilding hedgewars, which is written in pascal, I got the following build error on ppc64:

Linking ../bin/hwengine
/usr/bin/ld: warning: ../bin/link.res contains output sections; did you forget -T?
/usr/bin/ld: skipping incompatible /usr/lib/gcc/ppc64-redhat-linux/4.4.1/32/crtbegin.o when searching for /usr/lib/gcc/ppc64-redhat-linux/4.4.1/32/crtbegin.o
/usr/bin/ld: cannot find /usr/lib/gcc/ppc64-redhat-linux/4.4.1/32/crtbegin.o
hwengine.dpr(420,68) Error: Error while linking
hwengine.dpr(420,68) Fatal: There were 1 errors compiling module, stopping
Fatal: Compilation aborted

What is happening here is that while building a 64 bit ppc binary, the linker
is trying to use a 32 bit crtbegin, which unsurprisingly fails.

I'm not sure if fpc is telling the linker which crtbegin to use explicitly or
wether it is adding this itself to the object files to link list (which is normal behaviour).

What may help is making sure -m64 gets passed as flag to ld / gcc (if used as
ld frontend). On x86_64 no passing in -m64 while linking 64 bit binaries is not an issue 64 bit is the default there, but on ppc the default is to build 432 bits binaries.

Comment 1 Joost van der Sluis 2009-08-31 12:44:14 UTC
There's indeed a bug in the configuration-file /etc/fpc.cfg:

# searchpath for libraries
#ifdef cpux86_64/lib64/fpc

#ifdef cpui386/lib64/fpc

The ifdef should check for 32 bit or 64 bit processor. I'll look at it tonight.

Comment 2 Joost van der Sluis 2009-08-31 19:01:15 UTC
My comment above was only a problem on F-11. On rawhide the ifdef seems ok. So '/usr/lib/gcc/x86_64-redhat-linux/4.4.1' is added to the library-path passed to ld. That should be enough?

Do you have access to a ppc64 machine? In that case you can try to compile with the -sh compiler-option. Then a script and link.res link-script will be generated which you can run to link manually. Then you can see what goes wrong exactly.

Comment 3 Hans de Goede 2009-09-01 08:33:31 UTC
(In reply to comment #2)
> My comment above was only a problem on F-11. On rawhide the ifdef seems ok. So
> '/usr/lib/gcc/x86_64-redhat-linux/4.4.1' is added to the library-path passed to
> ld. That should be enough?

So fpc is not using gcc as front end, but it is assembling the cmdline for ld itself (makes sense), hmm I still have the feeling it is adding
usr/lib/gcc/x86_64-redhat-linux/4.4.1/32 to the linker path on ppc64 then though.

> Do you have access to a ppc64 machine?

I'm afraid not.

Comment 4 Bug Zapper 2009-11-16 11:51:57 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 12 development cycle.
Changing version to '12'.

More information and reason for this action is here:

Comment 5 Hans de Goede 2009-11-23 21:46:22 UTC
Note I just had an idea wrt this bug, there are test systems available for Fedora contributors as part of the Fedora infrastructure. Including ppc machines. I cannot find the wiki page atm, but if you ask in #fedora-devel or #fedora-admin I'm sure they can help you get access to a ppc64 system.

Comment 6 Bug Zapper 2010-11-04 10:17:19 UTC
This message is a reminder that Fedora 12 is nearing its end of life.
Approximately 30 (thirty) days from now Fedora will stop maintaining
and issuing updates for Fedora 12.  It is Fedora's policy to close all
bug reports from releases that are no longer maintained.  At that time
this bug will be closed as WONTFIX if it remains open with a Fedora 
'version' of '12'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version prior to Fedora 12's end of life.

Bug Reporter: Thank you for reporting this issue and we are sorry that 
we may not be able to fix it before Fedora 12 is end of life.  If you 
would still like to see this bug fixed and are able to reproduce it 
against a later version of Fedora please change the 'version' of this 
bug to the applicable version.  If you are unable to change the version, 
please add a comment here and someone will do it for you.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events.  Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

The process we are following is described here:

Comment 7 Bug Zapper 2010-12-05 06:31:08 UTC
Fedora 12 changed to end-of-life (EOL) status on 2010-12-02. Fedora 12 is 
no longer maintained, which means that it will not receive any further 
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of 
Fedora please feel free to reopen this bug against that version.

Thank you for reporting this bug and we are sorry it could not be fixed.

Note You need to log in before you can comment on or make changes to this bug.