Boost logo

Boost-Build :

From: Boris Gubenko (Boris.Gubenko_at_[hidden])
Date: 2007-09-26 12:46:06


More testing on HP-UX PA-RISC revealed the need to specify -fPIC on the link
command. The patch I've just uploaded to the ticket #1228 has this change.

This patch has been tested on both HP-UX ia64 and PA-RISC with gcc 4.2.1 and
3.4.2, respectively. The results are on the web. Oliver did independent testing
on PA-RISC with gcc 3.4.4.

Both Oliver and I agree that modified gcc.jam which adds support for HP-UX, both
architectures, is ready for the prime time.

Volodya, please, review changes and let me know if I can check modified gcc.jam
in.

Thanks,
  Boris

----- Original Message -----
From: "Boris Gubenko" <Boris.Gubenko_at_[hidden]>
To: "Boost.Build developer's and user's list" <boost-build_at_[hidden]>
Cc: "Oliver Kowalke" <Oliver.Kowalke_at_[hidden]>; "Boris Gubenko"
<Boris.Gubenko_at_[hidden]>
Sent: Thursday, September 20, 2007 3:19 PM
Subject: Re: [Boost-build] broken toolchain gcc + HP/UX-PA RISC -> ticket
1228with patches

>I use modified gcc.jam for testing Boost on HP-UX/ia64 with gcc 4.2.1. The
>results
> are available on the web, see column: "HP-UX_ia64_gcc". While some tests fail,
> no
> failure can be attributed to a problem in gcc.jam. This jamfile also seems to
> work on
> PA-RISC: I did some limited testing -- setup phase of regression.py -- and all
> the programs
> that are supposed to be built at this stage have been successfully built. I
> don't have the
> resources to do full testing on PA-RISC. On both platforms, my user-config.jam
> has just:
> 'using gcc ;'
>
> Attached patch shows what I've done. Like patch in ticket #1228, it implements
> the
> suggestion in http://article.gmane.org/gmane.comp.lib.boost.build/15598 Unlike
> patch
> in ticket #1228, it makes sure that '-static' option and soname is not used on
> HP-UX.
> The latter eliminates "ld: (Warning) Can't hide symbol ..." warnings mentioned
> in:
> http://lists.boost.org/Archives/boost/2007/09/127035.php There are other
> differences.
>
> Should I add the patch below to the ticket #1228? Should I commit it and,
> then, if testing
> on PA-RISC reveals some problem we can modify gcc.jam accordingly? From tests
> results
> on HP-UX/ia64, this patch works just fine on this platform, so, if any change
> is needed, most
> likely it will be to address some problem specific to PA-RISC.
>
> When replying to this mail, please, cc me on the reply: boris.gubenko_at_[hidden]
> I know for sure that I don't get all messages from boost-build list.
>
> Thanks,
> Boris
>
> Index: tools/gcc.jam
> ===================================================================
> --- tools/gcc.jam (revision 39418)
> +++ tools/gcc.jam (working copy)
> @@ -4,6 +4,7 @@
> # Copyright (c) 2005 Reece H. Dunn.
> # Copyright 2006 Ilya Sokolov.
> # Copyright 2007 Roland Schwarz
> +# Copyright 2007 Boris Gubenko.
> #
> # Distributed under the Boost Software License, Version 1.0.
> # (See accompanying file LICENSE_1_0.txt or copy at
> @@ -137,6 +138,10 @@
> {
> linker = osf ;
> }
> + else if [ os.name ] = HPUX
> + {
> + linker = hpux ;
> + }
> else
> {
> linker = gnu ;
> @@ -332,7 +337,7 @@
> # to implement and will increase target path length even more.
> flags gcc.compile OPTIONS <link>shared : -fPIC ;
> }
> -if [ os.name ] != NT && [ os.name ] != OSF
> +if [ os.name ] != NT && [ os.name ] != OSF && [ os.name ] != HPUX
> {
> # OSF does have an option called -soname but it doesn't seem to work as
> # expected, therefore it has been disabled.
> @@ -500,10 +505,6 @@
> flags gcc.link FINDLIBS-SA <find-shared-library> ;
> flags gcc.link LIBRARIES <library-file> ;
>
> -# For <runtime-link>static we made sure there are no dynamic libraries
> -# in the link
> -flags gcc.link OPTIONS <runtime-link>static : -static ;
> -
> # Now, the vendor specific flags
> # The parameter linker can be either gnu or sun
> rule init-link-flags ( toolset linker condition )
> @@ -608,6 +609,13 @@
> flags $(toolset).link OPTIONS $(condition)/<link>shared
> : -mimpure-text
> : unchecked ;
> }
> +
> + case hpux :
> + {
> + flags $(toolset).link OPTIONS $(condition)/<debug-symbols>off
> : -Wl,-s
> + : unchecked ;
> + }
> +
> case * :
> {
> errors.user-error
> @@ -734,10 +742,6 @@
> {
> # gcc on IRIX does not support multi-threading, don't set anything
> here.
> }
> - case HP_UX :
> - {
> - # gcc on HP-UX does not support multi-threading, don't set anything
> here
> - }
> case Darwin :
> {
> # Darwin has no threading options, don't set anything here.
> @@ -750,6 +754,17 @@
> }
> }
>
> +# For <runtime-link>static we made sure there are no dynamic libraries
> +# in the link.
> +# On HP-UX not all system libraries exist as archived libraries (for example,
> +# there is no libunwind.a), so, on this platform, the -static option cannot
> +# be specified.
> +
> +if [ os.name ] != HPUX
> +{
> + flags gcc.link OPTIONS <runtime-link>static : -static ;
> +}
> +
> local rule cpu-flags ( toolset variable : architecture : instruction-set + :
> values + : default ? )
> {
> if $(default)
>
> ----- Original Message -----
> From: <Oliver.Kowalke_at_[hidden]>
> To: <boost-build_at_[hidden]>
> Sent: Tuesday, September 04, 2007 2:27 AM
> Subject: [Boost-build] broken toolchain gcc + HP/UX-PA RISC -> ticket 1228with
> patches
>
>
>> Hi,
>> because the toolchain of gcc + HP/UX-PA RISC is broken I've created an
>> new ticket (http://svn.boost.org/trac/boost/ticket/1228) which describes
>> the problem in more detail and provides two patches. The boost.build
>> maintainer should look into the patches if they are correct (because I'm
>> not familiar with boost.build).
>> regards, Oliver
>> _______________________________________________
>> Unsubscribe & other changes:
>> http://lists.boost.org/mailman/listinfo.cgi/boost-build
>>
>


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