diff options
author | Justin Lecher <jlec@gentoo.org> | 2015-06-15 16:50:40 +0000 |
---|---|---|
committer | Justin Lecher <jlec@gentoo.org> | 2015-06-15 16:50:40 +0000 |
commit | 6629700f6ad58c152c658b40fb3f02af9238defb (patch) | |
tree | 91ac7cab5913315bf4b867ac4f73a9bd62c9fb72 /dev-cpp | |
parent | Updating remote-id in metadata.xml (diff) | |
download | gentoo-2-6629700f6ad58c152c658b40fb3f02af9238defb.tar.gz gentoo-2-6629700f6ad58c152c658b40fb3f02af9238defb.tar.bz2 gentoo-2-6629700f6ad58c152c658b40fb3f02af9238defb.zip |
Add multilib support, bug #545190; thanks Peter Asplund and Ian Stakenvicius preparing the ebuild
(Portage version: 2.2.20/cvs/Linux x86_64, signed Manifest commit with key E9402A79B03529A2!)
Diffstat (limited to 'dev-cpp')
-rw-r--r-- | dev-cpp/tbb/ChangeLog | 9 | ||||
-rw-r--r-- | dev-cpp/tbb/files/tbb-4.3-build.patch | 185 | ||||
-rw-r--r-- | dev-cpp/tbb/tbb-4.3.20141023-r1.ebuild | 132 |
3 files changed, 325 insertions, 1 deletions
diff --git a/dev-cpp/tbb/ChangeLog b/dev-cpp/tbb/ChangeLog index e1d8bd8d057c..a233d78a5ae5 100644 --- a/dev-cpp/tbb/ChangeLog +++ b/dev-cpp/tbb/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for dev-cpp/tbb # Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-cpp/tbb/ChangeLog,v 1.51 2015/05/05 08:28:02 jer Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-cpp/tbb/ChangeLog,v 1.52 2015/06/15 16:50:40 jlec Exp $ + +*tbb-4.3.20141023-r1 (15 Jun 2015) + + 15 Jun 2015; Justin Lecher <jlec@gentoo.org> +files/tbb-4.3-build.patch, + +tbb-4.3.20141023-r1.ebuild: + Add multilib support, bug #545190; thanks Peter Asplund and Ian Stakenvicius + preparing the ebuild 05 May 2015; Jeroen Roovers <jer@gentoo.org> tbb-4.3.20141023.ebuild: Mark ~ppc64 (bug #499164). diff --git a/dev-cpp/tbb/files/tbb-4.3-build.patch b/dev-cpp/tbb/files/tbb-4.3-build.patch new file mode 100644 index 000000000000..a9119ef49212 --- /dev/null +++ b/dev-cpp/tbb/files/tbb-4.3-build.patch @@ -0,0 +1,185 @@ +--- a/build/linux.gcc.inc 2014-10-31 09:08:38.000000000 -0400 ++++ b/build/linux.gcc.inc 2015-06-08 19:22:49.855807841 -0400 +@@ -32,12 +32,12 @@ + EXPORT_KEY = -Wl,--version-script, + LIBDL = -ldl + +-CPLUS = g++ +-CONLY = gcc ++CPLUS := $(CXX) ++CONLY := $(CC) + LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY) + LIBS += -lpthread -lrt + LINK_FLAGS = -Wl,-rpath-link=. -rdynamic +-C_FLAGS = $(CPLUS_FLAGS) ++C_FLAGS := $(CPLUS_FLAGS) + # gcc 4.4 and higher support -std=c++0x + ifneq (,$(shell gcc -dumpversion | egrep "^(4\.[4-9]|[5-9])")) + CPP11_FLAGS = -std=c++0x -D_TBB_CPP0X +@@ -54,7 +54,7 @@ + endif + + ifeq ($(cfg), release) +- CPLUS_FLAGS = $(ITT_NOTIFY) -g -O2 -DUSE_PTHREAD ++ CPLUS_FLAGS = $(ITT_NOTIFY) -g -DUSE_PTHREAD + endif + ifeq ($(cfg), debug) + CPLUS_FLAGS = -DTBB_USE_DEBUG $(ITT_NOTIFY) -g -O0 -DUSE_PTHREAD +@@ -74,24 +74,12 @@ + + ifeq (intel64,$(arch)) + ITT_NOTIFY = -DDO_ITT_NOTIFY +- CPLUS_FLAGS += -m64 $(RTM_KEY) +- LIB_LINK_FLAGS += -m64 ++ CPLUS_FLAGS += $(RTM_KEY) + endif + + ifeq (ia32,$(arch)) + ITT_NOTIFY = -DDO_ITT_NOTIFY +- CPLUS_FLAGS += -m32 -march=pentium4 $(RTM_KEY) +- LIB_LINK_FLAGS += -m32 +-endif +- +-ifeq (ppc64,$(arch)) +- CPLUS_FLAGS += -m64 +- LIB_LINK_FLAGS += -m64 +-endif +- +-ifeq (ppc32,$(arch)) +- CPLUS_FLAGS += -m32 +- LIB_LINK_FLAGS += -m32 ++ CPLUS_FLAGS += $(RTM_KEY) + endif + + ifeq (bg,$(arch)) +@@ -99,12 +87,6 @@ + CONLY = mpicc + endif + +-# for some gcc versions on Solaris, -m64 may imply V9, but perhaps not everywhere (TODO: verify) +-ifeq (sparc,$(arch)) +- CPLUS_FLAGS += -mcpu=v9 -m64 +- LIB_LINK_FLAGS += -mcpu=v9 -m64 +-endif +- + # automatically generate "IT" instructions when compiling for Thumb ISA + ifeq (armv7,$(arch)) + CPLUS_FLAGS += -Wa,-mimplicit-it=thumb +@@ -113,13 +95,7 @@ + #------------------------------------------------------------------------------ + # Setting assembler data. + #------------------------------------------------------------------------------ +-ASM = as +-ifeq (intel64,$(arch)) +- ASM_FLAGS += --64 +-endif +-ifeq (ia32,$(arch)) +- ASM_FLAGS += --32 +-endif ++ASM := $(AS) + ifeq ($(cfg),debug) + ASM_FLAGS += -g + endif +--- a/build/FreeBSD.gcc.inc 2014-10-31 09:08:37.000000000 -0400 ++++ b/build/FreeBSD.gcc.inc 2015-06-08 19:24:51.385810060 -0400 +@@ -27,14 +27,14 @@ + WARNING_KEY = -Wall + DYLIB_KEY = -shared + +-CPLUS = g++ +-CONLY = gcc ++CPLUS = $(CXX) ++CONLY = $(CC) + LIB_LINK_FLAGS = -shared + LIBS = -lpthread + C_FLAGS = $(CPLUS_FLAGS) + + ifeq ($(cfg), release) +- CPLUS_FLAGS = -g -O2 -DUSE_PTHREAD ++ CPLUS_FLAGS = -g -DUSE_PTHREAD + endif + ifeq ($(cfg), debug) + CPLUS_FLAGS = -DTBB_USE_DEBUG -g -O0 -DUSE_PTHREAD +@@ -51,22 +51,12 @@ + CPLUS_FLAGS += $(PIC_KEY) + endif + +-ifeq (intel64,$(arch)) +- CPLUS_FLAGS += -m64 +- LIB_LINK_FLAGS += -m64 +-endif +- +-ifeq (ia32,$(arch)) +- CPLUS_FLAGS += -m32 +- LIB_LINK_FLAGS += -m32 +-endif +- + #------------------------------------------------------------------------------ + # Setting assembler data. + #------------------------------------------------------------------------------ + ASSEMBLY_SOURCE=$(arch)-gas + ifeq (ia64,$(arch)) +- ASM=as ++ ASM=$(AS) + TBB_ASM.OBJ = atomic_support.o lock_byte.o log2.o pause.o + MALLOC_ASM.OBJ = atomic_support.o lock_byte.o pause.o + endif +--- a/build/linux.clang.inc 2014-10-31 09:08:37.000000000 -0400 ++++ b/build/linux.clang.inc 2015-06-08 20:24:29.785875376 -0400 +@@ -31,15 +31,15 @@ + EXPORT_KEY = -Wl,--version-script, + LIBDL = -ldl + +-CPLUS = clang++ +-CONLY = clang ++CPLUS := $(CXX) ++CONLY := $(CC) + LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY) + LIBS += -lpthread -lrt + LINK_FLAGS = -Wl,-rpath-link=. + C_FLAGS = $(CPLUS_FLAGS) + + ifeq ($(cfg), release) +- CPLUS_FLAGS = $(ITT_NOTIFY) -g -O2 -DUSE_PTHREAD ++ CPLUS_FLAGS = $(ITT_NOTIFY) -g -DUSE_PTHREAD + endif + ifeq ($(cfg), debug) + CPLUS_FLAGS = -DTBB_USE_DEBUG $(ITT_NOTIFY) -g -O0 -DUSE_PTHREAD +@@ -61,24 +61,10 @@ + + ifeq (intel64,$(arch)) + ITT_NOTIFY = -DDO_ITT_NOTIFY +- CPLUS_FLAGS += -m64 +- LIB_LINK_FLAGS += -m64 + endif + + ifeq (ia32,$(arch)) + ITT_NOTIFY = -DDO_ITT_NOTIFY +- CPLUS_FLAGS += -m32 -march=pentium4 +- LIB_LINK_FLAGS += -m32 +-endif +- +-ifeq (ppc64,$(arch)) +- CPLUS_FLAGS += -m64 +- LIB_LINK_FLAGS += -m64 +-endif +- +-ifeq (ppc32,$(arch)) +- CPLUS_FLAGS += -m32 +- LIB_LINK_FLAGS += -m32 + endif + + ifeq (bg,$(arch)) +@@ -90,12 +76,6 @@ + # Setting assembler data. + #------------------------------------------------------------------------------ + ASM = as +-ifeq (intel64,$(arch)) +- ASM_FLAGS += --64 +-endif +-ifeq (ia32,$(arch)) +- ASM_FLAGS += --32 +-endif + ifeq ($(cfg),debug) + ASM_FLAGS += -g + endif diff --git a/dev-cpp/tbb/tbb-4.3.20141023-r1.ebuild b/dev-cpp/tbb/tbb-4.3.20141023-r1.ebuild new file mode 100644 index 000000000000..ecb9e742a154 --- /dev/null +++ b/dev-cpp/tbb/tbb-4.3.20141023-r1.ebuild @@ -0,0 +1,132 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-cpp/tbb/tbb-4.3.20141023-r1.ebuild,v 1.1 2015/06/15 16:50:40 jlec Exp $ + +EAPI=5 +inherit eutils flag-o-matic versionator toolchain-funcs multilib-minimal + +PV1="$(get_version_component_range 1)" +PV2="$(get_version_component_range 2)" +PV3="$(get_version_component_range 3)" +MYP="${PN}${PV1}${PV2}_${PV3}oss" + +DESCRIPTION="High level abstract threading library" +HOMEPAGE="http://www.threadingbuildingblocks.org/" +SRC_URI="http://threadingbuildingblocks.org/sites/default/files/software_releases/source/${MYP}_src.tgz" +LICENSE="GPL-2-with-exceptions" + +SLOT="0" +KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-fbsd ~amd64-linux ~x86-linux" +IUSE="debug doc examples" + +DEPEND="" +RDEPEND="${DEPEND}" +S="${WORKDIR}/${MYP}" + +src_prepare() { + epatch \ + "${FILESDIR}"/${PN}-4.0.297-underlinking.patch \ + "${FILESDIR}"/${PN}-4.3-build.patch + + find include -name \*.html -delete || die + + # Give it a soname on FreeBSD + echo 'LIB_LINK_FLAGS += -Wl,-soname=$(BUILDING_LIBRARY)' >> build/FreeBSD.gcc.inc + # Set proper versionning on FreeBSD + sed -i -e '/.DLL =/s/$/.1/' build/FreeBSD.inc || die + + use debug || sed -i -e '/_debug/d' Makefile +} + +multilib_src_configure() { + # pc files are for debian and fedora compatibility + # some deps use them + cat <<-EOF > ${PN}.pc.template + prefix=${EPREFIX}/usr + libdir=\${prefix}/$(get_libdir) + includedir=\${prefix}/include + Name: ${PN} + Description: ${DESCRIPTION} + Version: ${PV} + URL: ${HOMEPAGE} + Cflags: -I\${includedir} + EOF + cp ${PN}.pc.template ${PN}.pc || die + cat <<-EOF >> ${PN}.pc + Libs: -L\${libdir} -ltbb + Libs.private: -lm -lrt + EOF + cp ${PN}.pc.template ${PN}malloc.pc || die + cat <<-EOF >> ${PN}malloc.pc + Libs: -L\${libdir} -ltbbmalloc + Libs.private: -lm -lrt + EOF + cp ${PN}.pc.template ${PN}malloc_proxy.pc || die + cat <<-EOF >> ${PN}malloc_proxy.pc + Libs: -L\${libdir} -ltbbmalloc_proxy + Libs.private: -lrt + Requires: tbbmalloc + EOF +} + +local_src_compile() { + cd "${S}" + + local comp arch + + case ${MULTILIB_ABI_FLAG} in + abi_x86_64) arch=x86_64 ;; + abi_x86_32) arch=ia32 ;; + esac + + case "$(tc-getCXX)" in + *g++*) comp="gcc" ;; + *ic*c) comp="icc" ;; + *clang*) comp="clang" ;; + *) die "compiler $(tc-getCXX) not supported by build system" ;; + esac + + CXX="$(tc-getCXX)" \ + CC="$(tc-getCC)" \ + AS="$(tc-getAS)" \ + arch=${arch} \ + CPLUS_FLAGS="${CXXFLAGS}" \ + emake compiler=${comp} work_dir="${BUILD_DIR}" tbb_root="${S}" $@ +} + +multilib_src_compile() { + local_src_compile tbb tbbmalloc +} + +multilib_src_test() { + CXXFLAGS="${CXXFLAGS} -fabi-version=4" \ + local_src_compile -j1 test +} + +multilib_src_install() { + cd "${BUILD_DIR}_release" + local l + for l in $(find . -name lib\*.so.\*); do + dolib.so ${l} + local bl=$(basename ${l}) + dosym ${bl} /usr/$(get_libdir)/${bl%.*} + done + + cd "${BUILD_DIR}" + insinto /usr/$(get_libdir)/pkgconfig + doins *.pc +} + +multilib_src_install_all() { + doheader -r include/* + + dodoc README CHANGES doc/Release_Notes.txt + use doc && dohtml -r doc/html/* + + if use examples ; then + insinto /usr/share/doc/${PF}/examples/build + doins build/*.inc + insinto /usr/share/doc/${PF}/examples + doins -r examples + fi +} |