mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-17 01:46:58 +02:00
Gentoo Vanilla
This commit is contained in:
parent
f58e145ba8
commit
60adb07a63
@ -1,3 +1,2 @@
|
||||
DIST boost_1_63_0.tar.bz2 81984414 BLAKE2B 227c4432bd3ca0eb390048ec85047958fcb6ae289996501812cd8b13bf74bbe9b677d0110948265cab59a60deb36c4fc08440af74ac5a5219ea4eaea4fa6918f SHA512 c915c5f5778dee49b8e9d0a40f37f90f56fb1fdb1d8ce92d97bf48bc7bc462212487badfe4bbe30b06196d1149cfb221da12ac54e97499b0d4cb6466813bb4ad
|
||||
DIST boost_1_65_0.tar.bz2 82597718 BLAKE2B 0080956d6ad2f14130ce4a4734b1bd1ce83d3651b226653689e02770baa83cf11811ef4e44948ff68a168d9ce5cbfaea4f758970df2b4e9faa2d410181885f5b SHA512 7142650fb8d61e3ef16ba066fc918e087f19e9bc2ad1d6a11fb10bf0d6b1b5ad05ab032f076a5233a1624b3669e952b2cc38b7dc074bbf53018e2970ee90fcdd
|
||||
DIST boost_1_66_0.tar.bz2 85995778 BLAKE2B 9ab1fe396b10ab85d7e4084ec7abb8d785ecd892c8f51aea5a401cb565b111c256533364fe028da74ed376534889f43c5ccbdcd703cd236526ae66a064220765 SHA512 0f34075d35391d66876e5189a01a11880a79428e1b267456348ee148dba9dc3abdc74d568f1853be631d20b584b1c804b42443c266f7622164acfc10be3dab8b
|
||||
DIST boost_1_74_0.tar.bz2 109600630 BLAKE2B 2982f64fccf6fdb3b4b74452e603f459242d7abb42df4162278d9b558b637786a2eb97442126967b19088d591777c64ced8f60a23e71eaa0b7545e80f800de63 SHA512 4ec9c1164ec9b95ce46ba1c073e586c94b3882dce5b7347ea14bbef0c1da230e12aa5328a501ce38cae1b1d7623daa3246325625899179b4cc309242540982a4
|
||||
DIST boost_1_75_0.tar.bz2 121849575 BLAKE2B ce7ecd8bcee518ce54f7e5302f202acbea60cedd6ae9248708c0bb5bbc2713607b2e1967a9e6f77cc20a4c008c1ee4db651def55937efc80407487a7a44fa8d6 SHA512 d86f060245e98dca5c7f3f831c98ea9ccbfa8310f20830dd913d9d4c939fbe7cb94accd35f1128e7c4faf6c27adb6f4bb54e5477a6bde983dfc7aa33c4eed03a
|
||||
|
@ -1,440 +0,0 @@
|
||||
# Copyright 1999-2018 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
PYTHON_COMPAT=( python{2_7,3_{4,5,6}} )
|
||||
|
||||
inherit eutils flag-o-matic multiprocessing python-r1 toolchain-funcs versionator multilib-minimal
|
||||
|
||||
MY_P="${PN}_$(replace_all_version_separators _)"
|
||||
MAJOR_V="$(get_version_component_range 1-2)"
|
||||
|
||||
DESCRIPTION="Boost Libraries for C++"
|
||||
HOMEPAGE="https://www.boost.org/"
|
||||
SRC_URI="https://downloads.sourceforge.net/project/boost/${PN}/${PV}/${MY_P}.tar.bz2"
|
||||
|
||||
LICENSE="Boost-1.0"
|
||||
SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
|
||||
KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt"
|
||||
|
||||
IUSE="context debug doc icu +nls mpi python static-libs +threads tools"
|
||||
|
||||
RDEPEND="icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
|
||||
!icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
|
||||
mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
|
||||
python? ( ${PYTHON_DEPS} )
|
||||
app-arch/bzip2[${MULTILIB_USEDEP}]
|
||||
sys-libs/zlib[${MULTILIB_USEDEP}]
|
||||
!app-admin/eselect-boost"
|
||||
DEPEND="${RDEPEND}
|
||||
=dev-util/boost-build-${MAJOR_V}*"
|
||||
REQUIRED_USE="
|
||||
mpi? ( threads )
|
||||
python? ( ${PYTHON_REQUIRED_USE} )"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
# the tests will never fail because these are not intended as sanity
|
||||
# tests at all. They are more a way for upstream to check their own code
|
||||
# on new compilers. Since they would either be completely unreliable
|
||||
# (failing for no good reason) or completely useless (never failing)
|
||||
# there is no point in having them in the ebuild to begin with.
|
||||
RESTRICT="test"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch"
|
||||
"${FILESDIR}/${PN}-1.55.0-context-x32.patch"
|
||||
"${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch"
|
||||
"${FILESDIR}/${PN}-1.63.0-fix-python.patch"
|
||||
)
|
||||
|
||||
python_bindings_needed() {
|
||||
multilib_is_native_abi && use python
|
||||
}
|
||||
|
||||
tools_needed() {
|
||||
multilib_is_native_abi && use tools
|
||||
}
|
||||
|
||||
create_user-config.jam() {
|
||||
local compiler compiler_version compiler_executable
|
||||
|
||||
if [[ ${CHOST} == *-darwin* ]]; then
|
||||
compiler="darwin"
|
||||
compiler_version="$(gcc-fullversion)"
|
||||
compiler_executable="$(tc-getCXX)"
|
||||
else
|
||||
compiler="gcc"
|
||||
compiler_version="$(gcc-version)"
|
||||
compiler_executable="$(tc-getCXX)"
|
||||
fi
|
||||
local mpi_configuration python_configuration
|
||||
|
||||
if use mpi; then
|
||||
mpi_configuration="using mpi ;"
|
||||
fi
|
||||
|
||||
if python_bindings_needed; then
|
||||
# boost expects libpython$(pyver) and doesn't allow overrides
|
||||
# and the build system is so creepy that it's easier just to
|
||||
# provide a symlink (linker's going to use SONAME anyway)
|
||||
# TODO: replace it with proper override one day
|
||||
ln -f -s "$(python_get_library_path)" "${T}/lib${EPYTHON}$(get_libname)" || die
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
python_configuration="using python : ${EPYTHON#python} : : ${SYSROOT:-${EROOT}}/usr/include/${EPYTHON} : ${SYSROOT:-${EROOT}}/usr/$(get_libdir) ;"
|
||||
else
|
||||
# note: we need to provide version explicitly because of
|
||||
# a bug in the build system:
|
||||
# https://github.com/boostorg/build/pull/104
|
||||
python_configuration="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) : ${T} ;"
|
||||
fi
|
||||
fi
|
||||
|
||||
cat > "${BOOST_ROOT}/user-config.jam" << __EOF__ || die
|
||||
using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
|
||||
${mpi_configuration}
|
||||
${python_configuration}
|
||||
__EOF__
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
# Bail out on unsupported build configuration, bug #456792
|
||||
if [[ -f "${EROOT%/}/etc/site-config.jam" ]]; then
|
||||
grep -q gentoorelease "${EROOT%/}/etc/site-config.jam" && grep -q gentoodebug "${EROOT%/}/etc/site-config.jam" ||
|
||||
(
|
||||
eerror "You are using custom ${EROOT%/}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
|
||||
eerror "Boost can not be built in such configuration."
|
||||
eerror "Please, either remove this file or add targets from ${EROOT%/}/usr/share/boost-build/site-config.jam to it."
|
||||
die
|
||||
)
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# Do not try to build missing 'wave' tool, bug #522682
|
||||
# Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507
|
||||
sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die
|
||||
|
||||
multilib_copy_sources
|
||||
}
|
||||
|
||||
ejam() {
|
||||
local b2_opts=(
|
||||
"--user-config=${BOOST_ROOT}/user-config.jam"
|
||||
"$@"
|
||||
)
|
||||
echo b2 "${b2_opts[@]}"
|
||||
b2 "${b2_opts[@]}"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# Workaround for too many parallel processes requested, bug #506064
|
||||
[[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
|
||||
|
||||
OPTIONS=(
|
||||
$(usex debug gentoodebug gentoorelease)
|
||||
"-j$(makeopts_jobs)"
|
||||
-q
|
||||
-d+2
|
||||
)
|
||||
|
||||
if [[ ${CHOST} == *-darwin* ]]; then
|
||||
# We need to add the prefix, and in two cases this exceeds, so prepare
|
||||
# for the largest possible space allocation.
|
||||
append-ldflags -Wl,-headerpad_max_install_names
|
||||
elif [[ ${CHOST} == *-winnt* ]]; then
|
||||
compiler=parity
|
||||
if [[ $($(tc-getCXX) -v) == *trunk* ]]; then
|
||||
compilerVersion=trunk
|
||||
else
|
||||
compilerVersion=$($(tc-getCXX) -v | sed '1q' \
|
||||
| sed -e 's,\([a-z]*\) \([0-9]\.[0-9]\.[0-9][^ \t]*\) .*,\2,')
|
||||
fi
|
||||
compilerExecutable=$(tc-getCXX)
|
||||
fi
|
||||
|
||||
# bug 298489
|
||||
if use ppc || use ppc64; then
|
||||
[[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
|
||||
fi
|
||||
|
||||
# Use C++14 globally as of 1.62
|
||||
append-cxxflags -std=c++14
|
||||
|
||||
use icu && OPTIONS+=(
|
||||
"-sICU_PATH=${EPREFIX}/usr"
|
||||
)
|
||||
use icu || OPTIONS+=(
|
||||
--disable-icu
|
||||
boost.locale.icu=off
|
||||
)
|
||||
use mpi || OPTIONS+=(
|
||||
--without-mpi
|
||||
)
|
||||
use nls || OPTIONS+=(
|
||||
--without-locale
|
||||
)
|
||||
use context || OPTIONS+=(
|
||||
--without-context
|
||||
--without-coroutine
|
||||
--without-coroutine2
|
||||
--without-fiber
|
||||
)
|
||||
use threads || OPTIONS+=(
|
||||
--without-thread
|
||||
)
|
||||
|
||||
OPTIONS+=(
|
||||
pch=off
|
||||
--boost-build="${EPREFIX}"/usr/share/boost-build
|
||||
--prefix="${ED%/}/usr"
|
||||
--layout=system
|
||||
# building with threading=single is currently not possible
|
||||
# https://svn.boost.org/trac/boost/ticket/7105
|
||||
threading=multi
|
||||
link=$(usex static-libs shared,static shared)
|
||||
)
|
||||
|
||||
[[ ${CHOST} == *-winnt* ]] && OPTIONS+=(
|
||||
-sNO_BZIP2=1
|
||||
)
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
local -x BOOST_ROOT="${BUILD_DIR}"
|
||||
PYTHON_DIRS=""
|
||||
MPI_PYTHON_MODULE=""
|
||||
|
||||
building() {
|
||||
create_user-config.jam
|
||||
|
||||
local PYTHON_OPTIONS
|
||||
if python_bindings_needed; then
|
||||
PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
|
||||
else
|
||||
PYTHON_OPTIONS=" --without-python"
|
||||
fi
|
||||
|
||||
ejam \
|
||||
"${OPTIONS[@]}" \
|
||||
${PYTHON_OPTIONS} \
|
||||
|| die "Building of Boost libraries failed"
|
||||
|
||||
if python_bindings_needed; then
|
||||
if [[ -z "${PYTHON_DIRS}" ]]; then
|
||||
PYTHON_DIRS="$(find bin.v2/libs -name python | sort)"
|
||||
else
|
||||
if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then
|
||||
die "Inconsistent structure of build directories"
|
||||
fi
|
||||
fi
|
||||
|
||||
local dir
|
||||
for dir in ${PYTHON_DIRS}; do
|
||||
mv ${dir} ${dir}-${EPYTHON} \
|
||||
|| die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed"
|
||||
done
|
||||
|
||||
if use mpi; then
|
||||
if [[ -z "${MPI_PYTHON_MODULE}" ]]; then
|
||||
MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)"
|
||||
if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then
|
||||
die "Multiple mpi.so files found"
|
||||
fi
|
||||
else
|
||||
if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then
|
||||
die "Inconsistent structure of build directories"
|
||||
fi
|
||||
fi
|
||||
|
||||
mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \
|
||||
|| die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
if python_bindings_needed; then
|
||||
python_foreach_impl building
|
||||
else
|
||||
building
|
||||
fi
|
||||
|
||||
if tools_needed; then
|
||||
pushd tools >/dev/null || die
|
||||
|
||||
ejam \
|
||||
"${OPTIONS[@]}" \
|
||||
${PYTHON_OPTIONS} \
|
||||
|| die "Building of Boost tools failed"
|
||||
popd >/dev/null || die
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
if ! use python; then
|
||||
rm -r "${ED%/}"/usr/include/boost/python* || die
|
||||
fi
|
||||
|
||||
if ! use nls; then
|
||||
rm -r "${ED%/}"/usr/include/boost/locale || die
|
||||
fi
|
||||
|
||||
if ! use context; then
|
||||
rm -r "${ED%/}"/usr/include/boost/context || die
|
||||
rm -r "${ED%/}"/usr/include/boost/coroutine{,2} || die
|
||||
rm "${ED%/}"/usr/include/boost/asio/spawn.hpp || die
|
||||
fi
|
||||
|
||||
if use doc; then
|
||||
# find extraneous files that shouldn't be installed
|
||||
# as part of the documentation and remove them.
|
||||
find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
|
||||
find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
|
||||
find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
|
||||
|
||||
docinto html
|
||||
dodoc *.{htm,html,png,css}
|
||||
dodoc -r doc libs more tools
|
||||
|
||||
# To avoid broken links
|
||||
dodoc LICENSE_1_0.txt
|
||||
|
||||
dosym /usr/include/boost /usr/share/doc/${PF}/html/boost
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
local -x BOOST_ROOT="${BUILD_DIR}"
|
||||
installation() {
|
||||
create_user-config.jam
|
||||
|
||||
local PYTHON_OPTIONS
|
||||
if python_bindings_needed; then
|
||||
local dir
|
||||
for dir in ${PYTHON_DIRS}; do
|
||||
cp -pr ${dir}-${EPYTHON} ${dir} \
|
||||
|| die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed"
|
||||
done
|
||||
|
||||
if use mpi; then
|
||||
cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \
|
||||
|| die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed"
|
||||
cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \
|
||||
|| die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed"
|
||||
fi
|
||||
PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
|
||||
else
|
||||
PYTHON_OPTIONS=" --without-python"
|
||||
fi
|
||||
|
||||
ejam \
|
||||
"${OPTIONS[@]}" \
|
||||
${PYTHON_OPTIONS} \
|
||||
--includedir="${ED%/}/usr/include" \
|
||||
--libdir="${ED%/}/usr/$(get_libdir)" \
|
||||
install || die "Installation of Boost libraries failed"
|
||||
|
||||
if python_bindings_needed; then
|
||||
rm -r ${PYTHON_DIRS} || die
|
||||
|
||||
# Move mpi.so Python module to Python site-packages directory.
|
||||
# https://svn.boost.org/trac/boost/ticket/2838
|
||||
if use mpi; then
|
||||
local moddir=$(python_get_sitedir)/boost
|
||||
# moddir already includes eprefix
|
||||
mkdir -p "${D}${moddir}" || die
|
||||
mv "${ED%/}/usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die
|
||||
cat << EOF > "${D}${moddir}/__init__.py" || die
|
||||
import sys
|
||||
if sys.platform.startswith('linux'):
|
||||
import DLFCN
|
||||
flags = sys.getdlopenflags()
|
||||
sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL)
|
||||
from . import mpi
|
||||
sys.setdlopenflags(flags)
|
||||
del DLFCN, flags
|
||||
else:
|
||||
from . import mpi
|
||||
del sys
|
||||
EOF
|
||||
fi
|
||||
|
||||
python_optimize
|
||||
fi
|
||||
}
|
||||
if python_bindings_needed; then
|
||||
python_foreach_impl installation
|
||||
else
|
||||
installation
|
||||
fi
|
||||
|
||||
pushd "${ED%/}/usr/$(get_libdir)" >/dev/null || die
|
||||
|
||||
local ext=$(get_libname)
|
||||
if use threads; then
|
||||
local f
|
||||
for f in *${ext}; do
|
||||
dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
|
||||
done
|
||||
fi
|
||||
|
||||
popd >/dev/null || die
|
||||
|
||||
if tools_needed; then
|
||||
dobin dist/bin/*
|
||||
|
||||
insinto /usr/share
|
||||
doins -r dist/share/boostbook
|
||||
fi
|
||||
|
||||
# boost's build system truely sucks for not having a destdir. Because for
|
||||
# this reason we are forced to build with a prefix that includes the
|
||||
# DESTROOT, dynamic libraries on Darwin end messed up, referencing the
|
||||
# DESTROOT instread of the actual EPREFIX. There is no way out of here
|
||||
# but to do it the dirty way of manually setting the right install_names.
|
||||
if [[ ${CHOST} == *-darwin* ]]; then
|
||||
einfo "Working around completely broken build-system(tm)"
|
||||
local d
|
||||
for d in "${ED%/}"/usr/lib/*.dylib; do
|
||||
if [[ -f ${d} ]]; then
|
||||
# fix the "soname"
|
||||
ebegin " correcting install_name of ${d#${ED}}"
|
||||
install_name_tool -id "/${d#${D}}" "${d}"
|
||||
eend $?
|
||||
# fix references to other libs
|
||||
refs=$(otool -XL "${d}" | \
|
||||
sed -e '1d' -e 's/^\t//' | \
|
||||
grep "^libboost_" | \
|
||||
cut -f1 -d' ')
|
||||
local r
|
||||
for r in ${refs}; do
|
||||
ebegin " correcting reference to ${r}"
|
||||
install_name_tool -change \
|
||||
"${r}" \
|
||||
"${EPREFIX}/usr/lib/${r}" \
|
||||
"${d}"
|
||||
eend $?
|
||||
done
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
# Yai for having symlinks that are nigh-impossible to remove without
|
||||
# resorting to dirty hacks like these. Removes lingering symlinks
|
||||
# from the slotted versions.
|
||||
local symlink
|
||||
for symlink in "${EROOT%/}/usr/include/boost" "${EROOT%/}/usr/share/boostbook"; do
|
||||
if [[ -L ${symlink} ]]; then
|
||||
rm -f "${symlink}" || die
|
||||
fi
|
||||
done
|
||||
|
||||
# some ancient installs still have boost cruft lying around
|
||||
# for unknown reasons, causing havoc for reverse dependencies
|
||||
# Bug: 607734
|
||||
rm -rf "${EROOT%/}"/usr/include/boost-1_[3-5]? || die
|
||||
}
|
@ -1,439 +0,0 @@
|
||||
# Copyright 1999-2018 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
PYTHON_COMPAT=( python{2_7,3_{4,5,6}} )
|
||||
|
||||
inherit eutils flag-o-matic multiprocessing python-r1 toolchain-funcs versionator multilib-minimal
|
||||
|
||||
MY_P="${PN}_$(replace_all_version_separators _)"
|
||||
MAJOR_V="$(get_version_component_range 1-2)"
|
||||
|
||||
DESCRIPTION="Boost Libraries for C++"
|
||||
HOMEPAGE="https://www.boost.org/"
|
||||
SRC_URI="https://downloads.sourceforge.net/project/boost/${PN}/${PV}/${MY_P}.tar.bz2"
|
||||
|
||||
LICENSE="Boost-1.0"
|
||||
SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
|
||||
KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh ~sparc x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt"
|
||||
|
||||
IUSE="context debug doc icu +nls mpi python static-libs +threads tools"
|
||||
|
||||
RDEPEND="icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
|
||||
!icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
|
||||
mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
|
||||
python? ( ${PYTHON_DEPS} )
|
||||
app-arch/bzip2[${MULTILIB_USEDEP}]
|
||||
sys-libs/zlib[${MULTILIB_USEDEP}]
|
||||
!app-admin/eselect-boost"
|
||||
DEPEND="${RDEPEND}
|
||||
=dev-util/boost-build-${MAJOR_V}*"
|
||||
REQUIRED_USE="
|
||||
mpi? ( threads )
|
||||
python? ( ${PYTHON_REQUIRED_USE} )"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
# the tests will never fail because these are not intended as sanity
|
||||
# tests at all. They are more a way for upstream to check their own code
|
||||
# on new compilers. Since they would either be completely unreliable
|
||||
# (failing for no good reason) or completely useless (never failing)
|
||||
# there is no point in having them in the ebuild to begin with.
|
||||
RESTRICT="test"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch"
|
||||
"${FILESDIR}/${PN}-1.55.0-context-x32.patch"
|
||||
"${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch"
|
||||
"${FILESDIR}/${PN}-1.65.0-fix-python.patch"
|
||||
)
|
||||
|
||||
python_bindings_needed() {
|
||||
multilib_is_native_abi && use python
|
||||
}
|
||||
|
||||
tools_needed() {
|
||||
multilib_is_native_abi && use tools
|
||||
}
|
||||
|
||||
create_user-config.jam() {
|
||||
local compiler compiler_version compiler_executable
|
||||
|
||||
if [[ ${CHOST} == *-darwin* ]]; then
|
||||
compiler="darwin"
|
||||
compiler_version="$(gcc-fullversion)"
|
||||
compiler_executable="$(tc-getCXX)"
|
||||
else
|
||||
compiler="gcc"
|
||||
compiler_version="$(gcc-version)"
|
||||
compiler_executable="$(tc-getCXX)"
|
||||
fi
|
||||
local mpi_configuration python_configuration
|
||||
|
||||
if use mpi; then
|
||||
mpi_configuration="using mpi ;"
|
||||
fi
|
||||
|
||||
if python_bindings_needed; then
|
||||
# boost expects libpython$(pyver) and doesn't allow overrides
|
||||
# and the build system is so creepy that it's easier just to
|
||||
# provide a symlink (linker's going to use SONAME anyway)
|
||||
# TODO: replace it with proper override one day
|
||||
ln -f -s "$(python_get_library_path)" "${T}/lib${EPYTHON}$(get_libname)" || die
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
python_configuration="using python : ${EPYTHON#python} : : ${SYSROOT:-${EROOT}}/usr/include/${EPYTHON} : ${SYSROOT:-${EROOT}}/usr/$(get_libdir) ;"
|
||||
else
|
||||
# note: we need to provide version explicitly because of
|
||||
# a bug in the build system:
|
||||
# https://github.com/boostorg/build/pull/104
|
||||
python_configuration="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) : ${T} ;"
|
||||
fi
|
||||
fi
|
||||
|
||||
cat > "${BOOST_ROOT}/user-config.jam" << __EOF__ || die
|
||||
using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
|
||||
${mpi_configuration}
|
||||
${python_configuration}
|
||||
__EOF__
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
# Bail out on unsupported build configuration, bug #456792
|
||||
if [[ -f "${EROOT%/}/etc/site-config.jam" ]]; then
|
||||
grep -q gentoorelease "${EROOT%/}/etc/site-config.jam" && grep -q gentoodebug "${EROOT%/}/etc/site-config.jam" ||
|
||||
(
|
||||
eerror "You are using custom ${EROOT%/}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
|
||||
eerror "Boost can not be built in such configuration."
|
||||
eerror "Please, either remove this file or add targets from ${EROOT%/}/usr/share/boost-build/site-config.jam to it."
|
||||
die
|
||||
)
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# Do not try to build missing 'wave' tool, bug #522682
|
||||
# Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507
|
||||
sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die
|
||||
|
||||
multilib_copy_sources
|
||||
}
|
||||
|
||||
ejam() {
|
||||
local b2_opts=(
|
||||
"--user-config=${BOOST_ROOT}/user-config.jam"
|
||||
"$@"
|
||||
)
|
||||
echo b2 "${b2_opts[@]}"
|
||||
b2 "${b2_opts[@]}"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# Workaround for too many parallel processes requested, bug #506064
|
||||
[[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
|
||||
|
||||
OPTIONS=(
|
||||
$(usex debug gentoodebug gentoorelease)
|
||||
"-j$(makeopts_jobs)"
|
||||
-q
|
||||
-d+2
|
||||
)
|
||||
|
||||
if [[ ${CHOST} == *-darwin* ]]; then
|
||||
# We need to add the prefix, and in two cases this exceeds, so prepare
|
||||
# for the largest possible space allocation.
|
||||
append-ldflags -Wl,-headerpad_max_install_names
|
||||
elif [[ ${CHOST} == *-winnt* ]]; then
|
||||
compiler=parity
|
||||
if [[ $($(tc-getCXX) -v) == *trunk* ]]; then
|
||||
compilerVersion=trunk
|
||||
else
|
||||
compilerVersion=$($(tc-getCXX) -v | sed '1q' \
|
||||
| sed -e 's,\([a-z]*\) \([0-9]\.[0-9]\.[0-9][^ \t]*\) .*,\2,')
|
||||
fi
|
||||
compilerExecutable=$(tc-getCXX)
|
||||
fi
|
||||
|
||||
# bug 298489
|
||||
if use ppc || use ppc64; then
|
||||
[[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
|
||||
fi
|
||||
|
||||
# Use C++14 globally as of 1.62
|
||||
append-cxxflags -std=c++14
|
||||
|
||||
use icu && OPTIONS+=(
|
||||
"-sICU_PATH=${EPREFIX}/usr"
|
||||
)
|
||||
use icu || OPTIONS+=(
|
||||
--disable-icu
|
||||
boost.locale.icu=off
|
||||
)
|
||||
use mpi || OPTIONS+=(
|
||||
--without-mpi
|
||||
)
|
||||
use nls || OPTIONS+=(
|
||||
--without-locale
|
||||
)
|
||||
use context || OPTIONS+=(
|
||||
--without-context
|
||||
--without-coroutine
|
||||
--without-fiber
|
||||
)
|
||||
use threads || OPTIONS+=(
|
||||
--without-thread
|
||||
)
|
||||
|
||||
OPTIONS+=(
|
||||
pch=off
|
||||
--boost-build="${EPREFIX}"/usr/share/boost-build
|
||||
--prefix="${ED%/}/usr"
|
||||
--layout=system
|
||||
# building with threading=single is currently not possible
|
||||
# https://svn.boost.org/trac/boost/ticket/7105
|
||||
threading=multi
|
||||
link=$(usex static-libs shared,static shared)
|
||||
)
|
||||
|
||||
[[ ${CHOST} == *-winnt* ]] && OPTIONS+=(
|
||||
-sNO_BZIP2=1
|
||||
)
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
local -x BOOST_ROOT="${BUILD_DIR}"
|
||||
PYTHON_DIRS=""
|
||||
MPI_PYTHON_MODULE=""
|
||||
|
||||
building() {
|
||||
create_user-config.jam
|
||||
|
||||
local PYTHON_OPTIONS
|
||||
if python_bindings_needed; then
|
||||
PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
|
||||
else
|
||||
PYTHON_OPTIONS=" --without-python"
|
||||
fi
|
||||
|
||||
ejam \
|
||||
"${OPTIONS[@]}" \
|
||||
${PYTHON_OPTIONS} \
|
||||
|| die "Building of Boost libraries failed"
|
||||
|
||||
if python_bindings_needed; then
|
||||
if [[ -z "${PYTHON_DIRS}" ]]; then
|
||||
PYTHON_DIRS="$(find bin.v2/libs -name python | sort)"
|
||||
else
|
||||
if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then
|
||||
die "Inconsistent structure of build directories"
|
||||
fi
|
||||
fi
|
||||
|
||||
local dir
|
||||
for dir in ${PYTHON_DIRS}; do
|
||||
mv ${dir} ${dir}-${EPYTHON} \
|
||||
|| die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed"
|
||||
done
|
||||
|
||||
if use mpi; then
|
||||
if [[ -z "${MPI_PYTHON_MODULE}" ]]; then
|
||||
MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)"
|
||||
if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then
|
||||
die "Multiple mpi.so files found"
|
||||
fi
|
||||
else
|
||||
if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then
|
||||
die "Inconsistent structure of build directories"
|
||||
fi
|
||||
fi
|
||||
|
||||
mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \
|
||||
|| die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
if python_bindings_needed; then
|
||||
python_foreach_impl building
|
||||
else
|
||||
building
|
||||
fi
|
||||
|
||||
if tools_needed; then
|
||||
pushd tools >/dev/null || die
|
||||
|
||||
ejam \
|
||||
"${OPTIONS[@]}" \
|
||||
${PYTHON_OPTIONS} \
|
||||
|| die "Building of Boost tools failed"
|
||||
popd >/dev/null || die
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
if ! use python; then
|
||||
rm -r "${ED%/}"/usr/include/boost/python* || die
|
||||
fi
|
||||
|
||||
if ! use nls; then
|
||||
rm -r "${ED%/}"/usr/include/boost/locale || die
|
||||
fi
|
||||
|
||||
if ! use context; then
|
||||
rm -r "${ED%/}"/usr/include/boost/context || die
|
||||
rm -r "${ED%/}"/usr/include/boost/coroutine{,2} || die
|
||||
rm "${ED%/}"/usr/include/boost/asio/spawn.hpp || die
|
||||
fi
|
||||
|
||||
if use doc; then
|
||||
# find extraneous files that shouldn't be installed
|
||||
# as part of the documentation and remove them.
|
||||
find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
|
||||
find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
|
||||
find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
|
||||
|
||||
docinto html
|
||||
dodoc *.{htm,html,png,css}
|
||||
dodoc -r doc libs more tools
|
||||
|
||||
# To avoid broken links
|
||||
dodoc LICENSE_1_0.txt
|
||||
|
||||
dosym /usr/include/boost /usr/share/doc/${PF}/html/boost
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
local -x BOOST_ROOT="${BUILD_DIR}"
|
||||
installation() {
|
||||
create_user-config.jam
|
||||
|
||||
local PYTHON_OPTIONS
|
||||
if python_bindings_needed; then
|
||||
local dir
|
||||
for dir in ${PYTHON_DIRS}; do
|
||||
cp -pr ${dir}-${EPYTHON} ${dir} \
|
||||
|| die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed"
|
||||
done
|
||||
|
||||
if use mpi; then
|
||||
cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \
|
||||
|| die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed"
|
||||
cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \
|
||||
|| die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed"
|
||||
fi
|
||||
PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
|
||||
else
|
||||
PYTHON_OPTIONS=" --without-python"
|
||||
fi
|
||||
|
||||
ejam \
|
||||
"${OPTIONS[@]}" \
|
||||
${PYTHON_OPTIONS} \
|
||||
--includedir="${ED%/}/usr/include" \
|
||||
--libdir="${ED%/}/usr/$(get_libdir)" \
|
||||
install || die "Installation of Boost libraries failed"
|
||||
|
||||
if python_bindings_needed; then
|
||||
rm -r ${PYTHON_DIRS} || die
|
||||
|
||||
# Move mpi.so Python module to Python site-packages directory.
|
||||
# https://svn.boost.org/trac/boost/ticket/2838
|
||||
if use mpi; then
|
||||
local moddir=$(python_get_sitedir)/boost
|
||||
# moddir already includes eprefix
|
||||
mkdir -p "${D}${moddir}" || die
|
||||
mv "${ED%/}/usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die
|
||||
cat << EOF > "${D}${moddir}/__init__.py" || die
|
||||
import sys
|
||||
if sys.platform.startswith('linux'):
|
||||
import DLFCN
|
||||
flags = sys.getdlopenflags()
|
||||
sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL)
|
||||
from . import mpi
|
||||
sys.setdlopenflags(flags)
|
||||
del DLFCN, flags
|
||||
else:
|
||||
from . import mpi
|
||||
del sys
|
||||
EOF
|
||||
fi
|
||||
|
||||
python_optimize
|
||||
fi
|
||||
}
|
||||
if python_bindings_needed; then
|
||||
python_foreach_impl installation
|
||||
else
|
||||
installation
|
||||
fi
|
||||
|
||||
pushd "${ED%/}/usr/$(get_libdir)" >/dev/null || die
|
||||
|
||||
local ext=$(get_libname)
|
||||
if use threads; then
|
||||
local f
|
||||
for f in *${ext}; do
|
||||
dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
|
||||
done
|
||||
fi
|
||||
|
||||
popd >/dev/null || die
|
||||
|
||||
if tools_needed; then
|
||||
dobin dist/bin/*
|
||||
|
||||
insinto /usr/share
|
||||
doins -r dist/share/boostbook
|
||||
fi
|
||||
|
||||
# boost's build system truely sucks for not having a destdir. Because for
|
||||
# this reason we are forced to build with a prefix that includes the
|
||||
# DESTROOT, dynamic libraries on Darwin end messed up, referencing the
|
||||
# DESTROOT instread of the actual EPREFIX. There is no way out of here
|
||||
# but to do it the dirty way of manually setting the right install_names.
|
||||
if [[ ${CHOST} == *-darwin* ]]; then
|
||||
einfo "Working around completely broken build-system(tm)"
|
||||
local d
|
||||
for d in "${ED%/}"/usr/lib/*.dylib; do
|
||||
if [[ -f ${d} ]]; then
|
||||
# fix the "soname"
|
||||
ebegin " correcting install_name of ${d#${ED}}"
|
||||
install_name_tool -id "/${d#${D}}" "${d}"
|
||||
eend $?
|
||||
# fix references to other libs
|
||||
refs=$(otool -XL "${d}" | \
|
||||
sed -e '1d' -e 's/^\t//' | \
|
||||
grep "^libboost_" | \
|
||||
cut -f1 -d' ')
|
||||
local r
|
||||
for r in ${refs}; do
|
||||
ebegin " correcting reference to ${r}"
|
||||
install_name_tool -change \
|
||||
"${r}" \
|
||||
"${EPREFIX}/usr/lib/${r}" \
|
||||
"${d}"
|
||||
eend $?
|
||||
done
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
# Yai for having symlinks that are nigh-impossible to remove without
|
||||
# resorting to dirty hacks like these. Removes lingering symlinks
|
||||
# from the slotted versions.
|
||||
local symlink
|
||||
for symlink in "${EROOT%/}/usr/include/boost" "${EROOT%/}/usr/share/boostbook"; do
|
||||
if [[ -L ${symlink} ]]; then
|
||||
rm -f "${symlink}" || die
|
||||
fi
|
||||
done
|
||||
|
||||
# some ancient installs still have boost cruft lying around
|
||||
# for unknown reasons, causing havoc for reverse dependencies
|
||||
# Bug: 607734
|
||||
rm -rf "${EROOT%/}"/usr/include/boost-1_[3-5]? || die
|
||||
}
|
@ -1,439 +0,0 @@
|
||||
# Copyright 1999-2018 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
PYTHON_COMPAT=( python{2_7,3_{4,5,6}} )
|
||||
|
||||
inherit eutils flag-o-matic multiprocessing python-r1 toolchain-funcs versionator multilib-minimal
|
||||
|
||||
MY_P="${PN}_$(replace_all_version_separators _)"
|
||||
MAJOR_V="$(get_version_component_range 1-2)"
|
||||
|
||||
DESCRIPTION="Boost Libraries for C++"
|
||||
HOMEPAGE="https://www.boost.org/"
|
||||
SRC_URI="https://downloads.sourceforge.net/project/boost/${PN}/${PV}/${MY_P}.tar.bz2"
|
||||
|
||||
LICENSE="Boost-1.0"
|
||||
SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
|
||||
#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt"
|
||||
|
||||
IUSE="context debug doc icu +nls mpi python static-libs +threads tools"
|
||||
|
||||
RDEPEND="icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
|
||||
!icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
|
||||
mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
|
||||
python? ( ${PYTHON_DEPS} )
|
||||
app-arch/bzip2[${MULTILIB_USEDEP}]
|
||||
sys-libs/zlib[${MULTILIB_USEDEP}]
|
||||
!app-admin/eselect-boost"
|
||||
DEPEND="${RDEPEND}
|
||||
=dev-util/boost-build-${MAJOR_V}*"
|
||||
REQUIRED_USE="
|
||||
mpi? ( threads )
|
||||
python? ( ${PYTHON_REQUIRED_USE} )"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
# the tests will never fail because these are not intended as sanity
|
||||
# tests at all. They are more a way for upstream to check their own code
|
||||
# on new compilers. Since they would either be completely unreliable
|
||||
# (failing for no good reason) or completely useless (never failing)
|
||||
# there is no point in having them in the ebuild to begin with.
|
||||
RESTRICT="test"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch"
|
||||
"${FILESDIR}/${PN}-1.55.0-context-x32.patch"
|
||||
"${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch"
|
||||
"${FILESDIR}/${PN}-1.65.0-fix-python.patch"
|
||||
)
|
||||
|
||||
python_bindings_needed() {
|
||||
multilib_is_native_abi && use python
|
||||
}
|
||||
|
||||
tools_needed() {
|
||||
multilib_is_native_abi && use tools
|
||||
}
|
||||
|
||||
create_user-config.jam() {
|
||||
local compiler compiler_version compiler_executable
|
||||
|
||||
if [[ ${CHOST} == *-darwin* ]]; then
|
||||
compiler="darwin"
|
||||
compiler_version="$(gcc-fullversion)"
|
||||
compiler_executable="$(tc-getCXX)"
|
||||
else
|
||||
compiler="gcc"
|
||||
compiler_version="$(gcc-version)"
|
||||
compiler_executable="$(tc-getCXX)"
|
||||
fi
|
||||
local mpi_configuration python_configuration
|
||||
|
||||
if use mpi; then
|
||||
mpi_configuration="using mpi ;"
|
||||
fi
|
||||
|
||||
if python_bindings_needed; then
|
||||
# boost expects libpython$(pyver) and doesn't allow overrides
|
||||
# and the build system is so creepy that it's easier just to
|
||||
# provide a symlink (linker's going to use SONAME anyway)
|
||||
# TODO: replace it with proper override one day
|
||||
ln -f -s "$(python_get_library_path)" "${T}/lib${EPYTHON}$(get_libname)" || die
|
||||
|
||||
if tc-is-cross-compiler; then
|
||||
python_configuration="using python : ${EPYTHON#python} : : ${SYSROOT:-${EROOT}}/usr/include/${EPYTHON} : ${SYSROOT:-${EROOT}}/usr/$(get_libdir) ;"
|
||||
else
|
||||
# note: we need to provide version explicitly because of
|
||||
# a bug in the build system:
|
||||
# https://github.com/boostorg/build/pull/104
|
||||
python_configuration="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) : ${T} ;"
|
||||
fi
|
||||
fi
|
||||
|
||||
cat > "${BOOST_ROOT}/user-config.jam" << __EOF__ || die
|
||||
using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
|
||||
${mpi_configuration}
|
||||
${python_configuration}
|
||||
__EOF__
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
# Bail out on unsupported build configuration, bug #456792
|
||||
if [[ -f "${EROOT%/}/etc/site-config.jam" ]]; then
|
||||
grep -q gentoorelease "${EROOT%/}/etc/site-config.jam" && grep -q gentoodebug "${EROOT%/}/etc/site-config.jam" ||
|
||||
(
|
||||
eerror "You are using custom ${EROOT%/}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
|
||||
eerror "Boost can not be built in such configuration."
|
||||
eerror "Please, either remove this file or add targets from ${EROOT%/}/usr/share/boost-build/site-config.jam to it."
|
||||
die
|
||||
)
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# Do not try to build missing 'wave' tool, bug #522682
|
||||
# Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507
|
||||
sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die
|
||||
|
||||
multilib_copy_sources
|
||||
}
|
||||
|
||||
ejam() {
|
||||
local b2_opts=(
|
||||
"--user-config=${BOOST_ROOT}/user-config.jam"
|
||||
"$@"
|
||||
)
|
||||
echo b2 "${b2_opts[@]}"
|
||||
b2 "${b2_opts[@]}"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# Workaround for too many parallel processes requested, bug #506064
|
||||
[[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
|
||||
|
||||
OPTIONS=(
|
||||
$(usex debug gentoodebug gentoorelease)
|
||||
"-j$(makeopts_jobs)"
|
||||
-q
|
||||
-d+2
|
||||
)
|
||||
|
||||
if [[ ${CHOST} == *-darwin* ]]; then
|
||||
# We need to add the prefix, and in two cases this exceeds, so prepare
|
||||
# for the largest possible space allocation.
|
||||
append-ldflags -Wl,-headerpad_max_install_names
|
||||
elif [[ ${CHOST} == *-winnt* ]]; then
|
||||
compiler=parity
|
||||
if [[ $($(tc-getCXX) -v) == *trunk* ]]; then
|
||||
compilerVersion=trunk
|
||||
else
|
||||
compilerVersion=$($(tc-getCXX) -v | sed '1q' \
|
||||
| sed -e 's,\([a-z]*\) \([0-9]\.[0-9]\.[0-9][^ \t]*\) .*,\2,')
|
||||
fi
|
||||
compilerExecutable=$(tc-getCXX)
|
||||
fi
|
||||
|
||||
# bug 298489
|
||||
if use ppc || use ppc64; then
|
||||
[[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
|
||||
fi
|
||||
|
||||
# Use C++14 globally as of 1.62
|
||||
append-cxxflags -std=c++14
|
||||
|
||||
use icu && OPTIONS+=(
|
||||
"-sICU_PATH=${EPREFIX}/usr"
|
||||
)
|
||||
use icu || OPTIONS+=(
|
||||
--disable-icu
|
||||
boost.locale.icu=off
|
||||
)
|
||||
use mpi || OPTIONS+=(
|
||||
--without-mpi
|
||||
)
|
||||
use nls || OPTIONS+=(
|
||||
--without-locale
|
||||
)
|
||||
use context || OPTIONS+=(
|
||||
--without-context
|
||||
--without-coroutine
|
||||
--without-fiber
|
||||
)
|
||||
use threads || OPTIONS+=(
|
||||
--without-thread
|
||||
)
|
||||
|
||||
OPTIONS+=(
|
||||
pch=off
|
||||
--boost-build="${EPREFIX}"/usr/share/boost-build
|
||||
--prefix="${ED%/}/usr"
|
||||
--layout=system
|
||||
# building with threading=single is currently not possible
|
||||
# https://svn.boost.org/trac/boost/ticket/7105
|
||||
threading=multi
|
||||
link=$(usex static-libs shared,static shared)
|
||||
)
|
||||
|
||||
[[ ${CHOST} == *-winnt* ]] && OPTIONS+=(
|
||||
-sNO_BZIP2=1
|
||||
)
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
local -x BOOST_ROOT="${BUILD_DIR}"
|
||||
PYTHON_DIRS=""
|
||||
MPI_PYTHON_MODULE=""
|
||||
|
||||
building() {
|
||||
create_user-config.jam
|
||||
|
||||
local PYTHON_OPTIONS
|
||||
if python_bindings_needed; then
|
||||
PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
|
||||
else
|
||||
PYTHON_OPTIONS=" --without-python"
|
||||
fi
|
||||
|
||||
ejam \
|
||||
"${OPTIONS[@]}" \
|
||||
${PYTHON_OPTIONS} \
|
||||
|| die "Building of Boost libraries failed"
|
||||
|
||||
if python_bindings_needed; then
|
||||
if [[ -z "${PYTHON_DIRS}" ]]; then
|
||||
PYTHON_DIRS="$(find bin.v2/libs -name python | sort)"
|
||||
else
|
||||
if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then
|
||||
die "Inconsistent structure of build directories"
|
||||
fi
|
||||
fi
|
||||
|
||||
local dir
|
||||
for dir in ${PYTHON_DIRS}; do
|
||||
mv ${dir} ${dir}-${EPYTHON} \
|
||||
|| die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed"
|
||||
done
|
||||
|
||||
if use mpi; then
|
||||
if [[ -z "${MPI_PYTHON_MODULE}" ]]; then
|
||||
MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)"
|
||||
if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then
|
||||
die "Multiple mpi.so files found"
|
||||
fi
|
||||
else
|
||||
if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then
|
||||
die "Inconsistent structure of build directories"
|
||||
fi
|
||||
fi
|
||||
|
||||
mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \
|
||||
|| die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
if python_bindings_needed; then
|
||||
python_foreach_impl building
|
||||
else
|
||||
building
|
||||
fi
|
||||
|
||||
if tools_needed; then
|
||||
pushd tools >/dev/null || die
|
||||
|
||||
ejam \
|
||||
"${OPTIONS[@]}" \
|
||||
${PYTHON_OPTIONS} \
|
||||
|| die "Building of Boost tools failed"
|
||||
popd >/dev/null || die
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
if ! use python; then
|
||||
rm -r "${ED%/}"/usr/include/boost/python* || die
|
||||
fi
|
||||
|
||||
if ! use nls; then
|
||||
rm -r "${ED%/}"/usr/include/boost/locale || die
|
||||
fi
|
||||
|
||||
if ! use context; then
|
||||
rm -r "${ED%/}"/usr/include/boost/context || die
|
||||
rm -r "${ED%/}"/usr/include/boost/coroutine{,2} || die
|
||||
rm "${ED%/}"/usr/include/boost/asio/spawn.hpp || die
|
||||
fi
|
||||
|
||||
if use doc; then
|
||||
# find extraneous files that shouldn't be installed
|
||||
# as part of the documentation and remove them.
|
||||
find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
|
||||
find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
|
||||
find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
|
||||
|
||||
docinto html
|
||||
dodoc *.{htm,html,png,css}
|
||||
dodoc -r doc libs more tools
|
||||
|
||||
# To avoid broken links
|
||||
dodoc LICENSE_1_0.txt
|
||||
|
||||
dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
local -x BOOST_ROOT="${BUILD_DIR}"
|
||||
installation() {
|
||||
create_user-config.jam
|
||||
|
||||
local PYTHON_OPTIONS
|
||||
if python_bindings_needed; then
|
||||
local dir
|
||||
for dir in ${PYTHON_DIRS}; do
|
||||
cp -pr ${dir}-${EPYTHON} ${dir} \
|
||||
|| die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed"
|
||||
done
|
||||
|
||||
if use mpi; then
|
||||
cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \
|
||||
|| die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed"
|
||||
cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \
|
||||
|| die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed"
|
||||
fi
|
||||
PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
|
||||
else
|
||||
PYTHON_OPTIONS=" --without-python"
|
||||
fi
|
||||
|
||||
ejam \
|
||||
"${OPTIONS[@]}" \
|
||||
${PYTHON_OPTIONS} \
|
||||
--includedir="${ED%/}/usr/include" \
|
||||
--libdir="${ED%/}/usr/$(get_libdir)" \
|
||||
install || die "Installation of Boost libraries failed"
|
||||
|
||||
if python_bindings_needed; then
|
||||
rm -r ${PYTHON_DIRS} || die
|
||||
|
||||
# Move mpi.so Python module to Python site-packages directory.
|
||||
# https://svn.boost.org/trac/boost/ticket/2838
|
||||
if use mpi; then
|
||||
local moddir=$(python_get_sitedir)/boost
|
||||
# moddir already includes eprefix
|
||||
mkdir -p "${D}${moddir}" || die
|
||||
mv "${ED%/}/usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die
|
||||
cat << EOF > "${D}${moddir}/__init__.py" || die
|
||||
import sys
|
||||
if sys.platform.startswith('linux'):
|
||||
import DLFCN
|
||||
flags = sys.getdlopenflags()
|
||||
sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL)
|
||||
from . import mpi
|
||||
sys.setdlopenflags(flags)
|
||||
del DLFCN, flags
|
||||
else:
|
||||
from . import mpi
|
||||
del sys
|
||||
EOF
|
||||
fi
|
||||
|
||||
python_optimize
|
||||
fi
|
||||
}
|
||||
if python_bindings_needed; then
|
||||
python_foreach_impl installation
|
||||
else
|
||||
installation
|
||||
fi
|
||||
|
||||
pushd "${ED%/}/usr/$(get_libdir)" >/dev/null || die
|
||||
|
||||
local ext=$(get_libname)
|
||||
if use threads; then
|
||||
local f
|
||||
for f in *${ext}; do
|
||||
dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
|
||||
done
|
||||
fi
|
||||
|
||||
popd >/dev/null || die
|
||||
|
||||
if tools_needed; then
|
||||
dobin dist/bin/*
|
||||
|
||||
insinto /usr/share
|
||||
doins -r dist/share/boostbook
|
||||
fi
|
||||
|
||||
# boost's build system truely sucks for not having a destdir. Because for
|
||||
# this reason we are forced to build with a prefix that includes the
|
||||
# DESTROOT, dynamic libraries on Darwin end messed up, referencing the
|
||||
# DESTROOT instread of the actual EPREFIX. There is no way out of here
|
||||
# but to do it the dirty way of manually setting the right install_names.
|
||||
if [[ ${CHOST} == *-darwin* ]]; then
|
||||
einfo "Working around completely broken build-system(tm)"
|
||||
local d
|
||||
for d in "${ED%/}"/usr/lib/*.dylib; do
|
||||
if [[ -f ${d} ]]; then
|
||||
# fix the "soname"
|
||||
ebegin " correcting install_name of ${d#${ED}}"
|
||||
install_name_tool -id "/${d#${D}}" "${d}"
|
||||
eend $?
|
||||
# fix references to other libs
|
||||
refs=$(otool -XL "${d}" | \
|
||||
sed -e '1d' -e 's/^\t//' | \
|
||||
grep "^libboost_" | \
|
||||
cut -f1 -d' ')
|
||||
local r
|
||||
for r in ${refs}; do
|
||||
ebegin " correcting reference to ${r}"
|
||||
install_name_tool -change \
|
||||
"${r}" \
|
||||
"${EPREFIX}/usr/lib/${r}" \
|
||||
"${d}"
|
||||
eend $?
|
||||
done
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
# Yai for having symlinks that are nigh-impossible to remove without
|
||||
# resorting to dirty hacks like these. Removes lingering symlinks
|
||||
# from the slotted versions.
|
||||
local symlink
|
||||
for symlink in "${EROOT%/}/usr/include/boost" "${EROOT%/}/usr/share/boostbook"; do
|
||||
if [[ -L ${symlink} ]]; then
|
||||
rm -f "${symlink}" || die
|
||||
fi
|
||||
done
|
||||
|
||||
# some ancient installs still have boost cruft lying around
|
||||
# for unknown reasons, causing havoc for reverse dependencies
|
||||
# Bug: 607734
|
||||
rm -rf "${EROOT%/}"/usr/include/boost-1_[3-5]? || die
|
||||
}
|
359
sdk_container/src/third_party/portage-stable/dev-libs/boost/boost-1.74.0-r2.ebuild
vendored
Normal file
359
sdk_container/src/third_party/portage-stable/dev-libs/boost/boost-1.74.0-r2.ebuild
vendored
Normal file
@ -0,0 +1,359 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
PYTHON_COMPAT=( python3_{7,8,9} )
|
||||
|
||||
inherit flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal
|
||||
|
||||
MY_PV="$(ver_rs 1- _)"
|
||||
MAJOR_V="$(ver_cut 1-2)"
|
||||
|
||||
DESCRIPTION="Boost Libraries for C++"
|
||||
HOMEPAGE="https://www.boost.org/"
|
||||
SRC_URI="https://dl.bintray.com/boostorg/release/${PV}/source/boost_${MY_PV}.tar.bz2"
|
||||
|
||||
LICENSE="Boost-1.0"
|
||||
SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
|
||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt"
|
||||
IUSE="bzip2 context debug doc icu lzma +nls mpi numpy python static-libs +threads tools zlib zstd"
|
||||
REQUIRED_USE="
|
||||
mpi? ( threads )
|
||||
python? ( ${PYTHON_REQUIRED_USE} )"
|
||||
|
||||
# the tests will never fail because these are not intended as sanity
|
||||
# tests at all. They are more a way for upstream to check their own code
|
||||
# on new compilers. Since they would either be completely unreliable
|
||||
# (failing for no good reason) or completely useless (never failing)
|
||||
# there is no point in having them in the ebuild to begin with.
|
||||
RESTRICT="test"
|
||||
|
||||
RDEPEND="
|
||||
!app-admin/eselect-boost
|
||||
!dev-libs/boost-numpy
|
||||
!<dev-libs/leatherman-1.12.0-r1
|
||||
bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] )
|
||||
icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
|
||||
!icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
|
||||
lzma? ( app-arch/xz-utils:=[${MULTILIB_USEDEP}] )
|
||||
mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
|
||||
python? (
|
||||
${PYTHON_DEPS}
|
||||
numpy? ( $(python_gen_cond_dep 'dev-python/numpy[${PYTHON_USEDEP}]' -3) )
|
||||
)
|
||||
zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] )
|
||||
zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )"
|
||||
DEPEND="${RDEPEND}"
|
||||
BDEPEND="=dev-util/boost-build-${MAJOR_V}*"
|
||||
|
||||
S="${WORKDIR}/${PN}_${MY_PV}"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-1.71.0-disable_icu_rpath.patch
|
||||
"${FILESDIR}"/${PN}-1.71.0-context-x32.patch
|
||||
"${FILESDIR}"/${PN}-1.71.0-build-auto_index-tool.patch
|
||||
# upstream unresponsive to pull request
|
||||
# https://github.com/boostorg/python/pull/286
|
||||
"${FILESDIR}"/${PN}-1.73-boost-python-cleanup.patch
|
||||
# Boost.MPI's __init__.py doesn't work on Py3
|
||||
"${FILESDIR}"/${PN}-1.73-boost-mpi-python-PEP-328.patch
|
||||
# Remove annoying #pragma message
|
||||
"${FILESDIR}"/${PN}-1.73-property-tree-include.patch
|
||||
"${FILESDIR}"/${PN}-1.74-CVE-2012-2677.patch
|
||||
)
|
||||
|
||||
python_bindings_needed() {
|
||||
multilib_is_native_abi && use python
|
||||
}
|
||||
|
||||
tools_needed() {
|
||||
multilib_is_native_abi && use tools
|
||||
}
|
||||
|
||||
create_user-config.jam() {
|
||||
local user_config_jam="${BUILD_DIR}"/user-config.jam
|
||||
if [[ -s ${user_config_jam} ]]; then
|
||||
einfo "${user_config_jam} already exists, skipping configuration"
|
||||
return
|
||||
else
|
||||
einfo "Creating configuration in ${user_config_jam}"
|
||||
fi
|
||||
|
||||
local compiler compiler_version compiler_executable="$(tc-getCXX)"
|
||||
if [[ ${CHOST} == *-darwin* ]]; then
|
||||
compiler="darwin"
|
||||
compiler_version="$(gcc-fullversion)"
|
||||
else
|
||||
compiler="gcc"
|
||||
compiler_version="$(gcc-version)"
|
||||
fi
|
||||
|
||||
if use mpi; then
|
||||
local mpi_configuration="using mpi ;"
|
||||
fi
|
||||
|
||||
cat > "${user_config_jam}" <<- __EOF__ || die
|
||||
using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
|
||||
${mpi_configuration}
|
||||
__EOF__
|
||||
|
||||
if python_bindings_needed; then
|
||||
append_to_user_config() {
|
||||
local py_config
|
||||
if tc-is-cross-compiler; then
|
||||
py_config="using python : ${EPYTHON#python} : : ${ESYSROOT}/usr/include/${EPYTHON} : ${ESYSROOT}/usr/$(get_libdir) ;"
|
||||
else
|
||||
py_config="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) ;"
|
||||
fi
|
||||
echo "${py_config}" >> "${user_config_jam}" || die
|
||||
}
|
||||
python_foreach_impl append_to_user_config
|
||||
fi
|
||||
|
||||
if python_bindings_needed && use numpy; then
|
||||
einfo "Enabling support for NumPy extensions in Boost.Python"
|
||||
else
|
||||
einfo "Disabling support for NumPy extensions in Boost.Python"
|
||||
|
||||
# Boost.Build does not allow for disabling of numpy
|
||||
# extensions, thereby leading to automagic numpy
|
||||
# https://github.com/boostorg/python/issues/111#issuecomment-280447482
|
||||
sed \
|
||||
-e 's/\[ unless \[ python\.numpy \] : <build>no \]/<build>no/g' \
|
||||
-i "${BUILD_DIR}"/libs/python/build/Jamfile || die
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
# Bail out on unsupported build configuration, bug #456792
|
||||
if [[ -f "${EROOT}"/etc/site-config.jam ]]; then
|
||||
if ! grep -q 'gentoo\(debug\|release\)' "${EROOT}"/etc/site-config.jam; then
|
||||
eerror "You are using custom ${EROOT}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
|
||||
eerror "Boost can not be built in such configuration."
|
||||
eerror "Please, either remove this file or add targets from ${EROOT}/usr/share/boost-build/site-config.jam to it."
|
||||
die "Unsupported target in ${EROOT}/etc/site-config.jam"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
multilib_copy_sources
|
||||
}
|
||||
|
||||
ejam() {
|
||||
create_user-config.jam
|
||||
|
||||
local b2_opts=( "--user-config=${BUILD_DIR}/user-config.jam" )
|
||||
if python_bindings_needed; then
|
||||
append_to_b2_opts() {
|
||||
b2_opts+=( python="${EPYTHON#python}" )
|
||||
}
|
||||
python_foreach_impl append_to_b2_opts
|
||||
else
|
||||
b2_opts+=( --without-python )
|
||||
fi
|
||||
b2_opts+=( "$@" )
|
||||
|
||||
echo b2 "${b2_opts[@]}" >&2
|
||||
b2 "${b2_opts[@]}"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# Workaround for too many parallel processes requested, bug #506064
|
||||
[[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
|
||||
|
||||
OPTIONS=(
|
||||
$(usex debug gentoodebug gentoorelease)
|
||||
"-j$(makeopts_jobs)"
|
||||
-q
|
||||
-d+2
|
||||
pch=off
|
||||
$(usex icu "-sICU_PATH=${ESYSROOT}/usr" '--disable-icu boost.locale.icu=off')
|
||||
$(usex mpi '' '--without-mpi')
|
||||
$(usex nls '' '--without-locale')
|
||||
$(usex context '' '--without-context --without-coroutine --without-fiber')
|
||||
$(usex threads '' '--without-thread')
|
||||
--without-stacktrace
|
||||
--boost-build="${BROOT}"/usr/share/boost-build
|
||||
--prefix="${ED}/usr"
|
||||
--layout=system
|
||||
# CMake has issues working with multiple python impls,
|
||||
# disable cmake config generation for the time being
|
||||
# https://github.com/boostorg/python/issues/262#issuecomment-483069294
|
||||
--no-cmake-config
|
||||
# building with threading=single is currently not possible
|
||||
# https://svn.boost.org/trac/boost/ticket/7105
|
||||
threading=multi
|
||||
link=$(usex static-libs shared,static shared)
|
||||
# this seems to be the only way to disable compression algorithms
|
||||
# https://www.boost.org/doc/libs/1_70_0/libs/iostreams/doc/installation.html#boost-build
|
||||
-sNO_BZIP2=$(usex bzip2 0 1)
|
||||
-sNO_LZMA=$(usex lzma 0 1)
|
||||
-sNO_ZLIB=$(usex zlib 0 1)
|
||||
-sNO_ZSTD=$(usex zstd 0 1)
|
||||
)
|
||||
|
||||
if [[ ${CHOST} == *-darwin* ]]; then
|
||||
# We need to add the prefix, and in two cases this exceeds, so prepare
|
||||
# for the largest possible space allocation.
|
||||
append-ldflags -Wl,-headerpad_max_install_names
|
||||
fi
|
||||
|
||||
# Use C++14 globally as of 1.62
|
||||
append-cxxflags -std=c++14
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
ejam "${OPTIONS[@]}" || die
|
||||
|
||||
if tools_needed; then
|
||||
pushd tools >/dev/null || die
|
||||
ejam \
|
||||
"${OPTIONS[@]}" \
|
||||
|| die "Building of Boost tools failed"
|
||||
popd >/dev/null || die
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
if ! use numpy; then
|
||||
rm -r "${ED}"/usr/include/boost/python/numpy* || die
|
||||
fi
|
||||
|
||||
if use python; then
|
||||
if use mpi; then
|
||||
move_mpi_py_into_sitedir() {
|
||||
python_moduleinto boost
|
||||
python_domodule "${S}"/libs/mpi/build/__init__.py
|
||||
|
||||
python_domodule "${ED}"/usr/$(get_libdir)/boost-${EPYTHON}/mpi.so
|
||||
rm -r "${ED}"/usr/$(get_libdir)/boost-${EPYTHON} || die
|
||||
|
||||
python_optimize
|
||||
}
|
||||
python_foreach_impl move_mpi_py_into_sitedir
|
||||
else
|
||||
rm -r "${ED}"/usr/include/boost/mpi/python* || die
|
||||
fi
|
||||
else
|
||||
rm -r "${ED}"/usr/include/boost/{python*,mpi/python*,parameter/aux_/python,parameter/python*} || die
|
||||
fi
|
||||
|
||||
if ! use nls; then
|
||||
rm -r "${ED}"/usr/include/boost/locale || die
|
||||
fi
|
||||
|
||||
if ! use context; then
|
||||
rm -r "${ED}"/usr/include/boost/context || die
|
||||
rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
|
||||
rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
|
||||
fi
|
||||
|
||||
if use doc; then
|
||||
# find extraneous files that shouldn't be installed
|
||||
# as part of the documentation and remove them.
|
||||
find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
|
||||
find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
|
||||
find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
|
||||
|
||||
docinto html
|
||||
dodoc *.{htm,html,png,css}
|
||||
dodoc -r doc libs more tools
|
||||
|
||||
# To avoid broken links
|
||||
dodoc LICENSE_1_0.txt
|
||||
|
||||
dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
ejam \
|
||||
"${OPTIONS[@]}" \
|
||||
--includedir="${ED}/usr/include" \
|
||||
--libdir="${ED}/usr/$(get_libdir)" \
|
||||
install || die "Installation of Boost libraries failed"
|
||||
|
||||
pushd "${ED}/usr/$(get_libdir)" >/dev/null || die
|
||||
|
||||
local ext=$(get_libname)
|
||||
if use threads; then
|
||||
local f
|
||||
for f in *${ext}; do
|
||||
dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
|
||||
done
|
||||
fi
|
||||
|
||||
popd >/dev/null || die
|
||||
|
||||
if tools_needed; then
|
||||
dobin dist/bin/*
|
||||
|
||||
insinto /usr/share
|
||||
doins -r dist/share/boostbook
|
||||
fi
|
||||
|
||||
# boost's build system truely sucks for not having a destdir. Because for
|
||||
# this reason we are forced to build with a prefix that includes the
|
||||
# DESTROOT, dynamic libraries on Darwin end messed up, referencing the
|
||||
# DESTROOT instread of the actual EPREFIX. There is no way out of here
|
||||
# but to do it the dirty way of manually setting the right install_names.
|
||||
if [[ ${CHOST} == *-darwin* ]]; then
|
||||
einfo "Working around completely broken build-system(tm)"
|
||||
local d
|
||||
for d in "${ED}"/usr/lib/*.dylib; do
|
||||
if [[ -f ${d} ]]; then
|
||||
# fix the "soname"
|
||||
ebegin " correcting install_name of ${d#${ED}}"
|
||||
install_name_tool -id "/${d#${D}}" "${d}"
|
||||
eend $?
|
||||
# fix references to other libs
|
||||
refs=$(otool -XL "${d}" | \
|
||||
sed -e '1d' -e 's/^\t//' | \
|
||||
grep "^libboost_" | \
|
||||
cut -f1 -d' ')
|
||||
local r
|
||||
for r in ${refs}; do
|
||||
ebegin " correcting reference to ${r}"
|
||||
install_name_tool -change \
|
||||
"${r}" \
|
||||
"${EPREFIX}/usr/lib/${r}" \
|
||||
"${d}"
|
||||
eend $?
|
||||
done
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
# Yai for having symlinks that are nigh-impossible to remove without
|
||||
# resorting to dirty hacks like these. Removes lingering symlinks
|
||||
# from the slotted versions.
|
||||
local symlink
|
||||
for symlink in "${EROOT}"/usr/include/boost "${EROOT}"/usr/share/boostbook; do
|
||||
if [[ -L ${symlink} ]]; then
|
||||
rm -f "${symlink}" || die
|
||||
fi
|
||||
done
|
||||
|
||||
# some ancient installs still have boost cruft lying around
|
||||
# for unknown reasons, causing havoc for reverse dependencies
|
||||
# Bug: 607734
|
||||
rm -rf "${EROOT}"/usr/include/boost-1_[3-5]? || die
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
elog "Boost.Regex is *extremely* ABI sensitive. If you get errors such as"
|
||||
elog
|
||||
elog " undefined reference to \`boost::re_detail_$(ver_cut 1)0$(ver_cut 2)00::cpp_regex_traits_implementation"
|
||||
elog " <char>::transform_primary[abi:cxx11](char const*, char const*) const'"
|
||||
elog
|
||||
elog "Then you need to recompile Boost and all its reverse dependencies"
|
||||
elog "using the same toolchain. In general, *every* change of the C++ toolchain"
|
||||
elog "requires a complete rebuild of the boost-dependent ecosystem."
|
||||
elog
|
||||
elog "See for instance https://bugs.gentoo.org/638138"
|
||||
}
|
356
sdk_container/src/third_party/portage-stable/dev-libs/boost/boost-1.75.0.ebuild
vendored
Normal file
356
sdk_container/src/third_party/portage-stable/dev-libs/boost/boost-1.75.0.ebuild
vendored
Normal file
@ -0,0 +1,356 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
PYTHON_COMPAT=( python3_{7,8,9} )
|
||||
|
||||
inherit flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal
|
||||
|
||||
MY_PV="$(ver_rs 1- _)"
|
||||
MAJOR_V="$(ver_cut 1-2)"
|
||||
|
||||
DESCRIPTION="Boost Libraries for C++"
|
||||
HOMEPAGE="https://www.boost.org/"
|
||||
SRC_URI="https://dl.bintray.com/boostorg/release/${PV}/source/boost_${MY_PV}.tar.bz2"
|
||||
|
||||
LICENSE="Boost-1.0"
|
||||
SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
|
||||
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
|
||||
IUSE="bzip2 context debug doc icu lzma +nls mpi numpy python static-libs +threads tools zlib zstd"
|
||||
REQUIRED_USE="
|
||||
mpi? ( threads )
|
||||
python? ( ${PYTHON_REQUIRED_USE} )"
|
||||
|
||||
# the tests will never fail because these are not intended as sanity
|
||||
# tests at all. They are more a way for upstream to check their own code
|
||||
# on new compilers. Since they would either be completely unreliable
|
||||
# (failing for no good reason) or completely useless (never failing)
|
||||
# there is no point in having them in the ebuild to begin with.
|
||||
RESTRICT="test"
|
||||
|
||||
RDEPEND="
|
||||
!app-admin/eselect-boost
|
||||
!dev-libs/boost-numpy
|
||||
!<dev-libs/leatherman-1.12.0-r1
|
||||
bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] )
|
||||
icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
|
||||
!icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
|
||||
lzma? ( app-arch/xz-utils:=[${MULTILIB_USEDEP}] )
|
||||
mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
|
||||
python? (
|
||||
${PYTHON_DEPS}
|
||||
numpy? ( dev-python/numpy[${PYTHON_USEDEP}] )
|
||||
)
|
||||
zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] )
|
||||
zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )"
|
||||
DEPEND="${RDEPEND}"
|
||||
BDEPEND="=dev-util/boost-build-${MAJOR_V}*"
|
||||
|
||||
S="${WORKDIR}/${PN}_${MY_PV}"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-1.71.0-disable_icu_rpath.patch
|
||||
"${FILESDIR}"/${PN}-1.71.0-context-x32.patch
|
||||
"${FILESDIR}"/${PN}-1.71.0-build-auto_index-tool.patch
|
||||
# Boost.MPI's __init__.py doesn't work on Py3
|
||||
"${FILESDIR}"/${PN}-1.73-boost-mpi-python-PEP-328.patch
|
||||
# Remove annoying #pragma message
|
||||
"${FILESDIR}"/${PN}-1.73-property-tree-include.patch
|
||||
"${FILESDIR}"/${PN}-1.74-CVE-2012-2677.patch
|
||||
)
|
||||
|
||||
python_bindings_needed() {
|
||||
multilib_is_native_abi && use python
|
||||
}
|
||||
|
||||
tools_needed() {
|
||||
multilib_is_native_abi && use tools
|
||||
}
|
||||
|
||||
create_user-config.jam() {
|
||||
local user_config_jam="${BUILD_DIR}"/user-config.jam
|
||||
if [[ -s ${user_config_jam} ]]; then
|
||||
einfo "${user_config_jam} already exists, skipping configuration"
|
||||
return
|
||||
else
|
||||
einfo "Creating configuration in ${user_config_jam}"
|
||||
fi
|
||||
|
||||
local compiler compiler_version compiler_executable="$(tc-getCXX)"
|
||||
if [[ ${CHOST} == *-darwin* ]]; then
|
||||
compiler="darwin"
|
||||
compiler_version="$(gcc-fullversion)"
|
||||
else
|
||||
compiler="gcc"
|
||||
compiler_version="$(gcc-version)"
|
||||
fi
|
||||
|
||||
if use mpi; then
|
||||
local mpi_configuration="using mpi ;"
|
||||
fi
|
||||
|
||||
cat > "${user_config_jam}" <<- __EOF__ || die
|
||||
using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
|
||||
${mpi_configuration}
|
||||
__EOF__
|
||||
|
||||
if python_bindings_needed; then
|
||||
append_to_user_config() {
|
||||
local py_config
|
||||
if tc-is-cross-compiler; then
|
||||
py_config="using python : ${EPYTHON#python} : : ${ESYSROOT}/usr/include/${EPYTHON} : ${ESYSROOT}/usr/$(get_libdir) ;"
|
||||
else
|
||||
py_config="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) ;"
|
||||
fi
|
||||
echo "${py_config}" >> "${user_config_jam}" || die
|
||||
}
|
||||
python_foreach_impl append_to_user_config
|
||||
fi
|
||||
|
||||
if python_bindings_needed && use numpy; then
|
||||
einfo "Enabling support for NumPy extensions in Boost.Python"
|
||||
else
|
||||
einfo "Disabling support for NumPy extensions in Boost.Python"
|
||||
|
||||
# Boost.Build does not allow for disabling of numpy
|
||||
# extensions, thereby leading to automagic numpy
|
||||
# https://github.com/boostorg/python/issues/111#issuecomment-280447482
|
||||
sed \
|
||||
-e 's/\[ unless \[ python\.numpy \] : <build>no \]/<build>no/g' \
|
||||
-i "${BUILD_DIR}"/libs/python/build/Jamfile || die
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
# Bail out on unsupported build configuration, bug #456792
|
||||
if [[ -f "${EROOT}"/etc/site-config.jam ]]; then
|
||||
if ! grep -q 'gentoo\(debug\|release\)' "${EROOT}"/etc/site-config.jam; then
|
||||
eerror "You are using custom ${EROOT}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
|
||||
eerror "Boost can not be built in such configuration."
|
||||
eerror "Please, either remove this file or add targets from ${EROOT}/usr/share/boost-build/site-config.jam to it."
|
||||
die "Unsupported target in ${EROOT}/etc/site-config.jam"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
multilib_copy_sources
|
||||
}
|
||||
|
||||
ejam() {
|
||||
create_user-config.jam
|
||||
|
||||
local b2_opts=( "--user-config=${BUILD_DIR}/user-config.jam" )
|
||||
if python_bindings_needed; then
|
||||
append_to_b2_opts() {
|
||||
b2_opts+=( python="${EPYTHON#python}" )
|
||||
}
|
||||
python_foreach_impl append_to_b2_opts
|
||||
else
|
||||
b2_opts+=( --without-python )
|
||||
fi
|
||||
b2_opts+=( "$@" )
|
||||
|
||||
echo b2 "${b2_opts[@]}" >&2
|
||||
b2 "${b2_opts[@]}"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# Workaround for too many parallel processes requested, bug #506064
|
||||
[[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
|
||||
|
||||
OPTIONS=(
|
||||
$(usex debug gentoodebug gentoorelease)
|
||||
"-j$(makeopts_jobs)"
|
||||
-q
|
||||
-d+2
|
||||
pch=off
|
||||
$(usex icu "-sICU_PATH=${ESYSROOT}/usr" '--disable-icu boost.locale.icu=off')
|
||||
$(usex mpi '' '--without-mpi')
|
||||
$(usex nls '' '--without-locale')
|
||||
$(usex context '' '--without-context --without-coroutine --without-fiber')
|
||||
$(usex threads '' '--without-thread')
|
||||
--without-stacktrace
|
||||
--boost-build="${BROOT}"/usr/share/boost-build
|
||||
--prefix="${ED}/usr"
|
||||
--layout=system
|
||||
# CMake has issues working with multiple python impls,
|
||||
# disable cmake config generation for the time being
|
||||
# https://github.com/boostorg/python/issues/262#issuecomment-483069294
|
||||
--no-cmake-config
|
||||
# building with threading=single is currently not possible
|
||||
# https://svn.boost.org/trac/boost/ticket/7105
|
||||
threading=multi
|
||||
link=$(usex static-libs shared,static shared)
|
||||
# this seems to be the only way to disable compression algorithms
|
||||
# https://www.boost.org/doc/libs/1_70_0/libs/iostreams/doc/installation.html#boost-build
|
||||
-sNO_BZIP2=$(usex bzip2 0 1)
|
||||
-sNO_LZMA=$(usex lzma 0 1)
|
||||
-sNO_ZLIB=$(usex zlib 0 1)
|
||||
-sNO_ZSTD=$(usex zstd 0 1)
|
||||
)
|
||||
|
||||
if [[ ${CHOST} == *-darwin* ]]; then
|
||||
# We need to add the prefix, and in two cases this exceeds, so prepare
|
||||
# for the largest possible space allocation.
|
||||
append-ldflags -Wl,-headerpad_max_install_names
|
||||
fi
|
||||
|
||||
# Use C++14 globally as of 1.62
|
||||
append-cxxflags -std=c++14
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
ejam "${OPTIONS[@]}" || die
|
||||
|
||||
if tools_needed; then
|
||||
pushd tools >/dev/null || die
|
||||
ejam \
|
||||
"${OPTIONS[@]}" \
|
||||
|| die "Building of Boost tools failed"
|
||||
popd >/dev/null || die
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
if ! use numpy; then
|
||||
rm -r "${ED}"/usr/include/boost/python/numpy* || die
|
||||
fi
|
||||
|
||||
if use python; then
|
||||
if use mpi; then
|
||||
move_mpi_py_into_sitedir() {
|
||||
python_moduleinto boost
|
||||
python_domodule "${S}"/libs/mpi/build/__init__.py
|
||||
|
||||
python_domodule "${ED}"/usr/$(get_libdir)/boost-${EPYTHON}/mpi.so
|
||||
rm -r "${ED}"/usr/$(get_libdir)/boost-${EPYTHON} || die
|
||||
|
||||
python_optimize
|
||||
}
|
||||
python_foreach_impl move_mpi_py_into_sitedir
|
||||
else
|
||||
rm -r "${ED}"/usr/include/boost/mpi/python* || die
|
||||
fi
|
||||
else
|
||||
rm -r "${ED}"/usr/include/boost/{python*,mpi/python*,parameter/aux_/python,parameter/python*} || die
|
||||
fi
|
||||
|
||||
if ! use nls; then
|
||||
rm -r "${ED}"/usr/include/boost/locale || die
|
||||
fi
|
||||
|
||||
if ! use context; then
|
||||
rm -r "${ED}"/usr/include/boost/context || die
|
||||
rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
|
||||
rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
|
||||
fi
|
||||
|
||||
if use doc; then
|
||||
# find extraneous files that shouldn't be installed
|
||||
# as part of the documentation and remove them.
|
||||
find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
|
||||
find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
|
||||
find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
|
||||
|
||||
docinto html
|
||||
dodoc *.{htm,html,png,css}
|
||||
dodoc -r doc libs more tools
|
||||
|
||||
# To avoid broken links
|
||||
dodoc LICENSE_1_0.txt
|
||||
|
||||
dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
ejam \
|
||||
"${OPTIONS[@]}" \
|
||||
--includedir="${ED}/usr/include" \
|
||||
--libdir="${ED}/usr/$(get_libdir)" \
|
||||
install || die "Installation of Boost libraries failed"
|
||||
|
||||
pushd "${ED}/usr/$(get_libdir)" >/dev/null || die
|
||||
|
||||
local ext=$(get_libname)
|
||||
if use threads; then
|
||||
local f
|
||||
for f in *${ext}; do
|
||||
dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
|
||||
done
|
||||
fi
|
||||
|
||||
popd >/dev/null || die
|
||||
|
||||
if tools_needed; then
|
||||
dobin dist/bin/*
|
||||
|
||||
insinto /usr/share
|
||||
doins -r dist/share/boostbook
|
||||
fi
|
||||
|
||||
# boost's build system truely sucks for not having a destdir. Because for
|
||||
# this reason we are forced to build with a prefix that includes the
|
||||
# DESTROOT, dynamic libraries on Darwin end messed up, referencing the
|
||||
# DESTROOT instread of the actual EPREFIX. There is no way out of here
|
||||
# but to do it the dirty way of manually setting the right install_names.
|
||||
if [[ ${CHOST} == *-darwin* ]]; then
|
||||
einfo "Working around completely broken build-system(tm)"
|
||||
local d
|
||||
for d in "${ED}"/usr/lib/*.dylib; do
|
||||
if [[ -f ${d} ]]; then
|
||||
# fix the "soname"
|
||||
ebegin " correcting install_name of ${d#${ED}}"
|
||||
install_name_tool -id "/${d#${D}}" "${d}"
|
||||
eend $?
|
||||
# fix references to other libs
|
||||
refs=$(otool -XL "${d}" | \
|
||||
sed -e '1d' -e 's/^\t//' | \
|
||||
grep "^libboost_" | \
|
||||
cut -f1 -d' ')
|
||||
local r
|
||||
for r in ${refs}; do
|
||||
ebegin " correcting reference to ${r}"
|
||||
install_name_tool -change \
|
||||
"${r}" \
|
||||
"${EPREFIX}/usr/lib/${r}" \
|
||||
"${d}"
|
||||
eend $?
|
||||
done
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
# Yai for having symlinks that are nigh-impossible to remove without
|
||||
# resorting to dirty hacks like these. Removes lingering symlinks
|
||||
# from the slotted versions.
|
||||
local symlink
|
||||
for symlink in "${EROOT}"/usr/include/boost "${EROOT}"/usr/share/boostbook; do
|
||||
if [[ -L ${symlink} ]]; then
|
||||
rm -f "${symlink}" || die
|
||||
fi
|
||||
done
|
||||
|
||||
# some ancient installs still have boost cruft lying around
|
||||
# for unknown reasons, causing havoc for reverse dependencies
|
||||
# Bug: 607734
|
||||
rm -rf "${EROOT}"/usr/include/boost-1_[3-5]? || die
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
elog "Boost.Regex is *extremely* ABI sensitive. If you get errors such as"
|
||||
elog
|
||||
elog " undefined reference to \`boost::re_detail_$(ver_cut 1)0$(ver_cut 2)00::cpp_regex_traits_implementation"
|
||||
elog " <char>::transform_primary[abi:cxx11](char const*, char const*) const'"
|
||||
elog
|
||||
elog "Then you need to recompile Boost and all its reverse dependencies"
|
||||
elog "using the same toolchain. In general, *every* change of the C++ toolchain"
|
||||
elog "requires a complete rebuild of the boost-dependent ecosystem."
|
||||
elog
|
||||
elog "See for instance https://bugs.gentoo.org/638138"
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
Build auto_index tool with USE="tools"
|
||||
Gentoo bug report: https://bugs.gentoo.org/show_bug.cgi?id=529066
|
||||
|
||||
--- a/tools/Jamfile.v2.orig 2014-12-24 12:57:32.290880067 +0300
|
||||
+++ b/tools/Jamfile.v2 2014-12-24 12:58:38.403883250 +0300
|
||||
@@ -20,6 +20,7 @@
|
||||
use-project /boost/regression : regression/build ;
|
||||
|
||||
TOOLS =
|
||||
+ auto_index/build//auto_index
|
||||
bcp//bcp
|
||||
inspect/build//inspect
|
||||
quickbook//quickbook
|
@ -1,138 +0,0 @@
|
||||
--- a/boostcpp.jam
|
||||
+++ b/boostcpp.jam
|
||||
@@ -104,7 +104,7 @@
|
||||
python-id = [ option.get "python-buildid" ] ;
|
||||
if $(python-id)
|
||||
{
|
||||
- PYTHON_ID = [ regex.replace $(python-id) [*\\/:.\"\'] _ ] ;
|
||||
+ PYTHON_ID = [ regex.replace $(python-id) [*\\/:\"\'] _ ] ;
|
||||
}
|
||||
|
||||
|
||||
--- a/libs/python/build/Jamfile
|
||||
+++ b/libs/python/build/Jamfile
|
||||
@@ -30,22 +30,6 @@
|
||||
;
|
||||
}
|
||||
|
||||
-rule find-py3-version
|
||||
-{
|
||||
- local versions = [ feature.values python ] ;
|
||||
- local py3ver ;
|
||||
- for local v in $(versions)
|
||||
- {
|
||||
- if $(v) >= 3.0
|
||||
- {
|
||||
- py3ver = $(v) ;
|
||||
- }
|
||||
- }
|
||||
- return $(py3ver) ;
|
||||
-}
|
||||
-
|
||||
-py3-version = [ find-py3-version ] ;
|
||||
-
|
||||
project boost/python
|
||||
: source-location ../src
|
||||
;
|
||||
@@ -53,10 +37,16 @@
|
||||
rule cond ( test ? : yes * : no * ) { if $(test) { return $(yes) ; } else { return $(no) ; } }
|
||||
rule unless ( test ? : yes * : no * ) { if ! $(test) { return $(yes) ; } else { return $(no) ; } }
|
||||
|
||||
-rule lib_boost_python ( is-py3 ? )
|
||||
+rule lib_boost_python
|
||||
{
|
||||
+ local python_major_version = [ MATCH "^([^.]+)" : [ feature.values python ] ] ;
|
||||
+ local python2 ;
|
||||
+ if $(python_major_version) = 2
|
||||
+ {
|
||||
+ python2 = true ;
|
||||
+ }
|
||||
|
||||
- lib [ cond $(is-py3) : boost_python3 : boost_python ]
|
||||
+ lib boost_python
|
||||
: # sources
|
||||
numeric.cpp
|
||||
list.cpp
|
||||
@@ -90,20 +80,9 @@
|
||||
: # requirements
|
||||
<link>static:<define>BOOST_PYTHON_STATIC_LIB
|
||||
<define>BOOST_PYTHON_SOURCE
|
||||
+ [ cond $(python2) : <cxxflags>-fno-strict-aliasing ]
|
||||
|
||||
- # On Windows, all code using Python has to link to the Python
|
||||
- # import library.
|
||||
- #
|
||||
- # On *nix we never link libboost_python to libpython. When
|
||||
- # extending Python, all Python symbols are provided by the
|
||||
- # Python interpreter executable. When embedding Python, the
|
||||
- # client executable is expected to explicitly link to
|
||||
- # /python//python (the target representing libpython) itself.
|
||||
- #
|
||||
- # python_for_extensions is a target defined by Boost.Build to
|
||||
- # provide the Python include paths, and on Windows, the Python
|
||||
- # import library, as usage requirements.
|
||||
- [ cond [ python.configured ] : <library>/python//python_for_extensions ]
|
||||
+ [ cond [ python.configured ] : <library>/python//python ]
|
||||
|
||||
# we prevent building when there is no python available
|
||||
# as it's not possible anyway, and to cause dependents to
|
||||
@@ -112,7 +91,6 @@
|
||||
<dependency>config-warning
|
||||
|
||||
<python-debugging>on:<define>BOOST_DEBUG_PYTHON
|
||||
- [ cond $(is-py3) : <python>$(py3-version) ]
|
||||
|
||||
-<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
|
||||
<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag
|
||||
@@ -125,51 +103,8 @@
|
||||
;
|
||||
}
|
||||
|
||||
-rule lib_boost_numpy ( is-py3 ? )
|
||||
-{
|
||||
- numpy-include = [ python.numpy-include ] ;
|
||||
- lib [ cond $(is-py3) : boost_numpy3 : boost_numpy ]
|
||||
- : # sources
|
||||
- numpy/dtype.cpp
|
||||
- numpy/matrix.cpp
|
||||
- numpy/ndarray.cpp
|
||||
- numpy/numpy.cpp
|
||||
- numpy/scalars.cpp
|
||||
- numpy/ufunc.cpp
|
||||
- : # requirements
|
||||
- [ cond [ python.numpy ] : <library>/python//python_for_extensions ]
|
||||
- [ unless [ python.numpy ] : <build>no ]
|
||||
- <include>$(numpy-include)
|
||||
- <library>boost_python
|
||||
- <python-debugging>on:<define>BOOST_DEBUG_PYTHON
|
||||
- [ cond $(is-py3) : <python>$(py3-version) ]
|
||||
-
|
||||
- -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
|
||||
- <tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag
|
||||
-
|
||||
- : # default build
|
||||
- <link>shared
|
||||
- : # usage requirements
|
||||
- <python-debugging>on:<define>BOOST_DEBUG_PYTHON
|
||||
- ;
|
||||
-}
|
||||
-
|
||||
libraries = boost_python ;
|
||||
-libraries3 = boost_python3 ;
|
||||
-if [ python.numpy ]
|
||||
-{
|
||||
- libraries += boost_numpy ;
|
||||
- libraries3 += boost_numpy3 ;
|
||||
-}
|
||||
|
||||
lib_boost_python ;
|
||||
-lib_boost_numpy ;
|
||||
-
|
||||
-if $(py3-version)
|
||||
-{
|
||||
- lib_boost_python yes ;
|
||||
- lib_boost_numpy yes ;
|
||||
- libraries += $(libraries3) ;
|
||||
-}
|
||||
|
||||
boost-install $(libraries) ;
|
@ -1,272 +0,0 @@
|
||||
--- a/boostcpp.jam
|
||||
+++ b/boostcpp.jam
|
||||
@@ -104,7 +104,7 @@
|
||||
python-id = [ option.get "python-buildid" ] ;
|
||||
if $(python-id)
|
||||
{
|
||||
- PYTHON_ID = [ regex.replace $(python-id) [*\\/:.\"\'] _ ] ;
|
||||
+ PYTHON_ID = [ regex.replace $(python-id) [*\\/:\"\'] _ ] ;
|
||||
}
|
||||
|
||||
|
||||
--- a/libs/mpi/build/Jamfile.v2
|
||||
+++ b/libs/mpi/build/Jamfile.v2
|
||||
@@ -58,81 +58,50 @@
|
||||
|
||||
if [ python.configured ]
|
||||
{
|
||||
- py2-version = [ py-version 2 ] ;
|
||||
- py3-version = [ py-version 3 ] ;
|
||||
-
|
||||
- # These library names are synchronized with those defined by Boost.Python, see libs/python/build/Jamfile.
|
||||
- lib_boost_python(2) = boost_python ;
|
||||
- lib_boost_python(3) = boost_python3 ;
|
||||
-
|
||||
- lib_boost_python($(py2-version)) = $(lib_boost_python(2)) ;
|
||||
- lib_boost_python($(py3-version)) = $(lib_boost_python(3)) ;
|
||||
-
|
||||
- lib_boost_mpi_python(2) = boost_mpi_python ;
|
||||
- lib_boost_mpi_python(3) = boost_mpi_python3 ;
|
||||
-
|
||||
- lib_boost_mpi_python($(py2-version)) = $(lib_boost_mpi_python(2)) ;
|
||||
- lib_boost_mpi_python($(py3-version)) = $(lib_boost_mpi_python(3)) ;
|
||||
-
|
||||
- for local N in 2 3
|
||||
- {
|
||||
- if $(py$(N)-version)
|
||||
- {
|
||||
- lib $(lib_boost_mpi_python($(py$(N)-version)))
|
||||
- : # Sources
|
||||
- python/serialize.cpp
|
||||
- : # Requirements
|
||||
- <library>boost_mpi
|
||||
- <library>/mpi//mpi [ mpi.extra-requirements ]
|
||||
- <library>/boost/python//$(lib_boost_python($(py$(N)-version)))
|
||||
- <link>shared:<define>BOOST_MPI_DYN_LINK=1
|
||||
- <link>shared:<define>BOOST_MPI_PYTHON_DYN_LINK=1
|
||||
- <link>shared:<define>BOOST_PYTHON_DYN_LINK=1
|
||||
- <define>BOOST_MPI_PYTHON_SOURCE=1
|
||||
- -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
|
||||
- <tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag
|
||||
- <python-debugging>on:<define>BOOST_DEBUG_PYTHON
|
||||
- <python>$(py$(N)-version)
|
||||
- : # Default build
|
||||
- <link>shared
|
||||
- : # Usage requirements
|
||||
- <library>/mpi//mpi [ mpi.extra-requirements ]
|
||||
- ;
|
||||
-
|
||||
- python-extension mpi
|
||||
- : # Sources
|
||||
- python/collectives.cpp
|
||||
- python/py_communicator.cpp
|
||||
- python/datatypes.cpp
|
||||
- python/documentation.cpp
|
||||
- python/py_environment.cpp
|
||||
- python/py_nonblocking.cpp
|
||||
- python/py_exception.cpp
|
||||
- python/module.cpp
|
||||
- python/py_request.cpp
|
||||
- python/skeleton_and_content.cpp
|
||||
- python/status.cpp
|
||||
- python/py_timer.cpp
|
||||
- : # Requirements
|
||||
- <library>/boost/python//$(lib_boost_python($(py$(N)-version)))
|
||||
- <library>$(lib_boost_mpi_python($(py$(N)-version)))
|
||||
- <library>boost_mpi
|
||||
- <library>/mpi//mpi [ mpi.extra-requirements ]
|
||||
- <link>shared:<define>BOOST_MPI_DYN_LINK=1
|
||||
- <link>shared:<define>BOOST_MPI_PYTHON_DYN_LINK=1
|
||||
- <link>shared:<define>BOOST_PYTHON_DYN_LINK=1
|
||||
- <link>shared <runtime-link>shared
|
||||
- <python-debugging>on:<define>BOOST_DEBUG_PYTHON
|
||||
- <python>$(py$(N)-version)
|
||||
- ;
|
||||
-
|
||||
- libraries += $(lib_boost_mpi_python($(py$(N)-version))) ;
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- alias $(lib_boost_mpi_python($(N))) ;
|
||||
- }
|
||||
- }
|
||||
+ lib boost_mpi_python
|
||||
+ : # Sources
|
||||
+ python/serialize.cpp
|
||||
+ : # Requirements
|
||||
+ <library>boost_mpi
|
||||
+ <library>/mpi//mpi [ mpi.extra-requirements ]
|
||||
+ <library>/boost/python//boost_python
|
||||
+ <link>shared:<define>BOOST_MPI_DYN_LINK=1
|
||||
+ <link>shared:<define>BOOST_MPI_PYTHON_DYN_LINK=1
|
||||
+ <link>shared:<define>BOOST_PYTHON_DYN_LINK=1
|
||||
+ <define>BOOST_MPI_PYTHON_SOURCE=1
|
||||
+ -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
|
||||
+ <tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag
|
||||
+ : # Default build
|
||||
+ <link>shared
|
||||
+ : # Usage requirements
|
||||
+ <library>/mpi//mpi [ mpi.extra-requirements ]
|
||||
+ ;
|
||||
+ libraries += boost_mpi_python ;
|
||||
+
|
||||
+ python-extension mpi
|
||||
+ : # Sources
|
||||
+ python/collectives.cpp
|
||||
+ python/py_communicator.cpp
|
||||
+ python/datatypes.cpp
|
||||
+ python/documentation.cpp
|
||||
+ python/py_environment.cpp
|
||||
+ python/py_nonblocking.cpp
|
||||
+ python/py_exception.cpp
|
||||
+ python/module.cpp
|
||||
+ python/py_request.cpp
|
||||
+ python/skeleton_and_content.cpp
|
||||
+ python/status.cpp
|
||||
+ python/py_timer.cpp
|
||||
+ : # Requirements
|
||||
+ <library>/boost/python//boost_python
|
||||
+ <library>boost_mpi_python
|
||||
+ <library>boost_mpi
|
||||
+ <library>/mpi//mpi [ mpi.extra-requirements ]
|
||||
+ <link>shared:<define>BOOST_MPI_DYN_LINK=1
|
||||
+ <link>shared:<define>BOOST_MPI_PYTHON_DYN_LINK=1
|
||||
+ <link>shared:<define>BOOST_PYTHON_DYN_LINK=1
|
||||
+ <link>shared <runtime-link>shared
|
||||
+ ;
|
||||
}
|
||||
}
|
||||
else if ! ( --without-mpi in [ modules.peek : ARGV ] )
|
||||
--- a/libs/python/build/Jamfile
|
||||
+++ b/libs/python/build/Jamfile
|
||||
@@ -31,26 +31,23 @@
|
||||
;
|
||||
}
|
||||
|
||||
-py2-version = [ py-version 2 ] ;
|
||||
-py3-version = [ py-version 3 ] ;
|
||||
-
|
||||
project boost/python
|
||||
: source-location ../src
|
||||
;
|
||||
|
||||
rule cond ( test ? : yes * : no * ) { if $(test) { return $(yes) ; } else { return $(no) ; } }
|
||||
rule unless ( test ? : yes * : no * ) { if ! $(test) { return $(yes) ; } else { return $(no) ; } }
|
||||
-local rule eq ( a : b ) { if $(a) = $(b) { return 1 ; } }
|
||||
-
|
||||
-lib_boost_python(2) = boost_python ;
|
||||
-lib_boost_python(3) = boost_python3 ;
|
||||
-
|
||||
-lib_boost_python($(py2-version)) = $(lib_boost_python(2)) ;
|
||||
-lib_boost_python($(py3-version)) = $(lib_boost_python(3)) ;
|
||||
|
||||
-rule lib_boost_python ( version )
|
||||
+rule lib_boost_python
|
||||
{
|
||||
- lib $(lib_boost_python($(version)))
|
||||
+ local python_major_version = [ MATCH "^([^.]+)" : [ feature.values python ] ] ;
|
||||
+ local python2 ;
|
||||
+ if $(python_major_version) = 2
|
||||
+ {
|
||||
+ python2 = true ;
|
||||
+ }
|
||||
+
|
||||
+ lib boost_python
|
||||
: # sources
|
||||
list.cpp
|
||||
long.cpp
|
||||
@@ -96,7 +93,8 @@
|
||||
# python_for_extensions is a target defined by Boost.Build to
|
||||
# provide the Python include paths, and on Windows, the Python
|
||||
# import library, as usage requirements.
|
||||
- [ cond [ python.configured ] : <library>/python//python_for_extensions ]
|
||||
+ [ cond $(python2) : <cxxflags>-fno-strict-aliasing ]
|
||||
+ [ cond [ python.configured ] : <library>/python//python ]
|
||||
|
||||
# we prevent building when there is no python available
|
||||
# as it's not possible anyway, and to cause dependents to
|
||||
@@ -105,13 +103,10 @@
|
||||
<dependency>config-warning
|
||||
|
||||
<python-debugging>on:<define>BOOST_DEBUG_PYTHON
|
||||
- <python>$(version)
|
||||
|
||||
-<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
|
||||
<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag
|
||||
|
||||
- <conditional>@python.require-py
|
||||
-
|
||||
: # default build
|
||||
<link>shared
|
||||
: # usage requirements
|
||||
@@ -120,68 +115,8 @@
|
||||
;
|
||||
}
|
||||
|
||||
-lib_boost_numpy(2) = boost_numpy ;
|
||||
-lib_boost_numpy(3) = boost_numpy3 ;
|
||||
-
|
||||
-lib_boost_numpy($(py2-version)) = $(lib_boost_numpy(2)) ;
|
||||
-lib_boost_numpy($(py3-version)) = $(lib_boost_numpy(3)) ;
|
||||
-
|
||||
-rule lib_boost_numpy ( version )
|
||||
-{
|
||||
- numpy-include = [ python.numpy-include ] ;
|
||||
- lib $(lib_boost_numpy($(version)))
|
||||
- : # sources
|
||||
- numpy/dtype.cpp
|
||||
- numpy/matrix.cpp
|
||||
- numpy/ndarray.cpp
|
||||
- numpy/numpy.cpp
|
||||
- numpy/scalars.cpp
|
||||
- numpy/ufunc.cpp
|
||||
- : # requirements
|
||||
- <link>static:<define>BOOST_NUMPY_STATIC_LIB
|
||||
- <define>BOOST_NUMPY_SOURCE
|
||||
- [ cond [ python.numpy ] : <library>/python//python_for_extensions ]
|
||||
- [ unless [ python.numpy ] : <build>no ]
|
||||
- <include>$(numpy-include)
|
||||
- <library>$(lib_boost_python($(version)))
|
||||
- <python-debugging>on:<define>BOOST_DEBUG_PYTHON
|
||||
- <python>$(version)
|
||||
+libraries = boost_python ;
|
||||
|
||||
- -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
|
||||
- <tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag
|
||||
-
|
||||
- <conditional>@python.require-py
|
||||
-
|
||||
- : # default build
|
||||
- <link>shared
|
||||
- : # usage requirements
|
||||
- <link>static:<define>BOOST_NUMPY_STATIC_LIB
|
||||
- <python-debugging>on:<define>BOOST_DEBUG_PYTHON
|
||||
- ;
|
||||
-}
|
||||
-
|
||||
-libraries = ;
|
||||
-
|
||||
-for local N in 2 3
|
||||
-{
|
||||
- if $(py$(N)-version)
|
||||
- {
|
||||
- lib_boost_python $(py$(N)-version) ;
|
||||
- libraries += $(lib_boost_python($(py$(N)-version))) ;
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- alias $(lib_boost_python($(N))) ;
|
||||
- }
|
||||
- if $(py$(N)-version) && [ python.numpy ]
|
||||
- {
|
||||
- lib_boost_numpy $(py$(N)-version) ;
|
||||
- libraries += $(lib_boost_numpy($(py$(N)-version))) ;
|
||||
- }
|
||||
- else
|
||||
- {
|
||||
- alias $(lib_boost_numpy($(N))) ;
|
||||
- }
|
||||
-}
|
||||
+lib_boost_python ;
|
||||
|
||||
boost-install $(libraries) ;
|
@ -0,0 +1,13 @@
|
||||
Build auto_index tool with USE="tools"
|
||||
See also: https://bugs.gentoo.org/529066
|
||||
|
||||
--- a/tools/Jamfile.v2
|
||||
+++ b/tools/Jamfile.v2
|
||||
@@ -18,6 +18,7 @@
|
||||
;
|
||||
|
||||
TOOLS =
|
||||
+ auto_index/build//auto_index
|
||||
bcp//bcp
|
||||
inspect/build//inspect
|
||||
quickbook//quickbook
|
@ -1,21 +1,17 @@
|
||||
https://svn.boost.org/trac/boost/ticket/9445
|
||||
|
||||
hack to fix x32 builds
|
||||
|
||||
--- a/libs/context/src/asm/jump_i386_sysv_elf_gas.S
|
||||
+++ b/libs/context/src/asm/jump_i386_sysv_elf_gas.S
|
||||
@@ -31,6 +31,10 @@
|
||||
* *
|
||||
* *****************************************************************/
|
||||
@@ -24,6 +24,10 @@
|
||||
* *
|
||||
****************************************************************************************/
|
||||
|
||||
+#ifdef __x86_64__
|
||||
+#include "jump_x86_64_sysv_elf_gas.S"
|
||||
+#else
|
||||
+
|
||||
.file "jump_i386_sysv_elf_gas.S"
|
||||
.text
|
||||
.globl jump_fcontext
|
||||
.align 2
|
||||
@@ -73,3 +77,5 @@ jump_fcontext:
|
||||
@@ -81,3 +85,5 @@
|
||||
|
||||
/* Mark that we don't need executable stack. */
|
||||
.section .note.GNU-stack,"",%progbits
|
||||
@ -23,18 +19,18 @@ hack to fix x32 builds
|
||||
+#endif
|
||||
--- a/libs/context/src/asm/make_i386_sysv_elf_gas.S
|
||||
+++ b/libs/context/src/asm/make_i386_sysv_elf_gas.S
|
||||
@@ -31,6 +31,10 @@
|
||||
* *
|
||||
* *****************************************************************/
|
||||
@@ -24,6 +24,10 @@
|
||||
* *
|
||||
****************************************************************************************/
|
||||
|
||||
+#ifdef __x86_64__
|
||||
+#include "make_x86_64_sysv_elf_gas.S"
|
||||
+#else
|
||||
+
|
||||
.file "make_i386_sysv_elf_gas.S"
|
||||
.text
|
||||
.globl make_fcontext
|
||||
.align 2
|
||||
@@ -78,3 +82,5 @@ finish:
|
||||
@@ -105,3 +109,5 @@
|
||||
|
||||
/* Mark that we don't need executable stack. */
|
||||
.section .note.GNU-stack,"",%progbits
|
@ -1,6 +1,6 @@
|
||||
--- a/libs/locale/build/Jamfile.v2
|
||||
+++ b/libs/locale/build/Jamfile.v2
|
||||
@@ -58,8 +58,8 @@
|
||||
@@ -65,8 +65,8 @@
|
||||
|
||||
if $(ICU_LINK)
|
||||
{
|
||||
@ -11,7 +11,7 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -117,7 +117,6 @@
|
||||
@@ -124,7 +124,6 @@
|
||||
<library>icuuc/<link>shared/<runtime-link>shared
|
||||
<library>icudt/<link>shared/<runtime-link>shared
|
||||
<library>icuin/<link>shared/<runtime-link>shared
|
||||
@ -19,7 +19,7 @@
|
||||
<runtime-link>shared ;
|
||||
|
||||
|
||||
@@ -176,7 +175,6 @@
|
||||
@@ -183,7 +182,6 @@
|
||||
<library>icuuc_64/<link>shared/<runtime-link>shared
|
||||
<library>icudt_64/<link>shared/<runtime-link>shared
|
||||
<library>icuin_64/<link>shared/<runtime-link>shared
|
@ -0,0 +1,17 @@
|
||||
--- a/libs/mpi/build/__init__.py
|
||||
+++ b/libs/mpi/build/__init__.py
|
||||
@@ -1,10 +1,12 @@
|
||||
+from __future__ import absolute_import
|
||||
+
|
||||
import sys
|
||||
if sys.platform == 'linux2':
|
||||
import DLFCN as dl
|
||||
flags = sys.getdlopenflags()
|
||||
sys.setdlopenflags(dl.RTLD_NOW|dl.RTLD_GLOBAL)
|
||||
- import mpi
|
||||
+ from . import mpi
|
||||
sys.setdlopenflags(flags)
|
||||
else:
|
||||
- import mpi
|
||||
+ from . import mpi
|
||||
|
@ -0,0 +1,107 @@
|
||||
From c1cae8e6b0480e046ea627679a3afe488ed02dc1 Mon Sep 17 00:00:00 2001
|
||||
From: David Seifert <soap@gentoo.org>
|
||||
Date: Wed, 25 Dec 2019 12:37:35 +0100
|
||||
Subject: [PATCH] Remove Boost.Python-specific python-tag code
|
||||
|
||||
---
|
||||
libs/python/Jamfile | 68 ---------------------------------------------------
|
||||
libs/python/build/Jamfile | 4 +--
|
||||
2 files changed, 2 insertions(+), 70 deletions(-)
|
||||
delete mode 100644 Jamfile
|
||||
|
||||
diff --git a/libs/python/Jamfile b/libs/python/Jamfile
|
||||
deleted file mode 100644
|
||||
index 32e87d80f..000000000
|
||||
--- a/libs/python/Jamfile
|
||||
+++ /dev/null
|
||||
@@ -1,68 +0,0 @@
|
||||
-# Copyright (c) 2018 Stefan Seefeld
|
||||
-# All rights reserved.
|
||||
-#
|
||||
-# Distributed under the Boost Software License, Version 1.0.
|
||||
-# (See accompanying file LICENSE_1_0.txt or copy at
|
||||
-# http://www.boost.org/LICENSE_1_0.txt)
|
||||
-
|
||||
-import option ;
|
||||
-import regex ;
|
||||
-import python ;
|
||||
-
|
||||
-#
|
||||
-# The `version-suffix` rule really belongs into python.jam, and
|
||||
-# should be moved there. `split-version` is only duplicated here
|
||||
-# as a prerequisite. (See https://github.com/boostorg/build/pull/290)
|
||||
-#
|
||||
-
|
||||
-
|
||||
-# Validate the version string and extract the major/minor part we care about.
|
||||
-#
|
||||
-local rule split-version ( version )
|
||||
-{
|
||||
- local major-minor = [ MATCH "^([0-9]+)\.([0-9]+)(.*)$" : $(version) : 1 2 3 ] ;
|
||||
- if ! $(major-minor[2]) || $(major-minor[3])
|
||||
- {
|
||||
- ECHO "Warning: \"using python\" expects a two part (major, minor) version number; got" $(version) instead ;
|
||||
-
|
||||
- # Add a zero to account for the missing digit if necessary.
|
||||
- major-minor += 0 ;
|
||||
- }
|
||||
-
|
||||
- return $(major-minor[1]) $(major-minor[2]) ;
|
||||
-}
|
||||
-
|
||||
-# Define a version suffix for libraries depending on Python.
|
||||
-# For example, Boost.Python built for Python 2.7 uses the suffix "27"
|
||||
-rule version-suffix ( version )
|
||||
-{
|
||||
- local major-minor = [ split-version $(version) ] ;
|
||||
- local suffix = $(major-minor:J="") ;
|
||||
- return $(suffix) ;
|
||||
-}
|
||||
-
|
||||
-
|
||||
-# Python build id (for Python libraries only).
|
||||
-python-id = [ option.get "python-buildid" ] ;
|
||||
-if $(python-id)
|
||||
-{
|
||||
- PYTHON_ID = [ regex.replace $(python-id) "[*\\/:.\"\']" _ ] ;
|
||||
-}
|
||||
-
|
||||
-rule python-tag ( name : type ? : property-set )
|
||||
-{
|
||||
- local result = $(name) ;
|
||||
- if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB
|
||||
- {
|
||||
- local version = [ $(property-set).get <python> ] ;
|
||||
- local lib-suffix = [ version-suffix $(version) ] ;
|
||||
- result = $(result)$(lib-suffix) ;
|
||||
- }
|
||||
- if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB && $(PYTHON_ID)
|
||||
- {
|
||||
- result = $(result)-$(PYTHON_ID) ;
|
||||
- }
|
||||
-
|
||||
- # forward to the boost tagging rule
|
||||
- return [ tag $(result) : $(type) : $(property-set) ] ;
|
||||
-}
|
||||
diff --git a/libs/python/build/Jamfile b/libs/python/build/Jamfile
|
||||
index d03d4dd08..dbc9fb203 100644
|
||||
--- a/libs/python/build/Jamfile
|
||||
+++ b/libs/python/build/Jamfile
|
||||
@@ -95,7 +95,7 @@
|
||||
<dependency>config-warning
|
||||
<python-debugging>on:<define>BOOST_DEBUG_PYTHON
|
||||
-<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
|
||||
- <tag>@$(__name__).python-tag
|
||||
+ <tag>@python-tag
|
||||
<conditional>@python.require-py
|
||||
|
||||
: # default build
|
||||
@@ -123,7 +123,7 @@
|
||||
<library>boost_python
|
||||
<python-debugging>on:<define>BOOST_DEBUG_PYTHON
|
||||
-<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
|
||||
- <tag>@$(__name__).python-tag
|
||||
+ <tag>@python-tag
|
||||
<conditional>@python.require-py
|
||||
|
||||
: # default build
|
@ -0,0 +1,45 @@
|
||||
From d1c8825a45a0717e1ad79583d3283b0e5e32831e Mon Sep 17 00:00:00 2001
|
||||
From: Andrey Semashev <Lastique@users.noreply.github.com>
|
||||
Date: Tue, 28 Apr 2020 22:03:04 +0300
|
||||
Subject: [PATCH] Fix usage of deprecated Boost.Bind features
|
||||
|
||||
This fixes deprecation warnings generated by boost/bind.hpp.
|
||||
|
||||
Also, use a more actual include path for ref.hpp.
|
||||
---
|
||||
boost/property_tree/json_parser/detail/parser.hpp | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/boost/property_tree/json_parser/detail/parser.hpp b/boost/property_tree/json_parser/detail/parser.hpp
|
||||
index 5554990fb..6cf636394 100644
|
||||
--- a/boost/property_tree/json_parser/detail/parser.hpp
|
||||
+++ b/boost/property_tree/json_parser/detail/parser.hpp
|
||||
@@ -3,8 +3,8 @@
|
||||
|
||||
#include <boost/property_tree/json_parser/error.hpp>
|
||||
|
||||
-#include <boost/ref.hpp>
|
||||
-#include <boost/bind.hpp>
|
||||
+#include <boost/core/ref.hpp>
|
||||
+#include <boost/bind/bind.hpp>
|
||||
#include <boost/format.hpp>
|
||||
|
||||
#include <iterator>
|
||||
@@ -214,7 +214,7 @@ namespace boost { namespace property_tree {
|
||||
void process_codepoint(Sentinel end, EncodingErrorFn error_fn) {
|
||||
encoding.transcode_codepoint(cur, end,
|
||||
boost::bind(&Callbacks::on_code_unit,
|
||||
- boost::ref(callbacks), _1),
|
||||
+ boost::ref(callbacks), boost::placeholders::_1),
|
||||
error_fn);
|
||||
}
|
||||
|
||||
@@ -517,7 +517,7 @@ namespace boost { namespace property_tree {
|
||||
void feed(unsigned codepoint) {
|
||||
encoding.feed_codepoint(codepoint,
|
||||
boost::bind(&Callbacks::on_code_unit,
|
||||
- boost::ref(callbacks), _1));
|
||||
+ boost::ref(callbacks), boost::placeholders::_1));
|
||||
}
|
||||
|
||||
Callbacks& callbacks;
|
125
sdk_container/src/third_party/portage-stable/dev-libs/boost/files/boost-1.74-CVE-2012-2677.patch
vendored
Normal file
125
sdk_container/src/third_party/portage-stable/dev-libs/boost/files/boost-1.74-CVE-2012-2677.patch
vendored
Normal file
@ -0,0 +1,125 @@
|
||||
https://src.fedoraproject.org/rpms/boost/raw/master/f/boost-1.58.0-pool.patch
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=828856
|
||||
https://bugs.gentoo.org/620468
|
||||
https://svn.boost.org/trac10/ticket/6701
|
||||
|
||||
Index: boost/pool/pool.hpp
|
||||
===================================================================
|
||||
--- a/boost/pool/pool.hpp (revision 78317)
|
||||
+++ b/boost/pool/pool.hpp (revision 78326)
|
||||
@@ -27,4 +27,6 @@
|
||||
#include <boost/pool/poolfwd.hpp>
|
||||
|
||||
+// std::numeric_limits
|
||||
+#include <boost/limits.hpp>
|
||||
// boost::integer::static_lcm
|
||||
#include <boost/integer/common_factor_ct.hpp>
|
||||
@@ -358,4 +360,11 @@
|
||||
}
|
||||
|
||||
+ size_type max_chunks() const
|
||||
+ { //! Calculated maximum number of memory chunks that can be allocated in a single call by this Pool.
|
||||
+ size_type partition_size = alloc_size();
|
||||
+ size_type POD_size = integer::static_lcm<sizeof(size_type), sizeof(void *)>::value + sizeof(size_type);
|
||||
+ return (std::numeric_limits<size_type>::max() - POD_size) / alloc_size();
|
||||
+ }
|
||||
+
|
||||
static void * & nextof(void * const ptr)
|
||||
{ //! \returns Pointer dereferenced.
|
||||
@@ -377,5 +388,7 @@
|
||||
//! the first time that object needs to allocate system memory.
|
||||
//! The default is 32. This parameter may not be 0.
|
||||
- //! \param nmax_size is the maximum number of chunks to allocate in one block.
|
||||
+ //! \param nmax_size is the maximum number of chunks to allocate in one block.
|
||||
+ set_next_size(nnext_size);
|
||||
+ set_max_size(nmax_size);
|
||||
}
|
||||
|
||||
@@ -400,7 +413,7 @@
|
||||
}
|
||||
void set_next_size(const size_type nnext_size)
|
||||
- { //! Set number of chunks to request from the system the next time that object needs to allocate system memory. This value should never be set to 0.
|
||||
- //! \returns nnext_size.
|
||||
- next_size = start_size = nnext_size;
|
||||
+ { //! Set number of chunks to request from the system the next time that object needs to allocate system memory. This value should never be set to 0.
|
||||
+ BOOST_USING_STD_MIN();
|
||||
+ next_size = start_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(nnext_size, max_chunks());
|
||||
}
|
||||
size_type get_max_size() const
|
||||
@@ -410,5 +423,6 @@
|
||||
void set_max_size(const size_type nmax_size)
|
||||
{ //! Set max_size.
|
||||
- max_size = nmax_size;
|
||||
+ BOOST_USING_STD_MIN();
|
||||
+ max_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(nmax_size, max_chunks());
|
||||
}
|
||||
size_type get_requested_size() const
|
||||
@@ -713,7 +727,7 @@
|
||||
BOOST_USING_STD_MIN();
|
||||
if(!max_size)
|
||||
- next_size <<= 1;
|
||||
+ set_next_size(next_size << 1);
|
||||
else if( next_size*partition_size/requested_size < max_size)
|
||||
- next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size*requested_size/ partition_size);
|
||||
+ set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size));
|
||||
|
||||
// initialize it,
|
||||
@@ -753,7 +767,7 @@
|
||||
BOOST_USING_STD_MIN();
|
||||
if(!max_size)
|
||||
- next_size <<= 1;
|
||||
+ set_next_size(next_size << 1);
|
||||
else if( next_size*partition_size/requested_size < max_size)
|
||||
- next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size*requested_size/ partition_size);
|
||||
+ set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size));
|
||||
|
||||
// initialize it,
|
||||
@@ -797,4 +811,6 @@
|
||||
//! \returns Address of chunk n if allocated ok.
|
||||
//! \returns 0 if not enough memory for n chunks.
|
||||
+ if (n > max_chunks())
|
||||
+ return 0;
|
||||
|
||||
const size_type partition_size = alloc_size();
|
||||
@@ -845,7 +861,7 @@
|
||||
BOOST_USING_STD_MIN();
|
||||
if(!max_size)
|
||||
- next_size <<= 1;
|
||||
+ set_next_size(next_size << 1);
|
||||
else if( next_size*partition_size/requested_size < max_size)
|
||||
- next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size*requested_size/ partition_size);
|
||||
+ set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size));
|
||||
|
||||
// insert it into the list,
|
||||
Index: libs/pool/test/test_bug_6701.cpp
|
||||
===================================================================
|
||||
--- a/libs/pool/test/test_bug_6701.cpp (revision 78326)
|
||||
+++ b/libs/pool/test/test_bug_6701.cpp (revision 78326)
|
||||
@@ -0,0 +1,27 @@
|
||||
+/* Copyright (C) 2012 Étienne Dupuis
|
||||
+*
|
||||
+* Use, modification and distribution is subject to the
|
||||
+* Boost Software License, Version 1.0. (See accompanying
|
||||
+* file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
|
||||
+*/
|
||||
+
|
||||
+// Test of bug #6701 (https://svn.boost.org/trac/boost/ticket/6701)
|
||||
+
|
||||
+#include <boost/pool/object_pool.hpp>
|
||||
+#include <boost/limits.hpp>
|
||||
+
|
||||
+int main()
|
||||
+{
|
||||
+ boost::pool<> p(1024, std::numeric_limits<size_t>::max() / 768);
|
||||
+
|
||||
+ void *x = p.malloc();
|
||||
+ BOOST_ASSERT(!x);
|
||||
+
|
||||
+ BOOST_ASSERT(std::numeric_limits<size_t>::max() / 1024 >= p.get_next_size());
|
||||
+ BOOST_ASSERT(std::numeric_limits<size_t>::max() / 1024 >= p.get_max_size());
|
||||
+
|
||||
+ void *y = p.ordered_malloc(std::numeric_limits<size_t>::max() / 768);
|
||||
+ BOOST_ASSERT(!y);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
@ -1,9 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="project">
|
||||
<email>cpp@gentoo.org</email>
|
||||
<name>Gentoo C++ Project</name>
|
||||
<maintainer type="person">
|
||||
<email>soap@gentoo.org</email>
|
||||
<name>David Seifert</name>
|
||||
</maintainer>
|
||||
<maintainer type="project">
|
||||
<email>office@gentoo.org</email>
|
||||
@ -11,14 +11,15 @@
|
||||
</maintainer>
|
||||
<use>
|
||||
<flag name="context">Build and install the Boost.Context (and Boost.Fiber) library and all other Boost libraries that depend on it</flag>
|
||||
<flag name="tools">Build and install the boost tools (bcp, quickbook, inspect, wave)</flag>
|
||||
<flag name="debug" restrict="<dev-libs/boost-1.50.0-r3">Build and install debug versions of the Boost libraries. These libraries are not used by default, and should not be used unless you're developing against Boost.</flag>
|
||||
<flag name="debug" restrict=">dev-libs/boost-1.52.0-r2">Build and install only the debug version of the Boost libraries. Only enable this flag if you're developing against boost.</flag>
|
||||
<flag name="threads">Build multi-thread-compatible libraries instead of single-threaded only.</flag>
|
||||
<flag name="nls">Build libboost_locale. This library requires compatible C library interfaces, which might not be provided by uClibc or other embedded libraries.</flag>
|
||||
<flag name="debug">Build and install only the debug version of the Boost libraries. Only enable this flag if you're developing against boost.</flag>
|
||||
<flag name="doc">Install the full API documentation documentation. This takes over 200MB of extra disk space.</flag>
|
||||
<flag name="nls">Build libboost_locale. This library requires compatible C library interfaces, which might not be provided by uClibc or other embedded libraries.</flag>
|
||||
<flag name="numpy">Optionally build NumPy extensions when Boost.Python is enabled</flag>
|
||||
<flag name="threads">Build multi-thread-compatible libraries instead of single-threaded only.</flag>
|
||||
<flag name="tools">Build and install the boost tools (bcp, quickbook, inspect, wave)</flag>
|
||||
</use>
|
||||
<upstream>
|
||||
<remote-id type="cpe">cpe:/a:boost:boost</remote-id>
|
||||
<remote-id type="sourceforge">boost</remote-id>
|
||||
</upstream>
|
||||
</pkgmetadata>
|
||||
|
@ -1,4 +1,2 @@
|
||||
DIST boost_1_63_0.tar.bz2 81984414 BLAKE2B 227c4432bd3ca0eb390048ec85047958fcb6ae289996501812cd8b13bf74bbe9b677d0110948265cab59a60deb36c4fc08440af74ac5a5219ea4eaea4fa6918f SHA512 c915c5f5778dee49b8e9d0a40f37f90f56fb1fdb1d8ce92d97bf48bc7bc462212487badfe4bbe30b06196d1149cfb221da12ac54e97499b0d4cb6466813bb4ad
|
||||
DIST boost_1_65_0.tar.bz2 82597718 BLAKE2B 0080956d6ad2f14130ce4a4734b1bd1ce83d3651b226653689e02770baa83cf11811ef4e44948ff68a168d9ce5cbfaea4f758970df2b4e9faa2d410181885f5b SHA512 7142650fb8d61e3ef16ba066fc918e087f19e9bc2ad1d6a11fb10bf0d6b1b5ad05ab032f076a5233a1624b3669e952b2cc38b7dc074bbf53018e2970ee90fcdd
|
||||
DIST boost_1_66_0.tar.bz2 85995778 BLAKE2B 9ab1fe396b10ab85d7e4084ec7abb8d785ecd892c8f51aea5a401cb565b111c256533364fe028da74ed376534889f43c5ccbdcd703cd236526ae66a064220765 SHA512 0f34075d35391d66876e5189a01a11880a79428e1b267456348ee148dba9dc3abdc74d568f1853be631d20b584b1c804b42443c266f7622164acfc10be3dab8b
|
||||
DIST boost_1_67_0.tar.bz2 87336566 BLAKE2B 85ea00fc2197b1bbfc35d69427c87f23ea43d7592f1c9ce66e2afcde8476bdec86f6debdac815b23de59f4665a8e0c7f1519ab66a31d39df629723bc45710058 SHA512 82bf33d7d2c3db109c9d1f12d40bc2d364c8c95262386f906ccd1a71cd71433bcc01829e968b4a13a5003cf0b50cbdf0b435a1d76530cea7bb05725c327411e8
|
||||
DIST boost_1_74_0.tar.bz2 109600630 BLAKE2B 2982f64fccf6fdb3b4b74452e603f459242d7abb42df4162278d9b558b637786a2eb97442126967b19088d591777c64ced8f60a23e71eaa0b7545e80f800de63 SHA512 4ec9c1164ec9b95ce46ba1c073e586c94b3882dce5b7347ea14bbef0c1da230e12aa5328a501ce38cae1b1d7623daa3246325625899179b4cc309242540982a4
|
||||
DIST boost_1_75_0.tar.bz2 121849575 BLAKE2B ce7ecd8bcee518ce54f7e5302f202acbea60cedd6ae9248708c0bb5bbc2713607b2e1967a9e6f77cc20a4c008c1ee4db651def55937efc80407487a7a44fa8d6 SHA512 d86f060245e98dca5c7f3f831c98ea9ccbfa8310f20830dd913d9d4c939fbe7cb94accd35f1128e7c4faf6c27adb6f4bb54e5477a6bde983dfc7aa33c4eed03a
|
||||
|
@ -1,140 +0,0 @@
|
||||
# Copyright 1999-2018 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
RESTRICT="test"
|
||||
|
||||
PYTHON_COMPAT=( python2_7 )
|
||||
inherit eutils flag-o-matic python-single-r1 toolchain-funcs versionator
|
||||
|
||||
MY_PV="$(replace_all_version_separators _)"
|
||||
|
||||
DESCRIPTION="A system for large project software construction, simple to use and powerful"
|
||||
HOMEPAGE="https://boostorg.github.io/build/"
|
||||
SRC_URI="https://downloads.sourceforge.net/project/boost/boost/${PV}/boost_${MY_PV}.tar.bz2"
|
||||
|
||||
LICENSE="Boost-1.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||
IUSE="examples python test"
|
||||
|
||||
RDEPEND="python? ( ${PYTHON_DEPS} )
|
||||
!<dev-libs/boost-1.34.0
|
||||
!<=dev-util/boost-build-1.35.0-r1"
|
||||
DEPEND="${RDEPEND}
|
||||
test? ( sys-apps/diffutils
|
||||
${PYTHON_DEPS} )"
|
||||
|
||||
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )
|
||||
test? ( ${PYTHON_REQUIRED_USE} )"
|
||||
|
||||
S="${WORKDIR}/boost_${MY_PV}/tools/build/src"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-1.48.0-disable_python_rpath.patch"
|
||||
"${FILESDIR}/${PN}-1.50.0-respect-c_ld-flags.patch"
|
||||
"${FILESDIR}/${PN}-1.49.0-darwin-gentoo-toolchain.patch"
|
||||
"${FILESDIR}/${PN}-1.52.0-darwin-no-python-framework.patch"
|
||||
"${FILESDIR}/${PN}-1.54.0-support_dots_in_python-buildid.patch"
|
||||
"${FILESDIR}/${PN}-1.55.0-ppc-aix.patch"
|
||||
"${FILESDIR}/${PN}-1.62.0-sparc-no-default-flags.patch"
|
||||
)
|
||||
|
||||
pkg_setup() {
|
||||
if use python || use test; then
|
||||
python-single-r1_pkg_setup
|
||||
fi
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
tar xojf "${DISTDIR}/${A}" boost_${MY_PV}/tools/build || die "unpacking tar failed"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
pushd ../ >/dev/null || die
|
||||
eapply "${FILESDIR}/${PN}-1.54.0-fix-test.patch"
|
||||
popd >/dev/null || die
|
||||
|
||||
# Remove stripping option
|
||||
# Fix python components build on multilib systems, bug #496446
|
||||
cd "${S}/engine" || die
|
||||
sed -i \
|
||||
-e 's|-s\b||' \
|
||||
-e "/libpython/s/lib ]/$(get_libdir) ]/" \
|
||||
build.jam || die "sed failed"
|
||||
|
||||
# Force regeneration
|
||||
rm jambase.c || die
|
||||
|
||||
# This patch allows us to fully control optimization
|
||||
# and stripping flags when bjam is used as build-system
|
||||
# We simply extend the optimization and debug-symbols feature
|
||||
# with empty dummies called 'none'
|
||||
cd "${S}" || die
|
||||
sed -i \
|
||||
-e 's/\(off speed space\)/\1 none/' \
|
||||
-e 's/\(debug-symbols : on off\)/\1 none/' \
|
||||
tools/builtin.jam || die "sed failed"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
if use python; then
|
||||
# replace versions by user-selected one (TODO: fix this when slot-op
|
||||
# deps are available to always match the best version available)
|
||||
sed -i \
|
||||
-e "s|27 26 25 24 23 22|${EPYTHON#python}|" \
|
||||
engine/build.jam || die "sed failed"
|
||||
fi
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
cd engine || die
|
||||
|
||||
local toolset
|
||||
|
||||
if [[ ${CHOST} == *-darwin* ]]; then
|
||||
toolset=darwin
|
||||
else
|
||||
# Using boost's generic toolset here, which respects CC and CFLAGS
|
||||
toolset=cc
|
||||
fi
|
||||
|
||||
CC=$(tc-getCC) ./build.sh ${toolset} -d+2 $(use_with python python "${EROOT%/}"/usr) || die "building bjam failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin engine/bin.*/{bjam,b2}
|
||||
|
||||
insinto /usr/share/boost-build
|
||||
doins -r "${FILESDIR}/site-config.jam" \
|
||||
../boost-build.jam bootstrap.jam build-system.jam ../example/user-config.jam *.py \
|
||||
build kernel options tools util
|
||||
|
||||
if ! use python; then
|
||||
find "${ED%/}/usr/share/boost-build" -iname "*.py" -delete || die "removing experimental python files failed"
|
||||
fi
|
||||
|
||||
dodoc ../notes/{changes,release_procedure,build_dir_option,relative_source_paths}.txt
|
||||
|
||||
if use examples; then
|
||||
docinto examples
|
||||
dodoc -r ../example/.
|
||||
docompress -x /usr/share/doc/${PF}/examples
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
cd ../test || die
|
||||
|
||||
export TMP="${T}"
|
||||
|
||||
DO_DIFF="${PREFIX}/usr/bin/diff" ${PYTHON} test_all.py
|
||||
|
||||
if [[ -s test_results.txt ]]; then
|
||||
eerror "At least one test failed: $(<test_results.txt)"
|
||||
die "tests failed"
|
||||
fi
|
||||
}
|
@ -1,140 +0,0 @@
|
||||
# Copyright 1999-2018 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
RESTRICT="test"
|
||||
|
||||
PYTHON_COMPAT=( python2_7 )
|
||||
inherit eutils flag-o-matic python-single-r1 toolchain-funcs versionator
|
||||
|
||||
MY_PV="$(replace_all_version_separators _)"
|
||||
|
||||
DESCRIPTION="A system for large project software construction, simple to use and powerful"
|
||||
HOMEPAGE="https://boostorg.github.io/build/"
|
||||
SRC_URI="https://downloads.sourceforge.net/project/boost/boost/${PV}/boost_${MY_PV}.tar.bz2"
|
||||
|
||||
LICENSE="Boost-1.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 s390 ~sh sparc x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||
IUSE="examples python test"
|
||||
|
||||
RDEPEND="python? ( ${PYTHON_DEPS} )
|
||||
!<dev-libs/boost-1.34.0
|
||||
!<=dev-util/boost-build-1.35.0-r1"
|
||||
DEPEND="${RDEPEND}
|
||||
test? ( sys-apps/diffutils
|
||||
${PYTHON_DEPS} )"
|
||||
|
||||
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )
|
||||
test? ( ${PYTHON_REQUIRED_USE} )"
|
||||
|
||||
S="${WORKDIR}/boost_${MY_PV}/tools/build/src"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-1.48.0-disable_python_rpath.patch"
|
||||
"${FILESDIR}/${PN}-1.50.0-respect-c_ld-flags.patch"
|
||||
"${FILESDIR}/${PN}-1.49.0-darwin-gentoo-toolchain.patch"
|
||||
"${FILESDIR}/${PN}-1.52.0-darwin-no-python-framework.patch"
|
||||
"${FILESDIR}/${PN}-1.54.0-support_dots_in_python-buildid.patch"
|
||||
"${FILESDIR}/${PN}-1.55.0-ppc-aix.patch"
|
||||
"${FILESDIR}/${PN}-1.62.0-sparc-no-default-flags.patch"
|
||||
)
|
||||
|
||||
pkg_setup() {
|
||||
if use python || use test; then
|
||||
python-single-r1_pkg_setup
|
||||
fi
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
tar xojf "${DISTDIR}/${A}" boost_${MY_PV}/tools/build || die "unpacking tar failed"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
pushd ../ >/dev/null || die
|
||||
eapply "${FILESDIR}/${PN}-1.54.0-fix-test.patch"
|
||||
popd >/dev/null || die
|
||||
|
||||
# Remove stripping option
|
||||
# Fix python components build on multilib systems, bug #496446
|
||||
cd "${S}/engine" || die
|
||||
sed -i \
|
||||
-e 's|-s\b||' \
|
||||
-e "/libpython/s/lib ]/$(get_libdir) ]/" \
|
||||
build.jam || die "sed failed"
|
||||
|
||||
# Force regeneration
|
||||
rm jambase.c || die
|
||||
|
||||
# This patch allows us to fully control optimization
|
||||
# and stripping flags when bjam is used as build-system
|
||||
# We simply extend the optimization and debug-symbols feature
|
||||
# with empty dummies called 'none'
|
||||
cd "${S}" || die
|
||||
sed -i \
|
||||
-e 's/\(off speed space\)/\1 none/' \
|
||||
-e 's/\(debug-symbols : on off\)/\1 none/' \
|
||||
tools/builtin.jam || die "sed failed"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
if use python; then
|
||||
# replace versions by user-selected one (TODO: fix this when slot-op
|
||||
# deps are available to always match the best version available)
|
||||
sed -i \
|
||||
-e "s|27 26 25 24 23 22|${EPYTHON#python}|" \
|
||||
engine/build.jam || die "sed failed"
|
||||
fi
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
cd engine || die
|
||||
|
||||
local toolset
|
||||
|
||||
if [[ ${CHOST} == *-darwin* ]]; then
|
||||
toolset=darwin
|
||||
else
|
||||
# Using boost's generic toolset here, which respects CC and CFLAGS
|
||||
toolset=cc
|
||||
fi
|
||||
|
||||
CC=$(tc-getCC) ./build.sh ${toolset} -d+2 $(use_with python python "${EROOT%/}"/usr) || die "building bjam failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin engine/bin.*/{bjam,b2}
|
||||
|
||||
insinto /usr/share/boost-build
|
||||
doins -r "${FILESDIR}/site-config.jam" \
|
||||
../boost-build.jam bootstrap.jam build-system.jam ../example/user-config.jam *.py \
|
||||
build kernel options tools util
|
||||
|
||||
if ! use python; then
|
||||
find "${ED%/}/usr/share/boost-build" -iname "*.py" -delete || die "removing experimental python files failed"
|
||||
fi
|
||||
|
||||
dodoc ../notes/{changes,release_procedure,build_dir_option,relative_source_paths}.txt
|
||||
|
||||
if use examples; then
|
||||
docinto examples
|
||||
dodoc -r ../example/.
|
||||
docompress -x /usr/share/doc/${PF}/examples
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
cd ../test || die
|
||||
|
||||
export TMP="${T}"
|
||||
|
||||
DO_DIFF="${PREFIX}/usr/bin/diff" ${PYTHON} test_all.py
|
||||
|
||||
if [[ -s test_results.txt ]]; then
|
||||
eerror "At least one test failed: $(<test_results.txt)"
|
||||
die "tests failed"
|
||||
fi
|
||||
}
|
@ -1,141 +0,0 @@
|
||||
# Copyright 1999-2018 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
RESTRICT="test"
|
||||
|
||||
PYTHON_COMPAT=( python2_7 )
|
||||
inherit eutils flag-o-matic python-single-r1 toolchain-funcs versionator
|
||||
|
||||
MY_PV="$(replace_all_version_separators _)"
|
||||
|
||||
DESCRIPTION="A system for large project software construction, simple to use and powerful"
|
||||
HOMEPAGE="https://boostorg.github.io/build/"
|
||||
SRC_URI="https://downloads.sourceforge.net/project/boost/boost/${PV}/boost_${MY_PV}.tar.bz2"
|
||||
|
||||
LICENSE="Boost-1.0"
|
||||
SLOT="0"
|
||||
#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||
IUSE="examples python test"
|
||||
|
||||
RDEPEND="python? ( ${PYTHON_DEPS} )
|
||||
!<dev-libs/boost-1.35.0
|
||||
!<=dev-util/boost-build-1.35.0-r1"
|
||||
DEPEND="${RDEPEND}
|
||||
test? ( sys-apps/diffutils
|
||||
${PYTHON_DEPS} )"
|
||||
|
||||
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )
|
||||
test? ( ${PYTHON_REQUIRED_USE} )"
|
||||
|
||||
S="${WORKDIR}/boost_${MY_PV}/tools/build/src"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-1.48.0-disable_python_rpath.patch"
|
||||
"${FILESDIR}/${PN}-1.50.0-respect-c_ld-flags.patch"
|
||||
"${FILESDIR}/${PN}-1.49.0-darwin-gentoo-toolchain.patch"
|
||||
"${FILESDIR}/${PN}-1.52.0-darwin-no-python-framework.patch"
|
||||
"${FILESDIR}/${PN}-1.54.0-support_dots_in_python-buildid.patch"
|
||||
"${FILESDIR}/${PN}-1.55.0-ppc-aix.patch"
|
||||
"${FILESDIR}/${PN}-1.62.0-sparc-no-default-flags.patch"
|
||||
"${FILESDIR}/${PN}-1.66.0-add-none-feature-options.patch"
|
||||
)
|
||||
|
||||
pkg_setup() {
|
||||
if use python || use test; then
|
||||
python-single-r1_pkg_setup
|
||||
fi
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
tar xojf "${DISTDIR}/${A}" boost_${MY_PV}/tools/build || die "unpacking tar failed"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
pushd ../ >/dev/null || die
|
||||
eapply "${FILESDIR}/${PN}-1.54.0-fix-test.patch"
|
||||
popd >/dev/null || die
|
||||
|
||||
# Remove stripping option
|
||||
# Fix python components build on multilib systems, bug #496446
|
||||
cd "${S}/engine" || die
|
||||
sed -i \
|
||||
-e 's|-s\b||' \
|
||||
-e "/libpython/s/lib ]/$(get_libdir) ]/" \
|
||||
build.jam || die "sed failed"
|
||||
|
||||
# Force regeneration
|
||||
rm jambase.c || die
|
||||
|
||||
# This patch allows us to fully control optimization
|
||||
# and stripping flags when bjam is used as build-system
|
||||
# We simply extend the optimization and debug-symbols feature
|
||||
# with empty dummies called 'none'
|
||||
cd "${S}" || die
|
||||
sed -i \
|
||||
-e 's/\(off speed space\)/\1 none/' \
|
||||
-e 's/\(debug-symbols : on off\)/\1 none/' \
|
||||
tools/builtin.jam || die "sed failed"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
if use python; then
|
||||
# replace versions by user-selected one (TODO: fix this when slot-op
|
||||
# deps are available to always match the best version available)
|
||||
sed -i \
|
||||
-e "s|27 26 25 24 23 22|${EPYTHON#python}|" \
|
||||
engine/build.jam || die "sed failed"
|
||||
fi
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
cd engine || die
|
||||
|
||||
local toolset
|
||||
|
||||
if [[ ${CHOST} == *-darwin* ]]; then
|
||||
toolset=darwin
|
||||
else
|
||||
# Using boost's generic toolset here, which respects CC and CFLAGS
|
||||
toolset=cc
|
||||
fi
|
||||
|
||||
CC=$(tc-getCC) ./build.sh ${toolset} -d+2 $(use_with python python "${EROOT%/}"/usr) || die "building bjam failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin engine/bin.*/{bjam,b2}
|
||||
|
||||
insinto /usr/share/boost-build
|
||||
doins -r "${FILESDIR}/site-config.jam" \
|
||||
../boost-build.jam bootstrap.jam build-system.jam ../example/user-config.jam *.py \
|
||||
build kernel options tools util
|
||||
|
||||
if ! use python; then
|
||||
find "${ED%/}/usr/share/boost-build" -iname "*.py" -delete || die "removing experimental python files failed"
|
||||
fi
|
||||
|
||||
dodoc ../notes/{changes,release_procedure,build_dir_option,relative_source_paths}.txt
|
||||
|
||||
if use examples; then
|
||||
docinto examples
|
||||
dodoc -r ../example/.
|
||||
docompress -x /usr/share/doc/${PF}/examples
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
cd ../test || die
|
||||
|
||||
export TMP="${T}"
|
||||
|
||||
DO_DIFF="${PREFIX}/usr/bin/diff" ${PYTHON} test_all.py
|
||||
|
||||
if [[ -s test_results.txt ]]; then
|
||||
eerror "At least one test failed: $(<test_results.txt)"
|
||||
die "tests failed"
|
||||
fi
|
||||
}
|
@ -1,141 +0,0 @@
|
||||
# Copyright 1999-2018 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
RESTRICT="test"
|
||||
|
||||
PYTHON_COMPAT=( python2_7 )
|
||||
inherit eutils flag-o-matic python-single-r1 toolchain-funcs
|
||||
|
||||
MY_PV="$(ver_rs 1- _)"
|
||||
|
||||
DESCRIPTION="A system for large project software construction, simple to use and powerful"
|
||||
HOMEPAGE="https://boostorg.github.io/build/"
|
||||
SRC_URI="https://downloads.sourceforge.net/project/boost/boost/${PV}/boost_${MY_PV}.tar.bz2"
|
||||
|
||||
LICENSE="Boost-1.0"
|
||||
SLOT="0"
|
||||
#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||
IUSE="examples python test"
|
||||
|
||||
RDEPEND="python? ( ${PYTHON_DEPS} )
|
||||
!<dev-libs/boost-1.35.0
|
||||
!<=dev-util/boost-build-1.35.0-r1"
|
||||
DEPEND="${RDEPEND}
|
||||
test? ( sys-apps/diffutils
|
||||
${PYTHON_DEPS} )"
|
||||
|
||||
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )
|
||||
test? ( ${PYTHON_REQUIRED_USE} )"
|
||||
|
||||
S="${WORKDIR}/boost_${MY_PV}/tools/build/src"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-1.48.0-disable_python_rpath.patch"
|
||||
"${FILESDIR}/${PN}-1.50.0-respect-c_ld-flags.patch"
|
||||
"${FILESDIR}/${PN}-1.49.0-darwin-gentoo-toolchain.patch"
|
||||
"${FILESDIR}/${PN}-1.52.0-darwin-no-python-framework.patch"
|
||||
"${FILESDIR}/${PN}-1.54.0-support_dots_in_python-buildid.patch"
|
||||
"${FILESDIR}/${PN}-1.55.0-ppc-aix.patch"
|
||||
"${FILESDIR}/${PN}-1.62.0-sparc-no-default-flags.patch"
|
||||
"${FILESDIR}/${PN}-1.66.0-add-none-feature-options.patch"
|
||||
)
|
||||
|
||||
pkg_setup() {
|
||||
if use python || use test; then
|
||||
python-single-r1_pkg_setup
|
||||
fi
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
tar xojf "${DISTDIR}/${A}" boost_${MY_PV}/tools/build || die "unpacking tar failed"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
pushd ../ >/dev/null || die
|
||||
eapply "${FILESDIR}/${PN}-1.54.0-fix-test.patch"
|
||||
popd >/dev/null || die
|
||||
|
||||
# Remove stripping option
|
||||
# Fix python components build on multilib systems, bug #496446
|
||||
cd "${S}/engine" || die
|
||||
sed -i \
|
||||
-e 's|-s\b||' \
|
||||
-e "/libpython/s/lib ]/$(get_libdir) ]/" \
|
||||
build.jam || die "sed failed"
|
||||
|
||||
# Force regeneration
|
||||
rm jambase.c || die
|
||||
|
||||
# This patch allows us to fully control optimization
|
||||
# and stripping flags when bjam is used as build-system
|
||||
# We simply extend the optimization and debug-symbols feature
|
||||
# with empty dummies called 'none'
|
||||
cd "${S}" || die
|
||||
sed -i \
|
||||
-e 's/\(off speed space\)/\1 none/' \
|
||||
-e 's/\(debug-symbols : on off\)/\1 none/' \
|
||||
tools/builtin.jam || die "sed failed"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
if use python; then
|
||||
# replace versions by user-selected one (TODO: fix this when slot-op
|
||||
# deps are available to always match the best version available)
|
||||
sed -i \
|
||||
-e "s|27 26 25 24 23 22|${EPYTHON#python}|" \
|
||||
engine/build.jam || die "sed failed"
|
||||
fi
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
cd engine || die
|
||||
|
||||
local toolset
|
||||
|
||||
if [[ ${CHOST} == *-darwin* ]]; then
|
||||
toolset=darwin
|
||||
else
|
||||
# Using boost's generic toolset here, which respects CC and CFLAGS
|
||||
toolset=cc
|
||||
fi
|
||||
|
||||
CC=$(tc-getCC) ./build.sh ${toolset} -d+2 $(use_with python python "${EROOT%/}"/usr) || die "building bjam failed"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin engine/bin.*/{bjam,b2}
|
||||
|
||||
insinto /usr/share/boost-build
|
||||
doins -r "${FILESDIR}/site-config.jam" \
|
||||
../boost-build.jam bootstrap.jam build-system.jam ../example/user-config.jam *.py \
|
||||
build kernel options tools util
|
||||
|
||||
if ! use python; then
|
||||
find "${ED%/}/usr/share/boost-build" -iname "*.py" -delete || die "removing experimental python files failed"
|
||||
fi
|
||||
|
||||
dodoc ../notes/{changes,release_procedure,build_dir_option,relative_source_paths}.txt
|
||||
|
||||
if use examples; then
|
||||
docinto examples
|
||||
dodoc -r ../example/.
|
||||
docompress -x /usr/share/doc/${PF}/examples
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
cd ../test || die
|
||||
|
||||
export TMP="${T}"
|
||||
|
||||
DO_DIFF="${PREFIX}/usr/bin/diff" ${PYTHON} test_all.py
|
||||
|
||||
if [[ -s test_results.txt ]]; then
|
||||
eerror "At least one test failed: $(<test_results.txt)"
|
||||
die "tests failed"
|
||||
fi
|
||||
}
|
73
sdk_container/src/third_party/portage-stable/dev-util/boost-build/boost-build-1.74.0.ebuild
vendored
Normal file
73
sdk_container/src/third_party/portage-stable/dev-util/boost-build/boost-build-1.74.0.ebuild
vendored
Normal file
@ -0,0 +1,73 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit flag-o-matic prefix toolchain-funcs
|
||||
|
||||
MY_PV="$(ver_rs 1- _)"
|
||||
|
||||
DESCRIPTION="A system for large project software construction, simple to use and powerful"
|
||||
HOMEPAGE="https://boostorg.github.io/build/"
|
||||
SRC_URI="https://dl.bintray.com/boostorg/release/${PV}/source/boost_${MY_PV}.tar.bz2"
|
||||
|
||||
LICENSE="Boost-1.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||
IUSE="examples"
|
||||
RESTRICT="test"
|
||||
|
||||
S="${WORKDIR}/boost_${MY_PV}/tools/build/src"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-1.71.0-disable_python_rpath.patch
|
||||
"${FILESDIR}"/${PN}-1.71.0-darwin-gentoo-toolchain.patch
|
||||
"${FILESDIR}"/${PN}-1.73.0-add-none-feature-options.patch
|
||||
"${FILESDIR}"/${PN}-1.71.0-respect-c_ld-flags.patch
|
||||
"${FILESDIR}"/${PN}-1.74.0-no-implicit-march-flags.patch
|
||||
)
|
||||
|
||||
src_unpack() {
|
||||
tar xojf "${DISTDIR}/${A}" boost_${MY_PV}/tools/build || die "unpacking tar failed"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
pushd .. >/dev/null || die
|
||||
eapply "${FILESDIR}"/${PN}-1.71.0-fix-test.patch
|
||||
popd >/dev/null || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
tc-export CXX
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
cd engine || die
|
||||
./build.sh cxx -d+2 --without-python || die "building bjam failed"
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# Forget tests, bjam is a lost cause
|
||||
:
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin engine/{bjam,b2}
|
||||
|
||||
insinto /usr/share/boost-build
|
||||
doins -r "${FILESDIR}/site-config.jam" \
|
||||
../boost-build.jam bootstrap.jam build-system.jam ../example/user-config.jam *.py \
|
||||
build kernel options tools util
|
||||
|
||||
find "${ED}"/usr/share/boost-build -iname '*.py' -delete || die
|
||||
|
||||
dodoc ../notes/{changes,release_procedure,build_dir_option,relative_source_paths}.txt
|
||||
|
||||
if use examples; then
|
||||
docinto examples
|
||||
dodoc -r ../example/.
|
||||
docompress -x /usr/share/doc/${PF}/examples
|
||||
fi
|
||||
}
|
76
sdk_container/src/third_party/portage-stable/dev-util/boost-build/boost-build-1.75.0.ebuild
vendored
Normal file
76
sdk_container/src/third_party/portage-stable/dev-util/boost-build/boost-build-1.75.0.ebuild
vendored
Normal file
@ -0,0 +1,76 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit flag-o-matic prefix toolchain-funcs
|
||||
|
||||
MY_PV="$(ver_rs 1- _)"
|
||||
|
||||
DESCRIPTION="A system for large project software construction, simple to use and powerful"
|
||||
HOMEPAGE="https://boostorg.github.io/build/"
|
||||
SRC_URI="https://dl.bintray.com/boostorg/release/${PV}/source/boost_${MY_PV}.tar.bz2"
|
||||
|
||||
LICENSE="Boost-1.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||
IUSE="examples"
|
||||
RESTRICT="test"
|
||||
|
||||
S="${WORKDIR}/boost_${MY_PV}/tools/build/src"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-1.71.0-disable_python_rpath.patch
|
||||
"${FILESDIR}"/${PN}-1.71.0-darwin-gentoo-toolchain.patch
|
||||
"${FILESDIR}"/${PN}-1.73.0-add-none-feature-options.patch
|
||||
"${FILESDIR}"/${PN}-1.71.0-respect-c_ld-flags.patch
|
||||
"${FILESDIR}"/${PN}-1.74.0-no-implicit-march-flags.patch
|
||||
)
|
||||
|
||||
src_unpack() {
|
||||
tar xojf "${DISTDIR}/${A}" boost_${MY_PV}/tools/build || die "unpacking tar failed"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
pushd .. >/dev/null || die
|
||||
eapply "${FILESDIR}"/${PN}-1.71.0-fix-test.patch
|
||||
popd >/dev/null || die
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
tc-export CXX
|
||||
|
||||
# need to enable LFS explicitly for 64-bit offsets on 32-bit hosts (#761100)
|
||||
append-lfs-flags
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
cd engine || die
|
||||
./build.sh cxx -d+2 --without-python || die "building bjam failed"
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# Forget tests, bjam is a lost cause
|
||||
:
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin engine/{bjam,b2}
|
||||
|
||||
insinto /usr/share/boost-build
|
||||
doins -r "${FILESDIR}/site-config.jam" \
|
||||
../boost-build.jam bootstrap.jam build-system.jam ../example/user-config.jam *.py \
|
||||
build kernel options tools util
|
||||
|
||||
find "${ED}"/usr/share/boost-build -iname '*.py' -delete || die
|
||||
|
||||
dodoc ../notes/{changes,release_procedure,build_dir_option,relative_source_paths}.txt
|
||||
|
||||
if use examples; then
|
||||
docinto examples
|
||||
dodoc -r ../example/.
|
||||
docompress -x /usr/share/doc/${PF}/examples
|
||||
fi
|
||||
}
|
@ -1,53 +0,0 @@
|
||||
--- a/engine/build.jam
|
||||
+++ b/engine/build.jam
|
||||
@@ -3,7 +3,7 @@
|
||||
#~ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
# Clean env vars of any "extra" empty values.
|
||||
-for local v in ARGV CC CFLAGS LIBS
|
||||
+for local v in ARGV CC CFLAGS LDFLAGS LIBS
|
||||
{
|
||||
local values ;
|
||||
for local x in $($(v))
|
||||
@@ -179,10 +179,10 @@
|
||||
if ! $(CC) { CC = cc ; }
|
||||
toolset cc $(CC) : "-o " : -D
|
||||
: $(CFLAGS)
|
||||
- [ opt --release : -s -O ]
|
||||
+ [ opt --release : ]
|
||||
[ opt --debug : -g ]
|
||||
-I$(--python-include) -I$(--extra-include)
|
||||
- : $(LIBS) -L$(--python-lib[1]) -l$(--python-lib[2]) ;
|
||||
+ : $(LDFLAGS) $(LIBS) -L$(--python-lib[1]) -l$(--python-lib[2]) ;
|
||||
## Comeau C/C++ 4.x
|
||||
toolset como como : "-o " : -D
|
||||
: --c
|
||||
@@ -201,11 +201,11 @@
|
||||
## MacOSX Darwin, using GCC 2.9.x, 3.x
|
||||
toolset darwin cc : "-o " : -D
|
||||
:
|
||||
- [ opt --release : -Wl,-x -O3 -finline-functions ]
|
||||
+ [ opt --release : -Wl,-x -finline-functions ]
|
||||
[ opt --debug : -g -O0 -fno-inline -pg ]
|
||||
[ opt --profile : -Wl,-x -O3 -finline-functions -g -pg ]
|
||||
-I$(--python-include) -I$(--extra-include)
|
||||
- : -L$(--python-lib[1]) -l$(--python-lib[2]) ;
|
||||
+ : $(LDFLAGS) -L$(--python-lib[1]) -l$(--python-lib[2]) ;
|
||||
## GCC 2.x, 3.x, 4.x
|
||||
toolset gcc gcc : "-o " : -D
|
||||
: -pedantic -fno-strict-aliasing
|
||||
--- a/engine/build.sh
|
||||
+++ b/engine/build.sh
|
||||
@@ -224,9 +224,9 @@
|
||||
cc)
|
||||
if test -z "$CC" ; then CC=cc ; fi
|
||||
BOOST_JAM_CC=$CC
|
||||
- BOOST_JAM_OPT_JAM="$BOOST_JAM_OPT_JAM $CFLAGS $LIBS"
|
||||
- BOOST_JAM_OPT_MKJAMBASE="$BOOST_JAM_OPT_MKJAMBASE $CFLAGS $LIBS"
|
||||
- BOOST_JAM_OPT_YYACC="$BOOST_JAM_OPT_YYACC $CFLAGS $LIBS"
|
||||
+ BOOST_JAM_OPT_JAM="$BOOST_JAM_OPT_JAM $CFLAGS $LDFLAGS $LIBS"
|
||||
+ BOOST_JAM_OPT_MKJAMBASE="$BOOST_JAM_OPT_MKJAMBASE $CFLAGS $LDFLAGS $LIBS"
|
||||
+ BOOST_JAM_OPT_YYACC="$BOOST_JAM_OPT_YYACC $CFLAGS $LDFLAGS $LIBS"
|
||||
;;
|
||||
|
||||
qcc)
|
@ -1,17 +0,0 @@
|
||||
Don't look for the framework path, we build Python the UNIX way for
|
||||
Gentoo Prefix
|
||||
|
||||
--- a/engine/build.jam
|
||||
+++ b/engine/build.jam
|
||||
@@ -82,11 +82,6 @@
|
||||
}
|
||||
--python-lib = $(--python-lib[1]) ;
|
||||
}
|
||||
- else if $(OS) = MACOSX
|
||||
- {
|
||||
- --python-include = [ .path $(python-location) Headers ] ;
|
||||
- --python-lib = $(python-location) Python ;
|
||||
- }
|
||||
else
|
||||
{
|
||||
--python-include = ;
|
@ -1,19 +0,0 @@
|
||||
--- a/tools/common.jam
|
||||
+++ b/tools/common.jam
|
||||
@@ -763,7 +763,15 @@
|
||||
switch $(f:G)
|
||||
{
|
||||
case <base> :
|
||||
- result += $(name:B) ;
|
||||
+ local matched = [ MATCH "^(boost.*python)-.*" : $(name) ] ;
|
||||
+ if $(matched) = boost_python || $(matched) = boost_mpi_python
|
||||
+ {
|
||||
+ result += $(name) ;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ result += $(name:B) ;
|
||||
+ }
|
||||
|
||||
case <toolset> :
|
||||
result += [ join-tag $(f:G=) : [ toolset-tag $(name) : $(type) :
|
@ -1,13 +0,0 @@
|
||||
https://svn.boost.org/trac/boost/ticket/10122
|
||||
|
||||
--- a/engine/mem.h
|
||||
+++ b/engine/mem.h
|
||||
@@ -8,6 +8,8 @@
|
||||
#ifndef BJAM_MEM_H
|
||||
#define BJAM_MEM_H
|
||||
|
||||
+#include "jam.h"
|
||||
+
|
||||
#ifdef OPT_BOEHM_GC
|
||||
|
||||
/* Use Boehm GC memory allocator. */
|
@ -1,47 +0,0 @@
|
||||
--- a/tools/gcc.py 2018-09-07 17:44:59.668796217 +0200
|
||||
+++ b/tools/gcc.py 2018-09-07 17:45:56.378794314 +0200
|
||||
@@ -811,20 +811,6 @@
|
||||
# Sparc
|
||||
flags('gcc', 'OPTIONS', ['<architecture>sparc/<address-model>32'], ['-m32'])
|
||||
flags('gcc', 'OPTIONS', ['<architecture>sparc/<address-model>64'], ['-m64'])
|
||||
-cpu_flags('gcc', 'OPTIONS', 'sparc', 'v7', ['-mcpu=v7'], default=True)
|
||||
-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
|
||||
flags('gcc', 'OPTIONS', ['<architecture>power/<address-model>32'], ['-m32'])
|
||||
flags('gcc', 'OPTIONS', ['<architecture>power/<address-model>64'], ['-m64'])
|
||||
--- a/tools/gcc.jam 2018-09-07 17:45:12.168795797 +0200
|
||||
+++ b/tools/gcc.jam 2018-09-07 17:46:25.498793337 +0200
|
||||
@@ -1134,21 +1134,6 @@
|
||||
cpu-flags gcc OPTIONS : x86 : c3-2 : -march=c3-2 ;
|
||||
##
|
||||
cpu-flags gcc OPTIONS : x86 : atom : -march=atom ;
|
||||
-# Sparc
|
||||
-cpu-flags gcc OPTIONS : sparc : v7 : -mcpu=v7 : default ;
|
||||
-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 ;
|
@ -4,7 +4,7 @@ arch, etc.
|
||||
|
||||
--- a/tools/darwin.jam
|
||||
+++ b/tools/darwin.jam
|
||||
@@ -227,6 +227,9 @@
|
||||
@@ -239,6 +239,9 @@
|
||||
}
|
||||
}
|
||||
|
||||
@ -14,7 +14,7 @@ arch, etc.
|
||||
if $(version-feature)
|
||||
{
|
||||
if $(.debug-configuration)
|
||||
@@ -387,7 +390,8 @@
|
||||
@@ -447,7 +450,8 @@
|
||||
support-ppc64 = ;
|
||||
}
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
--- a/tools/python.jam
|
||||
+++ b/tools/python.jam
|
||||
@@ -961,7 +961,7 @@
|
||||
@@ -1000,7 +1000,7 @@
|
||||
# linux).
|
||||
: $(usage-requirements)
|
||||
<testing.launcher>$(set-PYTHONPATH)
|
@ -0,0 +1,9 @@
|
||||
--- a/engine/build.sh
|
||||
+++ b/engine/build.sh
|
||||
@@ -439,5 +439,5 @@
|
||||
if check_debug_build "$@" ; then B2_CXXFLAGS="${B2_CXXFLAGS_DEBUG}"
|
||||
else B2_CXXFLAGS="${B2_CXXFLAGS_RELEASE} -DNDEBUG"
|
||||
fi
|
||||
-echo_run ${B2_CXX} ${CXXFLAGS} ${B2_CXXFLAGS} ${B2_SOURCES} -o b2
|
||||
+echo_run ${B2_CXX} ${CPPFLAGS} ${CXXFLAGS} ${LDFLAGS} ${B2_CXXFLAGS} ${B2_SOURCES} -o b2
|
||||
echo_run cp b2 bjam
|
@ -1,26 +1,22 @@
|
||||
diff --git a/tools/features/debug-feature.jam b/tools/features/debug-feature.jam
|
||||
index 04958f9a..38b6acf1 100644
|
||||
--- a/tools/features/debug-feature.jam
|
||||
+++ b/tools/features/debug-feature.jam
|
||||
@@ -8,7 +8,7 @@
|
||||
import feature ;
|
||||
@@ -18,7 +18,7 @@
|
||||
|# # end::doc[]
|
||||
|
||||
feature.feature debug-symbols
|
||||
- : on off
|
||||
+ : on off none
|
||||
: propagated ;
|
||||
|
||||
feature.feature profiling
|
||||
diff --git a/tools/features/optimization-feature.jam b/tools/features/optimization-feature.jam
|
||||
index 761f76f1..fb2a5dec 100644
|
||||
#| tag::prof-doc[]
|
||||
--- a/tools/features/optimization-feature.jam
|
||||
+++ b/tools/features/optimization-feature.jam
|
||||
@@ -8,7 +8,7 @@
|
||||
import feature ;
|
||||
@@ -16,7 +16,7 @@
|
||||
|# # end::doc[]
|
||||
|
||||
feature.feature optimization
|
||||
- : off speed space
|
||||
+ : off none speed space
|
||||
: propagated ;
|
||||
|
||||
feature.feature inlining
|
||||
#| tag::inline-doc[]
|
@ -0,0 +1,279 @@
|
||||
--- a/tools/gcc.jam
|
||||
+++ b/tools/gcc.jam
|
||||
@@ -1224,135 +1224,9 @@
|
||||
# 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 : broadwell : -march=broadwell ;
|
||||
-cpu-flags gcc OPTIONS : x86 : skylake : -march=skylake ;
|
||||
-cpu-flags gcc OPTIONS : x86 : skylake-avx512 : -march=skylake-avx512 ;
|
||||
-cpu-flags gcc OPTIONS : x86 : cannonlake : -march=skylake-avx512 -mavx512vbmi -mavx512ifma -msha ;
|
||||
-cpu-flags gcc OPTIONS : x86 : icelake-client : -march=icelake-client ;
|
||||
-cpu-flags gcc OPTIONS : x86 : icelake-server : -march=icelake-server ;
|
||||
-cpu-flags gcc OPTIONS : x86 : cascadelake : -march=skylake-avx512 -mavx512vnni ;
|
||||
-cpu-flags gcc OPTIONS : x86 : cooperlake : -march=cooperlake ;
|
||||
-cpu-flags gcc OPTIONS : x86 : tigerlake : -march=tigerlake ;
|
||||
-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 : bdver4 : -march=bdver4 ;
|
||||
-cpu-flags gcc OPTIONS : x86 : btver1 : -march=btver1 ;
|
||||
-cpu-flags gcc OPTIONS : x86 : btver2 : -march=btver2 ;
|
||||
-cpu-flags gcc OPTIONS : x86 : znver1 : -march=znver1 ;
|
||||
-cpu-flags gcc OPTIONS : x86 : znver2 : -march=znver2 ;
|
||||
-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 : c7 : -march=c7 ;
|
||||
##
|
||||
-cpu-flags gcc OPTIONS : x86 : atom : -march=atom ;
|
||||
# Sparc
|
||||
-cpu-flags gcc OPTIONS : sparc : v7 : -mcpu=v7 : default ;
|
||||
-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 ;
|
||||
-cpu-flags gcc OPTIONS : s390x : z196 : -march=z196 ;
|
||||
-cpu-flags gcc OPTIONS : s390x : zEC12 : -march=zEC12 ;
|
||||
-cpu-flags gcc OPTIONS : s390x : z13 : -march=z13 ;
|
||||
-cpu-flags gcc OPTIONS : s390x : z14 : -march=z14 ;
|
||||
-cpu-flags gcc OPTIONS : s390x : z15 : -march=z15 ;
|
||||
# AIX variant of RS/6000 & PowerPC
|
||||
toolset.flags gcc AROPTIONS <address-model>64/<target-os>aix : "-X64" ;
|
||||
--- a/tools/gcc.py
|
||||
+++ b/tools/gcc.py
|
||||
@@ -745,138 +745,14 @@
|
||||
# x86 and compatible
|
||||
flags('gcc', 'OPTIONS', ['<architecture>x86/<address-model>32'], ['-m32'])
|
||||
flags('gcc', 'OPTIONS', ['<architecture>x86/<address-model>64'], ['-m64'])
|
||||
-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'], default=True)
|
||||
-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', 'broadwell', ['-march=broadwell'])
|
||||
-cpu_flags('gcc', 'OPTIONS', 'x86', 'skylake', ['-march=skylake'])
|
||||
-cpu_flags('gcc', 'OPTIONS', 'x86', 'skylake-avx512', ['-march=skylake-avx512'])
|
||||
-cpu_flags('gcc', 'OPTIONS', 'x86', 'cannonlake', ['-march=skylake-avx512', '-mavx512vbmi', '-mavx512ifma', '-msha'])
|
||||
-cpu_flags('gcc', 'OPTIONS', 'x86', 'icelake-client', ['-march=icelake-client'])
|
||||
-cpu_flags('gcc', 'OPTIONS', 'x86', 'icelake-server', ['-march=icelake-server'])
|
||||
-cpu_flags('gcc', 'OPTIONS', 'x86', 'cascadelake', ['-march=skylake-avx512', '-mavx512vnni'])
|
||||
-cpu_flags('gcc', 'OPTIONS', 'x86', 'cooperlake', ['-march=cooperlake'])
|
||||
-cpu_flags('gcc', 'OPTIONS', 'x86', 'tigerlake', ['-march=tigerlake'])
|
||||
-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', 'znver1', ['-march=znver1'])
|
||||
-cpu_flags('gcc', 'OPTIONS', 'x86', 'znver2', ['-march=znver2'])
|
||||
-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', 'c7', ['-march=c7'])
|
||||
##
|
||||
-cpu_flags('gcc', 'OPTIONS', 'x86', 'atom', ['-march=atom'])
|
||||
# Sparc
|
||||
flags('gcc', 'OPTIONS', ['<architecture>sparc/<address-model>32'], ['-m32'])
|
||||
flags('gcc', 'OPTIONS', ['<architecture>sparc/<address-model>64'], ['-m64'])
|
||||
-cpu_flags('gcc', 'OPTIONS', 'sparc', 'v7', ['-mcpu=v7'], default=True)
|
||||
-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
|
||||
flags('gcc', 'OPTIONS', ['<architecture>power/<address-model>32'], ['-m32'])
|
||||
flags('gcc', 'OPTIONS', ['<architecture>power/<address-model>64'], ['-m64'])
|
||||
-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'])
|
||||
-cpu_flags('gcc', 'OPTIONS', 's390x', 'z196', ['-march=z196'])
|
||||
-cpu_flags('gcc', 'OPTIONS', 's390x', 'zEC12', ['-march=zEC12'])
|
||||
-cpu_flags('gcc', 'OPTIONS', 's390x', 'z13', ['-march=z13'])
|
||||
-cpu_flags('gcc', 'OPTIONS', 's390x', 'z14', ['-march=z14'])
|
||||
-cpu_flags('gcc', 'OPTIONS', 's390x', 'z15', ['-march=z15'])
|
||||
# AIX variant of RS/6000 & PowerPC
|
||||
flags('gcc', 'OPTIONS', ['<architecture>power/<address-model>32/<target-os>aix'], ['-maix32'])
|
||||
flags('gcc', 'OPTIONS', ['<architecture>power/<address-model>64/<target-os>aix'], ['-maix64'])
|
@ -1,9 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="project">
|
||||
<email>cpp@gentoo.org</email>
|
||||
<name>Gentoo C++ Project</name>
|
||||
<maintainer type="person">
|
||||
<email>soap@gentoo.org</email>
|
||||
<name>David Seifert</name>
|
||||
</maintainer>
|
||||
<upstream>
|
||||
<remote-id type="sourceforge">boost</remote-id>
|
||||
|
Loading…
Reference in New Issue
Block a user