[fpc-pascal] Linker fails cross compiling from Linux to Mac.
pascal at causal.com
Tue Jan 8 12:07:40 CET 2013
On Tue, Jan 8, 2013 at 9:04 PM, Jonas Maebe <jonas.maebe at elis.ugent.be> wrote:
> On 08 Jan 2013, at 10:49, Bruce Tulloch wrote:
> I had a working Debian Squeeze to Mac OSX Snow Leopard cross-
> What had changed when it stopped working?
I had to upgrade from Debian Sneeze to Wheezy (for other reasons) and
the previously built odcctools linker (derived from the older
cctools-758) required libraries no longer available in Wheezy which
required that I rebuild it from source but the long dead odcctools
source was no longer available so I rebuilt from Apple's upstream
cctools-809 with the new patches.
> This suggests that you are using a linker that is too old.
Should be okay, cctool-809 is 10.6 aware (the
get_macosx_deployment_target() function in the linker reports 10.6
> Are you certain that the used i386-darwin-ld is the one you built from cctools-809?
Yep, I already checked this.
ppas.sh reports /usr/local/opt/cctools/bin/i386-darwin-ld which is correct.
The linker is built with this script (working in a repository I created):
# Compilation parameters, adjust as required...
export TARGET=i386-darwin # OSX target (i386-darwin or x86_64-darwin)
export SYSROOT=/usr/local/opt/osx/MacOSX10.6.sdk # OSX SDK root
export CCTOOLS="809" # OSX cctools version (must be a patched for linux)
export PREFIX=/usr/local/opt/cctools # build host installation directory
cd cctools # working repository
# Checkout revision and patch
hg update -C cctools-$CCTOOLS
hg -R $(hg root)/.hg/patches update -C cctools-$CCTOOLS
hg qpush --all
# configure and build
autoconf && chmod +x configure
CFLAGS="-m32 -D__DARWIN_UNIX03" LDFLAGS="-m32" ./configure \
&& make && make install
hg update -C
hg qpop --all
>> The most obvious thought is that not all objects were built against
>> the same revision of the SDK but I can confirm they are.
> That has no influence anyway. Objects are not really built against an SDK, only
> libraries and applications are. The SDK only affects the linking in case of Pascal
> (in case of C/C++, it also affects the compilation because of the used headers).
Thanks, understood. It's linking the application that presents the problem.
I've noticed that all errors except these two:
command 4 unknown cmd field
command 5 unknown cmd field
disappear IF I enable debug symbols when compiling. Don't know if this
is a clue and it does not appear to matter which type of debug info I
More information about the fpc-pascal