diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f269930732d155cf4cf6c11046c278265f671a20..438e8bb95f0c1950ef9b3ded9836a8637e9bf7cc 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,59 @@ +2011-08-05 Rainer Orth + + * Makefile.in (UNWIND_H): Remove. + (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to + ../libgcc/Makefile.in. + (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise. + (LIBUNWINDDEP): Remove. + (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies. + (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED, + LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL. + (stmp-int-hdrs): Remove $(UNWIND_H) dependency. + Don't copy $(UNWIND_H). + * config.gcc (ia64*-*-linux*): Remove with_system_libunwind + handling. + * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove. + * aclocal.m4: Regenerate. + * configure: Regenerate. + * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h, + unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c, + unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h, + unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc. + * unwind-dw2-fde-darwin.c: Move to ../libgcc/config. + * config/arm/libunwind.S, config/arm/pr-support.c, + config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to + ../libgcc/config/arm. + * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove. + * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove. + * config/frv/t-frv ($(T)frvbegin$(objext)): Use + $(srcdir)/../libgcc to refer to unwind-dw2-fde.h. + ($(T)frvend$(objext)): Likewise. + * config/ia64/t-glibc (LIB2ADDEH): Remove. + * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64. + * config/ia64/fde-glibc.c, config/ia64/fde-vms.c, + config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to + ../libgcc/config/ia64. + * config/ia64/t-hpux (LIB2ADDEH): Remove. + * config/ia64/t-ia64 (LIB2ADDEH): Remove. + * config/ia64/t-vms (LIB2ADDEH): Remove. + * config/ia64/vms.h (UNW_IVMS_MODE, + MD_UNW_COMPATIBLE_PERSONALITY_P): Remove. + * config/picochip/t-picochip (LIB2ADDEH): Remove. + * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove. + * config/rs6000/t-darwin (LIB2ADDEH): Remove. + * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000. + * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use + $(srcdir)/../libgcc to refer to unwinder sources. + * config/spu/t-spu-elf (LIB2ADDEH): Remove. + * config/t-darwin (LIB2ADDEH): Remove. + * config/t-freebsd (LIB2ADDEH): Remove. + * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove. + * config/t-libunwind-elf: Move to ../libgcc/config. + * config/t-linux (LIB2ADDEH): Remove. + * config/t-sol2 (LIB2ADDEH): Remove. + * config/xtensa/t-xtensa (LIB2ADDEH): Remove. + * system.h (MD_FROB_UPDATE_CONTEXT): Poison. + 2011-08-05 H.J. Lu * config/i386/i386.c (processor_alias_table): Add core-avx-i. diff --git a/gcc/Makefile.in b/gcc/Makefile.in index 0204f93208a0c363eea166518b0d90b5806bdc4f..889deb16240ee0ab94817045270c4858eefc00bc 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -378,8 +378,6 @@ USER_H = $(srcdir)/ginclude/float.h \ USER_H_INC_NEXT_PRE = @user_headers_inc_next_pre@ USER_H_INC_NEXT_POST = @user_headers_inc_next_post@ -UNWIND_H = $(srcdir)/unwind-generic.h - # The GCC to use for compiling crt*.o. # Usually the one we just built. # Don't use this as a dependency--use $(GCC_PASSES). @@ -693,18 +691,6 @@ CRTSTUFF_CFLAGS = -O2 $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -g0 \ -fno-stack-protector \ $(INHIBIT_LIBC_CFLAGS) -# Additional sources to handle exceptions; overridden by targets as needed. -LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde.c \ - $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c -LIB2ADDEHSTATIC = $(LIB2ADDEH) -LIB2ADDEHSHARED = $(LIB2ADDEH) - -# Don't build libunwind by default. -LIBUNWIND = -LIBUNWINDDEP = -SHLIBUNWIND_LINK = -SHLIBUNWIND_INSTALL = - # nm flags to list global symbols in libgcc object files. SHLIB_NM_FLAGS = -pg @@ -1898,7 +1884,7 @@ GCC_EXTRA_PARTS := $(sort $(EXTRA_MULTILIB_PARTS) $(EXTRA_PARTS)) libgcc-support: libgcc.mvars stmp-int-hdrs $(TCONFIG_H) \ $(MACHMODE_H) $(FPBIT) $(DPBIT) $(TPBIT) $(LIB2ADD) \ - $(LIB2ADD_ST) $(LIB2ADDEH) $(srcdir)/emutls.c gcov-iov.h $(SFP_MACHINE) + $(LIB2ADD_ST) gcov-iov.h $(SFP_MACHINE) libgcc.mvars: config.status Makefile $(LIB2ADD) $(LIB2ADD_ST) specs \ xgcc$(exeext) @@ -1909,13 +1895,7 @@ libgcc.mvars: config.status Makefile $(LIB2ADD) $(LIB2ADD_ST) specs \ echo LIB2FUNCS_EXCLUDE = '$(LIB2FUNCS_EXCLUDE)' >> tmp-libgcc.mvars echo LIB2ADD = '$(call srcdirify,$(LIB2ADD))' >> tmp-libgcc.mvars echo LIB2ADD_ST = '$(call srcdirify,$(LIB2ADD_ST))' >> tmp-libgcc.mvars - echo LIB2ADDEH = '$(call srcdirify,$(LIB2ADDEH) $(srcdir)/emutls.c)' >> tmp-libgcc.mvars - echo LIB2ADDEHSTATIC = '$(call srcdirify,$(LIB2ADDEHSTATIC) $(srcdir)/emutls.c)' >> tmp-libgcc.mvars - echo LIB2ADDEHSHARED = '$(call srcdirify,$(LIB2ADDEHSHARED) $(srcdir)/emutls.c)' >> tmp-libgcc.mvars echo LIB2_SIDITI_CONV_FUNCS = '$(LIB2_SIDITI_CONV_FUNCS)' >> tmp-libgcc.mvars - echo LIBUNWIND = '$(call srcdirify,$(LIBUNWIND))' >> tmp-libgcc.mvars - echo SHLIBUNWIND_LINK = '$(SHLIBUNWIND_LINK)' >> tmp-libgcc.mvars - echo SHLIBUNWIND_INSTALL = '$(SHLIBUNWIND_INSTALL)' >> tmp-libgcc.mvars echo FPBIT = '$(FPBIT)' >> tmp-libgcc.mvars echo FPBIT_FUNCS = '$(FPBIT_FUNCS)' >> tmp-libgcc.mvars echo LIB2_DIVMOD_FUNCS = '$(LIB2_DIVMOD_FUNCS)' >> tmp-libgcc.mvars @@ -4114,7 +4094,7 @@ gcov-dump$(exeext): $(GCOV_DUMP_OBJS) $(LIBDEPS) # be rebuilt. # Build the include directories. -stmp-int-hdrs: $(STMP_FIXINC) $(USER_H) $(UNWIND_H) fixinc_list +stmp-int-hdrs: $(STMP_FIXINC) $(USER_H) fixinc_list # Copy in the headers provided with gcc. # The sed command gets just the last file name component; # this is necessary because VPATH could add a dirname. @@ -4146,9 +4126,6 @@ stmp-int-hdrs: $(STMP_FIXINC) $(USER_H) $(UNWIND_H) fixinc_list chmod a+r include/$$file; \ fi; \ done - rm -f include/unwind.h - cp $(UNWIND_H) include/unwind.h - chmod a+r include/unwind.h rm -f include/stdint.h if [ $(USE_GCC_STDINT) = wrap ]; then \ rm -f include/stdint-gcc.h; \ diff --git a/gcc/aclocal.m4 b/gcc/aclocal.m4 index 73afd7fedee151d84e1c4d01bdb8c23197454dec..1b90b2f5ee6603b8cdfed2a2f58b4858542b872b 100644 --- a/gcc/aclocal.m4 +++ b/gcc/aclocal.m4 @@ -116,6 +116,5 @@ m4_include([../config/lib-prefix.m4]) m4_include([../config/override.m4]) m4_include([../config/progtest.m4]) m4_include([../config/stdint.m4]) -m4_include([../config/unwind_ipinfo.m4]) m4_include([../config/warnings.m4]) m4_include([acinclude.m4]) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index ce02f4f2889adf7e20d42f48421aa0dfa18d407f..743fa0e57dca39535d6f8c9f73aee37e2782f3ec 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,8 @@ +2011-08-05 Rainer Orth + + * gcc-interface/Makefile.in (raise-gcc.o): Search + $(srcdir)/../libgcc. + 2011-08-05 Bob Duff * sinfo.ads, sinfo.adb (Subpool_Handle_Name): New attribute for @@ -100,6 +105,7 @@ necessary. * put_scos.adb: Code simplification based on above change. +>>>>>>> .r177446 2011-08-05 Robert Dewar * sem_ch3.adb, gnatcmd.adb, switch-c.adb, exp_attr.adb, make.adb, diff --git a/gcc/ada/gcc-interface/Makefile.in b/gcc/ada/gcc-interface/Makefile.in index 1642cc8622bbd53f28c01f63036abd8147c0f655..1e7a392edf48caa47031952a22ea4089329fa7c6 100644 --- a/gcc/ada/gcc-interface/Makefile.in +++ b/gcc/ada/gcc-interface/Makefile.in @@ -2773,7 +2773,7 @@ vx_stack_info.o : vx_stack_info.c raise-gcc.o : raise-gcc.c raise.h $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ADA_CFLAGS) \ - -iquote $(srcdir) \ + -iquote $(srcdir)/../libgcc \ $(ALL_CPPFLAGS) $(INCLUDES) $< $(OUTPUT_OPTION) cio.o : cio.c diff --git a/gcc/config.gcc b/gcc/config.gcc index 94f15d8706d946fdeacfff8db13c3592a4b362f0..673b768b7704d7abffebe5f3ca0f2b661e4622b9 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -1604,9 +1604,6 @@ ia64*-*-freebsd*) ia64*-*-linux*) tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h" tmake_file="${tmake_file} ia64/t-ia64 t-libunwind ia64/t-glibc" - if test x$with_system_libunwind != xyes ; then - tmake_file="${tmake_file} t-libunwind-elf ia64/t-glibc-libunwind" - fi target_cpu_default="MASK_GNU_AS|MASK_GNU_LD" extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o" ;; diff --git a/gcc/config/arm/t-bpabi b/gcc/config/arm/t-bpabi index 78812b35bd8f8f2e3d75fbc37c5aa43a62373c5f..b6b5f40d7231022efa2e18fe58cd7a3ea7214f72 100644 --- a/gcc/config/arm/t-bpabi +++ b/gcc/config/arm/t-bpabi @@ -25,11 +25,6 @@ LIB2FUNCS_EXTRA = $(srcdir)/config/arm/bpabi.c \ LIB2FUNCS_STATIC_EXTRA = $(srcdir)/config/arm/fp16.c -UNWIND_H = $(srcdir)/config/arm/unwind-arm.h -LIB2ADDEH = $(srcdir)/config/arm/unwind-arm.c \ - $(srcdir)/config/arm/libunwind.S \ - $(srcdir)/config/arm/pr-support.c $(srcdir)/unwind-c.c - # Add the BPABI names. SHLIB_MAPFILES += $(srcdir)/config/arm/libgcc-bpabi.ver diff --git a/gcc/config/arm/t-symbian b/gcc/config/arm/t-symbian index 3be83f445aa14fcb5a03e3eaec0b04717b721c22..f074591acbe3eb4e3c059fe50d14eb26d00a9a81 100644 --- a/gcc/config/arm/t-symbian +++ b/gcc/config/arm/t-symbian @@ -30,10 +30,6 @@ LIB1ASMFUNCS += \ _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \ _fixsfsi _fixunssfsi -# Include the gcc personality routine -UNWIND_H = $(srcdir)/config/arm/unwind-arm.h -LIB2ADDEH = $(srcdir)/unwind-c.c $(srcdir)/config/arm/pr-support.c - # Include half-float helpers. LIB2FUNCS_STATIC_EXTRA = $(srcdir)/config/arm/fp16.c diff --git a/gcc/config/frv/t-frv b/gcc/config/frv/t-frv index 0c58bb1671343c3e6b9846ca5663b5330eb6252d..2729008879c482f5019349810b8863c1c7a0fa07 100644 --- a/gcc/config/frv/t-frv +++ b/gcc/config/frv/t-frv @@ -1,4 +1,4 @@ -# Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. +# Copyright (C) 2002, 2003, 2004, 2011 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -81,12 +81,12 @@ EXTRA_MULTILIB_PARTS=frvbegin.o frvend.o FRVSTUFF_CFLAGS = $(TARGET_LIBGCC2_CFLAGS) $(T)frvbegin$(objext): $(srcdir)/config/frv/frvbegin.c $(GCC_PASSES) \ - $(CONFIG_H) defaults.h unwind-dw2-fde.h gbl-ctors.h + $(CONFIG_H) defaults.h $(srcdir)/../libgcc/unwind-dw2-fde.h gbl-ctors.h $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) $(FRVSTUFF_CFLAGS) \ -c $(srcdir)/config/frv/frvbegin.c -o $(T)frvbegin$(objext) $(T)frvend$(objext): $(srcdir)/config/frv/frvend.c $(GCC_PASSES) \ - $(CONFIG_H) defaults.h unwind-dw2-fde.h gbl-ctors.h + $(CONFIG_H) defaults.h $(srcdir)/../libgcc/unwind-dw2-fde.h gbl-ctors.h $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) $(FRVSTUFF_CFLAGS) \ -c $(srcdir)/config/frv/frvend.c -o $(T)frvend$(objext) diff --git a/gcc/config/ia64/t-glibc b/gcc/config/ia64/t-glibc index e6d72b94a871469a94600edb54608bf3a96e2e3b..ce18a92e27582aba97aefaf0e6eaf53f67337485 100644 --- a/gcc/config/ia64/t-glibc +++ b/gcc/config/ia64/t-glibc @@ -1,5 +1 @@ -# Use system libunwind library on IA-64 GLIBC based system. -LIB2ADDEH = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c \ - $(srcdir)/unwind-compat.c - SHLIB_MAPFILES += $(srcdir)/config/ia64/libgcc-glibc.ver diff --git a/gcc/config/ia64/t-hpux b/gcc/config/ia64/t-hpux index a97ab5c4478ff686cb10241af76a4981c03a0623..4aa661441b2b0ba034d2a9a97675353daa689b07 100644 --- a/gcc/config/ia64/t-hpux +++ b/gcc/config/ia64/t-hpux @@ -1,5 +1,5 @@ # Copyright (C) 2001, 2002, 2003, 2004, 2005, -# 2006 Free Software Foundation, Inc. +# 2006, 2011 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -50,8 +50,6 @@ LIBGCC1_TEST = T_CFLAGS += -DUSE_LIBUNWIND_EXCEPTIONS -LIB2ADDEH = $(srcdir)/unwind-c.c - SHLIB_EXT = .so # Must include -lunwind in the link, so that libgcc_s.so has the necessary # DT_NEEDED entry for libunwind. diff --git a/gcc/config/ia64/t-ia64 b/gcc/config/ia64/t-ia64 index 4f013e2d591ae0b2541b2989fbb95ee73c1ebddc..f130f7c09d13c8c0db5452c291caa417f1bd1542 100644 --- a/gcc/config/ia64/t-ia64 +++ b/gcc/config/ia64/t-ia64 @@ -43,9 +43,6 @@ SHLIB_MAPFILES += $(srcdir)/config/ia64/libgcc-ia64.ver # Effectively disable the crtbegin/end rules using crtstuff.c T = disable -LIB2ADDEH = $(srcdir)/config/ia64/unwind-ia64.c $(srcdir)/unwind-sjlj.c \ - $(srcdir)/unwind-c.c - ia64-c.o: $(srcdir)/config/ia64/ia64-c.c $(CONFIG_H) $(SYSTEM_H) \ coretypes.h $(TM_H) $(TREE_H) $(CPPLIB_H) $(C_COMMON_H) $(C_PRAGMA_H) $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ diff --git a/gcc/config/ia64/t-vms b/gcc/config/ia64/t-vms index bcd753401f1d6ce205349a196a1b44f9429092fa..094d53483ee50cbd1ef70d6bb8cba405be159e32 100644 --- a/gcc/config/ia64/t-vms +++ b/gcc/config/ia64/t-vms @@ -32,8 +32,6 @@ $(T)crtinitS.o: $(srcdir)/config/ia64/vms-crtinit.asm $(GCC_PASSES) $(GCC_FOR_TARGET) -I. -c -o $(T)crtinitS.o -x assembler-with-cpp \ $(srcdir)/config/ia64/vms-crtinit.asm -LIB2ADDEH += $(srcdir)/config/ia64/fde-vms.c - # Shared library macros shlib_version:=$(shell echo $(BASEVER_c) | sed -e 's/\./,/' -e 's/\.//g') SHLIB_EXT = .exe diff --git a/gcc/config/ia64/vms.h b/gcc/config/ia64/vms.h index 847d79afa1d5adcb9b2364078223073fe2ea220b..853e0239d3b52dd265970fa5d5d38b1f45800cd7 100644 --- a/gcc/config/ia64/vms.h +++ b/gcc/config/ia64/vms.h @@ -139,9 +139,6 @@ STATIC func_ptr __CTOR_LIST__[1] \ /* Define this to be nonzero if static stack checking is supported. */ #define STACK_CHECK_STATIC_BUILTIN 1 -#define UNW_IVMS_MODE(HEADER) (((HEADER) >> 44) & 0x3L) -#define MD_UNW_COMPATIBLE_PERSONALITY_P(HEADER) (!UNW_IVMS_MODE (HEADER)) - /* Minimum amount of stack required to recover from an anticipated stack overflow detection. The default value conveys an estimate of the amount of stack required to propagate an exception. */ diff --git a/gcc/config/picochip/t-picochip b/gcc/config/picochip/t-picochip index ba4394eceebcc1e7bef9dd17d2d20f123196a1e8..4df74a01fc6b1fe661b9aa286cdb4254c12de9b8 100644 --- a/gcc/config/picochip/t-picochip +++ b/gcc/config/picochip/t-picochip @@ -43,9 +43,6 @@ LIB2FUNCS_EXTRA = \ LIB1ASMFUNCS = _mulsc3 _divsc3 LIB1ASMSRC = picochip/libgccExtras/fake_libgcc.asm -# Turn off the building of exception handling libraries. -LIB2ADDEH = - # Turn off ranlib on target libraries. RANLIB_FOR_TARGET = cat diff --git a/gcc/config/rs6000/aix.h b/gcc/config/rs6000/aix.h index 13d317f508a9f377d5a00c618f5d4657ce607ee0..2c678a3a247921427a2b5e233ecdea13a31645c3 100644 --- a/gcc/config/rs6000/aix.h +++ b/gcc/config/rs6000/aix.h @@ -209,40 +209,6 @@ /* And similarly for general purpose registers. */ #define GP_SAVE_INLINE(FIRST_REG) ((FIRST_REG) < 32) -/* If the current unwind info (FS) does not contain explicit info - saving R2, then we have to do a minor amount of code reading to - figure out if it was saved. The big problem here is that the - code that does the save/restore is generated by the linker, so - we have no good way to determine at compile time what to do. */ - -#define R_LR 65 - -#ifdef __64BIT__ -#define MD_FROB_UPDATE_CONTEXT(CTX, FS) \ - do { \ - if ((FS)->regs.reg[2].how == REG_UNSAVED) \ - { \ - unsigned int *insn \ - = (unsigned int *) \ - _Unwind_GetGR ((CTX), R_LR); \ - if (*insn == 0xE8410028) \ - _Unwind_SetGRPtr ((CTX), 2, (CTX)->cfa + 40); \ - } \ - } while (0) -#else -#define MD_FROB_UPDATE_CONTEXT(CTX, FS) \ - do { \ - if ((FS)->regs.reg[2].how == REG_UNSAVED) \ - { \ - unsigned int *insn \ - = (unsigned int *) \ - _Unwind_GetGR ((CTX), R_LR); \ - if (*insn == 0x80410014) \ - _Unwind_SetGRPtr ((CTX), 2, (CTX)->cfa + 20); \ - } \ - } while (0) -#endif - #define PROFILE_HOOK(LABEL) output_profile_hook (LABEL) /* No version of AIX fully supports AltiVec or 64-bit instructions in diff --git a/gcc/config/rs6000/t-darwin b/gcc/config/rs6000/t-darwin index 8113b9ecbcb4f0aab63bc1a3d9dc9f8a35ebb979..27fc07b69b38234213e6c2b68a624b905e0736ef 100644 --- a/gcc/config/rs6000/t-darwin +++ b/gcc/config/rs6000/t-darwin @@ -1,5 +1,5 @@ # Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, -# 2007 Free Software Foundation, Inc. +# 2007, 2011 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -40,7 +40,5 @@ TARGET_LIBGCC2_CFLAGS = -Wa,-force_cpusubtype_ALL -pipe -mmacosx-version-min=10. # Export the _xlq* symbols from darwin-ldouble.c. SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-ppc64.ver -LIB2ADDEH += $(srcdir)/config/rs6000/darwin-fallback.c - darwin-fpsave.o: $(srcdir)/config/rs6000/darwin-asm.h darwin-tramp.o: $(srcdir)/config/rs6000/darwin-asm.h diff --git a/gcc/config/sh/t-sh b/gcc/config/sh/t-sh index a897bfffb47f6571a53c310f530bb32c24bc61f4..27cbd3d3e88d8e2b1b35d9152878dc84defd25f0 100644 --- a/gcc/config/sh/t-sh +++ b/gcc/config/sh/t-sh @@ -1,5 +1,5 @@ # Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2006, 2008, 2009 Free Software Foundation, Inc. +# 2003, 2004, 2006, 2008, 2009, 2011 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -149,7 +149,7 @@ $(T)sdivsi3_i4i-Os-4-200.o: $(srcdir)/config/sh/lib1funcs-Os-4-200.asm $(GCC_PAS $(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) -c -o $@ -DL_sdivsi3_i4i -x assembler-with-cpp $< $(T)udivsi3_i4i-Os-4-200.o: $(srcdir)/config/sh/lib1funcs-Os-4-200.asm $(GCC_PASSES) $(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) -c -o $@ -DL_udivsi3_i4i -x assembler-with-cpp $< -$(T)unwind-dw2-Os-4-200.o: $(srcdir)/unwind-dw2.c $(srcdir)/unwind-generic.h unwind-pe.h unwind.inc unwind-dw2-fde.h unwind-dw2.h $(CONFIG_H) coretypes.h $(TM_H) $(MACHMODE_H) longlong.h config.status stmp-int-hdrs tsystem.h $(GCC_PASSES) +$(T)unwind-dw2-Os-4-200.o: $(srcdir)/../libgcc/unwind-dw2.c $(srcdir)/../libgcc/unwind-generic.h $(srcdir)/../libgcc/unwind-pe.h $(srcdir)/../libgcc/unwind.inc $(srcdir)/../libgcc/unwind-dw2-fde.h $(srcdir)/../libgcc/unwind-dw2.h $(CONFIG_H) coretypes.h $(TM_H) $(MACHMODE_H) longlong.h config.status stmp-int-hdrs tsystem.h $(GCC_PASSES) $(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) $(LIBGCC2_CFLAGS) $(INCLUDES) $(vis_hide) -fexceptions -Os -c -o $@ $< OBJS_Os_4_200=$(T)sdivsi3_i4i-Os-4-200.o $(T)udivsi3_i4i-Os-4-200.o $(T)unwind-dw2-Os-4-200.o $(T)libgcc-Os-4-200.a: $(OBJS_Os_4_200) $(GCC_PASSES) diff --git a/gcc/config/spu/t-spu-elf b/gcc/config/spu/t-spu-elf index 5189f28584da3a2bcc1836891ceda916a7d747bd..ab680f5be881621a7ccc98de071043f85df33e32 100644 --- a/gcc/config/spu/t-spu-elf +++ b/gcc/config/spu/t-spu-elf @@ -47,9 +47,6 @@ LIB2FUNCS_STATIC_EXTRA = $(srcdir)/config/spu/float_unssidf.c \ $(srcdir)/config/spu/divmodti4.c \ $(srcdir)/config/spu/divv2df3.c -LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde.c \ - $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c - # We want fine grained libraries, so use the new code to build the # floating point emulation libraries. FPBIT = fp-bit.c diff --git a/gcc/config/t-darwin b/gcc/config/t-darwin index 9e77395998d8f80d7fd42e6e1cfac69057d7222d..d952bd39273e3047589c70b1890437c92a2e3da0 100644 --- a/gcc/config/t-darwin +++ b/gcc/config/t-darwin @@ -42,10 +42,6 @@ darwin-driver.o: $(srcdir)/config/darwin-driver.c \ $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ $(srcdir)/config/darwin-driver.c -# Use unwind-dw2-fde-darwin -LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde-darwin.c \ - $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c - # -pipe because there's an assembler bug, 4077127, which causes # it to not properly process the first # directive, causing temporary # file names to appear in stabs, causing the bootstrap to fail. Using -pipe diff --git a/gcc/config/t-freebsd b/gcc/config/t-freebsd index af2df24f1054696b7f5f01fd535d0c86b2f764f7..0680618a6ec703efec0d50f05def28eda7ce1458 100644 --- a/gcc/config/t-freebsd +++ b/gcc/config/t-freebsd @@ -3,7 +3,3 @@ CRTSTUFF_T_CFLAGS_S = $(CRTSTUFF_T_CFLAGS) -fPIC # Compile libgcc.a with pic. TARGET_LIBGCC2_CFLAGS += -fPIC - -# Use unwind-dw2-fde-glibc -LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde-glibc.c \ - $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c diff --git a/gcc/config/t-libunwind b/gcc/config/t-libunwind index 6fdaf676b37b4d1df32b06e7340079169b4f839e..6b8d2dd1292c19a077a0cd2f07535a3a72ad7b08 100644 --- a/gcc/config/t-libunwind +++ b/gcc/config/t-libunwind @@ -1,4 +1,4 @@ -# Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. +# Copyright (C) 2002, 2003, 2004, 2011 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -22,9 +22,6 @@ # so that the resulting libgcc_s.so has the necessary DT_NEEDED entry for # libunwind. SHLIB_LC = -lunwind -lc -LIB2ADDEH = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c \ - $(srcdir)/unwind-compat.c $(srcdir)/unwind-dw2-fde-compat.c -LIB2ADDEHSTATIC = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c T_CFLAGS += -DUSE_LIBUNWIND_EXCEPTIONS TARGET_LIBGCC2_CFLAGS += -DUSE_GAS_SYMVER diff --git a/gcc/config/t-linux b/gcc/config/t-linux index 039fa27ae82fbdd080b292b328b7ab846f915a74..64d19ca8dd77ff1c0b62a8d2da18396de2668a71 100644 --- a/gcc/config/t-linux +++ b/gcc/config/t-linux @@ -25,7 +25,3 @@ TARGET_LIBGCC2_CFLAGS = -fPIC # Override t-slibgcc-elf-ver to export some libgcc symbols with # the symbol versions that glibc used. SHLIB_MAPFILES += $(srcdir)/config/libgcc-glibc.ver - -# Use unwind-dw2-fde-glibc -LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde-glibc.c \ - $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c diff --git a/gcc/config/t-sol2 b/gcc/config/t-sol2 index 73fd8eb3667d97e249e223a879d17749f8576945..f53da4d3ca6617d8c42feff142a58efc9068e76f 100644 --- a/gcc/config/t-sol2 +++ b/gcc/config/t-sol2 @@ -31,8 +31,3 @@ sol2.o: $(srcdir)/config/sol2.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \ # This is required by gcc/ada/gcc-interface/Makefile.in. TARGET_LIBGCC2_CFLAGS = -fPIC - -# Use unwind-dw2-fde-glibc.c. Unless linker support and dl_iterate_phdr -# are present, automatically falls back to unwind-dw2-fde.c. -LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde-glibc.c \ - $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c diff --git a/gcc/config/xtensa/t-xtensa b/gcc/config/xtensa/t-xtensa index c3d98ae30b5a4c17ac1cacc7d1574361555e7f97..641e6fe76201e011cdceaf87b8eba58951068c1d 100644 --- a/gcc/config/xtensa/t-xtensa +++ b/gcc/config/xtensa/t-xtensa @@ -1,4 +1,5 @@ -# Copyright (C) 2002, 2003, 2006, 2007, 2008 Free Software Foundation, Inc. +# Copyright (C) 2002, 2003, 2006, 2007, 2008, 2011 +# Free Software Foundation, Inc. # # This file is part of GCC. # @@ -29,8 +30,6 @@ LIB1ASMFUNCS = _mulsi3 _divsi3 _modsi3 _udivsi3 _umodsi3 \ _truncdfsf2 _extendsfdf2 LIB2FUNCS_EXTRA = $(srcdir)/config/xtensa/lib2funcs.S -LIB2ADDEH = $(srcdir)/config/xtensa/unwind-dw2-xtensa.c \ - $(srcdir)/unwind-dw2-fde.c $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c $(T)crti.o: $(srcdir)/config/xtensa/crti.asm $(GCC_PASSES) $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \ diff --git a/gcc/configure b/gcc/configure index 63e44c5e43df3ddfa5cbeca93c3c13ac1f670d8a..88bb116dc1f8ec7d68dbe918ea46eaaded4c6f46 100755 --- a/gcc/configure +++ b/gcc/configure @@ -894,7 +894,6 @@ enable_rpath with_libiconv_prefix enable_initfini_array enable_sjlj_exceptions -with_system_libunwind enable_secureplt enable_leading_mingw64_underscores enable_cld @@ -1659,7 +1658,6 @@ Optional Packages: --with-gnu-ld assume the C compiler uses GNU ld default=no --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib --without-libiconv-prefix don't search for libiconv in includedir and libdir - --with-system-libunwind use installed libunwind --with-pic try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] @@ -10855,46 +10853,6 @@ _ACEOF fi -# For platforms with the unwind ABI which includes an unwind library, -# libunwind, we can choose to use the system libunwind. -# config.gcc also contains tests of with_system_libunwind. - - -# Check whether --with-system-libunwind was given. -if test "${with_system_libunwind+set}" = set; then : - withval=$with_system_libunwind; -fi - - # If system-libunwind was not specifically set, pick a default setting. - if test x$with_system_libunwind = x; then - case ${target} in - ia64-*-hpux*) with_system_libunwind=yes ;; - *) with_system_libunwind=no ;; - esac - fi - # Based on system-libunwind and target, do we have ipinfo? - if test x$with_system_libunwind = xyes; then - case ${target} in - ia64-*-*) have_unwind_getipinfo=no ;; - *) have_unwind_getipinfo=yes ;; - esac - else - # Darwin before version 9 does not have _Unwind_GetIPInfo. - - case ${target} in - *-*-darwin[3-8]|*-*-darwin[3-8].*) have_unwind_getipinfo=no ;; - *) have_unwind_getipinfo=yes ;; - esac - - fi - - if test x$have_unwind_getipinfo = xyes; then - -$as_echo "#define HAVE_GETIPINFO 1" >>confdefs.h - - fi - - # -------------------------------------------------------- # Build, host, and target specific configuration fragments # -------------------------------------------------------- @@ -17805,7 +17763,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 17808 "configure" +#line 17766 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -17911,7 +17869,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 17914 "configure" +#line 17872 "configure" #include "confdefs.h" #if HAVE_DLFCN_H diff --git a/gcc/configure.ac b/gcc/configure.ac index c71281cbeb2e28b774bcae2c41156cca78fc4e06..81345d6f32876f7733d9249654c127a0c05ceb3f 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac @@ -1184,11 +1184,6 @@ if test $force_sjlj_exceptions = yes; then [Define 0/1 to force the choice for exception handling model.]) fi -# For platforms with the unwind ABI which includes an unwind library, -# libunwind, we can choose to use the system libunwind. -# config.gcc also contains tests of with_system_libunwind. -GCC_CHECK_UNWIND_GETIPINFO - # -------------------------------------------------------- # Build, host, and target specific configuration fragments # -------------------------------------------------------- diff --git a/gcc/po/ChangeLog b/gcc/po/ChangeLog index 1123a00424d7fee7c1fbced210ac0a2e9e84fe0e..610ca9ba7d0581365ac9be9933ba4f2edc97750e 100644 --- a/gcc/po/ChangeLog +++ b/gcc/po/ChangeLog @@ -1,3 +1,9 @@ +2011-08-05 Rainer Orth + + * EXCLUDES (unwind-c.c, unwind-dw2-fde-darwin.c) + (unwind-dw2-fde-glibc.c, unwind-dw2-fde.c, unwind-dw2-fde.h) + (unwind-dw2.c, unwind-pe.h, unwind-sjlj.c, unwind.h): Remove. + 2011-07-31 Joseph Myers * de.po: Update. diff --git a/gcc/po/EXCLUDES b/gcc/po/EXCLUDES index cc29a2bd1ac7d0de397a7d6447d6885445ab5f7a..12fced15f72f7dcb092cdd30e9856056a17492d0 100644 --- a/gcc/po/EXCLUDES +++ b/gcc/po/EXCLUDES @@ -44,15 +44,6 @@ libgcc2.h limitx.h limity.h longlong.h -unwind-c.c -unwind-dw2-fde-darwin.c -unwind-dw2-fde-glibc.c -unwind-dw2-fde.c -unwind-dw2-fde.h -unwind-dw2.c -unwind-pe.h -unwind-sjlj.c -unwind.h # These programs are meant to be executed only by GCC maintainers or # installers. Such files do not need to be translated, as these diff --git a/gcc/system.h b/gcc/system.h index 7ac98596bc750c53bf51126327708ef32d5be704..a7db6f58f851bad9cc8356540e805a7b803aac5e 100644 --- a/gcc/system.h +++ b/gcc/system.h @@ -802,7 +802,7 @@ extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN; /* Target macros only used for code built for the target, that have moved to libgcc-tm.h or have never been present elsewhere. */ #pragma GCC poison DECLARE_LIBRARY_RENAMES LIBGCC2_GNU_PREFIX \ - MD_UNWIND_SUPPORT ENABLE_EXECUTE_STACK + MD_UNWIND_SUPPORT MD_FROB_UPDATE_CONTEXT ENABLE_EXECUTE_STACK /* Other obsolete target macros, or macros that used to be in target headers and were not used, and may be obsolete or may never have diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index 322b93ec861f3db688e7818b6d2119c775e87111..65d47a80278e9766a35a39d63d279cd3f7a78f37 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,68 @@ +2011-08-05 Rainer Orth + + * Makefile.in (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): New + variables. + (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): New variables. + (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Add $(srcdir)/emutls.c. + (install-unwind_h): New target. + (all): Depend on it. + * config.host (unwind_header): New variable. + (*-*-freebsd*): Set tmake_file to t-eh-dw2-dip. + (*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, *-*-knetbsd*-gnu, + *-*-gnu*): Likewise, also for *-*-kopensolaris*-gnu. + (*-*-solaris2*): Add t-eh-dw2-dip to tmake_file. + (arm*-*-linux*): Add arm/t-bpabi for arm*-*-linux-*eabi. + Set unwind_header. + (arm*-*-uclinux*): Add arm/t-bpabi for arm*-*-uclinux*eabi. + Set unwind_header. + (arm*-*-eabi*, arm*-*-symbianelf*): Add arm/t-bpabi for + arm*-*-eabi*. + Add arm/t-symbian to tmake_file for arm*-*-symbianelf*. + Set unwind_header. + (ia64*-*-elf*): Add ia64/t-eh-ia64 to tmake_file. + (ia64*-*-freebsd*): Likewise. + (ia64*-*-linux*): Add ia64/t-glibc, ia64/t-eh-ia64, t-libunwind to + tmake_file. + Add t-libunwind-elf, ia64/t-glibc-libunwind unless + $with_system_libunwind. + (ia64*-*-hpux*): Set tmake_file. + (ia64-hp-*vms*): Add ia64/t-eh-ia64 to tmake_file. + (picochip-*-*): Set tmake_file. + (rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*): Set + md_unwind_header. + (rs6000-ibm-aix5.1.*, powerpc-ibm-aix5.1.*): Likewise. + (rs6000-ibm-aix[56789].*, powerpc-ibm-aix[56789].*): Likewise. + (s390x-ibm-tpf*): Add t-eh-dw2-dip to tmake_file. + (xtensa*-*-elf*): Set tmake_file. + (xtensa*-*-linux*): Likewise. + * configure.ac: Include ../config/unwind_ipinfo.m4. + Call GCC_CHECK_UNWIND_GETIPINFO. + Link unwind.h to $unwind_header. + * configure: Regenerate. + * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h, + unwind-dw2-fde-compat.c, unwind-dw2-fde-dip.c, unwind-dw2-fde.c, + unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h, + unwind-pe.h, unwind-sjlj.c, unwind.inc: New files. + * config/unwind-dw2-fde-darwin.c: New file. + * config/arm/libunwind.S, config/arm/pr-support.c, + config/arm/t-bpabi, config/arm/t-symbian, config/arm/unwind-arm.c, + config/arm/unwind-arm.h,: New files. + * config/ia64/fde-glibc.c, config/ia64/fde-vms.c, + config/ia64/t-eh-ia64, config/ia64/t-glibc, + config/ia64/t-glibc-libunwind, config/ia64/t-hpux, + config/ia64/t-vms, config/ia64/unwind-ia64.c, + config/ia64/unwind-ia64.h: New files. + * config/picochip/t-picochip: New file. + * config/rs6000/aix-unwind.h, config/rs6000/darwin-fallback.c: New + files. + * config/rs6000/t-darwin (LIB2ADDEH): Set. + * config/s390/t-tpf (LIB2ADDEH): Remove. + * config/t-darwin (LIB2ADDEH): Set. + * config/t-eh-dw2-dip: New file. + * config/t-libunwind, config/t-libunwind-elf: New files. + * config/t-sol2 (LIB2ADDEH): Remove. + * config/xtensa/t-xtensa: New file. + 2011-08-02 H.J. Lu * config/i386/linux-unwind.h (RT_SIGRETURN_SYSCALL): New. diff --git a/libgcc/Makefile.in b/libgcc/Makefile.in index 5f7cd629fc2791393eed9e05a59fe2a16b784c3d..c252d9a2217c3b069a355cd1f562e232cb5471e7 100644 --- a/libgcc/Makefile.in +++ b/libgcc/Makefile.in @@ -256,6 +256,17 @@ LIBGCC_VER_GNU_PREFIX = __ LIBGCC_VER_FIXEDPOINT_GNU_PREFIX = __ LIBGCC_VER_SYMBOLS_PREFIX = +# Additional sources to handle exceptions; overridden by targets as needed. +LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde.c \ + $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c +LIB2ADDEHSTATIC = $(LIB2ADDEH) +LIB2ADDEHSHARED = $(LIB2ADDEH) + +# Don't build libunwind by default. +LIBUNWIND = +SHLIBUNWIND_LINK = +SHLIBUNWIND_INSTALL = + tmake_file = @tmake_file@ include $(srcdir)/empty.mk $(tmake_file) @@ -316,6 +327,10 @@ endif LIB2ADD += enable-execute-stack.c +LIB2ADDEH += $(srcdir)/emutls.c +LIB2ADDEHSTATIC += $(srcdir)/emutls.c +LIB2ADDEHSHARED += $(srcdir)/emutls.c + # Library members defined in libgcc2.c. lib2funcs = _muldi3 _negdi2 _lshrdi3 _ashldi3 _ashrdi3 _cmpdi2 _ucmpdi2 \ _clear_cache _trampoline __main _absvsi2 \ @@ -967,6 +982,12 @@ gcc-extra-parts: all: $(extra-parts) +install-unwind_h: + cp unwind.h $(gcc_objdir)/include/unwind.h + chmod a+r $(gcc_objdir)/include/unwind.h + +all: install-unwind_h + # Documentation targets (empty). .PHONY: info html dvi pdf install-info install-html install-pdf diff --git a/libgcc/config.host b/libgcc/config.host index f7c1b3bd0351ff47d65b431950953bfecde74f46..db00c4c2d8c76f818b84581dfef241be79b799dc 100644 --- a/libgcc/config.host +++ b/libgcc/config.host @@ -57,12 +57,15 @@ # tmake_file A list of machine-description-specific # makefile-fragments, if different from # "$cpu_type/t-$cpu_type". +# unwind_header The name of the header file declaring the unwind +# runtime interface routines. asm_hidden_op=.hidden enable_execute_stack= extra_parts= tmake_file= md_unwind_header=no-unwind.h +unwind_header=unwind-generic.h # Set default cpu_type so it can be updated in each machine entry. cpu_type=`echo ${host} | sed 's/-.*$//'` @@ -171,8 +174,10 @@ case ${host} in # This is the generic ELF configuration of FreeBSD. Later # machine-specific sections may refine and add to this # configuration. + tmake_file=t-eh-dw2-dip ;; -*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu*) +*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu) + tmake_file=t-eh-dw2-dip extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o" ;; *-*-netbsd*) @@ -182,7 +187,9 @@ case ${host} in *-*-rtems*) ;; *-*-solaris2*) - tmake_file="$tmake_file t-sol2 t-slibgcc t-slibgcc-elf-ver" + # Unless linker support and dl_iterate_phdr are present, + # unwind-dw2-fde-dip.c automatically falls back to unwind-dw2-fde.c. + tmake_file="$tmake_file t-sol2 t-eh-dw2-dip t-slibgcc t-slibgcc-elf-ver" if test $with_gnu_ld = yes; then tmake_file="$tmake_file t-slibgcc-gld" else @@ -265,14 +272,35 @@ arm*-*-netbsdelf*) ;; arm*-*-linux*) # ARM GNU/Linux with ELF tmake_file="${tmake_file} t-fixedpoint-gnu-prefix" + case ${host} in + arm*-*-linux-*eabi) + tmake_file="${tmake_file} arm/t-bpabi" + unwind_header=config/arm/unwind-arm.h + ;; + esac ;; arm*-*-uclinux*) # ARM ucLinux tmake_file="${tmake_file} t-fixedpoint-gnu-prefix" + case ${host} in + arm*-*-uclinux*eabi) + tmake_file="${tmake_file} arm/t-bpabi" + unwind_header=config/arm/unwind-arm.h + ;; + esac ;; arm*-*-ecos-elf) ;; arm*-*-eabi* | arm*-*-symbianelf* ) tmake_file="${tmake_file} t-fixedpoint-gnu-prefix" + case ${host} in + arm*-*-eabi*) + tmake_file="${tmake_file} arm/t-bpabi" + ;; + arm*-*-symbianelf*) + tmake_file="${tmake_file} arm/t-symbian" + ;; + esac + unwind_header=config/arm/unwind-arm.h ;; arm*-*-rtems*) ;; @@ -408,21 +436,25 @@ i[34567]86-*-interix3*) ;; ia64*-*-elf*) extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o" - tmake_file="ia64/t-ia64 t-crtfm" + tmake_file="ia64/t-ia64 ia64/t-eh-ia64 t-crtfm" ;; ia64*-*-freebsd*) extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o" - tmake_file="ia64/t-ia64 t-crtfm" + tmake_file="ia64/t-ia64 ia64/t-eh-ia64 t-crtfm" ;; ia64*-*-linux*) extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o" - tmake_file="ia64/t-ia64 t-crtfm t-softfp ia64/t-fprules-softfp ia64/t-softfp-compat" + tmake_file="ia64/t-ia64 t-crtfm t-softfp ia64/t-fprules-softfp ia64/t-softfp-compat ia64/t-glibc ia64/t-eh-ia64 t-libunwind" + if test x$with_system_libunwind != xyes ; then + tmake_file="${tmake_file} t-libunwind-elf ia64/t-glibc-libunwind" + fi md_unwind_header=ia64/linux-unwind.h ;; ia64*-*-hpux*) + tmake_file="ia64/t-hpux" ;; ia64-hp-*vms*) - tmake_file="vms/t-vms vms/t-vms64 ia64/t-vms" + tmake_file="vms/t-vms vms/t-vms64 ia64/t-eh-ia64 ia64/t-vms" md_unwind_header=ia64/vms-unwind.h ;; iq2000*-*-elf*) @@ -522,6 +554,7 @@ moxie-*-*) pdp11-*-*) ;; picochip-*-*) + tmake_file=picochip/t-picochip ;; powerpc-*-darwin*) case ${host} in @@ -574,10 +607,13 @@ powerpcle-*-eabisim*) powerpcle-*-eabi*) ;; rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*) + md_unwind_header=rs6000/aix-unwind.h ;; rs6000-ibm-aix5.1.* | powerpc-ibm-aix5.1.*) + md_unwind_header=rs6000/aix-unwind.h ;; rs6000-ibm-aix[56789].* | powerpc-ibm-aix[56789].*) + md_unwind_header=rs6000/aix-unwind.h ;; rx-*-elf) extra_parts="crtbegin.o crtend.o" @@ -592,7 +628,7 @@ s390x-*-linux*) md_unwind_header=s390/linux-unwind.h ;; s390x-ibm-tpf*) - tmake_file="${tmake_file} s390/t-crtstuff s390/t-tpf" + tmake_file="${tmake_file} s390/t-crtstuff s390/t-tpf t-eh-dw2-dip" md_unwind_header=s390/tpf-unwind.h ;; score-*-elf) @@ -674,8 +710,10 @@ vax-*-openbsd*) xstormy16-*-elf) ;; xtensa*-*-elf*) + tmake_file=xtensa/t-xtensa ;; xtensa*-*-linux*) + tmake_file=xtensa/t-xtensa md_unwind_header=xtensa/linux-unwind.h ;; am33_2.0-*-linux*) diff --git a/gcc/config/arm/libunwind.S b/libgcc/config/arm/libunwind.S similarity index 99% rename from gcc/config/arm/libunwind.S rename to libgcc/config/arm/libunwind.S index 48eb592fd1a6d53d62cb056b099dd4f2cb2dd9ae..a3a19daab4b2e4fc53ca3f2e8000b379b5b6d727 100644 --- a/gcc/config/arm/libunwind.S +++ b/libgcc/config/arm/libunwind.S @@ -1,5 +1,5 @@ /* Support functions for the unwinder. - Copyright (C) 2003, 2004, 2005, 2007, 2008, 2009, 2010 + Copyright (C) 2003, 2004, 2005, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. Contributed by Paul Brook @@ -40,7 +40,7 @@ #ifndef __symbian__ -#include "lib1funcs.asm" +#include "config/arm/lib1funcs.asm" .macro UNPREFIX name .global SYM (\name) diff --git a/gcc/config/arm/pr-support.c b/libgcc/config/arm/pr-support.c similarity index 100% rename from gcc/config/arm/pr-support.c rename to libgcc/config/arm/pr-support.c diff --git a/libgcc/config/arm/t-bpabi b/libgcc/config/arm/t-bpabi new file mode 100644 index 0000000000000000000000000000000000000000..a3b23dcd20c02b9ac2c18225008cbc18770dbdb5 --- /dev/null +++ b/libgcc/config/arm/t-bpabi @@ -0,0 +1,3 @@ +LIB2ADDEH = $(srcdir)/config/arm/unwind-arm.c \ + $(srcdir)/config/arm/libunwind.S \ + $(srcdir)/config/arm/pr-support.c $(srcdir)/unwind-c.c diff --git a/libgcc/config/arm/t-symbian b/libgcc/config/arm/t-symbian new file mode 100644 index 0000000000000000000000000000000000000000..6788d5f40b3279588b284c792eecd3265f69eef0 --- /dev/null +++ b/libgcc/config/arm/t-symbian @@ -0,0 +1,2 @@ +# Include the gcc personality routine +LIB2ADDEH = $(srcdir)/unwind-c.c $(srcdir)/config/arm/pr-support.c diff --git a/gcc/config/arm/unwind-arm.c b/libgcc/config/arm/unwind-arm.c similarity index 100% rename from gcc/config/arm/unwind-arm.c rename to libgcc/config/arm/unwind-arm.c diff --git a/gcc/config/arm/unwind-arm.h b/libgcc/config/arm/unwind-arm.h similarity index 100% rename from gcc/config/arm/unwind-arm.h rename to libgcc/config/arm/unwind-arm.h diff --git a/gcc/config/ia64/fde-glibc.c b/libgcc/config/ia64/fde-glibc.c similarity index 100% rename from gcc/config/ia64/fde-glibc.c rename to libgcc/config/ia64/fde-glibc.c diff --git a/gcc/config/ia64/fde-vms.c b/libgcc/config/ia64/fde-vms.c similarity index 98% rename from gcc/config/ia64/fde-vms.c rename to libgcc/config/ia64/fde-vms.c index b310f0d11b663fd051b5bcb991596affc691575d..c9ac5d2807607a1fd480d55d1c86db1f0a4c09e3 100644 --- a/gcc/config/ia64/fde-vms.c +++ b/libgcc/config/ia64/fde-vms.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2004, 2009 Free Software Foundation, Inc. +/* Copyright (C) 2004, 2009, 2011 Free Software Foundation, Inc. Contributed by Douglas B Rupp This file is part of GCC. @@ -32,6 +32,7 @@ #include #include #include +#include "md-unwind-support.h" #include "unwind-ia64.h" #define __int64 long diff --git a/libgcc/config/ia64/t-eh-ia64 b/libgcc/config/ia64/t-eh-ia64 new file mode 100644 index 0000000000000000000000000000000000000000..6aa4bb930b8ce1a53c33da1d903eaaad0557dc82 --- /dev/null +++ b/libgcc/config/ia64/t-eh-ia64 @@ -0,0 +1,2 @@ +LIB2ADDEH = $(srcdir)/config/ia64/unwind-ia64.c $(srcdir)/unwind-sjlj.c \ + $(srcdir)/unwind-c.c diff --git a/libgcc/config/ia64/t-glibc b/libgcc/config/ia64/t-glibc new file mode 100644 index 0000000000000000000000000000000000000000..df4fe9c4404a91ef1ab137443bf538f9a5bec610 --- /dev/null +++ b/libgcc/config/ia64/t-glibc @@ -0,0 +1,3 @@ +# Use system libunwind library on IA-64 GLIBC based system. +LIB2ADDEH = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c \ + $(srcdir)/unwind-compat.c diff --git a/gcc/config/ia64/t-glibc-libunwind b/libgcc/config/ia64/t-glibc-libunwind similarity index 83% rename from gcc/config/ia64/t-glibc-libunwind rename to libgcc/config/ia64/t-glibc-libunwind index df78f1d094f84d8969c424705f3711b57de9007c..8b1736a2d67846524b78c5d1c54fe1fb880948e3 100644 --- a/gcc/config/ia64/t-glibc-libunwind +++ b/libgcc/config/ia64/t-glibc-libunwind @@ -1,4 +1,3 @@ # Build libunwind for IA-64 GLIBC based system. LIBUNWIND = $(srcdir)/config/ia64/fde-glibc.c \ $(srcdir)/config/ia64/unwind-ia64.c -LIBUNWINDDEP = unwind.inc diff --git a/libgcc/config/ia64/t-hpux b/libgcc/config/ia64/t-hpux new file mode 100644 index 0000000000000000000000000000000000000000..ef3387e7a61987384dc64699c3e3580d572a5fb5 --- /dev/null +++ b/libgcc/config/ia64/t-hpux @@ -0,0 +1 @@ +LIB2ADDEH = $(srcdir)/unwind-c.c diff --git a/libgcc/config/ia64/t-vms b/libgcc/config/ia64/t-vms new file mode 100644 index 0000000000000000000000000000000000000000..9bc933adfe0820ab47541c5c4e250879e12116f1 --- /dev/null +++ b/libgcc/config/ia64/t-vms @@ -0,0 +1 @@ +LIB2ADDEH += $(srcdir)/config/ia64/fde-vms.c diff --git a/gcc/config/ia64/unwind-ia64.c b/libgcc/config/ia64/unwind-ia64.c similarity index 100% rename from gcc/config/ia64/unwind-ia64.c rename to libgcc/config/ia64/unwind-ia64.c index 061bd4b89806ed83cb04137e071baf5b29eafa72..e9ddfca88649a429c6b1cbdf3573ec4a2a78c574 100644 --- a/gcc/config/ia64/unwind-ia64.c +++ b/libgcc/config/ia64/unwind-ia64.c @@ -41,13 +41,6 @@ #ifndef __USING_SJLJ_EXCEPTIONS__ - -/* By default, assume personality routine interface compatibility with - our expectations. */ -#ifndef MD_UNW_COMPATIBLE_PERSONALITY_P -#define MD_UNW_COMPATIBLE_PERSONALITY_P(HEADER) 1 -#endif - enum unw_application_register { UNW_AR_BSP, @@ -1768,6 +1761,13 @@ _Unwind_GetBSP (struct _Unwind_Context *context) } #include "md-unwind-support.h" + +/* By default, assume personality routine interface compatibility with + our expectations. */ +#ifndef MD_UNW_COMPATIBLE_PERSONALITY_P +#define MD_UNW_COMPATIBLE_PERSONALITY_P(HEADER) 1 +#endif + static _Unwind_Reason_Code uw_frame_state_for (struct _Unwind_Context *context, _Unwind_FrameState *fs) diff --git a/gcc/config/ia64/unwind-ia64.h b/libgcc/config/ia64/unwind-ia64.h similarity index 100% rename from gcc/config/ia64/unwind-ia64.h rename to libgcc/config/ia64/unwind-ia64.h diff --git a/libgcc/config/ia64/vms-unwind.h b/libgcc/config/ia64/vms-unwind.h index 41c76ae768c0ba2c112081e36fca36fa29f074ec..48bdc6884ea7f6b615302fd09470272d836a5c92 100644 --- a/libgcc/config/ia64/vms-unwind.h +++ b/libgcc/config/ia64/vms-unwind.h @@ -1,5 +1,5 @@ /* DWARF2 EH unwinding support for IA64 VMS. - Copyright (C) 2005-2009 Free Software Foundation, Inc. + Copyright (C) 2005-2011 Free Software Foundation, Inc. This file is part of GCC. @@ -32,6 +32,9 @@ #include #include +#define UNW_IVMS_MODE(HEADER) (((HEADER) >> 44) & 0x3L) +#define MD_UNW_COMPATIBLE_PERSONALITY_P(HEADER) (!UNW_IVMS_MODE (HEADER)) + #define DYN$C_SSENTRY 66 /* ??? would rather get the proper header file. */ diff --git a/libgcc/config/picochip/t-picochip b/libgcc/config/picochip/t-picochip new file mode 100644 index 0000000000000000000000000000000000000000..5135d500cbb8984ed7f10405eac568b3b196d649 --- /dev/null +++ b/libgcc/config/picochip/t-picochip @@ -0,0 +1,2 @@ +# Turn off the building of exception handling libraries. +LIB2ADDEH = diff --git a/libgcc/config/rs6000/aix-unwind.h b/libgcc/config/rs6000/aix-unwind.h new file mode 100644 index 0000000000000000000000000000000000000000..9e126595edb868ed220c592bc8510c29dd685cfa --- /dev/null +++ b/libgcc/config/rs6000/aix-unwind.h @@ -0,0 +1,57 @@ +/* DWARF2 EH unwinding support for AIX. + Copyright (C) 2011 Free Software Foundation, Inc. + + This file is part of GCC. + + GCC is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. + + GCC is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + Under Section 7 of GPL version 3, you are granted additional + permissions described in the GCC Runtime Library Exception, version + 3.1, as published by the Free Software Foundation. + + You should have received a copy of the GNU General Public License and + a copy of the GCC Runtime Library Exception along with this program; + see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + . */ + +/* If the current unwind info (FS) does not contain explicit info + saving R2, then we have to do a minor amount of code reading to + figure out if it was saved. The big problem here is that the + code that does the save/restore is generated by the linker, so + we have no good way to determine at compile time what to do. */ + +#define R_LR 65 + +#ifdef __64BIT__ +#define MD_FROB_UPDATE_CONTEXT(CTX, FS) \ + do { \ + if ((FS)->regs.reg[2].how == REG_UNSAVED) \ + { \ + unsigned int *insn \ + = (unsigned int *) \ + _Unwind_GetGR ((CTX), R_LR); \ + if (*insn == 0xE8410028) \ + _Unwind_SetGRPtr ((CTX), 2, (CTX)->cfa + 40); \ + } \ + } while (0) +#else +#define MD_FROB_UPDATE_CONTEXT(CTX, FS) \ + do { \ + if ((FS)->regs.reg[2].how == REG_UNSAVED) \ + { \ + unsigned int *insn \ + = (unsigned int *) \ + _Unwind_GetGR ((CTX), R_LR); \ + if (*insn == 0x80410014) \ + _Unwind_SetGRPtr ((CTX), 2, (CTX)->cfa + 20); \ + } \ + } while (0) +#endif diff --git a/gcc/config/rs6000/darwin-fallback.c b/libgcc/config/rs6000/darwin-fallback.c similarity index 100% rename from gcc/config/rs6000/darwin-fallback.c rename to libgcc/config/rs6000/darwin-fallback.c diff --git a/libgcc/config/rs6000/t-darwin b/libgcc/config/rs6000/t-darwin index 4541e4ed3ed4c6bcd1567851c66e61036c7b5eb1..404df85870f9d64656860f741ba1a007bada3256 100644 --- a/libgcc/config/rs6000/t-darwin +++ b/libgcc/config/rs6000/t-darwin @@ -3,4 +3,6 @@ DARWIN_EXTRA_CRT_BUILD_CFLAGS = -mlongcall -mmacosx-version-min=10.4 crt2.o: $(srcdir)/config/rs6000/darwin-crt2.c $(crt_compile) $(DARWIN_EXTRA_CRT_BUILD_CFLAGS) -c $< +LIB2ADDEH += $(srcdir)/config/rs6000/darwin-fallback.c + SHLIB_VERPFX = $(gcc_srcdir)/config/rs6000/darwin-libgcc diff --git a/libgcc/config/s390/t-tpf b/libgcc/config/s390/t-tpf index 2110c688d5f7b0e99b3ac227ed254c5c4f013570..9d416acc12d3e569134db3dd824d1a5cf46d2dd8 100644 --- a/libgcc/config/s390/t-tpf +++ b/libgcc/config/s390/t-tpf @@ -1,7 +1,2 @@ # Compile libgcc2.a with pic. HOST_LIBGCC2_CFLAGS += -fPIC - -# Use unwind-dw2-fde-glibc. -LIB2ADDEH = $(gcc_srcdir)/unwind-dw2.c $(gcc_srcdir)/unwind-dw2-fde-glibc.c \ - $(gcc_srcdir)/unwind-sjlj.c $(gcc_srcdir)/unwind-c.c \ - $(gcc_srcdir)/emutls.c diff --git a/libgcc/config/t-darwin b/libgcc/config/t-darwin index 548f0e3d469c9a82ec5460aa24af1029a1949ddb..311b7e2679f866392b1f07565b1aa59a39ad67b5 100644 --- a/libgcc/config/t-darwin +++ b/libgcc/config/t-darwin @@ -2,3 +2,7 @@ crt3.o: $(srcdir)/config/darwin-crt3.c $(crt_compile) \ -fno-tree-dominator-opts $(DARWIN_EXTRA_CRT_BUILD_CFLAGS) -c $< + +# Use unwind-dw2-fde-darwin +LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/config/unwind-dw2-fde-darwin.c \ + $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c diff --git a/libgcc/config/t-eh-dw2-dip b/libgcc/config/t-eh-dw2-dip new file mode 100644 index 0000000000000000000000000000000000000000..88fa103c4e7c3c54a0998af0bd68946b0b90307f --- /dev/null +++ b/libgcc/config/t-eh-dw2-dip @@ -0,0 +1,3 @@ +# Use unwind-dw2-fde-dip. +LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde-dip.c \ + $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c diff --git a/libgcc/config/t-libunwind b/libgcc/config/t-libunwind new file mode 100644 index 0000000000000000000000000000000000000000..1c7a898675fa160a6394a06d7ffc729b1608796f --- /dev/null +++ b/libgcc/config/t-libunwind @@ -0,0 +1,3 @@ +LIB2ADDEH = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c \ + $(srcdir)/unwind-compat.c $(srcdir)/unwind-dw2-fde-compat.c +LIB2ADDEHSTATIC = $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c diff --git a/gcc/config/t-libunwind-elf b/libgcc/config/t-libunwind-elf similarity index 67% rename from gcc/config/t-libunwind-elf rename to libgcc/config/t-libunwind-elf index 5ae0d62de2588dc2272c6dc233144f4bfe7ba695..47a460bdd0e390e8df7acb52bb918d9785d5dcdc 100644 --- a/gcc/config/t-libunwind-elf +++ b/libgcc/config/t-libunwind-elf @@ -1,4 +1,4 @@ -# Copyright (C) 2004, 2005 Free Software Foundation, Inc. +# Copyright (C) 2004, 2005, 2011 Free Software Foundation, Inc. # # This file is part of GCC. # @@ -18,14 +18,18 @@ # Build libunwind for ELF with the GNU linker. -# Use unwind-dw2-fde-glibc -LIBUNWIND = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde-glibc.c -LIBUNWINDDEP = unwind.inc unwind-dw2-fde.h unwind-dw2-fde.c +SHLIB_SOLINK = @shlib_base_name@.so +SHLIB_OBJS = @shlib_objs@ +SHLIB_DIR = @multilib_dir@ +SHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@ + +# Use unwind-dw2-fde-dip +LIBUNWIND = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde-dip.c SHLIBUNWIND_SOVERSION = 7 SHLIBUNWIND_SONAME = @shlib_base_name@.so.$(SHLIBUNWIND_SOVERSION) -SHLIBUNWIND_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared \ +SHLIBUNWIND_LINK = $(CC) $(LIBGCC2_CFLAGS) -shared \ -nodefaultlibs -Wl,-h,$(SHLIBUNWIND_SONAME) \ -Wl,-z,text -Wl,-z,defs -o $(SHLIB_DIR)/$(SHLIBUNWIND_SONAME).tmp \ @multilib_flags@ $(SHLIB_OBJS) -lc && \ @@ -38,12 +42,10 @@ SHLIBUNWIND_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared \ $(SHLIB_DIR)/$(SHLIBUNWIND_SONAME) && \ $(LN_S) $(SHLIBUNWIND_SONAME) $(SHLIB_DIR)/$(SHLIB_SOLINK) -# $(slibdir) double quoted to protect it from expansion while building -# libgcc.mk. We want this delayed until actual install time. SHLIBUNWIND_INSTALL = \ - $$(SHELL) $$(srcdir)/mkinstalldirs $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL); \ + $(SHELL) $(srcdir)/mkinstalldirs $(DESTDIR)$(slibdir)$(SHLIB_SLIBDIR_QUAL); \ $(INSTALL_DATA) $(SHLIB_DIR)/$(SHLIBUNWIND_SONAME) \ - $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIBUNWIND_SONAME); \ - rm -f $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK); \ + $(DESTDIR)$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIBUNWIND_SONAME); \ + rm -f $(DESTDIR)$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK); \ $(LN_S) $(SHLIBUNWIND_SONAME) \ - $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK) + $(DESTDIR)$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_SOLINK) diff --git a/libgcc/config/t-sol2 b/libgcc/config/t-sol2 index e55c64f646d1e779ad177d53507a39c87245627e..bfb8f3b5cc2ee3144778f5d2ab537e9f1aee5d34 100644 --- a/libgcc/config/t-sol2 +++ b/libgcc/config/t-sol2 @@ -16,11 +16,6 @@ # along with GCC; see the file COPYING3. If not see # . -# Use unwind-dw2-fde-glibc.c. Unless linker support and dl_iterate_phdr -# are present, automatically falls back to unwind-dw2-fde.c. -LIB2ADDEH = $(gcc_srcdir)/unwind-dw2.c $(gcc_srcdir)/unwind-dw2-fde-glibc.c \ - $(gcc_srcdir)/unwind-sjlj.c $(gcc_srcdir)/unwind-c.c $(gcc_srcdir)/emutls.c - # gmon build rule: gmon.o: $(srcdir)/config/gmon-sol2.c $(gcc_compile) -c $< diff --git a/gcc/unwind-dw2-fde-darwin.c b/libgcc/config/unwind-dw2-fde-darwin.c similarity index 100% rename from gcc/unwind-dw2-fde-darwin.c rename to libgcc/config/unwind-dw2-fde-darwin.c diff --git a/libgcc/config/xtensa/t-xtensa b/libgcc/config/xtensa/t-xtensa new file mode 100644 index 0000000000000000000000000000000000000000..7d9e9db0487eef6b9ee1fb7492bfc180dcc3ca0d --- /dev/null +++ b/libgcc/config/xtensa/t-xtensa @@ -0,0 +1,2 @@ +LIB2ADDEH = $(srcdir)/config/xtensa/unwind-dw2-xtensa.c \ + $(srcdir)/unwind-dw2-fde.c $(srcdir)/unwind-sjlj.c $(srcdir)/unwind-c.c diff --git a/gcc/config/xtensa/unwind-dw2-xtensa.c b/libgcc/config/xtensa/unwind-dw2-xtensa.c similarity index 100% rename from gcc/config/xtensa/unwind-dw2-xtensa.c rename to libgcc/config/xtensa/unwind-dw2-xtensa.c diff --git a/gcc/config/xtensa/unwind-dw2-xtensa.h b/libgcc/config/xtensa/unwind-dw2-xtensa.h similarity index 100% rename from gcc/config/xtensa/unwind-dw2-xtensa.h rename to libgcc/config/xtensa/unwind-dw2-xtensa.h diff --git a/libgcc/configure b/libgcc/configure index 9845eadb65a54ef0eabdc752c6d38fadbf4301d6..6036338731279a7144cc030702fe130b0d54177f 100644 --- a/libgcc/configure +++ b/libgcc/configure @@ -651,6 +651,7 @@ with_slibdir enable_maintainer_mode with_build_libsubdir enable_decimal_float +with_system_libunwind enable_tls ' ac_precious_vars='build_alias @@ -1295,6 +1296,7 @@ Optional Packages: --with-ld arrange to use the specified ld (full pathname) --with-slibdir=DIR shared libraries in DIR LIBDIR --with-build-libsubdir=DIR Directory where to find libraries for build system + --with-system-libunwind use installed libunwind Some influential environment variables: CC C compiler command @@ -3743,6 +3745,46 @@ $as_echo "$libgcc_cv_fixed_point" >&6; } fixed_point=$libgcc_cv_fixed_point +# For platforms with the unwind ABI which includes an unwind library, +# libunwind, we can choose to use the system libunwind. +# config.gcc also contains tests of with_system_libunwind. + + +# Check whether --with-system-libunwind was given. +if test "${with_system_libunwind+set}" = set; then : + withval=$with_system_libunwind; +fi + + # If system-libunwind was not specifically set, pick a default setting. + if test x$with_system_libunwind = x; then + case ${target} in + ia64-*-hpux*) with_system_libunwind=yes ;; + *) with_system_libunwind=no ;; + esac + fi + # Based on system-libunwind and target, do we have ipinfo? + if test x$with_system_libunwind = xyes; then + case ${target} in + ia64-*-*) have_unwind_getipinfo=no ;; + *) have_unwind_getipinfo=yes ;; + esac + else + # Darwin before version 9 does not have _Unwind_GetIPInfo. + + case ${target} in + *-*-darwin[3-8]|*-*-darwin[3-8].*) have_unwind_getipinfo=no ;; + *) have_unwind_getipinfo=yes ;; + esac + + fi + + if test x$have_unwind_getipinfo = xyes; then + +$as_echo "#define HAVE_GETIPINFO 1" >>confdefs.h + + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if test "${acl_cv_prog_gnu_ld+set}" = set; then : @@ -3962,6 +4004,8 @@ tmake_file="${tmake_file_}" ac_config_links="$ac_config_links enable-execute-stack.c:$enable_execute_stack" +ac_config_links="$ac_config_links unwind.h:$unwind_header" + ac_config_links="$ac_config_links md-unwind-support.h:config/$md_unwind_header" @@ -4690,6 +4734,7 @@ for ac_config_target in $ac_config_targets do case $ac_config_target in "enable-execute-stack.c") CONFIG_LINKS="$CONFIG_LINKS enable-execute-stack.c:$enable_execute_stack" ;; + "unwind.h") CONFIG_LINKS="$CONFIG_LINKS unwind.h:$unwind_header" ;; "md-unwind-support.h") CONFIG_LINKS="$CONFIG_LINKS md-unwind-support.h:config/$md_unwind_header" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; diff --git a/libgcc/configure.ac b/libgcc/configure.ac index 39a2e920ba75a1c954a9e0277002d74ec9e19989..d96bcb4224a9c5b339296ea13c7c6841dbeadc86 100644 --- a/libgcc/configure.ac +++ b/libgcc/configure.ac @@ -7,6 +7,7 @@ sinclude(../config/no-executables.m4) sinclude(../config/lib-ld.m4) sinclude(../config/override.m4) sinclude(../config/dfp.m4) +sinclude(../config/unwind_ipinfo.m4) AC_PREREQ(2.64) AC_INIT([GNU C Runtime Library], 1.0,,[libgcc]) @@ -167,6 +168,11 @@ AC_CACHE_CHECK([whether fixed-point is supported], [libgcc_cv_fixed_point], fixed_point=$libgcc_cv_fixed_point AC_SUBST(fixed_point) +# For platforms with the unwind ABI which includes an unwind library, +# libunwind, we can choose to use the system libunwind. +# config.gcc also contains tests of with_system_libunwind. +GCC_CHECK_UNWIND_GETIPINFO + AC_LIB_PROG_LD_GNU AC_MSG_CHECKING([for thread model used by GCC]) @@ -277,6 +283,7 @@ AC_SUBST(cpu_type) AC_SUBST(extra_parts) AC_SUBST(asm_hidden_op) AC_CONFIG_LINKS([enable-execute-stack.c:$enable_execute_stack]) +AC_CONFIG_LINKS([unwind.h:$unwind_header]) AC_CONFIG_LINKS([md-unwind-support.h:config/$md_unwind_header]) # We need multilib support. diff --git a/gcc/emutls.c b/libgcc/emutls.c similarity index 100% rename from gcc/emutls.c rename to libgcc/emutls.c diff --git a/gcc/unwind-c.c b/libgcc/unwind-c.c similarity index 100% rename from gcc/unwind-c.c rename to libgcc/unwind-c.c diff --git a/gcc/unwind-compat.c b/libgcc/unwind-compat.c similarity index 100% rename from gcc/unwind-compat.c rename to libgcc/unwind-compat.c diff --git a/gcc/unwind-compat.h b/libgcc/unwind-compat.h similarity index 100% rename from gcc/unwind-compat.h rename to libgcc/unwind-compat.h diff --git a/gcc/unwind-dw2-fde-compat.c b/libgcc/unwind-dw2-fde-compat.c similarity index 100% rename from gcc/unwind-dw2-fde-compat.c rename to libgcc/unwind-dw2-fde-compat.c diff --git a/gcc/unwind-dw2-fde-glibc.c b/libgcc/unwind-dw2-fde-dip.c similarity index 100% rename from gcc/unwind-dw2-fde-glibc.c rename to libgcc/unwind-dw2-fde-dip.c diff --git a/gcc/unwind-dw2-fde.c b/libgcc/unwind-dw2-fde.c similarity index 100% rename from gcc/unwind-dw2-fde.c rename to libgcc/unwind-dw2-fde.c diff --git a/gcc/unwind-dw2-fde.h b/libgcc/unwind-dw2-fde.h similarity index 100% rename from gcc/unwind-dw2-fde.h rename to libgcc/unwind-dw2-fde.h diff --git a/gcc/unwind-dw2.c b/libgcc/unwind-dw2.c similarity index 100% rename from gcc/unwind-dw2.c rename to libgcc/unwind-dw2.c diff --git a/gcc/unwind-dw2.h b/libgcc/unwind-dw2.h similarity index 100% rename from gcc/unwind-dw2.h rename to libgcc/unwind-dw2.h diff --git a/gcc/unwind-generic.h b/libgcc/unwind-generic.h similarity index 100% rename from gcc/unwind-generic.h rename to libgcc/unwind-generic.h diff --git a/gcc/unwind-pe.h b/libgcc/unwind-pe.h similarity index 100% rename from gcc/unwind-pe.h rename to libgcc/unwind-pe.h diff --git a/gcc/unwind-sjlj.c b/libgcc/unwind-sjlj.c similarity index 100% rename from gcc/unwind-sjlj.c rename to libgcc/unwind-sjlj.c diff --git a/gcc/unwind.inc b/libgcc/unwind.inc similarity index 100% rename from gcc/unwind.inc rename to libgcc/unwind.inc diff --git a/libgo/Makefile.am b/libgo/Makefile.am index 26a6e78d64fed4095681938e671051affcbec835..740e8d257f41b68bf3dba8838d3e46d33779d9e8 100644 --- a/libgo/Makefile.am +++ b/libgo/Makefile.am @@ -38,7 +38,7 @@ ACLOCAL_AMFLAGS = -I ./config -I ../config AM_CFLAGS = -fexceptions -fplan9-extensions $(SPLIT_STACK) $(WARN_CFLAGS) \ $(STRINGOPS_FLAG) \ - -I $(srcdir)/../gcc -I $(MULTIBUILDTOP)../../gcc/include + -I $(srcdir)/../libgcc -I $(MULTIBUILDTOP)../../gcc/include if USING_SPLIT_STACK AM_LDFLAGS = -XCClinker $(SPLIT_STACK) diff --git a/libgo/Makefile.in b/libgo/Makefile.in index 5060d289261cdc554f54f92db27f2365c36161a0..42a160f3cf5154f394bc6eba42cda0704d4528c9 100644 --- a/libgo/Makefile.in +++ b/libgo/Makefile.in @@ -495,7 +495,7 @@ AM_CPPFLAGS = -I $(srcdir)/runtime $(LIBFFIINCS) $(PTHREAD_CFLAGS) ACLOCAL_AMFLAGS = -I ./config -I ../config AM_CFLAGS = -fexceptions -fplan9-extensions $(SPLIT_STACK) $(WARN_CFLAGS) \ $(STRINGOPS_FLAG) \ - -I $(srcdir)/../gcc -I $(MULTIBUILDTOP)../../gcc/include + -I $(srcdir)/../libgcc -I $(MULTIBUILDTOP)../../gcc/include @USING_SPLIT_STACK_TRUE@AM_LDFLAGS = -XCClinker $(SPLIT_STACK) diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 98b72f501fe6e1abe0f62a0525b8c9ac70e4404a..f6bb404978e9b4a05bf30ba6f48990fc12969841 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,12 @@ +2011-08-05 Rainer Orth + + * configure.ac (GCC_UNWIND_INCLUDE): Rename to + LIBGCC_UNWIND_INCLUDE. + Point to $(multi_basedir)/./libjava/../libgcc. + * configure: Regenerate. + * Makefile.am (GCC_UNWIND_INCLUDE): Reflect this. + * Makefile.in: Regenerate. + 2011-07-12 Andrew Haley * interpret.cc (check_handler): Fix bit rot. diff --git a/libjava/Makefile.am b/libjava/Makefile.am index 152170862c07007c7759d72416306e42850e59c4..1309defb623f5ae1a9fa2d49c361c2d80963ed45 100644 --- a/libjava/Makefile.am +++ b/libjava/Makefile.am @@ -342,7 +342,7 @@ LIBLINK = $(LIBTOOL) --tag=CXX $(LIBTOOLFLAGS) --mode=link $(CXX) -L$(here) \ CXXLINK = $(LIBTOOL) --tag=CXX $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LTLDFLAGS) -o $@ -GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@ +LIBGCC_UNWIND_INCLUDE = @LIBGCC_UNWIND_INCLUDE@ WARNINGS = -Wextra -Wall ## Some systems don't allow `$' in identifiers by default, so we force @@ -410,7 +410,7 @@ AM_CPPFLAGS = -I$(top_srcdir) \ -Iclasspath/include \ -I$(top_srcdir)/classpath/native/fdlibm \ $(GCINCS) $(THREADINCS) $(INCLTDL) \ - $(GCC_UNWIND_INCLUDE) $(ZINCS) $(LIBFFIINCS) + $(LIBGCC_UNWIND_INCLUDE) $(ZINCS) $(LIBFFIINCS) BOOTCLASSPATH = $(srcdir)/classpath/lib diff --git a/libjava/Makefile.in b/libjava/Makefile.in index 6c966a1efd5b73d2f96e78c5ad7581b0fde4e721..e741f26d06d55ec629e73f88cc8159bbccc86ebc 100644 --- a/libjava/Makefile.in +++ b/libjava/Makefile.in @@ -552,7 +552,6 @@ EXCEPTIONSPEC = @EXCEPTIONSPEC@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GCC_FOR_ECJX = @GCC_FOR_ECJX@ -GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@ GCDEPS = @GCDEPS@ GCINCS = @GCINCS@ GCJ = @GCJ@ @@ -600,6 +599,7 @@ LIBART_LIBS = @LIBART_LIBS@ LIBDIR = @LIBDIR@ LIBFFI = @LIBFFI@ LIBFFIINCS = @LIBFFIINCS@ +LIBGCC_UNWIND_INCLUDE = @LIBGCC_UNWIND_INCLUDE@ LIBGCJDEBUG = @LIBGCJDEBUG@ LIBGCJTESTSPEC = @LIBGCJTESTSPEC@ LIBGCJ_BC_SPEC = @LIBGCJ_BC_SPEC@ @@ -1040,7 +1040,7 @@ AM_CPPFLAGS = -I$(top_srcdir) \ -Iclasspath/include \ -I$(top_srcdir)/classpath/native/fdlibm \ $(GCINCS) $(THREADINCS) $(INCLTDL) \ - $(GCC_UNWIND_INCLUDE) $(ZINCS) $(LIBFFIINCS) + $(LIBGCC_UNWIND_INCLUDE) $(ZINCS) $(LIBFFIINCS) BOOTCLASSPATH = $(srcdir)/classpath/lib libgij_la_SOURCES = gij.cc diff --git a/libjava/configure b/libjava/configure index 4c3ab55746b59717c1eab0c75454c196c6c2d361..c2779c07c91b38c97df9501e8eab0f207b28522b 100755 --- a/libjava/configure +++ b/libjava/configure @@ -648,7 +648,7 @@ GCJVERSION toolexeclibdir toolexecmainlibdir toolexecdir -GCC_UNWIND_INCLUDE +LIBGCC_UNWIND_INCLUDE INSTALL_BINARIES_FALSE INSTALL_BINARIES_TRUE NEEDS_DATA_START_FALSE @@ -6781,7 +6781,7 @@ case "${which_gcj}" in cross) if test "x${with_newlib}" = "xyes"; then # FIXME (comment): Why is this needed? - GCC_UNWIND_INCLUDE= + LIBGCC_UNWIND_INCLUDE= fi GCJH='$(target_noncanonical)-gcjh' ;; @@ -20907,8 +20907,8 @@ else fi -# We're in the tree with gcc, and need to include some of its headers. -GCC_UNWIND_INCLUDE='-I$(multi_basedir)/./libjava/../gcc' +# We're in the tree with libgcc, and need to include some of its headers. +LIBGCC_UNWIND_INCLUDE='-I$(multi_basedir)/./libjava/../libgcc' if test "x${with_newlib}" = "xyes"; then # We are being configured with a cross compiler. AC_REPLACE_FUNCS diff --git a/libjava/configure.ac b/libjava/configure.ac index 5f673ea7cfdc332684eb7a29b4140a68280fa39e..92546f72b99cc239bda465f6701908406d614497 100644 --- a/libjava/configure.ac +++ b/libjava/configure.ac @@ -469,7 +469,7 @@ case "${which_gcj}" in cross) if test "x${with_newlib}" = "xyes"; then # FIXME (comment): Why is this needed? - GCC_UNWIND_INCLUDE= + LIBGCC_UNWIND_INCLUDE= fi GCJH='$(target_noncanonical)-gcjh' ;; @@ -1204,8 +1204,8 @@ AC_SUBST(HASH_SYNC_SPEC) AM_CONDITIONAL(USING_GCC, test "$GCC" = yes) -# We're in the tree with gcc, and need to include some of its headers. -GCC_UNWIND_INCLUDE='-I$(multi_basedir)/./libjava/../gcc' +# We're in the tree with libgcc, and need to include some of its headers. +LIBGCC_UNWIND_INCLUDE='-I$(multi_basedir)/./libjava/../libgcc' if test "x${with_newlib}" = "xyes"; then # We are being configured with a cross compiler. AC_REPLACE_FUNCS @@ -1569,7 +1569,7 @@ AM_CONDITIONAL(NATIVE, test "$NATIVE" = yes) AM_CONDITIONAL(ENABLE_SHARED, test "$enable_shared" = yes) AM_CONDITIONAL(NEEDS_DATA_START, test "$NEEDS_DATA_START" = yes && test "$NATIVE" = yes) AM_CONDITIONAL(INSTALL_BINARIES, test -z "${with_multisubdir}") -AC_SUBST(GCC_UNWIND_INCLUDE) +AC_SUBST(LIBGCC_UNWIND_INCLUDE) # Process the option "--enable-version-specific-runtime-libs" # Calculate toolexeclibdir diff --git a/libobjc/ChangeLog b/libobjc/ChangeLog index 45f04859578008a143ad2e261198242e48d8c76d..61d4ac335d7f978fd512e98a6c6f426bf3b3bd7e 100644 --- a/libobjc/ChangeLog +++ b/libobjc/ChangeLog @@ -1,3 +1,8 @@ +2011-08-05 Rainer Orth + + * Makefile.in (INCLUDES): Search + $(srcdir)/$(MULTISRCTOP)../libgcc. + 2011-06-08 Nicola Pero * objc/objc.h (__GNU_LIBOBJC__): Bumped to 20110608. diff --git a/libobjc/Makefile.in b/libobjc/Makefile.in index 02443327058132aa0b24b4e99227bd371c2778f5..0935ccd98d6923b5aaeab05036b656d47d39b2e3 100644 --- a/libobjc/Makefile.in +++ b/libobjc/Makefile.in @@ -101,6 +101,7 @@ OBJC_BOEHM_GC_LIBS=../boehm-gc/libgcjgc_convenience.la $(thread_libs_and_flags) INCLUDES = -I$(srcdir)/$(MULTISRCTOP)../gcc \ -I$(srcdir)/$(MULTISRCTOP)../gcc/config \ -I$(MULTIBUILDTOP)../../$(host_subdir)/gcc \ + -I$(srcdir)/$(MULTISRCTOP)../libgcc \ -I$(srcdir)/$(MULTISRCTOP)../include \ $(OBJC_BOEHM_GC_INCLUDES) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 5168fa3e38de51dcdfde299af81a944048e51eb1..a02326c6dbea756f460d08b60bb178a773641c01 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2011-08-05 Rainer Orth + + * acinclude.m4 (GLIBCXX_EXPORT_INCLUDES): Point TOPLEVEL_INCLUDES + to $(toplevel_srcdir)/libgcc. + * configure: Regenerate. + 2011-08-04 Benjamin Kosnik * doc/xml/manual/build_hacking.xml: Use relative fileref for PNG diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 index 6f6810de23545df145fef22dd246ccfe0b169203..8bbc40e95f22e9d3015451c291a2d910116526f5 100644 --- a/libstdc++-v3/acinclude.m4 +++ b/libstdc++-v3/acinclude.m4 @@ -685,9 +685,9 @@ AC_DEFUN([GLIBCXX_EXPORT_INCLUDES], [ fi # Stuff in the actual top level. Currently only used by libsupc++ to - # get unwind* headers from the gcc dir. - #TOPLEVEL_INCLUDES='-I$(toplevel_srcdir)/gcc -I$(toplevel_srcdir)/include' - TOPLEVEL_INCLUDES='-I$(toplevel_srcdir)/gcc' + # get unwind* headers from the libgcc dir. + #TOPLEVEL_INCLUDES='-I$(toplevel_srcdir)/libgcc -I$(toplevel_srcdir)/include' + TOPLEVEL_INCLUDES='-I$(toplevel_srcdir)/libgcc' # Now, export this to all the little Makefiles.... AC_SUBST(GLIBCXX_INCLUDES) diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure index 0bbc485d3006d1bcf5efef85a7939162387ad482..c7be667dc8043a129b0385344cf537dade390559 100755 --- a/libstdc++-v3/configure +++ b/libstdc++-v3/configure @@ -65769,9 +65769,9 @@ $as_echo "$gxx_include_dir" >&6; } fi # Stuff in the actual top level. Currently only used by libsupc++ to - # get unwind* headers from the gcc dir. - #TOPLEVEL_INCLUDES='-I$(toplevel_srcdir)/gcc -I$(toplevel_srcdir)/include' - TOPLEVEL_INCLUDES='-I$(toplevel_srcdir)/gcc' + # get unwind* headers from the libgcc dir. + #TOPLEVEL_INCLUDES='-I$(toplevel_srcdir)/libgcc -I$(toplevel_srcdir)/include' + TOPLEVEL_INCLUDES='-I$(toplevel_srcdir)/libgcc' # Now, export this to all the little Makefiles....