Boost logo

Boost-Build :

From: Boris Gubenko (Boris.Gubenko_at_[hidden])
Date: 2007-09-20 15:19:45


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