Boost logo

Boost-Build :

From: Doug Gregor (dgregor_at_[hidden])
Date: 2006-04-10 15:14:15


The Darwin linker on Mac OS 10.4.x mangles executables when the "-s"
option is used to strip out debugging symbols. The result is an
executable that always fails like this:

# Getting test case results out of "/Volumes/scratch/dgregor/
BoostRegressionTesting/results/bjam.log"...
dyld: lazy symbol binding failed: lazy pointer not found
dyld: lazy pointer not found

The fix is quite trivial: use the separate "strip" program instead of
tacking the "-s" option onto the linker command line. The following
simple patch makes this change. With it, I'm able to build a proper
process_jam_log and, with any luck, get regression tests up and
running for Mac OS X with BBv2.

As far as I know, this problem only shows up with Apple GCC 4.0.x on
Tiger.

        Cheers,
        Doug

Index: tools/darwin.jam
===================================================================
RCS file: /cvsroot/boost/boost/tools/build/v2/tools/darwin.jam,v
retrieving revision 1.18
diff -u -r1.18 darwin.jam
--- tools/darwin.jam 21 Feb 2006 08:18:22 -0000 1.18
+++ tools/darwin.jam 10 Apr 2006 19:09:11 -0000
@@ -56,7 +56,10 @@
actions link bind LIBRARIES
{
- $(CONFIG_COMMAND) $(ST_OPTIONS) -L"$(LINKPATH)" -o "$(<)" "$(>)"
"$(LIBRARIES)" -l$(FINDLIBS-SA) -l$(FINDLIBS-ST) -framework$(_)$
(FRAMEWORK) $(OPTIONS)
+ $(CONFIG_COMMAND) -L"$(LINKPATH)" -o "$(<)" "$(>)" "$
(LIBRARIES)" -l$(FINDLIBS-SA) -l$(FINDLIBS-ST) -framework$(_)$
(FRAMEWORK) $(OPTIONS)
+ if test "x$(ST_OPTIONS)" = "x-s"; then
+ strip "$(<)"
+ fi
}
actions link.dll bind LIBRARIES


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk