Add GCC_TARGET_MACHINE, defaulting to MACHINE_GNU_ARCH, and use it in preference to target_noncanonical so that the user can override if required, e.g. in a multilib environment where target_noncanonical will change based on current ABI. Additionally, ensure that it comes first in the RPATH so that when using USE_PKGSRC_GCC_RUNTIME with in-pkgsrc gcc we pick up the correct libraries.diff -r1.14 -r1.15 pkgsrc/lang/gcc47/Makefile
(jperkin)
@@ -1,14 +1,14 @@ | @@ -1,14 +1,14 @@ | |||
1 | # $NetBSD: Makefile,v 1.14 2013/02/05 07:12:23 adam Exp $ | 1 | # $NetBSD: Makefile,v 1.15 2013/03/01 15:22:25 jperkin Exp $ | |
2 | 2 | |||
3 | GCC_PKGNAME= gcc47 | 3 | GCC_PKGNAME= gcc47 | |
4 | .include "version.mk" | 4 | .include "version.mk" | |
5 | 5 | |||
6 | DISTNAME= gcc-${GCC_DIST_VERSION} | 6 | DISTNAME= gcc-${GCC_DIST_VERSION} | |
7 | PKGNAME= ${GCC_PKGNAME}-${GCC_DIST_VERSION} | 7 | PKGNAME= ${GCC_PKGNAME}-${GCC_DIST_VERSION} | |
8 | ## When bumping the PKGREVISION of this package the PKGREVISION of | 8 | ## When bumping the PKGREVISION of this package the PKGREVISION of | |
9 | ## lang/gcc47-libs needs to be bump to be at least 1 more than the | 9 | ## lang/gcc47-libs needs to be bump to be at least 1 more than the | |
10 | ## PKGREVISION of this package! | 10 | ## PKGREVISION of this package! | |
11 | PKGREVISION= 1 | 11 | PKGREVISION= 1 | |
12 | CATEGORIES= lang | 12 | CATEGORIES= lang | |
13 | MASTER_SITES= ${MASTER_SITE_GNU:=gcc/gcc-${GCC_DIST_VERSION}/} | 13 | MASTER_SITES= ${MASTER_SITE_GNU:=gcc/gcc-${GCC_DIST_VERSION}/} | |
14 | EXTRACT_SUFX= .tar.bz2 | 14 | EXTRACT_SUFX= .tar.bz2 | |
@@ -22,32 +22,38 @@ DISTFILES= ${DEFAULT_DISTFILES} | @@ -22,32 +22,38 @@ DISTFILES= ${DEFAULT_DISTFILES} | |||
22 | EXTRACT_ONLY= ${DEFAULT_DISTFILES} | 22 | EXTRACT_ONLY= ${DEFAULT_DISTFILES} | |
23 | 23 | |||
24 | NOT_FOR_PLATFORM= Interix-*-* | 24 | NOT_FOR_PLATFORM= Interix-*-* | |
25 | 25 | |||
26 | USE_TOOLS+= gmake makeinfo sed:run | 26 | USE_TOOLS+= gmake makeinfo sed:run | |
27 | 27 | |||
28 | GNU_CONFIGURE= yes | 28 | GNU_CONFIGURE= yes | |
29 | ## Build outside ${WRKSRC} | 29 | ## Build outside ${WRKSRC} | |
30 | OBJDIR= ../build | 30 | OBJDIR= ../build | |
31 | CONFIGURE_DIRS= ${OBJDIR} | 31 | CONFIGURE_DIRS= ${OBJDIR} | |
32 | CONFIGURE_SCRIPT= ../${DISTNAME}/configure | 32 | CONFIGURE_SCRIPT= ../${DISTNAME}/configure | |
33 | GCC_SUBPREFIX= ${GCC_PKGNAME} | 33 | GCC_SUBPREFIX= ${GCC_PKGNAME} | |
34 | GCC_PREFIX= ${PREFIX}/${GCC_SUBPREFIX} | 34 | GCC_PREFIX= ${PREFIX}/${GCC_SUBPREFIX} | |
35 | GCC_TARGET_MACHINE?= ${MACHINE_GNU_PLATFORM} | |||
35 | GNU_CONFIGURE_PREFIX= ${GCC_PREFIX} | 36 | GNU_CONFIGURE_PREFIX= ${GCC_PREFIX} | |
36 | INFO_FILES= yes | 37 | INFO_FILES= yes | |
37 | 38 | |||
38 | UNLIMIT_RESOURCES+= datasize | 39 | UNLIMIT_RESOURCES+= datasize | |
39 | UNLIMIT_RESOURCES+= stacksize | 40 | UNLIMIT_RESOURCES+= stacksize | |
40 | 41 | |||
42 | SUBST_CLASSES+= vars | |||
43 | SUBST_STAGE.vars= pre-configure | |||
44 | SUBST_FILES.vars= gcc/Makefile.in | |||
45 | SUBST_VARS.vars= GCC_TARGET_MACHINE | |||
46 | ||||
41 | .include "../../mk/bsd.prefs.mk" | 47 | .include "../../mk/bsd.prefs.mk" | |
42 | 48 | |||
43 | LANGS= c | 49 | LANGS= c | |
44 | 50 | |||
45 | ## The Library rpath to use in end programs. | 51 | ## The Library rpath to use in end programs. | |
46 | LDFLAGS_FOR_TARGET= ${LDFLAGS:M${COMPILER_RPATH_FLAG}*:N*/usr/lib*} | 52 | LDFLAGS_FOR_TARGET= ${LDFLAGS:M${COMPILER_RPATH_FLAG}*:N*/usr/lib*} | |
47 | 53 | |||
48 | # The "-static-libstdc++ -static-libgcc" flags are normally added to the | 54 | # The "-static-libstdc++ -static-libgcc" flags are normally added to the | |
49 | # boot-ldflags by configure but because we are supply the boot-ldflags | 55 | # boot-ldflags by configure but because we are supply the boot-ldflags | |
50 | # we mash supply them. | 56 | # we mash supply them. | |
51 | BOOT_LDFLAGS= -static-libstdc++ -static-libgcc ${LDFLAGS_FOR_TARGET} | 57 | BOOT_LDFLAGS= -static-libstdc++ -static-libgcc ${LDFLAGS_FOR_TARGET} | |
52 | # Needed on Darwin when LDFLAGS point to a SDK | 58 | # Needed on Darwin when LDFLAGS point to a SDK | |
53 | BOOT_LDFLAGS+= ${LDFLAGS:M-Wl,-syslibroot*} | 59 | BOOT_LDFLAGS+= ${LDFLAGS:M-Wl,-syslibroot*} |
@@ -1,23 +1,23 @@ | @@ -1,23 +1,23 @@ | |||
1 | $NetBSD: distinfo,v 1.13 2013/01/31 20:07:17 marino Exp $ | 1 | $NetBSD: distinfo,v 1.14 2013/03/01 15:22:25 jperkin Exp $ | |
2 | 2 | |||
3 | SHA1 (ecj-4.5.jar) = 58c1d79c64c8cd718550f32a932ccfde8d1e6449 | 3 | SHA1 (ecj-4.5.jar) = 58c1d79c64c8cd718550f32a932ccfde8d1e6449 | |
4 | RMD160 (ecj-4.5.jar) = d3f4da657f086b6423f74e93f001132f4855368a | 4 | RMD160 (ecj-4.5.jar) = d3f4da657f086b6423f74e93f001132f4855368a | |
5 | Size (ecj-4.5.jar) = 1470676 bytes | 5 | Size (ecj-4.5.jar) = 1470676 bytes | |
6 | SHA1 (gcc-4.7.2.tar.bz2) = a464ba0f26eef24c29bcd1e7489421117fb9ee35 | 6 | SHA1 (gcc-4.7.2.tar.bz2) = a464ba0f26eef24c29bcd1e7489421117fb9ee35 | |
7 | RMD160 (gcc-4.7.2.tar.bz2) = fc281ade14b47d2a9c2ced4f7082c74bfbae31c1 | 7 | RMD160 (gcc-4.7.2.tar.bz2) = fc281ade14b47d2a9c2ced4f7082c74bfbae31c1 | |
8 | Size (gcc-4.7.2.tar.bz2) = 82884636 bytes | 8 | Size (gcc-4.7.2.tar.bz2) = 82884636 bytes | |
9 | SHA1 (patch-configure) = 51c0978c60baddd90ef7e512445fdef913c04e6c | 9 | SHA1 (patch-configure) = 51c0978c60baddd90ef7e512445fdef913c04e6c | |
10 | SHA1 (patch-gcc_Makefile.in) = 1cf954d214a1d4a3fd4fece1f577f11b511e20ed | 10 | SHA1 (patch-gcc_Makefile.in) = ec7b99db19396d5012fa32f25c9620dc61c19825 | |
11 | SHA1 (patch-gcc_config.gcc) = efa4ecabd71bdec14d5dd1f8bb836116c7a9d6e9 | 11 | SHA1 (patch-gcc_config.gcc) = efa4ecabd71bdec14d5dd1f8bb836116c7a9d6e9 | |
12 | SHA1 (patch-gcc_config_dragonfly-stdint.h) = 740dc819b446d5f1476506322c4b280ffdb5a6c0 | 12 | SHA1 (patch-gcc_config_dragonfly-stdint.h) = 740dc819b446d5f1476506322c4b280ffdb5a6c0 | |
13 | SHA1 (patch-gcc_config_dragonfly.h) = 82f549cdc7543b4bf413a44d481ef42b10f59c82 | 13 | SHA1 (patch-gcc_config_dragonfly.h) = 82f549cdc7543b4bf413a44d481ef42b10f59c82 | |
14 | SHA1 (patch-gcc_config_dragonfly.opt) = 92f615c73c2e94664bae5b5935ab8b09bca15f73 | 14 | SHA1 (patch-gcc_config_dragonfly.opt) = 92f615c73c2e94664bae5b5935ab8b09bca15f73 | |
15 | SHA1 (patch-gcc_config_i386_dragonfly.h) = 0d3f785434c02beb9c4561fe59842a970e8f7896 | 15 | SHA1 (patch-gcc_config_i386_dragonfly.h) = 0d3f785434c02beb9c4561fe59842a970e8f7896 | |
16 | SHA1 (patch-gcc_config_netbsd-stdint.h) = 025fc883101a187e84ed4c0772406720d645d550 | 16 | SHA1 (patch-gcc_config_netbsd-stdint.h) = 025fc883101a187e84ed4c0772406720d645d550 | |
17 | SHA1 (patch-gcc_configure) = a4b670d0c54c410d38715b7a2a572a7048e3ec5e | 17 | SHA1 (patch-gcc_configure) = a4b670d0c54c410d38715b7a2a572a7048e3ec5e | |
18 | SHA1 (patch-gcc_fortran_f95-lang.c) = 06470dbee79f8c762675d3060a870b7dd9ba38f8 | 18 | SHA1 (patch-gcc_fortran_f95-lang.c) = 06470dbee79f8c762675d3060a870b7dd9ba38f8 | |
19 | SHA1 (patch-gcc_gcc.c) = d28e633c8961161562db960054aaa5aa6a1ac645 | 19 | SHA1 (patch-gcc_gcc.c) = d28e633c8961161562db960054aaa5aa6a1ac645 | |
20 | SHA1 (patch-gcc_ginclude_stddef.h) = 87d7c2ff4400ad0719b2351d2f4c4b05bd257db3 | 20 | SHA1 (patch-gcc_ginclude_stddef.h) = 87d7c2ff4400ad0719b2351d2f4c4b05bd257db3 | |
21 | SHA1 (patch-include_libiberty.h) = ad2c64e9a14405c89b02ff68811b1c889405d0a1 | 21 | SHA1 (patch-include_libiberty.h) = ad2c64e9a14405c89b02ff68811b1c889405d0a1 | |
22 | SHA1 (patch-libgcc_config.host) = 6b54e18c6348c4aeb3fda3093fbe990b59456af7 | 22 | SHA1 (patch-libgcc_config.host) = 6b54e18c6348c4aeb3fda3093fbe990b59456af7 | |
23 | SHA1 (patch-libgcc_config_i386_dragonfly-unwind.h) = 9d77252dd982495e90f95b82706bab29e581df9f | 23 | SHA1 (patch-libgcc_config_i386_dragonfly-unwind.h) = 9d77252dd982495e90f95b82706bab29e581df9f |
@@ -1,17 +1,17 @@ | @@ -1,17 +1,17 @@ | |||
1 | $NetBSD: patch-gcc_Makefile.in,v 1.3 2012/11/16 01:03:54 joerg Exp $ | 1 | $NetBSD: patch-gcc_Makefile.in,v 1.4 2013/03/01 15:22:25 jperkin Exp $ | |
2 | 2 | |||
3 | Add gcc libdir to a programs rpath so that _this gcc's_ support librarys | 3 | Add gcc libdir to a programs rpath so that _this gcc's_ support libraries | |
4 | are found. | 4 | are found. | |
5 | 5 | |||
6 | NOTE: the %M spec string is added by patch-gcc_gcc.c | 6 | NOTE: the %M spec string is added by patch-gcc_gcc.c | |
7 | 7 | |||
8 | --- gcc/Makefile.in.orig 2012-03-07 10:59:56.000000000 +0000 | 8 | --- gcc/Makefile.in.orig 2012-03-07 10:59:56.000000000 +0000 | |
9 | +++ gcc/Makefile.in | 9 | +++ gcc/Makefile.in | |
10 | @@ -2074,6 +2074,7 @@ prefix.o: prefix.c $(CONFIG_H) $(SYSTEM_ | 10 | @@ -2074,6 +2074,7 @@ prefix.o: prefix.c $(CONFIG_H) $(SYSTEM_ | |
11 | # Language-independent files. | 11 | # Language-independent files. | |
12 | 12 | |||
13 | DRIVER_DEFINES = \ | 13 | DRIVER_DEFINES = \ | |
14 | + -DLINK_LIBGCC_SPEC="\"%D $(LINKER_RPATH_FLAG) $(libdir)/%M $(LINKER_RPATH_FLAG) $(prefix)/$(target_noncanonical)/lib/%M \"" \ | 14 | + -DLINK_LIBGCC_SPEC="\"%D $(LINKER_RPATH_FLAG) $(prefix)/@GCC_TARGET_MACHINE@/lib/%M $(LINKER_RPATH_FLAG) $(libdir)/%M \"" \ | |
15 | -DSTANDARD_STARTFILE_PREFIX=\"$(unlibsubdir)/\" \ | 15 | -DSTANDARD_STARTFILE_PREFIX=\"$(unlibsubdir)/\" \ | |
16 | -DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc/\" \ | 16 | -DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc/\" \ | |
17 | -DSTANDARD_LIBEXEC_PREFIX=\"$(libexecdir)/gcc/\" \ | 17 | -DSTANDARD_LIBEXEC_PREFIX=\"$(libexecdir)/gcc/\" \ |