Hi, 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: http://koji.fedoraproject.org/koji/getfile?taskID=1645075&name=build.log 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.
There's indeed a bug in the configuration-file /etc/fpc.cfg: # searchpath for libraries #ifdef cpux86_64/lib64/fpc -Fl/usr/lib/gcc/x86_64-redhat-linux/4.4.1 #endif #ifdef cpui386/lib64/fpc -Fl/usr/lib/gcc/x86_64-redhat-linux/4.4.1/32 #endif #-Fl/pp/lib #-Fl/lib;/usr/lib The ifdef should check for 32 bit or 64 bit processor. I'll look at it tonight.
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 ppas.sh script and link.res link-script will be generated which you can run to link manually. Then you can see what goes wrong exactly.
(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.
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: http://fedoraproject.org/wiki/BugZappers/HouseKeeping
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.
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: http://fedoraproject.org/wiki/BugZappers/HouseKeeping
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.