Ticket #9290: gcc-4.7.2.diff

File gcc-4.7.2.diff, 88.4 KB (added by jprostko, 11 years ago)

Initial GCC 4.7.2 patch, which will almost definitely change somewhat

Line 
1diff -Nrcpad gcc-4.7.2-orig/config/acx.m4 gcc-4.7.2/config/acx.m4
2*** gcc-4.7.2-orig/config/acx.m4 2012-08-06 10:34:27.000000000 -0400
3--- gcc-4.7.2/config/acx.m4 2012-11-16 19:33:52.736833876 -0500
4*************** dnl for the parameter format "cmp file1
5*** 402,425 ****
6 dnl accepted by cmp on some systems.
7 AC_DEFUN([ACX_PROG_CMP_IGNORE_INITIAL],
8 [AC_CACHE_CHECK([how to compare bootstrapped objects], gcc_cv_prog_cmp_skip,
9! [ echo abfoo >t1
10! echo cdfoo >t2
11! gcc_cv_prog_cmp_skip='tail +16c $$f1 > tmp-foo1; tail +16c $$f2 > tmp-foo2; cmp tmp-foo1 tmp-foo2'
12! if cmp t1 t2 2 2 > /dev/null 2>&1; then
13! if cmp t1 t2 1 1 > /dev/null 2>&1; then
14! :
15! else
16! gcc_cv_prog_cmp_skip='cmp $$f1 $$f2 16 16'
17 fi
18! fi
19! if cmp --ignore-initial=2 t1 t2 > /dev/null 2>&1; then
20! if cmp --ignore-initial=1 t1 t2 > /dev/null 2>&1; then
21! :
22! else
23! gcc_cv_prog_cmp_skip='cmp --ignore-initial=16 $$f1 $$f2'
24 fi
25 fi
26- rm t1 t2
27 ])
28 do_compare="$gcc_cv_prog_cmp_skip"
29 AC_SUBST(do_compare)
30--- 402,431 ----
31 dnl accepted by cmp on some systems.
32 AC_DEFUN([ACX_PROG_CMP_IGNORE_INITIAL],
33 [AC_CACHE_CHECK([how to compare bootstrapped objects], gcc_cv_prog_cmp_skip,
34! [# comparing object files via cmp doesn't work on haiku (files will seemingly
35! # always differ), so we disassemble both files and compare the results:
36! if uname -o | grep -iq haiku; then
37! gcc_cv_prog_cmp_skip='objdump -Dz $$f1 | tail +6 >tmp-foo1; objdump -Dz $$f2 | tail +6 >tmp-foo2; cmp tmp-foo1 tmp-foo2'
38! else
39! gcc_cv_prog_cmp_skip='tail +16c $$f1 > tmp-foo1; tail +16c $$f2 > tmp-foo2; cmp tmp-foo1 tmp-foo2'
40! echo abfoo >t1
41! echo cdfoo >t2
42! if cmp t1 t2 2 2 > /dev/null 2>&1; then
43! if cmp t1 t2 1 1 > /dev/null 2>&1; then
44! :
45! else
46! gcc_cv_prog_cmp_skip='cmp $$f1 $$f2 16 16'
47! fi
48 fi
49! if cmp --ignore-initial=2 t1 t2 > /dev/null 2>&1; then
50! if cmp --ignore-initial=1 t1 t2 > /dev/null 2>&1; then
51! :
52! else
53! gcc_cv_prog_cmp_skip='cmp --ignore-initial=16 $$f1 $$f2'
54! fi
55 fi
56+ rm t1 t2
57 fi
58 ])
59 do_compare="$gcc_cv_prog_cmp_skip"
60 AC_SUBST(do_compare)
61diff -Nrcpad gcc-4.7.2-orig/config.rpath gcc-4.7.2/config.rpath
62*** gcc-4.7.2-orig/config.rpath 2011-02-13 06:45:53.000000000 -0500
63--- gcc-4.7.2/config.rpath 2012-11-16 19:33:52.736833876 -0500
64*************** if test "$with_gnu_ld" = yes; then
65*** 161,166 ****
66--- 161,168 ----
67 ;;
68 netbsd*)
69 ;;
70+ haiku*)
71+ ;;
72 solaris* | sysv5*)
73 if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then
74 ld_shlibs=no
75diff -Nrcpad gcc-4.7.2-orig/configure gcc-4.7.2/configure
76*** gcc-4.7.2-orig/configure 2012-09-05 08:19:47.000000000 -0400
77--- gcc-4.7.2/configure 2012-11-17 01:53:05.332244630 -0500
78*************** case "${host}" in
79*** 2946,2951 ****
80--- 2946,2954 ----
81 i[3456789]86-*-msdosdjgpp*)
82 noconfigdirs="$noconfigdirs tcl tk itcl"
83 ;;
84+ *-*-haiku*)
85+ noconfigdirs="$noconfigdirs tk itcl libgui gdb"
86+ ;;
87 esac
88
89
90*************** case "${target}" in
91*** 3187,3192 ****
92--- 3190,3198 ----
93 *-*-darwin*)
94 noconfigdirs="$noconfigdirs ${libgcj}"
95 ;;
96+ *-*-haiku*)
97+ noconfigdirs="$noconfigdirs ${libgcj}"
98+ ;;
99 *-*-netware*)
100 noconfigdirs="$noconfigdirs ${libgcj}"
101 ;;
102*************** case "${target}" in
103*** 3350,3355 ****
104--- 3356,3364 ----
105 *-*-freebsd*)
106 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
107 ;;
108+ *-*-haiku*)
109+ noconfigdirs="$noconfigdirs target-newlib target-libgloss"
110+ ;;
111 *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
112 noconfigdirs="$noconfigdirs target-newlib target-libgloss"
113 ;;
114*************** case "${target}" in
115*** 3403,3408 ****
116--- 3412,3420 ----
117 with_gmp=/usr/local
118 fi
119 ;;
120+ *-*-haiku*)
121+ noconfigdirs="$noconfigdirs gdb target-libiberty"
122+ ;;
123 *-*-kaos*)
124 # Remove unsupported stuff on all kaOS configurations.
125 noconfigdirs="$noconfigdirs target-libgloss"
126*************** $as_echo_n "checking how to compare boot
127*** 4991,5015 ****
128 if test "${gcc_cv_prog_cmp_skip+set}" = set; then :
129 $as_echo_n "(cached) " >&6
130 else
131! echo abfoo >t1
132! echo cdfoo >t2
133! gcc_cv_prog_cmp_skip='tail +16c $$f1 > tmp-foo1; tail +16c $$f2 > tmp-foo2; cmp tmp-foo1 tmp-foo2'
134! if cmp t1 t2 2 2 > /dev/null 2>&1; then
135! if cmp t1 t2 1 1 > /dev/null 2>&1; then
136! :
137! else
138! gcc_cv_prog_cmp_skip='cmp $$f1 $$f2 16 16'
139 fi
140! fi
141! if cmp --ignore-initial=2 t1 t2 > /dev/null 2>&1; then
142! if cmp --ignore-initial=1 t1 t2 > /dev/null 2>&1; then
143! :
144! else
145! gcc_cv_prog_cmp_skip='cmp --ignore-initial=16 $$f1 $$f2'
146 fi
147! fi
148! rm t1 t2
149
150 fi
151 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_prog_cmp_skip" >&5
152 $as_echo "$gcc_cv_prog_cmp_skip" >&6; }
153--- 5003,5033 ----
154 if test "${gcc_cv_prog_cmp_skip+set}" = set; then :
155 $as_echo_n "(cached) " >&6
156 else
157! # comparing object files via cmp doesn't work on haiku (files will seemingly
158! # always differ), so we disassemble both files and compare the results:
159! if uname -o | grep -iq haiku; then
160! gcc_cv_prog_cmp_skip='objdump -Dz $$f1 | tail +6 >tmp-foo1; objdump -Dz $$f2 | tail +6 >tmp-foo2; cmp tmp-foo1 tmp-foo2'
161! else
162! gcc_cv_prog_cmp_skip='tail +16c $$f1 > tmp-foo1; tail +16c $$f2 > tmp-foo2; cmp tmp-foo1 tmp-foo2'
163! echo abfoo >t1
164! echo cdfoo >t2
165! if cmp t1 t2 2 2 > /dev/null 2>&1; then
166! if cmp t1 t2 1 1 > /dev/null 2>&1; then
167! :
168! else
169! gcc_cv_prog_cmp_skip='cmp $$f1 $$f2 16 16'
170! fi
171 fi
172! if cmp --ignore-initial=2 t1 t2 > /dev/null 2>&1; then
173! if cmp --ignore-initial=1 t1 t2 > /dev/null 2>&1; then
174! :
175! else
176! gcc_cv_prog_cmp_skip='cmp --ignore-initial=16 $$f1 $$f2'
177! fi
178 fi
179! rm t1 t2
180
181+ fi
182 fi
183 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_prog_cmp_skip" >&5
184 $as_echo "$gcc_cv_prog_cmp_skip" >&6; }
185diff -Nrcpad gcc-4.7.2-orig/gcc/config/arm/haiku.h gcc-4.7.2/gcc/config/arm/haiku.h
186*** gcc-4.7.2-orig/gcc/config/arm/haiku.h 1969-12-31 19:00:00.000000000 -0500
187--- gcc-4.7.2/gcc/config/arm/haiku.h 2012-11-23 19:58:53.183687393 -0500
188***************
189*** 0 ****
190--- 1,82 ----
191+ /* Definitions for ARM running Haiku systems using ELF
192+ Copyright (C) 1993, 1994, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
193+ 2005 Free Software Foundation, Inc.
194+
195+ This file is part of GCC.
196+
197+ GCC is free software; you can redistribute it and/or modify
198+ it under the terms of the GNU General Public License as published by
199+ the Free Software Foundation; either version 2, or (at your option)
200+ any later version.
201+
202+ GCC is distributed in the hope that it will be useful,
203+ but WITHOUT ANY WARRANTY; without even the implied warranty of
204+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
205+ GNU General Public License for more details.
206+
207+ You should have received a copy of the GNU General Public License
208+ along with GCC; see the file COPYING. If not, write to
209+ the Free Software Foundation, 59 Temple Place - Suite 330,
210+ Boston, MA 02111-1307, USA. */
211+
212+ #undef TARGET_VERSION
213+ #define TARGET_VERSION fprintf (stderr, " (ARM Haiku/ELF)");
214+
215+ /* Unsigned chars produces much better code than signed. */
216+ #define DEFAULT_SIGNED_CHAR 0
217+
218+ #undef TARGET_DEFAULT_FLOAT_ABI
219+ #define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_SOFT
220+
221+ /* We default to the "aapcs-linux" ABI so that enums are int-sized by
222+ default. */
223+ #undef ARM_DEFAULT_ABI
224+ #define ARM_DEFAULT_ABI ARM_ABI_AAPCS_LINUX
225+
226+ /* bpabi.h sets FPUTYPE_DEFAULT to VFP */
227+
228+ #undef MULTILIB_DEFAULTS
229+ #define MULTILIB_DEFAULTS \
230+ { "marm", "mlittle-endian", "msoft-float", "mno-thumb-interwork" }
231+
232+ /* Default is set by bpabi.h */
233+ /*
234+ #undef TARGET_DEFAULT
235+ */
236+
237+ #undef SUBTARGET_CPU_DEFAULT
238+ #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
239+
240+ /* Now we define the strings used to build the spec file. */
241+ /* interestingly, bpabi defines __GXX_TYPEINFO_EQUALITY_INLINE=0 too as we do. */
242+
243+ #undef TARGET_OS_CPP_BUILTINS
244+ #define TARGET_OS_CPP_BUILTINS() \
245+ do \
246+ { \
247+ builtin_define ("__HAIKU__"); \
248+ builtin_define ("__ARM__"); \
249+ builtin_define ("__arm__"); \
250+ builtin_define ("__stdcall=__attribute__((__stdcall__))"); \
251+ builtin_define ("__cdecl=__attribute__((__cdecl__))"); \
252+ builtin_define ("__STDC_ISO_10646__=201103L"); \
253+ builtin_assert ("system=haiku"); \
254+ /* Haiku apparently doesn't support merging of symbols across shared \
255+ object boundaries. Hence we need to explicitly specify that \
256+ type_infos are not merged, so that they get compared by name \
257+ instead of by pointer. */ \
258+ builtin_define ("__GXX_MERGED_TYPEINFO_NAMES=0"); \
259+ /*builtin_define ("__GXX_TYPEINFO_EQUALITY_INLINE=0"); done in bpabi: */\
260+ TARGET_BPABI_CPP_BUILTINS(); \
261+ } \
262+ while (0)
263+
264+ /* Use the default LIBGCC_SPEC, not the empty version in haiku.h, as we
265+ do not use multilib (needed ??). */
266+ #undef LIBGCC_SPEC
267+
268+ /* If ELF is the default format, we should not use /lib/elf. */
269+
270+ #undef LINK_SPEC
271+ #define LINK_SPEC "%{!o*:-o %b} -m armelf -shared -no-undefined %{nostart:-e 0} \
272+ %{mbig-endian:-EB} %{mlittle-endian:-EL} -X"
273diff -Nrcpad gcc-4.7.2-orig/gcc/config/arm/t-haiku gcc-4.7.2/gcc/config/arm/t-haiku
274*** gcc-4.7.2-orig/gcc/config/arm/t-haiku 1969-12-31 19:00:00.000000000 -0500
275--- gcc-4.7.2/gcc/config/arm/t-haiku 2012-11-16 19:33:52.740833876 -0500
276***************
277*** 0 ****
278--- 1,21 ----
279+ # build multilib for soft float and VFP
280+ # (unsure about how it should be done...)
281+ # mix from t-symbian & t-wince-pe
282+
283+ #LIB1ASMSRC = arm/lib1funcs.asm
284+ #LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _call_via_rX _interwork_call_via_rX
285+
286+
287+ #MULTILIB_OPTIONS += mhard-float
288+ #MULTILIB_DIRNAMES += fpu
289+
290+ MULTILIB_OPTIONS += msoft-float
291+ MULTILIB_DIRNAMES += fpu soft
292+ MULTILIB_EXCEPTIONS += *mthumb/*mhard-float*
293+
294+ MULTILIB_OPTIONS += mfloat-abi=softfp
295+ MULTILIB_DIRNAMES += softfp
296+
297+ #LIBGCC = stmp-multilib
298+ #INSTALL_LIBGCC = install-multilib
299+ #TARGET_LIBGCC2_CFLAGS =
300diff -Nrcpad gcc-4.7.2-orig/gcc/config/haiku.h gcc-4.7.2/gcc/config/haiku.h
301*** gcc-4.7.2-orig/gcc/config/haiku.h 1969-12-31 19:00:00.000000000 -0500
302--- gcc-4.7.2/gcc/config/haiku.h 2012-11-24 22:04:51.000000000 -0500
303***************
304*** 0 ****
305--- 1,185 ----
306+ /* Definitions of target machine for GCC.
307+ Common Haiku definitions for all architectures.
308+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005
309+ Free Software Foundation, Inc.
310+
311+ This file is part of GCC.
312+
313+ GCC is free software; you can redistribute it and/or modify
314+ it under the terms of the GNU General Public License as published by
315+ the Free Software Foundation; either version 2, or (at your option)
316+ any later version.
317+
318+ GCC is distributed in the hope that it will be useful,
319+ but WITHOUT ANY WARRANTY; without even the implied warranty of
320+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
321+ GNU General Public License for more details.
322+
323+ You should have received a copy of the GNU General Public License
324+ along with GCC; see the file COPYING. If not, write to
325+ the Free Software Foundation, 59 Temple Place - Suite 330,
326+ Boston, MA 02111-1307, USA. */
327+
328+
329+ /* Change debugging to Dwarf2. */
330+ #undef PREFERRED_DEBUGGING_TYPE
331+ #define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
332+
333+ #undef MCOUNT_NAME
334+ #define MCOUNT_NAME "_mcount"
335+
336+ #define TARGET_DECLSPEC 1
337+
338+ #undef SIZE_TYPE
339+ #define SIZE_TYPE "long unsigned int"
340+
341+ #undef PTRDIFF_TYPE
342+ #define PTRDIFF_TYPE "long int"
343+
344+ #undef WCHAR_TYPE
345+ #define WCHAR_TYPE "int"
346+
347+ #undef WCHAR_TYPE_SIZE
348+ #define WCHAR_TYPE_SIZE 32
349+
350+ /* Haiku uses lots of multichars, so don't warn about them unless the
351+ user explicitly asks for the warnings with -Wmultichar. Note that
352+ CC1_SPEC is used for both cc1 and cc1plus. */
353+ #undef CC1_SPEC
354+ #define CC1_SPEC "%{!no-fpic:%{!fno-pic:%{!fno-pie:%{!fpie:%{!fPIC:%{!fPIE:-fpic}}}}}} %{!Wmultichar: -Wno-multichar} %(cc1_cpu) %{profile:-p}"
355+
356+ #undef CC1PLUS_SPEC
357+ #define CC1PLUS_SPEC "%{!Wctor-dtor-privacy:-Wno-ctor-dtor-privacy}"
358+
359+ /* LIB_SPEC for Haiku */
360+ #undef LIB_SPEC
361+ #define LIB_SPEC "-lroot"
362+
363+ /* gcc runtime lib is built into libroot.so on Haiku */
364+ /* ??? This is gonna be lovely when the next release of gcc has
365+ some new symbol in, so that links start failing. */
366+ #undef LIBGCC_SPEC
367+ #define LIBGCC_SPEC ""
368+
369+
370+ #undef STARTFILE_SPEC
371+ #define STARTFILE_SPEC "crti.o%s crtbegin.o%s %{!shared:%{!nostart:start_dyn.o%s}} init_term_dyn.o%s"
372+
373+ #undef ENDFILE_SPEC
374+ #define ENDFILE_SPEC "crtend.o%s crtn.o%s"
375+
376+ /* For native compiler, use standard Haiku include file search paths
377+ rooted in /boot/develop/headers. For a cross compiler, don't
378+ expect the host to use the Haiku directory scheme, and instead look
379+ for the Haiku include files relative to TOOL_INCLUDE_DIR. Yes, we
380+ use ANSI string concatenation here (FIXME) */
381+
382+ #ifndef CROSS_DIRECTORY_STRUCTURE
383+ #undef INCLUDE_DEFAULTS
384+ #define INCLUDE_DEFAULTS \
385+ { \
386+ { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, 0, 0 }, \
387+ { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, 0, 0 }, \
388+ { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, 0, 0 }, \
389+ { GCC_INCLUDE_DIR, "GCC", 0, 0, 0, 0 }, \
390+ { FIXED_INCLUDE_DIR, "GCC", 0, 0, 0, 0 }, \
391+ { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0 }, \
392+ { "/boot/common/include", 0, 0, 0, 0, 0 }, \
393+ { "/boot/develop/headers/os", 0, 0, 0, 0, 0 }, \
394+ { "/boot/develop/headers/os/app", 0, 0, 0, 0, 0 }, \
395+ { "/boot/develop/headers/os/device", 0, 0, 0, 0, 0 }, \
396+ { "/boot/develop/headers/os/drivers", 0, 0, 0, 0, 0 }, \
397+ { "/boot/develop/headers/os/game", 0, 0, 0, 0, 0 }, \
398+ { "/boot/develop/headers/os/interface", 0, 0, 0, 0, 0 }, \
399+ { "/boot/develop/headers/os/kernel", 0, 0, 0, 0, 0 }, \
400+ { "/boot/develop/headers/os/locale", 0, 0, 0, 0, 0 }, \
401+ { "/boot/develop/headers/os/mail", 0, 0, 0, 0, 0 }, \
402+ { "/boot/develop/headers/os/media", 0, 0, 0, 0, 0 }, \
403+ { "/boot/develop/headers/os/midi", 0, 0, 0, 0, 0 }, \
404+ { "/boot/develop/headers/os/midi2", 0, 0, 0, 0, 0 }, \
405+ { "/boot/develop/headers/os/net", 0, 0, 0, 0, 0 }, \
406+ { "/boot/develop/headers/os/opengl", 0, 0, 0, 0, 0 }, \
407+ { "/boot/develop/headers/os/storage", 0, 0, 0, 0, 0 }, \
408+ { "/boot/develop/headers/os/support", 0, 0, 0, 0, 0 }, \
409+ { "/boot/develop/headers/os/translation", 0, 0, 0, 0, 0 }, \
410+ { "/boot/develop/headers/os/add-ons/graphics", 0, 0, 0, 0, 0 }, \
411+ { "/boot/develop/headers/os/add-ons/input_server", 0, 0, 0, 0, 0 }, \
412+ { "/boot/develop/headers/os/add-ons/screen_saver", 0, 0, 0, 0, 0 }, \
413+ { "/boot/develop/headers/os/add-ons/tracker", 0, 0, 0, 0, 0 }, \
414+ { "/boot/develop/headers/os/be_apps/Deskbar", 0, 0, 0, 0, 0 }, \
415+ { "/boot/develop/headers/os/be_apps/NetPositive", 0, 0, 0, 0, 0 }, \
416+ { "/boot/develop/headers/os/be_apps/Tracker", 0, 0, 0, 0, 0 }, \
417+ { "/boot/develop/headers/cpp", 0, 1, 1, 0, 0 }, \
418+ { "/boot/develop/headers/3rdparty", 0, 0, 0, 0, 0 }, \
419+ { "/boot/develop/headers/bsd", 0, 0, 0, 0, 0 }, \
420+ { "/boot/develop/headers/glibc", 0, 0, 0, 0, 0 }, \
421+ { "/boot/develop/headers/gnu", 0, 0, 0, 0, 0 }, \
422+ { "/boot/develop/headers/posix", 0, 0, 0, 0, 0 }, \
423+ { "/boot/develop/headers", 0, 0, 0, 0, 0 }, \
424+ { 0, 0, 0, 0, 0, 0 } \
425+ }
426+ #else /* CROSS_DIRECTORY_STRUCTURE */
427+ #undef INCLUDE_DEFAULTS
428+ #define INCLUDE_DEFAULTS \
429+ { \
430+ { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, 1, 0 }, \
431+ { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, 1, 0 }, \
432+ { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, 1, 0 }, \
433+ { GCC_INCLUDE_DIR, "GCC", 0, 0, 1, 0 }, \
434+ { FIXED_INCLUDE_DIR, "GCC", 0, 0, 1, 0 }, \
435+ { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 1, 0 }, \
436+ { CROSS_INCLUDE_DIR "/os", 0, 0, 0, 1, 0 }, \
437+ { CROSS_INCLUDE_DIR "/os/app", 0, 0, 0, 1, 0 }, \
438+ { CROSS_INCLUDE_DIR "/os/device", 0, 0, 0, 1, 0 }, \
439+ { CROSS_INCLUDE_DIR "/os/drivers", 0, 0, 0, 1, 0 }, \
440+ { CROSS_INCLUDE_DIR "/os/game", 0, 0, 0, 1, 0 }, \
441+ { CROSS_INCLUDE_DIR "/os/interface", 0, 0, 0, 1, 0 }, \
442+ { CROSS_INCLUDE_DIR "/os/kernel", 0, 0, 0, 1, 0 }, \
443+ { CROSS_INCLUDE_DIR "/os/locale", 0, 0, 0, 1, 0 }, \
444+ { CROSS_INCLUDE_DIR "/os/mail", 0, 0, 0, 1, 0 }, \
445+ { CROSS_INCLUDE_DIR "/os/media", 0, 0, 0, 1, 0 }, \
446+ { CROSS_INCLUDE_DIR "/os/midi", 0, 0, 0, 1, 0 }, \
447+ { CROSS_INCLUDE_DIR "/os/midi2", 0, 0, 0, 1, 0 }, \
448+ { CROSS_INCLUDE_DIR "/os/net", 0, 0, 0, 1, 0 }, \
449+ { CROSS_INCLUDE_DIR "/os/opengl", 0, 0, 0, 1, 0 }, \
450+ { CROSS_INCLUDE_DIR "/os/storage", 0, 0, 0, 1, 0 }, \
451+ { CROSS_INCLUDE_DIR "/os/support", 0, 0, 0, 1, 0 }, \
452+ { CROSS_INCLUDE_DIR "/os/translation", 0, 0, 0, 1, 0 }, \
453+ { CROSS_INCLUDE_DIR "/os/add-ons/graphics", 0, 0, 0, 1, 0 }, \
454+ { CROSS_INCLUDE_DIR "/os/add-ons/input_server", 0, 0, 0, 1, 0 }, \
455+ { CROSS_INCLUDE_DIR "/os/add-ons/screen_saver", 0, 0, 0, 1, 0 }, \
456+ { CROSS_INCLUDE_DIR "/os/add-ons/tracker", 0, 0, 0, 1, 0 }, \
457+ { CROSS_INCLUDE_DIR "/os/be_apps/Deskbar", 0, 0, 0, 1, 0 }, \
458+ { CROSS_INCLUDE_DIR "/os/be_apps/NetPositive", 0, 0, 0, 1, 0 }, \
459+ { CROSS_INCLUDE_DIR "/os/be_apps/Tracker", 0, 0, 0, 1, 0 }, \
460+ { CROSS_INCLUDE_DIR "/cpp", 0, 1, 1, 1, 0 }, \
461+ { CROSS_INCLUDE_DIR "/3rdparty", 0, 0, 0, 1, 0 }, \
462+ { CROSS_INCLUDE_DIR "/bsd", 0, 0, 0, 1, 0 }, \
463+ { CROSS_INCLUDE_DIR "/glibc", 0, 0, 0, 1, 0 }, \
464+ { CROSS_INCLUDE_DIR "/gnu", 0, 0, 0, 1, 0 }, \
465+ { CROSS_INCLUDE_DIR "/posix", 0, 0, 0, 1, 0 }, \
466+ { CROSS_INCLUDE_DIR , 0, 0, 0, 1, 0 }, \
467+ { 0, 0, 0, 0, 0, 0 } \
468+ }
469+ #endif /* CROSS_DIRECTORY_STRUCTURE */
470+
471+ /* Whee. LIBRARY_PATH is Be's LD_LIBRARY_PATH, which of course will
472+ cause nasty problems if we override it. */
473+ #define LIBRARY_PATH_ENV "BELIBRARIES"
474+
475+ /* Haiku doesn't have a separate math library. */
476+ #define MATH_LIBRARY ""
477+
478+ /* Haiku headers are C++-aware (and often use C++). */
479+ #define NO_IMPLICIT_EXTERN_C
480+
481+ /* Only allow -lssp for SSP, as -lssp_nonshared is problematic in Haiku */
482+ #ifndef TARGET_LIBC_PROVIDES_SSP
483+ #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all:-lssp}"
484+ #endif
485+
486+ /* Do not desire to have _Jv_RegisterClasses in crtbegin.o for Haiku */
487+ #define TARGET_USE_JCR_SECTION 0
488+
489+ /* Do not use TM clone registry in Haiku for now */
490+ #define USE_TM_CLONE_REGISTRY 0
491diff -Nrcpad gcc-4.7.2-orig/gcc/config/i386/haiku64.h gcc-4.7.2/gcc/config/i386/haiku64.h
492*** gcc-4.7.2-orig/gcc/config/i386/haiku64.h 1969-12-31 19:00:00.000000000 -0500
493--- gcc-4.7.2/gcc/config/i386/haiku64.h 2012-11-17 02:01:05.884232184 -0500
494***************
495*** 0 ****
496--- 1,133 ----
497+ /* Definitions for AMD x86_64 running Haiku with ELF format.
498+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004
499+ Free Software Foundation, Inc.
500+
501+ This file is part of GCC.
502+
503+ GCC is free software; you can redistribute it and/or modify
504+ it under the terms of the GNU General Public License as published by
505+ the Free Software Foundation; either version 2, or (at your option)
506+ any later version.
507+
508+ GCC is distributed in the hope that it will be useful,
509+ but WITHOUT ANY WARRANTY; without even the implied warranty of
510+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
511+ GNU General Public License for more details.
512+
513+ You should have received a copy of the GNU General Public License
514+ along with GCC; see the file COPYING. If not, write to
515+ the Free Software Foundation, 59 Temple Place - Suite 330,
516+ Boston, MA 02111-1307, USA. */
517+
518+
519+ #undef ASM_COMMENT_START
520+ #define ASM_COMMENT_START " #"
521+
522+ /* The SVR4 ABI for the i386 says that records and unions are returned
523+ * in memory. For 64-bit compilation this definition is ignored, however
524+ * it is necessary for correct 32-bit code generation.
525+ */
526+ #undef DEFAULT_PCC_STRUCT_RETURN
527+ #define DEFAULT_PCC_STRUCT_RETURN 1
528+
529+ #undef DBX_REGISTER_NUMBER
530+ #define DBX_REGISTER_NUMBER(n) \
531+ (TARGET_64BIT ? dbx64_register_map[n] : svr4_dbx_register_map[n])
532+
533+ #define TARGET_OS_CPP_BUILTINS() \
534+ do \
535+ { \
536+ builtin_define ("__HAIKU__"); \
537+ if (!TARGET_64BIT) \
538+ { \
539+ builtin_define ("__INTEL__"); \
540+ builtin_define ("__X86__"); \
541+ } \
542+ builtin_define ("__stdcall=__attribute__((__stdcall__))"); \
543+ builtin_define ("__cdecl=__attribute__((__cdecl__))"); \
544+ builtin_define ("__STDC_ISO_10646__=201103L"); \
545+ builtin_assert ("system=haiku"); \
546+ } \
547+ while (0)
548+
549+ /* Provide a LINK_SPEC appropriate for Haiku. Here we provide support
550+ for the special GCC options -static and -shared, which allow us to
551+ link things in one of these three modes by applying the appropriate
552+ combinations of options at link-time. */
553+
554+ #if TARGET_64BIT_DEFAULT
555+ #define SPEC_32 "m32"
556+ #define SPEC_64 "!m32"
557+ #else
558+ #define SPEC_32 "!m64"
559+ #define SPEC_64 "m64"
560+ #endif
561+
562+ #undef LINK_SPEC
563+ #define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386_haiku} \
564+ -shared %{nostart:-e 0} %{shared:-e 0} %{!shared: %{!nostart: -no-undefined}}"
565+
566+ /* A C statement (sans semicolon) to output to the stdio stream
567+ FILE the assembler definition of uninitialized global DECL named
568+ NAME whose size is SIZE bytes and alignment is ALIGN bytes.
569+ Try to use x86_output_aligned_bss to implement this macro. */
570+
571+ #define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
572+ x86_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN)
573+
574+ /* This is used to align code labels according to Intel recommendations. */
575+
576+ #ifdef HAVE_GAS_MAX_SKIP_P2ALIGN
577+ #define ASM_OUTPUT_MAX_SKIP_ALIGN(FILE,LOG,MAX_SKIP) \
578+ do { \
579+ if ((LOG) != 0) { \
580+ if ((MAX_SKIP) == 0) fprintf ((FILE), "\t.p2align %d\n", (LOG)); \
581+ else { \
582+ fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
583+ /* Make sure that we have at least 8 byte alignment if > 8 byte \
584+ alignment is preferred. */ \
585+ if ((LOG) > 3 \
586+ && (1 << (LOG)) > ((MAX_SKIP) + 1) \
587+ && (MAX_SKIP) >= 7) \
588+ fputs ("\t.p2align 3\n", (FILE)); \
589+ } \
590+ } \
591+ } while (0)
592+ #undef ASM_OUTPUT_MAX_SKIP_PAD
593+ #define ASM_OUTPUT_MAX_SKIP_PAD(FILE, LOG, MAX_SKIP) \
594+ if ((LOG) != 0) \
595+ { \
596+ if ((MAX_SKIP) == 0) \
597+ fprintf ((FILE), "\t.p2align %d\n", (LOG)); \
598+ else \
599+ fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
600+ }
601+ #endif
602+
603+
604+ /* Output assembler code to FILE to call the profiler. */
605+ #define NO_PROFILE_COUNTERS 1
606+
607+ #undef ASM_SPEC
608+ #define ASM_SPEC "%{v:-V} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} \
609+ %{Wa,*:%*} %{" SPEC_32 ":--32} %{" SPEC_64 ":--64}"
610+
611+ #undef ASM_OUTPUT_ALIGNED_COMMON
612+ #define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGN) \
613+ x86_elf_aligned_common (FILE, NAME, SIZE, ALIGN);
614+
615+
616+ /* i386 System V Release 4 uses DWARF debugging info.
617+ x86-64 ABI specifies DWARF2. */
618+
619+ #define DWARF2_DEBUGGING_INFO 1
620+ #define DWARF2_UNWIND_INFO 1
621+
622+ #undef PREFERRED_DEBUGGING_TYPE
623+ #define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
624+
625+ #undef TARGET_ASM_SELECT_SECTION
626+ #define TARGET_ASM_SELECT_SECTION x86_64_elf_select_section
627+
628+ #undef TARGET_ASM_UNIQUE_SECTION
629+ #define TARGET_ASM_UNIQUE_SECTION x86_64_elf_unique_section
630diff -Nrcpad gcc-4.7.2-orig/gcc/config/i386/haiku.h gcc-4.7.2/gcc/config/i386/haiku.h
631*** gcc-4.7.2-orig/gcc/config/i386/haiku.h 1969-12-31 19:00:00.000000000 -0500
632--- gcc-4.7.2/gcc/config/i386/haiku.h 2012-11-17 02:00:25.112233240 -0500
633***************
634*** 0 ****
635--- 1,77 ----
636+ /* Definitions for Intel x86 running Haiku
637+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004
638+ Free Software Foundation, Inc.
639+
640+ This file is part of GCC.
641+
642+ GCC is free software; you can redistribute it and/or modify
643+ it under the terms of the GNU General Public License as published by
644+ the Free Software Foundation; either version 2, or (at your option)
645+ any later version.
646+
647+ GCC is distributed in the hope that it will be useful,
648+ but WITHOUT ANY WARRANTY; without even the implied warranty of
649+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
650+ GNU General Public License for more details.
651+
652+ You should have received a copy of the GNU General Public License
653+ along with GCC; see the file COPYING. If not, write to
654+ the Free Software Foundation, 59 Temple Place - Suite 330,
655+ Boston, MA 02111-1307, USA. */
656+
657+
658+ #undef ASM_COMMENT_START
659+ #define ASM_COMMENT_START " #"
660+
661+ /* The SVR4 ABI for the i386 says that records and unions are returned
662+ in memory. */
663+ #undef DEFAULT_PCC_STRUCT_RETURN
664+ #define DEFAULT_PCC_STRUCT_RETURN 1
665+
666+ #undef DBX_REGISTER_NUMBER
667+ #define DBX_REGISTER_NUMBER(n) \
668+ (TARGET_64BIT ? dbx64_register_map[n] : svr4_dbx_register_map[n])
669+
670+ #define TARGET_OS_CPP_BUILTINS() \
671+ do \
672+ { \
673+ builtin_define ("__HAIKU__"); \
674+ builtin_define ("__INTEL__"); \
675+ builtin_define ("_X86_"); \
676+ builtin_define ("__stdcall=__attribute__((__stdcall__))"); \
677+ builtin_define ("__cdecl=__attribute__((__cdecl__))"); \
678+ builtin_define ("__STDC_ISO_10646__=201103L"); \
679+ builtin_assert ("system=haiku"); \
680+ } \
681+ while (0)
682+
683+ /* Provide a LINK_SPEC appropriate for Haiku. Here we provide support
684+ for the special GCC options -static and -shared, which allow us to
685+ link things in one of these three modes by applying the appropriate
686+ combinations of options at link-time. */
687+
688+ /* If ELF is the default format, we should not use /lib/elf. */
689+
690+ #undef LINK_SPEC
691+ #define LINK_SPEC "-m elf_i386_haiku -shared %{nostart:-e 0} %{shared:-e 0} %{!shared: %{!nostart: -no-undefined}}"
692+
693+ /* A C statement (sans semicolon) to output to the stdio stream
694+ FILE the assembler definition of uninitialized global DECL named
695+ NAME whose size is SIZE bytes and alignment is ALIGN bytes.
696+ Try to use asm_output_aligned_bss to implement this macro. */
697+
698+ #define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
699+ asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN)
700+
701+ /* A C statement to output to the stdio stream FILE an assembler
702+ command to advance the location counter to a multiple of 1<<LOG
703+ bytes if it is within MAX_SKIP bytes.
704+
705+ This is used to align code labels according to Intel recommendations. */
706+
707+ #ifdef HAVE_GAS_MAX_SKIP_P2ALIGN
708+ #define ASM_OUTPUT_MAX_SKIP_ALIGN(FILE,LOG,MAX_SKIP) \
709+ if ((LOG)!=0) \
710+ if ((MAX_SKIP)==0) fprintf ((FILE), "\t.p2align %d\n", (LOG)); \
711+ else fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP))
712+ #endif
713diff -Nrcpad gcc-4.7.2-orig/gcc/config/i386/t-haiku64 gcc-4.7.2/gcc/config/i386/t-haiku64
714*** gcc-4.7.2-orig/gcc/config/i386/t-haiku64 1969-12-31 19:00:00.000000000 -0500
715--- gcc-4.7.2/gcc/config/i386/t-haiku64 2012-11-24 00:55:59.001223992 -0500
716***************
717*** 0 ****
718--- 1,2 ----
719+ MULTILIB_OPTIONS = m32
720+ MULTILIB_DIRNAMES = 32
721diff -Nrcpad gcc-4.7.2-orig/gcc/config/m68k/haiku.h gcc-4.7.2/gcc/config/m68k/haiku.h
722*** gcc-4.7.2-orig/gcc/config/m68k/haiku.h 1969-12-31 19:00:00.000000000 -0500
723--- gcc-4.7.2/gcc/config/m68k/haiku.h 2012-11-17 02:02:27.996230058 -0500
724***************
725*** 0 ****
726--- 1,268 ----
727+ /* Definitions for Motorola 68k running Haiku
728+ Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2007
729+ Free Software Foundation, Inc.
730+
731+ This file is part of GCC.
732+
733+ GCC is free software; you can redistribute it and/or modify
734+ it under the terms of the GNU General Public License as published by
735+ the Free Software Foundation; either version 2, or (at your option)
736+ any later version.
737+
738+ GCC is distributed in the hope that it will be useful,
739+ but WITHOUT ANY WARRANTY; without even the implied warranty of
740+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
741+ GNU General Public License for more details.
742+
743+ You should have received a copy of the GNU General Public License
744+ along with GCC; see the file COPYING. If not, write to
745+ the Free Software Foundation, 51 Franklin Street, Fifth Floor,
746+ Boston, MA 02110-1301, USA. */
747+
748+
749+ /* Default target comes from config.gcc. */
750+
751+ #undef TARGET_DEFAULT
752+ #ifdef TARGET_CPU_DEFAULT
753+ #define TARGET_DEFAULT TARGET_CPU_DEFAULT
754+ #else
755+ #define TARGET_DEFAULT (MASK_BITFIELD|MASK_68881|MASK_68020)
756+ #endif
757+
758+ /* for 68k machines this only needs to be TRUE for the 68000 */
759+
760+ #undef STRICT_ALIGNMENT
761+ #define STRICT_ALIGNMENT 0
762+
763+ /* Here are four prefixes that are used by asm_fprintf to
764+ facilitate customization for alternate assembler syntaxes.
765+ Machines with no likelihood of an alternate syntax need not
766+ define these and need not use asm_fprintf. */
767+
768+ /* The prefix for register names. Note that REGISTER_NAMES
769+ is supposed to include this prefix. Also note that this is NOT an
770+ fprintf format string, it is a literal string */
771+
772+ #undef REGISTER_PREFIX
773+ #define REGISTER_PREFIX "%"
774+
775+ /* The prefix for local (compiler generated) labels.
776+ These labels will not appear in the symbol table. */
777+
778+ #undef LOCAL_LABEL_PREFIX
779+ #define LOCAL_LABEL_PREFIX "."
780+
781+ /* The prefix to add to user-visible assembler symbols. */
782+
783+ #undef USER_LABEL_PREFIX
784+ #define USER_LABEL_PREFIX ""
785+
786+ #undef ASM_COMMENT_START
787+ #define ASM_COMMENT_START "|"
788+
789+ /* Target OS builtins. */
790+
791+ #undef TARGET_OS_CPP_BUILTINS
792+ #define TARGET_OS_CPP_BUILTINS() \
793+ do \
794+ { \
795+ builtin_define ("__HAIKU__"); \
796+ builtin_define ("__M68K__"); \
797+ builtin_define_std ("mc68000"); \
798+ builtin_define_std ("mc68020"); \
799+ builtin_define ("__stdcall=__attribute__((__stdcall__))"); \
800+ builtin_define ("__cdecl=__attribute__((__cdecl__))"); \
801+ builtin_define ("__STDC_ISO_10646__=201103L"); \
802+ builtin_assert ("system=haiku"); \
803+ } \
804+ while (0)
805+
806+ #define TARGET_OBJFMT_CPP_BUILTINS() \
807+ do \
808+ { \
809+ builtin_define ("__ELF__"); \
810+ } \
811+ while (0)
812+
813+ #undef CPP_SPEC
814+ #if TARGET_DEFAULT & MASK_68881
815+ #define CPP_SPEC \
816+ "%{fPIC|fpic|fPIE|fpie:-D__PIC__ -D__pic__} %{!msoft-float:-D__HAVE_68881__} %{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
817+ #else
818+ #define CPP_SPEC \
819+ "%{fPIC|fpic|fPIE|fpie:-D__PIC__ -D__pic__} %{m68881:-D__HAVE_68881__} %{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
820+ #endif
821+
822+ /* We override the ASM_SPEC from svr4.h because we must pass -m68040 down
823+ to the assembler. */
824+ #undef ASM_SPEC
825+ #define ASM_SPEC \
826+ "%{v:-V} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*} \
827+ %{m68040} %{m68060:-m68040}"
828+
829+ /* Provide a LINK_SPEC appropriate for Haiku. Here we provide support
830+ for the special GCC options -static and -shared, which allow us to
831+ link things in one of these three modes by applying the appropriate
832+ combinations of options at link-time. */
833+
834+ /* If ELF is the default format, we should not use /lib/elf. */
835+
836+ #undef LINK_SPEC
837+ /*#define LINK_SPEC "%{!o*:-o %b} -m elf_m68k_haiku -shared -no-undefined %{nostart:-e 0}"*/
838+ #define LINK_SPEC "%{!o*:-o %b} -m m68kelf -shared -no-undefined %{nostart:-e 0}"
839+
840+ /* XXX: not sure for the rest there... */
841+
842+ /* Currently, JUMP_TABLES_IN_TEXT_SECTION must be defined in order to
843+ keep switch tables in the text section. */
844+
845+ #define JUMP_TABLES_IN_TEXT_SECTION 1
846+
847+ /* This is how to output an assembler line that says to advance the
848+ location counter to a multiple of 2**LOG bytes. */
849+
850+ /* Use the default action for outputting the case label. */
851+ #undef ASM_OUTPUT_CASE_LABEL
852+ #define ASM_RETURN_CASE_JUMP \
853+ do { \
854+ if (TARGET_COLDFIRE) \
855+ { \
856+ if (ADDRESS_REG_P (operands[0])) \
857+ return "jmp %%pc@(2,%0:l)"; \
858+ else \
859+ return "ext%.l %0\n\tjmp %%pc@(2,%0:l)"; \
860+ } \
861+ else \
862+ return "jmp %%pc@(2,%0:w)"; \
863+ } while (0)
864+
865+ #undef ASM_OUTPUT_ALIGN
866+ #define ASM_OUTPUT_ALIGN(FILE,LOG) \
867+ if ((LOG) > 0) \
868+ fprintf ((FILE), "%s%u\n", ALIGN_ASM_OP, 1 << (LOG));
869+
870+ /* If defined, a C expression whose value is a string containing the
871+ assembler operation to identify the following data as uninitialized global
872+ data. */
873+
874+ #define BSS_SECTION_ASM_OP "\t.section\t.bss"
875+
876+ /* A C statement (sans semicolon) to output to the stdio stream
877+ FILE the assembler definition of uninitialized global DECL named
878+ NAME whose size is SIZE bytes and alignment is ALIGN bytes.
879+ Try to use asm_output_aligned_bss to implement this macro. */
880+
881+ #define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
882+ asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN)
883+
884+ /* Output assembler code to FILE to increment profiler label # LABELNO
885+ for profiling a function entry. */
886+
887+ #undef FUNCTION_PROFILER
888+ #define FUNCTION_PROFILER(FILE, LABELNO) \
889+ { \
890+ asm_fprintf (FILE, "\tlea (%LLP%d,%Rpc),%Ra1\n", (LABELNO)); \
891+ if (flag_pic) \
892+ fprintf (FILE, "\tbsr.l _mcount@PLTPC\n"); \
893+ else \
894+ fprintf (FILE, "\tjbsr _mcount\n"); \
895+ }
896+
897+ /* How to renumber registers for dbx and gdb.
898+ On the Sun-3, the floating point registers have numbers
899+ 18 to 25, not 16 to 23 as they do in the compiler. */
900+
901+ #define DBX_REGISTER_NUMBER(REGNO) ((REGNO) < 16 ? (REGNO) : (REGNO) + 2)
902+
903+ /* Do not break .stabs pseudos into continuations. */
904+
905+ #define DBX_CONTIN_LENGTH 0
906+
907+ /* 1 if N is a possible register number for a function value. For
908+ m68k/SVR4 allow d0, a0, or fp0 as return registers, for integral,
909+ pointer, or floating types, respectively. Reject fp0 if not using
910+ a 68881 coprocessor. */
911+
912+ #undef FUNCTION_VALUE_REGNO_P
913+ #define FUNCTION_VALUE_REGNO_P(N) \
914+ ((N) == 0 || (N) == 8 || (TARGET_68881 && (N) == 16))
915+
916+ /* Define this to be true when FUNCTION_VALUE_REGNO_P is true for
917+ more than one register. */
918+
919+ #undef NEEDS_UNTYPED_CALL
920+ #define NEEDS_UNTYPED_CALL 1
921+
922+ /* Define how to generate (in the callee) the output value of a
923+ function and how to find (in the caller) the value returned by a
924+ function. VALTYPE is the data type of the value (as a tree). If
925+ the precise function being called is known, FUNC is its
926+ FUNCTION_DECL; otherwise, FUNC is 0. For m68k/SVR4 generate the
927+ result in d0, a0, or fp0 as appropriate. */
928+
929+ #undef FUNCTION_VALUE
930+ #define FUNCTION_VALUE(VALTYPE, FUNC) \
931+ (TREE_CODE (VALTYPE) == REAL_TYPE && TARGET_68881 \
932+ ? gen_rtx_REG (TYPE_MODE (VALTYPE), 16) \
933+ : (POINTER_TYPE_P (VALTYPE) \
934+ ? gen_rtx_REG (TYPE_MODE (VALTYPE), 8) \
935+ : gen_rtx_REG (TYPE_MODE (VALTYPE), 0)))
936+
937+ /* For compatibility with the large body of existing code which does
938+ not always properly declare external functions returning pointer
939+ types, the m68k/SVR4 convention is to copy the value returned for
940+ pointer functions from a0 to d0 in the function epilogue, so that
941+ callers that have neglected to properly declare the callee can
942+ still find the correct return value. */
943+
944+ #define FUNCTION_EXTRA_EPILOGUE(FILE, SIZE) \
945+ do { \
946+ if (current_function_returns_pointer \
947+ && ! find_equiv_reg (0, get_last_insn (), 0, 0, 0, 8, Pmode)) \
948+ asm_fprintf (FILE, "\tmove.l %Ra0,%Rd0\n"); \
949+ } while (0);
950+
951+ /* Define how to find the value returned by a library function
952+ assuming the value has mode MODE.
953+ For m68k/SVR4 look for integer values in d0, pointer values in d0
954+ (returned in both d0 and a0), and floating values in fp0. */
955+
956+ #undef LIBCALL_VALUE
957+ #define LIBCALL_VALUE(MODE) \
958+ ((((MODE) == SFmode || (MODE) == DFmode || (MODE) == XFmode) \
959+ && TARGET_68881) \
960+ ? gen_rtx_REG ((MODE), 16) \
961+ : gen_rtx_REG ((MODE), 0))
962+
963+ /* For m68k SVR4, structures are returned using the reentrant
964+ technique. */
965+ #undef PCC_STATIC_STRUCT_RETURN
966+ #define DEFAULT_PCC_STRUCT_RETURN 0
967+
968+ /* Finalize the trampoline by flushing the insn cache. */
969+
970+ #undef FINALIZE_TRAMPOLINE
971+ #define FINALIZE_TRAMPOLINE(TRAMP) \
972+ emit_library_call (gen_rtx_SYMBOL_REF (Pmode, "__clear_cache"), \
973+ 0, VOIDmode, 2, TRAMP, Pmode, \
974+ plus_constant (TRAMP, TRAMPOLINE_SIZE), Pmode);
975+
976+ /* Clear the instruction cache from `beg' to `end'. This makes an
977+ inline system call to SYS_cacheflush. The arguments are as
978+ follows:
979+
980+ cacheflush (addr, scope, cache, len)
981+
982+ addr - the start address for the flush
983+ scope - the scope of the flush (see the cpush insn)
984+ cache - which cache to flush (see the cpush insn)
985+ len - a factor relating to the number of flushes to perform:
986+ len/16 lines, or len/4096 pages. */
987+
988+ #define CLEAR_INSN_CACHE(BEG, END) \
989+ { \
990+ extern void clear_caches(void *address, int length, unsigned long flags); \
991+ void *ptr = BEG; \
992+ int len = (END - BEG + 32); \
993+ clear_caches(ptr, len, 0x0005); \
994+ }
995diff -Nrcpad gcc-4.7.2-orig/gcc/config/mips/haiku.h gcc-4.7.2/gcc/config/mips/haiku.h
996*** gcc-4.7.2-orig/gcc/config/mips/haiku.h 1969-12-31 19:00:00.000000000 -0500
997--- gcc-4.7.2/gcc/config/mips/haiku.h 2012-11-17 02:13:30.244212907 -0500
998***************
999*** 0 ****
1000--- 1,43 ----
1001+ /* Definitions for MIPS running Haiku
1002+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004
1003+ Free Software Foundation, Inc.
1004+
1005+ This file is part of GCC.
1006+
1007+ GCC is free software; you can redistribute it and/or modify
1008+ it under the terms of the GNU General Public License as published by
1009+ the Free Software Foundation; either version 2, or (at your option)
1010+ any later version.
1011+
1012+ GCC is distributed in the hope that it will be useful,
1013+ but WITHOUT ANY WARRANTY; without even the implied warranty of
1014+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1015+ GNU General Public License for more details.
1016+
1017+ You should have received a copy of the GNU General Public License
1018+ along with GCC; see the file COPYING. If not, write to
1019+ the Free Software Foundation, 59 Temple Place - Suite 330,
1020+ Boston, MA 02111-1307, USA. */
1021+
1022+
1023+ #define TARGET_OS_CPP_BUILTINS() \
1024+ do \
1025+ { \
1026+ builtin_define ("__HAIKU__"); \
1027+ builtin_define ("__MIPS__"); \
1028+ builtin_define ("__MIPSEL__"); \
1029+ builtin_define ("_MIPSEL_"); \
1030+ builtin_define ("__stdcall=__attribute__((__stdcall__))"); \
1031+ builtin_define ("__cdecl=__attribute__((__cdecl__))"); \
1032+ builtin_define ("__STDC_ISO_10646__=201103L"); \
1033+ builtin_assert ("system=haiku"); \
1034+ if (flag_pic) \
1035+ { \
1036+ builtin_define ("__PIC__"); \
1037+ builtin_define ("__pic__"); \
1038+ } \
1039+ } \
1040+ while (0)
1041+
1042+ #undef LINK_SPEC
1043+ #define LINK_SPEC "%{!o*:-o %b} -m elf_mipsel_haiku -shared %{nostart:-e 0}"
1044diff -Nrcpad gcc-4.7.2-orig/gcc/config/rs6000/haiku.h gcc-4.7.2/gcc/config/rs6000/haiku.h
1045*** gcc-4.7.2-orig/gcc/config/rs6000/haiku.h 1969-12-31 19:00:00.000000000 -0500
1046--- gcc-4.7.2/gcc/config/rs6000/haiku.h 2012-11-17 02:03:36.196228291 -0500
1047***************
1048*** 0 ****
1049--- 1,56 ----
1050+ /* Definitions for PowerPC running Haiku
1051+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005
1052+ Free Software Foundation, Inc.
1053+
1054+ This file is part of GCC.
1055+
1056+ GCC is free software; you can redistribute it and/or modify
1057+ it under the terms of the GNU General Public License as published by
1058+ the Free Software Foundation; either version 2, or (at your option)
1059+ any later version.
1060+
1061+ GCC is distributed in the hope that it will be useful,
1062+ but WITHOUT ANY WARRANTY; without even the implied warranty of
1063+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1064+ GNU General Public License for more details.
1065+
1066+ You should have received a copy of the GNU General Public License
1067+ along with GCC; see the file COPYING. If not, write to
1068+ the Free Software Foundation, 59 Temple Place - Suite 330,
1069+ Boston, MA 02111-1307, USA. */
1070+
1071+
1072+ /* long double is 128 bits wide; the documentation claims
1073+ LIBGCC2_LONG_DOUBLE_TYPE_SIZE to default to LONG_DOUBLE_TYPE_SIZE, but
1074+ it apparently does not */
1075+ /*#undef LONG_DOUBLE_TYPE_SIZE
1076+ #define LONG_DOUBLE_TYPE_SIZE 128
1077+ #undef LIBGCC2_LONG_DOUBLE_TYPE_SIZE
1078+ #define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 128*/
1079+
1080+ #undef TARGET_OS_CPP_BUILTINS
1081+ #define TARGET_OS_CPP_BUILTINS() \
1082+ do \
1083+ { \
1084+ builtin_define ("__HAIKU__"); \
1085+ builtin_define ("__POWERPC__"); \
1086+ builtin_define ("__powerpc__"); \
1087+ builtin_define ("__stdcall=__attribute__((__stdcall__))"); \
1088+ builtin_define ("__cdecl=__attribute__((__cdecl__))"); \
1089+ builtin_define ("__STDC_ISO_10646__=201103L"); \
1090+ builtin_assert ("system=haiku"); \
1091+ builtin_assert ("cpu=powerpc"); \
1092+ builtin_assert ("machine=powerpc"); \
1093+ TARGET_OS_SYSV_CPP_BUILTINS (); \
1094+ } \
1095+ while (0)
1096+
1097+ /* Provide a LINK_SPEC appropriate for Haiku. Here we provide support
1098+ for the special GCC options -static and -shared, which allow us to
1099+ link things in one of these three modes by applying the appropriate
1100+ combinations of options at link-time. */
1101+
1102+ /* If ELF is the default format, we should not use /lib/elf. */
1103+
1104+ #undef LINK_SPEC
1105+ #define LINK_SPEC "%{!o*:-o %b} -m elf_ppc_haiku -shared -no-undefined %{nostart:-e 0}"
1106diff -Nrcpad gcc-4.7.2-orig/gcc/config/t-haiku gcc-4.7.2/gcc/config/t-haiku
1107*** gcc-4.7.2-orig/gcc/config/t-haiku 1969-12-31 19:00:00.000000000 -0500
1108--- gcc-4.7.2/gcc/config/t-haiku 2012-11-24 20:11:59.000000000 -0500
1109***************
1110*** 0 ****
1111--- 1,4 ----
1112+ # There are system headers elsewhere, but these are the ones that
1113+ # we are most likely to want to apply any fixes to.
1114+ NATIVE_SYSTEM_HEADER_DIR = /boot/develop/headers
1115+ LIMITS_H_TEST = [ -f $(SYSTEM_HEADER_DIR)/posix/limits.h ]
1116diff -Nrcpad gcc-4.7.2-orig/gcc/config.gcc gcc-4.7.2/gcc/config.gcc
1117*** gcc-4.7.2-orig/gcc/config.gcc 2012-09-12 05:03:54.000000000 -0400
1118--- gcc-4.7.2/gcc/config.gcc 2012-11-24 20:55:57.464521652 -0500
1119*************** arm*-*-netbsdelf*)
1120*** 841,846 ****
1121--- 841,857 ----
1122 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1123 tmake_file="${tmake_file} arm/t-arm"
1124 ;;
1125+ arm*-*-haiku*)
1126+ tmake_file="${tmake_file} t-haiku arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-haiku"
1127+ tm_file="dbxelf.h elfos.h haiku.h arm/elf.h arm/bpabi.h arm/haiku.h"
1128+ # The BPABI long long divmod functions return a 128-bit value in
1129+ # registers r0-r3. Correctly modeling that requires the use of
1130+ # TImode.
1131+ need_64bit_hwint=yes
1132+ default_use_cxa_atexit=yes
1133+ native_system_header_dir=/boot/develop/headers
1134+ tm_file="${tm_file} arm/aout.h arm/arm.h"
1135+ ;;
1136 arm*-*-linux*) # ARM GNU/Linux with ELF
1137 tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h arm/elf.h arm/linux-gas.h arm/linux-elf.h"
1138 case $target in
1139*************** i[34567]86-*-freebsd*)
1140*** 1214,1219 ****
1141--- 1225,1240 ----
1142 x86_64-*-freebsd*)
1143 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/x86-64.h i386/freebsd.h i386/freebsd64.h"
1144 ;;
1145+ i[34567]86-*-haiku*)
1146+ tmake_file="${tmake_file} t-haiku"
1147+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h haiku.h i386/haiku.h"
1148+ native_system_header_dir=/boot/develop/headers
1149+ ;;
1150+ x86_64-*-haiku*)
1151+ tmake_file="${tmake_file} t-haiku i386/t-haiku64"
1152+ tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h haiku.h i386/haiku64.h"
1153+ native_system_header_dir=/boot/develop/headers
1154+ ;;
1155 i[34567]86-*-netbsdelf*)
1156 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h"
1157 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1158*************** m68k-*-rtems*)
1159*** 1702,1707 ****
1160--- 1723,1736 ----
1161 tm_file="${tm_file} m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h m68k/m68kemb.h m68k/m68020-elf.h m68k/rtemself.h rtems.h newlib-stdint.h"
1162 tm_defines="${tm_defines} MOTOROLA=1"
1163 ;;
1164+ m68k-*-haiku*)
1165+ default_m68k_cpu=68020
1166+ default_cf_cpu=5206
1167+ tmake_file="m68k/t-m68kbare m68k/t-crtstuff t-haiku" #??
1168+ tm_file="${tm_file} dbxelf.h elfos.h haiku.h m68k/haiku.h"
1169+ tm_defines="${tm_defines} MOTOROLA=1"
1170+ native_system_header_dir=/boot/develop/headers
1171+ ;;
1172 mcore-*-elf)
1173 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
1174 tmake_file=mcore/t-mcore
1175*************** mips-*-elf* | mipsel-*-elf*)
1176*** 1887,1892 ****
1177--- 1916,1926 ----
1178 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
1179 tmake_file="mips/t-elf"
1180 ;;
1181+ mipsel-*-haiku*)
1182+ tmake_file="mips/t-elf t-haiku"
1183+ tm_file="elfos.h ${tm_file} haiku.h mips/haiku.h"
1184+ native_system_header_dir=/boot/develop/headers
1185+ ;;
1186 mips64-*-elf* | mips64el-*-elf*)
1187 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
1188 tmake_file="mips/t-elf"
1189*************** powerpc-*-eabi*)
1190*** 2028,2033 ****
1191--- 2062,2073 ----
1192 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
1193 use_gcc_stdint=wrap
1194 ;;
1195+ powerpc-*-haiku*)
1196+ tmake_file="rs6000/t-fprules rs6000/t-ppcos rs6000/t-ppccomm t-haiku"
1197+ tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h rs6000/sysv4.h haiku.h rs6000/haiku.h"
1198+ extra_options="${extra_options} rs6000/sysv4.opt"
1199+ native_system_header_dir=/boot/develop/headers
1200+ ;;
1201 powerpc-*-rtems*)
1202 tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/rtems.h rtems.h"
1203 extra_options="${extra_options} rs6000/sysv4.opt"
1204diff -Nrcpad gcc-4.7.2-orig/gcc/configure gcc-4.7.2/gcc/configure
1205*** gcc-4.7.2-orig/gcc/configure 2012-09-13 09:32:31.000000000 -0400
1206--- gcc-4.7.2/gcc/configure 2012-11-16 19:33:38.520834244 -0500
1207*************** ac_includes_default="\
1208*** 599,604 ****
1209--- 599,605 ----
1210 #endif"
1211
1212 ac_subst_vars='LTLIBOBJS
1213+ math_library
1214 LIBOBJS
1215 enable_plugin
1216 pluginlibs
1217*************** ac_compiler_gnu=$ac_cv_c_compiler_gnu
1218*** 8793,8798 ****
1219--- 8794,8809 ----
1220 # --------
1221
1222
1223+ # Configure -lm usage for host tools that need it
1224+ math_library="-lm"
1225+ case $host in
1226+ *-*-haiku*)
1227+ # no separate math library needed
1228+ math_library=
1229+ ;;
1230+ esac
1231+
1232+
1233 # These libraries may be used by collect2.
1234 # We may need a special search path to get them linked.
1235 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for collect2 libraries" >&5
1236*************** case ${enable_threads} in
1237*** 11301,11307 ****
1238 # default
1239 target_thread_file='single'
1240 ;;
1241! aix | dce | lynx | mipssde | posix | rtems | \
1242 single | tpf | vxworks | win32)
1243 target_thread_file=${enable_threads}
1244 ;;
1245--- 11312,11318 ----
1246 # default
1247 target_thread_file='single'
1248 ;;
1249! aix | dce | haiku | lynx | mipssde | posix | rtems | \
1250 single | tpf | vxworks | win32)
1251 target_thread_file=${enable_threads}
1252 ;;
1253*************** haiku*)
1254*** 17213,17220 ****
1255 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
1256 soname_spec='${libname}${release}${shared_ext}$major'
1257 shlibpath_var=LIBRARY_PATH
1258! shlibpath_overrides_runpath=yes
1259! sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
1260 hardcode_into_libs=yes
1261 ;;
1262
1263--- 17224,17231 ----
1264 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
1265 soname_spec='${libname}${release}${shared_ext}$major'
1266 shlibpath_var=LIBRARY_PATH
1267! shlibpath_overrides_runpath=no
1268! sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
1269 hardcode_into_libs=yes
1270 ;;
1271
1272*************** haiku*)
1273*** 20872,20879 ****
1274 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
1275 soname_spec='${libname}${release}${shared_ext}$major'
1276 shlibpath_var=LIBRARY_PATH
1277! shlibpath_overrides_runpath=yes
1278! sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
1279 hardcode_into_libs=yes
1280 ;;
1281
1282--- 20883,20890 ----
1283 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
1284 soname_spec='${libname}${release}${shared_ext}$major'
1285 shlibpath_var=LIBRARY_PATH
1286! shlibpath_overrides_runpath=no
1287! sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
1288 hardcode_into_libs=yes
1289 ;;
1290
1291diff -Nrcpad gcc-4.7.2-orig/gcc/configure.ac gcc-4.7.2/gcc/configure.ac
1292*** gcc-4.7.2-orig/gcc/configure.ac 2012-09-13 09:32:31.000000000 -0400
1293--- gcc-4.7.2/gcc/configure.ac 2012-11-16 19:33:38.524834244 -0500
1294*************** AC_LANG_POP(C++)
1295*** 964,969 ****
1296--- 964,978 ----
1297 # UNSORTED
1298 # --------
1299
1300+ # Configure -lm usage for host tools that need it
1301+ math_library="-lm"
1302+ case $host in
1303+ *-*-haiku*)
1304+ # no separate math library needed
1305+ math_library=
1306+ ;;
1307+ esac
1308+
1309
1310 # These libraries may be used by collect2.
1311 # We may need a special search path to get them linked.
1312*************** case ${enable_threads} in
1313*** 1423,1429 ****
1314 # default
1315 target_thread_file='single'
1316 ;;
1317! aix | dce | lynx | mipssde | posix | rtems | \
1318 single | tpf | vxworks | win32)
1319 target_thread_file=${enable_threads}
1320 ;;
1321--- 1432,1438 ----
1322 # default
1323 target_thread_file='single'
1324 ;;
1325! aix | dce | haiku | lynx | mipssde | posix | rtems | \
1326 single | tpf | vxworks | win32)
1327 target_thread_file=${enable_threads}
1328 ;;
1329diff -Nrcpad gcc-4.7.2-orig/gcc/defaults.h gcc-4.7.2/gcc/defaults.h
1330*** gcc-4.7.2-orig/gcc/defaults.h 2012-08-14 09:59:04.000000000 -0400
1331--- gcc-4.7.2/gcc/defaults.h 2012-11-25 14:09:23.000000000 -0500
1332*************** see the files COPYING3 and COPYING.RUNTI
1333*** 402,409 ****
1334 #endif
1335
1336 /* This decision to use a .jcr section can be overridden by defining
1337! USE_JCR_SECTION to 0 in target file. This is necessary if target
1338! can define JCR_SECTION_NAME but does not have crtstuff or
1339 linker support for .jcr section. */
1340 #ifndef TARGET_USE_JCR_SECTION
1341 #ifdef JCR_SECTION_NAME
1342--- 402,409 ----
1343 #endif
1344
1345 /* This decision to use a .jcr section can be overridden by defining
1346! TARGET_USE_JCR_SECTION to 0 in target file. This is necessary if
1347! target can define JCR_SECTION_NAME but does not have crtstuff or
1348 linker support for .jcr section. */
1349 #ifndef TARGET_USE_JCR_SECTION
1350 #ifdef JCR_SECTION_NAME
1351*************** see the files COPYING3 and COPYING.RUNTI
1352*** 411,416 ****
1353--- 411,420 ----
1354 #else
1355 #define TARGET_USE_JCR_SECTION 0
1356 #endif
1357+ #else
1358+ #if !(TARGET_USE_JCR_SECTION)
1359+ #undef JCR_SECTION_NAME
1360+ #endif
1361 #endif
1362
1363 /* Number of hardware registers that go into the DWARF-2 unwind info.
1364diff -Nrcpad gcc-4.7.2-orig/gcc/ginclude/stdarg.h gcc-4.7.2/gcc/ginclude/stdarg.h
1365*** gcc-4.7.2-orig/gcc/ginclude/stdarg.h 2009-04-09 11:00:19.000000000 -0400
1366--- gcc-4.7.2/gcc/ginclude/stdarg.h 2012-11-16 19:33:52.748833876 -0500
1367*************** typedef __gnuc_va_list va_list;
1368*** 97,103 ****
1369 #ifndef _VA_LIST
1370 /* The macro _VA_LIST_T_H is used in the Bull dpx2 */
1371 #ifndef _VA_LIST_T_H
1372! /* The macro __va_list__ is used by BeOS. */
1373 #ifndef __va_list__
1374 typedef __gnuc_va_list va_list;
1375 #endif /* not __va_list__ */
1376--- 97,103 ----
1377 #ifndef _VA_LIST
1378 /* The macro _VA_LIST_T_H is used in the Bull dpx2 */
1379 #ifndef _VA_LIST_T_H
1380! /* The macro __va_list__ is used by BeOS and Haiku. */
1381 #ifndef __va_list__
1382 typedef __gnuc_va_list va_list;
1383 #endif /* not __va_list__ */
1384diff -Nrcpad gcc-4.7.2-orig/gcc/ginclude/stddef.h gcc-4.7.2/gcc/ginclude/stddef.h
1385*** gcc-4.7.2-orig/gcc/ginclude/stddef.h 2012-02-11 20:06:04.000000000 -0500
1386--- gcc-4.7.2/gcc/ginclude/stddef.h 2012-11-16 19:33:52.748833876 -0500
1387*************** typedef __PTRDIFF_TYPE__ ptrdiff_t;
1388*** 167,173 ****
1389 /* Define this type if we are doing the whole job,
1390 or if we want this type in particular. */
1391 #if defined (_STDDEF_H) || defined (__need_size_t)
1392! #ifndef __size_t__ /* BeOS */
1393 #ifndef __SIZE_T__ /* Cray Unicos/Mk */
1394 #ifndef _SIZE_T /* in case <sys/types.h> has defined it. */
1395 #ifndef _SYS_SIZE_T_H
1396--- 167,173 ----
1397 /* Define this type if we are doing the whole job,
1398 or if we want this type in particular. */
1399 #if defined (_STDDEF_H) || defined (__need_size_t)
1400! #ifndef __size_t__ /* BeOS, Haiku */
1401 #ifndef __SIZE_T__ /* Cray Unicos/Mk */
1402 #ifndef _SIZE_T /* in case <sys/types.h> has defined it. */
1403 #ifndef _SYS_SIZE_T_H
1404*************** typedef __PTRDIFF_TYPE__ ptrdiff_t;
1405*** 184,190 ****
1406 #ifndef _GCC_SIZE_T
1407 #ifndef _SIZET_
1408 #ifndef __size_t
1409! #define __size_t__ /* BeOS */
1410 #define __SIZE_T__ /* Cray Unicos/Mk */
1411 #define _SIZE_T
1412 #define _SYS_SIZE_T_H
1413--- 184,190 ----
1414 #ifndef _GCC_SIZE_T
1415 #ifndef _SIZET_
1416 #ifndef __size_t
1417! #define __size_t__ /* BeOS, Haiku */
1418 #define __SIZE_T__ /* Cray Unicos/Mk */
1419 #define _SIZE_T
1420 #define _SYS_SIZE_T_H
1421*************** typedef long ssize_t;
1422*** 244,250 ****
1423 /* Define this type if we are doing the whole job,
1424 or if we want this type in particular. */
1425 #if defined (_STDDEF_H) || defined (__need_wchar_t)
1426! #ifndef __wchar_t__ /* BeOS */
1427 #ifndef __WCHAR_T__ /* Cray Unicos/Mk */
1428 #ifndef _WCHAR_T
1429 #ifndef _T_WCHAR_
1430--- 244,250 ----
1431 /* Define this type if we are doing the whole job,
1432 or if we want this type in particular. */
1433 #if defined (_STDDEF_H) || defined (__need_wchar_t)
1434! #ifndef __wchar_t__ /* BeOS, Haiku */
1435 #ifndef __WCHAR_T__ /* Cray Unicos/Mk */
1436 #ifndef _WCHAR_T
1437 #ifndef _T_WCHAR_
1438*************** typedef long ssize_t;
1439*** 261,267 ****
1440 #ifndef ___int_wchar_t_h
1441 #ifndef __INT_WCHAR_T_H
1442 #ifndef _GCC_WCHAR_T
1443! #define __wchar_t__ /* BeOS */
1444 #define __WCHAR_T__ /* Cray Unicos/Mk */
1445 #define _WCHAR_T
1446 #define _T_WCHAR_
1447--- 261,267 ----
1448 #ifndef ___int_wchar_t_h
1449 #ifndef __INT_WCHAR_T_H
1450 #ifndef _GCC_WCHAR_T
1451! #define __wchar_t__ /* BeOS, Haiku */
1452 #define __WCHAR_T__ /* Cray Unicos/Mk */
1453 #define _WCHAR_T
1454 #define _T_WCHAR_
1455diff -Nrcpad gcc-4.7.2-orig/gcc/Makefile.in gcc-4.7.2/gcc/Makefile.in
1456*** gcc-4.7.2-orig/gcc/Makefile.in 2012-08-06 10:34:27.000000000 -0400
1457--- gcc-4.7.2/gcc/Makefile.in 2012-11-24 21:03:23.428534783 -0500
1458*************** $(genprogerr:%=build/gen%$(build_exeext)
1459*** 3943,3949 ****
1460 genprog = $(genprogerr) check checksum condmd
1461
1462 # These programs need libs over and above what they get from the above list.
1463! build/genautomata$(build_exeext) : BUILD_LIBS += -lm
1464
1465 # These programs are not linked with the MD reader.
1466 build/gengtype$(build_exeext) : build/gengtype-lex.o build/gengtype-parse.o \
1467--- 3943,3949 ----
1468 genprog = $(genprogerr) check checksum condmd
1469
1470 # These programs need libs over and above what they get from the above list.
1471! build/genautomata$(build_exeext) : BUILD_LIBS += @math_library@
1472
1473 # These programs are not linked with the MD reader.
1474 build/gengtype$(build_exeext) : build/gengtype-lex.o build/gengtype-parse.o \
1475diff -Nrcpad gcc-4.7.2-orig/libcpp/configure gcc-4.7.2/libcpp/configure
1476*** gcc-4.7.2-orig/libcpp/configure 2012-09-20 03:23:55.000000000 -0400
1477--- gcc-4.7.2/libcpp/configure 2012-11-16 19:33:52.756833875 -0500
1478*************** fi
1479*** 7370,7375 ****
1480--- 7370,7376 ----
1481 case $target in
1482 alpha*-*-* | \
1483 arm*-*-*eabi* | \
1484+ arm*-*-haiku* | \
1485 arm*-*-symbianelf* | \
1486 x86_64-*-* | \
1487 ia64-*-* | \
1488diff -Nrcpad gcc-4.7.2-orig/libcpp/configure.ac gcc-4.7.2/libcpp/configure.ac
1489*** gcc-4.7.2-orig/libcpp/configure.ac 2012-02-14 05:02:21.000000000 -0500
1490--- gcc-4.7.2/libcpp/configure.ac 2012-11-16 19:33:52.756833875 -0500
1491*************** m4_changequote(,)
1492*** 150,155 ****
1493--- 150,156 ----
1494 case $target in
1495 alpha*-*-* | \
1496 arm*-*-*eabi* | \
1497+ arm*-*-haiku* | \
1498 arm*-*-symbianelf* | \
1499 x86_64-*-* | \
1500 ia64-*-* | \
1501diff -Nrcpad gcc-4.7.2-orig/libgcc/config.host gcc-4.7.2/libgcc/config.host
1502*** gcc-4.7.2-orig/libgcc/config.host 2012-09-05 08:19:47.000000000 -0400
1503--- gcc-4.7.2/libgcc/config.host 2012-11-24 00:55:16.725222746 -0500
1504*************** arm*-*-freebsd*)
1505*** 324,329 ****
1506--- 324,332 ----
1507 arm*-*-netbsdelf*)
1508 tmake_file="$tmake_file arm/t-arm arm/t-netbsd t-slibgcc-gld-nover"
1509 ;;
1510+ arm-*-haiku*)
1511+ tm_file="${tm_file} arm/bpabi-lib.h"
1512+ ;;
1513 arm*-*-linux*) # ARM GNU/Linux with ELF
1514 tmake_file="${tmake_file} arm/t-arm t-fixedpoint-gnu-prefix"
1515 case ${host} in
1516*************** i[34567]86-*-freebsd*)
1517*** 532,537 ****
1518--- 535,548 ----
1519 x86_64-*-freebsd*)
1520 tmake_file="${tmake_file} i386/t-freebsd i386/t-crtstuff"
1521 ;;
1522+ i[34567]86-*-haiku*)
1523+ tmake_file="${tmake_file} i386/t-crtstuff t-libgcc-pic"
1524+ extra_parts="crtbegin.o crtend.o"
1525+ ;;
1526+ x86_64-*-haiku*)
1527+ tmake_file="${tmake_file} i386/t-crtstuff t-libgcc-pic"
1528+ extra_parts="crtbegin.o crtend.o"
1529+ ;;
1530 i[34567]86-*-netbsdelf*)
1531 ;;
1532 x86_64-*-netbsd*)
1533*************** m32r-*-linux*)
1534*** 703,708 ****
1535--- 714,721 ----
1536 m32rle-*-linux*)
1537 tmake_file="$tmake_file m32r/t-linux t-fdpbit"
1538 ;;
1539+ m68k-*-haiku*)
1540+ ;;
1541 m68k-*-elf* | fido-*-elf)
1542 tmake_file="$tmake_file m68k/t-floatlib"
1543 ;;
1544*************** mips*-*-linux*) # Linux MIPS, either
1545*** 757,762 ****
1546--- 770,778 ----
1547 ;;
1548 mips*-*-openbsd*)
1549 ;;
1550+ mips*-*-haiku*)
1551+ extra_parts="crtbegin.o crtend.o"
1552+ ;;
1553 mips*-sde-elf*)
1554 tmake_file="$tmake_file mips/t-crtstuff mips/t-mips16"
1555 case "${with_newlib}" in
1556*************** powerpc*-*-freebsd*)
1557*** 859,864 ****
1558--- 875,882 ----
1559 ;;
1560 esac
1561 ;;
1562+ powerpc-*-haiku*)
1563+ ;;
1564 powerpc-*-netbsd*)
1565 tmake_file="$tmake_file rs6000/t-netbsd rs6000/t-crtstuff"
1566 ;;
1567diff -Nrcpad gcc-4.7.2-orig/libgcc/crtstuff.c gcc-4.7.2/libgcc/crtstuff.c
1568*** gcc-4.7.2-orig/libgcc/crtstuff.c 2011-12-06 16:35:41.000000000 -0500
1569--- gcc-4.7.2/libgcc/crtstuff.c 2012-11-25 11:45:45.000000000 -0500
1570*************** call_ ## FUNC (void) \
1571*** 104,110 ****
1572--- 104,112 ----
1573 && defined(HAVE_LD_EH_FRAME_HDR) \
1574 && !defined(inhibit_libc) && !defined(CRTSTUFFT_O) \
1575 && defined(__GLIBC__) && __GLIBC__ >= 2
1576+ #ifndef __HAIKU__
1577 #include <link.h>
1578+ #endif
1579 /* uClibc pretends to be glibc 2.2 and DT_CONFIG is defined in its link.h.
1580 But it doesn't use PT_GNU_EH_FRAME ELF segment currently. */
1581 # if !defined(__UCLIBC__) \
1582diff -Nrcpad gcc-4.7.2-orig/libgomp/configure gcc-4.7.2/libgomp/configure
1583*** gcc-4.7.2-orig/libgomp/configure 2012-09-20 03:23:55.000000000 -0400
1584--- gcc-4.7.2/libgomp/configure 2012-11-16 19:33:52.764833875 -0500
1585*************** haiku*)
1586*** 10283,10290 ****
1587 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
1588 soname_spec='${libname}${release}${shared_ext}$major'
1589 shlibpath_var=LIBRARY_PATH
1590! shlibpath_overrides_runpath=yes
1591! sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
1592 hardcode_into_libs=yes
1593 ;;
1594
1595--- 10283,10290 ----
1596 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
1597 soname_spec='${libname}${release}${shared_ext}$major'
1598 shlibpath_var=LIBRARY_PATH
1599! shlibpath_overrides_runpath=no
1600! sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
1601 hardcode_into_libs=yes
1602 ;;
1603
1604*************** haiku*)
1605*** 13922,13929 ****
1606 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
1607 soname_spec='${libname}${release}${shared_ext}$major'
1608 shlibpath_var=LIBRARY_PATH
1609! shlibpath_overrides_runpath=yes
1610! sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
1611 hardcode_into_libs=yes
1612 ;;
1613
1614--- 13922,13929 ----
1615 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
1616 soname_spec='${libname}${release}${shared_ext}$major'
1617 shlibpath_var=LIBRARY_PATH
1618! shlibpath_overrides_runpath=no
1619! sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
1620 hardcode_into_libs=yes
1621 ;;
1622
1623diff -Nrcpad gcc-4.7.2-orig/libmudflap/configure gcc-4.7.2/libmudflap/configure
1624*** gcc-4.7.2-orig/libmudflap/configure 2012-08-06 10:34:27.000000000 -0400
1625--- gcc-4.7.2/libmudflap/configure 2012-11-16 19:33:52.768833875 -0500
1626*************** haiku*)
1627*** 9810,9817 ****
1628 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
1629 soname_spec='${libname}${release}${shared_ext}$major'
1630 shlibpath_var=LIBRARY_PATH
1631! shlibpath_overrides_runpath=yes
1632! sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
1633 hardcode_into_libs=yes
1634 ;;
1635
1636--- 9810,9817 ----
1637 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
1638 soname_spec='${libname}${release}${shared_ext}$major'
1639 shlibpath_var=LIBRARY_PATH
1640! shlibpath_overrides_runpath=no
1641! sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
1642 hardcode_into_libs=yes
1643 ;;
1644
1645diff -Nrcpad gcc-4.7.2-orig/libquadmath/configure gcc-4.7.2/libquadmath/configure
1646*** gcc-4.7.2-orig/libquadmath/configure 2012-05-31 14:57:56.000000000 -0400
1647--- gcc-4.7.2/libquadmath/configure 2012-11-16 19:33:52.776833875 -0500
1648*************** haiku*)
1649*** 9698,9705 ****
1650 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
1651 soname_spec='${libname}${release}${shared_ext}$major'
1652 shlibpath_var=LIBRARY_PATH
1653! shlibpath_overrides_runpath=yes
1654! sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
1655 hardcode_into_libs=yes
1656 ;;
1657
1658--- 9698,9705 ----
1659 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
1660 soname_spec='${libname}${release}${shared_ext}$major'
1661 shlibpath_var=LIBRARY_PATH
1662! shlibpath_overrides_runpath=no
1663! sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
1664 hardcode_into_libs=yes
1665 ;;
1666
1667diff -Nrcpad gcc-4.7.2-orig/libssp/configure gcc-4.7.2/libssp/configure
1668*** gcc-4.7.2-orig/libssp/configure 2012-08-06 10:34:27.000000000 -0400
1669--- gcc-4.7.2/libssp/configure 2012-11-16 19:33:52.780833875 -0500
1670*************** haiku*)
1671*** 9835,9842 ****
1672 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
1673 soname_spec='${libname}${release}${shared_ext}$major'
1674 shlibpath_var=LIBRARY_PATH
1675! shlibpath_overrides_runpath=yes
1676! sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
1677 hardcode_into_libs=yes
1678 ;;
1679
1680--- 9835,9842 ----
1681 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
1682 soname_spec='${libname}${release}${shared_ext}$major'
1683 shlibpath_var=LIBRARY_PATH
1684! shlibpath_overrides_runpath=no
1685! sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
1686 hardcode_into_libs=yes
1687 ;;
1688
1689diff -Nrcpad gcc-4.7.2-orig/libstdc++-v3/configure gcc-4.7.2/libstdc++-v3/configure
1690*** gcc-4.7.2-orig/libstdc++-v3/configure 2012-08-06 10:34:27.000000000 -0400
1691--- gcc-4.7.2/libstdc++-v3/configure 2012-11-16 19:33:52.804833874 -0500
1692*************** haiku*)
1693*** 10683,10690 ****
1694 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
1695 soname_spec='${libname}${release}${shared_ext}$major'
1696 shlibpath_var=LIBRARY_PATH
1697! shlibpath_overrides_runpath=yes
1698! sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
1699 hardcode_into_libs=yes
1700 ;;
1701
1702--- 10683,10690 ----
1703 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
1704 soname_spec='${libname}${release}${shared_ext}$major'
1705 shlibpath_var=LIBRARY_PATH
1706! shlibpath_overrides_runpath=no
1707! sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
1708 hardcode_into_libs=yes
1709 ;;
1710
1711*************** haiku*)
1712*** 14366,14373 ****
1713 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
1714 soname_spec='${libname}${release}${shared_ext}$major'
1715 shlibpath_var=LIBRARY_PATH
1716! shlibpath_overrides_runpath=yes
1717! sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
1718 hardcode_into_libs=yes
1719 ;;
1720
1721--- 14366,14373 ----
1722 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
1723 soname_spec='${libname}${release}${shared_ext}$major'
1724 shlibpath_var=LIBRARY_PATH
1725! shlibpath_overrides_runpath=no
1726! sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
1727 hardcode_into_libs=yes
1728 ;;
1729
1730*************** $as_echo "$ac_ld_relro" >&6; }
1731*** 45072,45077 ****
1732--- 45072,45649 ----
1733
1734 fi
1735 ;;
1736+ *haiku*)
1737+
1738+
1739+
1740+
1741+
1742+
1743+
1744+
1745+
1746+
1747+
1748+
1749+
1750+
1751+
1752+ for ac_header in nan.h ieeefp.h endian.h sys/isa_defs.h \
1753+ machine/endian.h machine/param.h sys/machine.h sys/types.h \
1754+ fp.h float.h endian.h inttypes.h locale.h float.h stdint.h
1755+ do
1756+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
1757+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
1758+ { echo "$as_me:$LINENO: checking for $ac_header" >&5
1759+ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
1760+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
1761+ echo $ECHO_N "(cached) $ECHO_C" >&6
1762+ fi
1763+ ac_res=`eval echo '${'$as_ac_Header'}'`
1764+ { echo "$as_me:$LINENO: result: $ac_res" >&5
1765+ echo "${ECHO_T}$ac_res" >&6; }
1766+ else
1767+ # Is the header compilable?
1768+ { echo "$as_me:$LINENO: checking $ac_header usability" >&5
1769+ echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
1770+ cat >conftest.$ac_ext <<_ACEOF
1771+ /* confdefs.h. */
1772+ _ACEOF
1773+ cat confdefs.h >>conftest.$ac_ext
1774+ cat >>conftest.$ac_ext <<_ACEOF
1775+ /* end confdefs.h. */
1776+ $ac_includes_default
1777+ #include <$ac_header>
1778+ _ACEOF
1779+ rm -f conftest.$ac_objext
1780+ if { (ac_try="$ac_compile"
1781+ case "(($ac_try" in
1782+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
1783+ *) ac_try_echo=$ac_try;;
1784+ esac
1785+ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
1786+ (eval "$ac_compile") 2>conftest.er1
1787+ ac_status=$?
1788+ grep -v '^ *+' conftest.er1 >conftest.err
1789+ rm -f conftest.er1
1790+ cat conftest.err >&5
1791+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
1792+ (exit $ac_status); } && {
1793+ test -z "$ac_c_werror_flag" ||
1794+ test ! -s conftest.err
1795+ } && test -s conftest.$ac_objext; then
1796+ ac_header_compiler=yes
1797+ else
1798+ echo "$as_me: failed program was:" >&5
1799+ sed 's/^/| /' conftest.$ac_ext >&5
1800+
1801+ ac_header_compiler=no
1802+ fi
1803+
1804+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
1805+ { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
1806+ echo "${ECHO_T}$ac_header_compiler" >&6; }
1807+
1808+ # Is the header present?
1809+ { echo "$as_me:$LINENO: checking $ac_header presence" >&5
1810+ echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
1811+ cat >conftest.$ac_ext <<_ACEOF
1812+ /* confdefs.h. */
1813+ _ACEOF
1814+ cat confdefs.h >>conftest.$ac_ext
1815+ cat >>conftest.$ac_ext <<_ACEOF
1816+ /* end confdefs.h. */
1817+ #include <$ac_header>
1818+ _ACEOF
1819+ if { (ac_try="$ac_cpp conftest.$ac_ext"
1820+ case "(($ac_try" in
1821+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
1822+ *) ac_try_echo=$ac_try;;
1823+ esac
1824+ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
1825+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
1826+ ac_status=$?
1827+ grep -v '^ *+' conftest.er1 >conftest.err
1828+ rm -f conftest.er1
1829+ cat conftest.err >&5
1830+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
1831+ (exit $ac_status); } >/dev/null && {
1832+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
1833+ test ! -s conftest.err
1834+ }; then
1835+ ac_header_preproc=yes
1836+ else
1837+ echo "$as_me: failed program was:" >&5
1838+ sed 's/^/| /' conftest.$ac_ext >&5
1839+
1840+ ac_header_preproc=no
1841+ fi
1842+
1843+ rm -f conftest.err conftest.$ac_ext
1844+ { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
1845+ echo "${ECHO_T}$ac_header_preproc" >&6; }
1846+
1847+ # So? What about this header?
1848+ case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
1849+ yes:no: )
1850+ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
1851+ echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
1852+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
1853+ echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
1854+ ac_header_preproc=yes
1855+ ;;
1856+ no:yes:* )
1857+ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
1858+ echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
1859+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
1860+ echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
1861+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
1862+ echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
1863+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
1864+ echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
1865+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
1866+ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
1867+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
1868+ echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
1869+
1870+ ;;
1871+ esac
1872+ { echo "$as_me:$LINENO: checking for $ac_header" >&5
1873+ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
1874+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
1875+ echo $ECHO_N "(cached) $ECHO_C" >&6
1876+ else
1877+ eval "$as_ac_Header=\$ac_header_preproc"
1878+ fi
1879+ ac_res=`eval echo '${'$as_ac_Header'}'`
1880+ { echo "$as_me:$LINENO: result: $ac_res" >&5
1881+ echo "${ECHO_T}$ac_res" >&6; }
1882+
1883+ fi
1884+ if test `eval echo '${'$as_ac_Header'}'` = yes; then
1885+ cat >>confdefs.h <<_ACEOF
1886+ #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
1887+ _ACEOF
1888+
1889+ fi
1890+
1891+ done
1892+
1893+ SECTION_FLAGS='-ffunction-sections -fdata-sections'
1894+
1895+
1896+ cat >>confdefs.h <<\_ACEOF
1897+ #define HAVE_INT64_T 1
1898+ _ACEOF
1899+
1900+
1901+ cat >>confdefs.h <<\_ACEOF
1902+ #define HAVE_ACOSF 1
1903+ _ACEOF
1904+
1905+ cat >>confdefs.h <<\_ACEOF
1906+ #define HAVE_ASINF 1
1907+ _ACEOF
1908+
1909+ cat >>confdefs.h <<\_ACEOF
1910+ #define HAVE_ATANF 1
1911+ _ACEOF
1912+
1913+ cat >>confdefs.h <<\_ACEOF
1914+ #define HAVE_ATAN2F 1
1915+ _ACEOF
1916+
1917+ cat >>confdefs.h <<\_ACEOF
1918+ #define HAVE_CEILF 1
1919+ _ACEOF
1920+
1921+ cat >>confdefs.h <<\_ACEOF
1922+ #define HAVE_COPYSIGN 1
1923+ _ACEOF
1924+
1925+ cat >>confdefs.h <<\_ACEOF
1926+ #define HAVE_COPYSIGNF 1
1927+ _ACEOF
1928+
1929+ cat >>confdefs.h <<\_ACEOF
1930+ #define HAVE_COSF 1
1931+ _ACEOF
1932+
1933+ cat >>confdefs.h <<\_ACEOF
1934+ #define HAVE_COSHF 1
1935+ _ACEOF
1936+
1937+ cat >>confdefs.h <<\_ACEOF
1938+ #define HAVE_EXPF 1
1939+ _ACEOF
1940+
1941+ cat >>confdefs.h <<\_ACEOF
1942+ #define HAVE_FABSF 1
1943+ _ACEOF
1944+
1945+ cat >>confdefs.h <<\_ACEOF
1946+ #define HAVE_FINITE 1
1947+ _ACEOF
1948+
1949+ cat >>confdefs.h <<\_ACEOF
1950+ #define HAVE_FINITEF 1
1951+ _ACEOF
1952+
1953+ cat >>confdefs.h <<\_ACEOF
1954+ #define HAVE_FLOORF 1
1955+ _ACEOF
1956+
1957+ cat >>confdefs.h <<\_ACEOF
1958+ #define HAVE_FMODF 1
1959+ _ACEOF
1960+
1961+ cat >>confdefs.h <<\_ACEOF
1962+ #define HAVE_FREXPF 1
1963+ _ACEOF
1964+
1965+ cat >>confdefs.h <<\_ACEOF
1966+ #define HAVE_HYPOT 1
1967+ _ACEOF
1968+
1969+ cat >>confdefs.h <<\_ACEOF
1970+ #define HAVE_HYPOTF 1
1971+ _ACEOF
1972+
1973+ cat >>confdefs.h <<\_ACEOF
1974+ #define HAVE_ISINF 1
1975+ _ACEOF
1976+
1977+ cat >>confdefs.h <<\_ACEOF
1978+ #define HAVE_ISINFF 1
1979+ _ACEOF
1980+
1981+ cat >>confdefs.h <<\_ACEOF
1982+ #define HAVE_ISNAN 1
1983+ _ACEOF
1984+
1985+ cat >>confdefs.h <<\_ACEOF
1986+ #define HAVE_ISNANF 1
1987+ _ACEOF
1988+
1989+ cat >>confdefs.h <<\_ACEOF
1990+ #define HAVE_LOGF 1
1991+ _ACEOF
1992+
1993+ cat >>confdefs.h <<\_ACEOF
1994+ #define HAVE_LOG10F 1
1995+ _ACEOF
1996+
1997+ cat >>confdefs.h <<\_ACEOF
1998+ #define HAVE_MODFF 1
1999+ _ACEOF
2000+
2001+ cat >>confdefs.h <<\_ACEOF
2002+ #define HAVE_SINF 1
2003+ _ACEOF
2004+
2005+ cat >>confdefs.h <<\_ACEOF
2006+ #define HAVE_SINHF 1
2007+ _ACEOF
2008+
2009+ cat >>confdefs.h <<\_ACEOF
2010+ #define HAVE_SQRTF 1
2011+ _ACEOF
2012+
2013+ cat >>confdefs.h <<\_ACEOF
2014+ #define HAVE_TANF 1
2015+ _ACEOF
2016+
2017+ cat >>confdefs.h <<\_ACEOF
2018+ #define HAVE_TANHF 1
2019+ _ACEOF
2020+
2021+ ;;
2022+ *haiku*)
2023+
2024+
2025+
2026+
2027+
2028+
2029+
2030+
2031+
2032+
2033+
2034+
2035+
2036+
2037+
2038+ for ac_header in nan.h ieeefp.h endian.h sys/isa_defs.h \
2039+ machine/endian.h machine/param.h sys/machine.h sys/types.h \
2040+ fp.h float.h endian.h inttypes.h locale.h float.h stdint.h
2041+ do
2042+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
2043+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
2044+ { echo "$as_me:$LINENO: checking for $ac_header" >&5
2045+ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
2046+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
2047+ echo $ECHO_N "(cached) $ECHO_C" >&6
2048+ fi
2049+ ac_res=`eval echo '${'$as_ac_Header'}'`
2050+ { echo "$as_me:$LINENO: result: $ac_res" >&5
2051+ echo "${ECHO_T}$ac_res" >&6; }
2052+ else
2053+ # Is the header compilable?
2054+ { echo "$as_me:$LINENO: checking $ac_header usability" >&5
2055+ echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
2056+ cat >conftest.$ac_ext <<_ACEOF
2057+ /* confdefs.h. */
2058+ _ACEOF
2059+ cat confdefs.h >>conftest.$ac_ext
2060+ cat >>conftest.$ac_ext <<_ACEOF
2061+ /* end confdefs.h. */
2062+ $ac_includes_default
2063+ #include <$ac_header>
2064+ _ACEOF
2065+ rm -f conftest.$ac_objext
2066+ if { (ac_try="$ac_compile"
2067+ case "(($ac_try" in
2068+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
2069+ *) ac_try_echo=$ac_try;;
2070+ esac
2071+ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
2072+ (eval "$ac_compile") 2>conftest.er1
2073+ ac_status=$?
2074+ grep -v '^ *+' conftest.er1 >conftest.err
2075+ rm -f conftest.er1
2076+ cat conftest.err >&5
2077+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
2078+ (exit $ac_status); } && {
2079+ test -z "$ac_c_werror_flag" ||
2080+ test ! -s conftest.err
2081+ } && test -s conftest.$ac_objext; then
2082+ ac_header_compiler=yes
2083+ else
2084+ echo "$as_me: failed program was:" >&5
2085+ sed 's/^/| /' conftest.$ac_ext >&5
2086+
2087+ ac_header_compiler=no
2088+ fi
2089+
2090+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
2091+ { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
2092+ echo "${ECHO_T}$ac_header_compiler" >&6; }
2093+
2094+ # Is the header present?
2095+ { echo "$as_me:$LINENO: checking $ac_header presence" >&5
2096+ echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
2097+ cat >conftest.$ac_ext <<_ACEOF
2098+ /* confdefs.h. */
2099+ _ACEOF
2100+ cat confdefs.h >>conftest.$ac_ext
2101+ cat >>conftest.$ac_ext <<_ACEOF
2102+ /* end confdefs.h. */
2103+ #include <$ac_header>
2104+ _ACEOF
2105+ if { (ac_try="$ac_cpp conftest.$ac_ext"
2106+ case "(($ac_try" in
2107+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
2108+ *) ac_try_echo=$ac_try;;
2109+ esac
2110+ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
2111+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
2112+ ac_status=$?
2113+ grep -v '^ *+' conftest.er1 >conftest.err
2114+ rm -f conftest.er1
2115+ cat conftest.err >&5
2116+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
2117+ (exit $ac_status); } >/dev/null && {
2118+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
2119+ test ! -s conftest.err
2120+ }; then
2121+ ac_header_preproc=yes
2122+ else
2123+ echo "$as_me: failed program was:" >&5
2124+ sed 's/^/| /' conftest.$ac_ext >&5
2125+
2126+ ac_header_preproc=no
2127+ fi
2128+
2129+ rm -f conftest.err conftest.$ac_ext
2130+ { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
2131+ echo "${ECHO_T}$ac_header_preproc" >&6; }
2132+
2133+ # So? What about this header?
2134+ case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
2135+ yes:no: )
2136+ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
2137+ echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
2138+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
2139+ echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
2140+ ac_header_preproc=yes
2141+ ;;
2142+ no:yes:* )
2143+ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
2144+ echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
2145+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
2146+ echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
2147+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
2148+ echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
2149+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
2150+ echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
2151+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
2152+ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
2153+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
2154+ echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
2155+
2156+ ;;
2157+ esac
2158+ { echo "$as_me:$LINENO: checking for $ac_header" >&5
2159+ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
2160+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
2161+ echo $ECHO_N "(cached) $ECHO_C" >&6
2162+ else
2163+ eval "$as_ac_Header=\$ac_header_preproc"
2164+ fi
2165+ ac_res=`eval echo '${'$as_ac_Header'}'`
2166+ { echo "$as_me:$LINENO: result: $ac_res" >&5
2167+ echo "${ECHO_T}$ac_res" >&6; }
2168+
2169+ fi
2170+ if test `eval echo '${'$as_ac_Header'}'` = yes; then
2171+ cat >>confdefs.h <<_ACEOF
2172+ #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
2173+ _ACEOF
2174+
2175+ fi
2176+
2177+ done
2178+
2179+ SECTION_FLAGS='-ffunction-sections -fdata-sections'
2180+
2181+
2182+ cat >>confdefs.h <<\_ACEOF
2183+ #define HAVE_INT64_T 1
2184+ _ACEOF
2185+
2186+
2187+ cat >>confdefs.h <<\_ACEOF
2188+ #define HAVE_ACOSF 1
2189+ _ACEOF
2190+
2191+ cat >>confdefs.h <<\_ACEOF
2192+ #define HAVE_ASINF 1
2193+ _ACEOF
2194+
2195+ cat >>confdefs.h <<\_ACEOF
2196+ #define HAVE_ATANF 1
2197+ _ACEOF
2198+
2199+ cat >>confdefs.h <<\_ACEOF
2200+ #define HAVE_ATAN2F 1
2201+ _ACEOF
2202+
2203+ cat >>confdefs.h <<\_ACEOF
2204+ #define HAVE_CEILF 1
2205+ _ACEOF
2206+
2207+ cat >>confdefs.h <<\_ACEOF
2208+ #define HAVE_COPYSIGN 1
2209+ _ACEOF
2210+
2211+ cat >>confdefs.h <<\_ACEOF
2212+ #define HAVE_COPYSIGNF 1
2213+ _ACEOF
2214+
2215+ cat >>confdefs.h <<\_ACEOF
2216+ #define HAVE_COSF 1
2217+ _ACEOF
2218+
2219+ cat >>confdefs.h <<\_ACEOF
2220+ #define HAVE_COSHF 1
2221+ _ACEOF
2222+
2223+ cat >>confdefs.h <<\_ACEOF
2224+ #define HAVE_EXPF 1
2225+ _ACEOF
2226+
2227+ cat >>confdefs.h <<\_ACEOF
2228+ #define HAVE_FABSF 1
2229+ _ACEOF
2230+
2231+ cat >>confdefs.h <<\_ACEOF
2232+ #define HAVE_FINITE 1
2233+ _ACEOF
2234+
2235+ cat >>confdefs.h <<\_ACEOF
2236+ #define HAVE_FINITEF 1
2237+ _ACEOF
2238+
2239+ cat >>confdefs.h <<\_ACEOF
2240+ #define HAVE_FLOORF 1
2241+ _ACEOF
2242+
2243+ cat >>confdefs.h <<\_ACEOF
2244+ #define HAVE_FMODF 1
2245+ _ACEOF
2246+
2247+ cat >>confdefs.h <<\_ACEOF
2248+ #define HAVE_FREXPF 1
2249+ _ACEOF
2250+
2251+ cat >>confdefs.h <<\_ACEOF
2252+ #define HAVE_HYPOT 1
2253+ _ACEOF
2254+
2255+ cat >>confdefs.h <<\_ACEOF
2256+ #define HAVE_HYPOTF 1
2257+ _ACEOF
2258+
2259+ cat >>confdefs.h <<\_ACEOF
2260+ #define HAVE_ISINF 1
2261+ _ACEOF
2262+
2263+ cat >>confdefs.h <<\_ACEOF
2264+ #define HAVE_ISINFF 1
2265+ _ACEOF
2266+
2267+ cat >>confdefs.h <<\_ACEOF
2268+ #define HAVE_ISNAN 1
2269+ _ACEOF
2270+
2271+ cat >>confdefs.h <<\_ACEOF
2272+ #define HAVE_ISNANF 1
2273+ _ACEOF
2274+
2275+ cat >>confdefs.h <<\_ACEOF
2276+ #define HAVE_LOGF 1
2277+ _ACEOF
2278+
2279+ cat >>confdefs.h <<\_ACEOF
2280+ #define HAVE_LOG10F 1
2281+ _ACEOF
2282+
2283+ cat >>confdefs.h <<\_ACEOF
2284+ #define HAVE_MODFF 1
2285+ _ACEOF
2286+
2287+ cat >>confdefs.h <<\_ACEOF
2288+ #define HAVE_SINF 1
2289+ _ACEOF
2290+
2291+ cat >>confdefs.h <<\_ACEOF
2292+ #define HAVE_SINHF 1
2293+ _ACEOF
2294+
2295+ cat >>confdefs.h <<\_ACEOF
2296+ #define HAVE_SQRTF 1
2297+ _ACEOF
2298+
2299+ cat >>confdefs.h <<\_ACEOF
2300+ #define HAVE_TANF 1
2301+ _ACEOF
2302+
2303+ cat >>confdefs.h <<\_ACEOF
2304+ #define HAVE_TANHF 1
2305+ _ACEOF
2306+
2307+ ;;
2308 *-hpux*)
2309 SECTION_FLAGS='-ffunction-sections -fdata-sections'
2310
2311diff -Nrcpad gcc-4.7.2-orig/libstdc++-v3/crossconfig.m4 gcc-4.7.2/libstdc++-v3/crossconfig.m4
2312*** gcc-4.7.2-orig/libstdc++-v3/crossconfig.m4 2011-07-18 07:04:18.000000000 -0400
2313--- gcc-4.7.2/libstdc++-v3/crossconfig.m4 2012-11-16 19:33:52.804833874 -0500
2314*************** case "${host}" in
2315*** 99,104 ****
2316--- 99,146 ----
2317 AC_DEFINE(HAVE_ISNANL)
2318 fi
2319 ;;
2320+
2321+ *-haiku*)
2322+ AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
2323+ machine/endian.h machine/param.h sys/machine.h sys/types.h \
2324+ fp.h float.h endian.h inttypes.h locale.h float.h stdint.h])
2325+ SECTION_FLAGS='-ffunction-sections -fdata-sections'
2326+ AC_SUBST(SECTION_FLAGS)
2327+
2328+ AC_DEFINE(HAVE_INT64_T)
2329+
2330+ AC_DEFINE(HAVE_ACOSF)
2331+ AC_DEFINE(HAVE_ASINF)
2332+ AC_DEFINE(HAVE_ATANF)
2333+ AC_DEFINE(HAVE_ATAN2F)
2334+ AC_DEFINE(HAVE_CEILF)
2335+ AC_DEFINE(HAVE_COPYSIGN)
2336+ AC_DEFINE(HAVE_COPYSIGNF)
2337+ AC_DEFINE(HAVE_COSF)
2338+ AC_DEFINE(HAVE_COSHF)
2339+ AC_DEFINE(HAVE_EXPF)
2340+ AC_DEFINE(HAVE_FABSF)
2341+ AC_DEFINE(HAVE_FINITE)
2342+ AC_DEFINE(HAVE_FINITEF)
2343+ AC_DEFINE(HAVE_FLOORF)
2344+ AC_DEFINE(HAVE_FMODF)
2345+ AC_DEFINE(HAVE_FREXPF)
2346+ AC_DEFINE(HAVE_HYPOT)
2347+ AC_DEFINE(HAVE_HYPOTF)
2348+ AC_DEFINE(HAVE_ISINF)
2349+ AC_DEFINE(HAVE_ISINFF)
2350+ AC_DEFINE(HAVE_ISNAN)
2351+ AC_DEFINE(HAVE_ISNANF)
2352+ AC_DEFINE(HAVE_LOGF)
2353+ AC_DEFINE(HAVE_LOG10F)
2354+ AC_DEFINE(HAVE_MODFF)
2355+ AC_DEFINE(HAVE_SINF)
2356+ AC_DEFINE(HAVE_SINHF)
2357+ AC_DEFINE(HAVE_SQRTF)
2358+ AC_DEFINE(HAVE_TANF)
2359+ AC_DEFINE(HAVE_TANHF)
2360+ ;;
2361+
2362 *-hpux*)
2363 SECTION_FLAGS='-ffunction-sections -fdata-sections'
2364 AC_SUBST(SECTION_FLAGS)
2365diff -Nrcpad gcc-4.7.2-orig/libstdc++-v3/libsupc++/tinfo.cc gcc-4.7.2/libstdc++-v3/libsupc++/tinfo.cc
2366*** gcc-4.7.2-orig/libstdc++-v3/libsupc++/tinfo.cc 2011-09-27 02:03:58.000000000 -0400
2367--- gcc-4.7.2/libstdc++-v3/libsupc++/tinfo.cc 2012-11-16 19:33:52.804833874 -0500
2368*************** std::type_info::
2369*** 32,37 ****
2370--- 32,46 ----
2371 ~type_info ()
2372 { }
2373
2374+ #ifdef __HAIKU__
2375+ #ifndef __GXX_MERGED_TYPEINFO_NAMES
2376+ #define __GXX_MERGED_TYPEINFO_NAMES 0
2377+ #endif
2378+ #ifndef __GXX_TYPEINFO_EQUALITY_INLINE
2379+ #define __GXX_TYPEINFO_EQUALITY_INLINE 0
2380+ #endif
2381+ #endif
2382+
2383 #if !__GXX_TYPEINFO_EQUALITY_INLINE
2384
2385 // We can't rely on common symbols being shared between shared objects.
2386diff -Nrcpad gcc-4.7.2-orig/libtool.m4 gcc-4.7.2/libtool.m4
2387*** gcc-4.7.2-orig/libtool.m4 2012-08-06 10:34:27.000000000 -0400
2388--- gcc-4.7.2/libtool.m4 2012-11-16 19:33:52.808833874 -0500
2389*************** haiku*)
2390*** 2328,2335 ****
2391 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
2392 soname_spec='${libname}${release}${shared_ext}$major'
2393 shlibpath_var=LIBRARY_PATH
2394! shlibpath_overrides_runpath=yes
2395! sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
2396 hardcode_into_libs=yes
2397 ;;
2398
2399--- 2328,2335 ----
2400 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
2401 soname_spec='${libname}${release}${shared_ext}$major'
2402 shlibpath_var=LIBRARY_PATH
2403! shlibpath_overrides_runpath=no
2404! sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
2405 hardcode_into_libs=yes
2406 ;;
2407
2408diff -Nrcpad gcc-4.7.2-orig/lto-plugin/configure gcc-4.7.2/lto-plugin/configure
2409*** gcc-4.7.2-orig/lto-plugin/configure 2011-12-20 11:54:12.000000000 -0500
2410--- gcc-4.7.2/lto-plugin/configure 2012-11-16 19:33:52.816833874 -0500
2411*************** haiku*)
2412*** 9747,9754 ****
2413 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
2414 soname_spec='${libname}${release}${shared_ext}$major'
2415 shlibpath_var=LIBRARY_PATH
2416! shlibpath_overrides_runpath=yes
2417! sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
2418 hardcode_into_libs=yes
2419 ;;
2420
2421--- 9747,9754 ----
2422 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
2423 soname_spec='${libname}${release}${shared_ext}$major'
2424 shlibpath_var=LIBRARY_PATH
2425! shlibpath_overrides_runpath=no
2426! sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
2427 hardcode_into_libs=yes
2428 ;;
2429
2430diff -Nrcpad gcc-4.7.2-orig/Makefile.in gcc-4.7.2/Makefile.in
2431*** gcc-4.7.2-orig/Makefile.in 2012-08-06 10:34:27.000000000 -0400
2432--- gcc-4.7.2/Makefile.in 2012-11-16 19:33:52.832833873 -0500
2433*************** configure-mpfr:
2434*** 11269,11274 ****
2435--- 11269,11275 ----
2436 esac; \
2437 srcdiroption="--srcdir=$${topdir}/mpfr"; \
2438 libsrcdir="$$s/mpfr"; \
2439+ cp $(s)/gmp/gmp-impl.h $(s)/gmp/longlong.h ../gmp/ ; \
2440 $(SHELL) $${libsrcdir}/configure \
2441 $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
2442 --target=${target_alias} $${srcdiroption} --disable-shared @extra_mpfr_configure_flags@ \
2443*************** configure-stage1-mpfr:
2444*** 11302,11307 ****
2445--- 11303,11309 ----
2446 esac; \
2447 srcdiroption="--srcdir=$${topdir}/mpfr"; \
2448 libsrcdir="$$s/mpfr"; \
2449+ cp $(s)/gmp/gmp-impl.h $(s)/gmp/longlong.h ../gmp/ ; \
2450 $(SHELL) $${libsrcdir}/configure \
2451 $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
2452 --target=${target_alias} $${srcdiroption} \
2453*************** configure-stage2-mpfr:
2454*** 11335,11340 ****
2455--- 11337,11343 ----
2456 esac; \
2457 srcdiroption="--srcdir=$${topdir}/mpfr"; \
2458 libsrcdir="$$s/mpfr"; \
2459+ cp $(s)/gmp/gmp-impl.h $(s)/gmp/longlong.h ../gmp/ ; \
2460 $(SHELL) $${libsrcdir}/configure \
2461 $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
2462 --target=${target_alias} $${srcdiroption} \
2463*************** configure-stage2-mpfr:
2464*** 11343,11348 ****
2465--- 11346,11352 ----
2466 --disable-shared @extra_mpfr_configure_flags@
2467 @endif mpfr-bootstrap
2468
2469+
2470 .PHONY: configure-stage3-mpfr maybe-configure-stage3-mpfr
2471 maybe-configure-stage3-mpfr:
2472 @if mpfr-bootstrap
2473*************** configure-stage3-mpfr:
2474*** 11369,11374 ****
2475--- 11373,11379 ----
2476 esac; \
2477 srcdiroption="--srcdir=$${topdir}/mpfr"; \
2478 libsrcdir="$$s/mpfr"; \
2479+ cp $(s)/gmp/gmp-impl.h $(s)/gmp/longlong.h ../gmp/ ; \
2480 $(SHELL) $${libsrcdir}/configure \
2481 $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
2482 --target=${target_alias} $${srcdiroption} \
2483*************** configure-stage4-mpfr:
2484*** 11403,11408 ****
2485--- 11408,11414 ----
2486 esac; \
2487 srcdiroption="--srcdir=$${topdir}/mpfr"; \
2488 libsrcdir="$$s/mpfr"; \
2489+ cp $(s)/gmp/gmp-impl.h $(s)/gmp/longlong.h ../gmp/ ; \
2490 $(SHELL) $${libsrcdir}/configure \
2491 $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
2492 --target=${target_alias} $${srcdiroption} \
2493*************** configure-stageprofile-mpfr:
2494*** 11437,11442 ****
2495--- 11443,11449 ----
2496 esac; \
2497 srcdiroption="--srcdir=$${topdir}/mpfr"; \
2498 libsrcdir="$$s/mpfr"; \
2499+ cp $(s)/gmp/gmp-impl.h $(s)/gmp/longlong.h ../gmp/ ; \
2500 $(SHELL) $${libsrcdir}/configure \
2501 $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
2502 --target=${target_alias} $${srcdiroption} \
2503*************** configure-stagefeedback-mpfr:
2504*** 11471,11476 ****
2505--- 11478,11484 ----
2506 esac; \
2507 srcdiroption="--srcdir=$${topdir}/mpfr"; \
2508 libsrcdir="$$s/mpfr"; \
2509+ cp $(s)/gmp/gmp-impl.h $(s)/gmp/longlong.h ../gmp/ ; \
2510 $(SHELL) $${libsrcdir}/configure \
2511 $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
2512 --target=${target_alias} $${srcdiroption} \
2513diff -Nrcpad gcc-4.7.2-orig/zlib/configure gcc-4.7.2/zlib/configure
2514*** gcc-4.7.2-orig/zlib/configure 2012-08-06 10:34:27.000000000 -0400
2515--- gcc-4.7.2/zlib/configure 2012-11-16 19:33:52.836833873 -0500
2516*************** haiku*)
2517*** 9571,9578 ****
2518 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
2519 soname_spec='${libname}${release}${shared_ext}$major'
2520 shlibpath_var=LIBRARY_PATH
2521! shlibpath_overrides_runpath=yes
2522! sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
2523 hardcode_into_libs=yes
2524 ;;
2525
2526--- 9571,9578 ----
2527 library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
2528 soname_spec='${libname}${release}${shared_ext}$major'
2529 shlibpath_var=LIBRARY_PATH
2530! shlibpath_overrides_runpath=no
2531! sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
2532 hardcode_into_libs=yes
2533 ;;
2534