Boost logo

Boost-Build :

From: Jim Gallagher (jim_at_[hidden])
Date: 2008-08-26 10:05:58


> On Tuesday 26 August 2008 11:20:15 Jim Gallagher wrote:
>> Hi,
>>
>> I have a project that needs to be built on Windows and HP-UX PA-RISC.
>> Soon we will add HP IA64 builds as well. I am the build guy, and I
>> would like to use Boost Build to build our project.
>>
>> I have things working OK on Windows, but I'm having problems on HP-UX.
>> In particular, building shared libs results in libs with a .so
>> extension, which is not the PA-RISC convention. How can get I get my
>> Boost Build to produce shared libs with .sl extensions on PA-RISC and
>> .so extensions on IA64? I looked through both the bjam source and the
>> boost-build jam files, but I just don't understand where the extension
>> for shared libs is set.
>
> It is set in tools/types/lib.jam, and there's some support for making
> extension depend on OS.
>

OK, I see it now, thanks.

>>
>> On a slightly different note, I made the following additions to get
>> PIC code for shared libs:
>> In tools/builtin.jam, I added:
>> feature pic : off on : propagated ;
>>
>> In tools/acc.jam, I added:
>> flags acc CFLAGS <pic>off : ;
>> flags acc CFLAGS <pic>on : +Z ;
>>
>> This seems to work, but I'm not sure that "feature pic" belongs in
>> tools/builtin.jam. Is this the right place? I also noticed a commented
>> out line in acc.jam regarding an old feature called shared-linkable
>> that no longer exists, which appears to have done the same thing.
>> Should I resurrect the old feature?
>
> Why do you need this pic feature? For gcc, -fPIC is added when link=shared
> in in effect. It causes issues sometimes, say if one builds a static
> libraries which is then linked into a shared library, but unless you have
> that problem already, I'd suggest keying on link=shared.
>
> - Volodya
>

Volodya,

We are not using the gcc toolset, rather the HP-UX aCC toolset. The HP
compilers do not generate position independent code by default, and
boost build did not add the appropriate compiler switches. When the
link step came, it errored out because +Z was not specified.

Regards,
Jim


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