tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: [pkgsrc-users] Fixes for Darwin in bootstrap-mk-files

From: Xiyue Deng <>
Subject: [pkgsrc-users] Fixes for Darwin in bootstrap-mk-files
Date: Wed, 28 May 2014 17:59:32 -0700

> Hi,
> Building libexecinfo on my Mac OS X 10.9 it fails. After some digging
> it looks like pkgsrc doesn't handle Darwin correctly. I have proposed
> a serious of fixes in PR/48842. A summary of changes is the following:
> * Add OBJECT_FMT "MACH-O", and replace all misused "ELF" on Darwin.
> * Fix flags (-dynamiclib, -force_load) and extensions (.dylib).
> The relevant patches are attached here as well.
> This is a rather big change to the infrastructure, and obviously it
> needs more work. Comments are very welcome.
> Thanks.

Looks almost good, but -force_load is not really equivalent to
--whole-archive. While --whole-archive is a nullary switch to start
including every object in archive files until --no-whole-archive
comes, -force_load is an unary option takes one archive file at a
time, so

  (GNU) % ld --whole-archive libfoo.a libbar.a libbaz.a --no-whole-archive

is equivalent to

  (Apple) % ld -force_load libfoo.a -force_load libbar.a -force_load libbaz.a

Secondly, Apple ld came with old MacOS X (< 10.6; I think) didn't have
the -force_load option. GNU Libtool emulates it by manually unpacking
archives and passing objects directly to the linker in that case:

 - PHO -               
OpenPGP public key: 1024D/1A86EF72
Fpr: 5F3E 5B5F 535C CE27 8254  4D1A 14E7 9CA7 1A86 EF72

Attachment: pgp9Hp68Jx1U4.pgp
Description: PGP signature

Home | Main Index | Thread Index | Old Index