summaryrefslogtreecommitdiff
path: root/toolchain
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@uclibc-ng.org>2016-08-16 14:23:59 +0200
committerWaldemar Brodkorb <wbx@uclibc-ng.org>2016-08-16 14:24:07 +0200
commit398d68e04a14582a3ed788e3ea26f6834abd1d5f (patch)
treeaf1f264280487085344dd2d8c57b7a7b032b6fcf /toolchain
parent60d226836435ccea378258f0c210a10b0729a670 (diff)
frv: only use binutils 2.27, allow to compile libstdc++ (buildtime tested)
Diffstat (limited to 'toolchain')
-rw-r--r--toolchain/binutils/patches/2.27/frv.patch27
-rw-r--r--toolchain/gcc/patches/6.1.0/frv-remove-write-macro.patch52
2 files changed, 79 insertions, 0 deletions
diff --git a/toolchain/binutils/patches/2.27/frv.patch b/toolchain/binutils/patches/2.27/frv.patch
new file mode 100644
index 000000000..4c378ad17
--- /dev/null
+++ b/toolchain/binutils/patches/2.27/frv.patch
@@ -0,0 +1,27 @@
+diff -Nur binutils-2.27.orig/bfd/elf32-frv.c binutils-2.27/bfd/elf32-frv.c
+--- binutils-2.27.orig/bfd/elf32-frv.c 2016-08-03 09:36:50.000000000 +0200
++++ binutils-2.27/bfd/elf32-frv.c 2016-08-16 14:04:27.941065290 +0200
+@@ -5723,10 +5723,6 @@
+ }
+ if (frvfdpic_got_section (info))
+ {
+- BFD_ASSERT (frvfdpic_gotrel_section (info)->size
+- == (frvfdpic_gotrel_section (info)->reloc_count
+- * sizeof (Elf32_External_Rel)));
+-
+ if (frvfdpic_gotfixup_section (info))
+ {
+ struct elf_link_hash_entry *hgot = elf_hash_table (info)->hgot;
+@@ -5766,12 +5762,6 @@
+ }
+ }
+ }
+- if (frvfdpic_pltrel_section (info))
+- {
+- BFD_ASSERT (frvfdpic_pltrel_section (info)->size
+- == (frvfdpic_pltrel_section (info)->reloc_count
+- * sizeof (Elf32_External_Rel)));
+- }
+
+
+ if (elf_hash_table (info)->dynamic_sections_created)
diff --git a/toolchain/gcc/patches/6.1.0/frv-remove-write-macro.patch b/toolchain/gcc/patches/6.1.0/frv-remove-write-macro.patch
new file mode 100644
index 000000000..db20d37d7
--- /dev/null
+++ b/toolchain/gcc/patches/6.1.0/frv-remove-write-macro.patch
@@ -0,0 +1,52 @@
+diff -Nur gcc-6.1.0.orig/gcc/config/frv/frv.h gcc-6.1.0/gcc/config/frv/frv.h
+--- gcc-6.1.0.orig/gcc/config/frv/frv.h 2016-01-04 15:30:50.000000000 +0100
++++ gcc-6.1.0/gcc/config/frv/frv.h 2016-08-16 13:31:32.652520944 +0200
+@@ -1350,11 +1350,8 @@
+ #define TRAMPOLINE_TEMPLATE_NAME "__trampoline_template"
+ #endif
+
+-#define Twrite _write
+-
+ #if ! __FRV_FDPIC__
+ #define TRANSFER_FROM_TRAMPOLINE \
+-extern int Twrite (int, const void *, unsigned); \
+ \
+ void \
+ __trampoline_setup (short * addr, int size, int fnaddr, int sc) \
+@@ -1366,8 +1363,6 @@
+ \
+ if (size < 20) \
+ { \
+- Twrite (2, "__trampoline_setup bad size\n", \
+- sizeof ("__trampoline_setup bad size\n") - 1); \
+ exit (-1); \
+ } \
+ \
+@@ -1397,7 +1392,6 @@
+ "\tjmpl @(gr0,gr6)\n");
+ #else
+ #define TRANSFER_FROM_TRAMPOLINE \
+-extern int Twrite (int, const void *, unsigned); \
+ \
+ void \
+ __trampoline_setup (addr, size, fnaddr, sc) \
+@@ -1414,8 +1408,6 @@
+ \
+ if (size != 32) \
+ { \
+- Twrite (2, "__trampoline_setup bad size\n", \
+- sizeof ("__trampoline_setup bad size\n") - 1); \
+ exit (-1); \
+ } \
+ \
+diff -Nur gcc-6.1.0.orig/gcc/config/frv/linux.h gcc-6.1.0/gcc/config/frv/linux.h
+--- gcc-6.1.0.orig/gcc/config/frv/linux.h 2016-01-04 15:30:50.000000000 +0100
++++ gcc-6.1.0/gcc/config/frv/linux.h 2016-08-16 13:31:06.763517719 +0200
+@@ -68,7 +68,4 @@
+
+ #undef INVOKE__main
+
+-#undef Twrite
+-#define Twrite __write
+-
+ #endif /* __FRV_LINUX_H__ */