ports/171297: [PATCH] devel/tbb: Remove hardcoded dependency on gcc
Christian Mangin
christian.mangin at gmail.com
Mon Sep 3 21:30:06 UTC 2012
>Number: 171297
>Category: ports
>Synopsis: [PATCH] devel/tbb: Remove hardcoded dependency on gcc
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Mon Sep 03 21:30:05 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator: Christian Mangin
>Release: FreeBSD 9.1-RC1 amd64
>Organization:
>Environment:
System: FreeBSD 9.1-RC1 amd64
>Description:
This port has a hardcoded dependency on gcc and will not compile if gcc
is not present in the base system. It does honor $CXX but not $CC.
In fact, this port requires the presence of a file 'FreeBSD.<compiler>.inc'
to actually accept using a given C compiler. At this time, only
'FreeBSD.gcc.inc' is present and therefore gcc is required.
My solution here is to create a copy the file with the correct name for
the requested C compiler and make the appropriate substitutions.
This has been tested to work with base clang, base gcc and lang/gcc.
>How-To-Repeat:
>Fix:
Patch attached:
--- tbb.diff begins here ---
diff -ruN tbb.orig/Makefile tbb/Makefile
--- tbb.orig/Makefile 2012-01-16 04:46:55.000000000 -0500
+++ tbb/Makefile 2012-09-03 16:37:19.393758379 -0400
@@ -23,16 +23,17 @@
USE_LDCONFIG= yes
USE_GMAKE= yes
ALL_TARGET= default
-MAKE_ENV= CPLUS=${CXX}
WRKSRC= ${WRKDIR}/tbb40_233oss
post-extract:
+ @${CP} ${WRKSRC}/build/FreeBSD.gcc.inc ${WRKSRC}/build/FreeBSD.${CC}.inc
@${CP} ${FILESDIR}/version_info_FreeBSD.sh ${WRKSRC}/build/
post-patch:
- @${REINPLACE_CMD} 's|-lpthread|${PTHREAD_LIBS}|g' \
- ${WRKSRC}/build/FreeBSD.gcc.inc
+ @${REINPLACE_CMD} -e 's|-lpthread|${PTHREAD_LIBS}|g' \
+ -e 's|gcc|${CC}|g' -e 's|g++|${CXX}|g' \
+ ${WRKSRC}/build/FreeBSD.${CC}.inc
do-install:
cd ${WRKSRC}; \
diff -ruN tbb.orig/files/patch-build-FreeBSD.gcc.inc tbb/files/patch-build-FreeBSD.gcc.inc
--- tbb.orig/files/patch-build-FreeBSD.gcc.inc 2010-09-03 04:52:37.000000000 -0400
+++ tbb/files/patch-build-FreeBSD.gcc.inc 1969-12-31 19:00:00.000000000 -0500
@@ -1,11 +0,0 @@
---- build/FreeBSD.gcc.inc.orig 2010-08-28 00:14:43.080234020 +0200
-+++ build/FreeBSD.gcc.inc 2010-08-28 00:14:53.400821755 +0200
-@@ -37,7 +37,7 @@
-
- TBB_NOSTRICT = 1
-
--CPLUS = g++
-+#CPLUS = g++
- CONLY = gcc
- LIB_LINK_FLAGS = -shared
- LIBS = -lpthread
diff -ruN tbb.orig/files/patch-build-FreeBSD.inc tbb/files/patch-build-FreeBSD.inc
--- tbb.orig/files/patch-build-FreeBSD.inc 2009-04-29 03:35:00.000000000 -0400
+++ tbb/files/patch-build-FreeBSD.inc 2012-09-03 14:03:42.506757619 -0400
@@ -1,5 +1,23 @@
---- build/FreeBSD.inc.orig 2008-06-07 08:56:22.000000000 +0200
-+++ build/FreeBSD.inc 2008-12-16 09:32:21.710673762 +0100
+--- build/FreeBSD.inc.orig 2012-09-03 13:10:45.423760088 -0400
++++ build/FreeBSD.inc 2012-09-03 13:13:15.765760027 -0400
+@@ -37,14 +37,14 @@
+ endif
+
+ ifndef runtime
+- gcc_version:=$(shell gcc -v 2>&1 | grep 'gcc version' | sed -e 's/^gcc version //' | sed -e 's/ .*$$//')
++ gcc_version:=$(shell $(CC) -v 2>&1 | grep ' version' | sed -e 's/^.* version //' | sed -e 's/ .*$$//')
+ os_version:=$(shell uname -r)
+ os_kernel_version:=$(shell uname -r | sed -e 's/-.*$$//')
+ export runtime:=cc$(gcc_version)_kernel$(os_kernel_version)
+ endif
+
+-native_compiler := gcc
+-export compiler ?= gcc
++native_compiler := $(CC)
++export compiler ?= $(CC)
+ debugger ?= gdb
+
+ CMD=$(SHELL) -c
@@ -54,7 +54,7 @@
MD?=mkdir -p
NUL= /dev/null
diff -ruN tbb.orig/files/version_info_FreeBSD.sh tbb/files/version_info_FreeBSD.sh
--- tbb.orig/files/version_info_FreeBSD.sh 2009-04-29 03:35:00.000000000 -0400
+++ tbb/files/version_info_FreeBSD.sh 2012-09-03 12:45:31.831779484 -0400
@@ -5,7 +5,7 @@
echo '"TBB:' "BUILD_HOST\t\t"`hostname -s`" ("`uname -p`")"'" ENDL \'
echo '"TBB:' "BUILD_OS\t\t"`uname -sr`'" ENDL \'
echo '"TBB:' "BUILD_KERNEL\t"`uname -rv`'" ENDL \'
-echo '"TBB:' "BUILD_GCC\t\t"`g++ -v </dev/null 2>&1 | grep 'gcc.*version'`'" ENDL \'
+echo '"TBB:' "BUILD_GCC\t\t"`${CXX} -v </dev/null 2>&1 | grep ' version'`'" ENDL \'
[ -z "$COMPILER_VERSION" ] || echo '"TBB:' "BUILD_COMPILER\t"$COMPILER_VERSION'" ENDL \'
echo '"TBB:' "BUILD_GLIBC\t"`ldconfig -r | grep -oE '/lib/libc.so.[0-9]+' | sort -rn | head -n 1 | sed 's|/lib/libc\.so\.||'`'" ENDL \'
echo '"TBB:' "BUILD_LD\t\t"`ld -v | grep 'version'`'" ENDL \'
--- tbb.diff ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list