From patchwork Mon Jun 20 12:24:45 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rainer Orth X-Patchwork-Id: 101104 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id 306A0B6FDE for ; Mon, 20 Jun 2011 22:26:44 +1000 (EST) Received: (qmail 22143 invoked by alias); 20 Jun 2011 12:26:34 -0000 Received: (qmail 21755 invoked by uid 22791); 20 Jun 2011 12:26:19 -0000 X-SWARE-Spam-Status: No, hits=-0.3 required=5.0 tests=AWL, BAYES_50, TW_UC, TW_VS, TW_XS, T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from snape.CeBiTec.Uni-Bielefeld.DE (HELO smtp-relay.CeBiTec.Uni-Bielefeld.DE) (129.70.160.84) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 20 Jun 2011 12:25:21 +0000 Received: from localhost (localhost.CeBiTec.Uni-Bielefeld.DE [127.0.0.1]) by smtp-relay.CeBiTec.Uni-Bielefeld.DE (Postfix) with ESMTP id 262EDA53; Mon, 20 Jun 2011 14:25:16 +0200 (CEST) Received: from smtp-relay.CeBiTec.Uni-Bielefeld.DE ([127.0.0.1]) by localhost (malfoy.CeBiTec.Uni-Bielefeld.DE [127.0.0.1]) (amavisd-new, port 10024) with LMTP id y-MnU3y7VAKE; Mon, 20 Jun 2011 14:24:47 +0200 (CEST) Received: from manam.CeBiTec.Uni-Bielefeld.DE (manam.CeBiTec.Uni-Bielefeld.DE [129.70.161.120]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp-relay.CeBiTec.Uni-Bielefeld.DE (Postfix) with ESMTPS id DB005A4D; Mon, 20 Jun 2011 14:24:47 +0200 (CEST) Received: (from ro@localhost) by manam.CeBiTec.Uni-Bielefeld.DE (8.14.4+Sun/8.14.4/Submit) id p5KCOjfA018480; Mon, 20 Jun 2011 14:24:45 +0200 (MEST) From: Rainer Orth To: gcc-patches@gcc.gnu.org Cc: Paolo Bonzini , Ralf Wildenhues , Ian Lance Taylor , "Joseph S. Myers" , Steve Ellcey , Richard Earnshaw , Ramana Radhakrishnan , Nick Clifton , Douglas Rupp , Tristan Gingold , Mike Stump , Kaz Kojima , David Edelsohn , Sterling Augustine , Arnaud Charlet , java-patches@gcc.gnu.org, Nicola Pero , libstdc++@gcc.gnu.org, Richard Sandiford Subject: [build] Move unwinder to toplevel libgcc Date: Mon, 20 Jun 2011 14:24:45 +0200 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.3 (usg-unix-v) MIME-Version: 1.0 X-IsSubscribed: yes Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org As the next step in moving libgcc parts to toplevel libgcc, this patch moves unwinder-related files and configuration. Since the patch affects many parts of the compiler and targets I cannot test, I'm liberally copying the affected maintainers. Overall, what the patch does is simple: * Move all settings of LIB2ADDEH* and referenced files to libgcc. * Likewise for UNWIND_H. * Since libunwind is tightly tangled into the unwinder, I'm moving that, too. * Move all remaining unwinder-only macros to libgcc: UNW_IVMS_MODE, MD_UNW_COMPATIBLE_PERSONALITY_P, MD_FROB_UPDATE_CONTEXT. * Some target libraries refer to unwinder headers other than unwind.h, which now only live in libgcc. Those references must be adapted. A few issues bear comment: * There are several users of unwind-dw2-fde-glibc.c, on Linux, FreeBSD, and Solaris. Rather than replicate the relevant file list in several places, I'm using a new t-eh-dw2-dip instead. The ...-dip refers to dl_iterate_phdr, since there's nothing glibc-specific about the file. I'm renaming the source file itself to unwind-dw2-fde-dip.c for consistency. * Large parts of the compiler refer to unwind.h and expect it to live in gcc. To avoid invasive changes, I'm backcopying that file from libgcc to gcc, just like the crt files and libgcc itself. * UNW_IVMS_MODE and MD_UNW_COMPATIBLE_PERSONALITY_P are VMS/ia64 only. I'm moving their definitions to vms-unwind.h and include md-unwind-support.h in the users. * gcc/config/sh/t-sh builds an alternate libgcc. This stuff seemed far too involved to touch, so I'm referring to unwind-dw2.c in the libgcc sources. * The only unwinder-related macro I haven't moved is LIBGCC2_UNWIND_ATTRIBUTE. It is only defined gcc/config/mips/mips.h. I suppose we would need a libgcc equivalent of tm.h for that, something I didn't want to attack at this point. This patch has been bootstrapped without regressions on i386-pc-solaris2.11, a slightly earlier version on {i386, sparc}-*-solaris2.{8, 9, 10, 11}. I'd appreciate comments, testing on the affected platforms, and approval :-) Thanks. Rainer 2011-06-12 Rainer Orth gcc: * 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-darwin.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. * 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-linux (LIB2ADDEH): Remove. * config/t-sol2 (LIB2ADDEH): Remove. * config/xtensa/t-xtensa (LIB2ADDEH): Remove. gcc/po: * 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. libgcc: * 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-*eabi, arm*-*-uclinux*eabi, arm*-*-eabi*): Add arm/t-bpabi to tmake_file. Set unwind_header. (arm*-*-symbianelf*): Add arm/t-symbian to tmake_file. Set unwind_header. (ia64*-*-elf*, ia64*-*-freebsd*): Add ia64-t/eh-ia64 to tmake_file. (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*, xtensa*-*-linux*): Set tmake_file. * 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-darwin.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/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/s390/t-tpf (LIB2ADDEH): Remove. * config/t-darwin: New file. * config/t-eh-dw2-dip: New file. * config/t-sol2 (LIB2ADDEH): Remove. * config/extensa/t-xtensa: New file. gcc/ada: * gcc-interface/Makefile.in (raise-gcc.o): Search $(srcdir)/../libgcc. libgo: * Makefile.am (AM_CFLAGS): Search $(srcdir)/../libgcc. * Makefile.in: Regenerate. libjava: * 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. libobjc: * Makefile.in (INCLUDES): Search $(srcdir)/$(MULTISRCTOP)../libgcc. libstdc++-v3: * acinclude.m4 (GLIBCXX_EXPORT_INCLUDES): Point TOPLEVEL_INCLUDES to $(toplevel_srcdir)/libgcc. * configure: Regenerate. diff --git a/gcc/Makefile.in b/gcc/Makefile.in --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -377,8 +377,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). @@ -741,18 +739,6 @@ CRTSTUFF_CFLAGS = -O2 $(GCC_CFLAGS) $(IN -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 @@ -1976,7 +1962,7 @@ GCC_EXTRA_PARTS := $(sort $(EXTRA_MULTIL 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) @@ -1988,13 +1974,7 @@ libgcc.mvars: config.status Makefile $(L echo LIBGCOV = '$(LIBGCOV)' >> 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 @@ -4183,7 +4163,7 @@ gcov-dump$(exeext): $(GCOV_DUMP_OBJS) $( # 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. @@ -4215,9 +4195,6 @@ stmp-int-hdrs: $(STMP_FIXINC) $(USER_H) 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 --- 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/gcc-interface/Makefile.in b/gcc/ada/gcc-interface/Makefile.in --- a/gcc/ada/gcc-interface/Makefile.in +++ b/gcc/ada/gcc-interface/Makefile.in @@ -2799,7 +2799,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 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -1586,9 +1586,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 --- a/gcc/config/arm/t-bpabi +++ b/gcc/config/arm/t-bpabi @@ -25,11 +25,6 @@ LIB2FUNCS_EXTRA = $(srcdir)/config/arm/b 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 --- 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 --- 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 --- a/gcc/config/ia64/t-glibc +++ b/gcc/config/ia64/t-glibc @@ -1,5 +1,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 --- 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 --- a/gcc/config/ia64/t-ia64 +++ b/gcc/config/ia64/t-ia64 @@ -43,9 +43,6 @@ SHLIB_MAPFILES += $(srcdir)/config/ia64/ # 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 --- a/gcc/config/ia64/t-vms +++ b/gcc/config/ia64/t-vms @@ -32,8 +32,6 @@ CRTSTUFF_T_CFLAGS_S = -O0 $(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 --- a/gcc/config/ia64/vms.h +++ b/gcc/config/ia64/vms.h @@ -185,9 +185,6 @@ typedef struct crtl_name_spec /* 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 --- 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 --- 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 --- 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. # @@ -42,8 +42,6 @@ TARGET_LIBGCC2_CFLAGS = -Wa,-force_cpusu # 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 --- 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 @@ EXTRA_MULTILIB_PARTS= $(IC_EXTRA_PARTS) $(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 --- a/gcc/config/spu/t-spu-elf +++ b/gcc/config/spu/t-spu-elf @@ -47,9 +47,6 @@ LIB2FUNCS_STATIC_EXTRA = $(srcdir)/confi $(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 --- a/gcc/config/t-darwin +++ b/gcc/config/t-darwin @@ -51,10 +51,6 @@ EXTRA_MULTILIB_PARTS=crt3.o -fno-tree-dominator-opts $(DARWIN_EXTRA_CRT_BUILD_CFLAGS) \ -c $(srcdir)/config/darwin-crt3.c -o $(T)crt3$(objext) -# 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 --- a/gcc/config/t-freebsd +++ b/gcc/config/t-freebsd @@ -3,7 +3,3 @@ CRTSTUFF_T_CFLAGS_S = $(CRTSTUFF_T_CFLAG # 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 --- 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 --- 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 --- a/gcc/config/t-sol2 +++ b/gcc/config/t-sol2 @@ -31,8 +31,3 @@ sol2.o: $(srcdir)/config/sol2.c $(CONFIG # 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 --- 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 _ _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.ac b/gcc/configure.ac --- a/gcc/configure.ac +++ b/gcc/configure.ac @@ -1173,11 +1173,6 @@ if test $force_sjlj_exceptions = yes; th [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/EXCLUDES b/gcc/po/EXCLUDES --- a/gcc/po/EXCLUDES +++ b/gcc/po/EXCLUDES @@ -46,15 +46,6 @@ libgcov.c 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/libgcc/Makefile.in b/libgcc/Makefile.in --- a/libgcc/Makefile.in +++ b/libgcc/Makefile.in @@ -255,6 +255,17 @@ objects = $(filter %$(objext),$^) LIBGCC_VER_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) @@ -315,6 +326,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 \ @@ -931,6 +946,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 --- 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/-.*$//'` @@ -164,8 +167,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*) @@ -175,7 +180,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 @@ -262,12 +269,34 @@ arm*-*-freebsd*) arm*-*-netbsdelf*) ;; arm*-*-linux*) # ARM GNU/Linux with ELF + case ${host} in + arm*-*-linux-*eabi) + tmake_file=arm/t-bpabi + unwind_header=config/arm/unwind-arm.h + ;; + esac ;; arm*-*-uclinux*) # ARM ucLinux + case ${host} in + arm*-*-uclinux*eabi) + tmake_file=arm/t-bpabi + unwind_header=config/arm/unwind-arm.h + ;; + esac ;; arm*-*-ecos-elf) ;; arm*-*-eabi* | arm*-*-symbianelf* ) + case ${host} in + arm*-*-eabi*) + tmake_file=arm/t-bpabi + unwind_header=config/arm/unwind-arm.h + ;; + arm*-*-symbianelf*) + tmake_file=arm/t-symbian + unwind_header=config/arm/unwind-arm.h + ;; + esac ;; arm*-*-rtems*) ;; @@ -397,21 +426,25 @@ i[34567]86-*-interix3*) ;; ia64*-*-elf*) extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o" - tmake_file="ia64/t-ia64" + tmake_file="ia64/t-ia64 ia64/t-eh-ia64" ;; ia64*-*-freebsd*) extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o" - tmake_file="ia64/t-ia64" + tmake_file="ia64/t-ia64 ia64/t-eh-ia64" ;; ia64*-*-linux*) extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o" - tmake_file="ia64/t-ia64 t-softfp ia64/t-fprules-softfp ia64/t-softfp-compat" + tmake_file="ia64/t-ia64 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/t-eh-ia64" ;; 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*) @@ -511,6 +544,7 @@ moxie-*-*) pdp11-*-*) ;; picochip-*-*) + tmake_file=picochip/t-picochip ;; powerpc-*-darwin*) case ${host} in @@ -561,10 +595,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" @@ -579,7 +616,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) @@ -660,8 +697,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 rename from gcc/config/arm/libunwind.S rename to libgcc/config/arm/libunwind.S diff --git a/gcc/config/arm/pr-support.c b/libgcc/config/arm/pr-support.c 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 --- /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 --- /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 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 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 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 rename from gcc/config/ia64/fde-vms.c rename to libgcc/config/ia64/fde-vms.c --- 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 --- /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 --- /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 rename from gcc/config/ia64/t-glibc-libunwind rename to libgcc/config/ia64/t-glibc-libunwind --- 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 --- /dev/null +++ b/libgcc/config/ia64/t-hpux @@ -0,0 +1,1 @@ +LIB2ADDEH = $(srcdir)/unwind-c.c diff --git a/libgcc/config/ia64/t-vms b/libgcc/config/ia64/t-vms new file mode 100644 --- /dev/null +++ b/libgcc/config/ia64/t-vms @@ -0,0 +1,1 @@ +LIB2ADDEH += $(srcdir)/config/ia64/fde-vms.c diff --git a/gcc/config/ia64/unwind-ia64.c b/libgcc/config/ia64/unwind-ia64.c rename from gcc/config/ia64/unwind-ia64.c rename to libgcc/config/ia64/unwind-ia64.c --- a/gcc/config/ia64/unwind-ia64.c +++ b/libgcc/config/ia64/unwind-ia64.c @@ -32,6 +32,7 @@ #include "coretypes.h" #include "tm.h" #include "unwind.h" +#include "md-unwind-support.h" #include "unwind-ia64.h" #include "unwind-compat.h" #include "ia64intrin.h" diff --git a/gcc/config/ia64/unwind-ia64.h b/libgcc/config/ia64/unwind-ia64.h 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 --- 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 --- /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 --- /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 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 --- a/libgcc/config/rs6000/t-darwin +++ b/libgcc/config/rs6000/t-darwin @@ -1,1 +1,3 @@ +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 --- 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 new file mode 100644 --- /dev/null +++ b/libgcc/config/t-darwin @@ -0,0 +1,3 @@ +# Use unwind-dw2-fde-darwin +LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/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 --- /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 --- /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 rename from gcc/config/t-libunwind-elf rename to libgcc/config/t-libunwind-elf --- 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,13 @@ # 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 +# 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 +37,10 @@ SHLIBUNWIND_LINK = $(GCC_FOR_TARGET) $(L $(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 --- 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/libgcc/config/xtensa/t-xtensa b/libgcc/config/xtensa/t-xtensa new file mode 100644 --- /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 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 rename from gcc/config/xtensa/unwind-dw2-xtensa.h rename to libgcc/config/xtensa/unwind-dw2-xtensa.h diff --git a/libgcc/configure.ac b/libgcc/configure.ac --- 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 s 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]) @@ -279,6 +285,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 rename from gcc/emutls.c rename to libgcc/emutls.c diff --git a/gcc/unwind-c.c b/libgcc/unwind-c.c rename from gcc/unwind-c.c rename to libgcc/unwind-c.c diff --git a/gcc/unwind-compat.c b/libgcc/unwind-compat.c rename from gcc/unwind-compat.c rename to libgcc/unwind-compat.c diff --git a/gcc/unwind-compat.h b/libgcc/unwind-compat.h 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 rename from gcc/unwind-dw2-fde-compat.c rename to libgcc/unwind-dw2-fde-compat.c diff --git a/gcc/unwind-dw2-fde-darwin.c b/libgcc/unwind-dw2-fde-darwin.c rename from gcc/unwind-dw2-fde-darwin.c rename to libgcc/unwind-dw2-fde-darwin.c diff --git a/gcc/unwind-dw2-fde-glibc.c b/libgcc/unwind-dw2-fde-dip.c 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 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 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 rename from gcc/unwind-dw2.c rename to libgcc/unwind-dw2.c diff --git a/gcc/unwind-dw2.h b/libgcc/unwind-dw2.h rename from gcc/unwind-dw2.h rename to libgcc/unwind-dw2.h diff --git a/gcc/unwind-generic.h b/libgcc/unwind-generic.h rename from gcc/unwind-generic.h rename to libgcc/unwind-generic.h diff --git a/gcc/unwind-pe.h b/libgcc/unwind-pe.h rename from gcc/unwind-pe.h rename to libgcc/unwind-pe.h diff --git a/gcc/unwind-sjlj.c b/libgcc/unwind-sjlj.c rename from gcc/unwind-sjlj.c rename to libgcc/unwind-sjlj.c diff --git a/gcc/unwind.inc b/libgcc/unwind.inc rename from gcc/unwind.inc rename to libgcc/unwind.inc diff --git a/libgo/Makefile.am b/libgo/Makefile.am --- a/libgo/Makefile.am +++ b/libgo/Makefile.am @@ -38,7 +38,7 @@ ACLOCAL_AMFLAGS = -I ./config -I ../conf 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/libjava/Makefile.am b/libjava/Makefile.am --- a/libjava/Makefile.am +++ b/libjava/Makefile.am @@ -342,7 +342,7 @@ LIBLINK = $(LIBTOOL) --tag=CXX $(LIBTOOL 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/configure.ac b/libjava/configure.ac --- 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' ;; @@ -1199,8 +1199,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 @@ -1564,7 +1564,7 @@ AM_CONDITIONAL(NATIVE, test "$NATIVE" = 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/Makefile.in b/libobjc/Makefile.in --- a/libobjc/Makefile.in +++ b/libobjc/Makefile.in @@ -101,6 +101,7 @@ OBJC_BOEHM_GC_LIBS=../boehm-gc/libgcjgc_ 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/acinclude.m4 b/libstdc++-v3/acinclude.m4 --- a/libstdc++-v3/acinclude.m4 +++ b/libstdc++-v3/acinclude.m4 @@ -682,9 +682,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)