* CFT: [build] Move libgcc_tm_file to toplevel libgcc
@ 2011-08-15 18:06 Rainer Orth
2011-08-15 20:23 ` Paolo Bonzini
2011-08-16 3:05 ` Joseph S. Myers
0 siblings, 2 replies; 8+ messages in thread
From: Rainer Orth @ 2011-08-15 18:06 UTC (permalink / raw)
To: gcc-patches; +Cc: Paolo Bonzini
[-- Attachment #1: Type: text/plain, Size: 3304 bytes --]
This patch almost completes the build side of the libgcc moves. It
moves the libgcc_tm_file support to libgcc/config.host (tm_file), where
it belongs. It builds on a patch Paolo posted some time ago, with some
minor corrections (introducing the required dependencies on the
generated libgcc_tm.h). I've removed libgcc_tm.h from tm.h and include
the file directly in all libgcc sources that currently include tm.h.
Everything else is pretty mechanical, I believe.
Tested as described in the previous submissions.
Rainer
2011-08-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Paolo Bonzini <bonzini@gnu.org>
gcc:
* configure.ac (libgcc_tm_file_list, libgcc_tm_include_list):
Remove.
* configure: Regenerate.
* Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list): Remove.
(TM_H): Remove libgcc_tm.h, $(libgcc_tm_file_list).
(libgcc_tm.h, cs-libgcc_tm.h): Remove.
(clean): Remove libgcc_tm.h
* mkconfig.sh: Don't include libgcc_tm.h in tm.h.
* config.gcc (libgcc_tm_file): Remove.
(arm*-*-linux*): Remove libgcc_tm_file for arm*-*-linux-*eabi.
(arm*-*-uclinux*): Remove libgcc_tm_file for arm*-*-uclinux*eabi.
(arm*-*-eabi*, arm*-*-symbianelf*): Remove libgcc_tm_file.
(avr-*-rtems*): Likewise.
(avr-*-*): Likewise.
(frv-*-elf): Likewise.
(frv-*-*linux*): Likewise.
(h8300-*-rtems*): Likewise.
(h8300-*-elf*): Likewise.
(i[34567]86-*-darwin*): Likewise.
(x86_64-*-darwin*): Likewise.
(rx-*-elf*): Likewise.
(tic6x-*-elf): Likewise.
(tic6x-*-uclinux): Likewise.
libgcc:
* configure.ac (tm_file_): New variable.
Determine from tm_file.
(tm_file, tm_defines): Substitute.
* configure: Regenerate.
* mkheader.sh: New file.
* Makefile.in (clean): Remove libgcc_tm.h.
($(objects)): Depend on libgcc_tm.h.
(libgcc_tm_defines, libgcc_tm_file): New variables.
(libgcc_tm.h, libgcc_tm.stamp): New targets.
($(libgcc-objects), $(libgcc-s-objects), $(libgcc-eh-objects))
($(libgcov-objects), $(libunwind-objects), $(libunwind-s-objects))
($(extra-parts)): Depend on libgcc_tm.h.
* config.host (tm_defines, tm_file): New variable.
(arm*-*-linux*): Set tm_file for arm*-*-linux-*eabi.
(arm*-*-uclinux*): Set tm_file for arm*-*-uclinux*eabi.
(arm*-*-eabi*, arm*-*-symbianelf*): Set tm_file.
(avr-*-rtems*): Likewise.
(avr-*-*): Likewise.
(frv-*-elf): Likewise.
(frv-*-*linux*): Likewise.
(h8300-*-rtems*): Likewise.
(h8300-*-elf*): Likewise.
(i[34567]86-*-darwin*): Likewise.
(x86_64-*-darwin*): Likewise.
(rx-*-elf): Likewise.
(tic6x-*-uclinux): Likewise.
(tic6x-*-elf): Likewise.
* config/alpha/gthr-posix.c: Include libgcc_tm.h.
* config/i386/cygming-crtbegin.c: Likewise.
* config/i386/cygming-crtend.c: Likewise.
* config/ia64/fde-vms.c: Likewise.
* config/ia64/unwind-ia64.c: Likewise.
* config/libbid/bid_gcc_intrinsics.h: Likewise.
* config/rs6000/darwin-fallback.c: Likewise.
* config/stormy16/lib2funcs.c: Likewise.
* config/xtensa/unwind-dw2-xtensa.c: Likewise.
* crtstuff.c: Likewise.
* dfp-bit.h: Likewise.
* emutls.c: Likewise.
* fixed-bit.c: Likewise.
* fp-bit.c: Likewise.
* generic-morestack-thread.c: Likewise.
* generic-morestack.c: Likewise.
* libgcc2.c: Likewise.
* libgcov.c: Likewise.
* unwind-dw2-fde-dip.c: Likewise.
* unwind-dw2-fde.c: Likewise.
* unwind-dw2.c: Likewise.
* unwind-sjlj.c: Likewise.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Move libgcc_tm_file to toplevel libgcc --]
[-- Type: text/x-patch, Size: 27982 bytes --]
# HG changeset patch
# Parent fe692d8e27093b36a9342ef937f5f9891af8fa60
Move libgcc_tm_file to toplevel libgcc
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -486,8 +486,6 @@ md_file=$(srcdir)/config/@md_file@
tm_file_list=@tm_file_list@
tm_include_list=@tm_include_list@
tm_defines=@tm_defines@
-libgcc_tm_file_list=@libgcc_tm_file_list@
-libgcc_tm_include_list=@libgcc_tm_include_list@
tm_p_file_list=@tm_p_file_list@
tm_p_include_list=@tm_p_include_list@
build_xm_file_list=@build_xm_file_list@
@@ -786,8 +784,7 @@ CONFIG_H = config.h $(host_xm_file_lis
TCONFIG_H = tconfig.h $(xm_file_list)
TM_P_H = tm_p.h $(tm_p_file_list)
GTM_H = tm.h $(tm_file_list) insn-constants.h
-TM_H = $(GTM_H) libgcc_tm.h $(libgcc_tm_file_list) insn-flags.h \
- $(OPTIONS_H)
+TM_H = $(GTM_H) insn-flags.h $(OPTIONS_H)
# Variables for version information.
BASEVER := $(srcdir)/BASE-VER # 4.x.y
@@ -1592,7 +1589,6 @@ config.h: cs-config.h ; @true
bconfig.h: cs-bconfig.h ; @true
tconfig.h: cs-tconfig.h ; @true
tm.h: cs-tm.h ; @true
-libgcc_tm.h: cs-libgcc_tm.h ; @true
tm_p.h: cs-tm_p.h ; @true
cs-config.h: Makefile
@@ -1615,11 +1611,6 @@ cs-tm.h: Makefile
HEADERS="$(tm_include_list)" DEFINES="$(tm_defines)" \
$(SHELL) $(srcdir)/mkconfig.sh tm.h
-cs-libgcc_tm.h: Makefile
- TARGET_CPU_DEFAULT="" \
- HEADERS="$(libgcc_tm_include_list)" DEFINES="" \
- $(SHELL) $(srcdir)/mkconfig.sh libgcc_tm.h
-
cs-tm_p.h: Makefile
TARGET_CPU_DEFAULT="" \
HEADERS="$(tm_p_include_list)" DEFINES="" \
@@ -4375,7 +4366,7 @@ clean: mostlyclean lang.clean
-rm -f libgcc.a libgcc_eh.a libgcov.a
-rm -f libgcc_s*
-rm -f libunwind*
- -rm -f config.h tconfig.h bconfig.h tm_p.h tm.h libgcc_tm.h
+ -rm -f config.h tconfig.h bconfig.h tm_p.h tm.h
-rm -f options.c options.h optionlist
-rm -f cs-*
-rm -f doc/*.dvi
diff --git a/gcc/config.gcc b/gcc/config.gcc
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -84,12 +84,6 @@
# build-directory files by prefixing them with "./".
# All other files should relative to $srcdir/config.
#
-# libgcc_tm_file A list of target macro files used only for code
-# built for the target, not the host. These files
-# are relative to $srcdir/../libgcc/config and
-# must not have the same names as files in
-# $srcdir/config.
-#
# tm_p_file Location of file with declarations for functions
# in $out_file.
#
@@ -216,7 +210,6 @@ target_has_targetcm=no
target_has_targetm_common=yes
tm_defines=
xm_defines=
-libgcc_tm_file=
# Set this to force installation and use of collect2.
use_collect2=
# Set this to override the default target model.
@@ -817,7 +810,6 @@ arm*-*-linux*) # ARM GNU/Linux with EL
case ${target} in
arm*-*-linux-*eabi)
tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h"
- libgcc_tm_file="$libgcc_tm_file arm/bpabi-lib.h"
tmake_file="$tmake_file arm/t-arm-elf arm/t-linux-eabi"
# Define multilib configuration for arm-linux-androideabi.
case ${target} in
@@ -845,7 +837,6 @@ arm*-*-uclinux*) # ARM ucLinux
case ${target} in
arm*-*-uclinux*eabi)
tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h"
- libgcc_tm_file="$libgcc_tm_file arm/bpabi-lib.h"
# The BPABI long long divmod functions return a 128-bit value in
# registers r0-r3. Correctly modeling that requires the use of
# TImode.
@@ -866,7 +857,6 @@ arm*-*-eabi* | arm*-*-symbianelf* )
need_64bit_hwint=yes
default_use_cxa_atexit=yes
tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
- libgcc_tm_file="$libgcc_tm_file arm/bpabi-lib.h"
tmake_file="arm/t-arm arm/t-arm-elf"
case ${target} in
arm*-*-eabi*)
@@ -875,7 +865,6 @@ arm*-*-eabi* | arm*-*-symbianelf* )
;;
arm*-*-symbianelf*)
tm_file="${tm_file} arm/symbian.h"
- libgcc_tm_file="$libgcc_tm_file arm/symbian-lib.h"
# We do not include t-bpabi for Symbian OS because the system
# provides its own implementation of the BPABI functions.
tmake_file="${tmake_file} arm/t-symbian"
@@ -899,14 +888,12 @@ arm*-wince-pe*)
;;
avr-*-rtems*)
tm_file="elfos.h avr/elf.h avr/avr.h dbxelf.h avr/rtems.h rtems.h newlib-stdint.h"
- libgcc_tm_file="$libgcc_tm_file avr/avr-lib.h"
tmake_file="avr/t-avr t-rtems avr/t-rtems"
extra_gcc_objs="driver-avr.o avr-devices.o"
extra_objs="avr-devices.o"
;;
avr-*-*)
tm_file="elfos.h avr/elf.h avr/avr.h dbxelf.h newlib-stdint.h"
- libgcc_tm_file="$libgcc_tm_file avr/avr-lib.h"
use_gcc_stdint=wrap
extra_gcc_objs="driver-avr.o avr-devices.o"
extra_objs="avr-devices.o"
@@ -967,13 +954,11 @@ fr30-*-elf)
;;
frv-*-elf)
tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
- libgcc_tm_file="${libgcc_tm_file} frv/frv-abi.h"
tmake_file=frv/t-frv
;;
frv-*-*linux*)
tm_file="dbxelf.h elfos.h ${tm_file} \
gnu-user.h linux.h glibc-stdint.h frv/linux.h"
- libgcc_tm_file="${libgcc_tm_file} frv/frv-abi.h"
tmake_file="${tmake_file} frv/t-frv frv/t-linux"
;;
moxie-*-elf)
@@ -995,12 +980,10 @@ moxie-*-rtems*)
h8300-*-rtems*)
tmake_file="h8300/t-h8300 t-rtems h8300/t-rtems"
tm_file="h8300/h8300.h dbxelf.h elfos.h h8300/elf.h h8300/rtems.h rtems.h newlib-stdint.h"
- libgcc_tm_file="$libgcc_tm_file h8300/h8300-lib.h"
;;
h8300-*-elf*)
tmake_file="h8300/t-h8300"
tm_file="h8300/h8300.h dbxelf.h elfos.h newlib-stdint.h h8300/elf.h"
- libgcc_tm_file="$libgcc_tm_file h8300/h8300-lib.h"
;;
hppa*64*-*-linux*)
target_cpu_default="MASK_PA_11|MASK_PA_20"
@@ -1145,13 +1128,11 @@ i[34567]86-*-darwin*)
# Baseline choice for a machine that allows m64 support.
with_cpu=${with_cpu:-core2}
tmake_file="${tmake_file} t-slibgcc"
- libgcc_tm_file="$libgcc_tm_file i386/darwin-lib.h"
;;
x86_64-*-darwin*)
with_cpu=${with_cpu:-core2}
tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
tm_file="${tm_file} ${cpu_type}/darwin64.h"
- libgcc_tm_file="$libgcc_tm_file i386/darwin-lib.h"
;;
i[34567]86-*-elf*)
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
@@ -2103,7 +2084,6 @@ rs6000-ibm-aix[6789].* | powerpc-ibm-aix
;;
rx-*-elf*)
tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
- libgcc_tm_file="${libgcc_tm_file} rx/rx-abi.h rx/rx-lib.h"
tmake_file="${tmake_file} rx/t-rx"
;;
s390-*-linux*)
@@ -2424,7 +2404,6 @@ spu-*-elf*)
tic6x-*-elf)
tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
- libgcc_tm_file="${libgcc_tm_file} c6x/c6x-abi.h"
tmake_file="c6x/t-c6x c6x/t-c6x-elf"
use_collect2=no
;;
@@ -2432,7 +2411,6 @@ tic6x-*-uclinux)
tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
tm_file="${tm_file} ./sysroot-suffix.h"
- libgcc_tm_file="${libgcc_tm_file} c6x/c6x-abi.h"
tmake_file="t-sysroot-suffix t-slibgcc"
tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
use_collect2=no
diff --git a/gcc/configure.ac b/gcc/configure.ac
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -1669,13 +1669,6 @@ for f in $tm_file; do
esac
done
-libgcc_tm_file_list=
-libgcc_tm_include_list=
-for f in $libgcc_tm_file; do
- libgcc_tm_file_list="${libgcc_tm_file_list} \$(srcdir)/../libgcc/config/$f"
- libgcc_tm_include_list="${libgcc_tm_include_list} ../libgcc/config/$f"
-done
-
tm_p_file_list=
tm_p_include_list=
for f in $tm_p_file; do
@@ -4894,8 +4887,6 @@ AC_SUBST(thread_file)
AC_SUBST(tm_file_list)
AC_SUBST(tm_include_list)
AC_SUBST(tm_defines)
-AC_SUBST(libgcc_tm_file_list)
-AC_SUBST(libgcc_tm_include_list)
AC_SUBST(tm_p_file_list)
AC_SUBST(tm_p_include_list)
AC_SUBST(xm_file_list)
diff --git a/gcc/mkconfig.sh b/gcc/mkconfig.sh
--- a/gcc/mkconfig.sh
+++ b/gcc/mkconfig.sh
@@ -89,9 +89,8 @@ if [ -n "$HEADERS" ]; then
fi
# If this is tm.h, now include insn-flags.h only if IN_GCC is defined
-# but neither GENERATOR_FILE nor USED_FOR_TARGET is defined. Also
-# include libgcc_tm.h if USED_FOR_TARGET is defined. (Much of this is
-# temporary.)
+# but neither GENERATOR_FILE nor USED_FOR_TARGET is defined. (Much of this
+# is temporary.)
case $output in
tm.h )
@@ -99,9 +98,6 @@ case $output in
#if defined IN_GCC && !defined GENERATOR_FILE && !defined USED_FOR_TARGET
# include "insn-flags.h"
#endif
-#ifdef USED_FOR_TARGET
-# include "libgcc_tm.h"
-#endif
EOF
;;
esac
diff --git a/libgcc/Makefile.in b/libgcc/Makefile.in
--- a/libgcc/Makefile.in
+++ b/libgcc/Makefile.in
@@ -121,7 +121,7 @@ installcheck:
.PHONY: all clean
clean:
- -rm -f config.h stamp-h stmp-ldirs libgcc.map
+ -rm -f config.h libgcc_tm.h stamp-h stmp-ldirs libgcc.map
-rm -f *$(objext)
-rm -f *.dep
-rm -f *.a
@@ -338,6 +338,16 @@ SHLIBUNWIND_INSTALL =
tmake_file = @tmake_file@
include $(srcdir)/empty.mk $(tmake_file)
+# Collect target defines and headers from config.host.
+libgcc_tm_defines = @tm_defines@
+libgcc_tm_file = @tm_file@
+libgcc_tm.h: libgcc_tm.stamp; @true
+libgcc_tm.stamp:
+ DEFINES='$(libgcc_tm_defines)' HEADERS='$(libgcc_tm_file)' \
+ $(srcdir)/mkheader.sh > tmp-libgcc_tm.h
+ $(SHELL) $(srcdir)/../move-if-change tmp-libgcc_tm.h libgcc_tm.h
+ echo timestamp > $@
+
# Only handle shared libraries if both:
# - the user requested them
# - we know how to build them
@@ -984,6 +994,11 @@ libgcc-extra-parts: $(EXTRA_PARTS)
all: $(extra-parts)
+$(libgcc-objects) $(libgcc-s-objects) $(libgcc-eh-objects) \
+ $(libgcov-objects) \
+ $(libunwind-objects) $(libunwind-s-objects) \
+ $(extra-parts): libgcc_tm.h
+
install-unwind_h:
rm -f $(gcc_objdir)/include/unwind.h
cp unwind.h $(gcc_objdir)/include/unwind.h
diff --git a/libgcc/config.host b/libgcc/config.host
--- a/libgcc/config.host
+++ b/libgcc/config.host
@@ -60,6 +60,11 @@
# tmake_file A list of machine-description-specific
# makefile-fragments, if different from
# "$cpu_type/t-$cpu_type".
+# tm_defines List of target macros to define for all compilations.
+# tm_file A list of target macro files used only for code
+# built for the target, not the host. These files
+# are relative to $srcdir/config and must not have
+# the same names as files in $srcdir/../gcc/config.
# unwind_header The name of the header file declaring the unwind
# runtime interface routines.
@@ -67,6 +72,8 @@ asm_hidden_op=.hidden
enable_execute_stack=
extra_parts=
tmake_file=
+tm_file=
+tm_define=
md_unwind_header=no-unwind.h
unwind_header=unwind-generic.h
@@ -329,6 +336,7 @@ arm*-*-linux*) # ARM GNU/Linux with EL
case ${host} in
arm*-*-linux-*eabi)
tmake_file="${tmake_file} arm/t-elf arm/t-bpabi arm/t-linux-eabi t-slibgcc-libgcc"
+ tm_file="$tm_file arm/bpabi-lib.h"
unwind_header=config/arm/unwind-arm.h
;;
*)
@@ -342,6 +350,7 @@ arm*-*-uclinux*) # ARM ucLinux
case ${host} in
arm*-*-uclinux*eabi)
tmake_file="${tmake_file} arm/t-bpabi"
+ tm_file="$tm_file arm/bpabi-lib.h"
unwind_header=config/arm/unwind-arm.h
;;
esac
@@ -354,6 +363,7 @@ arm*-*-ecos-elf)
;;
arm*-*-eabi* | arm*-*-symbianelf* )
tmake_file="${tmake_file} arm/t-arm arm/t-elf t-fixedpoint-gnu-prefix"
+ tm_file="$tm_file arm/bpabi-lib.h"
case ${host} in
arm*-*-eabi*)
tmake_file="${tmake_file} arm/t-bpabi"
@@ -361,6 +371,7 @@ arm*-*-eabi* | arm*-*-symbianelf* )
;;
arm*-*-symbianelf*)
tmake_file="${tmake_file} arm/t-symbian t-slibgcc-nolc-override"
+ tm_file="$tm_file arm/symbian-lib.h"
# Symbian OS provides its own startup code.
;;
esac
@@ -380,12 +391,14 @@ arm*-wince-pe*)
;;
avr-*-rtems*)
tmake_file="$tmake_file avr/t-avr t-fpbit"
+ tm_file="$tm_file avr/avr-lib.h"
# Don't use default.
extra_parts=
;;
avr-*-*)
# Make HImode functions for AVR
tmake_file="${cpu_type}/t-avr t-fpbit"
+ tm_file="$tm_file avr/avr-lib.h"
;;
bfin*-elf*)
tmake_file="bfin/t-bfin bfin/t-elf bfin/t-crtlibid bfin/t-crtstuff t-fdpbit"
@@ -434,18 +447,22 @@ fr30-*-elf)
;;
frv-*-elf)
tmake_file="$tmake_file frv/t-frv t-fdpbit"
+ tm_file="$tm_file frv/frv-abi.h"
# Don't use crtbegin.o, crtend.o.
extra_parts="frvbegin.o frvend.o"
;;
frv-*-*linux*)
tmake_file="$tmake_file frv/t-frv frv/t-linux t-fdpbit"
+ tm_file="$tm_file frv/frv-abi.h"
;;
h8300-*-rtems*)
tmake_file="$tmake_file h8300/t-h8300 t-fpbit"
+ tm_file="$tm_file h8300/h8300-lib.h"
extra_parts="$extra_parts crti.o crtn.o"
;;
h8300-*-elf*)
tmake_file="$tmake_file h8300/t-h8300 t-fpbit"
+ tm_file="$tm_file h8300/h8300-lib.h"
extra_parts="$extra_parts crti.o crtn.o"
;;
hppa*64*-*-linux*)
@@ -499,10 +516,12 @@ hppa[12]*-*-hpux11*)
;;
i[34567]86-*-darwin*)
tmake_file="$tmake_file i386/t-crtpc i386/t-crtfm"
+ tm_file="$tm_file i386/darwin-lib.h"
extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
;;
x86_64-*-darwin*)
tmake_file="$tmake_file i386/t-crtpc i386/t-crtfm"
+ tm_file="$tm_file i386/darwin-lib.h"
extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
;;
i[34567]86-*-elf*)
@@ -907,6 +926,7 @@ rs6000-ibm-aix[56789].* | powerpc-ibm-ai
;;
rx-*-elf)
tmake_file="rx/t-rx t-fdpbit"
+ tm_file="$tm_file rx/rx-abi.h rx/rx-lib.h"
;;
s390-*-linux*)
tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux s390/32/t-floattodi"
@@ -1046,10 +1066,12 @@ spu-*-elf*)
;;
tic6x-*-uclinux)
tmake_file="${tmake_file} t-softfp-sfdf t-softfp-excl t-softfp c6x/t-elf c6x/t-uclinux t-crtstuff-pic t-libgcc-pic t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver t-gnu-prefix"
+ tm_file="$tm_file c6x/c6x-abi.h"
extra_parts="crtbeginS.o crtendS.o crti.o crtn.o"
;;
tic6x-*-elf)
tmake_file="${tmake_file} t-softfp-sfdf t-softfp-excl t-softfp t-gnu-prefix c6x/t-elf"
+ tm_file="$tm_file c6x/c6x-abi.h"
extra_parts="$extra_parts crtbeginS.o crtendS.o crti.o crtn.o"
;;
v850*-*-*)
diff --git a/libgcc/config/alpha/gthr-posix.c b/libgcc/config/alpha/gthr-posix.c
--- a/libgcc/config/alpha/gthr-posix.c
+++ b/libgcc/config/alpha/gthr-posix.c
@@ -26,6 +26,7 @@ see the files COPYING3 and COPYING.RUNTI
#include "tconfig.h"
#include "tm.h"
+#include "libgcc_tm.h"
# define __gthrw_pragma(pragma) _Pragma (#pragma)
/* Define so we provide weak definitions of functions used by libobjc only. */
#define _LIBOBJC_WEAK
diff --git a/libgcc/config/i386/cygming-crtbegin.c b/libgcc/config/i386/cygming-crtbegin.c
--- a/libgcc/config/i386/cygming-crtbegin.c
+++ b/libgcc/config/i386/cygming-crtbegin.c
@@ -1,5 +1,5 @@
/* crtbegin object for windows32 targets.
- Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009, 2010, 2011 Free Software Foundation, Inc.
Contributed by Danny Smith <dannysmith@users.sourceforge.net>
@@ -32,6 +32,7 @@ see the files COPYING3 and COPYING.RUNTI
#include "tsystem.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
#include "unwind-dw2-fde.h"
#define WIN32_LEAN_AND_MEAN
diff --git a/libgcc/config/i386/cygming-crtend.c b/libgcc/config/i386/cygming-crtend.c
--- a/libgcc/config/i386/cygming-crtend.c
+++ b/libgcc/config/i386/cygming-crtend.c
@@ -1,5 +1,5 @@
/* crtend object for windows32 targets.
- Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
Contributed by Danny Smith <dannysmith@users.sourceforge.net>
@@ -34,6 +34,7 @@ see the files COPYING3 and COPYING.RUNTI
#include "tsystem.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
#include "unwind-dw2-fde.h"
#if defined(HAVE_LD_RO_RW_SECTION_MIXING)
diff --git a/libgcc/config/ia64/fde-vms.c b/libgcc/config/ia64/fde-vms.c
--- a/libgcc/config/ia64/fde-vms.c
+++ b/libgcc/config/ia64/fde-vms.c
@@ -29,6 +29,7 @@
#include "tsystem.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
#include <stddef.h>
#include <stdlib.h>
#include <stdio.h>
diff --git a/libgcc/config/ia64/unwind-ia64.c b/libgcc/config/ia64/unwind-ia64.c
--- a/libgcc/config/ia64/unwind-ia64.c
+++ b/libgcc/config/ia64/unwind-ia64.c
@@ -31,6 +31,7 @@
#include "tsystem.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
#include "unwind.h"
#include "unwind-ia64.h"
#include "unwind-compat.h"
diff --git a/libgcc/config/libbid/bid_gcc_intrinsics.h b/libgcc/config/libbid/bid_gcc_intrinsics.h
--- a/libgcc/config/libbid/bid_gcc_intrinsics.h
+++ b/libgcc/config/libbid/bid_gcc_intrinsics.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+/* Copyright (C) 2007, 2009, 2010, 2011 Free Software Foundation, Inc.
This file is part of GCC.
@@ -29,6 +29,7 @@ see the files COPYING3 and COPYING.RUNTI
#include "tconfig.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
#ifndef LIBGCC2_LONG_DOUBLE_TYPE_SIZE
#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE LONG_DOUBLE_TYPE_SIZE
diff --git a/libgcc/config/rs6000/darwin-fallback.c b/libgcc/config/rs6000/darwin-fallback.c
--- a/libgcc/config/rs6000/darwin-fallback.c
+++ b/libgcc/config/rs6000/darwin-fallback.c
@@ -1,5 +1,5 @@
/* Fallback frame-state unwinder for Darwin.
- Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005, 2007, 2009, 2011 Free Software Foundation, Inc.
This file is part of GCC.
@@ -28,6 +28,7 @@
#include "tsystem.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
#include "dwarf2.h"
#include "unwind.h"
#include "unwind-dw2.h"
diff --git a/libgcc/config/stormy16/lib2funcs.c b/libgcc/config/stormy16/lib2funcs.c
--- a/libgcc/config/stormy16/lib2funcs.c
+++ b/libgcc/config/stormy16/lib2funcs.c
@@ -4,7 +4,7 @@
files. On this glorious day maybe this code can be integrated into
it too. */
-/* Copyright (C) 2005, 2008, 2009, 2010 Free Software Foundation, Inc.
+/* Copyright (C) 2005, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
This file is part of GCC.
@@ -31,6 +31,7 @@
#include "tsystem.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
#ifdef HAVE_GAS_HIDDEN
#define ATTRIBUTE_HIDDEN __attribute__ ((__visibility__ ("hidden")))
diff --git a/libgcc/config/xtensa/unwind-dw2-xtensa.c b/libgcc/config/xtensa/unwind-dw2-xtensa.c
--- a/libgcc/config/xtensa/unwind-dw2-xtensa.c
+++ b/libgcc/config/xtensa/unwind-dw2-xtensa.c
@@ -28,6 +28,7 @@
#include "tsystem.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
#include "dwarf2.h"
#include "unwind.h"
#ifdef __USING_SJLJ_EXCEPTIONS__
diff --git a/libgcc/configure b/libgcc/configure
--- a/libgcc/configure
+++ b/libgcc/configure
@@ -593,6 +593,8 @@ LIBOBJS
asm_hidden_op
extra_parts
cpu_type
+tm_defines
+tm_file
tmake_file
sfp_machine_header
set_use_emutls
@@ -4785,6 +4787,16 @@ done
tmake_file="${tmake_file_}"
+# Likewise export definitions for libgcc_tm.h
+tm_file_=
+for f in ${tm_file}
+do
+ tm_file_="${tm_file_} \$(srcdir)/config/$f"
+done
+tm_file="${tm_file_}"
+
+
+
# Substitute configuration variables
diff --git a/libgcc/configure.ac b/libgcc/configure.ac
--- a/libgcc/configure.ac
+++ b/libgcc/configure.ac
@@ -354,6 +354,16 @@ done
tmake_file="${tmake_file_}"
AC_SUBST(tmake_file)
+# Likewise export definitions for libgcc_tm.h
+tm_file_=
+for f in ${tm_file}
+do
+ tm_file_="${tm_file_} \$(srcdir)/config/$f"
+done
+tm_file="${tm_file_}"
+AC_SUBST(tm_file)
+AC_SUBST(tm_defines)
+
# Substitute configuration variables
AC_SUBST(cpu_type)
AC_SUBST(extra_parts)
diff --git a/libgcc/crtstuff.c b/libgcc/crtstuff.c
--- a/libgcc/crtstuff.c
+++ b/libgcc/crtstuff.c
@@ -1,7 +1,8 @@
/* Specialized bits of code needed to support construction and
destruction of file-scope objects in C++ code.
Copyright (C) 1991, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
- 2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010 Free Software Foundation, Inc.
+ 2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2011
+ Free Software Foundation, Inc.
Contributed by Ron Guilmette (rfg@monkeys.com).
This file is part of GCC.
@@ -61,6 +62,7 @@ see the files COPYING3 and COPYING.RUNTI
#include "tsystem.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
#include "unwind-dw2-fde.h"
#ifndef FORCE_CODE_SECTION_ALIGN
diff --git a/libgcc/dfp-bit.h b/libgcc/dfp-bit.h
--- a/libgcc/dfp-bit.h
+++ b/libgcc/dfp-bit.h
@@ -1,5 +1,5 @@
/* Header file for dfp-bit.c.
- Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010
+ Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011
Free Software Foundation, Inc.
This file is part of GCC.
@@ -33,6 +33,7 @@ see the files COPYING3 and COPYING.RUNTI
#include "tconfig.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
#ifndef LIBGCC2_LONG_DOUBLE_TYPE_SIZE
#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE LONG_DOUBLE_TYPE_SIZE
diff --git a/libgcc/emutls.c b/libgcc/emutls.c
--- a/libgcc/emutls.c
+++ b/libgcc/emutls.c
@@ -1,5 +1,5 @@
/* TLS emulation.
- Copyright (C) 2006, 2008, 2009 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2008, 2009, 2011 Free Software Foundation, Inc.
Contributed by Jakub Jelinek <jakub@redhat.com>.
This file is part of GCC.
@@ -27,6 +27,7 @@ see the files COPYING3 and COPYING.RUNTI
#include "tsystem.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
#include "gthr.h"
typedef unsigned int word __attribute__((mode(word)));
diff --git a/libgcc/fixed-bit.c b/libgcc/fixed-bit.c
--- a/libgcc/fixed-bit.c
+++ b/libgcc/fixed-bit.c
@@ -1,5 +1,5 @@
/* This is a software fixed-point library.
- Copyright (C) 2007, 2009 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009, 2011 Free Software Foundation, Inc.
This file is part of GCC.
@@ -46,6 +46,7 @@ see the files COPYING3 and COPYING.RUNTI
#include "tsystem.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
#ifndef MIN_UNITS_PER_WORD
#define MIN_UNITS_PER_WORD UNITS_PER_WORD
diff --git a/libgcc/fp-bit.c b/libgcc/fp-bit.c
--- a/libgcc/fp-bit.c
+++ b/libgcc/fp-bit.c
@@ -37,6 +37,7 @@ see the files COPYING3 and COPYING.RUNTI
#include "tconfig.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
#include "fp-bit.h"
/* The following macros can be defined to change the behavior of this file:
diff --git a/libgcc/generic-morestack-thread.c b/libgcc/generic-morestack-thread.c
--- a/libgcc/generic-morestack-thread.c
+++ b/libgcc/generic-morestack-thread.c
@@ -1,5 +1,5 @@
/* Thread library support for -fsplit-stack. */
-/* Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+/* Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc.
Contributed by Ian Lance Taylor <iant@google.com>.
This file is part of GCC.
@@ -27,6 +27,7 @@ see the files COPYING3 and COPYING.RUNTI
#include "tsystem.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
/* If inhibit_libc is defined, we can not compile this file. The
effect is that people will not be able to use -fsplit-stack. That
diff --git a/libgcc/generic-morestack.c b/libgcc/generic-morestack.c
--- a/libgcc/generic-morestack.c
+++ b/libgcc/generic-morestack.c
@@ -27,6 +27,7 @@ see the files COPYING3 and COPYING.RUNTI
#include "tsystem.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
/* If inhibit_libc is defined, we can not compile this file. The
effect is that people will not be able to use -fsplit-stack. That
diff --git a/libgcc/libgcc2.c b/libgcc/libgcc2.c
--- a/libgcc/libgcc2.c
+++ b/libgcc/libgcc2.c
@@ -29,6 +29,7 @@ see the files COPYING3 and COPYING.RUNTI
#include "tsystem.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
#ifdef HAVE_GAS_HIDDEN
#define ATTRIBUTE_HIDDEN __attribute__ ((__visibility__ ("hidden")))
diff --git a/libgcc/libgcov.c b/libgcc/libgcov.c
--- a/libgcc/libgcov.c
+++ b/libgcc/libgcov.c
@@ -1,7 +1,7 @@
/* Routines required for instrumenting a program. */
/* Compile this one with gcc. */
/* Copyright (C) 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002, 2003, 2004, 2005, 2008, 2009, 2010
+ 2000, 2001, 2002, 2003, 2004, 2005, 2008, 2009, 2010, 2011
Free Software Foundation, Inc.
This file is part of GCC.
@@ -29,6 +29,7 @@ see the files COPYING3 and COPYING.RUNTI
#include "tsystem.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
#if defined(inhibit_libc)
#define IN_LIBGCOV (-1)
diff --git a/libgcc/mkheader.sh b/libgcc/mkheader.sh
new file mode 100755
--- /dev/null
+++ b/libgcc/mkheader.sh
@@ -0,0 +1,41 @@
+#! /bin/sh
+
+# Copyright (C) 2001, 2002, 2006, 2007, 2010, 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.
+
+# 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/>.
+
+
+# Print libgcc_tm.h to the standard output.
+# DEFINES and HEADERS are expected to be set in the environment.
+
+# Add multiple inclusion protection guard, part one.
+echo "#ifndef LIBGCC_TM_H"
+echo "#define LIBGCC_TM_H"
+
+# Generate the body of the file
+echo "/* Automatically generated by mkheader.sh. */"
+for def in $DEFINES; do
+ echo "#ifndef $def" | sed 's/=.*//'
+ echo "# define $def" | sed 's/=/ /'
+ echo "#endif"
+done
+
+for file in $HEADERS; do
+ echo "#include \"$file\""
+done
+
+# Add multiple inclusion protection guard, part two.
+echo "#endif /* LIBGCC_TM_H */"
diff --git a/libgcc/unwind-dw2-fde-dip.c b/libgcc/unwind-dw2-fde-dip.c
--- a/libgcc/unwind-dw2-fde-dip.c
+++ b/libgcc/unwind-dw2-fde-dip.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2002, 2003, 2004, 2005, 2009, 2010
+/* Copyright (C) 2001, 2002, 2003, 2004, 2005, 2009, 2010, 2011
Free Software Foundation, Inc.
Contributed by Jakub Jelinek <jakub@redhat.com>.
@@ -38,6 +38,7 @@
#endif
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
#include "dwarf2.h"
#include "unwind.h"
#define NO_BASE_OF_ENCODED_VALUE
diff --git a/libgcc/unwind-dw2-fde.c b/libgcc/unwind-dw2-fde.c
--- a/libgcc/unwind-dw2-fde.c
+++ b/libgcc/unwind-dw2-fde.c
@@ -1,6 +1,6 @@
/* Subroutines needed for unwinding stack frames for exception handling. */
/* Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008,
- 2009, 2010 Free Software Foundation, Inc.
+ 2009, 2010, 2011 Free Software Foundation, Inc.
Contributed by Jason Merrill <jason@cygnus.com>.
This file is part of GCC.
@@ -29,6 +29,7 @@ see the files COPYING3 and COPYING.RUNTI
#include "tsystem.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
#include "dwarf2.h"
#include "unwind.h"
#define NO_BASE_OF_ENCODED_VALUE
diff --git a/libgcc/unwind-dw2.c b/libgcc/unwind-dw2.c
--- a/libgcc/unwind-dw2.c
+++ b/libgcc/unwind-dw2.c
@@ -27,6 +27,7 @@
#include "tsystem.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
#include "dwarf2.h"
#include "unwind.h"
#ifdef __USING_SJLJ_EXCEPTIONS__
diff --git a/libgcc/unwind-sjlj.c b/libgcc/unwind-sjlj.c
--- a/libgcc/unwind-sjlj.c
+++ b/libgcc/unwind-sjlj.c
@@ -1,6 +1,6 @@
/* SJLJ exception handling and frame unwind runtime interface routines.
Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006,
- 2009 Free Software Foundation, Inc.
+ 2009, 2011 Free Software Foundation, Inc.
This file is part of GCC.
@@ -27,6 +27,7 @@
#include "tsystem.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
#include "unwind.h"
#include "gthr.h"
[-- Attachment #3: Type: text/plain, Size: 143 bytes --]
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: CFT: [build] Move libgcc_tm_file to toplevel libgcc
2011-08-15 18:06 CFT: [build] Move libgcc_tm_file to toplevel libgcc Rainer Orth
@ 2011-08-15 20:23 ` Paolo Bonzini
2011-08-16 3:05 ` Joseph S. Myers
1 sibling, 0 replies; 8+ messages in thread
From: Paolo Bonzini @ 2011-08-15 20:23 UTC (permalink / raw)
To: Rainer Orth; +Cc: gcc-patches
On 08/15/2011 10:30 AM, Rainer Orth wrote:
> This patch almost completes the build side of the libgcc moves. It
> moves the libgcc_tm_file support to libgcc/config.host (tm_file), where
> it belongs. It builds on a patch Paolo posted some time ago, with some
> minor corrections (introducing the required dependencies on the
> generated libgcc_tm.h). I've removed libgcc_tm.h from tm.h and include
> the file directly in all libgcc sources that currently include tm.h.
>
> Everything else is pretty mechanical, I believe.
>
> Tested as described in the previous submissions.
>
> Rainer
Ok.
Paolo
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: CFT: [build] Move libgcc_tm_file to toplevel libgcc
2011-08-15 18:06 CFT: [build] Move libgcc_tm_file to toplevel libgcc Rainer Orth
2011-08-15 20:23 ` Paolo Bonzini
@ 2011-08-16 3:05 ` Joseph S. Myers
2011-08-16 8:58 ` Paolo Bonzini
1 sibling, 1 reply; 8+ messages in thread
From: Joseph S. Myers @ 2011-08-16 3:05 UTC (permalink / raw)
To: Rainer Orth; +Cc: gcc-patches, Paolo Bonzini
On Mon, 15 Aug 2011, Rainer Orth wrote:
> This patch almost completes the build side of the libgcc moves. It
> moves the libgcc_tm_file support to libgcc/config.host (tm_file), where
> it belongs. It builds on a patch Paolo posted some time ago, with some
> minor corrections (introducing the required dependencies on the
> generated libgcc_tm.h). I've removed libgcc_tm.h from tm.h and include
> the file directly in all libgcc sources that currently include tm.h.
What about the Ada files that get built for both the host and the target
(or maybe just for the target in some cases) and include tm.h? Might not
some of them require macros that will end up being moved to libgcc_tm.h?
What about libobjc files? I think the target macros in those files need
checking to make sure that libgcc_tm.h won't be the right solution for
them, or else it should be included in those files when built for the
target.
--
Joseph S. Myers
joseph@codesourcery.com
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: CFT: [build] Move libgcc_tm_file to toplevel libgcc
2011-08-16 3:05 ` Joseph S. Myers
@ 2011-08-16 8:58 ` Paolo Bonzini
2011-08-16 14:21 ` Rainer Orth
0 siblings, 1 reply; 8+ messages in thread
From: Paolo Bonzini @ 2011-08-16 8:58 UTC (permalink / raw)
To: Joseph S. Myers; +Cc: Rainer Orth, gcc-patches
On 08/15/2011 02:05 PM, Joseph S. Myers wrote:
>> > This patch almost completes the build side of the libgcc moves. It
>> > moves the libgcc_tm_file support to libgcc/config.host (tm_file), where
>> > it belongs. It builds on a patch Paolo posted some time ago, with some
>> > minor corrections (introducing the required dependencies on the
>> > generated libgcc_tm.h). I've removed libgcc_tm.h from tm.h and include
>> > the file directly in all libgcc sources that currently include tm.h.
> What about the Ada files that get built for both the host and the target
> (or maybe just for the target in some cases) and include tm.h? Might not
> some of them require macros that will end up being moved to libgcc_tm.h?
> What about libobjc files? I think the target macros in those files need
> checking to make sure that libgcc_tm.h won't be the right solution for
> them, or else it should be included in those files when built for the
> target.
Right. :( Rainer, please hold the patch.
Paolo
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: CFT: [build] Move libgcc_tm_file to toplevel libgcc
2011-08-16 8:58 ` Paolo Bonzini
@ 2011-08-16 14:21 ` Rainer Orth
2011-08-16 15:29 ` Paolo Bonzini
0 siblings, 1 reply; 8+ messages in thread
From: Rainer Orth @ 2011-08-16 14:21 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: Joseph S. Myers, gcc-patches
Paolo,
> On 08/15/2011 02:05 PM, Joseph S. Myers wrote:
>>> > This patch almost completes the build side of the libgcc moves. It
>>> > moves the libgcc_tm_file support to libgcc/config.host (tm_file), where
>>> > it belongs. It builds on a patch Paolo posted some time ago, with some
>>> > minor corrections (introducing the required dependencies on the
>>> > generated libgcc_tm.h). I've removed libgcc_tm.h from tm.h and include
>>> > the file directly in all libgcc sources that currently include tm.h.
>> What about the Ada files that get built for both the host and the target
>> (or maybe just for the target in some cases) and include tm.h? Might not
>> some of them require macros that will end up being moved to libgcc_tm.h?
>> What about libobjc files? I think the target macros in those files need
>> checking to make sure that libgcc_tm.h won't be the right solution for
>> them, or else it should be included in those files when built for the
>> target.
>
> Right. :( Rainer, please hold the patch.
I didn't mean to apply it until the preceding ones are in...
I've now checked the list of defines in headers referenced from
libgcc/config.host (tm_file)
CMPtype
CREATE_DOUBLE_SHIFT
DECLARE_LIBRARY_RENAMES
DF
DI
FLOAT_ONLY
LIBGCC2_FIXEDBIT_GNU_PREFIX
LIBGCC2_GNU_PREFIX
RENAME_LIBRARY
against the files (outside of gcc and libgcc) which include tm.h:
gcc/ada/gcc-interface/cuintp.c
gcc/ada/gcc-interface/decl.c
gcc/ada/gcc-interface/misc.c
gcc/ada/gcc-interface/targtyps.c
gcc/ada/gcc-interface/trans.c
gcc/ada/gcc-interface/utils.c
gcc/ada/gcc-interface/utils2.c
gcc/ada/raise-gcc.c
gcc/ada/targext.c
libdecnumber/dconfig.h
libobjc/encoding.c
libobjc/sendmsg.c
libobjc/thr.c
None of them uses any of those macros, so I think we're safe.
Rainer
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: CFT: [build] Move libgcc_tm_file to toplevel libgcc
2011-08-16 14:21 ` Rainer Orth
@ 2011-08-16 15:29 ` Paolo Bonzini
2011-08-16 17:16 ` Rainer Orth
2011-11-02 13:56 ` Rainer Orth
0 siblings, 2 replies; 8+ messages in thread
From: Paolo Bonzini @ 2011-08-16 15:29 UTC (permalink / raw)
To: Rainer Orth; +Cc: Joseph S. Myers, gcc-patches
On 08/16/2011 04:59 AM, Rainer Orth wrote:
> None of them uses any of those macros, so I think we're safe.
Yes, I checked the same now. Looks like we're good.
I'll review the other patches soon, but they are _huge_! :)
Paolo
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: CFT: [build] Move libgcc_tm_file to toplevel libgcc
2011-08-16 15:29 ` Paolo Bonzini
@ 2011-08-16 17:16 ` Rainer Orth
2011-11-02 13:56 ` Rainer Orth
1 sibling, 0 replies; 8+ messages in thread
From: Rainer Orth @ 2011-08-16 17:16 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: Joseph S. Myers, gcc-patches
Paolo Bonzini <bonzini@gnu.org> writes:
> On 08/16/2011 04:59 AM, Rainer Orth wrote:
>> None of them uses any of those macros, so I think we're safe.
>
> Yes, I checked the same now. Looks like we're good.
Fine we've reached the same conclusion :-)
> I'll review the other patches soon, but they are _huge_! :)
No need to hurry: it took me over a month to get them finished :-)
Thanks.
Rainer
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: CFT: [build] Move libgcc_tm_file to toplevel libgcc
2011-08-16 15:29 ` Paolo Bonzini
2011-08-16 17:16 ` Rainer Orth
@ 2011-11-02 13:56 ` Rainer Orth
1 sibling, 0 replies; 8+ messages in thread
From: Rainer Orth @ 2011-11-02 13:56 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: Joseph S. Myers, gcc-patches
[-- Attachment #1: Type: text/plain, Size: 3306 bytes --]
Paolo Bonzini <bonzini@gnu.org> writes:
> On 08/16/2011 04:59 AM, Rainer Orth wrote:
>> None of them uses any of those macros, so I think we're safe.
>
> Yes, I checked the same now. Looks like we're good.
Here's the rebased version of the patch I'm about to check in, after
regtesting on i386-pc-solaris2.11, sparc-sun-solaris2.11,
x86_64-unknown-linux-gnu, i386-apple-darwin9.8.0, and
powerpc-apple-darwin9.8.0.
Rainer
2011-08-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Paolo Bonzini <bonzini@gnu.org>
gcc:
* configure.ac (libgcc_tm_file_list, libgcc_tm_include_list):
Remove.
* configure: Regenerate.
* Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list): Remove.
(TM_H): Remove libgcc_tm.h, $(libgcc_tm_file_list).
(libgcc_tm.h, cs-libgcc_tm.h): Remove.
(clean): Remove libgcc_tm.h
* mkconfig.sh: Don't include libgcc_tm.h in tm.h.
* config.gcc (libgcc_tm_file): Remove.
(arm*-*-linux*): Remove libgcc_tm_file for arm*-*-linux-*eabi.
(arm*-*-uclinux*): Remove libgcc_tm_file for arm*-*-uclinux*eabi.
(arm*-*-eabi*, arm*-*-symbianelf*): Remove libgcc_tm_file.
(avr-*-rtems*): Likewise.
(avr-*-*): Likewise.
(frv-*-elf): Likewise.
(frv-*-*linux*): Likewise.
(h8300-*-rtems*): Likewise.
(h8300-*-elf*): Likewise.
(i[34567]86-*-darwin*): Likewise.
(x86_64-*-darwin*): Likewise.
(rx-*-elf*): Likewise.
(tic6x-*-elf): Likewise.
(tic6x-*-uclinux): Likewise.
(i[34567]86-*-linux*, x86_64-*-linux*): Likewise.
libgcc:
* configure.ac (tm_file_): New variable.
Determine from tm_file.
(tm_file, tm_defines): Substitute.
* configure: Regenerate.
* mkheader.sh: New file.
* Makefile.in (clean): Remove libgcc_tm.h.
($(objects)): Depend on libgcc_tm.h.
(libgcc_tm_defines, libgcc_tm_file): New variables.
(libgcc_tm.h, libgcc_tm.stamp): New targets.
($(libgcc-objects), $(libgcc-s-objects), $(libgcc-eh-objects))
($(libgcov-objects), $(libunwind-objects), $(libunwind-s-objects))
($(extra-parts)): Depend on libgcc_tm.h.
* config.host (tm_defines, tm_file): New variable.
(arm*-*-linux*): Set tm_file for arm*-*-linux-*eabi.
(arm*-*-uclinux*): Set tm_file for arm*-*-uclinux*eabi.
(arm*-*-eabi*, arm*-*-symbianelf*): Set tm_file.
(avr-*-rtems*): Likewise.
(avr-*-*): Likewise.
(frv-*-elf): Likewise.
(frv-*-*linux*): Likewise.
(h8300-*-rtems*): Likewise.
(h8300-*-elf*): Likewise.
(i[34567]86-*-darwin*): Likewise.
(x86_64-*-darwin*): Likewise.
(rx-*-elf): Likewise.
(tic6x-*-uclinux): Likewise.
(tic6x-*-elf): Likewise.
(i[34567]86-*-linux*, x86_64-*-linux*): Likewise.
* config/alpha/gthr-posix.c: Include libgcc_tm.h.
* config/i386/cygming-crtbegin.c: Likewise.
* config/i386/cygming-crtend.c: Likewise.
* config/ia64/fde-vms.c: Likewise.
* config/ia64/unwind-ia64.c: Likewise.
* config/libbid/bid_gcc_intrinsics.h: Likewise.
* config/rs6000/darwin-fallback.c: Likewise.
* config/stormy16/lib2funcs.c: Likewise.
* config/xtensa/unwind-dw2-xtensa.c: Likewise.
* crtstuff.c: Likewise.
* dfp-bit.h: Likewise.
* emutls.c: Likewise.
* fixed-bit.c: Likewise.
* fp-bit.c: Likewise.
* generic-morestack-thread.c: Likewise.
* generic-morestack.c: Likewise.
* libgcc2.c: Likewise.
* libgcov.c: Likewise.
* unwind-dw2-fde-dip.c: Likewise.
* unwind-dw2-fde.c: Likewise.
* unwind-dw2.c: Likewise.
* unwind-sjlj.c: Likewise.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: libgcc-libgcc_tm_file.patch --]
[-- Type: text/x-patch, Size: 27352 bytes --]
# HG changeset patch
# Parent b3e4db3f4854862cc04a6abb156278761b85bae7
Move libgcc_tm_file to toplevel libgcc
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -490,8 +490,6 @@ md_file=$(srcdir)/config/@md_file@
tm_file_list=@tm_file_list@
tm_include_list=@tm_include_list@
tm_defines=@tm_defines@
-libgcc_tm_file_list=@libgcc_tm_file_list@
-libgcc_tm_include_list=@libgcc_tm_include_list@
tm_p_file_list=@tm_p_file_list@
tm_p_include_list=@tm_p_include_list@
build_xm_file_list=@build_xm_file_list@
@@ -790,8 +788,7 @@ CONFIG_H = config.h $(host_xm_file_lis
TCONFIG_H = tconfig.h $(xm_file_list)
TM_P_H = tm_p.h $(tm_p_file_list)
GTM_H = tm.h $(tm_file_list) insn-constants.h
-TM_H = $(GTM_H) libgcc_tm.h $(libgcc_tm_file_list) insn-flags.h \
- $(OPTIONS_H)
+TM_H = $(GTM_H) insn-flags.h $(OPTIONS_H)
# Variables for version information.
BASEVER := $(srcdir)/BASE-VER # 4.x.y
@@ -1598,7 +1595,6 @@ config.h: cs-config.h ; @true
bconfig.h: cs-bconfig.h ; @true
tconfig.h: cs-tconfig.h ; @true
tm.h: cs-tm.h ; @true
-libgcc_tm.h: cs-libgcc_tm.h ; @true
tm_p.h: cs-tm_p.h ; @true
cs-config.h: Makefile
@@ -1621,11 +1617,6 @@ cs-tm.h: Makefile
HEADERS="$(tm_include_list)" DEFINES="$(tm_defines)" \
$(SHELL) $(srcdir)/mkconfig.sh tm.h
-cs-libgcc_tm.h: Makefile
- TARGET_CPU_DEFAULT="" \
- HEADERS="$(libgcc_tm_include_list)" DEFINES="" \
- $(SHELL) $(srcdir)/mkconfig.sh libgcc_tm.h
-
cs-tm_p.h: Makefile
TARGET_CPU_DEFAULT="" \
HEADERS="$(tm_p_include_list)" DEFINES="" \
@@ -4383,7 +4374,7 @@ clean: mostlyclean lang.clean
-rm -f libgcc.a libgcc_eh.a libgcov.a
-rm -f libgcc_s*
-rm -f libunwind*
- -rm -f config.h tconfig.h bconfig.h tm_p.h tm.h libgcc_tm.h
+ -rm -f config.h tconfig.h bconfig.h tm_p.h tm.h
-rm -f options.c options.h optionlist
-rm -f cs-*
-rm -f doc/*.dvi
diff --git a/gcc/config.gcc b/gcc/config.gcc
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -84,12 +84,6 @@
# build-directory files by prefixing them with "./".
# All other files should relative to $srcdir/config.
#
-# libgcc_tm_file A list of target macro files used only for code
-# built for the target, not the host. These files
-# are relative to $srcdir/../libgcc/config and
-# must not have the same names as files in
-# $srcdir/config.
-#
# tm_p_file Location of file with declarations for functions
# in $out_file.
#
@@ -223,7 +217,6 @@ target_has_targetcm=no
target_has_targetm_common=yes
tm_defines=
xm_defines=
-libgcc_tm_file=
# Set this to force installation and use of collect2.
use_collect2=
# Set this to override the default target model.
@@ -831,7 +824,6 @@ arm*-*-linux*) # ARM GNU/Linux with EL
case ${target} in
arm*-*-linux-*eabi)
tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h"
- libgcc_tm_file="$libgcc_tm_file arm/bpabi-lib.h"
tmake_file="$tmake_file arm/t-arm-elf arm/t-linux-eabi"
# Define multilib configuration for arm-linux-androideabi.
case ${target} in
@@ -859,7 +851,6 @@ arm*-*-uclinux*) # ARM ucLinux
case ${target} in
arm*-*-uclinux*eabi)
tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h"
- libgcc_tm_file="$libgcc_tm_file arm/bpabi-lib.h"
# The BPABI long long divmod functions return a 128-bit value in
# registers r0-r3. Correctly modeling that requires the use of
# TImode.
@@ -880,7 +871,6 @@ arm*-*-eabi* | arm*-*-symbianelf* )
need_64bit_hwint=yes
default_use_cxa_atexit=yes
tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
- libgcc_tm_file="$libgcc_tm_file arm/bpabi-lib.h"
tmake_file="arm/t-arm arm/t-arm-elf"
case ${target} in
arm*-*-eabi*)
@@ -889,7 +879,6 @@ arm*-*-eabi* | arm*-*-symbianelf* )
;;
arm*-*-symbianelf*)
tm_file="${tm_file} arm/symbian.h"
- libgcc_tm_file="$libgcc_tm_file arm/symbian-lib.h"
# We do not include t-bpabi for Symbian OS because the system
# provides its own implementation of the BPABI functions.
tmake_file="${tmake_file} arm/t-symbian"
@@ -913,14 +902,12 @@ arm*-wince-pe*)
;;
avr-*-rtems*)
tm_file="elfos.h avr/elf.h avr/avr.h dbxelf.h avr/rtems.h rtems.h newlib-stdint.h"
- libgcc_tm_file="$libgcc_tm_file avr/avr-lib.h"
tmake_file="avr/t-avr t-rtems avr/t-rtems"
extra_gcc_objs="driver-avr.o avr-devices.o"
extra_objs="avr-devices.o avr-log.o"
;;
avr-*-*)
tm_file="elfos.h avr/elf.h avr/avr.h dbxelf.h newlib-stdint.h"
- libgcc_tm_file="$libgcc_tm_file avr/avr-lib.h"
use_gcc_stdint=wrap
extra_gcc_objs="driver-avr.o avr-devices.o"
extra_objs="avr-devices.o avr-log.o"
@@ -983,13 +970,11 @@ fr30-*-elf)
;;
frv-*-elf)
tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
- libgcc_tm_file="${libgcc_tm_file} frv/frv-abi.h"
tmake_file=frv/t-frv
;;
frv-*-*linux*)
tm_file="dbxelf.h elfos.h ${tm_file} \
gnu-user.h linux.h glibc-stdint.h frv/linux.h"
- libgcc_tm_file="${libgcc_tm_file} frv/frv-abi.h"
tmake_file="${tmake_file} frv/t-frv frv/t-linux"
;;
moxie-*-elf)
@@ -1011,12 +996,10 @@ moxie-*-rtems*)
h8300-*-rtems*)
tmake_file="h8300/t-h8300 t-rtems h8300/t-rtems"
tm_file="h8300/h8300.h dbxelf.h elfos.h h8300/elf.h h8300/rtems.h rtems.h newlib-stdint.h"
- libgcc_tm_file="$libgcc_tm_file h8300/h8300-lib.h"
;;
h8300-*-elf*)
tmake_file="h8300/t-h8300"
tm_file="h8300/h8300.h dbxelf.h elfos.h newlib-stdint.h h8300/elf.h"
- libgcc_tm_file="$libgcc_tm_file h8300/h8300-lib.h"
;;
hppa*64*-*-linux*)
target_cpu_default="MASK_PA_11|MASK_PA_20"
@@ -1161,13 +1144,11 @@ i[34567]86-*-darwin*)
# Baseline choice for a machine that allows m64 support.
with_cpu=${with_cpu:-core2}
tmake_file="${tmake_file} t-slibgcc"
- libgcc_tm_file="$libgcc_tm_file i386/darwin-lib.h"
;;
x86_64-*-darwin*)
with_cpu=${with_cpu:-core2}
tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
tm_file="${tm_file} ${cpu_type}/darwin64.h"
- libgcc_tm_file="$libgcc_tm_file i386/darwin-lib.h"
;;
i[34567]86-*-elf*)
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
@@ -2116,7 +2097,6 @@ rs6000-ibm-aix[6789].* | powerpc-ibm-aix
;;
rx-*-elf*)
tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
- libgcc_tm_file="${libgcc_tm_file} rx/rx-abi.h rx/rx-lib.h"
tmake_file="${tmake_file} rx/t-rx"
;;
s390-*-linux*)
@@ -2445,7 +2425,6 @@ spu-*-elf*)
tic6x-*-elf)
tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
- libgcc_tm_file="${libgcc_tm_file} c6x/c6x-abi.h"
tmake_file="c6x/t-c6x c6x/t-c6x-elf"
use_collect2=no
;;
@@ -2453,7 +2432,6 @@ tic6x-*-uclinux)
tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
tm_file="${tm_file} ./sysroot-suffix.h"
- libgcc_tm_file="${libgcc_tm_file} c6x/c6x-abi.h"
tmake_file="t-sysroot-suffix t-slibgcc"
tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
use_collect2=no
@@ -2541,7 +2519,6 @@ esac
case ${target} in
i[34567]86-*-linux* | x86_64-*-linux*)
tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
- libgcc_tm_file="${libgcc_tm_file} i386/value-unwind.h"
;;
i[34567]86-*-* | x86_64-*-*)
tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
diff --git a/gcc/configure.ac b/gcc/configure.ac
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -1715,13 +1715,6 @@ for f in $tm_file; do
esac
done
-libgcc_tm_file_list=
-libgcc_tm_include_list=
-for f in $libgcc_tm_file; do
- libgcc_tm_file_list="${libgcc_tm_file_list} \$(srcdir)/../libgcc/config/$f"
- libgcc_tm_include_list="${libgcc_tm_include_list} ../libgcc/config/$f"
-done
-
tm_p_file_list=
tm_p_include_list=
for f in $tm_p_file; do
@@ -4972,8 +4965,6 @@ AC_SUBST(thread_file)
AC_SUBST(tm_file_list)
AC_SUBST(tm_include_list)
AC_SUBST(tm_defines)
-AC_SUBST(libgcc_tm_file_list)
-AC_SUBST(libgcc_tm_include_list)
AC_SUBST(tm_p_file_list)
AC_SUBST(tm_p_include_list)
AC_SUBST(xm_file_list)
diff --git a/gcc/mkconfig.sh b/gcc/mkconfig.sh
--- a/gcc/mkconfig.sh
+++ b/gcc/mkconfig.sh
@@ -89,9 +89,8 @@ if [ -n "$HEADERS" ]; then
fi
# If this is tm.h, now include insn-flags.h only if IN_GCC is defined
-# but neither GENERATOR_FILE nor USED_FOR_TARGET is defined. Also
-# include libgcc_tm.h if USED_FOR_TARGET is defined. (Much of this is
-# temporary.)
+# but neither GENERATOR_FILE nor USED_FOR_TARGET is defined. (Much of this
+# is temporary.)
case $output in
tm.h )
@@ -99,9 +98,6 @@ case $output in
#if defined IN_GCC && !defined GENERATOR_FILE && !defined USED_FOR_TARGET
# include "insn-flags.h"
#endif
-#ifdef USED_FOR_TARGET
-# include "libgcc_tm.h"
-#endif
EOF
;;
esac
diff --git a/libgcc/Makefile.in b/libgcc/Makefile.in
--- a/libgcc/Makefile.in
+++ b/libgcc/Makefile.in
@@ -121,7 +121,7 @@ installcheck:
.PHONY: all clean
clean:
- -rm -f config.h stamp-h stmp-ldirs libgcc.map
+ -rm -f config.h libgcc_tm.h stamp-h stmp-ldirs libgcc.map
-rm -f *$(objext)
-rm -f *.dep
-rm -f *.a
@@ -338,6 +338,16 @@ SHLIBUNWIND_INSTALL =
tmake_file = @tmake_file@
include $(srcdir)/empty.mk $(tmake_file)
+# Collect target defines and headers from config.host.
+libgcc_tm_defines = @tm_defines@
+libgcc_tm_file = @tm_file@
+libgcc_tm.h: libgcc_tm.stamp; @true
+libgcc_tm.stamp:
+ DEFINES='$(libgcc_tm_defines)' HEADERS='$(libgcc_tm_file)' \
+ $(srcdir)/mkheader.sh > tmp-libgcc_tm.h
+ $(SHELL) $(srcdir)/../move-if-change tmp-libgcc_tm.h libgcc_tm.h
+ echo timestamp > $@
+
# Only handle shared libraries if both:
# - the user requested them
# - we know how to build them
@@ -984,6 +994,11 @@ libgcc-extra-parts: $(EXTRA_PARTS)
all: $(extra-parts)
+$(libgcc-objects) $(libgcc-s-objects) $(libgcc-eh-objects) \
+ $(libgcov-objects) \
+ $(libunwind-objects) $(libunwind-s-objects) \
+ $(extra-parts): libgcc_tm.h
+
install-unwind_h:
dest=$(gcc_objdir)/include/tmp$$$$-unwind.h; \
cp unwind.h $$dest; \
diff --git a/libgcc/config.host b/libgcc/config.host
--- a/libgcc/config.host
+++ b/libgcc/config.host
@@ -60,6 +60,11 @@
# tmake_file A list of machine-description-specific
# makefile-fragments, if different from
# "$cpu_type/t-$cpu_type".
+# tm_defines List of target macros to define for all compilations.
+# tm_file A list of target macro files used only for code
+# built for the target, not the host. These files
+# are relative to $srcdir/config and must not have
+# the same names as files in $srcdir/../gcc/config.
# unwind_header The name of the header file declaring the unwind
# runtime interface routines.
@@ -67,6 +72,8 @@ asm_hidden_op=.hidden
enable_execute_stack=
extra_parts=
tmake_file=
+tm_file=
+tm_define=
md_unwind_header=no-unwind.h
unwind_header=unwind-generic.h
@@ -329,6 +336,7 @@ arm*-*-linux*) # ARM GNU/Linux with EL
case ${host} in
arm*-*-linux-*eabi)
tmake_file="${tmake_file} arm/t-elf arm/t-bpabi arm/t-linux-eabi t-slibgcc-libgcc"
+ tm_file="$tm_file arm/bpabi-lib.h"
unwind_header=config/arm/unwind-arm.h
;;
*)
@@ -342,6 +350,7 @@ arm*-*-uclinux*) # ARM ucLinux
case ${host} in
arm*-*-uclinux*eabi)
tmake_file="${tmake_file} arm/t-bpabi"
+ tm_file="$tm_file arm/bpabi-lib.h"
unwind_header=config/arm/unwind-arm.h
;;
esac
@@ -354,6 +363,7 @@ arm*-*-ecos-elf)
;;
arm*-*-eabi* | arm*-*-symbianelf* )
tmake_file="${tmake_file} arm/t-arm arm/t-elf t-fixedpoint-gnu-prefix"
+ tm_file="$tm_file arm/bpabi-lib.h"
case ${host} in
arm*-*-eabi*)
tmake_file="${tmake_file} arm/t-bpabi"
@@ -361,6 +371,7 @@ arm*-*-eabi* | arm*-*-symbianelf* )
;;
arm*-*-symbianelf*)
tmake_file="${tmake_file} arm/t-symbian t-slibgcc-nolc-override"
+ tm_file="$tm_file arm/symbian-lib.h"
# Symbian OS provides its own startup code.
;;
esac
@@ -380,12 +391,14 @@ arm*-wince-pe*)
;;
avr-*-rtems*)
tmake_file="$tmake_file avr/t-avr t-fpbit"
+ tm_file="$tm_file avr/avr-lib.h"
# Don't use default.
extra_parts=
;;
avr-*-*)
# Make HImode functions for AVR
tmake_file="${cpu_type}/t-avr t-fpbit"
+ tm_file="$tm_file avr/avr-lib.h"
;;
bfin*-elf*)
tmake_file="bfin/t-bfin bfin/t-elf bfin/t-crtlibid bfin/t-crtstuff t-fdpbit"
@@ -434,18 +447,22 @@ fr30-*-elf)
;;
frv-*-elf)
tmake_file="$tmake_file frv/t-frv t-fdpbit"
+ tm_file="$tm_file frv/frv-abi.h"
# Don't use crtbegin.o, crtend.o.
extra_parts="frvbegin.o frvend.o"
;;
frv-*-*linux*)
tmake_file="$tmake_file frv/t-frv frv/t-linux t-fdpbit"
+ tm_file="$tm_file frv/frv-abi.h"
;;
h8300-*-rtems*)
tmake_file="$tmake_file h8300/t-h8300 t-fpbit"
+ tm_file="$tm_file h8300/h8300-lib.h"
extra_parts="$extra_parts crti.o crtn.o"
;;
h8300-*-elf*)
tmake_file="$tmake_file h8300/t-h8300 t-fpbit"
+ tm_file="$tm_file h8300/h8300-lib.h"
extra_parts="$extra_parts crti.o crtn.o"
;;
hppa*64*-*-linux*)
@@ -499,10 +516,12 @@ hppa[12]*-*-hpux11*)
;;
i[34567]86-*-darwin*)
tmake_file="$tmake_file i386/t-crtpc i386/t-crtfm"
+ tm_file="$tm_file i386/darwin-lib.h"
extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
;;
x86_64-*-darwin*)
tmake_file="$tmake_file i386/t-crtpc i386/t-crtfm"
+ tm_file="$tm_file i386/darwin-lib.h"
extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
;;
i[34567]86-*-elf*)
@@ -907,6 +926,7 @@ rs6000-ibm-aix[56789].* | powerpc-ibm-ai
;;
rx-*-elf)
tmake_file="rx/t-rx t-fdpbit"
+ tm_file="$tm_file rx/rx-abi.h rx/rx-lib.h"
;;
s390-*-linux*)
tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux s390/32/t-floattodi"
@@ -1046,11 +1066,13 @@ spu-*-elf*)
;;
tic6x-*-uclinux)
tmake_file="${tmake_file} t-softfp-sfdf t-softfp-excl t-softfp c6x/t-elf c6x/t-uclinux t-crtstuff-pic t-libgcc-pic t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver t-gnu-prefix"
+ tm_file="$tm_file c6x/c6x-abi.h"
extra_parts="crtbeginS.o crtendS.o crti.o crtn.o"
unwind_header=config/c6x/unwind-c6x.h
;;
tic6x-*-elf)
tmake_file="${tmake_file} t-softfp-sfdf t-softfp-excl t-softfp t-gnu-prefix c6x/t-elf"
+ tm_file="$tm_file c6x/c6x-abi.h"
extra_parts="$extra_parts crtbeginS.o crtendS.o crti.o crtn.o"
unwind_header=config/c6x/unwind-c6x.h
;;
@@ -1127,5 +1149,6 @@ i[34567]86-*-linux* | x86_64-*-linux*)
if test "${host_address}" = 64; then
tmake_file="${tmake_file} i386/${host_address}/t-softfp-compat"
fi
+ tm_file="${tm_file} i386/value-unwind.h"
;;
esac
diff --git a/libgcc/config/alpha/gthr-posix.c b/libgcc/config/alpha/gthr-posix.c
--- a/libgcc/config/alpha/gthr-posix.c
+++ b/libgcc/config/alpha/gthr-posix.c
@@ -26,6 +26,7 @@ see the files COPYING3 and COPYING.RUNTI
#include "tconfig.h"
#include "tm.h"
+#include "libgcc_tm.h"
# define __gthrw_pragma(pragma) _Pragma (#pragma)
/* Define so we provide weak definitions of functions used by libobjc only. */
#define _LIBOBJC_WEAK
diff --git a/libgcc/config/i386/cygming-crtbegin.c b/libgcc/config/i386/cygming-crtbegin.c
--- a/libgcc/config/i386/cygming-crtbegin.c
+++ b/libgcc/config/i386/cygming-crtbegin.c
@@ -1,5 +1,5 @@
/* crtbegin object for windows32 targets.
- Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009, 2010, 2011 Free Software Foundation, Inc.
Contributed by Danny Smith <dannysmith@users.sourceforge.net>
@@ -32,6 +32,7 @@ see the files COPYING3 and COPYING.RUNTI
#include "tsystem.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
#include "unwind-dw2-fde.h"
#define WIN32_LEAN_AND_MEAN
diff --git a/libgcc/config/i386/cygming-crtend.c b/libgcc/config/i386/cygming-crtend.c
--- a/libgcc/config/i386/cygming-crtend.c
+++ b/libgcc/config/i386/cygming-crtend.c
@@ -1,5 +1,5 @@
/* crtend object for windows32 targets.
- Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
Contributed by Danny Smith <dannysmith@users.sourceforge.net>
@@ -34,6 +34,7 @@ see the files COPYING3 and COPYING.RUNTI
#include "tsystem.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
#include "unwind-dw2-fde.h"
#if defined(HAVE_LD_RO_RW_SECTION_MIXING)
diff --git a/libgcc/config/ia64/fde-vms.c b/libgcc/config/ia64/fde-vms.c
--- a/libgcc/config/ia64/fde-vms.c
+++ b/libgcc/config/ia64/fde-vms.c
@@ -29,6 +29,7 @@
#include "tsystem.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
#include <stddef.h>
#include <stdlib.h>
#include <stdio.h>
diff --git a/libgcc/config/ia64/unwind-ia64.c b/libgcc/config/ia64/unwind-ia64.c
--- a/libgcc/config/ia64/unwind-ia64.c
+++ b/libgcc/config/ia64/unwind-ia64.c
@@ -31,6 +31,7 @@
#include "tsystem.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
#include "unwind.h"
#include "unwind-ia64.h"
#include "unwind-compat.h"
diff --git a/libgcc/config/libbid/bid_gcc_intrinsics.h b/libgcc/config/libbid/bid_gcc_intrinsics.h
--- a/libgcc/config/libbid/bid_gcc_intrinsics.h
+++ b/libgcc/config/libbid/bid_gcc_intrinsics.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+/* Copyright (C) 2007, 2009, 2010, 2011 Free Software Foundation, Inc.
This file is part of GCC.
@@ -29,6 +29,7 @@ see the files COPYING3 and COPYING.RUNTI
#include "tconfig.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
#ifndef LIBGCC2_LONG_DOUBLE_TYPE_SIZE
#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE LONG_DOUBLE_TYPE_SIZE
diff --git a/libgcc/config/rs6000/darwin-fallback.c b/libgcc/config/rs6000/darwin-fallback.c
--- a/libgcc/config/rs6000/darwin-fallback.c
+++ b/libgcc/config/rs6000/darwin-fallback.c
@@ -1,5 +1,5 @@
/* Fallback frame-state unwinder for Darwin.
- Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005, 2007, 2009, 2011 Free Software Foundation, Inc.
This file is part of GCC.
@@ -28,6 +28,7 @@
#include "tsystem.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
#include "dwarf2.h"
#include "unwind.h"
#include "unwind-dw2.h"
diff --git a/libgcc/config/stormy16/lib2funcs.c b/libgcc/config/stormy16/lib2funcs.c
--- a/libgcc/config/stormy16/lib2funcs.c
+++ b/libgcc/config/stormy16/lib2funcs.c
@@ -4,7 +4,7 @@
files. On this glorious day maybe this code can be integrated into
it too. */
-/* Copyright (C) 2005, 2008, 2009, 2010 Free Software Foundation, Inc.
+/* Copyright (C) 2005, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
This file is part of GCC.
@@ -31,6 +31,7 @@
#include "tsystem.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
#ifdef HAVE_GAS_HIDDEN
#define ATTRIBUTE_HIDDEN __attribute__ ((__visibility__ ("hidden")))
diff --git a/libgcc/config/xtensa/unwind-dw2-xtensa.c b/libgcc/config/xtensa/unwind-dw2-xtensa.c
--- a/libgcc/config/xtensa/unwind-dw2-xtensa.c
+++ b/libgcc/config/xtensa/unwind-dw2-xtensa.c
@@ -28,6 +28,7 @@
#include "tsystem.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
#include "dwarf2.h"
#include "unwind.h"
#ifdef __USING_SJLJ_EXCEPTIONS__
diff --git a/libgcc/configure.ac b/libgcc/configure.ac
--- a/libgcc/configure.ac
+++ b/libgcc/configure.ac
@@ -354,6 +354,16 @@ done
tmake_file="${tmake_file_}"
AC_SUBST(tmake_file)
+# Likewise export definitions for libgcc_tm.h
+tm_file_=
+for f in ${tm_file}
+do
+ tm_file_="${tm_file_} \$(srcdir)/config/$f"
+done
+tm_file="${tm_file_}"
+AC_SUBST(tm_file)
+AC_SUBST(tm_defines)
+
# Substitute configuration variables
AC_SUBST(cpu_type)
AC_SUBST(extra_parts)
diff --git a/libgcc/crtstuff.c b/libgcc/crtstuff.c
--- a/libgcc/crtstuff.c
+++ b/libgcc/crtstuff.c
@@ -62,6 +62,7 @@ see the files COPYING3 and COPYING.RUNTI
#include "tsystem.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
#include "unwind-dw2-fde.h"
#ifndef FORCE_CODE_SECTION_ALIGN
diff --git a/libgcc/dfp-bit.h b/libgcc/dfp-bit.h
--- a/libgcc/dfp-bit.h
+++ b/libgcc/dfp-bit.h
@@ -1,5 +1,5 @@
/* Header file for dfp-bit.c.
- Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010
+ Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011
Free Software Foundation, Inc.
This file is part of GCC.
@@ -33,6 +33,7 @@ see the files COPYING3 and COPYING.RUNTI
#include "tconfig.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
#ifndef LIBGCC2_LONG_DOUBLE_TYPE_SIZE
#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE LONG_DOUBLE_TYPE_SIZE
diff --git a/libgcc/emutls.c b/libgcc/emutls.c
--- a/libgcc/emutls.c
+++ b/libgcc/emutls.c
@@ -1,5 +1,5 @@
/* TLS emulation.
- Copyright (C) 2006, 2008, 2009 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2008, 2009, 2011 Free Software Foundation, Inc.
Contributed by Jakub Jelinek <jakub@redhat.com>.
This file is part of GCC.
@@ -27,6 +27,7 @@ see the files COPYING3 and COPYING.RUNTI
#include "tsystem.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
#include "gthr.h"
typedef unsigned int word __attribute__((mode(word)));
diff --git a/libgcc/fixed-bit.c b/libgcc/fixed-bit.c
--- a/libgcc/fixed-bit.c
+++ b/libgcc/fixed-bit.c
@@ -1,5 +1,5 @@
/* This is a software fixed-point library.
- Copyright (C) 2007, 2009 Free Software Foundation, Inc.
+ Copyright (C) 2007, 2009, 2011 Free Software Foundation, Inc.
This file is part of GCC.
@@ -46,6 +46,7 @@ see the files COPYING3 and COPYING.RUNTI
#include "tsystem.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
#ifndef MIN_UNITS_PER_WORD
#define MIN_UNITS_PER_WORD UNITS_PER_WORD
diff --git a/libgcc/fp-bit.c b/libgcc/fp-bit.c
--- a/libgcc/fp-bit.c
+++ b/libgcc/fp-bit.c
@@ -37,6 +37,7 @@ see the files COPYING3 and COPYING.RUNTI
#include "tconfig.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
#include "fp-bit.h"
/* The following macros can be defined to change the behavior of this file:
diff --git a/libgcc/generic-morestack-thread.c b/libgcc/generic-morestack-thread.c
--- a/libgcc/generic-morestack-thread.c
+++ b/libgcc/generic-morestack-thread.c
@@ -27,6 +27,7 @@ see the files COPYING3 and COPYING.RUNTI
#include "tsystem.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
/* If inhibit_libc is defined, we can not compile this file. The
effect is that people will not be able to use -fsplit-stack. That
diff --git a/libgcc/generic-morestack.c b/libgcc/generic-morestack.c
--- a/libgcc/generic-morestack.c
+++ b/libgcc/generic-morestack.c
@@ -27,6 +27,7 @@ see the files COPYING3 and COPYING.RUNTI
#include "tsystem.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
/* If inhibit_libc is defined, we can not compile this file. The
effect is that people will not be able to use -fsplit-stack. That
diff --git a/libgcc/libgcc2.c b/libgcc/libgcc2.c
--- a/libgcc/libgcc2.c
+++ b/libgcc/libgcc2.c
@@ -29,6 +29,7 @@ see the files COPYING3 and COPYING.RUNTI
#include "tsystem.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
#ifdef HAVE_GAS_HIDDEN
#define ATTRIBUTE_HIDDEN __attribute__ ((__visibility__ ("hidden")))
diff --git a/libgcc/libgcov.c b/libgcc/libgcov.c
--- a/libgcc/libgcov.c
+++ b/libgcc/libgcov.c
@@ -1,7 +1,7 @@
/* Routines required for instrumenting a program. */
/* Compile this one with gcc. */
/* Copyright (C) 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002, 2003, 2004, 2005, 2008, 2009, 2010
+ 2000, 2001, 2002, 2003, 2004, 2005, 2008, 2009, 2010, 2011
Free Software Foundation, Inc.
This file is part of GCC.
@@ -29,6 +29,7 @@ see the files COPYING3 and COPYING.RUNTI
#include "tsystem.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
#if defined(inhibit_libc)
#define IN_LIBGCOV (-1)
diff --git a/libgcc/mkheader.sh b/libgcc/mkheader.sh
new file mode 100755
--- /dev/null
+++ b/libgcc/mkheader.sh
@@ -0,0 +1,41 @@
+#! /bin/sh
+
+# Copyright (C) 2001, 2002, 2006, 2007, 2010, 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.
+
+# 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/>.
+
+
+# Print libgcc_tm.h to the standard output.
+# DEFINES and HEADERS are expected to be set in the environment.
+
+# Add multiple inclusion protection guard, part one.
+echo "#ifndef LIBGCC_TM_H"
+echo "#define LIBGCC_TM_H"
+
+# Generate the body of the file
+echo "/* Automatically generated by mkheader.sh. */"
+for def in $DEFINES; do
+ echo "#ifndef $def" | sed 's/=.*//'
+ echo "# define $def" | sed 's/=/ /'
+ echo "#endif"
+done
+
+for file in $HEADERS; do
+ echo "#include \"$file\""
+done
+
+# Add multiple inclusion protection guard, part two.
+echo "#endif /* LIBGCC_TM_H */"
diff --git a/libgcc/unwind-dw2-fde-dip.c b/libgcc/unwind-dw2-fde-dip.c
--- a/libgcc/unwind-dw2-fde-dip.c
+++ b/libgcc/unwind-dw2-fde-dip.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2002, 2003, 2004, 2005, 2009, 2010
+/* Copyright (C) 2001, 2002, 2003, 2004, 2005, 2009, 2010, 2011
Free Software Foundation, Inc.
Contributed by Jakub Jelinek <jakub@redhat.com>.
@@ -38,6 +38,7 @@
#endif
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
#include "dwarf2.h"
#include "unwind.h"
#define NO_BASE_OF_ENCODED_VALUE
diff --git a/libgcc/unwind-dw2-fde.c b/libgcc/unwind-dw2-fde.c
--- a/libgcc/unwind-dw2-fde.c
+++ b/libgcc/unwind-dw2-fde.c
@@ -1,6 +1,6 @@
/* Subroutines needed for unwinding stack frames for exception handling. */
/* Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008,
- 2009, 2010 Free Software Foundation, Inc.
+ 2009, 2010, 2011 Free Software Foundation, Inc.
Contributed by Jason Merrill <jason@cygnus.com>.
This file is part of GCC.
@@ -29,6 +29,7 @@ see the files COPYING3 and COPYING.RUNTI
#include "tsystem.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
#include "dwarf2.h"
#include "unwind.h"
#define NO_BASE_OF_ENCODED_VALUE
diff --git a/libgcc/unwind-dw2.c b/libgcc/unwind-dw2.c
--- a/libgcc/unwind-dw2.c
+++ b/libgcc/unwind-dw2.c
@@ -27,6 +27,7 @@
#include "tsystem.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
#include "dwarf2.h"
#include "unwind.h"
#ifdef __USING_SJLJ_EXCEPTIONS__
diff --git a/libgcc/unwind-sjlj.c b/libgcc/unwind-sjlj.c
--- a/libgcc/unwind-sjlj.c
+++ b/libgcc/unwind-sjlj.c
@@ -1,6 +1,6 @@
/* SJLJ exception handling and frame unwind runtime interface routines.
Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006,
- 2009 Free Software Foundation, Inc.
+ 2009, 2011 Free Software Foundation, Inc.
This file is part of GCC.
@@ -27,6 +27,7 @@
#include "tsystem.h"
#include "coretypes.h"
#include "tm.h"
+#include "libgcc_tm.h"
#include "unwind.h"
#include "gthr.h"
[-- Attachment #3: Type: text/plain, Size: 143 bytes --]
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2011-11-02 13:49 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-08-15 18:06 CFT: [build] Move libgcc_tm_file to toplevel libgcc Rainer Orth
2011-08-15 20:23 ` Paolo Bonzini
2011-08-16 3:05 ` Joseph S. Myers
2011-08-16 8:58 ` Paolo Bonzini
2011-08-16 14:21 ` Rainer Orth
2011-08-16 15:29 ` Paolo Bonzini
2011-08-16 17:16 ` Rainer Orth
2011-11-02 13:56 ` Rainer Orth
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).