pkgsrc-WIP-changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
threadingbuildingblocks: Clean up config to allow normal building with gcc.
Module Name: pkgsrc-wip
Committed By: Paul Ripke <stix%stix.id.au@localhost>
Pushed By: stix
Date: Tue Oct 27 13:32:08 2020 +1100
Changeset: c4999c6351c7801a1b62cf0774bd8e584c7f1b31
Modified Files:
threadingbuildingblocks/Makefile
Added Files:
threadingbuildingblocks/files/NetBSD.clang.inc
threadingbuildingblocks/files/NetBSD.gcc.inc
threadingbuildingblocks/files/NetBSD.inc
Log Message:
threadingbuildingblocks: Clean up config to allow normal building with gcc.
Copy the FreeBSD config, slightly modified, to allow normal building with
gcc. Kills off the pkglint warnings.
To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=c4999c6351c7801a1b62cf0774bd8e584c7f1b31
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
diffstat:
threadingbuildingblocks/Makefile | 16 ++---
threadingbuildingblocks/files/NetBSD.clang.inc | 17 +++++
threadingbuildingblocks/files/NetBSD.gcc.inc | 89 ++++++++++++++++++++++++++
threadingbuildingblocks/files/NetBSD.inc | 17 +++++
4 files changed, 129 insertions(+), 10 deletions(-)
diffs:
diff --git a/threadingbuildingblocks/Makefile b/threadingbuildingblocks/Makefile
index 75b38f9f1f..11d9e91fb7 100644
--- a/threadingbuildingblocks/Makefile
+++ b/threadingbuildingblocks/Makefile
@@ -20,14 +20,10 @@ USE_TOOLS+= gmake pax
BUILD_TARGET= default
TEST_TARGET= test
-# Work around old TBB bug, we'll force using clang++, which appears to
-# have less agressive Dead-Store Elimination (DSE).
-# The makefiles already assume we're using clang, and hence fail to pass
-# "-flifetime-dse=1" to g++.
+# NOTE: TBB breaks with newer versions of gcc with aggressive DSE, and must
+# be built with "-flifetime-dse=1". This should happen automatically, but
+# has been found to be somewhat fragile.
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71388
-PKGSRC_COMPILER= clang
-PKG_CC= clang
-PKG_CXX= clang++
.include "../../mk/bsd.prefs.mk"
@@ -44,9 +40,9 @@ INSTALLATION_DIRS= include/tbb lib
#BUILD_DEPENDS+= doxygen-[0-9]*:../../devel/doxygen
post-extract:
- ${CP} ${WRKSRC}/build/FreeBSD.inc ${WRKSRC}/build/NetBSD.inc; \
- ${CP} ${WRKSRC}/build/FreeBSD.clang.inc ${WRKSRC}/build/NetBSD.clang.inc; \
- ${CP} ${WRKSRC}/build/FreeBSD.gcc.inc ${WRKSRC}/build/NetBSD.gcc.inc;
+ ${CP} ${FILESDIR}/NetBSD.inc ${WRKSRC}/build/NetBSD.inc; \
+ ${CP} ${FILESDIR}/NetBSD.clang.inc ${WRKSRC}/build/NetBSD.clang.inc; \
+ ${CP} ${FILESDIR}/NetBSD.gcc.inc ${WRKSRC}/build/NetBSD.gcc.inc;
do-install:
cd ${WRKSRC}; \
diff --git a/threadingbuildingblocks/files/NetBSD.clang.inc b/threadingbuildingblocks/files/NetBSD.clang.inc
new file mode 100644
index 0000000000..f4cdf1287b
--- /dev/null
+++ b/threadingbuildingblocks/files/NetBSD.clang.inc
@@ -0,0 +1,17 @@
+# Copyright (c) 2005-2020 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+include $(tbb_root)/build/BSD.clang.inc
+
+LIBS += -lrt
diff --git a/threadingbuildingblocks/files/NetBSD.gcc.inc b/threadingbuildingblocks/files/NetBSD.gcc.inc
new file mode 100644
index 0000000000..7bd8b07314
--- /dev/null
+++ b/threadingbuildingblocks/files/NetBSD.gcc.inc
@@ -0,0 +1,89 @@
+# Copyright (c) 2005-2020 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+COMPILE_ONLY = -c -MMD
+PREPROC_ONLY = -E -x c++
+INCLUDE_KEY = -I
+DEFINE_KEY = -D
+OUTPUT_KEY = -o #
+OUTPUTOBJ_KEY = -o #
+PIC_KEY = -fPIC
+WARNING_AS_ERROR_KEY = -Werror
+WARNING_KEY = -Wall
+DYLIB_KEY = -shared
+WARNING_SUPPRESS = -Wno-parentheses
+
+CPLUS = g++
+CONLY = gcc
+LIB_LINK_FLAGS = -shared
+LIBS = -lpthread
+C_FLAGS = $(CPLUS_FLAGS)
+
+# gcc 6.0 and later have -flifetime-dse option that controls
+# elimination of stores done outside the object lifetime
+ifneq (,$(shell gcc -dumpfullversion -dumpversion | egrep "^([6-9]|1[0-9])"))
+ # keep pre-contruction stores for zero initialization
+ DSE_KEY = -flifetime-dse=1
+endif
+
+ifeq ($(cfg), release)
+ CPLUS_FLAGS = -g -O2 -DUSE_PTHREAD
+endif
+ifeq ($(cfg), debug)
+ CPLUS_FLAGS = -DTBB_USE_DEBUG -g -O0 -DUSE_PTHREAD
+endif
+
+ASM=
+ASM_FLAGS=
+
+TBB_ASM.OBJ=
+MALLOC_ASM.OBJ=
+
+ifeq (ia64,$(arch))
+# Position-independent code (PIC) is a must on IA-64 architecture, even for regular (not shared) executables
+ 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
+ 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
+#------------------------------------------------------------------------------
+# End of setting assembler data.
+#------------------------------------------------------------------------------
+
+#------------------------------------------------------------------------------
+# Setting tbbmalloc data.
+#------------------------------------------------------------------------------
+
+M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
+
+#------------------------------------------------------------------------------
+# End of setting tbbmalloc data.
+#------------------------------------------------------------------------------
diff --git a/threadingbuildingblocks/files/NetBSD.inc b/threadingbuildingblocks/files/NetBSD.inc
new file mode 100644
index 0000000000..3d07997f66
--- /dev/null
+++ b/threadingbuildingblocks/files/NetBSD.inc
@@ -0,0 +1,17 @@
+# Copyright (c) 2005-2020 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+compiler = ${PKGSRC_COMPILER}
+
+include $(tbb_root)/build/BSD.inc
Home |
Main Index |
Thread Index |
Old Index