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, 6 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