summaryrefslogtreecommitdiff
path: root/cross
diff options
context:
space:
mode:
authorjoerg <joerg>2015-12-10 03:02:16 +0000
committerjoerg <joerg>2015-12-10 03:02:16 +0000
commitb6d1614bc4489f407e60a0aa873971e5e6b5b4f3 (patch)
tree70a38d9bb56f1655e02980953fa1de0926ef23bd /cross
parentd24569ff03842deb5777bb76195c1f2cd9bc8074 (diff)
downloadpkgsrc-b6d1614bc4489f407e60a0aa873971e5e6b5b4f3.tar.gz
Help find select. Don't include cstdio after messing up headers.
Tell clang to deal with the broken NEON instruction generator, GCC likes to generate extremely nested parentheses.
Diffstat (limited to 'cross')
-rw-r--r--cross/arm-none-eabi-gcc5/Makefile12
-rw-r--r--cross/arm-none-eabi-gcc5/distinfo5
-rw-r--r--cross/arm-none-eabi-gcc5/patches/patch-gcc_system.h14
-rw-r--r--cross/arm-none-eabi-gcc5/patches/patch-libcc1_connection.cc12
-rw-r--r--cross/arm-none-eabi-gcc5/patches/patch-libiberty_Makefile.in37
5 files changed, 78 insertions, 2 deletions
diff --git a/cross/arm-none-eabi-gcc5/Makefile b/cross/arm-none-eabi-gcc5/Makefile
index 767bd657520..cbb89d19f16 100644
--- a/cross/arm-none-eabi-gcc5/Makefile
+++ b/cross/arm-none-eabi-gcc5/Makefile
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.1 2015/10/11 01:14:56 ryoon Exp $
+# $NetBSD: Makefile,v 1.2 2015/12/10 03:02:16 joerg Exp $
DISTNAME= gcc-5.2.0
PKGNAME= cross-arm-none-eabi-${DISTNAME}
@@ -45,6 +45,16 @@ INFO_FILES= yes
INSTALLATION_DIRS+= bin
+CONFIGURE_ARGS+= --enable-${PLUGIN_NAME}-plugin
+
+.include "../../mk/compiler.mk"
+.if !empty(PKGSRC_COMPILER:Mclang)
+# geattrtab on neon.md results in a very deeply nested expression
+# with > 255 brackets. This was reported against GCC 4.9.1 at least
+# already, but it seems noone cares enough in GCC to fix the generator.
+CFLAGS+= -fbracket-depth=1024
+.endif
+
post-extract:
${LN} -s ${WRKDIR}/newlib-${NEWLIBVER}/newlib ${WRKSRC}/newlib
${LN} -s ${WRKDIR}/newlib-${NEWLIBVER}/libgloss ${WRKSRC}/libgloss
diff --git a/cross/arm-none-eabi-gcc5/distinfo b/cross/arm-none-eabi-gcc5/distinfo
index b2a64a5155c..cd3ef59d10d 100644
--- a/cross/arm-none-eabi-gcc5/distinfo
+++ b/cross/arm-none-eabi-gcc5/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.2 2015/11/03 00:47:42 agc Exp $
+$NetBSD: distinfo,v 1.3 2015/12/10 03:02:16 joerg Exp $
SHA1 (gcc-5.2.0.tar.bz2) = fe3f5390949d47054b613edc36c557eb1d51c18e
RMD160 (gcc-5.2.0.tar.bz2) = eaedd62e7a738f6bdc0e97a0c40fbbd75d35925b
@@ -8,4 +8,7 @@ SHA1 (newlib-2.2.0.tar.gz) = 16fc7bc82e445341b9e741a3fc57b818691fa375
RMD160 (newlib-2.2.0.tar.gz) = f295a83d08c4ccb4ccde355fbbd55f54352ff2ad
SHA512 (newlib-2.2.0.tar.gz) = ab9161f16845367c823b6709e3c5708969f29f05c77edb1cf969ff4202f358648f1e55080974599dcefed2fbced4694dc73748596e76c1aa37c50cddff6e4be3
Size (newlib-2.2.0.tar.gz) = 16521910 bytes
+SHA1 (patch-gcc_system.h) = 72a75ff773b9b5f3d2f16f4ec7d29e032aba5f53
+SHA1 (patch-libcc1_connection.cc) = 2acd56a6f62b29ed3f02eecb7bf103e4564a442c
SHA1 (patch-libgo_mksysinfo.sh) = f14e68a0c8cc823442661e3523b3b6b9b9a5fd1c
+SHA1 (patch-libiberty_Makefile.in) = 6f61bd7bb473e8825adf5c25bc57ff3f3602beb5
diff --git a/cross/arm-none-eabi-gcc5/patches/patch-gcc_system.h b/cross/arm-none-eabi-gcc5/patches/patch-gcc_system.h
new file mode 100644
index 00000000000..d78ab9a7c94
--- /dev/null
+++ b/cross/arm-none-eabi-gcc5/patches/patch-gcc_system.h
@@ -0,0 +1,14 @@
+$NetBSD: patch-gcc_system.h,v 1.1 2015/12/10 03:02:16 joerg Exp $
+
+--- gcc/system.h.orig 2015-01-05 12:33:28.000000000 +0000
++++ gcc/system.h
+@@ -44,6 +44,9 @@ along with GCC; see the file COPYING3.
+ #endif
+
+ #include <stdio.h>
++#ifdef __cplusplus
++# include <cstdio>
++#endif
+
+ /* Define a generic NULL if one hasn't already been defined. */
+ #ifndef NULL
diff --git a/cross/arm-none-eabi-gcc5/patches/patch-libcc1_connection.cc b/cross/arm-none-eabi-gcc5/patches/patch-libcc1_connection.cc
new file mode 100644
index 00000000000..260b5c28e1a
--- /dev/null
+++ b/cross/arm-none-eabi-gcc5/patches/patch-libcc1_connection.cc
@@ -0,0 +1,12 @@
+$NetBSD: patch-libcc1_connection.cc,v 1.1 2015/12/10 03:02:16 joerg Exp $
+
+--- libcc1/connection.cc.orig 2014-11-13 10:22:22.000000000 +0000
++++ libcc1/connection.cc
+@@ -23,6 +23,7 @@ along with GCC; see the file COPYING3.
+ #include <sys/types.h>
+ #include <string.h>
+ #include <errno.h>
++#include <sys/select.h>
+ #include "marshall.hh"
+ #include "connection.hh"
+ #include "rpc.hh"
diff --git a/cross/arm-none-eabi-gcc5/patches/patch-libiberty_Makefile.in b/cross/arm-none-eabi-gcc5/patches/patch-libiberty_Makefile.in
new file mode 100644
index 00000000000..3e2efc0434b
--- /dev/null
+++ b/cross/arm-none-eabi-gcc5/patches/patch-libiberty_Makefile.in
@@ -0,0 +1,37 @@
+$NetBSD: patch-libiberty_Makefile.in,v 1.1 2015/12/10 03:02:16 joerg Exp $
+
+--- libiberty/Makefile.in.orig 2014-12-24 16:22:51.000000000 +0000
++++ libiberty/Makefile.in
+@@ -363,13 +363,12 @@ install-strip: install
+ # multilib-specific flags, it's overridden by FLAGS_TO_PASS from the
+ # default multilib, so we have to take CFLAGS into account as well,
+ # since it will be passed the multilib flags.
+-MULTIOSDIR = `$(CC) $(CFLAGS) -print-multi-os-directory`
+ install_to_libdir: all
+ if test -n "${target_header_dir}"; then \
+- ${mkinstalldirs} $(DESTDIR)$(libdir)/$(MULTIOSDIR); \
+- $(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n; \
+- ( cd $(DESTDIR)$(libdir)/$(MULTIOSDIR) ; chmod 644 $(TARGETLIB)n ;$(RANLIB) $(TARGETLIB)n ); \
+- mv -f $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB)n $(DESTDIR)$(libdir)/$(MULTIOSDIR)/$(TARGETLIB); \
++ ${mkinstalldirs} $(DESTDIR)$(libdir)
++ $(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(libdir)/$(TARGETLIB)n
++ ( cd $(DESTDIR)$(libdir) ; chmod 644 $(TARGETLIB)n ;$(RANLIB) $(TARGETLIB)n )
++ mv -f $(DESTDIR)$(libdir)/$(TARGETLIB)n $(DESTDIR)$(libdir)/$(TARGETLIB)
+ case "${target_header_dir}" in \
+ /*) thd=${target_header_dir};; \
+ *) thd=${includedir}/${target_header_dir};; \
+@@ -382,10 +381,10 @@ install_to_libdir: all
+ @$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install
+
+ install_to_tooldir: all
+- ${mkinstalldirs} $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)
+- $(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)/$(TARGETLIB)n
+- ( cd $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR) ; chmod 644 $(TARGETLIB)n; $(RANLIB) $(TARGETLIB)n )
+- mv -f $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)/$(TARGETLIB)n $(DESTDIR)$(tooldir)/lib/$(MULTIOSDIR)/$(TARGETLIB)
++ ${mkinstalldirs} $(DESTDIR)$(tooldir)/lib
++ $(INSTALL_DATA) $(TARGETLIB) $(DESTDIR)$(tooldir)/lib/$(TARGETLIB)n
++ ( cd $(DESTDIR)$(tooldir)/lib ; chmod 644 $(TARGETLIB)n; $(RANLIB) $(TARGETLIB)n )
++ mv -f $(DESTDIR)$(tooldir)/lib/$(TARGETLIB)n $(DESTDIR)$(tooldir)/lib/$(TARGETLIB)
+ @$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install
+
+ # required-list was used when building a shared bfd/opcodes/libiberty