source: mainline/tools/toolchain-binutils-2.23.1.patch@ 5a65d29

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since 5a65d29 was 5a65d29, checked in by Vojtech Horky <vojtechhorky@…>, 12 years ago

Add HelenOS-specific toolchain patches

It is possible to build '*-helenos-*' toolchain, that is the triplet
would contain the word 'helenos' instead of 'linux' and GCC would
provide some HelenOS-specific macros.

The toolchain can be built with the toolchain.sh script, just provide
—helenos-target as a parameter.

Changes to the autotool/configuration scripts would be added later.

  • Property mode set to 100644
File size: 8.8 KB
RevLine 
[5a65d29]1diff -ud -Nrud binutils-2.23.1-original/bfd/config.bfd binutils-2.23.1/bfd/config.bfd
2--- binutils-2.23.1-original/bfd/config.bfd 2012-09-04 16:14:59.000000000 +0200
3+++ binutils-2.23.1/bfd/config.bfd 2013-07-10 12:37:45.044748453 +0200
4@@ -203,7 +203,7 @@
5 targ_defvec=ecoffalpha_little_vec
6 want64=true
7 ;;
8- ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-* | ia64*-*-elf* | ia64*-*-kfreebsd*-gnu)
9+ ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-* | ia64*-*-elf* | ia64*-*-kfreebsd*-gnu | ia64*-*-helenos)
10 targ_defvec=bfd_elf64_ia64_little_vec
11 targ_selvecs="bfd_elf64_ia64_big_vec bfd_pei_ia64_vec"
12 want64=true
13@@ -315,6 +315,7 @@
14 ;;
15 arm-*-elf | arm-*-freebsd* | arm*-*-linux-* | arm*-*-conix* | \
16 arm*-*-uclinux* | arm-*-kfreebsd*-gnu | \
17+ arm-helenos-gnueabi | \
18 arm*-*-eabi* )
19 targ_defvec=bfd_elf32_littlearm_vec
20 targ_selvecs=bfd_elf32_bigarm_vec
21@@ -538,6 +539,16 @@
22 targ_defvec=bfd_elf32_i386_vec
23 targ_selvecs="i386coff_vec i386aout_vec"
24 ;;
25+ i[3-7]86-*-helenos*)
26+ targ_defvec=bfd_elf32_i386_vec
27+ targ_selvecs="i386linux_vec i386pei_vec"
28+ targ64_selvecs="bfd_elf64_x86_64_vec bfd_elf32_x86_64_vec bfd_elf64_l1om_vec bfd_elf64_k1om_vec"
29+ ;;
30+ x86_64-*-helenos*)
31+ targ_defvec=bfd_elf64_x86_64_vec
32+ targ_selvecs="bfd_elf32_i386_vec bfd_elf32_x86_64_vec i386linux_vec i386pei_vec x86_64pei_vec bfd_elf64_l1om_vec bfd_elf64_k1om_vec"
33+ want64=true
34+ ;;
35 i[3-7]86-*-darwin* | i[3-7]86-*-macos10* | i[3-7]86-*-rhapsody*)
36 targ_defvec=mach_o_i386_vec
37 targ_selvecs="mach_o_le_vec mach_o_be_vec mach_o_fat_vec pef_vec pef_xlib_vec sym_vec"
38@@ -996,6 +1007,10 @@
39 targ_defvec=bfd_elf32_bigmips_vec
40 targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
41 ;;
42+ mips*-*-helenos*)
43+ targ_defvec=bfd_elf32_tradlittlemips_vec
44+ targ_selvecs="bfd_elf32_tradbigmips_vec ecoff_little_vec ecoff_big_vec bfd_elf32_ntradlittlemips_vec bfd_elf32_ntradbigmips_vec"
45+ ;;
46 mips*-*-none)
47 targ_defvec=bfd_elf32_bigmips_vec
48 targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
49@@ -1031,6 +1046,11 @@
50 targ_selvecs="bfd_elf32_tradbigmips_vec ecoff_little_vec ecoff_big_vec bfd_elf32_ntradlittlemips_vec bfd_elf64_tradlittlemips_vec bfd_elf32_ntradbigmips_vec bfd_elf64_tradbigmips_vec"
51 want64=true
52 ;;
53+ mips64el-*-helenos*)
54+ targ_defvec=bfd_elf32_tradlittlemips_vec
55+ targ_selvecs="bfd_elf32_tradbigmips_vec ecoff_little_vec ecoff_big_vec bfd_elf32_ntradlittlemips_vec bfd_elf64_tradlittlemips_vec bfd_elf32_ntradbigmips_vec bfd_elf64_tradbigmips_vec"
56+ want64=true
57+ ;;
58 mips*-*-linux*)
59 targ_defvec=bfd_elf32_tradbigmips_vec
60 targ_selvecs="bfd_elf32_tradlittlemips_vec ecoff_big_vec ecoff_little_vec bfd_elf32_ntradbigmips_vec bfd_elf64_tradbigmips_vec bfd_elf32_ntradlittlemips_vec bfd_elf64_tradlittlemips_vec"
61@@ -1179,6 +1199,7 @@
62 want64=true
63 ;;
64 powerpc64-*-elf* | powerpc-*-elf64* | powerpc64-*-linux* | \
65+ powerpc64-*-helenos* | \
66 powerpc64-*-*bsd*)
67 targ_defvec=bfd_elf64_powerpc_vec
68 targ_selvecs="bfd_elf64_powerpcle_vec bfd_elf32_powerpc_vec bfd_elf32_powerpcle_vec rs6000coff_vec rs6000coff64_vec aix5coff64_vec"
69@@ -1197,6 +1218,7 @@
70 ;;
71 powerpc-*-*bsd* | powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \
72 powerpc-*-solaris2* | powerpc-*-linux-* | powerpc-*-rtems* | \
73+ powerpc-*-helenos* | \
74 powerpc-*-chorus*)
75 targ_defvec=bfd_elf32_powerpc_vec
76 targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec ppcboot_vec"
77@@ -1495,7 +1517,7 @@
78 targ_underscore=yes
79 want64=true
80 ;;
81- sparc64*-*-linux-*)
82+ sparc64*-*-linux-* | sparc64-*-helenos*)
83 targ_defvec=bfd_elf64_sparc_vec
84 targ_selvecs="bfd_elf32_sparc_vec sparclinux_vec sunos_big_vec"
85 want64=true
86diff -ud -Nrud binutils-2.23.1-original/config.sub binutils-2.23.1/config.sub
87--- binutils-2.23.1-original/config.sub 2012-04-25 17:53:25.000000000 +0200
88+++ binutils-2.23.1/config.sub 2013-07-09 15:52:36.213542827 +0200
89@@ -1359,6 +1359,7 @@
90 | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
91 | -chorusos* | -chorusrdb* | -cegcc* \
92 | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
93+ | -helenos* \
94 | -mingw32* | -linux-gnu* | -linux-android* \
95 | -linux-newlib* | -linux-uclibc* \
96 | -uxpv* | -beos* | -mpeix* | -udk* \
97diff -ud -Nrud binutils-2.23.1-original/gas/configure.tgt binutils-2.23.1/gas/configure.tgt
98--- binutils-2.23.1-original/gas/configure.tgt 2012-09-04 14:53:45.000000000 +0200
99+++ binutils-2.23.1/gas/configure.tgt 2013-07-10 12:36:18.004435477 +0200
100@@ -113,6 +113,7 @@
101 arm-*-aout) fmt=aout ;;
102 arm-*-coff) fmt=coff ;;
103 arm-*-rtems*) fmt=elf ;;
104+ arm-helenos-*eabi*) fmt=elf em=armlinuxeabi ;;
105 arm-*-elf) fmt=elf ;;
106 arm-*-eabi*) fmt=elf em=armeabi ;;
107 arm-*-symbianelf*) fmt=elf em=symbian ;;
108@@ -231,6 +232,7 @@
109 i386-*-msdosdjgpp* \
110 | i386-*-go32*) fmt=coff em=go32 ;;
111 i386-*-rtems*) fmt=elf ;;
112+ i386-*-helenos*) fmt=elf ;;
113 i386-*-gnu*) fmt=elf em=gnu ;;
114 i386-*-mach*) fmt=aout em=mach ;;
115 i386-*-msdos*) fmt=aout ;;
116@@ -259,6 +261,7 @@
117 ia64-*-linux-*) fmt=elf em=linux ;;
118 ia64-*-hpux*) fmt=elf em=hpux ;;
119 ia64-*-netbsd*) fmt=elf em=nbsd ;;
120+ ia64-*-helenos*) fmt=elf ;;
121
122 ip2k-*-*) fmt=elf ;;
123
124@@ -311,6 +314,8 @@
125 mips*-sde-elf*) fmt=elf em=tmips ;;
126 mips-*-sysv*) fmt=ecoff ;;
127 mips-*-elf* | mips-*-rtems*) fmt=elf ;;
128+ mips*el-*-helenos*) fmt=elf endian=little em=tmips ;;
129+ mips-*-helenos*) fmt=elf em=tmips ;;
130 mips-*-netbsd*) fmt=elf em=tmips ;;
131 mips-*-openbsd*) fmt=elf em=tmips ;;
132
133@@ -352,6 +357,7 @@
134 ppc-*-linux-*) fmt=elf em=linux ;;
135 ppc-*-solaris*) fmt=elf em=solaris ;;
136 ppc-*-rtems*) fmt=elf ;;
137+ ppc-*-helenos*) fmt=elf ;;
138 ppc-*-macos*) fmt=coff em=macos ;;
139 ppc-*-nto*) fmt=elf ;;
140 ppc-*-kaos*) fmt=elf ;;
141@@ -388,6 +394,7 @@
142
143 sparc64-*-rtems*) fmt=elf ;;
144 sparc-*-rtems*) fmt=elf ;;
145+ sparc-*-helenos*) fmt=elf em=linux ;;
146 sparc-*-sunos4*) fmt=aout em=sun3 ;;
147 sparc-*-aout) fmt=aout em=sparcaout ;;
148 sparc-*-coff) fmt=coff ;;
149diff -ud -Nrud binutils-2.23.1-original/ld/configure.tgt binutils-2.23.1/ld/configure.tgt
150--- binutils-2.23.1-original/ld/configure.tgt 2012-09-04 14:53:47.000000000 +0200
151+++ binutils-2.23.1/ld/configure.tgt 2013-07-10 12:32:54.230336250 +0200
152@@ -73,6 +73,10 @@
153 arm-*-nto*) targ_emul=armnto ;;
154 arm-*-openbsd*) targ_emul=armnbsd ;;
155 arm-*-rtems*) targ_emul=armelf ;;
156+arm-helenos-*eabi*) targ_emul=armelf_linux_eabi
157+ targ_extra_emuls=armelfb_linux_eabi
158+ targ_extra_libpath=$targ_extra_emuls
159+ ;;
160 armeb-*-elf) targ_emul=armelfb ;;
161 arm-*-elf | arm*-*-eabi*)
162 targ_emul=armelf ;;
163@@ -196,6 +200,8 @@
164 i[3-7]86-*-lynxos*) targ_emul=i386lynx ;;
165 i[3-7]86-*-coff) targ_emul=i386coff ;;
166 i[3-7]86-*-rtems*) targ_emul=elf_i386 ;;
167+i[3-7]86-*-helenos*) targ_emul=elf_i386 ;;
168+x86_64-*-helenos*) targ_emul=elf_x86_64 ;;
169 i[3-7]86-*-aros*) targ_emul=elf_i386 ;;
170 i[3-7]86-*-rdos*) targ_emul=elf_i386 ;;
171 i[3-7]86-*-bsd) targ_emul=i386bsd ;;
172@@ -336,6 +342,7 @@
173 ia64-*-netbsd*) targ_emul=elf64_ia64 ;;
174 ia64-*-linux*) targ_emul=elf64_ia64 ;;
175 ia64-*-*vms*) targ_emul=elf64_ia64_vms ;;
176+ia64-*-helenos*) targ_emul=elf64_ia64 ;;
177 ia64-*-aix*) targ_emul=elf64_aix
178 ;;
179 ip2k-*-elf) targ_emul=elf32ip2k
180@@ -429,6 +436,15 @@
181 mips*el-*-elf*) targ_emul=elf32elmip ;;
182 mips*-*-elf*) targ_emul=elf32ebmip ;;
183 mips*-*-rtems*) targ_emul=elf32ebmip ;;
184+mipsel-*-helenos*) targ_emul=elf32ltsmip
185+ targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf32btsmipn32"
186+ targ_extra_libpath=$targ_extra_emuls ;;
187+mips-*-helenos*) targ_emul=elf32btsmip
188+ targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf32ltsmipn32"
189+ targ_extra_libpath=$targ_extra_emuls ;;
190+mips64*el-*-helenos*) targ_emul=elf32ltsmipn32
191+ targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip"
192+ targ_extra_libpath=$targ_extra_emuls ;;
193 mips*el-*-vxworks*) targ_emul=elf32elmipvxworks
194 targ_extra_emuls="elf32ebmipvxworks" ;;
195 mips*-*-vxworks*) targ_emul=elf32ebmipvxworks
196@@ -503,7 +519,8 @@
197 tdir_elf32ppc=`echo "${targ_alias}" | sed -e 's/64//'`
198 tdir_elf32ppc_fbsd=$tdir_elf32ppc
199 ;;
200-powerpc*-*-linux*) case "${targ}" in
201+powerpc*-*-linux* | powerpc*-*-helenos*)
202+ case "${targ}" in
203 *64*) targ_emul=elf64ppc
204 targ_extra_emuls="elf32ppclinux elf32ppc elf32ppcsim"
205 targ_extra_libpath="elf32ppclinux elf32ppc"
206@@ -642,7 +659,8 @@
207 targ_extra_emuls="elf32_sparc sun4"
208 tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/aout//'`
209 tdir_sun4=sparc-sun-sunos4 ;;
210-sparc64-*-linux-*) targ_emul=elf64_sparc
211+sparc64-*-linux-* | sparc64-*-helenos*)
212+ targ_emul=elf64_sparc
213 targ_extra_emuls="elf32_sparc sparclinux sun4"
214 targ_extra_libpath=elf32_sparc
215 tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'`
Note: See TracBrowser for help on using the repository browser.