Boost logo

Boost-Build :

Subject: Re: [Boost-build] Building Boost on OSX
From: Marshall Clow (mclow.lists_at_[hidden])
Date: 2013-08-20 18:52:48


On Aug 20, 2013, at 1:30 PM, Bioxydyn Dev <bioxydyn.dev_at_[hidden]> wrote:

> On Tue, Aug 20, 2013 at 8:05 PM, Marshall Clow <mclow.lists_at_[hidden]> wrote:
>
> On Aug 20, 2013, at 10:28 AM, Bioxydyn Dev <bioxydyn.dev_at_[hidden]> wrote:
>>
>> But I suspect that you _are_ using Apple's linker (ld), and it does not understand -h.
>>
>> Why do you suspect that Apple's linker is being invoked?
>
> Because it doesn't understand -h?
>
>> And why would it not invoke GCC's linker when I've specified the toolset=gcc?
>
>
> because they're both (helpfully) named "ld" ?
> and because if you just download and build gcc, I believe that you don't get a standalone linker.
> [ At least I didn't when building gcc 4.7.2 and 4.8 ]
>
> Please elaborate. Why would it not come with a linker? That doesn't make any sense?

I didn't say that.
I said it didn't come with a *standalone* linker.

if you do:
        g++ junk.cpp -o junk
it will compile and link. (g++ knows how to link)

If you do:
        g++ -c junk,cpp -o junk.o
        ld junk.o -o junk
the first command will produce an object file (junk.o)
and the second will produce an executable (using ld).

b2 issues separate compile and link commands (like the second example)

> How can I check which one it's using.

ld -v is a good place to start.

$ ld -v
@(#)PROGRAM:ld PROJECT:ld64-136
configured to support archs: armv6 armv7 armv7s i386 x86_64
LTO support using: LLVM version 3.2svn, from Apple Clang 4.2 (build 425.0.28)

You can also look at the output from running b2 - it should print the commands that it uses.
b2 -n will print the commands w/o executing them.

> I also stumbled across your C++ musings and Xcode stuff. Very helpful.

Thanks.

> From what I've managed to ascertain it looks like if I want to develop for OS X then I should install the latest version of Xcode. Would you agree?

Yes. Note that there's a "command-line tools" package inside of Xcode that you'll want to install (look in preferences).
It's much easier than fussing with gcc - even if you are using MacPorts, etc.

-- Marshall

Marshall Clow Idio Software <mailto:mclow.lists_at_[hidden]>

A.D. 1517: Martin Luther nails his 95 Theses to the church door and is promptly moderated down to (-1, Flamebait).
        -- Yu Suzuki



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