diff options
author | Andreas Krebbel <Andreas.Krebbel@de.ibm.com> | 2009-10-07 08:26:47 +0000 |
---|---|---|
committer | Andreas Krebbel <krebbel@gcc.gnu.org> | 2009-10-07 08:26:47 +0000 |
commit | 81dd9fd79804a9114e7605dbd637ae5add4726a3 (patch) | |
tree | 9cdd83d5bc004f565fd5d2727f03c00d8ef92671 | |
parent | aeb94799d1eccce7fad688b15d80e1552257281a (diff) | |
download | gcc-81dd9fd79804a9114e7605dbd637ae5add4726a3.zip gcc-81dd9fd79804a9114e7605dbd637ae5add4726a3.tar.gz gcc-81dd9fd79804a9114e7605dbd637ae5add4726a3.tar.bz2 |
config.gcc: Don't include the makefile fragments intended for libgcc.
2009-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* config.gcc: Don't include the makefile fragments intended for
libgcc.
* config/s390/fixdfdi.h: File removed.
* config/s390/libgcc-glibc.ver: File removed.
* config/s390/s390.h: Remove the fixdfdi.h hack.
* config/s390/t-crtstuff: File moved to libgcc dir.
* config/s390/t-linux: Likewise.
* config/s390/t-tpf: libgcc specific parts removed.
* config/s390/t-linux64: Likewise.
2009-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* config.host: Include the s390 makefile fragments.
* config/s390/32/_fixdfdi.c: New file.
* config/s390/32/_fixsfdi.c: New file.
* config/s390/32/_fixtfdi.c: New file.
* config/s390/32/_fixunsdfdi.c: New file.
* config/s390/32/_fixunssfdi.c: New file.
* config/s390/32/_fixunstfdi.c: New file.
* config/s390/32/t-floattodi: New file.
* config/s390/libgcc-glibc.ver: New file.
* config/s390/t-crtstuff: New file.
* config/s390/t-linux: New file.
* config/s390/t-tpf: New file.
From-SVN: r152515
-rw-r--r-- | gcc/ChangeLog | 12 | ||||
-rw-r--r-- | gcc/config.gcc | 4 | ||||
-rw-r--r-- | gcc/config/s390/fixdfdi.h | 462 | ||||
-rw-r--r-- | gcc/config/s390/s390.h | 6 | ||||
-rw-r--r-- | gcc/config/s390/t-linux | 3 | ||||
-rw-r--r-- | gcc/config/s390/t-linux64 | 5 | ||||
-rw-r--r-- | gcc/config/s390/t-tpf | 9 | ||||
-rw-r--r-- | libgcc/ChangeLog | 15 | ||||
-rw-r--r-- | libgcc/config.host | 3 | ||||
-rw-r--r-- | libgcc/config/s390/32/_fixdfdi.c | 97 | ||||
-rw-r--r-- | libgcc/config/s390/32/_fixsfdi.c | 93 | ||||
-rw-r--r-- | libgcc/config/s390/32/_fixtfdi.c | 102 | ||||
-rw-r--r-- | libgcc/config/s390/32/_fixunsdfdi.c | 94 | ||||
-rw-r--r-- | libgcc/config/s390/32/_fixunssfdi.c | 90 | ||||
-rw-r--r-- | libgcc/config/s390/32/_fixunstfdi.c | 97 | ||||
-rw-r--r-- | libgcc/config/s390/32/t-floattodi | 5 | ||||
-rw-r--r-- | libgcc/config/s390/libgcc-glibc.ver (renamed from gcc/config/s390/libgcc-glibc.ver) | 0 | ||||
-rw-r--r-- | libgcc/config/s390/t-crtstuff (renamed from gcc/config/s390/t-crtstuff) | 5 | ||||
-rw-r--r-- | libgcc/config/s390/t-linux | 7 | ||||
-rw-r--r-- | libgcc/config/s390/t-tpf | 8 |
20 files changed, 627 insertions, 490 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index faebb39..eb905bb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,15 @@ +2009-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> + + * config.gcc: Don't include the makefile fragments intended for + libgcc. + * config/s390/fixdfdi.h: File removed. + * config/s390/libgcc-glibc.ver: File removed. + * config/s390/s390.h: Remove the fixdfdi.h hack. + * config/s390/t-crtstuff: File moved to libgcc dir. + * config/s390/t-linux: Likewise. + * config/s390/t-tpf: libgcc specific parts removed. + * config/s390/t-linux64: Likewise. + 2009-10-06 Jerry Quinn <jlquinn@optonline.net> * Makefile.in (lto-wrapper): Use COMPILER and ALL_COMPILERFLAGS. diff --git a/gcc/config.gcc b/gcc/config.gcc index 9e3ada7..8f794d4 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -2079,7 +2079,6 @@ rs6000-ibm-aix[6789].* | powerpc-ibm-aix[6789].*) ;; s390-*-linux*) tm_file="s390/s390.h dbxelf.h elfos.h svr4.h linux.h glibc-stdint.h s390/linux.h" - tmake_file="${tmake_file} t-dfprules s390/t-crtstuff s390/t-linux" ;; s390x-*-linux*) tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h svr4.h linux.h glibc-stdint.h s390/linux.h" @@ -2087,7 +2086,7 @@ s390x-*-linux*) md_file=s390/s390.md extra_modes=s390/s390-modes.def out_file=s390/s390.c - tmake_file="${tmake_file} t-dfprules s390/t-crtstuff s390/t-linux s390/t-linux64" + tmake_file="${tmake_file} s390/t-linux64" ;; s390x-ibm-tpf*) tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h svr4.h s390/tpf.h" @@ -2096,7 +2095,6 @@ s390x-ibm-tpf*) extra_modes=s390/s390-modes.def out_file=s390/s390.c extra_parts="crtbeginS.o crtendS.o" - tmake_file="s390/t-crtstuff s390/t-tpf" thread_file='tpf' extra_options="${extra_options} s390/tpf.opt" ;; diff --git a/gcc/config/s390/fixdfdi.h b/gcc/config/s390/fixdfdi.h deleted file mode 100644 index ddddf3a..0000000 --- a/gcc/config/s390/fixdfdi.h +++ /dev/null @@ -1,462 +0,0 @@ -/* Definitions of target machine for GNU compiler, for IBM S/390 - Copyright (C) 1999, 2000, 2001, 2007, 2008 Free Software Foundation, Inc. - Contributed by Hartmut Penner (hpenner@de.ibm.com) and - Ulrich Weigand (uweigand@de.ibm.com). - -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. - -You should have received a copy of the GNU General Public License -along with GCC; see the file COPYING3. If not see -<http://www.gnu.org/licenses/>. */ - -#ifdef L_fixunstfdi - -#define EXPD(fp) (((fp.l.i[0]) >> 16) & 0x7FFF) -#define EXPONENT_BIAS 16383 -#define MANTISSA_BITS 112 -#define PRECISION (MANTISSA_BITS + 1) -#define SIGNBIT 0x80000000 -#define SIGND(fp) ((fp.l.i[0]) & SIGNBIT) -#define MANTD_HIGH_LL(fp) ((fp.ll[0] & HIGH_LL_FRAC_MASK) | HIGH_LL_UNIT_BIT) -#define MANTD_LOW_LL(fp) (fp.ll[1]) -#define FRACD_ZERO_P(fp) (!fp.ll[1] && !(fp.ll[0] & HIGH_LL_FRAC_MASK)) -#define HIGH_LL_FRAC_BITS 48 -#define HIGH_LL_UNIT_BIT ((UDItype_x)1 << HIGH_LL_FRAC_BITS) -#define HIGH_LL_FRAC_MASK (HIGH_LL_UNIT_BIT - 1) - -typedef int DItype_x __attribute__ ((mode (DI))); -typedef unsigned int UDItype_x __attribute__ ((mode (DI))); -typedef int SItype_x __attribute__ ((mode (SI))); -typedef unsigned int USItype_x __attribute__ ((mode (SI))); - -union double_long { - long double d; - struct { - SItype_x i[4]; /* 32 bit parts: 0 upper ... 3 lowest */ - } l; - UDItype_x ll[2]; /* 64 bit parts: 0 upper, 1 lower */ -}; - -UDItype_x __fixunstfdi (long double a1); - -/* convert double to unsigned int */ -UDItype_x -__fixunstfdi (long double a1) -{ - register union double_long dl1; - register int exp; - register UDItype_x l; - - dl1.d = a1; - - /* +/- 0, denormalized, negative */ - if (!EXPD (dl1) || SIGND(dl1)) - return 0; - - /* The exponent - considered the binary point at the right end of - the mantissa. */ - exp = EXPD (dl1) - EXPONENT_BIAS - MANTISSA_BITS; - - /* number < 1: If the mantissa would need to be right-shifted more bits than - its size (plus the implied one bit on the left) the result would be - zero. */ - if (exp <= -PRECISION) - return 0; - - /* NaN: All exponent bits set and a nonzero fraction. */ - if ((EXPD(dl1) == 0x7fff) && !FRACD_ZERO_P (dl1)) - return 0x0ULL; - - /* One extra bit is needed for the unit bit which is appended by - MANTD_HIGH_LL on the left of the matissa. */ - exp += HIGH_LL_FRAC_BITS + 1; - - /* If the result would still need a left shift it will be too large - to be represented. */ - if (exp > 0) - return 0xFFFFFFFFFFFFFFFFULL; - - l = MANTD_LOW_LL (dl1) >> (HIGH_LL_FRAC_BITS + 1) - | MANTD_HIGH_LL (dl1) << (64 - (HIGH_LL_FRAC_BITS + 1)); - - return l >> -exp; -} -#define __fixunstfdi ___fixunstfdi -#endif -#undef L_fixunstfdi - -#ifdef L_fixtfdi -#define EXPD(fp) (((fp.l.i[0]) >> 16) & 0x7FFF) -#define EXPONENT_BIAS 16383 -#define MANTISSA_BITS 112 -#define PRECISION (MANTISSA_BITS + 1) -#define SIGNBIT 0x80000000 -#define SIGND(fp) ((fp.l.i[0]) & SIGNBIT) -#define MANTD_HIGH_LL(fp) ((fp.ll[0] & HIGH_LL_FRAC_MASK) | HIGH_LL_UNIT_BIT) -#define MANTD_LOW_LL(fp) (fp.ll[1]) -#define FRACD_ZERO_P(fp) (!fp.ll[1] && !(fp.ll[0] & HIGH_LL_FRAC_MASK)) -#define HIGH_LL_FRAC_BITS 48 -#define HIGH_LL_UNIT_BIT ((UDItype_x)1 << HIGH_LL_FRAC_BITS) -#define HIGH_LL_FRAC_MASK (HIGH_LL_UNIT_BIT - 1) - -typedef int DItype_x __attribute__ ((mode (DI))); -typedef unsigned int UDItype_x __attribute__ ((mode (DI))); -typedef int SItype_x __attribute__ ((mode (SI))); -typedef unsigned int USItype_x __attribute__ ((mode (SI))); - -union double_long { - long double d; - struct { - SItype_x i[4]; /* 32 bit parts: 0 upper ... 3 lowest */ - } l; - UDItype_x ll[2]; /* 64 bit parts: 0 upper, 1 lower */ -}; - -DItype_x __fixtfdi (long double a1); - -/* convert double to unsigned int */ -DItype_x -__fixtfdi (long double a1) -{ - register union double_long dl1; - register int exp; - register UDItype_x l; - - dl1.d = a1; - - /* +/- 0, denormalized */ - if (!EXPD (dl1)) - return 0; - - /* The exponent - considered the binary point at the right end of - the mantissa. */ - exp = EXPD (dl1) - EXPONENT_BIAS - MANTISSA_BITS; - - /* number < 1: If the mantissa would need to be right-shifted more bits than - its size the result would be zero. */ - if (exp <= -PRECISION) - return 0; - - /* NaN: All exponent bits set and a nonzero fraction. */ - if ((EXPD(dl1) == 0x7fff) && !FRACD_ZERO_P (dl1)) - return 0x8000000000000000ULL; - - /* One extra bit is needed for the unit bit which is appended by - MANTD_HIGH_LL on the left of the matissa. */ - exp += HIGH_LL_FRAC_BITS + 1; - - /* If the result would still need a left shift it will be too large - to be represented. Compared to the unsigned variant we have to - take care that there is still space for the sign bit to be - applied. So we can only go on if there is a right-shift by one - or more. */ - if (exp >= 0) - { - l = 1ULL << 63; /* long long min */ - return SIGND (dl1) ? l : l - 1; - } - - l = MANTD_LOW_LL (dl1) >> (HIGH_LL_FRAC_BITS + 1) - | MANTD_HIGH_LL (dl1) << (64 - (HIGH_LL_FRAC_BITS + 1)); - - return SIGND (dl1) ? -(l >> -exp) : l >> -exp; -} -#define __fixtfdi ___fixtfdi -#endif -#undef L_fixtfdi - -#ifdef L_fixunsdfdi -#define EXPD(fp) (((fp.l.upper) >> 20) & 0x7FF) -#define EXCESSD 1022 -#define SIGNBIT 0x80000000 -#define SIGND(fp) ((fp.l.upper) & SIGNBIT) -#define MANTD_LL(fp) ((fp.ll & (HIDDEND_LL-1)) | HIDDEND_LL) -#define FRACD_LL(fp) (fp.ll & (HIDDEND_LL-1)) -#define HIDDEND_LL ((UDItype_x)1 << 52) - -typedef int DItype_x __attribute__ ((mode (DI))); -typedef unsigned int UDItype_x __attribute__ ((mode (DI))); -typedef int SItype_x __attribute__ ((mode (SI))); -typedef unsigned int USItype_x __attribute__ ((mode (SI))); - -union double_long { - double d; - struct { - SItype_x upper; - USItype_x lower; - } l; - UDItype_x ll; -}; - -UDItype_x __fixunsdfdi (double a1); - -/* convert double to unsigned int */ -UDItype_x -__fixunsdfdi (double a1) -{ - register union double_long dl1; - register int exp; - register UDItype_x l; - - dl1.d = a1; - - /* +/- 0, denormalized, negative */ - - if (!EXPD (dl1) || SIGND(dl1)) - return 0; - - exp = EXPD (dl1) - EXCESSD - 53; - - /* number < 1 */ - - if (exp < -53) - return 0; - - /* NaN */ - - if ((EXPD(dl1) == 0x7ff) && (FRACD_LL(dl1) != 0)) /* NaN */ - return 0x0ULL; - - /* Number big number & + inf */ - - if (exp >= 12) { - return 0xFFFFFFFFFFFFFFFFULL; - } - - l = MANTD_LL(dl1); - - /* shift down until exp < 12 or l = 0 */ - if (exp > 0) - l <<= exp; - else - l >>= -exp; - - return l; -} -#define __fixunsdfdi ___fixunsdfdi -#endif -#undef L_fixunsdfdi - -#ifdef L_fixdfdi -#define EXPD(fp) (((fp.l.upper) >> 20) & 0x7FF) -#define EXCESSD 1022 -#define SIGNBIT 0x80000000 -#define SIGND(fp) ((fp.l.upper) & SIGNBIT) -#define MANTD_LL(fp) ((fp.ll & (HIDDEND_LL-1)) | HIDDEND_LL) -#define FRACD_LL(fp) (fp.ll & (HIDDEND_LL-1)) -#define HIDDEND_LL ((UDItype_x)1 << 52) - -typedef int DItype_x __attribute__ ((mode (DI))); -typedef unsigned int UDItype_x __attribute__ ((mode (DI))); -typedef int SItype_x __attribute__ ((mode (SI))); -typedef unsigned int USItype_x __attribute__ ((mode (SI))); - -union double_long { - double d; - struct { - SItype_x upper; - USItype_x lower; - } l; - UDItype_x ll; -}; - -DItype_x __fixdfdi (double a1); - -/* convert double to int */ -DItype_x -__fixdfdi (double a1) -{ - register union double_long dl1; - register int exp; - register DItype_x l; - - dl1.d = a1; - - /* +/- 0, denormalized */ - - if (!EXPD (dl1)) - return 0; - - exp = EXPD (dl1) - EXCESSD - 53; - - /* number < 1 */ - - if (exp < -53) - return 0; - - /* NaN */ - - if ((EXPD(dl1) == 0x7ff) && (FRACD_LL(dl1) != 0)) /* NaN */ - return 0x8000000000000000ULL; - - /* Number big number & +/- inf */ - - if (exp >= 11) { - l = (long long)1<<63; - if (!SIGND(dl1)) - l--; - return l; - } - - l = MANTD_LL(dl1); - - /* shift down until exp < 12 or l = 0 */ - if (exp > 0) - l <<= exp; - else - l >>= -exp; - - return (SIGND (dl1) ? -l : l); -} -#define __fixdfdi ___fixdfdi -#endif -#undef L_fixdfdi - -#ifdef L_fixunssfdi -#define EXP(fp) (((fp.l) >> 23) & 0xFF) -#define EXCESS 126 -#define SIGNBIT 0x80000000 -#define SIGN(fp) ((fp.l) & SIGNBIT) -#define HIDDEN (1 << 23) -#define MANT(fp) (((fp.l) & 0x7FFFFF) | HIDDEN) -#define FRAC(fp) ((fp.l) & 0x7FFFFF) - -typedef int DItype_x __attribute__ ((mode (DI))); -typedef unsigned int UDItype_x __attribute__ ((mode (DI))); -typedef int SItype_x __attribute__ ((mode (SI))); -typedef unsigned int USItype_x __attribute__ ((mode (SI))); - -union float_long - { - float f; - USItype_x l; - }; - -UDItype_x __fixunssfdi (float a1); - -/* convert float to unsigned int */ -UDItype_x -__fixunssfdi (float a1) -{ - register union float_long fl1; - register int exp; - register UDItype_x l; - - fl1.f = a1; - - /* +/- 0, denormalized, negative */ - - if (!EXP (fl1) || SIGN(fl1)) - return 0; - - exp = EXP (fl1) - EXCESS - 24; - - /* number < 1 */ - - if (exp < -24) - return 0; - - /* NaN */ - - if ((EXP(fl1) == 0xff) && (FRAC(fl1) != 0)) /* NaN */ - return 0x0ULL; - - /* Number big number & + inf */ - - if (exp >= 41) { - return 0xFFFFFFFFFFFFFFFFULL; - } - - l = MANT(fl1); - - if (exp > 0) - l <<= exp; - else - l >>= -exp; - - return l; -} -#define __fixunssfdi ___fixunssfdi -#endif -#undef L_fixunssfdi - -#ifdef L_fixsfdi -#define EXP(fp) (((fp.l) >> 23) & 0xFF) -#define EXCESS 126 -#define SIGNBIT 0x80000000 -#define SIGN(fp) ((fp.l) & SIGNBIT) -#define HIDDEN (1 << 23) -#define MANT(fp) (((fp.l) & 0x7FFFFF) | HIDDEN) -#define FRAC(fp) ((fp.l) & 0x7FFFFF) - -typedef int DItype_x __attribute__ ((mode (DI))); -typedef unsigned int UDItype_x __attribute__ ((mode (DI))); -typedef int SItype_x __attribute__ ((mode (SI))); -typedef unsigned int USItype_x __attribute__ ((mode (SI))); - -union float_long - { - float f; - USItype_x l; - }; - -DItype_x __fixsfdi (float a1); - -/* convert double to int */ -DItype_x -__fixsfdi (float a1) -{ - register union float_long fl1; - register int exp; - register DItype_x l; - - fl1.f = a1; - - /* +/- 0, denormalized */ - - if (!EXP (fl1)) - return 0; - - exp = EXP (fl1) - EXCESS - 24; - - /* number < 1 */ - - if (exp < -24) - return 0; - - /* NaN */ - - if ((EXP(fl1) == 0xff) && (FRAC(fl1) != 0)) /* NaN */ - return 0x8000000000000000ULL; - - /* Number big number & +/- inf */ - - if (exp >= 40) { - l = (long long)1<<63; - if (!SIGN(fl1)) - l--; - return l; - } - - l = MANT(fl1); - - if (exp > 0) - l <<= exp; - else - l >>= -exp; - - return (SIGN (fl1) ? -l : l); -} -#define __fixsfdi ___fixsfdi -#endif -#undef L_fixsfdi diff --git a/gcc/config/s390/s390.h b/gcc/config/s390/s390.h index ffb96cd..2da8b87 100644 --- a/gcc/config/s390/s390.h +++ b/gcc/config/s390/s390.h @@ -24,12 +24,6 @@ along with GCC; see the file COPYING3. If not see #ifndef _S390_H #define _S390_H -/* Override the __fixdfdi etc. routines when building libgcc2. - ??? This should be done in a cleaner way ... */ -#if defined (IN_LIBGCC2) && !defined (__s390x__) -#include <config/s390/fixdfdi.h> -#endif - /* Which processor to generate code or schedule for. The cpu attribute defines a list that mirrors this list, so changes to s390.md must be made at the same time. */ diff --git a/gcc/config/s390/t-linux b/gcc/config/s390/t-linux deleted file mode 100644 index d5a9278..0000000 --- a/gcc/config/s390/t-linux +++ /dev/null @@ -1,3 +0,0 @@ -# Override t-slibgcc-elf-ver to export some libgcc symbols with -# the symbol versions that glibc used. -SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver $(srcdir)/config/s390/libgcc-glibc.ver diff --git a/gcc/config/s390/t-linux64 b/gcc/config/s390/t-linux64 index 0ffb690..36aced0 100644 --- a/gcc/config/s390/t-linux64 +++ b/gcc/config/s390/t-linux64 @@ -1,8 +1,3 @@ MULTILIB_OPTIONS = m64/m31 MULTILIB_DIRNAMES = 64 32 MULTILIB_OSDIRNAMES = ../lib64 ../lib - -LIBGCC = stmp-multilib -INSTALL_LIBGCC = install-multilib - -EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o diff --git a/gcc/config/s390/t-tpf b/gcc/config/s390/t-tpf deleted file mode 100644 index 6e4c377..0000000 --- a/gcc/config/s390/t-tpf +++ /dev/null @@ -1,9 +0,0 @@ -# Compile crtbeginS.o and crtendS.o with pic. -CRTSTUFF_T_CFLAGS_S = $(CRTSTUFF_T_CFLAGS) -fPIC -# Compile libgcc2.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)/gthr-gnat.c $(srcdir)/unwind-c.c -LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index d10d5cc..9f4f31f 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,18 @@ +2009-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> + + * config.host: Include the s390 makefile fragments. + * config/s390/32/_fixdfdi.c: New file. + * config/s390/32/_fixsfdi.c: New file. + * config/s390/32/_fixtfdi.c: New file. + * config/s390/32/_fixunsdfdi.c: New file. + * config/s390/32/_fixunssfdi.c: New file. + * config/s390/32/_fixunstfdi.c: New file. + * config/s390/32/t-floattodi: New file. + * config/s390/libgcc-glibc.ver: New file. + * config/s390/t-crtstuff: New file. + * config/s390/t-linux: New file. + * config/s390/t-tpf: New file. + 2009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> * configure.ac (AC_PREREQ): Bump to 2.64. diff --git a/libgcc/config.host b/libgcc/config.host index da46004..91b7054 100644 --- a/libgcc/config.host +++ b/libgcc/config.host @@ -483,10 +483,13 @@ rs6000-ibm-aix5.1.* | powerpc-ibm-aix5.1.*) rs6000-ibm-aix[56789].* | powerpc-ibm-aix[56789].*) ;; s390-*-linux*) + tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux s390/32/t-floattodi" ;; s390x-*-linux*) + tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux" ;; s390x-ibm-tpf*) + tmake_file="${tmake_file} s390/t-crtstuff s390/t-tpf" ;; score-*-elf) ;; diff --git a/libgcc/config/s390/32/_fixdfdi.c b/libgcc/config/s390/32/_fixdfdi.c new file mode 100644 index 0000000..364849c --- /dev/null +++ b/libgcc/config/s390/32/_fixdfdi.c @@ -0,0 +1,97 @@ +/* Definitions of target machine for GNU compiler, for IBM S/390 + Copyright (C) 1999, 2000, 2001, 2007, 2008 and 2009 + Free Software Foundation, Inc. + Contributed by Hartmut Penner (hpenner@de.ibm.com) and + Ulrich Weigand (uweigand@de.ibm.com). + +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 +<http://www.gnu.org/licenses/>. */ + +#define EXPD(fp) (((fp.l.upper) >> 20) & 0x7FF) +#define EXCESSD 1022 +#define SIGNBIT 0x80000000 +#define SIGND(fp) ((fp.l.upper) & SIGNBIT) +#define MANTD_LL(fp) ((fp.ll & (HIDDEND_LL-1)) | HIDDEND_LL) +#define FRACD_LL(fp) (fp.ll & (HIDDEND_LL-1)) +#define HIDDEND_LL ((UDItype_x)1 << 52) + +typedef int DItype_x __attribute__ ((mode (DI))); +typedef unsigned int UDItype_x __attribute__ ((mode (DI))); +typedef int SItype_x __attribute__ ((mode (SI))); +typedef unsigned int USItype_x __attribute__ ((mode (SI))); + +union double_long { + double d; + struct { + SItype_x upper; + USItype_x lower; + } l; + UDItype_x ll; +}; + +DItype_x __fixdfdi (double a1); + +/* convert double to int */ +DItype_x +__fixdfdi (double a1) +{ + register union double_long dl1; + register int exp; + register DItype_x l; + + dl1.d = a1; + + /* +/- 0, denormalized */ + + if (!EXPD (dl1)) + return 0; + + exp = EXPD (dl1) - EXCESSD - 53; + + /* number < 1 */ + + if (exp < -53) + return 0; + + /* NaN */ + + if ((EXPD(dl1) == 0x7ff) && (FRACD_LL(dl1) != 0)) /* NaN */ + return 0x8000000000000000ULL; + + /* Number big number & +/- inf */ + + if (exp >= 11) { + l = (long long)1<<63; + if (!SIGND(dl1)) + l--; + return l; + } + + l = MANTD_LL(dl1); + + /* shift down until exp < 12 or l = 0 */ + if (exp > 0) + l <<= exp; + else + l >>= -exp; + + return (SIGND (dl1) ? -l : l); +} diff --git a/libgcc/config/s390/32/_fixsfdi.c b/libgcc/config/s390/32/_fixsfdi.c new file mode 100644 index 0000000..06336c1 --- /dev/null +++ b/libgcc/config/s390/32/_fixsfdi.c @@ -0,0 +1,93 @@ +/* Definitions of target machine for GNU compiler, for IBM S/390 + Copyright (C) 1999, 2000, 2001, 2007, 2008 and 2009 + Free Software Foundation, Inc. + Contributed by Hartmut Penner (hpenner@de.ibm.com) and + Ulrich Weigand (uweigand@de.ibm.com). + +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 +<http://www.gnu.org/licenses/>. */ + +#define EXP(fp) (((fp.l) >> 23) & 0xFF) +#define EXCESS 126 +#define SIGNBIT 0x80000000 +#define SIGN(fp) ((fp.l) & SIGNBIT) +#define HIDDEN (1 << 23) +#define MANT(fp) (((fp.l) & 0x7FFFFF) | HIDDEN) +#define FRAC(fp) ((fp.l) & 0x7FFFFF) + +typedef int DItype_x __attribute__ ((mode (DI))); +typedef unsigned int UDItype_x __attribute__ ((mode (DI))); +typedef int SItype_x __attribute__ ((mode (SI))); +typedef unsigned int USItype_x __attribute__ ((mode (SI))); + +union float_long + { + float f; + USItype_x l; + }; + +DItype_x __fixsfdi (float a1); + +/* convert double to int */ +DItype_x +__fixsfdi (float a1) +{ + register union float_long fl1; + register int exp; + register DItype_x l; + + fl1.f = a1; + + /* +/- 0, denormalized */ + + if (!EXP (fl1)) + return 0; + + exp = EXP (fl1) - EXCESS - 24; + + /* number < 1 */ + + if (exp < -24) + return 0; + + /* NaN */ + + if ((EXP(fl1) == 0xff) && (FRAC(fl1) != 0)) /* NaN */ + return 0x8000000000000000ULL; + + /* Number big number & +/- inf */ + + if (exp >= 40) { + l = (long long)1<<63; + if (!SIGN(fl1)) + l--; + return l; + } + + l = MANT(fl1); + + if (exp > 0) + l <<= exp; + else + l >>= -exp; + + return (SIGN (fl1) ? -l : l); +} diff --git a/libgcc/config/s390/32/_fixtfdi.c b/libgcc/config/s390/32/_fixtfdi.c new file mode 100644 index 0000000..719703e --- /dev/null +++ b/libgcc/config/s390/32/_fixtfdi.c @@ -0,0 +1,102 @@ +/* Definitions of target machine for GNU compiler, for IBM S/390 + Copyright (C) 1999, 2000, 2001, 2007, 2008 and 2009 + Free Software Foundation, Inc. + Contributed by Hartmut Penner (hpenner@de.ibm.com) and + Ulrich Weigand (uweigand@de.ibm.com). + +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 +<http://www.gnu.org/licenses/>. */ + +#define EXPD(fp) (((fp.l.i[0]) >> 16) & 0x7FFF) +#define EXPONENT_BIAS 16383 +#define MANTISSA_BITS 112 +#define PRECISION (MANTISSA_BITS + 1) +#define SIGNBIT 0x80000000 +#define SIGND(fp) ((fp.l.i[0]) & SIGNBIT) +#define MANTD_HIGH_LL(fp) ((fp.ll[0] & HIGH_LL_FRAC_MASK) | HIGH_LL_UNIT_BIT) +#define MANTD_LOW_LL(fp) (fp.ll[1]) +#define FRACD_ZERO_P(fp) (!fp.ll[1] && !(fp.ll[0] & HIGH_LL_FRAC_MASK)) +#define HIGH_LL_FRAC_BITS 48 +#define HIGH_LL_UNIT_BIT ((UDItype_x)1 << HIGH_LL_FRAC_BITS) +#define HIGH_LL_FRAC_MASK (HIGH_LL_UNIT_BIT - 1) + +typedef int DItype_x __attribute__ ((mode (DI))); +typedef unsigned int UDItype_x __attribute__ ((mode (DI))); +typedef int SItype_x __attribute__ ((mode (SI))); +typedef unsigned int USItype_x __attribute__ ((mode (SI))); + +union double_long { + long double d; + struct { + SItype_x i[4]; /* 32 bit parts: 0 upper ... 3 lowest */ + } l; + UDItype_x ll[2]; /* 64 bit parts: 0 upper, 1 lower */ +}; + +DItype_x __fixtfdi (long double a1); + +/* convert double to unsigned int */ +DItype_x +__fixtfdi (long double a1) +{ + register union double_long dl1; + register int exp; + register UDItype_x l; + + dl1.d = a1; + + /* +/- 0, denormalized */ + if (!EXPD (dl1)) + return 0; + + /* The exponent - considered the binary point at the right end of + the mantissa. */ + exp = EXPD (dl1) - EXPONENT_BIAS - MANTISSA_BITS; + + /* number < 1: If the mantissa would need to be right-shifted more bits than + its size the result would be zero. */ + if (exp <= -PRECISION) + return 0; + + /* NaN: All exponent bits set and a nonzero fraction. */ + if ((EXPD(dl1) == 0x7fff) && !FRACD_ZERO_P (dl1)) + return 0x8000000000000000ULL; + + /* One extra bit is needed for the unit bit which is appended by + MANTD_HIGH_LL on the left of the matissa. */ + exp += HIGH_LL_FRAC_BITS + 1; + + /* If the result would still need a left shift it will be too large + to be represented. Compared to the unsigned variant we have to + take care that there is still space for the sign bit to be + applied. So we can only go on if there is a right-shift by one + or more. */ + if (exp >= 0) + { + l = 1ULL << 63; /* long long min */ + return SIGND (dl1) ? l : l - 1; + } + + l = MANTD_LOW_LL (dl1) >> (HIGH_LL_FRAC_BITS + 1) + | MANTD_HIGH_LL (dl1) << (64 - (HIGH_LL_FRAC_BITS + 1)); + + return SIGND (dl1) ? -(l >> -exp) : l >> -exp; +} diff --git a/libgcc/config/s390/32/_fixunsdfdi.c b/libgcc/config/s390/32/_fixunsdfdi.c new file mode 100644 index 0000000..2c33652 --- /dev/null +++ b/libgcc/config/s390/32/_fixunsdfdi.c @@ -0,0 +1,94 @@ +/* Definitions of target machine for GNU compiler, for IBM S/390 + Copyright (C) 1999, 2000, 2001, 2007, 2008 and 2009 + Free Software Foundation, Inc. + Contributed by Hartmut Penner (hpenner@de.ibm.com) and + Ulrich Weigand (uweigand@de.ibm.com). + +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 +<http://www.gnu.org/licenses/>. */ + +#define EXPD(fp) (((fp.l.upper) >> 20) & 0x7FF) +#define EXCESSD 1022 +#define SIGNBIT 0x80000000 +#define SIGND(fp) ((fp.l.upper) & SIGNBIT) +#define MANTD_LL(fp) ((fp.ll & (HIDDEND_LL-1)) | HIDDEND_LL) +#define FRACD_LL(fp) (fp.ll & (HIDDEND_LL-1)) +#define HIDDEND_LL ((UDItype_x)1 << 52) + +typedef int DItype_x __attribute__ ((mode (DI))); +typedef unsigned int UDItype_x __attribute__ ((mode (DI))); +typedef int SItype_x __attribute__ ((mode (SI))); +typedef unsigned int USItype_x __attribute__ ((mode (SI))); + +union double_long { + double d; + struct { + SItype_x upper; + USItype_x lower; + } l; + UDItype_x ll; +}; + +UDItype_x __fixunsdfdi (double a1); + +/* convert double to unsigned int */ +UDItype_x +__fixunsdfdi (double a1) +{ + register union double_long dl1; + register int exp; + register UDItype_x l; + + dl1.d = a1; + + /* +/- 0, denormalized, negative */ + + if (!EXPD (dl1) || SIGND(dl1)) + return 0; + + exp = EXPD (dl1) - EXCESSD - 53; + + /* number < 1 */ + + if (exp < -53) + return 0; + + /* NaN */ + + if ((EXPD(dl1) == 0x7ff) && (FRACD_LL(dl1) != 0)) /* NaN */ + return 0x0ULL; + + /* Number big number & + inf */ + + if (exp >= 12) { + return 0xFFFFFFFFFFFFFFFFULL; + } + + l = MANTD_LL(dl1); + + /* shift down until exp < 12 or l = 0 */ + if (exp > 0) + l <<= exp; + else + l >>= -exp; + + return l; +} diff --git a/libgcc/config/s390/32/_fixunssfdi.c b/libgcc/config/s390/32/_fixunssfdi.c new file mode 100644 index 0000000..eaaad96 --- /dev/null +++ b/libgcc/config/s390/32/_fixunssfdi.c @@ -0,0 +1,90 @@ +/* Definitions of target machine for GNU compiler, for IBM S/390 + Copyright (C) 1999, 2000, 2001, 2007, 2008 and 2009 + Free Software Foundation, Inc. + Contributed by Hartmut Penner (hpenner@de.ibm.com) and + Ulrich Weigand (uweigand@de.ibm.com). + +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 +<http://www.gnu.org/licenses/>. */ + +#define EXP(fp) (((fp.l) >> 23) & 0xFF) +#define EXCESS 126 +#define SIGNBIT 0x80000000 +#define SIGN(fp) ((fp.l) & SIGNBIT) +#define HIDDEN (1 << 23) +#define MANT(fp) (((fp.l) & 0x7FFFFF) | HIDDEN) +#define FRAC(fp) ((fp.l) & 0x7FFFFF) + +typedef int DItype_x __attribute__ ((mode (DI))); +typedef unsigned int UDItype_x __attribute__ ((mode (DI))); +typedef int SItype_x __attribute__ ((mode (SI))); +typedef unsigned int USItype_x __attribute__ ((mode (SI))); + +union float_long + { + float f; + USItype_x l; + }; + +UDItype_x __fixunssfdi (float a1); + +/* convert float to unsigned int */ +UDItype_x +__fixunssfdi (float a1) +{ + register union float_long fl1; + register int exp; + register UDItype_x l; + + fl1.f = a1; + + /* +/- 0, denormalized, negative */ + + if (!EXP (fl1) || SIGN(fl1)) + return 0; + + exp = EXP (fl1) - EXCESS - 24; + + /* number < 1 */ + + if (exp < -24) + return 0; + + /* NaN */ + + if ((EXP(fl1) == 0xff) && (FRAC(fl1) != 0)) /* NaN */ + return 0x0ULL; + + /* Number big number & + inf */ + + if (exp >= 41) { + return 0xFFFFFFFFFFFFFFFFULL; + } + + l = MANT(fl1); + + if (exp > 0) + l <<= exp; + else + l >>= -exp; + + return l; +} diff --git a/libgcc/config/s390/32/_fixunstfdi.c b/libgcc/config/s390/32/_fixunstfdi.c new file mode 100644 index 0000000..cc7ada5 --- /dev/null +++ b/libgcc/config/s390/32/_fixunstfdi.c @@ -0,0 +1,97 @@ +/* Definitions of target machine for GNU compiler, for IBM S/390 + Copyright (C) 1999, 2000, 2001, 2007, 2008 and 2009 + Free Software Foundation, Inc. + Contributed by Hartmut Penner (hpenner@de.ibm.com) and + Ulrich Weigand (uweigand@de.ibm.com). + +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 +<http://www.gnu.org/licenses/>. */ + +#define EXPD(fp) (((fp.l.i[0]) >> 16) & 0x7FFF) +#define EXPONENT_BIAS 16383 +#define MANTISSA_BITS 112 +#define PRECISION (MANTISSA_BITS + 1) +#define SIGNBIT 0x80000000 +#define SIGND(fp) ((fp.l.i[0]) & SIGNBIT) +#define MANTD_HIGH_LL(fp) ((fp.ll[0] & HIGH_LL_FRAC_MASK) | HIGH_LL_UNIT_BIT) +#define MANTD_LOW_LL(fp) (fp.ll[1]) +#define FRACD_ZERO_P(fp) (!fp.ll[1] && !(fp.ll[0] & HIGH_LL_FRAC_MASK)) +#define HIGH_LL_FRAC_BITS 48 +#define HIGH_LL_UNIT_BIT ((UDItype_x)1 << HIGH_LL_FRAC_BITS) +#define HIGH_LL_FRAC_MASK (HIGH_LL_UNIT_BIT - 1) + +typedef int DItype_x __attribute__ ((mode (DI))); +typedef unsigned int UDItype_x __attribute__ ((mode (DI))); +typedef int SItype_x __attribute__ ((mode (SI))); +typedef unsigned int USItype_x __attribute__ ((mode (SI))); + +union double_long { + long double d; + struct { + SItype_x i[4]; /* 32 bit parts: 0 upper ... 3 lowest */ + } l; + UDItype_x ll[2]; /* 64 bit parts: 0 upper, 1 lower */ +}; + +UDItype_x __fixunstfdi (long double a1); + +/* convert double to unsigned int */ +UDItype_x +__fixunstfdi (long double a1) +{ + register union double_long dl1; + register int exp; + register UDItype_x l; + + dl1.d = a1; + + /* +/- 0, denormalized, negative */ + if (!EXPD (dl1) || SIGND(dl1)) + return 0; + + /* The exponent - considered the binary point at the right end of + the mantissa. */ + exp = EXPD (dl1) - EXPONENT_BIAS - MANTISSA_BITS; + + /* number < 1: If the mantissa would need to be right-shifted more bits than + its size (plus the implied one bit on the left) the result would be + zero. */ + if (exp <= -PRECISION) + return 0; + + /* NaN: All exponent bits set and a nonzero fraction. */ + if ((EXPD(dl1) == 0x7fff) && !FRACD_ZERO_P (dl1)) + return 0x0ULL; + + /* One extra bit is needed for the unit bit which is appended by + MANTD_HIGH_LL on the left of the matissa. */ + exp += HIGH_LL_FRAC_BITS + 1; + + /* If the result would still need a left shift it will be too large + to be represented. */ + if (exp > 0) + return 0xFFFFFFFFFFFFFFFFULL; + + l = MANTD_LOW_LL (dl1) >> (HIGH_LL_FRAC_BITS + 1) + | MANTD_HIGH_LL (dl1) << (64 - (HIGH_LL_FRAC_BITS + 1)); + + return l >> -exp; +} diff --git a/libgcc/config/s390/32/t-floattodi b/libgcc/config/s390/32/t-floattodi new file mode 100644 index 0000000..4bd87b1 --- /dev/null +++ b/libgcc/config/s390/32/t-floattodi @@ -0,0 +1,5 @@ +floattodi-functions = _fixsfdi _fixdfdi _fixtfdi _fixunssfdi _fixunsdfdi _fixunstfdi +LIB2FUNCS_EXCLUDE += $(floattodi-functions) + +floattodi-src = $(addsuffix .c, $(floattodi-functions)) +LIB2ADD = $(addprefix $(srcdir)/config/s390/32/, $(floattodi-src)) diff --git a/gcc/config/s390/libgcc-glibc.ver b/libgcc/config/s390/libgcc-glibc.ver index 6fc52e4..6fc52e4 100644 --- a/gcc/config/s390/libgcc-glibc.ver +++ b/libgcc/config/s390/libgcc-glibc.ver diff --git a/gcc/config/s390/t-crtstuff b/libgcc/config/s390/t-crtstuff index 39b0eba..92e87b2 100644 --- a/gcc/config/s390/t-crtstuff +++ b/libgcc/config/s390/t-crtstuff @@ -1,5 +1,6 @@ # crtend*.o cannot be compiled without -fno-asynchronous-unwind-tables, # because then __FRAME_END__ might not be the last thing in .eh_frame # section. -CRTSTUFF_T_CFLAGS = -fno-asynchronous-unwind-tables -TARGET_LIBGCC2_CFLAGS += -mlong-double-128 +CRTSTUFF_T_CFLAGS += -fno-asynchronous-unwind-tables +CRTSTUFF_T_CFLAGS_S += -fno-asynchronous-unwind-tables + diff --git a/libgcc/config/s390/t-linux b/libgcc/config/s390/t-linux new file mode 100644 index 0000000..a0f10cb --- /dev/null +++ b/libgcc/config/s390/t-linux @@ -0,0 +1,7 @@ +DFP_ENABLE = true + +# Override t-slibgcc-elf-ver to export some libgcc symbols with +# the symbol versions that glibc used. +SHLIB_MAPFILES = $(gcc_srcdir)/libgcc-std.ver $(srcdir)/config/s390/libgcc-glibc.ver + +HOST_LIBGCC2_CFLAGS += -mlong-double-128
\ No newline at end of file diff --git a/libgcc/config/s390/t-tpf b/libgcc/config/s390/t-tpf new file mode 100644 index 0000000..b1e8f69 --- /dev/null +++ b/libgcc/config/s390/t-tpf @@ -0,0 +1,8 @@ +# 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)/gthr-gnat.c $(gcc_srcdir)/unwind-c.c \ + $(gcc_srcdir)/emutls.c +LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h |