diff options
author | maya <maya@pkgsrc.org> | 2017-06-21 11:36:20 +0000 |
---|---|---|
committer | maya <maya@pkgsrc.org> | 2017-06-21 11:36:20 +0000 |
commit | d7a3f406b98ebe85e71bac27ac30798f6d9d3b9f (patch) | |
tree | 2fe1643f36023892645f7a5a8a0e848f9ec76479 /lang/g95 | |
parent | 193a84e4fcf66fcd4292e1b0266ba95a07d48de4 (diff) | |
download | pkgsrc-d7a3f406b98ebe85e71bac27ac30798f6d9d3b9f.tar.gz |
g95: Fix netbsd/mips64 builds
NetBSD switched to n32 ABI for mips64el in NetBSD 6, and the build is
failing due to the default ABI mismatch between linker and newly built
compiler.
Default to n32 and backport n32 size definitions from newer GCC.
Small chance of a functional change for o32 builds (which should work), ride
previous PKGREVISION bump for it.
Diffstat (limited to 'lang/g95')
-rw-r--r-- | lang/g95/distinfo | 5 | ||||
-rw-r--r-- | lang/g95/patches/patch-gcc_config.gcc | 15 | ||||
-rw-r--r-- | lang/g95/patches/patch-gcc_config_mips_netbsd.h | 71 |
3 files changed, 88 insertions, 3 deletions
diff --git a/lang/g95/distinfo b/lang/g95/distinfo index 494238f91ab..e104f65e570 100644 --- a/lang/g95/distinfo +++ b/lang/g95/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.29 2017/06/21 01:12:56 maya Exp $ +$NetBSD: distinfo,v 1.30 2017/06/21 11:36:20 maya Exp $ SHA1 (g95_source.tgz) = b5e503fd6459b65cbda73190685f9490230d9cff RMD160 (g95_source.tgz) = 98d03e9a1835f4b3553a72a798bdf1d90a757176 @@ -12,12 +12,13 @@ SHA1 (patch-ab) = 7429a4da26aa573dcdd94bf417da1e009f95d273 SHA1 (patch-configure) = 48450808201d4ea5ddb993627c4efeaf43d53bd2 SHA1 (patch-g95spec.c) = d6f434e715835cd39511c45ed18632c8401b78a2 SHA1 (patch-gcc_Makefile.in) = cc5cc142a85612ebf2d38513e4b05db0ae795268 -SHA1 (patch-gcc_config.gcc) = ed135c425730d231182e36af840278d307396c6e +SHA1 (patch-gcc_config.gcc) = 41c7b8c86dc87032159126d33b33ae4d0265fb07 SHA1 (patch-gcc_config_dragonfly-spec.h) = bf0c97caa314714542cf8cc63fdf0c73bda80511 SHA1 (patch-gcc_config_dragonfly.h) = 6d46b7b4637a20b36e19a15e1eaffdfff6638de9 SHA1 (patch-gcc_config_freebsd-spec.h) = 508304b26b592518c3d3f43f466ac0a6542b2704 SHA1 (patch-gcc_config_i386_dragonfly.h) = 7d60d29b5ae636d69650e8c412a94f7a6045f6d9 SHA1 (patch-gcc_config_i386_dragonfly64.h) = 9d2d8512a913e58055fa5c1b7d85a109117dcfba +SHA1 (patch-gcc_config_mips_netbsd.h) = 8888ecaa470e38a82ec56e332658fd32c9e5e86c SHA1 (patch-gcc_config_rs600_netbsd.h) = 2e568e48f84024b7182762107c4ee76ee87fe43c SHA1 (patch-gcc_config_t-dragonfly) = dd8d5919af737dfb9e3c18be9a41b4e2c6f31155 SHA1 (patch-gcc_config_t-dragonfly-thread) = ebdb58dacf0dc5d0bf2f1f1707a7c6ab29ee308c diff --git a/lang/g95/patches/patch-gcc_config.gcc b/lang/g95/patches/patch-gcc_config.gcc index 08b16157570..c97c07c9646 100644 --- a/lang/g95/patches/patch-gcc_config.gcc +++ b/lang/g95/patches/patch-gcc_config.gcc @@ -1,8 +1,9 @@ -$NetBSD: patch-gcc_config.gcc,v 1.4 2016/09/27 20:51:11 maya Exp $ +$NetBSD: patch-gcc_config.gcc,v 1.5 2017/06/21 11:36:20 maya Exp $ Darwin 64-bit support. DragonFly BSD support. FreeBSD 10 to 12 support. +NetBSD/mips64 should default to n32 ABI --- ../gcc-4.1.2/gcc/config.gcc.orig 2006-10-15 23:12:23.000000000 +0000 +++ ../gcc-4.1.2/gcc/config.gcc @@ -65,3 +66,15 @@ FreeBSD 10 to 12 support. i[34567]86-*-netbsdelf*) tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h" ;; +@@ -1473,6 +1504,11 @@ mips-sgi-irix[56]*) + # fi + use_fixproto=yes + ;; ++mips64*-*-netbsd*) # NetBSD/mips64, either endian. ++ target_cpu_default="MASK_ABICALLS" ++ tm_defines="MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32" ++ tm_file="elfos.h ${tm_file} mips/elf.h netbsd.h netbsd-elf.h mips/netbsd.h" ++ ;; + mips*-*-netbsd*) # NetBSD/mips, either endian. + target_cpu_default="MASK_ABICALLS" + tm_file="elfos.h ${tm_file} mips/elf.h netbsd.h netbsd-elf.h mips/netbsd.h" diff --git a/lang/g95/patches/patch-gcc_config_mips_netbsd.h b/lang/g95/patches/patch-gcc_config_mips_netbsd.h new file mode 100644 index 00000000000..f3b99eb961c --- /dev/null +++ b/lang/g95/patches/patch-gcc_config_mips_netbsd.h @@ -0,0 +1,71 @@ +$NetBSD: patch-gcc_config_mips_netbsd.h,v 1.1 2017/06/21 11:36:20 maya Exp $ + +n32 support for netbsd/mips64 + +--- ../gcc-4.1.2/gcc/config/mips/netbsd.h.orig 2005-06-25 01:22:41.000000000 +0000 ++++ ../gcc-4.1.2/gcc/config/mips/netbsd.h +@@ -39,18 +39,56 @@ Boston, MA 02110-1301, USA. */ + builtin_define ("__LONG64"); \ + \ + if (TARGET_ABICALLS) \ +- builtin_define ("__ABICALLS__"); \ ++ builtin_define ("__mips_abicalls"); \ + \ +- if (mips_abi == ABI_EABI) \ +- builtin_define ("__mips_eabi"); \ +- else if (mips_abi == ABI_N32) \ +- builtin_define ("__mips_n32"); \ ++ if (mips_abi == ABI_N32) \ ++ { \ ++ builtin_define ("_ABIN32=2"); \ ++ builtin_define ("_MIPS_SIM=_ABIN32"); \ ++ builtin_define ("_MIPS_SZLONG=32"); \ ++ builtin_define ("_MIPS_SZPTR=32"); \ ++ } \ + else if (mips_abi == ABI_64) \ +- builtin_define ("__mips_n64"); \ ++ { \ ++ builtin_define ("_ABI64=3"); \ ++ builtin_define ("_MIPS_SIM=_ABI64"); \ ++ builtin_define ("_MIPS_SZLONG=64"); \ ++ builtin_define ("_MIPS_SZPTR=64"); \ ++ } \ + else if (mips_abi == ABI_O64) \ +- builtin_define ("__mips_o64"); \ ++ { \ ++ builtin_define ("_ABIO64=4"); \ ++ builtin_define ("_MIPS_SIM=_ABIO64"); \ ++ builtin_define ("_MIPS_SZLONG=64"); \ ++ builtin_define ("_MIPS_SZPTR=64"); \ + } \ +- while (0) ++ else if (mips_abi == ABI_EABI) \ ++ { \ ++ builtin_define ("_ABIEMB=5"); \ ++ builtin_define ("_MIPS_SIM=_ABIEMB"); \ ++ if (TARGET_LONG64) \ ++ builtin_define ("_MIPS_SZLONG=64"); \ ++ else \ ++ builtin_define ("_MIPS_SZLONG=32"); \ ++ if (TARGET_64BIT) \ ++ builtin_define ("_MIPS_SZPTR=64"); \ ++ else \ ++ builtin_define ("_MIPS_SZPTR=32"); \ ++ } \ ++ else \ ++ { \ ++ builtin_define ("_ABIO32=1"); \ ++ builtin_define ("_MIPS_SIM=_ABIO32"); \ ++ builtin_define ("_MIPS_SZLONG=32"); \ ++ builtin_define ("_MIPS_SZPTR=32"); \ ++ } \ ++ if (TARGET_FLOAT64) \ ++ builtin_define ("_MIPS_FPSET=32"); \ ++ else \ ++ builtin_define ("_MIPS_FPSET=16"); \ ++ \ ++ builtin_define ("_MIPS_SZINT=32"); \ ++ } while (0) + + /* The generic MIPS TARGET_CPU_CPP_BUILTINS are incorrect for NetBSD. + Specifically, they define too many namespace-invasive macros. Override |