Unbreak boost on (at least) alpha, hppa and sparc64

- ensure we don't build the 'context' and 'coroutine' libs, they are not
  portable and the latter depends on the former
- don't use the 'gcc_sparc' backend in Boost.atomic, for it doesn't
  build; use the generic gcc backend based on __sync_*
- stop tweaking cc -march / -mcpu values; this is not desirable on any
  arch and it breaks on sparc64 due to a bogus -mcpu=c3 default
- don't attempt to force -m32 / -m64 flags, this breaks at least alpha
  (64 bits but doesn't understand -m64)

alpha, hppa & sparc64 tests by landry@, amd64 bulk by ajacoutot@
ok jasper@
This commit is contained in:
jca 2015-08-03 18:29:30 +00:00
parent 74c36a9d42
commit 8495a25bd4
4 changed files with 197 additions and 26 deletions

View File

@ -1,10 +1,11 @@
# $OpenBSD: Makefile,v 1.55 2015/07/01 08:41:59 jasper Exp $
# $OpenBSD: Makefile,v 1.56 2015/08/03 18:29:30 jca Exp $
ONLY_FOR_ARCHS= ${GCC4_ARCHS}
COMMENT= free peer-reviewed portable C++ source libraries
VERSION= 1.58.0
REVISION= 0
DISTNAME= boost_${VERSION:S/./_/g}
PKGNAME= boost-${VERSION}
CATEGORIES= devel
@ -15,8 +16,6 @@ SO_VERSION= 6.0
BOOST_LIBS= boost_atomic-mt \
boost_chrono-mt boost_chrono \
boost_container-mt boost_container \
boost_context-mt \
boost_coroutine-mt boost_coroutine \
boost_date_time-mt boost_date_time \
boost_filesystem-mt boost_filesystem \
boost_graph-mt boost_graph \
@ -78,14 +77,14 @@ BJAM_CONFIG= -sICONV_PATH=${LOCALBASE} \
--layout=tagged \
--user-config=${WRKSRC}/tools/build/user-config.jam
# context uses MD bits and is missing support for Alpha,
# 'context' and 'coroutine' use MD bits and miss support for Alpha,
# PA-RISC, SPARC and SuperH. The author does not care
# care about adding support for Alpha and PA-RISC.
BOOTSTRAP= --with-python=${MODPY_BIN} \
--with-python-root=${LOCALBASE} \
--with-python-version=${MODPY_VERSION} \
--without-icu \
--without-libraries=context
--without-libraries=context,coroutine
# python.port.mk makes assumptions about an empty CONFIGURE_STYLE
CONFIGURE_STYLE= none

View File

@ -0,0 +1,15 @@
$OpenBSD: patch-boost_atomic_detail_platform_hpp,v 1.1 2015/08/03 18:29:30 jca Exp $
The gcc_sparc backend doesn't build.
--- boost/atomic/detail/platform.hpp.orig Wed Jul 29 20:47:08 2015
+++ boost/atomic/detail/platform.hpp Wed Jul 29 21:51:19 2015
@@ -59,7 +59,7 @@
#define BOOST_ATOMIC_DETAIL_PLATFORM gcc_arm
-#elif defined(__GNUC__) && defined(__sparc_v9__)
+#elif defined(__GNUC__) && defined(__sparc_v9__) && defined(notyet)
#define BOOST_ATOMIC_DETAIL_PLATFORM gcc_sparc

View File

@ -1,6 +1,6 @@
$OpenBSD: patch-tools_build_src_tools_gcc_jam,v 1.2 2015/07/10 08:13:46 jasper Exp $
$OpenBSD: patch-tools_build_src_tools_gcc_jam,v 1.3 2015/08/03 18:29:30 jca Exp $
--- tools/build/src/tools/gcc.jam.orig Sat Apr 4 19:25:07 2015
+++ tools/build/src/tools/gcc.jam Fri Jul 10 10:13:10 2015
+++ tools/build/src/tools/gcc.jam Thu Jul 30 13:38:29 2015
@@ -337,7 +337,7 @@ class gcc-pch-generator : pch-generator
# Return result of base class and pch-file property as
# usage-requirements.
@ -19,21 +19,60 @@ $OpenBSD: patch-tools_build_src_tools_gcc_jam,v 1.2 2015/07/10 08:13:46 jasper E
toolset.flags gcc.compile OPTIONS <optimization>space : -Os ;
toolset.flags gcc.compile OPTIONS <inlining>off : -fno-inline ;
@@ -453,12 +453,8 @@ rule setup-address-model ( targets * : sources * : pro
local arch = [ feature.get-values architecture : $(properties) ] ;
if $(arch) != arm
{
@@ -421,52 +421,6 @@ rule setup-fpic ( targets * : sources * : properties *
rule setup-address-model ( targets * : sources * : properties * )
{
- local model = [ feature.get-values address-model : $(properties) ] ;
- if $(model)
- {
- local option ;
- local os = [ feature.get-values target-os : $(properties) ] ;
- if $(os) = aix
- {
- if $(model) = 32
- {
- option = -maix32 ;
- }
- else
- {
- option = -maix64 ;
- }
- }
- else if $(os) = hpux
- {
- if $(model) = 32
- {
- option = -milp32 ;
- }
- else
- {
- option = -mlp64 ;
- }
- }
- else
- {
- local arch = [ feature.get-values architecture : $(properties) ] ;
- if $(arch) != arm
- {
- if $(model) = 32
+ if $(model) = 64
{
- {
- option = -m32 ;
- }
- else if $(model) = 64
- {
option = -m64 ;
}
}
@@ -603,11 +599,13 @@ rule compile.fortran ( targets * : sources * : propert
- option = -m64 ;
- }
- }
- # For darwin, the model can be 32_64. darwin.jam will handle that
- # on its own.
- }
- OPTIONS on $(targets) += $(option) ;
- }
}
@@ -603,11 +557,13 @@ rule compile.fortran ( targets * : sources * : propert
actions compile.c++ bind PCH_FILE
{
@ -47,7 +86,7 @@ $OpenBSD: patch-tools_build_src_tools_gcc_jam,v 1.2 2015/07/10 08:13:46 jasper E
"$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -c -o "$(<)" "$(>)"
}
@@ -949,6 +947,7 @@ rule link ( targets * : sources * : properties * )
@@ -949,6 +905,7 @@ rule link ( targets * : sources * : properties * )
actions link bind LIBRARIES
{
@ -55,7 +94,7 @@ $OpenBSD: patch-tools_build_src_tools_gcc_jam,v 1.2 2015/07/10 08:13:46 jasper E
"$(CONFIG_COMMAND)" -L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,$(RPATH) -Wl,-rpath-link$(SPACE)-Wl,"$(RPATH_LINK)" -o "$(<)" $(START-GROUP) "$(>)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)
}
@@ -1012,10 +1011,10 @@ rule link.dll ( targets * : sources * : properties * )
@@ -1012,10 +969,10 @@ rule link.dll ( targets * : sources * : properties * )
quote-rpath $(targets) ;
}
@ -68,3 +107,127 @@ $OpenBSD: patch-tools_build_src_tools_gcc_jam,v 1.2 2015/07/10 08:13:46 jasper E
}
rule setup-threading ( targets * : sources * : properties * )
@@ -1068,123 +1025,3 @@ local rule cpu-flags ( toolset variable : architecture
}
-# Set architecture/instruction-set options.
-#
-# x86 and compatible
-# The 'native' option appeared in gcc 4.2 so we cannot safely use it as default.
-# Use i686 instead for 32-bit.
-toolset.flags gcc OPTIONS <architecture>x86/<address-model>32/<instruction-set> : -march=i686 ;
-cpu-flags gcc OPTIONS : x86 : native : -march=native ;
-cpu-flags gcc OPTIONS : x86 : i486 : -march=i486 ;
-cpu-flags gcc OPTIONS : x86 : i586 : -march=i586 ;
-cpu-flags gcc OPTIONS : x86 : i686 : -march=i686 ;
-cpu-flags gcc OPTIONS : x86 : pentium : -march=pentium ;
-cpu-flags gcc OPTIONS : x86 : pentium-mmx : -march=pentium-mmx ;
-cpu-flags gcc OPTIONS : x86 : pentiumpro : -march=pentiumpro ;
-cpu-flags gcc OPTIONS : x86 : pentium2 : -march=pentium2 ;
-cpu-flags gcc OPTIONS : x86 : pentium3 : -march=pentium3 ;
-cpu-flags gcc OPTIONS : x86 : pentium3m : -march=pentium3m ;
-cpu-flags gcc OPTIONS : x86 : pentium-m : -march=pentium-m ;
-cpu-flags gcc OPTIONS : x86 : pentium4 : -march=pentium4 ;
-cpu-flags gcc OPTIONS : x86 : pentium4m : -march=pentium4m ;
-cpu-flags gcc OPTIONS : x86 : prescott : -march=prescott ;
-cpu-flags gcc OPTIONS : x86 : nocona : -march=nocona ;
-cpu-flags gcc OPTIONS : x86 : core2 : -march=core2 ;
-cpu-flags gcc OPTIONS : x86 : conroe : -march=core2 ;
-cpu-flags gcc OPTIONS : x86 : conroe-xe : -march=core2 ;
-cpu-flags gcc OPTIONS : x86 : conroe-l : -march=core2 ;
-cpu-flags gcc OPTIONS : x86 : allendale : -march=core2 ;
-cpu-flags gcc OPTIONS : x86 : wolfdale : -march=core2 -msse4.1 ;
-cpu-flags gcc OPTIONS : x86 : merom : -march=core2 ;
-cpu-flags gcc OPTIONS : x86 : merom-xe : -march=core2 ;
-cpu-flags gcc OPTIONS : x86 : kentsfield : -march=core2 ;
-cpu-flags gcc OPTIONS : x86 : kentsfield-xe : -march=core2 ;
-cpu-flags gcc OPTIONS : x86 : yorksfield : -march=core2 ;
-cpu-flags gcc OPTIONS : x86 : penryn : -march=core2 ;
-cpu-flags gcc OPTIONS : x86 : corei7 : -march=corei7 ;
-cpu-flags gcc OPTIONS : x86 : nehalem : -march=corei7 ;
-cpu-flags gcc OPTIONS : x86 : corei7-avx : -march=corei7-avx ;
-cpu-flags gcc OPTIONS : x86 : sandy-bridge : -march=corei7-avx ;
-cpu-flags gcc OPTIONS : x86 : core-avx-i : -march=core-avx-i ;
-cpu-flags gcc OPTIONS : x86 : ivy-bridge : -march=core-avx-i ;
-cpu-flags gcc OPTIONS : x86 : haswell : -march=core-avx-i -mavx2 -mfma -mbmi -mbmi2 -mlzcnt ;
-cpu-flags gcc OPTIONS : x86 : k6 : -march=k6 ;
-cpu-flags gcc OPTIONS : x86 : k6-2 : -march=k6-2 ;
-cpu-flags gcc OPTIONS : x86 : k6-3 : -march=k6-3 ;
-cpu-flags gcc OPTIONS : x86 : athlon : -march=athlon ;
-cpu-flags gcc OPTIONS : x86 : athlon-tbird : -march=athlon-tbird ;
-cpu-flags gcc OPTIONS : x86 : athlon-4 : -march=athlon-4 ;
-cpu-flags gcc OPTIONS : x86 : athlon-xp : -march=athlon-xp ;
-cpu-flags gcc OPTIONS : x86 : athlon-mp : -march=athlon-mp ;
-##
-cpu-flags gcc OPTIONS : x86 : k8 : -march=k8 ;
-cpu-flags gcc OPTIONS : x86 : opteron : -march=opteron ;
-cpu-flags gcc OPTIONS : x86 : athlon64 : -march=athlon64 ;
-cpu-flags gcc OPTIONS : x86 : athlon-fx : -march=athlon-fx ;
-cpu-flags gcc OPTIONS : x86 : k8-sse3 : -march=k8-sse3 ;
-cpu-flags gcc OPTIONS : x86 : opteron-sse3 : -march=opteron-sse3 ;
-cpu-flags gcc OPTIONS : x86 : athlon64-sse3 : -march=athlon64-sse3 ;
-cpu-flags gcc OPTIONS : x86 : amdfam10 : -march=amdfam10 ;
-cpu-flags gcc OPTIONS : x86 : barcelona : -march=barcelona ;
-cpu-flags gcc OPTIONS : x86 : bdver1 : -march=bdver1 ;
-cpu-flags gcc OPTIONS : x86 : bdver2 : -march=bdver2 ;
-cpu-flags gcc OPTIONS : x86 : bdver3 : -march=bdver3 ;
-cpu-flags gcc OPTIONS : x86 : btver1 : -march=btver1 ;
-cpu-flags gcc OPTIONS : x86 : btver2 : -march=btver2 ;
-cpu-flags gcc OPTIONS : x86 : winchip-c6 : -march=winchip-c6 ;
-cpu-flags gcc OPTIONS : x86 : winchip2 : -march=winchip2 ;
-cpu-flags gcc OPTIONS : x86 : c3 : -march=c3 ;
-cpu-flags gcc OPTIONS : x86 : c3-2 : -march=c3-2 ;
-##
-cpu-flags gcc OPTIONS : x86 : atom : -march=atom ;
-# Sparc
-cpu-flags gcc OPTIONS : sparc : c3 : -mcpu=c3 : default ;
-cpu-flags gcc OPTIONS : sparc : v7 : -mcpu=v7 ;
-cpu-flags gcc OPTIONS : sparc : cypress : -mcpu=cypress ;
-cpu-flags gcc OPTIONS : sparc : v8 : -mcpu=v8 ;
-cpu-flags gcc OPTIONS : sparc : supersparc : -mcpu=supersparc ;
-cpu-flags gcc OPTIONS : sparc : sparclite : -mcpu=sparclite ;
-cpu-flags gcc OPTIONS : sparc : hypersparc : -mcpu=hypersparc ;
-cpu-flags gcc OPTIONS : sparc : sparclite86x : -mcpu=sparclite86x ;
-cpu-flags gcc OPTIONS : sparc : f930 : -mcpu=f930 ;
-cpu-flags gcc OPTIONS : sparc : f934 : -mcpu=f934 ;
-cpu-flags gcc OPTIONS : sparc : sparclet : -mcpu=sparclet ;
-cpu-flags gcc OPTIONS : sparc : tsc701 : -mcpu=tsc701 ;
-cpu-flags gcc OPTIONS : sparc : v9 : -mcpu=v9 ;
-cpu-flags gcc OPTIONS : sparc : ultrasparc : -mcpu=ultrasparc ;
-cpu-flags gcc OPTIONS : sparc : ultrasparc3 : -mcpu=ultrasparc3 ;
-# RS/6000 & PowerPC
-cpu-flags gcc OPTIONS : power : 403 : -mcpu=403 ;
-cpu-flags gcc OPTIONS : power : 505 : -mcpu=505 ;
-cpu-flags gcc OPTIONS : power : 601 : -mcpu=601 ;
-cpu-flags gcc OPTIONS : power : 602 : -mcpu=602 ;
-cpu-flags gcc OPTIONS : power : 603 : -mcpu=603 ;
-cpu-flags gcc OPTIONS : power : 603e : -mcpu=603e ;
-cpu-flags gcc OPTIONS : power : 604 : -mcpu=604 ;
-cpu-flags gcc OPTIONS : power : 604e : -mcpu=604e ;
-cpu-flags gcc OPTIONS : power : 620 : -mcpu=620 ;
-cpu-flags gcc OPTIONS : power : 630 : -mcpu=630 ;
-cpu-flags gcc OPTIONS : power : 740 : -mcpu=740 ;
-cpu-flags gcc OPTIONS : power : 7400 : -mcpu=7400 ;
-cpu-flags gcc OPTIONS : power : 7450 : -mcpu=7450 ;
-cpu-flags gcc OPTIONS : power : 750 : -mcpu=750 ;
-cpu-flags gcc OPTIONS : power : 801 : -mcpu=801 ;
-cpu-flags gcc OPTIONS : power : 821 : -mcpu=821 ;
-cpu-flags gcc OPTIONS : power : 823 : -mcpu=823 ;
-cpu-flags gcc OPTIONS : power : 860 : -mcpu=860 ;
-cpu-flags gcc OPTIONS : power : 970 : -mcpu=970 ;
-cpu-flags gcc OPTIONS : power : 8540 : -mcpu=8540 ;
-cpu-flags gcc OPTIONS : power : power : -mcpu=power ;
-cpu-flags gcc OPTIONS : power : power2 : -mcpu=power2 ;
-cpu-flags gcc OPTIONS : power : power3 : -mcpu=power3 ;
-cpu-flags gcc OPTIONS : power : power4 : -mcpu=power4 ;
-cpu-flags gcc OPTIONS : power : power5 : -mcpu=power5 ;
-cpu-flags gcc OPTIONS : power : powerpc : -mcpu=powerpc ;
-cpu-flags gcc OPTIONS : power : powerpc64 : -mcpu=powerpc64 ;
-cpu-flags gcc OPTIONS : power : rios : -mcpu=rios ;
-cpu-flags gcc OPTIONS : power : rios1 : -mcpu=rios1 ;
-cpu-flags gcc OPTIONS : power : rios2 : -mcpu=rios2 ;
-cpu-flags gcc OPTIONS : power : rsc : -mcpu=rsc ;
-cpu-flags gcc OPTIONS : power : rs64a : -mcpu=rs64 ;
-# AIX variant of RS/6000 & PowerPC
-toolset.flags gcc AROPTIONS <address-model>64/<target-os>aix : "-X64" ;

View File

@ -1,4 +1,4 @@
@comment $OpenBSD: PLIST,v 1.15 2015/07/01 08:41:59 jasper Exp $
@comment $OpenBSD: PLIST,v 1.16 2015/08/03 18:29:30 jca Exp $
@bin bin/b2
@bin bin/bjam
include/boost/
@ -11559,12 +11559,6 @@ lib/libboost_container-mt.a
@lib lib/libboost_container-mt.so.${LIBboost_container-mt_VERSION}
lib/libboost_container.a
@lib lib/libboost_container.so.${LIBboost_container_VERSION}
lib/libboost_context-mt.a
@lib lib/libboost_context-mt.so.${LIBboost_context-mt_VERSION}
lib/libboost_coroutine-mt.a
@lib lib/libboost_coroutine-mt.so.${LIBboost_coroutine-mt_VERSION}
lib/libboost_coroutine.a
@lib lib/libboost_coroutine.so.${LIBboost_coroutine_VERSION}
lib/libboost_date_time-mt.a
@lib lib/libboost_date_time-mt.so.${LIBboost_date_time-mt_VERSION}
lib/libboost_date_time.a