summaryrefslogtreecommitdiff
path: root/Ports/binutils/patches/binutils.patch
blob: d0512e1aa67ece225130cdfc3a69415e88d53ba2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
diff -Naur binutils-2.37/bfd/config.bfd binutils-2.37.serenity/bfd/config.bfd
--- binutils-2.37/bfd/config.bfd	2021-07-08 13:37:19.000000000 +0200
+++ binutils-2.37.serenity/bfd/config.bfd	2021-07-28 18:03:58.972705458 +0200
@@ -223,7 +223,24 @@
 
 case "${targ}" in
 # START OF targmatch.h
+
+  i[3-7]86-*-serenity*)
+    targ_defvec=i386_elf32_vec
+    targ_selvecs=
+    ;;
 #ifdef BFD64
+  x86_64-*-serenity*)
+    targ_defvec=x86_64_elf64_vec
+    targ_selvecs=i386_elf32_vec
+    want64=true
+    ;;
+
+  arm-*-serenity*)
+    targ_defvec=arm_elf32_le_vec
+    targ_selvecs=
+    targ64_selvecs=
+    ;;
+
   aarch64-*-darwin*)
     targ_defvec=aarch64_mach_o_vec
     targ_selvecs="arm_mach_o_vec mach_o_le_vec mach_o_be_vec mach_o_fat_vec"
diff -Naur binutils-2.37/config.sub binutils-2.37.serenity/config.sub
--- binutils-2.37/config.sub	2021-07-08 13:37:19.000000000 +0200
+++ binutils-2.37.serenity/config.sub	2021-07-28 18:03:58.972705458 +0200
@@ -1700,6 +1700,7 @@
 	# The portable systems comes first.
 	# Each alternative MUST end in a * to match a version number.
 	gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
+	     | serenity* \
 	     | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
 	     | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
 	     | sym* |  plan9* | psp* | sim* | xray* | os68k* | v88r* \
diff -Naur binutils-2.37/gas/configure.tgt binutils-2.37.serenity/gas/configure.tgt
--- binutils-2.37/gas/configure.tgt	2021-07-08 13:37:19.000000000 +0200
+++ binutils-2.37.serenity/gas/configure.tgt	2021-07-28 18:03:58.972705458 +0200
@@ -123,6 +123,8 @@
 generic_target=${cpu_type}-$vendor-$os
 # Note: This table is alpha-sorted, please try to keep it that way.
 case ${generic_target} in
+  i386-*-serenity*)                     fmt=elf;;
+  arm-*-serenity*)                      fmt=elf;;
   aarch64*-*-elf*)			fmt=elf;;
   aarch64*-*-fuchsia*)			fmt=elf;;
   aarch64*-*-genode*)			fmt=elf;;
diff -Naur binutils-2.37/ld/configure.tgt binutils-2.37.serenity/ld/configure.tgt
--- binutils-2.37/ld/configure.tgt	2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37.serenity/ld/configure.tgt	2021-07-28 18:03:58.972705458 +0200
@@ -43,6 +43,19 @@
 # Please try to keep this table more or less in alphabetic order - it
 # makes it much easier to lookup a specific archictecture.
 case "${targ}" in
+i[3-7]86-*-serenity*)
+			targ_emul=elf_i386_serenity
+			targ_extra_emuls=elf_i386
+			targ64_extra_emuls="elf_x86_64_serenity elf_x86_64"
+			;;
+x86_64-*-serenity*)
+			targ_emul=elf_x86_64_serenity
+			targ_extra_emuls="elf_i386_serenity elf_x86_64 elf_i386"
+			;;
+arm-*-serenity*)
+			targ_emul=armelf_serenity
+			targ_extra_emuls="armelf_serenity armelf"
+			;;
 aarch64_be-*-elf)	targ_emul=aarch64elfb
 			targ_extra_emuls="aarch64elf aarch64elf32 aarch64elf32b armelfb armelf"
 			;;
diff -Naur binutils-2.37/ld/emulparams/armelf_serenity.sh binutils-2.37.serenity/ld/emulparams/armelf_serenity.sh
--- binutils-2.37/ld/emulparams/armelf_serenity.sh	1970-01-01 01:00:00.000000000 +0100
+++ binutils-2.37.serenity/ld/emulparams/armelf_serenity.sh	2021-07-28 18:03:58.972705458 +0200
@@ -0,0 +1,7 @@
+. ${srcdir}/emulparams/armelf.sh
+MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
+TEXT_START_ADDR=0x00008000
+TARGET2_TYPE=got-rel
+
+unset STACK_ADDR
+unset EMBEDDED
diff -Naur binutils-2.37/ld/emulparams/elf_i386_serenity.sh binutils-2.37.serenity/ld/emulparams/elf_i386_serenity.sh
--- binutils-2.37/ld/emulparams/elf_i386_serenity.sh	1970-01-01 01:00:00.000000000 +0100
+++ binutils-2.37.serenity/ld/emulparams/elf_i386_serenity.sh	2021-07-28 18:03:58.972705458 +0200
@@ -0,0 +1,3 @@
+. ${srcdir}/emulparams/elf_i386.sh
+GENERATE_SHLIB_SCRIPT=yes
+GENERATE_PIE_SCRIPT=yes
diff -Naur binutils-2.37/ld/emulparams/elf_x86_64_serenity.sh binutils-2.37.serenity/ld/emulparams/elf_x86_64_serenity.sh
--- binutils-2.37/ld/emulparams/elf_x86_64_serenity.sh	1970-01-01 01:00:00.000000000 +0100
+++ binutils-2.37.serenity/ld/emulparams/elf_x86_64_serenity.sh	2021-07-28 18:03:58.972705458 +0200
@@ -0,0 +1 @@
+. ${srcdir}/emulparams/elf_x86_64.sh
diff -Naur binutils-2.37/ld/Makefile.am binutils-2.37.serenity/ld/Makefile.am
--- binutils-2.37/ld/Makefile.am	2021-07-08 13:37:20.000000000 +0200
+++ binutils-2.37.serenity/ld/Makefile.am	2021-07-28 18:03:58.972705458 +0200
@@ -174,6 +174,7 @@
 	earmelf_nbsd.c \
 	earmelf_phoenix.c \
 	earmelf_vxworks.c \
+	earmelf_serenity.c \
 	earmelfb.c \
 	earmelfb_fbsd.c \
 	earmelfb_fuchsia.c \
diff -Naur binutils-2.37/ld/Makefile.in binutils-2.37.serenity/ld/Makefile.in
--- binutils-2.37/ld/Makefile.in	2021-07-18 18:38:34.000000000 +0200
+++ binutils-2.37.serenity/ld/Makefile.in	2021-07-28 18:03:58.972705458 +0200
@@ -664,6 +664,7 @@
 	earmelf_nbsd.c \
 	earmelf_phoenix.c \
 	earmelf_vxworks.c \
+	earmelf_serenity.c \
 	earmelfb.c \
 	earmelfb_fbsd.c \
 	earmelfb_fuchsia.c \
@@ -774,6 +775,7 @@
 	eelf_i386_vxworks.c \
 	eelf_iamcu.c \
 	eelf_s390.c \
+	eelf_i386_serenity.c \
 	eh8300elf.c \
 	eh8300elf_linux.c \
 	eh8300helf.c \
@@ -945,6 +947,7 @@
 	eelf_x86_64_cloudabi.c \
 	eelf_x86_64_fbsd.c \
 	eelf_x86_64_sol2.c \
+	eelf_x86_64_serenity.c \
 	ehppa64linux.c \
 	ei386pep.c \
 	emmo.c
diff -Naur binutils-2.37/libiberty/rust-demangle.c binutils-2.37.serenity/libiberty/rust-demangle.c
--- binutils-2.37/libiberty/rust-demangle.c	2021-07-15 16:19:46.000000000 +0200
+++ binutils-2.37.serenity/libiberty/rust-demangle.c	2021-07-28 18:14:23.231031885 +0200
@@ -75,10 +75,10 @@
   int version;
 
   /* Recursion depth.  */
-  uint recursion;
+  unsigned int recursion;
   /* Maximum number of times demangle_path may be called recursively.  */
 #define RUST_MAX_RECURSION_COUNT  1024
-#define RUST_NO_RECURSION_LIMIT   ((uint) -1)
+#define RUST_NO_RECURSION_LIMIT   ((unsigned int) -1)
 
   uint64_t bound_lifetime_depth;
 };