Thu Dec 8 03:31:27 2016 UTC ()
lang/gcc5-aux: Fix runpath, at least for non-NetBSD platforms

NetBSD doesn't seem to be honoring -rpath, at least not with binutils
from base.  Using binutils from pkgsrc doesn't work either because it
uses the gold linker (for an unknown reason) which fails with an
"unsupported operation".  As a result, gcc5-aux was limited to base
binutils for NetBSD 7 and later.  The issue was never resolved.


(marino)
diff -r1.4 -r1.5 pkgsrc/lang/gcc5-aux/Makefile
diff -r1.4 -r1.5 pkgsrc/lang/gcc5-aux/Makefile.version
diff -r1.3 -r1.4 pkgsrc/lang/gcc5-aux/files/diff-core

cvs diff -r1.4 -r1.5 pkgsrc/lang/gcc5-aux/Makefile (expand / switch to unified diff)

--- pkgsrc/lang/gcc5-aux/Makefile 2016/11/26 16:12:18 1.4
+++ pkgsrc/lang/gcc5-aux/Makefile 2016/12/08 03:31:27 1.5
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1# $NetBSD: Makefile,v 1.4 2016/11/26 16:12:18 marino Exp $ 1# $NetBSD: Makefile,v 1.5 2016/12/08 03:31:27 marino Exp $
2# 2#
3 3
4PKGNAME= gcc5-aux-${SNAPSHOT} 4PKGNAME= gcc5-aux-${SNAPSHOT}
5PKGREVISION= ${MAIN_PR} 5PKGREVISION= ${MAIN_PR}
6DISTNAME= ${IDENTIFICATION} 6DISTNAME= ${IDENTIFICATION}
7CATEGORIES= lang 7CATEGORIES= lang
8MASTER_SITES= ${MASTER_SITE_GNU:=gcc/${IDENTIFICATION}/} 8MASTER_SITES= ${MASTER_SITE_GNU:=gcc/${IDENTIFICATION}/}
9DISTFILES= ${DISTNAME}.tar.bz2 9DISTFILES= ${DISTNAME}.tar.bz2
10 10
11MAINTAINER= draco@marino.st 11MAINTAINER= draco@marino.st
12HOMEPAGE= http://www.dragonlace.net/ 12HOMEPAGE= http://www.dragonlace.net/
13COMMENT= GNAT Ada compiler based on GCC ${GCC_BRANCH} 13COMMENT= GNAT Ada compiler based on GCC ${GCC_BRANCH}
14LICENSE= gnu-gpl-v3 AND gnu-lgpl-v3 14LICENSE= gnu-gpl-v3 AND gnu-lgpl-v3
@@ -231,27 +231,27 @@ post-extract: @@ -231,27 +231,27 @@ post-extract:
231 ${WRKSRC}/gcc/ada/gcc-interface/Makefile.in 231 ${WRKSRC}/gcc/ada/gcc-interface/Makefile.in
232. endif 232. endif
233.endif 233.endif
234.if !exists(${LOCALBASE}/gcc5-aux/bin/ada) && ${OPSYS} == SunOS 234.if !exists(${LOCALBASE}/gcc5-aux/bin/ada) && ${OPSYS} == SunOS
235 # In case /usr/pkg/bin/gas doesn't exist, establish fallback 235 # In case /usr/pkg/bin/gas doesn't exist, establish fallback
236 ${LN} -s ${PREFIX}/bin/gas ${BOOTSTRAP_PREFIX}/bin/as 236 ${LN} -s ${PREFIX}/bin/gas ${BOOTSTRAP_PREFIX}/bin/as
237.endif 237.endif
238 # Illumos /usr/ccs binaries are symlinked to /usr/bin 238 # Illumos /usr/ccs binaries are symlinked to /usr/bin
239 # elfdump was present on OmniOS but not in Joyent dev area 239 # elfdump was present on OmniOS but not in Joyent dev area
240 ${PERL5} -i -pe 's|/usr/ccs/bin|/usr/bin|g;' \ 240 ${PERL5} -i -pe 's|/usr/ccs/bin|/usr/bin|g;' \
241 -pe 's|readelf -s|greadelf -s|' ${WRKSRC}/contrib/make_sunver.pl 241 -pe 's|readelf -s|greadelf -s|' ${WRKSRC}/contrib/make_sunver.pl
242 # Update LINK_SPEC to add gcc5-aux lib runpath in every binary 242 # Update LINK_SPEC to add gcc5-aux lib runpath in every binary
243 @${ECHO} "Configuring LINK_SPEC runpath" 243 @${ECHO} "Configuring LINK_SPEC runpath"
244 ${PERL5} -pi -e 's;\@PREFIX\@;${PREFIX};' \ 244 ${PERL5} -pi -e 's;\@PREFIX\@/\@GCCAUX\@;${PREFIX}/gcc5-aux;' \
245 ${WRKSRC}/gcc/config/dragonfly.h \ 245 ${WRKSRC}/gcc/config/dragonfly.h \
246 ${WRKSRC}/gcc/config/i386/freebsd.h \ 246 ${WRKSRC}/gcc/config/i386/freebsd.h \
247 ${WRKSRC}/gcc/config/i386/netbsd-elf.h 247 ${WRKSRC}/gcc/config/i386/netbsd-elf.h
248 248
249.if defined(BOOTSTRAP_TRIPLET) 249.if defined(BOOTSTRAP_TRIPLET)
250 # Bootstrap compiler has statically linked z, gmp, mpc, mpfr and iconv 250 # Bootstrap compiler has statically linked z, gmp, mpc, mpfr and iconv
251 # The only shared lib is libc.so.7, so it should work for a long time. 251 # The only shared lib is libc.so.7, so it should work for a long time.
252 # No longer used, only here to support future SunOS bootstrap generation 252 # No longer used, only here to support future SunOS bootstrap generation
253 253
254 ${MKDIR} ${BOOTSTRAP_PREFIX} 254 ${MKDIR} ${BOOTSTRAP_PREFIX}
255 ${MV} ${BOOTSTRAP_PREFIX}/../bin ${BOOTSTRAP_PREFIX} 255 ${MV} ${BOOTSTRAP_PREFIX}/../bin ${BOOTSTRAP_PREFIX}
256 ${MV} ${BOOTSTRAP_PREFIX}/../lib ${BOOTSTRAP_PREFIX} 256 ${MV} ${BOOTSTRAP_PREFIX}/../lib ${BOOTSTRAP_PREFIX}
257 ${MV} ${BOOTSTRAP_PREFIX}/../libexec ${BOOTSTRAP_PREFIX} 257 ${MV} ${BOOTSTRAP_PREFIX}/../libexec ${BOOTSTRAP_PREFIX}

cvs diff -r1.4 -r1.5 pkgsrc/lang/gcc5-aux/Makefile.version (expand / switch to unified diff)

--- pkgsrc/lang/gcc5-aux/Makefile.version 2016/11/26 16:12:18 1.4
+++ pkgsrc/lang/gcc5-aux/Makefile.version 2016/12/08 03:31:27 1.5
@@ -1,21 +1,21 @@ @@ -1,21 +1,21 @@
1# $NetBSD: Makefile.version,v 1.4 2016/11/26 16:12:18 marino Exp $ 1# $NetBSD: Makefile.version,v 1.5 2016/12/08 03:31:27 marino Exp $
2# 2#
3 3
4SNAPSHOT= 20160603 4SNAPSHOT= 20160603
5GCC_BRANCH= 5 5GCC_BRANCH= 5
6GCC_POINT= 4.0 6GCC_POINT= 4.0
7GCC_VERSION= ${GCC_BRANCH}.${GCC_POINT} 7GCC_VERSION= ${GCC_BRANCH}.${GCC_POINT}
8BUILD_RELEASE= yes 8BUILD_RELEASE= yes
9MAIN_PR= 1 9MAIN_PR= 2
10 10
11.if ${BUILD_RELEASE:Mno} 11.if ${BUILD_RELEASE:Mno}
12# Snapshot naming pattern 12# Snapshot naming pattern
13IDENTIFICATION= gcc-${GCC_BRANCH}-${SNAPSHOT} 13IDENTIFICATION= gcc-${GCC_BRANCH}-${SNAPSHOT}
14MS_SUBDIR= snapshots/${GCC_BRANCH}-${SNAPSHOT} 14MS_SUBDIR= snapshots/${GCC_BRANCH}-${SNAPSHOT}
15PHASE= snapshot 15PHASE= snapshot
16.else 16.else
17# Release naming pattern 17# Release naming pattern
18IDENTIFICATION= gcc-${GCC_VERSION} 18IDENTIFICATION= gcc-${GCC_VERSION}
19MS_SUBDIR= releases/gcc-${GCC_VERSION} 19MS_SUBDIR= releases/gcc-${GCC_VERSION}
20PHASE= release 20PHASE= release
21.endif 21.endif

cvs diff -r1.3 -r1.4 pkgsrc/lang/gcc5-aux/files/diff-core (expand / switch to unified diff)

--- pkgsrc/lang/gcc5-aux/files/diff-core 2016/11/26 16:12:18 1.3
+++ pkgsrc/lang/gcc5-aux/files/diff-core 2016/12/08 03:31:27 1.4
@@ -285,27 +285,27 @@ @@ -285,27 +285,27 @@
285+ fi 285+ fi
286+ ;; 286+ ;;
287 esac 287 esac
288  288
289 if test x$gcc_cv_target_dl_iterate_phdr = xyes; then 289 if test x$gcc_cv_target_dl_iterate_phdr = xyes; then
290--- gcc/config/i386/netbsd-elf.h.orig 290--- gcc/config/i386/netbsd-elf.h.orig
291+++ gcc/config/i386/netbsd-elf.h 291+++ gcc/config/i386/netbsd-elf.h
292@@ -38,7 +38,8 @@ 292@@ -38,7 +38,8 @@
293 /* Provide a LINK_SPEC appropriate for a NetBSD/i386 ELF target. */ 293 /* Provide a LINK_SPEC appropriate for a NetBSD/i386 ELF target. */
294  294
295 #undef LINK_SPEC 295 #undef LINK_SPEC
296-#define LINK_SPEC NETBSD_LINK_SPEC_ELF 296-#define LINK_SPEC NETBSD_LINK_SPEC_ELF
297+#define LINK_SPEC NETBSD_LINK_SPEC_ELF \ 297+#define LINK_SPEC NETBSD_LINK_SPEC_ELF \
298+"%{!static:-rpath @PREFIX@/gcc5-aux/lib}" 298+"%{!static:-rpath @PREFIX@/@GCCAUX@/lib}"
299  299
300 #define NETBSD_ENTRY_POINT "__start" 300 #define NETBSD_ENTRY_POINT "__start"
301  301
302@@ -121,3 +122,10 @@ 302@@ -121,3 +122,10 @@
303 #define HAVE_ENABLE_EXECUTE_STACK 303 #define HAVE_ENABLE_EXECUTE_STACK
304  304
305 #define IX86_MAYBE_NO_LIBGCC_TFMODE 305 #define IX86_MAYBE_NO_LIBGCC_TFMODE
306+ 306+
307+/* Define this to be nonzero if static stack checking is supported. */ 307+/* Define this to be nonzero if static stack checking is supported. */
308+#define STACK_CHECK_STATIC_BUILTIN 1 308+#define STACK_CHECK_STATIC_BUILTIN 1
309+ 309+
310+#if defined(HAVE_LD_EH_FRAME_HDR) 310+#if defined(HAVE_LD_EH_FRAME_HDR)
311+#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " 311+#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "