diff options
author | maya <maya@pkgsrc.org> | 2019-09-08 14:47:52 +0000 |
---|---|---|
committer | maya <maya@pkgsrc.org> | 2019-09-08 14:47:52 +0000 |
commit | 31ce94372a5c8e3f1435c7ae0e50cd7bdd080061 (patch) | |
tree | 9afe91785cc6a6f1c303d70f21be70e7435b2536 /lang/gcc7 | |
parent | bdeaab7b6acd5f155be8f57a81613519812b1d38 (diff) | |
download | pkgsrc-31ce94372a5c8e3f1435c7ae0e50cd7bdd080061.tar.gz |
gcc{48,49,5,6,7,8}: In the case of a "system GCC", detect if the system
libgcc is newer than the one about to be installed. If so, don't install
the libgcc.
Having an older libgcc appear in the lookup may result in binaries not
running, as they need symbols from the newer libgcc.
Such a case is PR pkg/54506.
Leaves SunOS unchanged, by request from jperkin.
Diffstat (limited to 'lang/gcc7')
-rw-r--r-- | lang/gcc7/options.mk | 38 |
1 files changed, 36 insertions, 2 deletions
diff --git a/lang/gcc7/options.mk b/lang/gcc7/options.mk index c41b70a9e8e..b1758dea048 100644 --- a/lang/gcc7/options.mk +++ b/lang/gcc7/options.mk @@ -1,8 +1,9 @@ -# $NetBSD: options.mk,v 1.4 2019/01/05 00:39:13 adam Exp $ +# $NetBSD: options.mk,v 1.5 2019/09/08 14:47:52 maya Exp $ PKG_OPTIONS_VAR= PKG_OPTIONS.${GCC_PKGNAME} PKG_SUPPORTED_OPTIONS= nls gcc-inplace-math gcc-c++ gcc-fortran \ - gcc-go gcc-objc gcc-objc++ gcc-graphite + gcc-go gcc-objc gcc-objc++ gcc-graphite \ + always-libgcc PKG_SUGGESTED_OPTIONS= gcc-c++ gcc-fortran gcc-objc gcc-objc++ \ gcc-graphite gcc-inplace-math @@ -10,6 +11,13 @@ PKG_SUGGESTED_OPTIONS= gcc-c++ gcc-fortran gcc-objc gcc-objc++ \ PKG_SUGGESTED_OPTIONS+= nls .endif +.include "../../mk/compiler.mk" +.if empty(PKGSRC_COMPILER:Mgcc) +PKG_SUGGESTED_OPTIONS+= always-libgcc +.endif + +PKG_SUGGESTED_OPTIONS.SunOS+= always-libgcc + ### ### Determine if multilib is avalible. ### @@ -58,6 +66,32 @@ CONFIGURE_ARGS+= --disable-multilib .endif ### +### Don't install libgcc if it's older than the system one +### +.if empty(PKG_OPTIONS:Malways-libgcc) + +.for _libdir_ in ${_OPSYS_LIB_DIRS} +. if exists(${_libdir_}) +BASE_LIBGCC!= find ${_libdir_} -name libgcc_s.so +BASE_LIBGCC_MATCH_STRING!= ${ECHO} ${BASE_LIBGCC} ${GCC7_DIST_VERSION} | \ + ${AWK} -f ../../mk/scripts/larger_symbol_version.awk +. if ${BASE_LIBGCC_MATCH_STRING:Mnewer} +DELETE_INSTALLED_LIBGCC= yes +. endif +. endif +.endfor + +.if ${DELETE_INSTALLED_LIBGCC:Uno} +post-install: delete-installed-libgcc + +delete-installed-libgcc: + ${FIND} ${DESTDIR} -name 'libgcc_s.so*' -delete + +.endif + +.endif + +### ### Build math libraries in place ### .if !empty(PKG_OPTIONS:Mgcc-inplace-math) |