Ticket #10272: gcc4.8.2-for-x86-test-only-2.patch

File gcc4.8.2-for-x86-test-only-2.patch, 103.3 KB (added by mt, 5 years ago)

Patch from my current gcc 4.8.2 tree

Line 
1diff -Nrcpad gcc-4.8.2/Makefile.in gcc/Makefile.in
2*** gcc-4.8.2/Makefile.in   2013-03-30 20:25:03.000000000 +0900
3--- gcc/Makefile.in 2013-05-31 20:41:44.000000000 +0900
4*************** configure-mpfr:
5*** 11272,11277 ****
6--- 11272,11278 ----
7    esac; \
8    srcdiroption="--srcdir=$${topdir}/mpfr"; \
9    libsrcdir="$$s/mpfr"; \
10+   cp $(s)/gmp/gmp-impl.h $(s)/gmp/longlong.h ../gmp/ ; \
11    $(SHELL) $${libsrcdir}/configure \
12      $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
13      --target=${target_alias} $${srcdiroption} --disable-shared @extra_mpfr_configure_flags@ \
14*************** configure-stage1-mpfr:
15*** 11305,11310 ****
16--- 11306,11312 ----
17    esac; \
18    srcdiroption="--srcdir=$${topdir}/mpfr"; \
19    libsrcdir="$$s/mpfr"; \
20+   cp $(s)/gmp/gmp-impl.h $(s)/gmp/longlong.h ../gmp/ ; \
21    $(SHELL) $${libsrcdir}/configure \
22      $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
23      --target=${target_alias} $${srcdiroption} \
24*************** configure-stage2-mpfr:
25*** 11338,11343 ****
26--- 11340,11346 ----
27    esac; \
28    srcdiroption="--srcdir=$${topdir}/mpfr"; \
29    libsrcdir="$$s/mpfr"; \
30+   cp $(s)/gmp/gmp-impl.h $(s)/gmp/longlong.h ../gmp/ ; \
31    $(SHELL) $${libsrcdir}/configure \
32      $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
33      --target=${target_alias} $${srcdiroption} \
34*************** configure-stage2-mpfr:
35*** 11346,11351 ****
36--- 11349,11355 ----
37      --disable-shared @extra_mpfr_configure_flags@
38  @endif mpfr-bootstrap
39 
40+
41  .PHONY: configure-stage3-mpfr maybe-configure-stage3-mpfr
42  maybe-configure-stage3-mpfr:
43  @if mpfr-bootstrap
44*************** configure-stage3-mpfr:
45*** 11372,11377 ****
46--- 11376,11382 ----
47    esac; \
48    srcdiroption="--srcdir=$${topdir}/mpfr"; \
49    libsrcdir="$$s/mpfr"; \
50+   cp $(s)/gmp/gmp-impl.h $(s)/gmp/longlong.h ../gmp/ ; \
51    $(SHELL) $${libsrcdir}/configure \
52      $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
53      --target=${target_alias} $${srcdiroption} \
54*************** configure-stage4-mpfr:
55*** 11406,11411 ****
56--- 11411,11417 ----
57    esac; \
58    srcdiroption="--srcdir=$${topdir}/mpfr"; \
59    libsrcdir="$$s/mpfr"; \
60+   cp $(s)/gmp/gmp-impl.h $(s)/gmp/longlong.h ../gmp/ ; \
61    $(SHELL) $${libsrcdir}/configure \
62      $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
63      --target=${target_alias} $${srcdiroption} \
64*************** configure-stageprofile-mpfr:
65*** 11440,11445 ****
66--- 11446,11452 ----
67    esac; \
68    srcdiroption="--srcdir=$${topdir}/mpfr"; \
69    libsrcdir="$$s/mpfr"; \
70+   cp $(s)/gmp/gmp-impl.h $(s)/gmp/longlong.h ../gmp/ ; \
71    $(SHELL) $${libsrcdir}/configure \
72      $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
73      --target=${target_alias} $${srcdiroption} \
74*************** configure-stagefeedback-mpfr:
75*** 11474,11479 ****
76--- 11481,11487 ----
77    esac; \
78    srcdiroption="--srcdir=$${topdir}/mpfr"; \
79    libsrcdir="$$s/mpfr"; \
80+   cp $(s)/gmp/gmp-impl.h $(s)/gmp/longlong.h ../gmp/ ; \
81    $(SHELL) $${libsrcdir}/configure \
82      $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
83      --target=${target_alias} $${srcdiroption} \
84diff -Nrcpad gcc-4.8.2/config/acx.m4 gcc/config/acx.m4
85*** gcc-4.8.2/config/acx.m4 2011-12-18 18:58:37.000000000 +0900
86--- gcc/config/acx.m4   2013-02-11 20:58:27.000000000 +0900
87*************** dnl for the parameter format "cmp file1
88*** 402,425 ****
89  dnl accepted by cmp on some systems.
90  AC_DEFUN([ACX_PROG_CMP_IGNORE_INITIAL],
91  [AC_CACHE_CHECK([how to compare bootstrapped objects], gcc_cv_prog_cmp_skip,
92! [ echo abfoo >t1
93!   echo cdfoo >t2
94!   gcc_cv_prog_cmp_skip='tail +16c $$f1 > tmp-foo1; tail +16c $$f2 > tmp-foo2; cmp tmp-foo1 tmp-foo2'
95!   if cmp t1 t2 2 2 > /dev/null 2>&1; then
96!     if cmp t1 t2 1 1 > /dev/null 2>&1; then
97!       :
98!     else
99!       gcc_cv_prog_cmp_skip='cmp $$f1 $$f2 16 16'
100      fi
101!   fi
102!   if cmp --ignore-initial=2 t1 t2 > /dev/null 2>&1; then
103!     if cmp --ignore-initial=1 t1 t2 > /dev/null 2>&1; then
104!       :
105!     else
106!       gcc_cv_prog_cmp_skip='cmp --ignore-initial=16 $$f1 $$f2'
107      fi
108    fi
109-   rm t1 t2
110  ])
111  do_compare="$gcc_cv_prog_cmp_skip"
112  AC_SUBST(do_compare)
113--- 402,431 ----
114  dnl accepted by cmp on some systems.
115  AC_DEFUN([ACX_PROG_CMP_IGNORE_INITIAL],
116  [AC_CACHE_CHECK([how to compare bootstrapped objects], gcc_cv_prog_cmp_skip,
117! [# comparing object files via cmp doesn't work on haiku (files will seemingly
118!   # always differ), so we disassemble both files and compare the results:
119!   if uname -o | grep -iq haiku; then
120!     gcc_cv_prog_cmp_skip='objdump -Dz $$f1 | tail +6 >tmp-foo1; objdump -Dz $$f2 | tail +6 >tmp-foo2; cmp tmp-foo1 tmp-foo2'
121!   else
122!     gcc_cv_prog_cmp_skip='tail +16c $$f1 > tmp-foo1; tail +16c $$f2 > tmp-foo2; cmp tmp-foo1 tmp-foo2'
123!     echo abfoo >t1
124!     echo cdfoo >t2
125!     if cmp t1 t2 2 2 > /dev/null 2>&1; then
126!       if cmp t1 t2 1 1 > /dev/null 2>&1; then
127!         :
128!       else
129!         gcc_cv_prog_cmp_skip='cmp $$f1 $$f2 16 16'
130!       fi
131      fi
132!     if cmp --ignore-initial=2 t1 t2 > /dev/null 2>&1; then
133!       if cmp --ignore-initial=1 t1 t2 > /dev/null 2>&1; then
134!         :
135!       else
136!         gcc_cv_prog_cmp_skip='cmp --ignore-initial=16 $$f1 $$f2'
137!       fi
138      fi
139+     rm t1 t2
140    fi
141  ])
142  do_compare="$gcc_cv_prog_cmp_skip"
143  AC_SUBST(do_compare)
144diff -Nrcpad gcc-4.8.2/config.rpath gcc/config.rpath
145*** gcc-4.8.2/config.rpath  2011-02-13 20:45:53.000000000 +0900
146--- gcc/config.rpath    2013-02-11 20:58:27.000000000 +0900
147*************** if test "$with_gnu_ld" = yes; then
148*** 161,166 ****
149--- 161,168 ----
150        ;;
151      netbsd*)
152        ;;
153+     haiku*)
154+       ;;
155      solaris* | sysv5*)
156        if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then
157          ld_shlibs=no
158diff -Nrcpad gcc-4.8.2/configure gcc/configure
159*** gcc-4.8.2/configure 2013-09-03 21:13:42.000000000 +0900
160--- gcc/configure   2013-12-05 06:24:36.626468414 +0900
161*************** case "${host}" in
162*** 3029,3034 ****
163--- 3029,3037 ----
164    i[3456789]86-*-msdosdjgpp*)
165      noconfigdirs="$noconfigdirs tcl tk itcl"
166      ;;
167+   *-*-haiku*)
168+     noconfigdirs="$noconfigdirs tk itcl libgui gdb"
169+     ;;
170  esac
171 
172 
173*************** case "${target}" in
174*** 3334,3339 ****
175--- 3337,3345 ----
176    *-*-darwin*)
177      noconfigdirs="$noconfigdirs ${libgcj}"
178      ;;
179+   *-*-haiku*)
180+     noconfigdirs="$noconfigdirs ${libgcj}"
181+     ;;
182    *-*-netware*)
183      noconfigdirs="$noconfigdirs ${libgcj}"
184      ;;
185*************** case "${target}" in
186*** 3510,3515 ****
187--- 3516,3524 ----
188    *-*-freebsd*)
189      noconfigdirs="$noconfigdirs target-newlib target-libgloss"
190      ;;
191+   *-*-haiku*)
192+     noconfigdirs="$noconfigdirs target-newlib target-libgloss"
193+     ;;
194    *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu | *-*-kopensolaris*-gnu)
195      noconfigdirs="$noconfigdirs target-newlib target-libgloss"
196      ;;
197*************** case "${target}" in
198*** 3563,3568 ****
199--- 3572,3580 ----
200        with_gmp=/usr/local
201      fi
202      ;;
203+   *-*-haiku*)
204+     noconfigdirs="$noconfigdirs gdb target-libiberty"
205+     ;;
206    *-*-kaos*)
207      # Remove unsupported stuff on all kaOS configurations.
208      noconfigdirs="$noconfigdirs target-libgloss"
209*************** $as_echo_n "checking how to compare boot
210*** 5193,5217 ****
211  if test "${gcc_cv_prog_cmp_skip+set}" = set; then :
212    $as_echo_n "(cached) " >&6
213  else
214!    echo abfoo >t1
215!   echo cdfoo >t2
216!   gcc_cv_prog_cmp_skip='tail +16c $$f1 > tmp-foo1; tail +16c $$f2 > tmp-foo2; cmp tmp-foo1 tmp-foo2'
217!   if cmp t1 t2 2 2 > /dev/null 2>&1; then
218!     if cmp t1 t2 1 1 > /dev/null 2>&1; then
219!       :
220!     else
221!       gcc_cv_prog_cmp_skip='cmp $$f1 $$f2 16 16'
222      fi
223!   fi
224!   if cmp --ignore-initial=2 t1 t2 > /dev/null 2>&1; then
225!     if cmp --ignore-initial=1 t1 t2 > /dev/null 2>&1; then
226!       :
227!     else
228!       gcc_cv_prog_cmp_skip='cmp --ignore-initial=16 $$f1 $$f2'
229      fi
230!   fi
231!   rm t1 t2
232 
233  fi
234  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_prog_cmp_skip" >&5
235  $as_echo "$gcc_cv_prog_cmp_skip" >&6; }
236--- 5205,5235 ----
237  if test "${gcc_cv_prog_cmp_skip+set}" = set; then :
238    $as_echo_n "(cached) " >&6
239  else
240!   # comparing object files via cmp doesn't work on haiku (files will seemingly
241!   # always differ), so we disassemble both files and compare the results:
242!   if uname -o | grep -iq haiku; then
243!     gcc_cv_prog_cmp_skip='objdump -Dz $$f1 | tail +6 >tmp-foo1; objdump -Dz $$f2 | tail +6 >tmp-foo2; cmp tmp-foo1 tmp-foo2'
244!   else
245!     gcc_cv_prog_cmp_skip='tail +16c $$f1 > tmp-foo1; tail +16c $$f2 > tmp-foo2; cmp tmp-foo1 tmp-foo2'
246!     echo abfoo >t1
247!     echo cdfoo >t2
248!     if cmp t1 t2 2 2 > /dev/null 2>&1; then
249!       if cmp t1 t2 1 1 > /dev/null 2>&1; then
250!         :
251!       else
252!         gcc_cv_prog_cmp_skip='cmp $$f1 $$f2 16 16'
253!       fi
254      fi
255!     if cmp --ignore-initial=2 t1 t2 > /dev/null 2>&1; then
256!       if cmp --ignore-initial=1 t1 t2 > /dev/null 2>&1; then
257!         :
258!       else
259!         gcc_cv_prog_cmp_skip='cmp --ignore-initial=16 $$f1 $$f2'
260!       fi
261      fi
262!     rm t1 t2
263 
264+   fi
265  fi
266  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_prog_cmp_skip" >&5
267  $as_echo "$gcc_cv_prog_cmp_skip" >&6; }
268diff -Nrcpad gcc-4.8.2/gcc/Makefile.in gcc/gcc/Makefile.in
269*** gcc-4.8.2/gcc/Makefile.in   2013-07-08 18:14:34.000000000 +0900
270--- gcc/gcc/Makefile.in 2014-01-13 21:00:07.000000000 +0900
271*************** build_objdir := $(toplevel_builddir)/$(b
272*** 96,101 ****
273--- 96,103 ----
274  build_libobjdir := $(toplevel_builddir)/$(build_libsubdir)
275  target_objdir := $(toplevel_builddir)/$(target_subdir)
276 
277+ HYBRID_SECONDARY = @HYBRID_SECONDARY@
278+
279  # --------
280  # Defined vpaths
281  # --------
282*************** DRIVER_DEFINES = \
283*** 2039,2044 ****
284--- 2041,2050 ----
285    `test "X$${SHLIB}" = "X" || test "@enable_shared@" != "yes" || echo "-DENABLE_SHARED_LIBGCC"` \
286    -DCONFIGURE_SPECS="\"@CONFIGURE_SPECS@\""
287 
288+ ifneq ($(HYBRID_SECONDARY),)
289+ DRIVER_DEFINES += -DHYBRID_SECONDARY="\"$(HYBRID_SECONDARY)\""
290+ endif
291+
292  gcc.o: gcc.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) intl.h multilib.h \
293      Makefile $(lang_specs_files) specs.h prefix.h $(GCC_H) $(FLAGS_H) \
294      configargs.h $(OBSTACK_H) $(OPTS_H) $(DIAGNOSTIC_H) $(VEC_H) $(PARAMS_H)
295*************** $(genprogerr:%=build/gen%$(build_exeext)
296*** 3967,3973 ****
297  genprog = $(genprogerr) check checksum condmd
298 
299  # These programs need libs over and above what they get from the above list.
300! build/genautomata$(build_exeext) : BUILD_LIBS += -lm
301 
302  # These programs are not linked with the MD reader.
303  build/gengtype$(build_exeext) : build/gengtype-lex.o build/gengtype-parse.o \
304--- 3973,3979 ----
305  genprog = $(genprogerr) check checksum condmd
306 
307  # These programs need libs over and above what they get from the above list.
308! build/genautomata$(build_exeext) : BUILD_LIBS += @build_math_library@
309 
310  # These programs are not linked with the MD reader.
311  build/gengtype$(build_exeext) : build/gengtype-lex.o build/gengtype-parse.o \
312*************** PREPROCESSOR_DEFINES = \
313*** 4016,4021 ****
314--- 4022,4031 ----
315    -DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc/\" \
316    @TARGET_SYSTEM_ROOT_DEFINE@
317 
318+ ifneq ($(HYBRID_SECONDARY),)
319+ PREPROCESSOR_DEFINES += -DHYBRID_SECONDARY="\"$(HYBRID_SECONDARY)\""
320+ endif
321+
322  CFLAGS-cppbuiltin.o += $(PREPROCESSOR_DEFINES) -DBASEVER=$(BASEVER_s)
323  cppbuiltin.o: cppbuiltin.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
324    $(TARGET_H) $(TARGET_DEF) $(TREE_H) $(CPP_ID_DATA_H) \
325diff -Nrcpad gcc-4.8.2/gcc/config/arm/haiku.h gcc/gcc/config/arm/haiku.h
326*** gcc-4.8.2/gcc/config/arm/haiku.h    1970-01-01 09:00:00.000000000 +0900
327--- gcc/gcc/config/arm/haiku.h  2013-02-11 20:58:27.000000000 +0900
328***************
329*** 0 ****
330--- 1,82 ----
331+ /*    Definitions for ARM running Haiku systems using ELF
332+   Copyright (C) 1993, 1994, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
333+   2005 Free Software Foundation, Inc.
334+
335+   This file is part of GCC.
336+
337+   GCC is free software; you can redistribute it and/or modify
338+   it under the terms of the GNU General Public License as published by
339+   the Free Software Foundation; either version 2, or (at your option)
340+   any later version.
341+
342+   GCC is distributed in the hope that it will be useful,
343+   but WITHOUT ANY WARRANTY; without even the implied warranty of
344+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
345+   GNU General Public License for more details.
346+
347+   You should have received a copy of the GNU General Public License
348+   along with GCC; see the file COPYING.  If not, write to
349+   the Free Software Foundation, 59 Temple Place - Suite 330,
350+   Boston, MA 02111-1307, USA.  */
351+
352+ #undef TARGET_VERSION
353+ #define TARGET_VERSION fprintf (stderr, " (ARM Haiku/ELF)");
354+
355+ /* Unsigned chars produces much better code than signed.  */
356+ #define DEFAULT_SIGNED_CHAR  0
357+
358+ #undef  TARGET_DEFAULT_FLOAT_ABI
359+ #define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_SOFT
360+
361+ /* We default to the "aapcs-linux" ABI so that enums are int-sized by
362+    default.  */
363+ #undef  ARM_DEFAULT_ABI
364+ #define ARM_DEFAULT_ABI ARM_ABI_AAPCS_LINUX
365+
366+ /* bpabi.h sets FPUTYPE_DEFAULT to VFP */
367+
368+ #undef  MULTILIB_DEFAULTS
369+ #define MULTILIB_DEFAULTS \
370+   { "marm", "mlittle-endian", "msoft-float", "mno-thumb-interwork" }
371+
372+ /* Default is set by bpabi.h */
373+ /*
374+ #undef TARGET_DEFAULT
375+ */
376+
377+ #undef SUBTARGET_CPU_DEFAULT
378+ #define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
379+
380+ /* Now we define the strings used to build the spec file.  */
381+ /* interestingly, bpabi defines __GXX_TYPEINFO_EQUALITY_INLINE=0 too as we do. */
382+
383+ #undef TARGET_OS_CPP_BUILTINS
384+ #define TARGET_OS_CPP_BUILTINS()      \
385+   do                                  \
386+     {                                 \
387+       builtin_define ("__HAIKU__");                   \
388+       builtin_define ("__ARM__");                 \
389+       builtin_define ("__arm__");                 \
390+       builtin_define ("__stdcall=__attribute__((__stdcall__))");  \
391+       builtin_define ("__cdecl=__attribute__((__cdecl__))");      \
392+       builtin_define ("__STDC_ISO_10646__=201103L"); \
393+       builtin_assert ("system=haiku");                    \
394+       /* Haiku apparently doesn't support merging of symbols across shared \
395+        object boundaries. Hence we need to explicitly specify that \
396+          type_infos are not merged, so that they get compared by name \
397+          instead of by pointer. */ \
398+       builtin_define ("__GXX_MERGED_TYPEINFO_NAMES=0"); \
399+       /*builtin_define ("__GXX_TYPEINFO_EQUALITY_INLINE=0"); done in bpabi: */\
400+       TARGET_BPABI_CPP_BUILTINS();                    \
401+     }                                 \
402+   while (0)
403+
404+ /* Use the default LIBGCC_SPEC, not the empty version in haiku.h, as we
405+    do not use multilib (needed ??).  */
406+ #undef LIBGCC_SPEC
407+
408+ /* If ELF is the default format, we should not use /lib/elf.  */
409+
410+ #undef    LINK_SPEC
411+ #define LINK_SPEC "%{!o*:-o %b} -m armelf -shared -no-undefined %{nostart:-e 0} \
412+   %{mbig-endian:-EB} %{mlittle-endian:-EL} -X"
413diff -Nrcpad gcc-4.8.2/gcc/config/arm/t-haiku gcc/gcc/config/arm/t-haiku
414*** gcc-4.8.2/gcc/config/arm/t-haiku    1970-01-01 09:00:00.000000000 +0900
415--- gcc/gcc/config/arm/t-haiku  2013-02-11 20:58:27.000000000 +0900
416***************
417*** 0 ****
418--- 1,21 ----
419+ # build multilib for soft float and VFP
420+ # (unsure about how it should be done...)
421+ # mix from t-symbian & t-wince-pe
422+
423+ #LIB1ASMSRC = arm/lib1funcs.asm
424+ #LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _call_via_rX _interwork_call_via_rX
425+
426+
427+ #MULTILIB_OPTIONS    += mhard-float
428+ #MULTILIB_DIRNAMES   += fpu
429+
430+ MULTILIB_OPTIONS    += msoft-float
431+ MULTILIB_DIRNAMES   += fpu soft
432+ MULTILIB_EXCEPTIONS += *mthumb/*mhard-float*
433+
434+ MULTILIB_OPTIONS    += mfloat-abi=softfp
435+ MULTILIB_DIRNAMES   += softfp
436+
437+ #LIBGCC = stmp-multilib
438+ #INSTALL_LIBGCC = install-multilib
439+ #TARGET_LIBGCC2_CFLAGS =
440diff -Nrcpad gcc-4.8.2/gcc/config/haiku.h gcc/gcc/config/haiku.h
441*** gcc-4.8.2/gcc/config/haiku.h    1970-01-01 09:00:00.000000000 +0900
442--- gcc/gcc/config/haiku.h  2014-01-17 19:00:03.000000000 +0900
443***************
444*** 0 ****
445--- 1,212 ----
446+ /* Definitions of target machine for GCC.
447+    Common Haiku definitions for all architectures.
448+    Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005
449+    Free Software Foundation, Inc.
450+
451+ This file is part of GCC.
452+
453+ GCC is free software; you can redistribute it and/or modify
454+ it under the terms of the GNU General Public License as published by
455+ the Free Software Foundation; either version 2, or (at your option)
456+ any later version.
457+
458+ GCC is distributed in the hope that it will be useful,
459+ but WITHOUT ANY WARRANTY; without even the implied warranty of
460+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
461+ GNU General Public License for more details.
462+
463+ You should have received a copy of the GNU General Public License
464+ along with GCC; see the file COPYING.  If not, write to
465+ the Free Software Foundation, 59 Temple Place - Suite 330,
466+ Boston, MA 02111-1307, USA.  */
467+
468+
469+ /* Change debugging to Dwarf2.  */
470+ #undef PREFERRED_DEBUGGING_TYPE
471+ #define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
472+
473+ #undef MCOUNT_NAME
474+ #define MCOUNT_NAME "_mcount"
475+
476+ #define TARGET_DECLSPEC 1
477+
478+ #undef SIZE_TYPE
479+ #define SIZE_TYPE "long unsigned int"
480+
481+ #undef PTRDIFF_TYPE
482+ #define PTRDIFF_TYPE "long int"
483+
484+ #undef WCHAR_TYPE
485+ #define WCHAR_TYPE "int"
486+
487+ #undef WCHAR_TYPE_SIZE
488+ #define WCHAR_TYPE_SIZE 32
489+
490+ /* Haiku uses lots of multichars, so don't warn about them unless the
491+    user explicitly asks for the warnings with -Wmultichar.  Note that
492+    CC1_SPEC is used for both cc1 and cc1plus.  */
493+ #undef CC1_SPEC
494+ #define CC1_SPEC "%{!no-fpic:%{!fno-pic:%{!fno-pie:%{!fpie:%{!fPIC:%{!fPIE:-fpic}}}}}} %{!Wmultichar: -Wno-multichar} %(cc1_cpu) %{profile:-p}"
495+
496+ #undef CC1PLUS_SPEC
497+ #define CC1PLUS_SPEC "%{!Wctor-dtor-privacy:-Wno-ctor-dtor-privacy}"
498+
499+ /* LIB_SPEC for Haiku */
500+ #undef LIB_SPEC
501+ #define LIB_SPEC "-lroot"
502+
503+ /* gcc runtime lib is built into libroot.so on Haiku */
504+ /* ??? This is gonna be lovely when the next release of gcc has
505+    some new symbol in, so that links start failing.  */
506+ #undef LIBGCC_SPEC
507+ #define LIBGCC_SPEC ""
508+
509+
510+ #undef  STARTFILE_SPEC
511+ #define STARTFILE_SPEC "crti.o%s crtbegin.o%s %{!shared:%{!nostart:start_dyn.o%s}} init_term_dyn.o%s"
512+
513+ #undef  ENDFILE_SPEC
514+ #define ENDFILE_SPEC "crtend.o%s crtn.o%s"
515+
516+ #ifdef HYBRID_SECONDARY
517+ /* For a secondary compiler on a hybrid system, use alternative search paths.*/
518+ #define INCLUDE_DEFAULTS \
519+ { \
520+     { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, 0, 0 }, \
521+     { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, 0, 0 }, \
522+     { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, 0, 0 }, \
523+     { GCC_INCLUDE_DIR, "GCC", 0, 0, 0, 0 }, \
524+     { FIXED_INCLUDE_DIR, "GCC", 0, 0, 0, 0 }, \
525+     { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0 }, \
526+     { "/boot/system/non-packaged/develop/headers/" HYBRID_SECONDARY, 0, 0, 0, 1, 0 }, \
527+     { "/boot/system/develop/headers/os", 0, 0, 1, 1, 0 }, \
528+     { "/boot/system/develop/headers/os/app", 0, 0, 1, 1, 0 }, \
529+     { "/boot/system/develop/headers/os/device", 0, 0, 1, 1, 0 }, \
530+     { "/boot/system/develop/headers/os/drivers", 0, 0, 1, 1, 0 }, \
531+     { "/boot/system/develop/headers/os/game", 0, 0, 1, 1, 0 }, \
532+     { "/boot/system/develop/headers/os/interface", 0, 0, 1, 1, 0 }, \
533+     { "/boot/system/develop/headers/os/kernel", 0, 0, 1, 1, 0 }, \
534+     { "/boot/system/develop/headers/os/locale", 0, 0, 1, 1, 0 }, \
535+     { "/boot/system/develop/headers/os/mail", 0, 0, 1, 1, 0 }, \
536+     { "/boot/system/develop/headers/os/media", 0, 0, 1, 1, 0 }, \
537+     { "/boot/system/develop/headers/os/midi", 0, 0, 1, 1, 0 }, \
538+     { "/boot/system/develop/headers/os/midi2", 0, 0, 1, 1, 0 }, \
539+     { "/boot/system/develop/headers/os/net", 0, 0, 1, 1, 0 }, \
540+     { "/boot/system/develop/headers/os/opengl", 0, 0, 1, 1, 0 }, \
541+     { "/boot/system/develop/headers/os/storage", 0, 0, 1, 1, 0 }, \
542+     { "/boot/system/develop/headers/os/support", 0, 0, 1, 1, 0 }, \
543+     { "/boot/system/develop/headers/os/translation", 0, 0, 1, 1, 0 }, \
544+     { "/boot/system/develop/headers/os/add-ons/graphics", 0, 0, 1, 1, 0 }, \
545+     { "/boot/system/develop/headers/os/add-ons/input_server", 0, 0, 1, 1, 0 }, \
546+     { "/boot/system/develop/headers/os/add-ons/mail_daemon", 0, 0, 1, 1, 0 }, \
547+     { "/boot/system/develop/headers/os/add-ons/registrar", 0, 0, 1, 1, 0 }, \
548+     { "/boot/system/develop/headers/os/add-ons/screen_saver", 0, 0, 1, 1, 0 }, \
549+     { "/boot/system/develop/headers/os/add-ons/tracker", 0, 0, 1, 1, 0 }, \
550+     { "/boot/system/develop/headers/os/be_apps/Deskbar", 0, 0, 1, 1, 0 }, \
551+     { "/boot/system/develop/headers/os/be_apps/NetPositive", 0, 0, 1, 1, 0 }, \
552+     { "/boot/system/develop/headers/os/be_apps/Tracker", 0, 0, 1, 1, 0 }, \
553+     { "/boot/system/develop/headers/3rdparty", 0, 0, 0, 1, 0 }, \
554+     { "/boot/system/develop/headers/bsd", 0, 0, 1, 1, 0 }, \
555+     { "/boot/system/develop/headers/glibc", 0, 0, 1, 1, 0 }, \
556+     { "/boot/system/develop/headers/gnu", 0, 0, 1, 1, 0 }, \
557+     { "/boot/system/develop/headers/posix", 0, 0, 1, 1, 0 }, \
558+     { "/boot/system/develop/headers/" HYBRID_SECONDARY, 0, 0, 0, 1, 0 }, \
559+         /* Hybrid secondary folders for os kits not in base haiku package */\
560+     { "/boot/system/develop/headers/" HYBRID_SECONDARY "/os", 0, 0, 1, 1, 0 }, \
561+     { "/boot/system/develop/headers/" HYBRID_SECONDARY "/os/opengl", 0, 0, 1, 1, 0 }, \
562+     { "/boot/system/develop/headers", 0, 0, 0, 1, 0 }, \
563+     { 0, 0, 0, 0, 0, 0 } \
564+ }
565+ #else /* HYBRID_SECONDARY */
566+ /* For both native and cross compiler, use standard Haiku include file
567+    search paths.
568+    For a cross compiler, it is expected that an appropriate sysroot has
569+    been configured (e.g. /boot/system/develop/cross/x86) which will
570+    be appended to each search folder given below. */
571+ #define INCLUDE_DEFAULTS \
572+ { \
573+     { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, 0, 0 }, \
574+     { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, 0, 0 }, \
575+     { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, 0, 0 }, \
576+     { GCC_INCLUDE_DIR, "GCC", 0, 0, 0, 0 }, \
577+     { FIXED_INCLUDE_DIR, "GCC", 0, 0, 0, 0 }, \
578+     { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0 }, \
579+     { "/boot/system/non-packaged/develop/headers", 0, 0, 0, 1, 0 }, \
580+     { "/boot/system/develop/headers/os", 0, 0, 1, 1, 0 }, \
581+     { "/boot/system/develop/headers/os/app", 0, 0, 1, 1, 0 }, \
582+     { "/boot/system/develop/headers/os/device", 0, 0, 1, 1, 0 }, \
583+     { "/boot/system/develop/headers/os/drivers", 0, 0, 1, 1, 0 }, \
584+     { "/boot/system/develop/headers/os/game", 0, 0, 1, 1, 0 }, \
585+     { "/boot/system/develop/headers/os/interface", 0, 0, 1, 1, 0 }, \
586+     { "/boot/system/develop/headers/os/kernel", 0, 0, 1, 1, 0 }, \
587+     { "/boot/system/develop/headers/os/locale", 0, 0, 1, 1, 0 }, \
588+     { "/boot/system/develop/headers/os/mail", 0, 0, 1, 1, 0 }, \
589+     { "/boot/system/develop/headers/os/media", 0, 0, 1, 1, 0 }, \
590+     { "/boot/system/develop/headers/os/midi", 0, 0, 1, 1, 0 }, \
591+     { "/boot/system/develop/headers/os/midi2", 0, 0, 1, 1, 0 }, \
592+     { "/boot/system/develop/headers/os/net", 0, 0, 1, 1, 0 }, \
593+     { "/boot/system/develop/headers/os/opengl", 0, 0, 1, 1, 0 }, \
594+     { "/boot/system/develop/headers/os/storage", 0, 0, 1, 1, 0 }, \
595+     { "/boot/system/develop/headers/os/support", 0, 0, 1, 1, 0 }, \
596+     { "/boot/system/develop/headers/os/translation", 0, 0, 1, 1, 0 }, \
597+     { "/boot/system/develop/headers/os/add-ons/graphics", 0, 0, 1, 1, 0 }, \
598+     { "/boot/system/develop/headers/os/add-ons/input_server", 0, 0, 1, 1, 0 }, \
599+     { "/boot/system/develop/headers/os/add-ons/mail_daemon", 0, 0, 1, 1, 0 }, \
600+     { "/boot/system/develop/headers/os/add-ons/registrar", 0, 0, 1, 1, 0 }, \
601+     { "/boot/system/develop/headers/os/add-ons/screen_saver", 0, 0, 1, 1, 0 }, \
602+     { "/boot/system/develop/headers/os/add-ons/tracker", 0, 0, 1, 1, 0 }, \
603+     { "/boot/system/develop/headers/os/be_apps/Deskbar", 0, 0, 1, 1, 0 }, \
604+     { "/boot/system/develop/headers/os/be_apps/NetPositive", 0, 0, 1, 1, 0 }, \
605+     { "/boot/system/develop/headers/os/be_apps/Tracker", 0, 0, 1, 1, 0 }, \
606+     { "/boot/system/develop/headers/3rdparty", 0, 0, 0, 1, 0 }, \
607+       /* TODO: To be removed when libtiff has been outsourced. */\
608+     { "/boot/system/develop/headers/bsd", 0, 0, 1, 1, 0 }, \
609+     { "/boot/system/develop/headers/glibc", 0, 0, 1, 1, 0 }, \
610+     { "/boot/system/develop/headers/gnu", 0, 0, 1, 1, 0 }, \
611+     { "/boot/system/develop/headers/posix", 0, 0, 1, 1, 0 }, \
612+     { "/boot/system/develop/headers", 0, 0, 0, 1, 0 }, \
613+     { 0, 0, 0, 0, 0, 0 } \
614+ }
615+ #endif /* HYBRID_SECONDARY */
616+
617+ /* Whee.  LIBRARY_PATH is Be's LD_LIBRARY_PATH, which of course will
618+    cause nasty problems if we override it.  */
619+ #define LIBRARY_PATH_ENV        "BELIBRARIES"
620+
621+ /* With STANDARD_STARTFILE_PREFIX_{1,2} set to "/boot/common/develop/lib/"
622+    and "/boot/system/develop/lib/", MD_STARTFILE_PREFIX adds the last one of the
623+    standard paths. The user specific paths are set via LIBRARY_PATH_ENV. */
624+ #undef STANDARD_STARTFILE_PREFIX_1
625+ #undef STANDARD_STARTFILE_PREFIX_2
626+ #undef MD_STARTFILE_PREFIX
627+ #undef STARTFILE_PREFIX_SPEC
628+ #ifdef HYBRID_SECONDARY
629+ /* For a secondary compiler on a hybrid system, use alternative search paths.*/
630+ #define STANDARD_STARTFILE_PREFIX_1 \
631+   "/boot/common/develop/lib/" HYBRID_SECONDARY "/"
632+ #define STANDARD_STARTFILE_PREFIX_2 \
633+   "/boot/system/develop/lib/" HYBRID_SECONDARY "/"
634+ #define MD_STARTFILE_PREFIX \
635+   "/boot/common/non-packaged/develop/lib/" HYBRID_SECONDARY "/"
636+ #else /* HYBRID_SECONDARY */
637+ #define STANDARD_STARTFILE_PREFIX_1   "/boot/common/develop/lib/"
638+ #define STANDARD_STARTFILE_PREFIX_2   "/boot/system/develop/lib/"
639+ #define MD_STARTFILE_PREFIX           "/boot/common/non-packaged/develop/lib/"
640+ #endif /* HYBRID_SECONDARY */
641+
642+ /* Haiku doesn't have a separate math library.  */
643+ #define MATH_LIBRARY ""
644+
645+ /* Haiku headers are C++-aware (and often use C++).  */
646+ #define NO_IMPLICIT_EXTERN_C
647+
648+ /* Only allow -lssp for SSP, as -lssp_nonshared is problematic in Haiku */
649+ #ifndef TARGET_LIBC_PROVIDES_SSP
650+ #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all:-lssp}"
651+ #endif
652+
653+ /* Do not desire to have _Jv_RegisterClasses in crtbegin.o for Haiku */
654+ #define TARGET_USE_JCR_SECTION 0
655+
656+ /* Do not use TM clone registry in Haiku for now */
657+ #define USE_TM_CLONE_REGISTRY 0
658diff -Nrcpad gcc-4.8.2/gcc/config/i386/haiku.h gcc/gcc/config/i386/haiku.h
659*** gcc-4.8.2/gcc/config/i386/haiku.h   1970-01-01 09:00:00.000000000 +0900
660--- gcc/gcc/config/i386/haiku.h 2013-05-12 20:03:37.000000000 +0900
661***************
662*** 0 ****
663--- 1,77 ----
664+ /* Definitions for Intel x86 running Haiku
665+    Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004
666+    Free Software Foundation, Inc.
667+
668+ This file is part of GCC.
669+
670+ GCC is free software; you can redistribute it and/or modify
671+ it under the terms of the GNU General Public License as published by
672+ the Free Software Foundation; either version 2, or (at your option)
673+ any later version.
674+
675+ GCC is distributed in the hope that it will be useful,
676+ but WITHOUT ANY WARRANTY; without even the implied warranty of
677+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
678+ GNU General Public License for more details.
679+
680+ You should have received a copy of the GNU General Public License
681+ along with GCC; see the file COPYING.  If not, write to
682+ the Free Software Foundation, 59 Temple Place - Suite 330,
683+ Boston, MA 02111-1307, USA.  */
684+
685+
686+ #undef ASM_COMMENT_START
687+ #define ASM_COMMENT_START " #"
688+
689+ /* The SVR4 ABI for the i386 says that records and unions are returned
690+    in memory.  */
691+ #undef DEFAULT_PCC_STRUCT_RETURN
692+ #define DEFAULT_PCC_STRUCT_RETURN 1
693+
694+ #undef DBX_REGISTER_NUMBER
695+ #define DBX_REGISTER_NUMBER(n) \
696+   (TARGET_64BIT ? dbx64_register_map[n] : svr4_dbx_register_map[n])
697+
698+ #define TARGET_OS_CPP_BUILTINS()                  \
699+   do                                  \
700+     {                                 \
701+   builtin_define ("__HAIKU__");                   \
702+   builtin_define ("__INTEL__");                   \
703+   builtin_define ("_X86_");                   \
704+   builtin_define ("__stdcall=__attribute__((__stdcall__))");  \
705+   builtin_define ("__cdecl=__attribute__((__cdecl__))");      \
706+     builtin_define ("__STDC_ISO_10646__=201103L"); \
707+   builtin_assert ("system=haiku");                    \
708+     }                                 \
709+   while (0)
710+
711+ /* Provide a LINK_SPEC appropriate for Haiku.  Here we provide support
712+    for the special GCC options -static and -shared, which allow us to
713+    link things in one of these three modes by applying the appropriate
714+    combinations of options at link-time.  */
715+
716+ /* If ELF is the default format, we should not use /lib/elf.  */
717+
718+ #undef    LINK_SPEC
719+ #define LINK_SPEC "-m elf_i386_haiku -shared %{nostart:-e 0} %{shared:-e 0} %{!shared: %{!nostart: -no-undefined}}"
720+
721+ /* A C statement (sans semicolon) to output to the stdio stream
722+    FILE the assembler definition of uninitialized global DECL named
723+    NAME whose size is SIZE bytes and alignment is ALIGN bytes.
724+    Try to use asm_output_aligned_bss to implement this macro.  */
725+
726+ #define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
727+   asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN)
728+
729+ /* A C statement to output to the stdio stream FILE an assembler
730+    command to advance the location counter to a multiple of 1<<LOG
731+    bytes if it is within MAX_SKIP bytes.
732+
733+    This is used to align code labels according to Intel recommendations.  */
734+
735+ #ifdef HAVE_GAS_MAX_SKIP_P2ALIGN
736+ #define ASM_OUTPUT_MAX_SKIP_ALIGN(FILE,LOG,MAX_SKIP) \
737+   if ((LOG)!=0) \
738+     if ((MAX_SKIP)==0) fprintf ((FILE), "\t.p2align %d\n", (LOG)); \
739+     else fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP))
740+ #endif
741diff -Nrcpad gcc-4.8.2/gcc/config/i386/haiku64.h gcc/gcc/config/i386/haiku64.h
742*** gcc-4.8.2/gcc/config/i386/haiku64.h 1970-01-01 09:00:00.000000000 +0900
743--- gcc/gcc/config/i386/haiku64.h   2014-01-12 14:31:23.148598277 +0900
744***************
745*** 0 ****
746--- 1,135 ----
747+ /* Definitions for AMD x86_64 running Haiku with ELF format.
748+    Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004
749+    Free Software Foundation, Inc.
750+
751+ This file is part of GCC.
752+
753+ GCC is free software; you can redistribute it and/or modify
754+ it under the terms of the GNU General Public License as published by
755+ the Free Software Foundation; either version 2, or (at your option)
756+ any later version.
757+
758+ GCC is distributed in the hope that it will be useful,
759+ but WITHOUT ANY WARRANTY; without even the implied warranty of
760+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
761+ GNU General Public License for more details.
762+
763+ You should have received a copy of the GNU General Public License
764+ along with GCC; see the file COPYING.  If not, write to
765+ the Free Software Foundation, 59 Temple Place - Suite 330,
766+ Boston, MA 02111-1307, USA.  */
767+
768+
769+ #undef ASM_COMMENT_START
770+ #define ASM_COMMENT_START " #"
771+
772+ /* The SVR4 ABI for the i386 says that records and unions are returned
773+  * in memory. For 64-bit compilation this definition is ignored, however
774+  * it is necessary for correct 32-bit code generation.
775+  */
776+ #undef DEFAULT_PCC_STRUCT_RETURN
777+ #define DEFAULT_PCC_STRUCT_RETURN 1
778+
779+ #undef DBX_REGISTER_NUMBER
780+ #define DBX_REGISTER_NUMBER(n) \
781+   (TARGET_64BIT ? dbx64_register_map[n] : svr4_dbx_register_map[n])
782+
783+ #define TARGET_OS_CPP_BUILTINS()                  \
784+   do                                  \
785+     {                                 \
786+       builtin_define ("__HAIKU__");                   \
787+       if (!TARGET_64BIT)                      \
788+         {                             \
789+           builtin_define ("__INTEL__");                   \
790+           builtin_define ("__X86__");                 \
791+         }                             \
792+       builtin_define ("__stdcall=__attribute__((__stdcall__))");  \
793+       builtin_define ("__cdecl=__attribute__((__cdecl__))");      \
794+       builtin_define ("__STDC_ISO_10646__=201103L");          \
795+       builtin_assert ("system=haiku");                    \
796+     }                                 \
797+   while (0)
798+
799+ /* Provide a LINK_SPEC appropriate for Haiku.  Here we provide support
800+    for the special GCC options -static and -shared, which allow us to
801+    link things in one of these three modes by applying the appropriate
802+    combinations of options at link-time.  */
803+
804+ #if TARGET_64BIT_DEFAULT
805+ #define SPEC_32 "m32"
806+ #define SPEC_64 "!m32"
807+ #else
808+ #define SPEC_32 "!m64"
809+ #define SPEC_64 "m64"
810+ #endif
811+
812+ #undef    LINK_SPEC
813+ #define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386_haiku} \
814+   -shared %{nostart:-e 0} %{shared:-e 0} %{!shared: %{!nostart: -no-undefined}}"
815+
816+ /* A C statement (sans semicolon) to output to the stdio stream
817+    FILE the assembler definition of uninitialized global DECL named
818+    NAME whose size is SIZE bytes and alignment is ALIGN bytes.
819+    Try to use x86_output_aligned_bss to implement this macro.  */
820+
821+ #define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
822+   x86_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN)
823+
824+ /* This is used to align code labels according to Intel recommendations.  */
825+
826+ #ifdef HAVE_GAS_MAX_SKIP_P2ALIGN
827+ #define ASM_OUTPUT_MAX_SKIP_ALIGN(FILE,LOG,MAX_SKIP)          \
828+   do {                                    \
829+     if ((LOG) != 0) {                         \
830+       if ((MAX_SKIP) == 0) fprintf ((FILE), "\t.p2align %d\n", (LOG));    \
831+       else {                              \
832+         fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP));   \
833+         /* Make sure that we have at least 8 byte alignment if > 8 byte   \
834+            alignment is preferred.  */                    \
835+         if ((LOG) > 3                         \
836+             && (1 << (LOG)) > ((MAX_SKIP) + 1)                \
837+             && (MAX_SKIP) >= 7)                       \
838+           fputs ("\t.p2align 3\n", (FILE));               \
839+       }                                   \
840+     }                                 \
841+   } while (0)
842+ #undef  ASM_OUTPUT_MAX_SKIP_PAD
843+ #define ASM_OUTPUT_MAX_SKIP_PAD(FILE, LOG, MAX_SKIP)          \
844+   if ((LOG) != 0)                         \
845+     {                                 \
846+       if ((MAX_SKIP) == 0)                        \
847+         fprintf ((FILE), "\t.p2align %d\n", (LOG));           \
848+       else                                \
849+         fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP));   \
850+     }
851+ #endif
852+
853+
854+ /* Output assembler code to FILE to call the profiler.  */
855+ #define NO_PROFILE_COUNTERS 1
856+
857+ #undef ASM_SPEC
858+ #define ASM_SPEC "%{v:-V} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} \
859+  %{Wa,*:%*} %{" SPEC_32 ":--32} %{" SPEC_64 ":--64}"
860+
861+ #undef  ASM_OUTPUT_ALIGNED_COMMON
862+ #define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGN)        \
863+   x86_elf_aligned_common (FILE, NAME, SIZE, ALIGN);
864+
865+
866+ /* i386 System V Release 4 uses DWARF debugging info.
867+    x86-64 ABI specifies DWARF2.  */
868+
869+ #define DWARF2_DEBUGGING_INFO 1
870+ #define DWARF2_UNWIND_INFO 1
871+
872+ #undef PREFERRED_DEBUGGING_TYPE
873+ #define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
874+
875+ #undef TARGET_ASM_SELECT_SECTION
876+ #define TARGET_ASM_SELECT_SECTION  x86_64_elf_select_section
877+
878+ #undef TARGET_ASM_UNIQUE_SECTION
879+ #define TARGET_ASM_UNIQUE_SECTION  x86_64_elf_unique_section
880+
881+ #define USE_X86_64_FRAME_POINTER 1
882diff -Nrcpad gcc-4.8.2/gcc/config/i386/t-haiku64 gcc/gcc/config/i386/t-haiku64
883*** gcc-4.8.2/gcc/config/i386/t-haiku64 1970-01-01 09:00:00.000000000 +0900
884--- gcc/gcc/config/i386/t-haiku64   2014-01-12 14:31:23.168598275 +0900
885***************
886*** 0 ****
887--- 1,16 ----
888+ MULTILIB_OPTIONS = m32
889+ MULTILIB_DIRNAMES = 32
890+
891+ LIBGCC = stmp-multilib
892+ INSTALL_LIBGCC = install-multilib
893+
894+ EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o
895+
896+ # The pushl in CTOR initialization interferes with frame pointer elimination.
897+ # crtend*.o cannot be compiled without -fno-asynchronous-unwind-tables,
898+ # because then __FRAME_END__ might not be the last thing in .eh_frame
899+ # section.
900+ CRTSTUFF_T_CFLAGS = -fno-omit-frame-pointer -fno-asynchronous-unwind-tables
901+
902+ # Compile libgcc2.a with pic.
903+ TARGET_LIBGCC2_CFLAGS = -fPIC
904diff -Nrcpad gcc-4.8.2/gcc/config/m68k/haiku.h gcc/gcc/config/m68k/haiku.h
905*** gcc-4.8.2/gcc/config/m68k/haiku.h   1970-01-01 09:00:00.000000000 +0900
906--- gcc/gcc/config/m68k/haiku.h 2013-02-11 20:58:27.000000000 +0900
907***************
908*** 0 ****
909--- 1,268 ----
910+ /* Definitions for Motorola 68k running Haiku
911+    Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2007
912+    Free Software Foundation, Inc.
913+
914+ This file is part of GCC.
915+
916+ GCC is free software; you can redistribute it and/or modify
917+ it under the terms of the GNU General Public License as published by
918+ the Free Software Foundation; either version 2, or (at your option)
919+ any later version.
920+
921+ GCC is distributed in the hope that it will be useful,
922+ but WITHOUT ANY WARRANTY; without even the implied warranty of
923+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
924+ GNU General Public License for more details.
925+
926+ You should have received a copy of the GNU General Public License
927+ along with GCC; see the file COPYING.  If not, write to
928+ the Free Software Foundation, 51 Franklin Street, Fifth Floor,
929+ Boston, MA 02110-1301, USA.  */
930+
931+
932+ /* Default target comes from config.gcc.  */
933+
934+ #undef TARGET_DEFAULT
935+ #ifdef TARGET_CPU_DEFAULT
936+ #define TARGET_DEFAULT TARGET_CPU_DEFAULT
937+ #else
938+ #define TARGET_DEFAULT (MASK_BITFIELD|MASK_68881|MASK_68020)
939+ #endif
940+
941+ /* for 68k machines this only needs to be TRUE for the 68000 */
942+
943+ #undef STRICT_ALIGNMENT
944+ #define STRICT_ALIGNMENT 0
945+
946+ /* Here are four prefixes that are used by asm_fprintf to
947+    facilitate customization for alternate assembler syntaxes.
948+    Machines with no likelihood of an alternate syntax need not
949+    define these and need not use asm_fprintf.  */
950+
951+ /* The prefix for register names.  Note that REGISTER_NAMES
952+    is supposed to include this prefix. Also note that this is NOT an
953+    fprintf format string, it is a literal string */
954+
955+ #undef REGISTER_PREFIX
956+ #define REGISTER_PREFIX "%"
957+
958+ /* The prefix for local (compiler generated) labels.
959+    These labels will not appear in the symbol table.  */
960+
961+ #undef LOCAL_LABEL_PREFIX
962+ #define LOCAL_LABEL_PREFIX "."
963+
964+ /* The prefix to add to user-visible assembler symbols.  */
965+
966+ #undef USER_LABEL_PREFIX
967+ #define USER_LABEL_PREFIX ""
968+
969+ #undef ASM_COMMENT_START
970+ #define ASM_COMMENT_START "|"
971+
972+ /* Target OS builtins.  */
973+
974+ #undef TARGET_OS_CPP_BUILTINS
975+ #define TARGET_OS_CPP_BUILTINS()                  \
976+   do                                  \
977+     {                                 \
978+   builtin_define ("__HAIKU__");                   \
979+   builtin_define ("__M68K__");                    \
980+   builtin_define_std ("mc68000");                 \
981+   builtin_define_std ("mc68020");                 \
982+   builtin_define ("__stdcall=__attribute__((__stdcall__))");  \
983+   builtin_define ("__cdecl=__attribute__((__cdecl__))");      \
984+     builtin_define ("__STDC_ISO_10646__=201103L"); \
985+   builtin_assert ("system=haiku");                \
986+     }                                 \
987+   while (0)
988+
989+ #define TARGET_OBJFMT_CPP_BUILTINS()      \
990+   do                      \
991+     {                     \
992+   builtin_define ("__ELF__");     \
993+     }                     \
994+   while (0)
995+
996+ #undef CPP_SPEC
997+ #if TARGET_DEFAULT & MASK_68881
998+ #define CPP_SPEC \
999+   "%{fPIC|fpic|fPIE|fpie:-D__PIC__ -D__pic__} %{!msoft-float:-D__HAVE_68881__} %{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
1000+ #else
1001+ #define CPP_SPEC \
1002+   "%{fPIC|fpic|fPIE|fpie:-D__PIC__ -D__pic__} %{m68881:-D__HAVE_68881__} %{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
1003+ #endif
1004+
1005+ /* We override the ASM_SPEC from svr4.h because we must pass -m68040 down
1006+    to the assembler.  */
1007+ #undef ASM_SPEC
1008+ #define ASM_SPEC \
1009+   "%{v:-V} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*} \
1010+ %{m68040} %{m68060:-m68040}"
1011+
1012+ /* Provide a LINK_SPEC appropriate for Haiku.  Here we provide support
1013+    for the special GCC options -static and -shared, which allow us to
1014+    link things in one of these three modes by applying the appropriate
1015+    combinations of options at link-time.  */
1016+
1017+ /* If ELF is the default format, we should not use /lib/elf.  */
1018+
1019+ #undef    LINK_SPEC
1020+ /*#define LINK_SPEC "%{!o*:-o %b} -m elf_m68k_haiku -shared -no-undefined %{nostart:-e 0}"*/
1021+ #define LINK_SPEC "%{!o*:-o %b} -m m68kelf -shared -no-undefined %{nostart:-e 0}"
1022+
1023+ /* XXX: not sure for the rest there... */
1024+
1025+ /* Currently, JUMP_TABLES_IN_TEXT_SECTION must be defined in order to
1026+    keep switch tables in the text section.  */
1027+
1028+ #define JUMP_TABLES_IN_TEXT_SECTION 1
1029+
1030+ /* This is how to output an assembler line that says to advance the
1031+    location counter to a multiple of 2**LOG bytes.  */
1032+
1033+ /* Use the default action for outputting the case label.  */
1034+ #undef ASM_OUTPUT_CASE_LABEL
1035+ #define ASM_RETURN_CASE_JUMP              \
1036+   do {                            \
1037+     if (TARGET_COLDFIRE)              \
1038+       {                           \
1039+   if (ADDRESS_REG_P (operands[0]))        \
1040+     return "jmp %%pc@(2,%0:l)";           \
1041+   else                        \
1042+     return "ext%.l %0\n\tjmp %%pc@(2,%0:l)";  \
1043+       }                           \
1044+     else                      \
1045+       return "jmp %%pc@(2,%0:w)";         \
1046+   } while (0)
1047+
1048+ #undef ASM_OUTPUT_ALIGN
1049+ #define ASM_OUTPUT_ALIGN(FILE,LOG)                \
1050+   if ((LOG) > 0)                      \
1051+     fprintf ((FILE), "%s%u\n", ALIGN_ASM_OP, 1 << (LOG));
1052+
1053+ /* If defined, a C expression whose value is a string containing the
1054+    assembler operation to identify the following data as uninitialized global
1055+    data.  */
1056+
1057+ #define BSS_SECTION_ASM_OP "\t.section\t.bss"
1058+
1059+ /* A C statement (sans semicolon) to output to the stdio stream
1060+    FILE the assembler definition of uninitialized global DECL named
1061+    NAME whose size is SIZE bytes and alignment is ALIGN bytes.
1062+    Try to use asm_output_aligned_bss to implement this macro.  */
1063+
1064+ #define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
1065+   asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN)
1066+
1067+ /* Output assembler code to FILE to increment profiler label # LABELNO
1068+    for profiling a function entry.  */
1069+
1070+ #undef FUNCTION_PROFILER
1071+ #define FUNCTION_PROFILER(FILE, LABELNO) \
1072+ {                                 \
1073+   asm_fprintf (FILE, "\tlea (%LLP%d,%Rpc),%Ra1\n", (LABELNO));        \
1074+   if (flag_pic)                               \
1075+     fprintf (FILE, "\tbsr.l _mcount@PLTPC\n");                \
1076+   else                                    \
1077+     fprintf (FILE, "\tjbsr _mcount\n");                   \
1078+ }
1079+
1080+ /* How to renumber registers for dbx and gdb.
1081+    On the Sun-3, the floating point registers have numbers
1082+    18 to 25, not 16 to 23 as they do in the compiler.  */
1083+
1084+ #define DBX_REGISTER_NUMBER(REGNO) ((REGNO) < 16 ? (REGNO) : (REGNO) + 2)
1085+
1086+ /* Do not break .stabs pseudos into continuations.  */
1087+
1088+ #define DBX_CONTIN_LENGTH 0
1089+
1090+ /* 1 if N is a possible register number for a function value.  For
1091+    m68k/SVR4 allow d0, a0, or fp0 as return registers, for integral,
1092+    pointer, or floating types, respectively.  Reject fp0 if not using
1093+    a 68881 coprocessor.  */
1094+
1095+ #undef FUNCTION_VALUE_REGNO_P
1096+ #define FUNCTION_VALUE_REGNO_P(N) \
1097+   ((N) == 0 || (N) == 8 || (TARGET_68881 && (N) == 16))
1098+
1099+ /* Define this to be true when FUNCTION_VALUE_REGNO_P is true for
1100+    more than one register.  */
1101+
1102+ #undef NEEDS_UNTYPED_CALL
1103+ #define NEEDS_UNTYPED_CALL 1
1104+
1105+ /* Define how to generate (in the callee) the output value of a
1106+    function and how to find (in the caller) the value returned by a
1107+    function.  VALTYPE is the data type of the value (as a tree).  If
1108+    the precise function being called is known, FUNC is its
1109+    FUNCTION_DECL; otherwise, FUNC is 0.  For m68k/SVR4 generate the
1110+    result in d0, a0, or fp0 as appropriate.  */
1111+
1112+ #undef FUNCTION_VALUE
1113+ #define FUNCTION_VALUE(VALTYPE, FUNC)                 \
1114+   (TREE_CODE (VALTYPE) == REAL_TYPE && TARGET_68881           \
1115+    ? gen_rtx_REG (TYPE_MODE (VALTYPE), 16)                \
1116+    : (POINTER_TYPE_P (VALTYPE)                        \
1117+       ? gen_rtx_REG (TYPE_MODE (VALTYPE), 8)              \
1118+       : gen_rtx_REG (TYPE_MODE (VALTYPE), 0)))
1119+
1120+ /* For compatibility with the large body of existing code which does
1121+    not always properly declare external functions returning pointer
1122+    types, the m68k/SVR4 convention is to copy the value returned for
1123+    pointer functions from a0 to d0 in the function epilogue, so that
1124+    callers that have neglected to properly declare the callee can
1125+    still find the correct return value.  */
1126+
1127+ #define FUNCTION_EXTRA_EPILOGUE(FILE, SIZE)               \
1128+ do {                                  \
1129+   if (current_function_returns_pointer                    \
1130+       && ! find_equiv_reg (0, get_last_insn (), 0, 0, 0, 8, Pmode))   \
1131+     asm_fprintf (FILE, "\tmove.l %Ra0,%Rd0\n");               \
1132+ } while (0);
1133+
1134+ /* Define how to find the value returned by a library function
1135+    assuming the value has mode MODE.
1136+    For m68k/SVR4 look for integer values in d0, pointer values in d0
1137+    (returned in both d0 and a0), and floating values in fp0.  */
1138+
1139+ #undef LIBCALL_VALUE
1140+ #define LIBCALL_VALUE(MODE)                       \
1141+   ((((MODE) == SFmode || (MODE) == DFmode || (MODE) == XFmode)        \
1142+     && TARGET_68881)                          \
1143+    ? gen_rtx_REG ((MODE), 16)                     \
1144+    : gen_rtx_REG ((MODE), 0))
1145+
1146+ /* For m68k SVR4, structures are returned using the reentrant
1147+    technique.  */
1148+ #undef PCC_STATIC_STRUCT_RETURN
1149+ #define DEFAULT_PCC_STRUCT_RETURN 0
1150+
1151+ /* Finalize the trampoline by flushing the insn cache.  */
1152+
1153+ #undef FINALIZE_TRAMPOLINE
1154+ #define FINALIZE_TRAMPOLINE(TRAMP)                    \
1155+   emit_library_call (gen_rtx_SYMBOL_REF (Pmode, "__clear_cache"), \
1156+            0, VOIDmode, 2, TRAMP, Pmode,          \
1157+            plus_constant (TRAMP, TRAMPOLINE_SIZE), Pmode);
1158+
1159+ /* Clear the instruction cache from `beg' to `end'.  This makes an
1160+    inline system call to SYS_cacheflush.  The arguments are as
1161+    follows:
1162+
1163+   cacheflush (addr, scope, cache, len)
1164+
1165+    addr     - the start address for the flush
1166+    scope  - the scope of the flush (see the cpush insn)
1167+    cache  - which cache to flush (see the cpush insn)
1168+    len    - a factor relating to the number of flushes to perform:
1169+       len/16 lines, or len/4096 pages.  */
1170+
1171+ #define CLEAR_INSN_CACHE(BEG, END)                    \
1172+ {                                 \
1173+ extern void clear_caches(void *address, int length, unsigned long flags); \
1174+   void *ptr = BEG;                            \
1175+   int len = (END - BEG + 32);                     \
1176+   clear_caches(ptr, len, 0x0005);                 \
1177+ }
1178diff -Nrcpad gcc-4.8.2/gcc/config/mips/haiku.h gcc/gcc/config/mips/haiku.h
1179*** gcc-4.8.2/gcc/config/mips/haiku.h   1970-01-01 09:00:00.000000000 +0900
1180--- gcc/gcc/config/mips/haiku.h 2013-02-11 20:58:27.000000000 +0900
1181***************
1182*** 0 ****
1183--- 1,43 ----
1184+ /* Definitions for MIPS running Haiku
1185+    Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004
1186+    Free Software Foundation, Inc.
1187+
1188+ This file is part of GCC.
1189+
1190+ GCC is free software; you can redistribute it and/or modify
1191+ it under the terms of the GNU General Public License as published by
1192+ the Free Software Foundation; either version 2, or (at your option)
1193+ any later version.
1194+
1195+ GCC is distributed in the hope that it will be useful,
1196+ but WITHOUT ANY WARRANTY; without even the implied warranty of
1197+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1198+ GNU General Public License for more details.
1199+
1200+ You should have received a copy of the GNU General Public License
1201+ along with GCC; see the file COPYING.  If not, write to
1202+ the Free Software Foundation, 59 Temple Place - Suite 330,
1203+ Boston, MA 02111-1307, USA.  */
1204+
1205+
1206+ #define TARGET_OS_CPP_BUILTINS()                  \
1207+   do                                  \
1208+     {                                 \
1209+   builtin_define ("__HAIKU__");                   \
1210+   builtin_define ("__MIPS__");                    \
1211+   builtin_define ("__MIPSEL__");                  \
1212+   builtin_define ("_MIPSEL_");                    \
1213+   builtin_define ("__stdcall=__attribute__((__stdcall__))");  \
1214+   builtin_define ("__cdecl=__attribute__((__cdecl__))");      \
1215+     builtin_define ("__STDC_ISO_10646__=201103L"); \
1216+   builtin_assert ("system=haiku");                    \
1217+   if (flag_pic)                           \
1218+     {                             \
1219+       builtin_define ("__PIC__");                 \
1220+       builtin_define ("__pic__");                 \
1221+     }                             \
1222+     }                                 \
1223+   while (0)
1224+
1225+ #undef    LINK_SPEC
1226+ #define LINK_SPEC "%{!o*:-o %b} -m elf_mipsel_haiku -shared %{nostart:-e 0}"
1227diff -Nrcpad gcc-4.8.2/gcc/config/rs6000/haiku.h gcc/gcc/config/rs6000/haiku.h
1228*** gcc-4.8.2/gcc/config/rs6000/haiku.h 1970-01-01 09:00:00.000000000 +0900
1229--- gcc/gcc/config/rs6000/haiku.h   2013-02-11 20:58:27.000000000 +0900
1230***************
1231*** 0 ****
1232--- 1,56 ----
1233+ /* Definitions for PowerPC running Haiku
1234+    Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005
1235+    Free Software Foundation, Inc.
1236+
1237+ This file is part of GCC.
1238+
1239+ GCC is free software; you can redistribute it and/or modify
1240+ it under the terms of the GNU General Public License as published by
1241+ the Free Software Foundation; either version 2, or (at your option)
1242+ any later version.
1243+
1244+ GCC is distributed in the hope that it will be useful,
1245+ but WITHOUT ANY WARRANTY; without even the implied warranty of
1246+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1247+ GNU General Public License for more details.
1248+
1249+ You should have received a copy of the GNU General Public License
1250+ along with GCC; see the file COPYING.  If not, write to
1251+ the Free Software Foundation, 59 Temple Place - Suite 330,
1252+ Boston, MA 02111-1307, USA.  */
1253+
1254+
1255+ /* long double is 128 bits wide; the documentation claims
1256+    LIBGCC2_LONG_DOUBLE_TYPE_SIZE to default to LONG_DOUBLE_TYPE_SIZE, but
1257+    it apparently does not */
1258+ /*#undef LONG_DOUBLE_TYPE_SIZE
1259+ #define LONG_DOUBLE_TYPE_SIZE 128
1260+ #undef LIBGCC2_LONG_DOUBLE_TYPE_SIZE
1261+ #define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 128*/
1262+
1263+ #undef TARGET_OS_CPP_BUILTINS
1264+ #define TARGET_OS_CPP_BUILTINS()                  \
1265+   do                                  \
1266+     {                                 \
1267+   builtin_define ("__HAIKU__");                   \
1268+   builtin_define ("__POWERPC__");                 \
1269+   builtin_define ("__powerpc__");                 \
1270+   builtin_define ("__stdcall=__attribute__((__stdcall__))");  \
1271+   builtin_define ("__cdecl=__attribute__((__cdecl__))");      \
1272+     builtin_define ("__STDC_ISO_10646__=201103L"); \
1273+   builtin_assert ("system=haiku");                    \
1274+   builtin_assert ("cpu=powerpc");                 \
1275+   builtin_assert ("machine=powerpc");                 \
1276+   TARGET_OS_SYSV_CPP_BUILTINS ();                 \
1277+     }                                 \
1278+   while (0)
1279+
1280+ /* Provide a LINK_SPEC appropriate for Haiku.  Here we provide support
1281+    for the special GCC options -static and -shared, which allow us to
1282+    link things in one of these three modes by applying the appropriate
1283+    combinations of options at link-time.  */
1284+
1285+ /* If ELF is the default format, we should not use /lib/elf.  */
1286+
1287+ #undef    LINK_SPEC
1288+ #define LINK_SPEC "%{!o*:-o %b} -m elf_ppc_haiku -shared -no-undefined %{nostart:-e 0}"
1289diff -Nrcpad gcc-4.8.2/gcc/config/t-haiku gcc/gcc/config/t-haiku
1290*** gcc-4.8.2/gcc/config/t-haiku    1970-01-01 09:00:00.000000000 +0900
1291--- gcc/gcc/config/t-haiku  2013-09-27 20:30:25.000000000 +0900
1292***************
1293*** 0 ****
1294--- 1,4 ----
1295+ # There are system headers elsewhere, but these are the ones that
1296+ # we are most likely to want to apply any fixes to.
1297+ NATIVE_SYSTEM_HEADER_DIR = /boot/system/develop/headers
1298+ LIMITS_H_TEST = [ -f $(SYSTEM_HEADER_DIR)/posix/limits.h ]
1299\ ファイル末尾に改行がありません
1300diff -Nrcpad gcc-4.8.2/gcc/config.gcc gcc/gcc/config.gcc
1301*** gcc-4.8.2/gcc/config.gcc    2013-10-03 09:47:24.000000000 +0900
1302--- gcc/gcc/config.gcc  2013-12-05 06:24:37.046468401 +0900
1303*************** i[34567]86-*-freebsd*)
1304*** 1228,1233 ****
1305--- 1228,1241 ----
1306  x86_64-*-freebsd*)
1307    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"
1308    ;;
1309+ i[34567]86-*-haiku*)
1310+   tmake_file='t-haiku i386/t-crtpic'
1311+   tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h haiku.h i386/haiku.h"
1312+   ;;
1313+ x86_64-*-haiku*)
1314+   tmake_file='t-haiku i386/t-haiku64'
1315+   tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h haiku.h i386/haiku64.h"
1316+   ;;
1317  i[34567]86-*-netbsdelf*)
1318    tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h"
1319    extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1320diff -Nrcpad gcc-4.8.2/gcc/configure gcc/gcc/configure
1321*** gcc-4.8.2/gcc/configure 2013-06-19 10:18:38.000000000 +0900
1322--- gcc/gcc/configure   2013-12-05 06:24:37.050468401 +0900
1323*************** LDEXP_LIB
1324*** 734,739 ****
1325--- 734,740 ----
1326  EXTRA_GCC_LIBS
1327  GNAT_LIBEXC
1328  COLLECT2_LIBS
1329+ build_math_library
1330  CXXCPP
1331  AR
1332  NM
1333*************** with_float
1334*** 768,773 ****
1335--- 769,775 ----
1336  with_cpu
1337  enable_multiarch
1338  enable_multilib
1339+ HYBRID_SECONDARY
1340  coverage_flags
1341  valgrind_command
1342  valgrind_path_defines
1343*************** enable_werror_always
1344*** 875,880 ****
1345--- 877,883 ----
1346  enable_checking
1347  enable_coverage
1348  enable_gather_detailed_mem_stats
1349+ with_hybrid_secondary
1350  with_stabs
1351  enable_multilib
1352  enable_multiarch
1353*************** Optional Packages:
1354*** 1649,1654 ****
1355--- 1652,1659 ----
1356    --with-demangler-in-ld  try to use demangler in GNU ld
1357    --with-gnu-as           arrange to work with GNU as
1358    --with-as               arrange to use the specified as (full pathname)
1359+   --with-hybrid_secondary specify the packaging architecture for building a
1360+                           secondary compiler for a Haiku hybrid system
1361    --with-stabs            arrange to use stabs instead of host debug format
1362    --with-dwarf2           force the default debug format to be DWARF 2
1363    --with-native-system-header-dir=dir
1364*************** _ACEOF
1365*** 7004,7009 ****
1366--- 7009,7026 ----
1367  # Miscenalleous configure options
1368  # -------------------------------
1369 
1370+ # handle --with-hybrid-secondary
1371+
1372+ # Check whether --with-hybrid_secondary was given.
1373+ if test "${with_hybrid_secondary+set}" = set; then :
1374+  withval=$with_hybrid_secondary; HYBRID_SECONDARY=$withval
1375+ else
1376+  HYBRID_SECONDARY=
1377+
1378+ fi
1379+
1380+
1381+
1382  # With stabs
1383 
1384  # Check whether --with-stabs was given.
1385*************** ac_compiler_gnu=$ac_cv_c_compiler_gnu
1386*** 8811,8816 ****
1387--- 8828,8843 ----
1388  # --------
1389 
1390 
1391+ # Configure -lm usage for host tools that need it
1392+ build_math_library="-lm"
1393+ case $build in
1394+   *-*-haiku*)
1395+     # no separate math library needed
1396+     build_math_library=
1397+     ;;
1398+ esac
1399+
1400+
1401  # These libraries may be used by collect2.
1402  # We may need a special search path to get them linked.
1403  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for collect2 libraries" >&5
1404*************** case ${enable_threads} in
1405*** 11106,11112 ****
1406      # default
1407      target_thread_file='single'
1408      ;;
1409!   aix | dce | lynx | mipssde | posix | rtems | \
1410    single | tpf | vxworks | win32)
1411      target_thread_file=${enable_threads}
1412      ;;
1413--- 11133,11139 ----
1414      # default
1415      target_thread_file='single'
1416      ;;
1417!   aix | dce | haiku | lynx | mipssde | posix | rtems | \
1418    single | tpf | vxworks | win32)
1419      target_thread_file=${enable_threads}
1420      ;;
1421*************** haiku*)
1422*** 17032,17038 ****
1423    soname_spec='${libname}${release}${shared_ext}$major'
1424    shlibpath_var=LIBRARY_PATH
1425    shlibpath_overrides_runpath=yes
1426!   sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
1427    hardcode_into_libs=yes
1428    ;;
1429 
1430--- 17059,17065 ----
1431    soname_spec='${libname}${release}${shared_ext}$major'
1432    shlibpath_var=LIBRARY_PATH
1433    shlibpath_overrides_runpath=yes
1434!   sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
1435    hardcode_into_libs=yes
1436    ;;
1437 
1438*************** else
1439*** 17550,17556 ****
1440    lt_cv_dlopen_libs=
1441 
1442    case $host_os in
1443!   beos*)
1444      lt_cv_dlopen="load_add_on"
1445      lt_cv_dlopen_libs=
1446      lt_cv_dlopen_self=yes
1447--- 17577,17583 ----
1448    lt_cv_dlopen_libs=
1449 
1450    case $host_os in
1451!   beos* | haiku* )
1452      lt_cv_dlopen="load_add_on"
1453      lt_cv_dlopen_libs=
1454      lt_cv_dlopen_self=yes
1455*************** if test -z "$aix_libpath"; then aix_libp
1456*** 18880,18887 ****
1457          ;;
1458 
1459        haiku*)
1460!         archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
1461!         link_all_deplibs_CXX=yes
1462          ;;
1463 
1464        hpux9*)
1465--- 18907,18914 ----
1466          ;;
1467 
1468        haiku*)
1469!   allow_undefined_flag_CXX=unsupported
1470!   archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
1471          ;;
1472 
1473        hpux9*)
1474*************** haiku*)
1475*** 20691,20698 ****
1476    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
1477    soname_spec='${libname}${release}${shared_ext}$major'
1478    shlibpath_var=LIBRARY_PATH
1479!   shlibpath_overrides_runpath=yes
1480!   sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
1481    hardcode_into_libs=yes
1482    ;;
1483 
1484--- 20718,20725 ----
1485    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
1486    soname_spec='${libname}${release}${shared_ext}$major'
1487    shlibpath_var=LIBRARY_PATH
1488!   shlibpath_overrides_runpath=no
1489!   sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
1490    hardcode_into_libs=yes
1491    ;;
1492 
1493diff -Nrcpad gcc-4.8.2/gcc/configure.ac gcc/gcc/configure.ac
1494*** gcc-4.8.2/gcc/configure.ac  2013-06-19 10:18:38.000000000 +0900
1495--- gcc/gcc/configure.ac    2013-12-05 06:24:37.050468401 +0900
1496*************** AC_DEFINE_UNQUOTED(GATHER_STATISTICS, $g
1497*** 600,605 ****
1498--- 600,614 ----
1499  # Miscenalleous configure options
1500  # -------------------------------
1501 
1502+ # handle --with-hybrid-secondary
1503+ AC_ARG_WITH(hybrid_secondary,
1504+   [AS_HELP_STRING([--with-hybrid_secondary],
1505+   [specify the packaging architecture for building a secondary compiler for a Haiku hybrid system])],
1506+   [HYBRID_SECONDARY=$withval],
1507+   [HYBRID_SECONDARY=]
1508+  )
1509+ +AC_SUBST(HYBRID_SECONDARY)
1510+
1511  # With stabs
1512  AC_ARG_WITH(stabs,
1513  [AS_HELP_STRING([--with-stabs],
1514*************** AC_LANG_POP(C++)
1515*** 974,979 ****
1516--- 983,998 ----
1517  # UNSORTED
1518  # --------
1519 
1520+ # Configure -lm usage for host tools that need it
1521+ build_math_library="-lm"
1522+ case $build in
1523+   *-*-haiku*)
1524+     # no separate math library needed
1525+     build_math_library=
1526+     ;;
1527+ esac
1528+ AC_SUBST(build_math_library)
1529+
1530 
1531  # These libraries may be used by collect2.
1532  # We may need a special search path to get them linked.
1533*************** case ${enable_threads} in
1534*** 1425,1431 ****
1535      # default
1536      target_thread_file='single'
1537      ;;
1538!   aix | dce | lynx | mipssde | posix | rtems | \
1539    single | tpf | vxworks | win32)
1540      target_thread_file=${enable_threads}
1541      ;;
1542--- 1444,1450 ----
1543      # default
1544      target_thread_file='single'
1545      ;;
1546!   aix | dce | haiku | lynx | mipssde | posix | rtems | \
1547    single | tpf | vxworks | win32)
1548      target_thread_file=${enable_threads}
1549      ;;
1550diff -Nrcpad gcc-4.8.2/gcc/defaults.h gcc/gcc/defaults.h
1551*** gcc-4.8.2/gcc/defaults.h    2013-01-11 05:38:27.000000000 +0900
1552--- gcc/gcc/defaults.h  2013-06-05 06:05:45.542853149 +0900
1553*************** see the files COPYING3 and COPYING.RUNTI
1554*** 396,401 ****
1555--- 396,405 ----
1556  #else
1557  #define TARGET_USE_JCR_SECTION 0
1558  #endif
1559+ #else
1560+ #if !(TARGET_USE_JCR_SECTION)
1561+ #undef JCR_SECTION_NAME
1562+ #endif
1563  #endif
1564 
1565  /* Number of hardware registers that go into the DWARF-2 unwind info.
1566diff -Nrcpad gcc-4.8.2/gcc/ginclude/stdarg.h gcc/gcc/ginclude/stdarg.h
1567*** gcc-4.8.2/gcc/ginclude/stdarg.h 2013-01-11 05:38:27.000000000 +0900
1568--- gcc/gcc/ginclude/stdarg.h   2013-03-31 19:17:52.000000000 +0900
1569*************** typedef __gnuc_va_list va_list;
1570*** 93,99 ****
1571  #ifndef _VA_LIST
1572  /* The macro _VA_LIST_T_H is used in the Bull dpx2  */
1573  #ifndef _VA_LIST_T_H
1574! /* The macro __va_list__ is used by BeOS.  */
1575  #ifndef __va_list__
1576  typedef __gnuc_va_list va_list;
1577  #endif /* not __va_list__ */
1578--- 93,99 ----
1579  #ifndef _VA_LIST
1580  /* The macro _VA_LIST_T_H is used in the Bull dpx2  */
1581  #ifndef _VA_LIST_T_H
1582! /* The macro __va_list__ is used by BeOS and Haiku.  */
1583  #ifndef __va_list__
1584  typedef __gnuc_va_list va_list;
1585  #endif /* not __va_list__ */
1586diff -Nrcpad gcc-4.8.2/gcc/ginclude/stddef.h gcc/gcc/ginclude/stddef.h
1587*** gcc-4.8.2/gcc/ginclude/stddef.h 2013-01-11 05:38:27.000000000 +0900
1588--- gcc/gcc/ginclude/stddef.h   2013-03-31 19:17:52.000000000 +0900
1589*************** typedef __PTRDIFF_TYPE__ ptrdiff_t;
1590*** 164,170 ****
1591  /* Define this type if we are doing the whole job,
1592     or if we want this type in particular.  */
1593  #if defined (_STDDEF_H) || defined (__need_size_t)
1594! #ifndef __size_t__    /* BeOS */
1595  #ifndef __SIZE_T__    /* Cray Unicos/Mk */
1596  #ifndef _SIZE_T   /* in case <sys/types.h> has defined it. */
1597  #ifndef _SYS_SIZE_T_H
1598--- 164,170 ----
1599  /* Define this type if we are doing the whole job,
1600     or if we want this type in particular.  */
1601  #if defined (_STDDEF_H) || defined (__need_size_t)
1602! #ifndef __size_t__    /* BeOS, Haiku */
1603  #ifndef __SIZE_T__    /* Cray Unicos/Mk */
1604  #ifndef _SIZE_T   /* in case <sys/types.h> has defined it. */
1605  #ifndef _SYS_SIZE_T_H
1606*************** typedef __PTRDIFF_TYPE__ ptrdiff_t;
1607*** 181,187 ****
1608  #ifndef _GCC_SIZE_T
1609  #ifndef _SIZET_
1610  #ifndef __size_t
1611! #define __size_t__    /* BeOS */
1612  #define __SIZE_T__    /* Cray Unicos/Mk */
1613  #define _SIZE_T
1614  #define _SYS_SIZE_T_H
1615--- 181,187 ----
1616  #ifndef _GCC_SIZE_T
1617  #ifndef _SIZET_
1618  #ifndef __size_t
1619! #define __size_t__    /* BeOS, Haiku */
1620  #define __SIZE_T__    /* Cray Unicos/Mk */
1621  #define _SIZE_T
1622  #define _SYS_SIZE_T_H
1623*************** typedef long ssize_t;
1624*** 243,249 ****
1625  /* Define this type if we are doing the whole job,
1626     or if we want this type in particular.  */
1627  #if defined (_STDDEF_H) || defined (__need_wchar_t)
1628! #ifndef __wchar_t__   /* BeOS */
1629  #ifndef __WCHAR_T__   /* Cray Unicos/Mk */
1630  #ifndef _WCHAR_T
1631  #ifndef _T_WCHAR_
1632--- 243,249 ----
1633  /* Define this type if we are doing the whole job,
1634     or if we want this type in particular.  */
1635  #if defined (_STDDEF_H) || defined (__need_wchar_t)
1636! #ifndef __wchar_t__   /* BeOS, Haiku */
1637  #ifndef __WCHAR_T__   /* Cray Unicos/Mk */
1638  #ifndef _WCHAR_T
1639  #ifndef _T_WCHAR_
1640*************** typedef long ssize_t;
1641*** 260,266 ****
1642  #ifndef ___int_wchar_t_h
1643  #ifndef __INT_WCHAR_T_H
1644  #ifndef _GCC_WCHAR_T
1645! #define __wchar_t__   /* BeOS */
1646  #define __WCHAR_T__   /* Cray Unicos/Mk */
1647  #define _WCHAR_T
1648  #define _T_WCHAR_
1649--- 260,266 ----
1650  #ifndef ___int_wchar_t_h
1651  #ifndef __INT_WCHAR_T_H
1652  #ifndef _GCC_WCHAR_T
1653! #define __wchar_t__   /* BeOS, Haiku */
1654  #define __WCHAR_T__   /* Cray Unicos/Mk */
1655  #define _WCHAR_T
1656  #define _T_WCHAR_
1657diff -Nrcpad gcc-4.8.2/include/filenames.h gcc/include/filenames.h
1658*** gcc-4.8.2/include/filenames.h   2012-07-14 07:12:28.000000000 +0900
1659--- gcc/include/filenames.h 2013-09-27 20:30:25.000000000 +0900
1660*************** Foundation, Inc., 51 Franklin Street - F
1661*** 26,33 ****
1662  #ifndef FILENAMES_H
1663  #define FILENAMES_H
1664 
1665- #include "hashtab.h" /* for hashval_t */
1666-
1667  #ifdef __cplusplus
1668  extern "C" {
1669  #endif
1670--- 26,31 ----
1671*************** extern "C" {
1672*** 44,52 ****
1673--- 42,52 ----
1674  #  define IS_ABSOLUTE_PATH(f) IS_DOS_ABSOLUTE_PATH (f)
1675  #else /* not DOSish */
1676  #  if defined(__APPLE__)
1677+ /*
1678  #    ifndef HAVE_CASE_INSENSITIVE_FILE_SYSTEM
1679  #      define HAVE_CASE_INSENSITIVE_FILE_SYSTEM 1
1680  #    endif
1681+ */
1682  #  endif /* __APPLE__ */
1683  #  define HAS_DRIVE_SPEC(f) (0)
1684  #  define IS_DIR_SEPARATOR(c) IS_UNIX_DIR_SEPARATOR (c)
1685*************** extern int filename_cmp (const char *s1,
1686*** 86,95 ****
1687  extern int filename_ncmp (const char *s1, const char *s2,
1688              size_t n);
1689 
1690- extern hashval_t filename_hash (const void *s);
1691-
1692- extern int filename_eq (const void *s1, const void *s2);
1693-
1694  #ifdef __cplusplus
1695  }
1696  #endif
1697--- 86,91 ----
1698diff -Nrcpad gcc-4.8.2/libcpp/configure gcc/libcpp/configure
1699*** gcc-4.8.2/libcpp/configure  2013-10-16 16:27:58.000000000 +0900
1700--- gcc/libcpp/configure    2013-05-31 20:47:05.000000000 +0900
1701*************** case $target in
1702*** 7153,7158 ****
1703--- 7153,7159 ----
1704    aarch64*-*-* | \
1705    alpha*-*-* | \
1706    arm*-*-*eabi* | \
1707+   arm*-*-haiku* | \
1708    arm*-*-rtems* | \
1709    arm*-*-symbianelf* | \
1710    x86_64-*-* | \
1711diff -Nrcpad gcc-4.8.2/libcpp/configure.ac gcc/libcpp/configure.ac
1712*** gcc-4.8.2/libcpp/configure.ac   2013-04-04 00:13:33.000000000 +0900
1713--- gcc/libcpp/configure.ac 2013-05-31 20:47:44.000000000 +0900
1714*************** case $target in
1715*** 185,190 ****
1716--- 185,191 ----
1717    aarch64*-*-* | \
1718    alpha*-*-* | \
1719    arm*-*-*eabi* | \
1720+   arm*-*-haiku* | \
1721    arm*-*-rtems* | \
1722    arm*-*-symbianelf* | \
1723    x86_64-*-* | \
1724diff -Nrcpad gcc-4.8.2/libgcc/Makefile.in gcc/libgcc/Makefile.in
1725*** gcc-4.8.2/libgcc/Makefile.in    2013-02-05 04:06:20.000000000 +0900
1726--- gcc/libgcc/Makefile.in  2013-05-12 20:03:47.000000000 +0900
1727***************
1728*** 1,6 ****
1729  # Makefile.in
1730 
1731! # Copyright (C) 2005-2013 Free Software Foundation, Inc.
1732  #
1733  # This file is part of GCC.
1734  #
1735--- 1,6 ----
1736  # Makefile.in
1737 
1738! # Copyright (C) 2005, 2006, 2009, 2010, 2011 Free Software Foundation
1739  #
1740  # This file is part of GCC.
1741  #
1742*************** installcheck:
1743*** 121,128 ****
1744  .PHONY: all clean
1745 
1746  clean:
1747!   -rm -f auto-target.h libgcc_tm.h libgcc.map
1748!   -rm -f libgcc_tm.stamp stamp-h stmp-ldirs
1749    -rm -f *$(objext)
1750    -rm -f *.dep
1751    -rm -f *.a
1752--- 121,127 ----
1753  .PHONY: all clean
1754 
1755  clean:
1756!   -rm -f config.h libgcc_tm.h stamp-h stmp-ldirs libgcc.map libgcc_tm.stamp
1757    -rm -f *$(objext)
1758    -rm -f *.dep
1759    -rm -f *.a
1760*************** Makefile: $(srcdir)/Makefile.in config.s
1761*** 140,148 ****
1762 
1763  # Depending on Makefile makes sure that config.status has been re-run
1764  # if needed.  This prevents problems with parallel builds.
1765! auto-target.h: stamp-h ; @true
1766  stamp-h: $(srcdir)/config.in config.status Makefile
1767!   CONFIG_FILES= CONFIG_HEADERS=auto-target.h:$(srcdir)/config.in $(SHELL) ./config.status
1768 
1769  config.status: $(srcdir)/configure $(srcdir)/config.host
1770    $(SHELL) ./config.status --recheck
1771--- 139,147 ----
1772 
1773  # Depending on Makefile makes sure that config.status has been re-run
1774  # if needed.  This prevents problems with parallel builds.
1775! config.h: stamp-h ; @true
1776  stamp-h: $(srcdir)/config.in config.status Makefile
1777!   CONFIG_FILES= CONFIG_HEADERS=config.h:$(srcdir)/config.in $(SHELL) ./config.status
1778 
1779  config.status: $(srcdir)/configure $(srcdir)/config.host
1780    $(SHELL) ./config.status --recheck
1781*************** export slibdir
1782*** 207,213 ****
1783  export toolexecdir
1784  export toolexeclibdir
1785 
1786! version := $(shell cat $(srcdir)/../gcc/BASE-VER)
1787 
1788  ifeq ($(decimal_float),yes)
1789  ifeq ($(enable_decimal_float),bid)
1790--- 206,212 ----
1791  export toolexecdir
1792  export toolexeclibdir
1793 
1794! version := $(shell $(CC) -dumpversion)
1795 
1796  ifeq ($(decimal_float),yes)
1797  ifeq ($(enable_decimal_float),bid)
1798*************** ifeq ($(enable_shared),yes)
1799*** 363,369 ****
1800    ifneq ($(LIBUNWIND),)
1801      install-libunwind = install-libunwind
1802    endif
1803- endif
1804 
1805  # For -fvisibility=hidden.  We need both a -fvisibility=hidden on
1806  # the command line, and a #define to prevent libgcc2.h etc from
1807--- 362,367 ----
1808*************** else
1809*** 387,394 ****
1810  gen-hide-list = echo > $@
1811  endif
1812 
1813! ifneq ($(enable_shared),yes)
1814  iterator = $(srcdir)/empty.mk $(patsubst %,$(srcdir)/static-object.mk,$(iter-items))
1815  endif
1816 
1817  LIB2ADD += enable-execute-stack.c
1818--- 385,395 ----
1819  gen-hide-list = echo > $@
1820  endif
1821 
1822! else
1823! # Not enable_shared.
1824  iterator = $(srcdir)/empty.mk $(patsubst %,$(srcdir)/static-object.mk,$(iter-items))
1825+ vis_hide =
1826+ gen-hide-list = echo > \$@
1827  endif
1828 
1829  LIB2ADD += enable-execute-stack.c
1830*************** LIB2_DIVMOD_FUNCS := $(filter-out $(LIB2
1831*** 437,442 ****
1832--- 438,444 ----
1833               $(LIB2_DIVMOD_FUNCS))
1834 
1835  # Build "libgcc1" (assembly) components.
1836+ ifeq ($(enable_shared),yes)
1837 
1838  lib1asmfuncs-o = $(patsubst %,%$(objext),$(LIB1ASMFUNCS))
1839  $(lib1asmfuncs-o): %$(objext): $(srcdir)/config/$(LIB1ASMSRC) %.vis
1840*************** libgcc-objects += $(lib1asmfuncs-o)
1841*** 448,457 ****
1842  lib1asmfuncs-s-o = $(patsubst %,%_s$(objext),$(LIB1ASMFUNCS))
1843  $(lib1asmfuncs-s-o): %_s$(objext): $(srcdir)/config/$(LIB1ASMSRC)
1844    $(gcc_s_compile) -DL$* -xassembler-with-cpp -c $<
1845- ifeq ($(enable_shared),yes)
1846-
1847  libgcc-s-objects += $(lib1asmfuncs-s-o)
1848 
1849  endif
1850 
1851  # Build lib2funcs.  For the static library also include LIB2FUNCS_ST.
1852--- 450,464 ----
1853  lib1asmfuncs-s-o = $(patsubst %,%_s$(objext),$(LIB1ASMFUNCS))
1854  $(lib1asmfuncs-s-o): %_s$(objext): $(srcdir)/config/$(LIB1ASMSRC)
1855    $(gcc_s_compile) -DL$* -xassembler-with-cpp -c $<
1856  libgcc-s-objects += $(lib1asmfuncs-s-o)
1857 
1858+ else
1859+
1860+ lib1asmfuncs-o = $(patsubst %,%$(objext),$(LIB1ASMFUNCS))
1861+ $(lib1asmfuncs-o): %$(objext): $(srcdir)/config/$(LIB1ASMSRC)
1862+   $(gcc_compile) -DL$* -xassembler-with-cpp -c $<
1863+ libgcc-objects += $(lib1asmfuncs-o)
1864+
1865  endif
1866 
1867  # Build lib2funcs.  For the static library also include LIB2FUNCS_ST.
1868*************** libgcc-s-objects += $(patsubst %,%_s$(ob
1869*** 489,512 ****
1870  endif
1871  endif
1872 
1873- ifeq ($(LIB2_DIVMOD_EXCEPTION_FLAGS),)
1874- # Provide default flags for compiling divmod functions, if they haven't been
1875- # set already by a target-specific Makefile fragment.
1876- LIB2_DIVMOD_EXCEPTION_FLAGS := -fexceptions -fnon-call-exceptions
1877- endif
1878-
1879  # Build LIB2_DIVMOD_FUNCS.
1880  lib2-divmod-o = $(patsubst %,%$(objext),$(LIB2_DIVMOD_FUNCS))
1881  $(lib2-divmod-o): %$(objext): $(srcdir)/libgcc2.c
1882    $(gcc_compile) -DL$* -c $< \
1883!     $(LIB2_DIVMOD_EXCEPTION_FLAGS) $(vis_hide)
1884  libgcc-objects += $(lib2-divmod-o)
1885 
1886  ifeq ($(enable_shared),yes)
1887  lib2-divmod-s-o = $(patsubst %,%_s$(objext),$(LIB2_DIVMOD_FUNCS))
1888  $(lib2-divmod-s-o): %_s$(objext): $(srcdir)/libgcc2.c
1889    $(gcc_s_compile) -DL$* -c $< \
1890!     $(LIB2_DIVMOD_EXCEPTION_FLAGS)
1891  libgcc-s-objects += $(lib2-divmod-s-o)
1892  endif
1893 
1894--- 496,513 ----
1895  endif
1896  endif
1897 
1898  # Build LIB2_DIVMOD_FUNCS.
1899  lib2-divmod-o = $(patsubst %,%$(objext),$(LIB2_DIVMOD_FUNCS))
1900  $(lib2-divmod-o): %$(objext): $(srcdir)/libgcc2.c
1901    $(gcc_compile) -DL$* -c $< \
1902!     -fexceptions -fnon-call-exceptions $(vis_hide)
1903  libgcc-objects += $(lib2-divmod-o)
1904 
1905  ifeq ($(enable_shared),yes)
1906  lib2-divmod-s-o = $(patsubst %,%_s$(objext),$(LIB2_DIVMOD_FUNCS))
1907  $(lib2-divmod-s-o): %_s$(objext): $(srcdir)/libgcc2.c
1908    $(gcc_s_compile) -DL$* -c $< \
1909!     -fexceptions -fnon-call-exceptions
1910  libgcc-s-objects += $(lib2-divmod-s-o)
1911  endif
1912 
1913*************** iter-to := $(fixed-modes)
1914*** 767,775 ****
1915  include $(srcdir)/empty.mk $(patsubst %,$(srcdir)/fixed-obj.mk,$(iter-items))
1916 
1917  # Add arithmetic functions to list of objects to be built
1918! libgcc-objects += $(patsubst %,%$(objext),$(filter-out $(LIB2FUNCS_EXCLUDE),$(fixed-funcs)))
1919  ifeq ($(enable_shared),yes)
1920! libgcc-s-objects += $(patsubst %,%_s$(objext),$(filter-out $(LIB2FUNCS_EXCLUDE),$(fixed-funcs)))
1921  endif
1922 
1923  # Convert from or to fractional
1924--- 768,776 ----
1925  include $(srcdir)/empty.mk $(patsubst %,$(srcdir)/fixed-obj.mk,$(iter-items))
1926 
1927  # Add arithmetic functions to list of objects to be built
1928! libgcc-objects += $(patsubst %,%$(objext),$(fixed-funcs))
1929  ifeq ($(enable_shared),yes)
1930! libgcc-s-objects += $(patsubst %,%_s$(objext),$(fixed-funcs))
1931  endif
1932 
1933  # Convert from or to fractional
1934*************** iter-to := $(fixed-conv-to)
1935*** 786,794 ****
1936  include $(srcdir)/empty.mk $(patsubst %,$(srcdir)/fixed-obj.mk,$(iter-items))
1937 
1938  # Add conversion functions to list of objects to be built
1939! libgcc-objects += $(patsubst %,%$(objext),$(filter-out $(LIB2FUNCS_EXCLUDE),$(fixed-conv-funcs)))
1940  ifeq ($(enable_shared),yes)
1941! libgcc-s-objects += $(patsubst %,%_s$(objext),$(filter-out $(LIB2FUNCS_EXCLUDE),$(fixed-conv-funcs)))
1942  endif
1943 
1944  endif
1945--- 787,795 ----
1946  include $(srcdir)/empty.mk $(patsubst %,$(srcdir)/fixed-obj.mk,$(iter-items))
1947 
1948  # Add conversion functions to list of objects to be built
1949! libgcc-objects += $(patsubst %,%$(objext),$(fixed-conv-funcs))
1950  ifeq ($(enable_shared),yes)
1951! libgcc-s-objects += $(patsubst %,%_s$(objext),$(fixed-conv-funcs))
1952  endif
1953 
1954  endif
1955*************** include $(iterator)
1956*** 852,858 ****
1957  # Defined in libgcov.c, included only in gcov library
1958  LIBGCOV = _gcov _gcov_merge_add _gcov_merge_single _gcov_merge_delta \
1959      _gcov_fork _gcov_execl _gcov_execlp _gcov_execle \
1960!     _gcov_execv _gcov_execvp _gcov_execve _gcov_reset _gcov_dump \
1961      _gcov_interval_profiler _gcov_pow2_profiler _gcov_one_value_profiler \
1962      _gcov_indirect_call_profiler _gcov_average_profiler _gcov_ior_profiler \
1963      _gcov_merge_ior
1964--- 853,859 ----
1965  # Defined in libgcov.c, included only in gcov library
1966  LIBGCOV = _gcov _gcov_merge_add _gcov_merge_single _gcov_merge_delta \
1967      _gcov_fork _gcov_execl _gcov_execlp _gcov_execle \
1968!     _gcov_execv _gcov_execvp _gcov_execve \
1969      _gcov_interval_profiler _gcov_pow2_profiler _gcov_one_value_profiler \
1970      _gcov_indirect_call_profiler _gcov_average_profiler _gcov_ior_profiler \
1971      _gcov_merge_ior
1972diff -Nrcpad gcc-4.8.2/libgcc/config.host gcc/libgcc/config.host
1973*** gcc-4.8.2/libgcc/config.host    2013-07-10 06:35:57.000000000 +0900
1974--- gcc/libgcc/config.host  2013-12-05 06:24:37.790468379 +0900
1975*************** arm-wrs-vxworks)
1976*** 322,327 ****
1977--- 322,334 ----
1978  arm*-*-netbsdelf*)
1979    tmake_file="$tmake_file arm/t-arm arm/t-netbsd t-slibgcc-gld-nover"
1980    ;;
1981+ arm-*-haiku*)
1982+   tmake_file="${tmake_file} arm/t-arm arm/t-elf arm/t-bpabi"
1983+   tmake_file="$tmake_file t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp"
1984+   tm_file="${tm_file} arm/bpabi-lib.h"
1985+   unwind_header=config/arm/unwind-arm.h
1986+   extra_parts="crtbegin.o crtend.o"
1987+   ;;
1988  arm*-*-linux*)            # ARM GNU/Linux with ELF
1989    tmake_file="${tmake_file} arm/t-arm t-fixedpoint-gnu-prefix"
1990    tmake_file="${tmake_file} arm/t-elf arm/t-bpabi arm/t-linux-eabi t-slibgcc-libgcc"
1991*************** i[34567]86-*-kfreebsd*-gnu | i[34567]86-
1992*** 527,532 ****
1993--- 534,547 ----
1994    extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
1995    tmake_file="${tmake_file} i386/t-crtpc i386/t-crtfm i386/t-crtstuff t-dfprules"
1996    ;;
1997+ i[34567]86-*-haiku*)
1998+   tmake_file="${tmake_file} i386/t-crtstuff t-libgcc-pic"
1999+   extra_parts="crtbegin.o crtend.o"
2000+   ;;
2001+ x86_64-*-haiku*)
2002+   tmake_file="${tmake_file} i386/t-crtstuff t-libgcc-pic"
2003+   extra_parts="crtbegin.o crtend.o"
2004+   ;;
2005  x86_64-*-linux*)
2006    extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
2007    tmake_file="${tmake_file} i386/t-crtpc i386/t-crtfm i386/t-crtstuff t-dfprules"
2008*************** m32r-*-linux*)
2009*** 681,686 ****
2010--- 696,704 ----
2011  m32rle-*-linux*)
2012    tmake_file="$tmake_file m32r/t-linux t-fdpbit"
2013    ;;
2014+ m68k-*-haiku*)
2015+   extra_parts="crtbegin.o crtend.o"
2016+   ;;
2017  m68k-*-elf* | fido-*-elf)
2018    tmake_file="$tmake_file m68k/t-floatlib"
2019    ;;
2020*************** mips*-*-linux*)             # Linux MIPS, either
2021*** 728,733 ****
2022--- 746,754 ----
2023        tmake_file="${tmake_file} mips/t-tpbit"
2024    fi
2025    ;;
2026+ mips*-*-haiku*)
2027+   extra_parts="crtbegin.o crtend.o"
2028+   ;;
2029  mips*-sde-elf*)
2030    tmake_file="$tmake_file mips/t-crtstuff mips/t-mips16"
2031    case "${with_newlib}" in
2032*************** powerpc*-*-freebsd*)
2033*** 830,835 ****
2034--- 851,859 ----
2035      ;;
2036    esac
2037    ;;
2038+ powerpc-*-haiku*)
2039+   extra_parts="crtbegin.o crtend.o"
2040+   ;;
2041  powerpc-*-netbsd*)
2042    tmake_file="$tmake_file rs6000/t-netbsd rs6000/t-crtstuff"
2043    ;;
2044diff -Nrcpad gcc-4.8.2/libgcc/crtstuff.c gcc/libgcc/crtstuff.c
2045*** gcc-4.8.2/libgcc/crtstuff.c 2013-02-05 04:06:20.000000000 +0900
2046--- gcc/libgcc/crtstuff.c   2013-06-06 05:48:03.084901596 +0900
2047*************** call_ ## FUNC (void)                    \
2048*** 102,108 ****
2049      && defined(HAVE_LD_EH_FRAME_HDR) \
2050      && !defined(inhibit_libc) && !defined(CRTSTUFFT_O) \
2051      && defined(__GLIBC__) && __GLIBC__ >= 2
2052! #include <link.h>
2053  /* uClibc pretends to be glibc 2.2 and DT_CONFIG is defined in its link.h.
2054     But it doesn't use PT_GNU_EH_FRAME ELF segment currently.  */
2055  # if !defined(__UCLIBC__) \
2056--- 102,110 ----
2057      && defined(HAVE_LD_EH_FRAME_HDR) \
2058      && !defined(inhibit_libc) && !defined(CRTSTUFFT_O) \
2059      && defined(__GLIBC__) && __GLIBC__ >= 2
2060! #ifndef __HAIKU__
2061!  #include <link.h>
2062! #endif
2063  /* uClibc pretends to be glibc 2.2 and DT_CONFIG is defined in its link.h.
2064     But it doesn't use PT_GNU_EH_FRAME ELF segment currently.  */
2065  # if !defined(__UCLIBC__) \
2066diff -Nrcpad gcc-4.8.2/libiberty/filename_cmp.c gcc/libiberty/filename_cmp.c
2067*** gcc-4.8.2/libiberty/filename_cmp.c  2012-07-14 07:12:28.000000000 +0900
2068--- gcc/libiberty/filename_cmp.c    2013-05-12 20:03:47.000000000 +0900
2069*************** filename_ncmp (const char *s1, const cha
2070*** 141,192 ****
2071    return 0;
2072  #endif
2073  }
2074-
2075- /*
2076-
2077- @deftypefn Extension hashval_t filename_hash (const void *@var{s})
2078-
2079- Return the hash value for file name @var{s} that will be compared
2080- using filename_cmp.
2081- This function is for use with hashtab.c hash tables.
2082-
2083- @end deftypefn
2084-
2085- */
2086-
2087- hashval_t
2088- filename_hash (const void *s)
2089- {
2090-   /* The cast is for -Wc++-compat.  */
2091-   const unsigned char *str = (const unsigned char *) s;
2092-   hashval_t r = 0;
2093-   unsigned char c;
2094-
2095-   while ((c = *str++) != 0)
2096-     {
2097-       if (c == '\\')
2098-   c = '/';
2099-       c = TOLOWER (c);
2100-       r = r * 67 + c - 113;
2101-     }
2102-
2103-   return r;
2104- }
2105-
2106- /*
2107-
2108- @deftypefn Extension int filename_eq (const void *@var{s1}, const void *@var{s2})
2109-
2110- Return non-zero if file names @var{s1} and @var{s2} are equivalent.
2111- This function is for use with hashtab.c hash tables.
2112-
2113- @end deftypefn
2114-
2115- */
2116-
2117- int
2118- filename_eq (const void *s1, const void *s2)
2119- {
2120-   /* The casts are for -Wc++-compat.  */
2121-   return filename_cmp ((const char *) s1, (const char *) s2) == 0;
2122- }
2123--- 141,143 ----
2124diff -Nrcpad gcc-4.8.2/libmudflap/configure gcc/libmudflap/configure
2125*** gcc-4.8.2/libmudflap/configure  2012-09-15 08:37:57.000000000 +0900
2126--- gcc/libmudflap/configure    2013-03-31 19:17:57.000000000 +0900
2127*************** haiku*)
2128*** 9818,9825 ****
2129    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
2130    soname_spec='${libname}${release}${shared_ext}$major'
2131    shlibpath_var=LIBRARY_PATH
2132!   shlibpath_overrides_runpath=yes
2133!   sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
2134    hardcode_into_libs=yes
2135    ;;
2136 
2137--- 9818,9825 ----
2138    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
2139    soname_spec='${libname}${release}${shared_ext}$major'
2140    shlibpath_var=LIBRARY_PATH
2141!   shlibpath_overrides_runpath=no
2142!   sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
2143    hardcode_into_libs=yes
2144    ;;
2145 
2146diff -Nrcpad gcc-4.8.2/libquadmath/configure gcc/libquadmath/configure
2147*** gcc-4.8.2/libquadmath/configure 2013-10-16 16:27:58.000000000 +0900
2148--- gcc/libquadmath/configure   2013-03-31 19:17:57.000000000 +0900
2149*************** haiku*)
2150*** 9706,9713 ****
2151    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
2152    soname_spec='${libname}${release}${shared_ext}$major'
2153    shlibpath_var=LIBRARY_PATH
2154!   shlibpath_overrides_runpath=yes
2155!   sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
2156    hardcode_into_libs=yes
2157    ;;
2158 
2159--- 9706,9713 ----
2160    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
2161    soname_spec='${libname}${release}${shared_ext}$major'
2162    shlibpath_var=LIBRARY_PATH
2163!   shlibpath_overrides_runpath=no
2164!   sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
2165    hardcode_into_libs=yes
2166    ;;
2167 
2168diff -Nrcpad gcc-4.8.2/libssp/configure gcc/libssp/configure
2169*** gcc-4.8.2/libssp/configure  2012-09-15 08:40:25.000000000 +0900
2170--- gcc/libssp/configure    2013-03-31 19:17:57.000000000 +0900
2171*************** haiku*)
2172*** 9843,9850 ****
2173    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
2174    soname_spec='${libname}${release}${shared_ext}$major'
2175    shlibpath_var=LIBRARY_PATH
2176!   shlibpath_overrides_runpath=yes
2177!   sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
2178    hardcode_into_libs=yes
2179    ;;
2180 
2181--- 9843,9850 ----
2182    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
2183    soname_spec='${libname}${release}${shared_ext}$major'
2184    shlibpath_var=LIBRARY_PATH
2185!   shlibpath_overrides_runpath=no
2186!   sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
2187    hardcode_into_libs=yes
2188    ;;
2189 
2190diff -Nrcpad gcc-4.8.2/libstdc++-v3/configure gcc/libstdc++-v3/configure
2191*** gcc-4.8.2/libstdc++-v3/configure    2013-05-25 03:10:37.000000000 +0900
2192--- gcc/libstdc++-v3/configure  2014-01-12 20:57:00.000000000 +0900
2193*************** aix[4-9]*)
2194*** 6227,6233 ****
2195    lt_cv_deplibs_check_method=pass_all
2196    ;;
2197 
2198! beos*)
2199    lt_cv_deplibs_check_method=pass_all
2200    ;;
2201 
2202--- 6227,6233 ----
2203    lt_cv_deplibs_check_method=pass_all
2204    ;;
2205 
2206! beos* | haiku*)
2207    lt_cv_deplibs_check_method=pass_all
2208    ;;
2209 
2210*************** $as_echo_n "checking for $compiler optio
2211*** 8557,8563 ****
2212        esac
2213        ;;
2214 
2215!     beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
2216        # PIC is the default for these OSes.
2217        ;;
2218 
2219--- 8557,8563 ----
2220        esac
2221        ;;
2222 
2223!     beos* | haiku* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
2224        # PIC is the default for these OSes.
2225        ;;
2226 
2227*************** _LT_EOF
2228*** 9247,9254 ****
2229        ;;
2230 
2231      haiku*)
2232!       archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
2233!       link_all_deplibs=yes
2234        ;;
2235 
2236      interix[3-9]*)
2237--- 9247,9254 ----
2238        ;;
2239 
2240      haiku*)
2241!       allow_undefined_flag=unsupported
2242!       archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
2243        ;;
2244 
2245      interix[3-9]*)
2246*************** amigaos*)
2247*** 10541,10547 ****
2248    esac
2249    ;;
2250 
2251! beos*)
2252    library_names_spec='${libname}${shared_ext}'
2253    dynamic_linker="$host_os ld.so"
2254    shlibpath_var=LIBRARY_PATH
2255--- 10541,10547 ----
2256    esac
2257    ;;
2258 
2259! beos* | haiku*)
2260    library_names_spec='${libname}${shared_ext}'
2261    dynamic_linker="$host_os ld.so"
2262    shlibpath_var=LIBRARY_PATH
2263*************** haiku*)
2264*** 10699,10705 ****
2265    soname_spec='${libname}${release}${shared_ext}$major'
2266    shlibpath_var=LIBRARY_PATH
2267    shlibpath_overrides_runpath=yes
2268!   sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
2269    hardcode_into_libs=yes
2270    ;;
2271 
2272--- 10699,10705 ----
2273    soname_spec='${libname}${release}${shared_ext}$major'
2274    shlibpath_var=LIBRARY_PATH
2275    shlibpath_overrides_runpath=yes
2276!   sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
2277    hardcode_into_libs=yes
2278    ;;
2279 
2280*************** else
2281*** 11220,11226 ****
2282    lt_cv_dlopen_libs=
2283 
2284    case $host_os in
2285!   beos*)
2286      lt_cv_dlopen="load_add_on"
2287      lt_cv_dlopen_libs=
2288      lt_cv_dlopen_self=yes
2289--- 11220,11226 ----
2290    lt_cv_dlopen_libs=
2291 
2292    case $host_os in
2293!   beos* | haiku*)
2294      lt_cv_dlopen="load_add_on"
2295      lt_cv_dlopen_libs=
2296      lt_cv_dlopen_self=yes
2297*************** if test -z "$aix_libpath"; then aix_libp
2298*** 12571,12578 ****
2299          ;;
2300 
2301        haiku*)
2302!         archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
2303!         link_all_deplibs_CXX=yes
2304          ;;
2305 
2306        hpux9*)
2307--- 12571,12578 ----
2308          ;;
2309 
2310        haiku*)
2311!         allow_undefined_flag=unsupported
2312!         archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
2313          ;;
2314 
2315        hpux9*)
2316*************** $as_echo_n "checking for $compiler optio
2317*** 13440,13446 ****
2318        esac
2319        ;;
2320 
2321!     beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
2322        # PIC is the default for these OSes.
2323        ;;
2324      mingw* | cygwin* | os2* | pw32* | cegcc*)
2325--- 13440,13446 ----
2326        esac
2327        ;;
2328 
2329!     beos* | haiku* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
2330        # PIC is the default for these OSes.
2331        ;;
2332      mingw* | cygwin* | os2* | pw32* | cegcc*)
2333*************** amigaos*)
2334*** 14227,14233 ****
2335    esac
2336    ;;
2337 
2338! beos*)
2339    library_names_spec='${libname}${shared_ext}'
2340    dynamic_linker="$host_os ld.so"
2341    shlibpath_var=LIBRARY_PATH
2342--- 14227,14233 ----
2343    esac
2344    ;;
2345 
2346! beos* | haiku*)
2347    library_names_spec='${libname}${shared_ext}'
2348    dynamic_linker="$host_os ld.so"
2349    shlibpath_var=LIBRARY_PATH
2350*************** haiku*)
2351*** 14383,14389 ****
2352    soname_spec='${libname}${release}${shared_ext}$major'
2353    shlibpath_var=LIBRARY_PATH
2354    shlibpath_overrides_runpath=yes
2355!   sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
2356    hardcode_into_libs=yes
2357    ;;
2358 
2359--- 14383,14389 ----
2360    soname_spec='${libname}${release}${shared_ext}$major'
2361    shlibpath_var=LIBRARY_PATH
2362    shlibpath_overrides_runpath=yes
2363!   sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
2364    hardcode_into_libs=yes
2365    ;;
2366 
2367*************** $as_echo "$ac_ld_relro" >&6; }
2368*** 45699,45704 ****
2369--- 45699,46276 ----
2370 
2371      fi
2372      ;;
2373+   *haiku*)
2374+
2375+
2376+
2377+
2378+
2379+
2380+
2381+
2382+
2383+
2384+
2385+
2386+
2387+
2388+
2389+ for ac_header in nan.h ieeefp.h endian.h sys/isa_defs.h \
2390+       machine/endian.h machine/param.h sys/machine.h sys/types.h \
2391+       fp.h float.h endian.h inttypes.h locale.h float.h stdint.h
2392+ do
2393+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
2394+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
2395+   { echo "$as_me:$LINENO: checking for $ac_header" >&5
2396+ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
2397+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
2398+   echo $ECHO_N "(cached) $ECHO_C" >&6
2399+ fi
2400+ ac_res=`eval echo '${'$as_ac_Header'}'`
2401+          { echo "$as_me:$LINENO: result: $ac_res" >&5
2402+ echo "${ECHO_T}$ac_res" >&6; }
2403+ else
2404+   # Is the header compilable?
2405+ { echo "$as_me:$LINENO: checking $ac_header usability" >&5
2406+ echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
2407+ cat >conftest.$ac_ext <<_ACEOF
2408+ /* confdefs.h.  */
2409+ _ACEOF
2410+ cat confdefs.h >>conftest.$ac_ext
2411+ cat >>conftest.$ac_ext <<_ACEOF
2412+ /* end confdefs.h.  */
2413+ $ac_includes_default
2414+ #include <$ac_header>
2415+ _ACEOF
2416+ rm -f conftest.$ac_objext
2417+ if { (ac_try="$ac_compile"
2418+ case "(($ac_try" in
2419+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
2420+   *) ac_try_echo=$ac_try;;
2421+ esac
2422+ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
2423+   (eval "$ac_compile") 2>conftest.er1
2424+   ac_status=$?
2425+   grep -v '^ *+' conftest.er1 >conftest.err
2426+   rm -f conftest.er1
2427+   cat conftest.err >&5
2428+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
2429+   (exit $ac_status); } && {
2430+    test -z "$ac_c_werror_flag" ||
2431+    test ! -s conftest.err
2432+        } && test -s conftest.$ac_objext; then
2433+   ac_header_compiler=yes
2434+ else
2435+   echo "$as_me: failed program was:" >&5
2436+ sed 's/^/| /' conftest.$ac_ext >&5
2437+
2438+   ac_header_compiler=no
2439+ fi
2440+
2441+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
2442+ { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
2443+ echo "${ECHO_T}$ac_header_compiler" >&6; }
2444+
2445+ # Is the header present?
2446+ { echo "$as_me:$LINENO: checking $ac_header presence" >&5
2447+ echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
2448+ cat >conftest.$ac_ext <<_ACEOF
2449+ /* confdefs.h.  */
2450+ _ACEOF
2451+ cat confdefs.h >>conftest.$ac_ext
2452+ cat >>conftest.$ac_ext <<_ACEOF
2453+ /* end confdefs.h.  */
2454+ #include <$ac_header>
2455+ _ACEOF
2456+ if { (ac_try="$ac_cpp conftest.$ac_ext"
2457+ case "(($ac_try" in
2458+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
2459+   *) ac_try_echo=$ac_try;;
2460+ esac
2461+ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
2462+   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
2463+   ac_status=$?
2464+   grep -v '^ *+' conftest.er1 >conftest.err
2465+   rm -f conftest.er1
2466+   cat conftest.err >&5
2467+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
2468+   (exit $ac_status); } >/dev/null && {
2469+    test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
2470+    test ! -s conftest.err
2471+        }; then
2472+   ac_header_preproc=yes
2473+ else
2474+   echo "$as_me: failed program was:" >&5
2475+ sed 's/^/| /' conftest.$ac_ext >&5
2476+
2477+   ac_header_preproc=no
2478+ fi
2479+
2480+ rm -f conftest.err conftest.$ac_ext
2481+ { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
2482+ echo "${ECHO_T}$ac_header_preproc" >&6; }
2483+
2484+ # So?  What about this header?
2485+ case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
2486+   yes:no: )
2487+     { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
2488+ echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
2489+     { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
2490+ echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
2491+     ac_header_preproc=yes
2492+     ;;
2493+   no:yes:* )
2494+     { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
2495+ echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
2496+     { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
2497+ echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
2498+     { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
2499+ echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
2500+     { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
2501+ echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
2502+     { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
2503+ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
2504+     { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
2505+ echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
2506+
2507+     ;;
2508+ esac
2509+ { echo "$as_me:$LINENO: checking for $ac_header" >&5
2510+ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
2511+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
2512+   echo $ECHO_N "(cached) $ECHO_C" >&6
2513+ else
2514+   eval "$as_ac_Header=\$ac_header_preproc"
2515+ fi
2516+ ac_res=`eval echo '${'$as_ac_Header'}'`
2517+          { echo "$as_me:$LINENO: result: $ac_res" >&5
2518+ echo "${ECHO_T}$ac_res" >&6; }
2519+
2520+ fi
2521+ if test `eval echo '${'$as_ac_Header'}'` = yes; then
2522+   cat >>confdefs.h <<_ACEOF
2523+ #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
2524+ _ACEOF
2525+
2526+ fi
2527+
2528+ done
2529+
2530+     SECTION_FLAGS='-ffunction-sections -fdata-sections'
2531+
2532+
2533+     cat >>confdefs.h <<\_ACEOF
2534+ #define HAVE_INT64_T 1
2535+ _ACEOF
2536+
2537+
2538+     cat >>confdefs.h <<\_ACEOF
2539+ #define HAVE_ACOSF 1
2540+ _ACEOF
2541+
2542+     cat >>confdefs.h <<\_ACEOF
2543+ #define HAVE_ASINF 1
2544+ _ACEOF
2545+
2546+     cat >>confdefs.h <<\_ACEOF
2547+ #define HAVE_ATANF 1
2548+ _ACEOF
2549+
2550+     cat >>confdefs.h <<\_ACEOF
2551+ #define HAVE_ATAN2F 1
2552+ _ACEOF
2553+
2554+     cat >>confdefs.h <<\_ACEOF
2555+ #define HAVE_CEILF 1
2556+ _ACEOF
2557+
2558+     cat >>confdefs.h <<\_ACEOF
2559+ #define HAVE_COPYSIGN 1
2560+ _ACEOF
2561+
2562+     cat >>confdefs.h <<\_ACEOF
2563+ #define HAVE_COPYSIGNF 1
2564+ _ACEOF
2565+
2566+     cat >>confdefs.h <<\_ACEOF
2567+ #define HAVE_COSF 1
2568+ _ACEOF
2569+
2570+     cat >>confdefs.h <<\_ACEOF
2571+ #define HAVE_COSHF 1
2572+ _ACEOF
2573+
2574+     cat >>confdefs.h <<\_ACEOF
2575+ #define HAVE_EXPF 1
2576+ _ACEOF
2577+
2578+     cat >>confdefs.h <<\_ACEOF
2579+ #define HAVE_FABSF 1
2580+ _ACEOF
2581+
2582+     cat >>confdefs.h <<\_ACEOF
2583+ #define HAVE_FINITE 1
2584+ _ACEOF
2585+
2586+     cat >>confdefs.h <<\_ACEOF
2587+ #define HAVE_FINITEF 1
2588+ _ACEOF
2589+
2590+     cat >>confdefs.h <<\_ACEOF
2591+ #define HAVE_FLOORF 1
2592+ _ACEOF
2593+
2594+     cat >>confdefs.h <<\_ACEOF
2595+ #define HAVE_FMODF 1
2596+ _ACEOF
2597+
2598+     cat >>confdefs.h <<\_ACEOF
2599+ #define HAVE_FREXPF 1
2600+ _ACEOF
2601+
2602+     cat >>confdefs.h <<\_ACEOF
2603+ #define HAVE_HYPOT 1
2604+ _ACEOF
2605+
2606+     cat >>confdefs.h <<\_ACEOF
2607+ #define HAVE_HYPOTF 1
2608+ _ACEOF
2609+
2610+     cat >>confdefs.h <<\_ACEOF
2611+ #define HAVE_ISINF 1
2612+ _ACEOF
2613+
2614+     cat >>confdefs.h <<\_ACEOF
2615+ #define HAVE_ISINFF 1
2616+ _ACEOF
2617+
2618+     cat >>confdefs.h <<\_ACEOF
2619+ #define HAVE_ISNAN 1
2620+ _ACEOF
2621+
2622+     cat >>confdefs.h <<\_ACEOF
2623+ #define HAVE_ISNANF 1
2624+ _ACEOF
2625+
2626+     cat >>confdefs.h <<\_ACEOF
2627+ #define HAVE_LOGF 1
2628+ _ACEOF
2629+
2630+     cat >>confdefs.h <<\_ACEOF
2631+ #define HAVE_LOG10F 1
2632+ _ACEOF
2633+
2634+     cat >>confdefs.h <<\_ACEOF
2635+ #define HAVE_MODFF 1
2636+ _ACEOF
2637+
2638+     cat >>confdefs.h <<\_ACEOF
2639+ #define HAVE_SINF 1
2640+ _ACEOF
2641+
2642+     cat >>confdefs.h <<\_ACEOF
2643+ #define HAVE_SINHF 1
2644+ _ACEOF
2645+
2646+     cat >>confdefs.h <<\_ACEOF
2647+ #define HAVE_SQRTF 1
2648+ _ACEOF
2649+
2650+     cat >>confdefs.h <<\_ACEOF
2651+ #define HAVE_TANF 1
2652+ _ACEOF
2653+
2654+     cat >>confdefs.h <<\_ACEOF
2655+ #define HAVE_TANHF 1
2656+ _ACEOF
2657+
2658+     ;;
2659+   *haiku*)
2660+
2661+
2662+
2663+
2664+
2665+
2666+
2667+
2668+
2669+
2670+
2671+
2672+
2673+
2674+
2675+ for ac_header in nan.h ieeefp.h endian.h sys/isa_defs.h \
2676+       machine/endian.h machine/param.h sys/machine.h sys/types.h \
2677+       fp.h float.h endian.h inttypes.h locale.h float.h stdint.h
2678+ do
2679+ as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
2680+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
2681+   { echo "$as_me:$LINENO: checking for $ac_header" >&5
2682+ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
2683+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
2684+   echo $ECHO_N "(cached) $ECHO_C" >&6
2685+ fi
2686+ ac_res=`eval echo '${'$as_ac_Header'}'`
2687+          { echo "$as_me:$LINENO: result: $ac_res" >&5
2688+ echo "${ECHO_T}$ac_res" >&6; }
2689+ else
2690+   # Is the header compilable?
2691+ { echo "$as_me:$LINENO: checking $ac_header usability" >&5
2692+ echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
2693+ cat >conftest.$ac_ext <<_ACEOF
2694+ /* confdefs.h.  */
2695+ _ACEOF
2696+ cat confdefs.h >>conftest.$ac_ext
2697+ cat >>conftest.$ac_ext <<_ACEOF
2698+ /* end confdefs.h.  */
2699+ $ac_includes_default
2700+ #include <$ac_header>
2701+ _ACEOF
2702+ rm -f conftest.$ac_objext
2703+ if { (ac_try="$ac_compile"
2704+ case "(($ac_try" in
2705+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
2706+   *) ac_try_echo=$ac_try;;
2707+ esac
2708+ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
2709+   (eval "$ac_compile") 2>conftest.er1
2710+   ac_status=$?
2711+   grep -v '^ *+' conftest.er1 >conftest.err
2712+   rm -f conftest.er1
2713+   cat conftest.err >&5
2714+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
2715+   (exit $ac_status); } && {
2716+    test -z "$ac_c_werror_flag" ||
2717+    test ! -s conftest.err
2718+        } && test -s conftest.$ac_objext; then
2719+   ac_header_compiler=yes
2720+ else
2721+   echo "$as_me: failed program was:" >&5
2722+ sed 's/^/| /' conftest.$ac_ext >&5
2723+
2724+   ac_header_compiler=no
2725+ fi
2726+
2727+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
2728+ { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
2729+ echo "${ECHO_T}$ac_header_compiler" >&6; }
2730+
2731+ # Is the header present?
2732+ { echo "$as_me:$LINENO: checking $ac_header presence" >&5
2733+ echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
2734+ cat >conftest.$ac_ext <<_ACEOF
2735+ /* confdefs.h.  */
2736+ _ACEOF
2737+ cat confdefs.h >>conftest.$ac_ext
2738+ cat >>conftest.$ac_ext <<_ACEOF
2739+ /* end confdefs.h.  */
2740+ #include <$ac_header>
2741+ _ACEOF
2742+ if { (ac_try="$ac_cpp conftest.$ac_ext"
2743+ case "(($ac_try" in
2744+   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
2745+   *) ac_try_echo=$ac_try;;
2746+ esac
2747+ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
2748+   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
2749+   ac_status=$?
2750+   grep -v '^ *+' conftest.er1 >conftest.err
2751+   rm -f conftest.er1
2752+   cat conftest.err >&5
2753+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
2754+   (exit $ac_status); } >/dev/null && {
2755+    test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
2756+    test ! -s conftest.err
2757+        }; then
2758+   ac_header_preproc=yes
2759+ else
2760+   echo "$as_me: failed program was:" >&5
2761+ sed 's/^/| /' conftest.$ac_ext >&5
2762+
2763+   ac_header_preproc=no
2764+ fi
2765+
2766+ rm -f conftest.err conftest.$ac_ext
2767+ { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
2768+ echo "${ECHO_T}$ac_header_preproc" >&6; }
2769+
2770+ # So?  What about this header?
2771+ case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
2772+   yes:no: )
2773+     { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
2774+ echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
2775+     { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
2776+ echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
2777+     ac_header_preproc=yes
2778+     ;;
2779+   no:yes:* )
2780+     { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
2781+ echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
2782+     { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
2783+ echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
2784+     { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
2785+ echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
2786+     { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
2787+ echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
2788+     { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
2789+ echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
2790+     { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
2791+ echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
2792+
2793+     ;;
2794+ esac
2795+ { echo "$as_me:$LINENO: checking for $ac_header" >&5
2796+ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
2797+ if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
2798+   echo $ECHO_N "(cached) $ECHO_C" >&6
2799+ else
2800+   eval "$as_ac_Header=\$ac_header_preproc"
2801+ fi
2802+ ac_res=`eval echo '${'$as_ac_Header'}'`
2803+          { echo "$as_me:$LINENO: result: $ac_res" >&5
2804+ echo "${ECHO_T}$ac_res" >&6; }
2805+
2806+ fi
2807+ if test `eval echo '${'$as_ac_Header'}'` = yes; then
2808+   cat >>confdefs.h <<_ACEOF
2809+ #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
2810+ _ACEOF
2811+
2812+ fi
2813+
2814+ done
2815+
2816+     SECTION_FLAGS='-ffunction-sections -fdata-sections'
2817+
2818+
2819+     cat >>confdefs.h <<\_ACEOF
2820+ #define HAVE_INT64_T 1
2821+ _ACEOF
2822+
2823+
2824+     cat >>confdefs.h <<\_ACEOF
2825+ #define HAVE_ACOSF 1
2826+ _ACEOF
2827+
2828+     cat >>confdefs.h <<\_ACEOF
2829+ #define HAVE_ASINF 1
2830+ _ACEOF
2831+
2832+     cat >>confdefs.h <<\_ACEOF
2833+ #define HAVE_ATANF 1
2834+ _ACEOF
2835+
2836+     cat >>confdefs.h <<\_ACEOF
2837+ #define HAVE_ATAN2F 1
2838+ _ACEOF
2839+
2840+     cat >>confdefs.h <<\_ACEOF
2841+ #define HAVE_CEILF 1
2842+ _ACEOF
2843+
2844+     cat >>confdefs.h <<\_ACEOF
2845+ #define HAVE_COPYSIGN 1
2846+ _ACEOF
2847+
2848+     cat >>confdefs.h <<\_ACEOF
2849+ #define HAVE_COPYSIGNF 1
2850+ _ACEOF
2851+
2852+     cat >>confdefs.h <<\_ACEOF
2853+ #define HAVE_COSF 1
2854+ _ACEOF
2855+
2856+     cat >>confdefs.h <<\_ACEOF
2857+ #define HAVE_COSHF 1
2858+ _ACEOF
2859+
2860+     cat >>confdefs.h <<\_ACEOF
2861+ #define HAVE_EXPF 1
2862+ _ACEOF
2863+
2864+     cat >>confdefs.h <<\_ACEOF
2865+ #define HAVE_FABSF 1
2866+ _ACEOF
2867+
2868+     cat >>confdefs.h <<\_ACEOF
2869+ #define HAVE_FINITE 1
2870+ _ACEOF
2871+
2872+     cat >>confdefs.h <<\_ACEOF
2873+ #define HAVE_FINITEF 1
2874+ _ACEOF
2875+
2876+     cat >>confdefs.h <<\_ACEOF
2877+ #define HAVE_FLOORF 1
2878+ _ACEOF
2879+
2880+     cat >>confdefs.h <<\_ACEOF
2881+ #define HAVE_FMODF 1
2882+ _ACEOF
2883+
2884+     cat >>confdefs.h <<\_ACEOF
2885+ #define HAVE_FREXPF 1
2886+ _ACEOF
2887+
2888+     cat >>confdefs.h <<\_ACEOF
2889+ #define HAVE_HYPOT 1
2890+ _ACEOF
2891+
2892+     cat >>confdefs.h <<\_ACEOF
2893+ #define HAVE_HYPOTF 1
2894+ _ACEOF
2895+
2896+     cat >>confdefs.h <<\_ACEOF
2897+ #define HAVE_ISINF 1
2898+ _ACEOF
2899+
2900+     cat >>confdefs.h <<\_ACEOF
2901+ #define HAVE_ISINFF 1
2902+ _ACEOF
2903+
2904+     cat >>confdefs.h <<\_ACEOF
2905+ #define HAVE_ISNAN 1
2906+ _ACEOF
2907+
2908+     cat >>confdefs.h <<\_ACEOF
2909+ #define HAVE_ISNANF 1
2910+ _ACEOF
2911+
2912+     cat >>confdefs.h <<\_ACEOF
2913+ #define HAVE_LOGF 1
2914+ _ACEOF
2915+
2916+     cat >>confdefs.h <<\_ACEOF
2917+ #define HAVE_LOG10F 1
2918+ _ACEOF
2919+
2920+     cat >>confdefs.h <<\_ACEOF
2921+ #define HAVE_MODFF 1
2922+ _ACEOF
2923+
2924+     cat >>confdefs.h <<\_ACEOF
2925+ #define HAVE_SINF 1
2926+ _ACEOF
2927+
2928+     cat >>confdefs.h <<\_ACEOF
2929+ #define HAVE_SINHF 1
2930+ _ACEOF
2931+
2932+     cat >>confdefs.h <<\_ACEOF
2933+ #define HAVE_SQRTF 1
2934+ _ACEOF
2935+
2936+     cat >>confdefs.h <<\_ACEOF
2937+ #define HAVE_TANF 1
2938+ _ACEOF
2939+
2940+     cat >>confdefs.h <<\_ACEOF
2941+ #define HAVE_TANHF 1
2942+ _ACEOF
2943+
2944+     ;;
2945    *-hpux*)
2946      SECTION_FLAGS='-ffunction-sections -fdata-sections'
2947 
2948diff -Nrcpad gcc-4.8.2/libstdc++-v3/crossconfig.m4 gcc/libstdc++-v3/crossconfig.m4
2949*** gcc-4.8.2/libstdc++-v3/crossconfig.m4   2012-05-03 04:34:31.000000000 +0900
2950--- gcc/libstdc++-v3/crossconfig.m4 2013-06-01 17:40:44.000000000 +0900
2951*************** case "${host}" in
2952*** 99,104 ****
2953--- 99,146 ----
2954        AC_DEFINE(HAVE_ISNANL)
2955      fi
2956      ;;
2957
2958+    *-haiku*)
2959+      AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
2960+        machine/endian.h machine/param.h sys/machine.h sys/types.h \
2961+        fp.h float.h endian.h inttypes.h locale.h float.h stdint.h])
2962+      SECTION_FLAGS='-ffunction-sections -fdata-sections'
2963+      AC_SUBST(SECTION_FLAGS)
2964
2965+      AC_DEFINE(HAVE_INT64_T)
2966
2967+      AC_DEFINE(HAVE_ACOSF)
2968+      AC_DEFINE(HAVE_ASINF)
2969+      AC_DEFINE(HAVE_ATANF)
2970+      AC_DEFINE(HAVE_ATAN2F)
2971+      AC_DEFINE(HAVE_CEILF)
2972+      AC_DEFINE(HAVE_COPYSIGN)
2973+      AC_DEFINE(HAVE_COPYSIGNF)
2974+      AC_DEFINE(HAVE_COSF)
2975+      AC_DEFINE(HAVE_COSHF)
2976+      AC_DEFINE(HAVE_EXPF)
2977+      AC_DEFINE(HAVE_FABSF)
2978+      AC_DEFINE(HAVE_FINITE)
2979+      AC_DEFINE(HAVE_FINITEF)
2980+      AC_DEFINE(HAVE_FLOORF)
2981+      AC_DEFINE(HAVE_FMODF)
2982+      AC_DEFINE(HAVE_FREXPF)
2983+      AC_DEFINE(HAVE_HYPOT)
2984+      AC_DEFINE(HAVE_HYPOTF)
2985+      AC_DEFINE(HAVE_ISINF)
2986+      AC_DEFINE(HAVE_ISINFF)
2987+      AC_DEFINE(HAVE_ISNAN)
2988+      AC_DEFINE(HAVE_ISNANF)
2989+      AC_DEFINE(HAVE_LOGF)
2990+      AC_DEFINE(HAVE_LOG10F)
2991+      AC_DEFINE(HAVE_MODFF)
2992+      AC_DEFINE(HAVE_SINF)
2993+      AC_DEFINE(HAVE_SINHF)
2994+      AC_DEFINE(HAVE_SQRTF)
2995+      AC_DEFINE(HAVE_TANF)
2996+      AC_DEFINE(HAVE_TANHF)
2997+      ;;
2998
2999    *-hpux*)
3000      SECTION_FLAGS='-ffunction-sections -fdata-sections'
3001      AC_SUBST(SECTION_FLAGS)
3002diff -Nrcpad gcc-4.8.2/libstdc++-v3/libsupc++/tinfo.cc gcc/libstdc++-v3/libsupc++/tinfo.cc
3003*** gcc-4.8.2/libstdc++-v3/libsupc++/tinfo.cc   2013-02-04 02:54:05.000000000 +0900
3004--- gcc/libstdc++-v3/libsupc++/tinfo.cc 2013-06-01 17:42:13.000000000 +0900
3005*************** std::type_info::
3006*** 30,35 ****
3007--- 30,44 ----
3008  ~type_info ()
3009  { }
3010 
3011+ #ifdef __HAIKU__
3012+ #ifndef __GXX_MERGED_TYPEINFO_NAMES
3013+ #define __GXX_MERGED_TYPEINFO_NAMES 0
3014+ #endif
3015+ #ifndef __GXX_TYPEINFO_EQUALITY_INLINE
3016+ #define __GXX_TYPEINFO_EQUALITY_INLINE 0
3017+ #endif
3018+ #endif
3019
3020  #if !__GXX_TYPEINFO_EQUALITY_INLINE
3021 
3022  // We can't rely on common symbols being shared between shared objects.
3023diff -Nrcpad gcc-4.8.2/libtool.m4 gcc/libtool.m4
3024*** gcc-4.8.2/libtool.m4    2012-09-15 08:23:41.000000000 +0900
3025--- gcc/libtool.m4  2013-03-31 19:18:00.000000000 +0900
3026*************** haiku*)
3027*** 2335,2342 ****
3028    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
3029    soname_spec='${libname}${release}${shared_ext}$major'
3030    shlibpath_var=LIBRARY_PATH
3031!   shlibpath_overrides_runpath=yes
3032!   sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
3033    hardcode_into_libs=yes
3034    ;;
3035 
3036--- 2335,2342 ----
3037    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
3038    soname_spec='${libname}${release}${shared_ext}$major'
3039    shlibpath_var=LIBRARY_PATH
3040!   shlibpath_overrides_runpath=no
3041!   sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
3042    hardcode_into_libs=yes
3043    ;;
3044 
3045diff -Nrcpad gcc-4.8.2/lto-plugin/configure gcc/lto-plugin/configure
3046*** gcc-4.8.2/lto-plugin/configure  2012-09-15 08:42:24.000000000 +0900
3047--- gcc/lto-plugin/configure    2013-03-31 19:18:00.000000000 +0900
3048*************** haiku*)
3049*** 9755,9762 ****
3050    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
3051    soname_spec='${libname}${release}${shared_ext}$major'
3052    shlibpath_var=LIBRARY_PATH
3053!   shlibpath_overrides_runpath=yes
3054!   sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
3055    hardcode_into_libs=yes
3056    ;;
3057 
3058--- 9755,9762 ----
3059    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
3060    soname_spec='${libname}${release}${shared_ext}$major'
3061    shlibpath_var=LIBRARY_PATH
3062!   shlibpath_overrides_runpath=no
3063!   sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
3064    hardcode_into_libs=yes
3065    ;;
3066 
3067diff -Nrcpad gcc-4.8.2/zlib/configure gcc/zlib/configure
3068*** gcc-4.8.2/zlib/configure    2012-09-15 08:43:33.000000000 +0900
3069--- gcc/zlib/configure  2013-03-31 19:18:00.000000000 +0900
3070*************** haiku*)
3071*** 9579,9586 ****
3072    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
3073    soname_spec='${libname}${release}${shared_ext}$major'
3074    shlibpath_var=LIBRARY_PATH
3075!   shlibpath_overrides_runpath=yes
3076!   sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/system/lib'
3077    hardcode_into_libs=yes
3078    ;;
3079 
3080--- 9579,9586 ----
3081    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
3082    soname_spec='${libname}${release}${shared_ext}$major'
3083    shlibpath_var=LIBRARY_PATH
3084!   shlibpath_overrides_runpath=no
3085!   sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
3086    hardcode_into_libs=yes
3087    ;;
3088