aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDaniel Jacobowitz <dan@codesourcery.com>2007-01-04 04:22:37 +0000
committerDaniel Jacobowitz <dan@codesourcery.com>2007-01-04 04:22:37 +0000
commita1b1b96635f0767b71752bf9e91c4cd55a2a5a72 (patch)
treeecf7edd5c93f496f2642ef1338e111c0d7a42345 /gcc
parent094baaa2cae9a6fdb069d836242dacf6d0edada9 (diff)
./
* Makefile.def (target_modules): Add libgcc. (lang_env_dependencies): Remove default items. Use no_c and no_gcc. * Makefile.tpl (clean-target-libgcc): Delete. (configure-target-[+module+]): Emit --disable-bootstrap dependencies on gcc even for bootstrapped modules. Rewrite handling of lang_env_dependencies to loop over target_modules. * configure.in (target_libraries): Add target-libgcc. * Makefile.in, configure: Regenerated. gcc/ * config.gcc: Mention libgcc/config.host. * Makefile.in: Update comments mentioning libgcc. (LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete. (all.cross, start.encap, rest.encap, rest.cross): Update dependencies for libgcc move. (libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib) (clean-target, clean-target-libgcc): Delete. (srcdirify, GCC_EXTRA_PARTS): New macros. (libgcc-support, libgcc.mvars): New rules. (distclean): Remove mention of mklibgcc. (install): Don't reference INSTALL_LIBGCC. (install-common): Don't reference EXTRA_PARTS. (install-libgcc, install-multilib): Delete rules. * mklibgcc.in: Delete file. * doc/configfiles.texi: Don't mention mklibgcc. * config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc). * config/i386/t-darwin64 (SHLIB_VERPFX): Likewise. * config/rs6000/t-darwin (SHLIB_VERPFX): Likewise. * config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES) (mklibgcc, ldblspecs): Likewise. * config/i386/t-nwld (libgcc.def, libc.def, libpcre.def) (posixpre.def): Use $(T). (SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP) (SHLIB_SRC, SHLIB_INSTALL): Delete. (SHLIB_LINK): Make dummy. * config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK. * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear. * config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS. * config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30, config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos, config/rs6000/t-newas, config/sparc/t-elf: Likewise. * configure.ac (all_outputs): Remove mklibgcc. * configure: Regenerated. libgcc/ * Makefile.in, config/i386/t-darwin, config/i386/t-darwin64, config/i386/t-nwld, config/rs6000/t-darwin, config/rs6000/t-ldbl128, config/i386/t-crtfm, config/alpha/t-crtfm, config/ia64/t-ia64, config/sparc/t-crtfm, config/t-slibgcc-darwin, config/rs6000/t-ppccomm, config.host, configure.ac, empty.mk, shared-object.mk, siditi-object.mk, static-object.mk: New files. * configure: Generated. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@120429 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog41
-rw-r--r--gcc/Makefile.in205
-rw-r--r--gcc/config.gcc3
-rw-r--r--gcc/config/alpha/t-crtfm4
-rw-r--r--gcc/config/alpha/t-vms12
-rw-r--r--gcc/config/alpha/t-vms648
-rw-r--r--gcc/config/fr30/t-fr308
-rw-r--r--gcc/config/frv/t-linux3
-rw-r--r--gcc/config/i386/t-darwin1
-rw-r--r--gcc/config/i386/t-darwin641
-rw-r--r--gcc/config/i386/t-nwld43
-rw-r--r--gcc/config/i386/t-rtems-i3868
-rw-r--r--gcc/config/ia64/t-ia6420
-rw-r--r--gcc/config/rs6000/t-beos6
-rw-r--r--gcc/config/rs6000/t-darwin2
-rw-r--r--gcc/config/rs6000/t-newas6
-rw-r--r--gcc/config/rs6000/t-ppccomm12
-rw-r--r--gcc/config/sparc/t-elf8
-rw-r--r--gcc/config/t-slibgcc-darwin103
-rwxr-xr-xgcc/configure2
-rw-r--r--gcc/configure.ac2
-rw-r--r--gcc/doc/configfiles.texi3
-rw-r--r--gcc/mklibgcc.in935
23 files changed, 166 insertions, 1270 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index be703c7f9ab..b2a3b22d390 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,44 @@
+2007-01-03 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * config.gcc: Mention libgcc/config.host.
+ * Makefile.in: Update comments mentioning libgcc.
+ (LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete.
+ (all.cross, start.encap, rest.encap, rest.cross): Update
+ dependencies for libgcc move.
+ (libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib)
+ (clean-target, clean-target-libgcc): Delete.
+ (srcdirify, GCC_EXTRA_PARTS): New macros.
+ (libgcc-support, libgcc.mvars): New rules.
+ (distclean): Remove mention of mklibgcc.
+ (install): Don't reference INSTALL_LIBGCC.
+ (install-common): Don't reference EXTRA_PARTS.
+ (install-libgcc, install-multilib): Delete rules.
+ * mklibgcc.in: Delete file.
+ * doc/configfiles.texi: Don't mention mklibgcc.
+
+ * config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc).
+ * config/i386/t-darwin64 (SHLIB_VERPFX): Likewise.
+ * config/rs6000/t-darwin (SHLIB_VERPFX): Likewise.
+ * config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES)
+ (mklibgcc, ldblspecs): Likewise.
+
+ * config/i386/t-nwld (libgcc.def, libc.def, libpcre.def)
+ (posixpre.def): Use $(T).
+ (SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP)
+ (SHLIB_SRC, SHLIB_INSTALL): Delete.
+ (SHLIB_LINK): Make dummy.
+ * config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK.
+
+ * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear.
+
+ * config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS.
+ * config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30,
+ config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos,
+ config/rs6000/t-newas, config/sparc/t-elf: Likewise.
+
+ * configure.ac (all_outputs): Remove mklibgcc.
+ * configure: Regenerated.
+
2007-01-03 Josh Conner <jconner@apple.com>
PR middle-end/29683
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index f14088b86cf..cd1182d8776 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -330,9 +330,9 @@ USER_H = $(srcdir)/ginclude/decfloat.h \
UNWIND_H = $(srcdir)/unwind-generic.h
-# The GCC to use for compiling libgcc.a and crt*.o.
+# The GCC to use for compiling crt*.o.
# Usually the one we just built.
-# Don't use this as a dependency--use $(GCC_PASSES) or $(GCC_PARTS).
+# Don't use this as a dependency--use $(GCC_PASSES).
GCC_FOR_TARGET = $(STAGE_CC_WRAPPER) ./xgcc -B./ -B$(build_tooldir)/bin/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include -L$(objdir)/../ld
# This is used instead of ALL_CFLAGS when compiling with GCC_FOR_TARGET.
@@ -537,11 +537,6 @@ GGC=@GGC@.o
# If a supplementary library is being used for the GC.
GGC_LIB=
-# libgcc.a may be built directly or via stmp-multilib,
-# and installed likewise. Overridden by t-fragment.
-LIBGCC = libgcc.a
-INSTALL_LIBGCC = install-libgcc
-
# "true" if the target C library headers are unavailable; "false"
# otherwise.
inhibit_libc = @inhibit_libc@
@@ -655,10 +650,6 @@ COMPILERS = cc1$(exeext) @all_compilers@
# to compile anything (without linking).
GCC_PASSES=xgcc$(exeext) cc1$(exeext) specs $(EXTRA_PASSES)
-# List of things which should already be built whenever we try to use xgcc
-# to link anything.
-GCC_PARTS=$(GCC_PASSES) $(LIBGCC) $(EXTRA_PROGRAMS) $(COLLECT2) $(EXTRA_PARTS)
-
# Directory to link to, when using the target `maketest'.
DIR = ../gcc
@@ -701,7 +692,7 @@ CRT0STUFF_T_CFLAGS =
# "t" or nothing, for building multilibbed versions of, say, crtbegin.o.
T =
-# Should T contain a `=', libgcc.mk will make T_TARGET, setting
+# Should T contain a `=', libgcc/Makefile will make T_TARGET, setting
# $(T_TARGET) to the name of the actual target filename.
T_TARGET =
T_TARGET : $(T_TARGET)
@@ -1230,9 +1221,6 @@ $(srcdir)/configure: @MAINT@ $(srcdir)/configure.ac $(srcdir)/aclocal.m4 \
gccbug: $(srcdir)/gccbug.in
CONFIG_FILES=gccbug CONFIG_HEADERS= ./config.status
-mklibgcc: $(srcdir)/mklibgcc.in
- CONFIG_FILES=mklibgcc CONFIG_HEADERS= ./config.status
-
# cstamp-h.in controls rebuilding of config.in.
# It is named cstamp-h.in and not stamp-h.in so the mostlyclean rule doesn't
# delete it. A stamp file is needed as autoheader won't update the file if
@@ -1274,12 +1262,12 @@ config.status: $(srcdir)/configure $(srcdir)/config.gcc
all.internal: start.encap rest.encap doc
# This is what to compile if making a cross-compiler.
all.cross: native gcc-cross$(exeext) cpp$(exeext) specs \
- $(LIBGCC) $(EXTRA_PARTS) lang.all.cross doc @GENINSRC@ srcextra
+ libgcc-support lang.all.cross doc @GENINSRC@ srcextra
# This is what must be made before installing GCC and converting libraries.
start.encap: native xgcc$(exeext) cpp$(exeext) specs \
- xlimits.h lang.start.encap @GENINSRC@ srcextra
+ libgcc-support xlimits.h lang.start.encap @GENINSRC@ srcextra
# These can't be made until after GCC can run.
-rest.encap: $(STMP_FIXPROTO) $(LIBGCC) $(EXTRA_PARTS) lang.rest.encap
+rest.encap: $(STMP_FIXPROTO) lang.rest.encap
# This is what is made with the host's compiler
# whether making a cross compiler or not.
native: config.status auto-host.h build-@POSUB@ $(LANGUAGES) \
@@ -1293,7 +1281,7 @@ c: cc1$(exeext)
# On the target machine, finish building a cross compiler.
# This does the things that can't be done on the host machine.
-rest.cross: $(LIBGCC) specs
+rest.cross: specs
# Recompile all the language-independent object files.
# This is used only if the user explicitly asks for it.
@@ -1415,75 +1403,66 @@ xlimits.h: glimits.h limitx.h limity.h
LIB2ADD = $(LIB2FUNCS_EXTRA)
LIB2ADD_ST = $(LIB2FUNCS_STATIC_EXTRA)
-libgcc.mk: config.status Makefile mklibgcc $(LIB2ADD) $(LIB2ADD_ST) specs \
+# All source files for libgcc are either in the source directory (in
+# which case they will start with $(srcdir)), or generated into the build
+# directory (in which case they will be relative paths).
+srcdirify = $(patsubst $(srcdir)%,$$(gcc_srcdir)%,$(filter $(srcdir)%,$(1))) \
+ $(patsubst %,$$(gcc_objdir)/%,$(filter-out $(srcdir)%,$(1)))
+
+# The distinction between these two variables is no longer relevant,
+# so we combine them. Sort removes duplicates.
+GCC_EXTRA_PARTS := $(sort $(EXTRA_MULTILIB_PARTS) $(EXTRA_PARTS))
+
+libgcc-support: libgcc.mvars stmp-int-hdrs $(STMP_FIXPROTO) $(TCONFIG_H) \
+ $(MACHMODE_H) $(FPBIT) $(DPBIT) $(TPBIT) $(LIB2ADD) \
+ $(LIB2ADD_ST) $(LIB2ADDEH) gcov-iov.h $(SFP_MACHINE)
+
+libgcc.mvars: config.status Makefile $(LIB2ADD) $(LIB2ADD_ST) specs \
xgcc$(exeext) stamp-as stamp-collect-ld stamp-nm
- objext='$(objext)' \
- LIB1ASMFUNCS='$(LIB1ASMFUNCS)' \
- LIB2FUNCS_ST='$(LIB2FUNCS_ST)' \
- LIB2FUNCS_EXCLUDE='$(LIB2FUNCS_EXCLUDE)' \
- LIBGCOV='$(LIBGCOV)' \
- LIB2ADD='$(LIB2ADD)' \
- LIB2ADD_ST='$(LIB2ADD_ST)' \
- LIB2ADDEH='$(LIB2ADDEH)' \
- LIB2ADDEHSTATIC='$(LIB2ADDEHSTATIC)' \
- LIB2ADDEHSHARED='$(LIB2ADDEHSHARED)' \
- LIB2ADDEHDEP='$(LIB2ADDEHDEP)' \
- LIB2_SIDITI_CONV_FUNCS='$(LIB2_SIDITI_CONV_FUNCS)' \
- LIBUNWIND='$(LIBUNWIND)' \
- LIBUNWINDDEP='$(LIBUNWINDDEP)' \
- SHLIBUNWIND_LINK='$(SHLIBUNWIND_LINK)' \
- SHLIBUNWIND_INSTALL='$(SHLIBUNWIND_INSTALL)' \
- FPBIT='$(FPBIT)' \
- FPBIT_FUNCS='$(FPBIT_FUNCS)' \
- LIB2_DIVMOD_FUNCS='$(LIB2_DIVMOD_FUNCS)' \
- DPBIT='$(DPBIT)' \
- DPBIT_FUNCS='$(DPBIT_FUNCS)' \
- TPBIT='$(TPBIT)' \
- TPBIT_FUNCS='$(TPBIT_FUNCS)' \
- DFP_ENABLE='$(DFP_ENABLE)' \
- DFP_CFLAGS='$(DFP_CFLAGS)' \
- D32PBIT='$(D32PBIT)' \
- D32PBIT_FUNCS='$(D32PBIT_FUNCS)' \
- D64PBIT='$(D64PBIT)' \
- D64PBIT_FUNCS='$(D64PBIT_FUNCS)' \
- D128PBIT='$(D128PBIT)' \
- D128PBIT_FUNCS='$(D128PBIT_FUNCS)' \
- MULTILIBS=`$(GCC_FOR_TARGET) --print-multi-lib` \
- EXTRA_MULTILIB_PARTS='$(EXTRA_MULTILIB_PARTS)' \
- SHLIB_LINK='$(SHLIB_LINK)' \
- SHLIB_INSTALL='$(SHLIB_INSTALL)' \
- SHLIB_EXT='$(SHLIB_EXT)' \
- SHLIB_MULTILIB='$(SHLIB_MULTILIB)' \
- SHLIB_MKMAP='$(SHLIB_MKMAP)' \
- SHLIB_MKMAP_OPTS='$(SHLIB_MKMAP_OPTS)' \
- SHLIB_MAPFILES='$(SHLIB_MAPFILES)' \
- SHLIB_NM_FLAGS='$(SHLIB_NM_FLAGS)' \
- MULTILIB_OSDIRNAMES='$(MULTILIB_OSDIRNAMES)' \
- ASM_HIDDEN_OP='$(ASM_HIDDEN_OP)' \
- GCC_FOR_TARGET='$(GCC_FOR_TARGET)' \
- mkinstalldirs='$(mkinstalldirs)' \
- $(SHELL) mklibgcc > tmp-libgcc.mk
- mv tmp-libgcc.mk libgcc.mk
-
-# All the things that might cause us to want to recompile bits of libgcc.
-LIBGCC_DEPS = $(GCC_PASSES) stmp-int-hdrs $(STMP_FIXPROTO) \
- libgcc.mk $(srcdir)/libgcc2.c $(srcdir)/libgcov.c $(TCONFIG_H) \
- $(MACHMODE_H) longlong.h gbl-ctors.h config.status $(srcdir)/libgcc2.h \
- tsystem.h $(FPBIT) $(DPBIT) $(TPBIT) $(LIB2ADD) \
- config/dfp-bit.h config/dfp-bit.c \
- $(LIB2ADD_ST) $(LIB2ADDEH) $(LIB2ADDEHDEP) $(EXTRA_PARTS) \
- $(srcdir)/config/$(LIB1ASMSRC) \
- $(srcdir)/gcov-io.h $(srcdir)/gcov-io.c gcov-iov.h $(SFP_MACHINE)
-
-libgcov.a: libgcc.a; @true
-
-libgcc.a: $(LIBGCC_DEPS)
- $(MAKE) \
- CFLAGS="$(CFLAGS) $(WARN_CFLAGS)" \
- CONFIG_H="$(TCONFIG_H)" TM_H="$(TM_H)" \
- INCLUDES="$(INCLUDES)" \
- MAKEOVERRIDES= \
- -f libgcc.mk all
+ : > tmp-libgcc.mvars
+ echo LIB1ASMFUNCS = '$(LIB1ASMFUNCS)' >> tmp-libgcc.mvars
+ echo LIB1ASMSRC = '$(LIB1ASMSRC)' >> tmp-libgcc.mvars
+ echo LIB2FUNCS_ST = '$(LIB2FUNCS_ST)' >> tmp-libgcc.mvars
+ echo LIB2FUNCS_EXCLUDE = '$(LIB2FUNCS_EXCLUDE)' >> tmp-libgcc.mvars
+ echo LIBGCOV = '$(LIBGCOV)' >> tmp-libgcc.mvars
+ echo LIB2ADD = '$(call srcdirify,$(LIB2ADD))' >> tmp-libgcc.mvars
+ echo LIB2ADD_ST = '$(call srcdirify,$(LIB2ADD_ST))' >> tmp-libgcc.mvars
+ echo LIB2ADDEH = '$(call srcdirify,$(LIB2ADDEH))' >> tmp-libgcc.mvars
+ echo LIB2ADDEHSTATIC = '$(call srcdirify,$(LIB2ADDEHSTATIC))' >> tmp-libgcc.mvars
+ echo LIB2ADDEHSHARED = '$(call srcdirify,$(LIB2ADDEHSHARED))' >> tmp-libgcc.mvars
+ echo LIB2_SIDITI_CONV_FUNCS = '$(LIB2_SIDITI_CONV_FUNCS)' >> tmp-libgcc.mvars
+ echo LIBUNWIND = '$(call srcdirify,$(LIBUNWIND))' >> tmp-libgcc.mvars
+ echo SHLIBUNWIND_LINK = '$(SHLIBUNWIND_LINK)' >> tmp-libgcc.mvars
+ echo SHLIBUNWIND_INSTALL = '$(SHLIBUNWIND_INSTALL)' >> tmp-libgcc.mvars
+ echo FPBIT = '$(FPBIT)' >> tmp-libgcc.mvars
+ echo FPBIT_FUNCS = '$(FPBIT_FUNCS)' >> tmp-libgcc.mvars
+ echo LIB2_DIVMOD_FUNCS = '$(LIB2_DIVMOD_FUNCS)' >> tmp-libgcc.mvars
+ echo DPBIT = '$(DPBIT)' >> tmp-libgcc.mvars
+ echo DPBIT_FUNCS = '$(DPBIT_FUNCS)' >> tmp-libgcc.mvars
+ echo TPBIT = '$(TPBIT)' >> tmp-libgcc.mvars
+ echo TPBIT_FUNCS = '$(TPBIT_FUNCS)' >> tmp-libgcc.mvars
+ echo DFP_ENABLE = '$(DFP_ENABLE)' >> tmp-libgcc.mvars
+ echo DFP_CFLAGS='$(DFP_CFLAGS)' >> tmp-libgcc.mvars
+ echo D32PBIT='$(D32PBIT)' >> tmp-libgcc.mvars
+ echo D32PBIT_FUNCS='$(D32PBIT_FUNCS)' >> tmp-libgcc.mvars
+ echo D64PBIT='$(D64PBIT)' >> tmp-libgcc.mvars
+ echo D64PBIT_FUNCS='$(D64PBIT_FUNCS)' >> tmp-libgcc.mvars
+ echo D128PBIT='$(D128PBIT)' >> tmp-libgcc.mvars
+ echo D128PBIT_FUNCS='$(D128PBIT_FUNCS)' >> tmp-libgcc.mvars
+ echo GCC_EXTRA_PARTS = '$(GCC_EXTRA_PARTS)' >> tmp-libgcc.mvars
+ echo SHLIB_LINK = '$(subst $(GCC_FOR_TARGET),$$(GCC_FOR_TARGET),$(SHLIB_LINK))' >> tmp-libgcc.mvars
+ echo SHLIB_INSTALL = '$(SHLIB_INSTALL)' >> tmp-libgcc.mvars
+ echo SHLIB_EXT = '$(SHLIB_EXT)' >> tmp-libgcc.mvars
+ echo SHLIB_MKMAP = '$(call srcdirify,$(SHLIB_MKMAP))' >> tmp-libgcc.mvars
+ echo SHLIB_MKMAP_OPTS = '$(SHLIB_MKMAP_OPTS)' >> tmp-libgcc.mvars
+ echo SHLIB_MAPFILES = '$(call srcdirify,$(SHLIB_MAPFILES))' >> tmp-libgcc.mvars
+ echo SHLIB_NM_FLAGS = '$(SHLIB_NM_FLAGS)' >> tmp-libgcc.mvars
+ echo LIBGCC2_CFLAGS = '$(LIBGCC2_CFLAGS)' >> tmp-libgcc.mvars
+ echo CRTSTUFF_CFLAGS = '$(CRTSTUFF_CFLAGS)' >> tmp-libgcc.mvars
+ echo CRTSTUFF_T_CFLAGS = '$(CRTSTUFF_T_CFLAGS)' >> tmp-libgcc.mvars
+ echo CRTSTUFF_T_CFLAGS_S = '$(CRTSTUFF_T_CFLAGS_S)' >> tmp-libgcc.mvars
+
+ mv tmp-libgcc.mvars libgcc.mvars
# Use the genmultilib shell script to generate the information the gcc
# driver program needs to select the library directory based on the
@@ -1509,15 +1488,6 @@ s-mlib: $(srcdir)/genmultilib Makefile
$(SHELL) $(srcdir)/../move-if-change tmp-mlib.h multilib.h
$(STAMP) s-mlib
-# Build multiple copies of libgcc.a, one for each target switch.
-stmp-multilib: $(LIBGCC_DEPS)
- $(MAKE) \
- CFLAGS="$(CFLAGS) $(WARN_CFLAGS)" \
- CONFIG_H="$(CONFIG_H)" \
- MAKEOVERRIDES= \
- -f libgcc.mk all
- $(STAMP) stmp-multilib
-
# Compile two additional files that are linked with every program
# linked using GCC on systems using COFF or ELF, for the sake of C++
# constructors.
@@ -3538,18 +3508,6 @@ fsf-funding.pod: funding.texi
-$(TEXI2POD) $< > $@
#
-# clean-target removes all files made by compilation.
-# This can be added to over time.
-
-clean-target: clean-target-libgcc
-
-clean-target-libgcc:
- test ! -d libgcc || \
- (cd libgcc && find . -type d -print) | \
- while read d; do rm -f $$d/libgcc.a || : ; done
- test ! -d libgcc || rm -r libgcc
- test ! -f stmp-dirs || rm stmp-dirs
-
# Deletion of files made during compilation.
# There are four levels of this:
# `mostlyclean', `clean', `distclean' and `maintainer-clean'.
@@ -3646,7 +3604,7 @@ distclean: clean lang.distclean
-cd testsuite && rm -f *.out *.gcov *$(coverageexts)
-rm -rf ${QMTEST_DIR} stamp-qmtest
-rm -f cxxmain.c
- -rm -f mklibgcc gccbug .gdbinit configargs.h
+ -rm -f gccbug .gdbinit configargs.h
-rm -f gcov.pod
# Delete po/*.gmo only if we are not building in the source directory.
-if [ ! -f po/exgettext ]; then rm -f po/*.gmo; fi
@@ -3668,7 +3626,7 @@ maintainer-clean:
# Copy the compiler files into directories where they will be run.
# Install the driver last so that the window when things are
# broken is small.
-install: install-common $(INSTALL_HEADERS) $(INSTALL_LIBGCC) \
+install: install-common $(INSTALL_HEADERS) \
install-cpp install-man install-info install-@POSUB@ \
install-driver
@@ -3694,7 +3652,7 @@ installdirs:
$(mkinstalldirs) $(DESTDIR)$(man7dir)
# Install the compiler executables built during cross compilation.
-install-common: native $(EXTRA_PARTS) lang.install-common installdirs
+install-common: native lang.install-common installdirs
for file in $(COMPILERS); do \
if [ -f $$file ] ; then \
rm -f $(DESTDIR)$(libexecsubdir)/$$file; \
@@ -3708,13 +3666,6 @@ install-common: native $(EXTRA_PARTS) lang.install-common installdirs
$(INSTALL_PROGRAM) $$file $(DESTDIR)$(libexecsubdir)/$$file; \
else true; fi; \
done
- for file in $(EXTRA_PARTS) ..; do \
- if [ x"$$file" != x.. ]; then \
- rm -f $(DESTDIR)$(libsubdir)/$$file; \
- $(INSTALL_DATA) $$file $(DESTDIR)$(libsubdir)/$$file; \
- chmod a-x $(DESTDIR)$(libsubdir)/$$file; \
- else true; fi; \
- done
# We no longer install the specs file because its presence makes the
# driver slower, and because people who need it can recreate it by
# using -dumpspecs. We remove any old version because it would
@@ -3833,24 +3784,6 @@ $(DESTDIR)$(man1dir)/$(GCOV_INSTALL_NAME)$(man1ext): doc/gcov.1 installdirs
-$(INSTALL_DATA) $< $@
-chmod a-x $@
-# Install the library.
-install-libgcc: libgcc.mk libgcc.a libgcov.a installdirs
- $(MAKE) \
- CFLAGS="$(CFLAGS) $(WARN_CFLAGS)" \
- CONFIG_H="$(TCONFIG_H)" \
- MAKEOVERRIDES= \
- mkinstalldirs='$(mkinstalldirs)' \
- -f libgcc.mk install
-
-# Install multiple versions of libgcc.a, libgcov.a.
-install-multilib: stmp-multilib installdirs
- $(MAKE) \
- CFLAGS="$(CFLAGS) $(WARN_CFLAGS)" \
- CONFIG_H="$(CONFIG_H)" \
- MAKEOVERRIDES= \
- mkinstalldirs='$(mkinstalldirs)' \
- -f libgcc.mk install
-
# Install all the header files built in the include subdirectory.
install-headers: $(INSTALL_HEADERS_DIR)
# Fix symlinks to absolute paths in the installed include directory to
diff --git a/gcc/config.gcc b/gcc/config.gcc
index e168a2e9740..e9739a54fde 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -25,6 +25,9 @@
# configure script. Putting it in a separate shell file lets us skip
# running autoconf when modifying target-specific information.
+# When you change the cases in the OS or target switches, consider
+# updating ../libgcc/config.host also.
+
# This file switches on the shell variable ${target}, and also uses the
# following shell variables:
#
diff --git a/gcc/config/alpha/t-crtfm b/gcc/config/alpha/t-crtfm
index 5ca8c3f747d..b4103834aca 100644
--- a/gcc/config/alpha/t-crtfm
+++ b/gcc/config/alpha/t-crtfm
@@ -1,5 +1,5 @@
EXTRA_PARTS += crtfastmath.o
-crtfastmath.o: $(srcdir)/config/alpha/crtfastmath.c $(GCC_PASSES)
+$(T)crtfastmath.o: $(srcdir)/config/alpha/crtfastmath.c $(GCC_PASSES)
$(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -frandom-seed=gcc-crtfastmath -c \
- -o crtfastmath.o $(srcdir)/config/alpha/crtfastmath.c
+ -o $(T)crtfastmath.o $(srcdir)/config/alpha/crtfastmath.c
diff --git a/gcc/config/alpha/t-vms b/gcc/config/alpha/t-vms
index 516d3ec6ec1..d1a98e2a5f8 100644
--- a/gcc/config/alpha/t-vms
+++ b/gcc/config/alpha/t-vms
@@ -7,18 +7,18 @@ EXTRA_PARTS = vms-dwarf2.o vms-dwarf2eh.o $(VMS_EXTRA_PARTS)
# This object must be linked with in order to make the executable debuggable.
# vms-ld handles it automatically when passed -g.
-vms-dwarf2.o : $(srcdir)/config/alpha/vms-dwarf2.asm
+$(T)vms-dwarf2.o : $(srcdir)/config/alpha/vms-dwarf2.asm
gcc -c -x assembler $< -o $@
-vms-dwarf2eh.o : $(srcdir)/config/alpha/vms-dwarf2eh.asm
+$(T)vms-dwarf2eh.o : $(srcdir)/config/alpha/vms-dwarf2eh.asm
gcc -c -x assembler $< -o $@
# Assemble startup files.
-vcrt0.o: $(CRT0_S) $(GCC_PASSES)
- decc -c /names=as_is $(srcdir)/config/alpha/vms-crt0.c -o vcrt0.o
+$(T)vcrt0.o: $(CRT0_S) $(GCC_PASSES)
+ decc -c /names=as_is $(srcdir)/config/alpha/vms-crt0.c -o $(T)vcrt0.o
-pcrt0.o: $(CRT0_S) $(GCC_PASSES)
- decc -c /names=as_is $(srcdir)/config/alpha/vms-psxcrt0.c -o pcrt0.o
+$(T)pcrt0.o: $(CRT0_S) $(GCC_PASSES)
+ decc -c /names=as_is $(srcdir)/config/alpha/vms-psxcrt0.c -o $(T)pcrt0.o
MULTILIB_OPTIONS = mcpu=ev6
MULTILIB_DIRNAMES = ev6
diff --git a/gcc/config/alpha/t-vms64 b/gcc/config/alpha/t-vms64
index e3fc3be6435..38503a96429 100644
--- a/gcc/config/alpha/t-vms64
+++ b/gcc/config/alpha/t-vms64
@@ -1,8 +1,8 @@
# Assemble startup files.
-vcrt0.o: $(CRT0_S) $(GCC_PASSES)
+$(T)vcrt0.o: $(CRT0_S) $(GCC_PASSES)
decc -c /names=as_is /pointer_size=64 \
- $(srcdir)/config/alpha/vms-crt0-64.c -o vcrt0.o
+ $(srcdir)/config/alpha/vms-crt0-64.c -o $(T)vcrt0.o
-pcrt0.o: $(CRT0_S) $(GCC_PASSES)
+$(T)pcrt0.o: $(CRT0_S) $(GCC_PASSES)
decc -c /names=as_is /pointer_size=64 \
- $(srcdir)/config/alpha/vms-psxcrt0-64.c -o pcrt0.o
+ $(srcdir)/config/alpha/vms-psxcrt0-64.c -o $(T)pcrt0.o
diff --git a/gcc/config/fr30/t-fr30 b/gcc/config/fr30/t-fr30
index 5ee0808e0da..ede5cb79c3c 100644
--- a/gcc/config/fr30/t-fr30
+++ b/gcc/config/fr30/t-fr30
@@ -2,11 +2,11 @@ LIB1ASMSRC = fr30/lib1funcs.asm
LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3
# Assemble startup files.
-crti.o: $(srcdir)/config/fr30/crti.asm $(GCC_PASSES)
- $(GCC_FOR_TARGET) -c -o crti.o -x assembler $(srcdir)/config/fr30/crti.asm
+$(T)crti.o: $(srcdir)/config/fr30/crti.asm $(GCC_PASSES)
+ $(GCC_FOR_TARGET) -c -o $(T)crti.o -x assembler $(srcdir)/config/fr30/crti.asm
-crtn.o: $(srcdir)/config/fr30/crtn.asm $(GCC_PASSES)
- $(GCC_FOR_TARGET) -c -o crtn.o -x assembler $(srcdir)/config/fr30/crtn.asm
+$(T)crtn.o: $(srcdir)/config/fr30/crtn.asm $(GCC_PASSES)
+ $(GCC_FOR_TARGET) -c -o $(T)crtn.o -x assembler $(srcdir)/config/fr30/crtn.asm
# We want fine grained libraries, so use the new code to build the
# floating point emulation libraries.
diff --git a/gcc/config/frv/t-linux b/gcc/config/frv/t-linux
index 298f59b0b4d..38cea1b58c4 100644
--- a/gcc/config/frv/t-linux
+++ b/gcc/config/frv/t-linux
@@ -5,6 +5,9 @@ MULTILIB_MATCHES=
MULTILIB_EXCEPTIONS=
MULTILIB_EXTRA_OPTS=
+# We don't use frvbegin.o or frvend.o.
+EXTRA_MULTILIB_PARTS =
+
CRTSTUFF_T_CFLAGS = -fPIC
TARGET_LIBGCC2_CFLAGS = -fPIC
diff --git a/gcc/config/i386/t-darwin b/gcc/config/i386/t-darwin
index e79f3355aaa..fb5bbe78c04 100644
--- a/gcc/config/i386/t-darwin
+++ b/gcc/config/i386/t-darwin
@@ -1,4 +1,3 @@
-SHLIB_VERPFX = $(srcdir)/config/i386/darwin-libgcc
MULTILIB_OPTIONS = m64
MULTILIB_DIRNAMES = x86_64
LIB2_SIDITI_CONV_FUNCS=yes
diff --git a/gcc/config/i386/t-darwin64 b/gcc/config/i386/t-darwin64
index e7875864b18..5143e3819dc 100644
--- a/gcc/config/i386/t-darwin64
+++ b/gcc/config/i386/t-darwin64
@@ -1,3 +1,2 @@
-SHLIB_VERPFX = $(srcdir)/config/i386/darwin-libgcc
LIB2_SIDITI_CONV_FUNCS=yes
LIB2FUNCS_EXTRA = $(srcdir)/config/darwin-64.c
diff --git a/gcc/config/i386/t-nwld b/gcc/config/i386/t-nwld
index 6f6905541ec..db5b905b7e3 100644
--- a/gcc/config/i386/t-nwld
+++ b/gcc/config/i386/t-nwld
@@ -4,18 +4,18 @@ CRT0STUFF_T_CFLAGS = -mpreferred-stack-boundary=2 $(INCLUDES)
CRT0_S = $(srcdir)/config/i386/netware-crt0.c
MCRT0_S = $(srcdir)/config/i386/netware-crt0.c
-libgcc.def: $(srcdir)/config/i386/t-nwld
+$(T)libgcc.def: $(srcdir)/config/i386/t-nwld
echo "module libgcc_s" >$@
-libc.def: $(srcdir)/config/i386/t-nwld
+$(T)libc.def: $(srcdir)/config/i386/t-nwld
echo "module libc" >$@
-libcpre.def: $(srcdir)/config/i386/t-nwld
+$(T)libcpre.def: $(srcdir)/config/i386/t-nwld
echo "start _LibCPrelude" >$@
echo "exit _LibCPostlude" >>$@
echo "check _LibCCheckUnload" >>$@
-posixpre.def: $(srcdir)/config/i386/t-nwld
+$(T)posixpre.def: $(srcdir)/config/i386/t-nwld
echo "start POSIX_Start" >$@
echo "exit POSIX_Stop" >>$@
echo "check POSIX_CheckUnload" >>$@
@@ -26,36 +26,5 @@ nwld.o: $(srcdir)/config/i386/nwld.c $(RTL_H) $(TREE_H) $(CONFIG_H) $(TM_P_H)
s-crt0: $(srcdir)/unwind-dw2-fde.h
-# Build a shared libgcc library for NetWare.
-
-SHLIB_EXT = .nlm
-SHLIB_NAME = @shlib_base_name@.nlm
-SHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@
-SHLIB_DEF = $(srcdir)/config/i386/netware-libgcc.def
-SHLIB_MAP = $(srcdir)/config/i386/netware-libgcc.exp
-SHLIB_SRC = $(srcdir)/config/i386/netware-libgcc.c
-
-SHLIB_LINK = set -e; \
- cat $(SHLIB_DEF) >@shlib_base_name@.def; \
- echo "name $(SHLIB_NAME)" >>@shlib_base_name@.def; \
- echo "version $(version)" | sed "s!\.!,!g" >>@shlib_base_name@.def; \
- touch libgcc/build; \
- echo "build $$$$(expr $$$$(<libgcc/build) + 0)" >>@shlib_base_name@.def; \
- echo "export @$(SHLIB_MAP)" >>@shlib_base_name@.def; \
- if mpkxdc -n -p @shlib_base_name@.xdc; \
- then echo "xdcdata @shlib_base_name@.xdc" >>@shlib_base_name@.def; \
- else echo "WARNING: $(SHLIB_NAME) built without XDC data will not work well." 1>&2; \
- fi; \
- $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -o $(SHLIB_NAME) \
- $(SHLIB_SRC) -posix -static-libgcc -lnetware \
- -Wl,--Map,--map-info,full,--strip-all,--def-file,@shlib_base_name@.def; \
- rm -f @shlib_base_name@.imp; $(LN_S) $(SHLIB_MAP) @shlib_base_name@.imp; \
- rm -f libgcc.imp; $(LN_S) @shlib_base_name@.imp libgcc.imp; \
- expr $$$$(<libgcc/build) + 1 >libgcc/build
-
-# $(slibdir) double quoted to protect it from expansion while building
-# libgcc.mk. We want this delayed until actual install time.
-SHLIB_INSTALL = \
- $$(SHELL) $(srcdir)/mkinstalldirs $$(slibdir)$(SHLIB_SLIBDIR_QUAL); \
- $$(INSTALL_DATA) $(SHLIB_NAME) $$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_NAME); \
- $$(INSTALL_DATA) @shlib_base_name@.imp $$(DESTDIR)$$(libsubdir)/
+# To keep DRIVER_DEFINES correct.
+SHLIB_LINK = dummy
diff --git a/gcc/config/i386/t-rtems-i386 b/gcc/config/i386/t-rtems-i386
index 9400be8f508..6486e09f222 100644
--- a/gcc/config/i386/t-rtems-i386
+++ b/gcc/config/i386/t-rtems-i386
@@ -5,12 +5,12 @@
# version of these files.
#
-crti.o: $(srcdir)/config/i386/sol2-ci.asm $(GCC_PASSES)
+$(T)crti.o: $(srcdir)/config/i386/sol2-ci.asm $(GCC_PASSES)
sed -e '/^!/d' <$(srcdir)/config/i386/sol2-ci.asm >crti.s
- $(GCC_FOR_TARGET) -c -o crti.o crti.s
-crtn.o: $(srcdir)/config/i386/sol2-cn.asm $(GCC_PASSES)
+ $(GCC_FOR_TARGET) -c -o $(T)crti.o crti.s
+$(T)crtn.o: $(srcdir)/config/i386/sol2-cn.asm $(GCC_PASSES)
sed -e '/^!/d' <$(srcdir)/config/i386/sol2-cn.asm >crtn.s
- $(GCC_FOR_TARGET) -c -o crtn.o crtn.s
+ $(GCC_FOR_TARGET) -c -o $(T)crtn.o crtn.s
# We want fine grained libraries, so use the new code to build the
# floating point emulation libraries.
diff --git a/gcc/config/ia64/t-ia64 b/gcc/config/ia64/t-ia64
index 60535882bb7..bba12fa9684 100644
--- a/gcc/config/ia64/t-ia64
+++ b/gcc/config/ia64/t-ia64
@@ -24,21 +24,21 @@ SHLIB_MAPFILES += $(srcdir)/config/ia64/libgcc-ia64.ver
T = disable
# Assemble startup files.
-crtbegin.o: $(srcdir)/config/ia64/crtbegin.asm $(GCC_PASSES)
- $(GCC_FOR_TARGET) -I. -c -o crtbegin.o -x assembler-with-cpp \
+$(T)crtbegin.o: $(srcdir)/config/ia64/crtbegin.asm $(GCC_PASSES)
+ $(GCC_FOR_TARGET) -I. -c -o $(T)crtbegin.o -x assembler-with-cpp \
$(srcdir)/config/ia64/crtbegin.asm
-crtend.o: $(srcdir)/config/ia64/crtend.asm $(GCC_PASSES)
- $(GCC_FOR_TARGET) -I. -c -o crtend.o -x assembler-with-cpp \
+$(T)crtend.o: $(srcdir)/config/ia64/crtend.asm $(GCC_PASSES)
+ $(GCC_FOR_TARGET) -I. -c -o $(T)crtend.o -x assembler-with-cpp \
$(srcdir)/config/ia64/crtend.asm
-crtbeginS.o: $(srcdir)/config/ia64/crtbegin.asm $(GCC_PASSES)
- $(GCC_FOR_TARGET) -I. -DSHARED -c -o crtbeginS.o \
+$(T)crtbeginS.o: $(srcdir)/config/ia64/crtbegin.asm $(GCC_PASSES)
+ $(GCC_FOR_TARGET) -I. -DSHARED -c -o $(T)crtbeginS.o \
-x assembler-with-cpp \
$(srcdir)/config/ia64/crtbegin.asm
-crtendS.o: $(srcdir)/config/ia64/crtend.asm $(GCC_PASSES)
- $(GCC_FOR_TARGET) -I. -DSHARED -c -o crtendS.o -x assembler-with-cpp \
+$(T)crtendS.o: $(srcdir)/config/ia64/crtend.asm $(GCC_PASSES)
+ $(GCC_FOR_TARGET) -I. -DSHARED -c -o $(T)crtendS.o -x assembler-with-cpp \
$(srcdir)/config/ia64/crtend.asm
-crtfastmath.o: $(srcdir)/config/ia64/crtfastmath.c $(GCC_PASSES)
- $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -c -o crtfastmath.o \
+$(T)crtfastmath.o: $(srcdir)/config/ia64/crtfastmath.c $(GCC_PASSES)
+ $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -c -o $(T)crtfastmath.o \
$(srcdir)/config/ia64/crtfastmath.c
LIB2ADDEH = $(srcdir)/config/ia64/unwind-ia64.c $(srcdir)/unwind-sjlj.c \
diff --git a/gcc/config/rs6000/t-beos b/gcc/config/rs6000/t-beos
index dc3b89dba57..ad9260fe7af 100644
--- a/gcc/config/rs6000/t-beos
+++ b/gcc/config/rs6000/t-beos
@@ -25,6 +25,6 @@ LIMITS_H_TEST = [ -f /boot/develop/headers/posix/limits.h ]
# Aix 3.2.x needs milli.exp for -mcpu=common
EXTRA_PARTS = milli.exp
-milli.exp: $(srcdir)/config/rs6000/milli.exp
- rm -f milli.exp
- cp $(srcdir)/config/rs6000/milli.exp ./milli.exp
+$(T)milli.exp: $(srcdir)/config/rs6000/milli.exp
+ rm -f $(T)milli.exp
+ cp $(srcdir)/config/rs6000/milli.exp $(T)milli.exp
diff --git a/gcc/config/rs6000/t-darwin b/gcc/config/rs6000/t-darwin
index 7ad4b8f5182..b742f763c9a 100644
--- a/gcc/config/rs6000/t-darwin
+++ b/gcc/config/rs6000/t-darwin
@@ -23,8 +23,6 @@ TARGET_LIBGCC2_CFLAGS = -Wa,-force_cpusubtype_ALL -pipe -mmacosx-version-min=10.
# Export the _xlq* symbols from darwin-ldouble.c.
SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-ppc64.ver
-SHLIB_VERPFX = $(srcdir)/config/rs6000/darwin-libgcc
-
LIB2ADDEH += $(srcdir)/config/rs6000/darwin-fallback.c
darwin-fpsave.o: $(srcdir)/config/rs6000/darwin-asm.h
diff --git a/gcc/config/rs6000/t-newas b/gcc/config/rs6000/t-newas
index d5d03a1c66f..eed66bf5f09 100644
--- a/gcc/config/rs6000/t-newas
+++ b/gcc/config/rs6000/t-newas
@@ -32,6 +32,6 @@ LIB2FUNCS_EXTRA = $(srcdir)/config/rs6000/darwin-ldouble.c
# Aix 3.2.x needs milli.exp for -mcpu=common
EXTRA_PARTS = milli.exp
-milli.exp: $(srcdir)/config/rs6000/milli.exp
- rm -f milli.exp
- cp $(srcdir)/config/rs6000/milli.exp ./milli.exp
+$(T)milli.exp: $(srcdir)/config/rs6000/milli.exp
+ rm -f $(T)milli.exp
+ cp $(srcdir)/config/rs6000/milli.exp $(T)milli.exp
diff --git a/gcc/config/rs6000/t-ppccomm b/gcc/config/rs6000/t-ppccomm
index 1ca509cd59a..c7529d77d01 100644
--- a/gcc/config/rs6000/t-ppccomm
+++ b/gcc/config/rs6000/t-ppccomm
@@ -11,18 +11,6 @@ eabi.S: $(srcdir)/config/rs6000/eabi.asm
tramp.S: $(srcdir)/config/rs6000/tramp.asm
cat $(srcdir)/config/rs6000/tramp.asm > tramp.S
-ifneq (,$findstring gnu,$(target))
-TARGET_LIBGCC2_CFLAGS += -specs=ldblspecs
-
-SHLIB_MAPFILES += $(srcdir)/config/rs6000/libgcc-ppc-glibc.ver
-
-# Hack to use -mlong-double-128 only when not compiling nof libgcc
-mklibgcc: ldblspecs
-
-ldblspecs: specs
- sed -e '/cc1_options/{ n; s/$$/ %{!msoft-float:-mlong-double-128}/; }' < specs > $@
-endif
-
# Switch synonyms
MULTILIB_MATCHES_ENDIAN = mlittle=mlittle-endian mbig=mbig-endian
MULTILIB_MATCHES_SYSV = mcall-sysv=mcall-sysv-eabi mcall-sysv=mcall-sysv-noeabi mcall-sysv=mcall-linux mcall-sysv=mcall-netbsd
diff --git a/gcc/config/sparc/t-elf b/gcc/config/sparc/t-elf
index 6868736a178..50e674e5d20 100644
--- a/gcc/config/sparc/t-elf
+++ b/gcc/config/sparc/t-elf
@@ -23,7 +23,7 @@ LIBGCC = stmp-multilib
INSTALL_LIBGCC = install-multilib
# Assemble startup files.
-crti.o: $(srcdir)/config/sparc/sol2-ci.asm $(GCC_PASSES)
- $(GCC_FOR_TARGET) -c -o crti.o -x assembler-with-cpp $(srcdir)/config/sparc/sol2-ci.asm
-crtn.o: $(srcdir)/config/sparc/sol2-cn.asm $(GCC_PASSES)
- $(GCC_FOR_TARGET) -c -o crtn.o -x assembler-with-cpp $(srcdir)/config/sparc/sol2-cn.asm
+$(T)crti.o: $(srcdir)/config/sparc/sol2-ci.asm $(GCC_PASSES)
+ $(GCC_FOR_TARGET) -c -o $(T)crti.o -x assembler-with-cpp $(srcdir)/config/sparc/sol2-ci.asm
+$(T)crtn.o: $(srcdir)/config/sparc/sol2-cn.asm $(GCC_PASSES)
+ $(GCC_FOR_TARGET) -c -o $(T)crtn.o -x assembler-with-cpp $(srcdir)/config/sparc/sol2-cn.asm
diff --git a/gcc/config/t-slibgcc-darwin b/gcc/config/t-slibgcc-darwin
index f41acae1b3f..b957b353296 100644
--- a/gcc/config/t-slibgcc-darwin
+++ b/gcc/config/t-slibgcc-darwin
@@ -1,101 +1,2 @@
-# Build a shared libgcc library with the darwin linker.
-SHLIB_SOVERSION = 1
-SHLIB_VERSTRING = -compatibility_version $(SHLIB_SOVERSION) -current_version $(SHLIB_SOVERSION).0
-SHLIB_EXT = .dylib
-SHLIB_SUFFIX = `if test @multilib_dir@ = ppc64 ; then echo _@multilib_dir@ ; fi`
-SHLIB_INSTALL_NAME = @shlib_base_name@$(SHLIB_SUFFIX).$(SHLIB_SOVERSION)$(SHLIB_EXT)
-SHLIB_SONAME = @shlib_base_name@.$(SHLIB_SOVERSION)$(SHLIB_EXT)
-SHLIB_SOLINK = @shlib_base_name@.so
-SHLIB_MAP = @shlib_map_file@
-SHLIB_OBJS = @shlib_objs@
-SHLIB_DIR = @multilib_dir@
-SHLIB_LC = -lc
-
-# Darwin only searches in /usr/lib for shared libraries, not in subdirectories,
-# so the libgcc variants have different names not different locations.
-# Note that this version is used for the loader, not the linker; the linker
-# uses the stub versions named by $(LIBGCC).
-SHLIB_LINK = $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -dynamiclib -nodefaultlibs \
- -install_name $(slibdir)/$(SHLIB_INSTALL_NAME) \
- -single_module -o $(SHLIB_DIR)/$(SHLIB_SONAME).tmp \
- -Wl,-exported_symbols_list,$(SHLIB_MAP) \
- $(SHLIB_VERSTRING) \
- @multilib_flags@ $(SHLIB_OBJS) $(SHLIB_LC)
-
-# $(slibdir) double quoted to protect it from expansion while building
-# libgcc.mk. We want this delayed until actual install time.
-SHLIB_INSTALL = \
- $$(mkinstalldirs) $$(DESTDIR)$$(slibdir); \
- $(INSTALL_DATA) $(SHLIB_SONAME) \
- $$(DESTDIR)$$(slibdir)/$(SHLIB_SONAME)
-
-SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk
-SHLIB_MKMAP_OPTS = -v leading_underscore=1
-SHLIB_MAPFILES += $(srcdir)/libgcc-std.ver
-
-# Must use a different directive for hidden visibility in assembly sources.
-ASM_HIDDEN_OP = .private_extern
-
-# In order to support -mmacosx-version-min, you need to have multiple
-# different libgcc_s libraries that actually get linked against, one for
-# each system version supported. They are 'stub' libraries that
-# contain no code, just a list of exported symbols.
-# The actual use of the libraries is controlled by REAL_LIBGCC_SPEC.
-#
-# This assumes each multilib corresponds to a different architecture.
-libgcc_s.%.dylib : $(SHLIB_VERPFX).%.ver stmp-multilib
- # When building multilibbed target libraries, all the required
- # libraries are expected to exist in the multilib directory.
- MLIBS=`$(GCC_FOR_TARGET) --print-multi-lib \
- | sed -e 's/;.*$$//' -e '/^\.$$/d'` ; \
- for mlib in $$MLIBS ; do \
- rm -f $${mlib}/$@ || exit 1 ; \
- $(LN_S) ../$@ $${mlib}/$@ || exit 1 ; \
- done
- MLIBS=`$(GCC_FOR_TARGET) --print-multi-lib \
- | sed -e 's/;.*$$//' -e '/^\.$$/d'` ; \
- for mlib in '' $$MLIBS ; do \
- $(STRIP_FOR_TARGET) -o $(@)_T$${mlib} \
- -s $(SHLIB_VERPFX).$(*).ver -c -u \
- ./$${mlib}/libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT).tmp || exit 1 ; \
- done
- $(LIPO_FOR_TARGET) -output $@ -create $(@)_T*
- rm $(@)_T*
-
-libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT): stmp-multilib libgcc_s.10.4.dylib \
- libgcc_s.10.5.dylib
- # When building multilibbed target libraries, all the required
- # libraries are expected to exist in the multilib directory.
- MLIBS=`$(GCC_FOR_TARGET) --print-multi-lib \
- | sed -e 's/;.*$$//' -e '/^\.$$/d'` ; \
- for mlib in '' $$MLIBS ; do \
- cp ./$${mlib}/libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT).tmp \
- ./libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T_$${mlib} || exit 1 ; \
- done
- $(LIPO_FOR_TARGET) -output libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT) \
- -create libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T*
- rm libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T*
-
-# From the point-of-view of the Makefiles, libgcc is built by the 'strip'
-# and 'lipo' commands above.
-LIBGCC=libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT) libgcc_s.10.4.dylib \
- libgcc_s.10.5.dylib stmp-multilib
-
-INSTALL_FILES=libgcc_s.10.4.dylib libgcc_s.10.5.dylib libgcc_s.1.dylib
-
-install-darwin-libgcc-stubs : $(INSTALL_FILES) installdirs
- for d in $(INSTALL_FILES) ; do \
- $(INSTALL_DATA) $$d $(DESTDIR)$(slibdir)/$$d || exit 1 ; \
- done
- if [ -f $(DESTDIR)$(slibdir)/libgcc_s_ppc64.1.dylib ]; then \
- rm -f $(DESTDIR)$(slibdir)/libgcc_s_ppc64.1.dylib; \
- else true; fi
- $(LN_S) libgcc_s.1.dylib \
- $(DESTDIR)$(slibdir)/libgcc_s_ppc64.1.dylib
- if [ -f $(DESTDIR)$(slibdir)/libgcc_s_x86_64.1.dylib ]; then \
- rm -f $(DESTDIR)$(slibdir)/libgcc_s_x86_64.1.dylib; \
- else true; fi
- $(LN_S) libgcc_s.1.dylib \
- $(DESTDIR)$(slibdir)/libgcc_s_x86_64.1.dylib
-
-INSTALL_LIBGCC = install-darwin-libgcc-stubs install-multilib
+# To keep DRIVER_DEFINES correct.
+SHLIB_LINK = dummy
diff --git a/gcc/configure b/gcc/configure
index 62215f1f227..0a34b74c78d 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -16421,7 +16421,7 @@ all_languages=
all_boot_languages=
all_compilers=
all_stagestuff=
-all_outputs='Makefile gccbug mklibgcc libada-mk'
+all_outputs='Makefile gccbug libada-mk'
# List of language makefile fragments.
all_lang_makefrags=
# List of language subdirectory makefiles. Deprecated.
diff --git a/gcc/configure.ac b/gcc/configure.ac
index 228666d62e1..b7d019750f2 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -3470,7 +3470,7 @@ all_languages=
all_boot_languages=
all_compilers=
all_stagestuff=
-all_outputs='Makefile gccbug mklibgcc libada-mk'
+all_outputs='Makefile gccbug libada-mk'
# List of language makefile fragments.
all_lang_makefrags=
# List of language subdirectory makefiles. Deprecated.
diff --git a/gcc/doc/configfiles.texi b/gcc/doc/configfiles.texi
index f24b85d719a..726a76a5104 100644
--- a/gcc/doc/configfiles.texi
+++ b/gcc/doc/configfiles.texi
@@ -40,9 +40,6 @@ used.
@item
@file{intl/Makefile} is constructed from @file{intl/Makefile.in}.
@item
-@file{mklibgcc}, a shell script to create a Makefile to build libgcc,
-is constructed from @file{mklibgcc.in}.
-@item
If a language @file{config-lang.in} file (@pxref{Front End Config, ,
The Front End @file{config-lang.in} File}) sets @code{outputs}, then
the files listed in @code{outputs} there are also generated.
diff --git a/gcc/mklibgcc.in b/gcc/mklibgcc.in
deleted file mode 100644
index 8987ff9a2ad..00000000000
--- a/gcc/mklibgcc.in
+++ /dev/null
@@ -1,935 +0,0 @@
-#!/bin/sh
-# Construct makefile for libgcc.
-# Copyright (C) 2000, 2002, 2003, 2004, 2005, 2006
-# Free Software Foundation, Inc.
-#
-# This file is part of GCC.
-
-# Arguments, taken from the environment, since there are a lot
-# of them, and positional args becomes quite ugly.
-#
-# objext
-# LIB1ASMFUNCS
-# LIB2FUNCS_ST
-# LIB2FUNCS_EXCLUDE
-# LIBGCOV
-# LIB2ADD
-# LIB2ADD_ST
-# LIB2ADDEH
-# LIB2ADDEHSTATIC
-# LIB2ADDEHSHARED
-# LIB2ADDEHDEP
-# LIBUNWIND
-# LIBUNWINDDEP
-# SHLIBUNWIND_LINK
-# SHLIBUNWIND_INSTALL
-# FPBIT
-# FPBIT_FUNCS
-# LIB2_DIVMOD_FUNCS
-# LIB2_SIDITI_CONV_FUNCS
-# DFP_ENABLE
-# DFP_CFLAGS
-# DPBIT
-# DPBIT_FUNCS
-# TPBIT
-# TPBIT_FUNCS
-# D32PBIT
-# D32PBIT_FUNCS
-# D64PBIT
-# D64PBIT_FUNCS
-# D128PBIT
-# D128PBIT_FUNCS
-# LIBGCC
-# MULTILIBS
-# EXTRA_MULTILIB_PARTS
-# SHLIB_EXT
-# SHLIB_LINK
-# SHLIB_MKMAP
-# SHLIB_MKMAP_OPTS
-# SHLIB_MAPFILES
-# SHLIB_NM_FLAGS
-# SHLIB_INSTALL
-# MULTILIB_OSDIRNAMES
-# ASM_HIDDEN_OP
-# GCC_FOR_TARGET
-
-# Make needs VPATH to be literal.
-echo 'srcdir = @srcdir@'
-echo 'VPATH = @srcdir@'
-echo 'EQ = ='
-echo 'objects = $(filter %'$objext',$^)'
-echo
-echo '# Dependencies are accumulated as we go.'
-echo 'all: stmp-dirs'
-echo 'dirs = libgcc'
-echo
-
-# Library members defined in libgcc2.c.
-
-# The floating-point conversion routines that involve a single-word integer.
-# XX stands for the integer mode.
-swfloatfuncs=
-for mode in sf df xf; do
- swfloatfuncs="$swfloatfuncs _fixuns${mode}XX"
-done
-
-# Likewise double-word routines.
-dwfloatfuncs=
-for mode in sf df xf tf; do
- dwfloatfuncs="$dwfloatfuncs _fix${mode}XX _fixuns${mode}XX"
- dwfloatfuncs="$dwfloatfuncs _floatXX${mode} _floatunXX${mode}"
-done
-
-# Entries of the form <objfile>:<func>:<wordsize> indicate that libgcc2.c
-# should be compiled with L<func> defined and with LIBGCC2_UNITS_PER_WORD
-# set to <wordsize>. <objfile> is the name of the associated object file
-
-lib2funcs='_muldi3 _negdi2 _lshrdi3 _ashldi3 _ashrdi3
- _cmpdi2 _ucmpdi2 _clear_cache
- _enable_execute_stack _trampoline __main _absvsi2 _absvdi2 _addvsi3
- _addvdi3 _subvsi3 _subvdi3 _mulvsi3 _mulvdi3 _negvsi2 _negvdi2 _ctors
- _ffssi2 _ffsdi2 _clz _clzsi2 _clzdi2 _ctzsi2 _ctzdi2 _popcount_tab
- _popcountsi2 _popcountdi2 _paritysi2 _paritydi2 _powisf2 _powidf2
- _powixf2 _powitf2 _mulsc3 _muldc3 _mulxc3 _multc3 _divsc3 _divdc3
- _divxc3 _divtc3 _bswapsi2 _bswapdi2'
-
-if [ "$LIB2_SIDITI_CONV_FUNCS" ]; then
- for func in $swfloatfuncs; do
- sifunc=`echo $func | sed -e 's/XX/si/'`
- lib2funcs="$lib2funcs $sifunc:$sifunc:4"
- done
- for func in $dwfloatfuncs; do
- difunc=`echo $func | sed -e 's/XX/di/'`
- tifunc=`echo $func | sed -e 's/XX/ti/'`
- lib2funcs="$lib2funcs $difunc:$difunc:4 $tifunc:$difunc:8"
- done
-else
- lib2funcs="$lib2funcs `echo $swfloatfuncs | sed -e 's/XX/si/g'`"
- lib2funcs="$lib2funcs `echo $dwfloatfuncs | sed -e 's/XX/di/g'`"
-fi
-
-# Disable SHLIB_LINK if shared libgcc not enabled.
-if [ "@enable_shared@" = "no" ]; then
- SHLIB_LINK=""
-fi
-
-# Build lines.
-
-gcc_compile='$(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) $(INCLUDES)'
-gcc_s_compile="$gcc_compile -DSHARED"
-make_compile='$(MAKE) GCC_FOR_TARGET="$(GCC_FOR_TARGET)" \
- AR_FOR_TARGET="$(AR_FOR_TARGET)" \
- AR_CREATE_FOR_TARGET="$(AR_CREATE_FOR_TARGET)" \
- AR_EXTRACT_FOR_TARGET="$(AR_EXTRACT_FOR_TARGET)" \
- AR_FLAGS_FOR_TARGET="$(AR_FLAGS_FOR_TARGET)" \
- CC="$(CC)" CFLAGS="$(CFLAGS)" \
- BUILD_PREFIX="$(BUILD_PREFIX)" \
- BUILD_PREFIX_1="$(BUILD_PREFIX_1)" \
- LANGUAGES="$(LANGUAGES)"'
-
-# Generic dependencies for libgcc
-libgcc_dep='$(CONFIG_H) coretypes.h $(TM_H) $(MACHMODE_H) longlong.h config.status stmp-int-hdrs tsystem.h'
-
-# Dependencies for libgcc2.c
-libgcc2_c_dep='stmp-dirs $(srcdir)/libgcc2.c $(srcdir)/libgcc2.h gbl-ctors.h'" $libgcc_dep"
-
-# Dependencies for libgcov.c
-libgcov_c_dep='stmp-dirs $(srcdir)/libgcov.c $(srcdir)/gcov-io.h $(srcdir)/gcov-io.c gcov-iov.h'" $libgcc_dep"
-
-# Dependencies for fp-bit.c
-fpbit_c_dep='stmp-dirs config.status tsystem.h'
-
-# Dependencies for decnumber and friends. This is an overzealous set,
-# but at least we can be sure to recompile if anything gets modified.
-decnumber_dep='stmp-dirs $(srcdir)/../libdecnumber/decContext.h $(srcdir)/../libdecnumber/decNumber.h
- $(srcdir)/../libdecnumber/decNumberLocal.h $(srcdir)/../libdecnumber/decimal32.h $(srcdir)/../libdecnumber/decimal64.h
- $(srcdir)/../libdecnumber/decimal128.h $(srcdir)/../libdecnumber/decDPD.h $(srcdir)/../libdecnumber/decUtility.h'
-
-# Dependencies for dfp-bit.c
-dfpbit_c_dep='$(srcdir)/../libdecnumber/decRound.h'" $libgcc_dep $decnumber_dep"
-
-# Flag whether we need eh_dummy.c
-need_eh_dummy=
-
-if [ "$SHLIB_LINK" ]; then
- # Test -fvisibility=hidden. We need both a -fvisibility=hidden on
- # the command line, and a #define to prevent libgcc2.h etc from
- # overriding that with #pragmas. The dance with @ is to prevent
- # echo from seeing anything it might take for an option.
- # echo turns the \$\$\$\$ into $$$$ and when make sees it it
- # becomes $$ and the shell substitutes the pid. Makes for a
- # slightly safer temp file.
- echo "vis_hide := \$(strip \$(subst @,-,\\"
- echo " \$(shell if echo 'void foo(void); void foo(void) {}' | \\"
- echo " $gcc_compile -fvisibility=hidden -Werror \\"
- echo " -c -xc - -o vis_temp_file\$\$\$\$.o 2> /dev/null; \\"
- echo " then echo @fvisibility=hidden @DHIDE_EXPORTS; \\"
- echo " rm vis_temp_file\$\$\$\$.o 2> /dev/null; \\"
- echo " fi)))"
- echo
-
- # If we have -fvisibility=hidden, then we need to generate hide
- # lists for object files implemented in assembly. The default
- # pseudo-op for this is ".hidden", but can be overridden with
- # ASM_HIDDEN_OP.
- [ "$ASM_HIDDEN_OP" ] || ASM_HIDDEN_OP=".hidden"
-
- echo "ifneq (,\$(vis_hide))"
- echo "define gen-hide-list"
- echo "\$(NM_FOR_TARGET) ${SHLIB_NM_FLAGS} \$< | \\"
- # non-GNU nm emits three fields even for undefined and typeless symbols,
- # so explicitly omit them
- echo " \$(AWK) 'NF == 3 && \$\$2 !~ /^[UN]\$\$/ { print \"\\t${ASM_HIDDEN_OP}\", \$\$3 }' > \$@T"
- echo "mv -f \$@T \$@"
- echo "endef"
- echo "else"
- echo "gen-hide-list = echo > \$@"
- echo "endif"
- echo
-else
- # It is too hard to guarantee that vis_hide and gen-hide-list will never
- # be referenced if SHLIB_LINK is not set, so set them to the values they'd
- # have if SHLIB_LINK were set and we didn't have visibility support.
- echo "vis_hide ="
- echo "gen-hide-list = echo > \$@"
-fi
-
-# Remove any objects from lib2funcs and LIB2_DIVMOD_FUNCS that are
-# defined as optimized assembly code in LIB1ASMFUNCS or as C code
-# in LIB2FUNCS_EXCLUDE.
-for name in $LIB1ASMFUNCS $LIB2FUNCS_EXCLUDE; do
- lib2funcs=`echo $lib2funcs | sed -e 's/^'$name'[ :]//' \
- -e 's/ '$name'[ :]/ /' \
- -e 's/ '$name'$//'`
- LIB2_DIVMOD_FUNCS=`echo $LIB2_DIVMOD_FUNCS | sed -e 's/^'$name' //' \
- -e 's/ '$name' / /' \
- -e 's/ '$name'$//'`
-done
-
-#
-# Rules to generate object files.
-#
-
-for ml in $MULTILIBS; do
-
- # Work out relevant parameters that depend only on the multilib.
- dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
- flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`;
- shlib_slibdir_qual=
- libgcc_a=$dir/libgcc.a
- libgcov_a=$dir/libgcov.a
- libgcc_eh_a=
- libgcc_s_so=
- libunwind_a=
- libunwind_so=
-
- if [ "$LIBUNWIND" ]; then
- libunwind_a=$dir/libunwind.a
- fi
- if [ "$SHLIB_LINK" ]; then
- libgcc_eh_a=$dir/libgcc_eh.a
- libgcc_s_so=$dir/libgcc_s${SHLIB_EXT}
- if [ "$LIBUNWIND" ]; then
- libunwind_so=$dir/libunwind${SHLIB_EXT}
- fi
- os_multilib_dir=`$GCC_FOR_TARGET $flags --print-multi-os-directory`
- if [ "$os_multilib_dir" != . ]; then
- shlib_slibdir_qual="/$os_multilib_dir"
- fi
- fi
-
- libgcc_s_so_extra=
- libunwind_so_extra=
-
- echo
- echo \#
- echo \# ml: $ml
- echo \# dir: $dir
- echo \# flags: $flags
- echo \# libgcc_a: $libgcc_a
- echo \# libgcov_a: $libgcov_a
- echo \# libgcc_eh_a: $libgcc_eh_a
- echo \# libunwind_a: $libunwind_a
- echo \#
- echo \# shlib_slibdir_qual: $shlib_slibdir_qual
- echo \# libgcc_s_so: $libgcc_s_so
- echo \# libunwind_so: $libunwind_so
- echo \#
- echo
-
- # Update list of directories.
- if [ $dir != . ]; then
- echo "dirs += ${dir} libgcc/${dir}"
- echo
- fi
-
- #
- # Build libgcc1 components.
- #
- for name in $LIB1ASMFUNCS; do
- if [ "$libgcc_s_so" ]; then
- out="libgcc/${dir}/${name}${objext}"
- outS="libgcc/${dir}/${name}_s${objext}"
- outV="libgcc/${dir}/${name}.vis"
-
- echo ${outS}: stmp-dirs '$(srcdir)/config/$(LIB1ASMSRC)'
- echo " $gcc_s_compile" $flags -DL$name -xassembler-with-cpp \
- -c '$(srcdir)/config/$(LIB1ASMSRC)' -o $outS
-
- echo ${out}: stmp-dirs '$(srcdir)/config/$(LIB1ASMSRC)' ${outV}
- echo " $gcc_compile" $flags -DL$name -xassembler-with-cpp \
- -c '$(srcdir)/config/$(LIB1ASMSRC)' -include $outV -o $out
-
- echo "${outV}: ${outS}; \$(gen-hide-list)"
-
- echo $libgcc_a: $out
- echo $libgcc_s_so: $outS
- if [ "$SHLIB_MKMAP" ]; then
- echo libgcc/${dir}/libgcc.map: $outS
- fi
- else
- out="libgcc/${dir}/${name}${objext}"
- echo ${out}: stmp-dirs '$(srcdir)/config/$(LIB1ASMSRC)'
- echo " $gcc_compile" $flags -DL$name -xassembler-with-cpp \
- -c '$(srcdir)/config/$(LIB1ASMSRC)' -o $out
- echo $libgcc_a: $out
- fi
- done
-
- #
- # Build libgcc2 components.
- #
-
- for name in $lib2funcs; do
- case $name in
- *:*:*)
- defines=`echo $name | sed -e 's/.*:\(.*\):\(.*\)/-DL\1 -DLIBGCC2_UNITS_PER_WORD=\2/'`
- name=`echo $name | sed -e 's/\(.*\):.*:.*/\1/'`
- ;;
- *)
- defines="-DL$name"
- ;;
- esac
- if [ "$libgcc_s_so" ]; then
- out="libgcc/${dir}/${name}${objext}"
- outS="libgcc/${dir}/${name}_s${objext}"
-
- echo $outS: $libgcc2_c_dep
- echo " $gcc_s_compile" $flags $defines -c '$(srcdir)/libgcc2.c' \
- -o $outS
-
- echo $out: $libgcc2_c_dep
- echo " $gcc_compile" $flags $defines '$(vis_hide)' \
- -c '$(srcdir)/libgcc2.c' -o $out
-
- echo $libgcc_a: $out
- echo $libgcc_s_so: $outS
- if [ "$SHLIB_MKMAP" ]; then
- echo libgcc/${dir}/libgcc.map: $outS
- fi
- else
- out="libgcc/${dir}/${name}${objext}"
- echo ${out}: stmp-dirs '$(srcdir)/config/$(LIB1ASMSRC)'
- echo " $gcc_compile" $flags $defines -c '$(srcdir)/libgcc2.c' -o $out
- echo $libgcc_a: $out
- fi
- done
-
- for name in $LIB2FUNCS_ST; do
- out="libgcc/${dir}/${name}${objext}"
-
- echo $out: $libgcc2_c_dep
- echo " $gcc_compile" $flags -DL$name '$(vis_hide)' \
- -c '$(srcdir)/libgcc2.c' -o $out
- echo ${dir}/libgcc.a: $out
- done
-
- for name in $LIB2_DIVMOD_FUNCS; do
- if [ "$libgcc_s_so" ]; then
- out="libgcc/${dir}/${name}${objext}"
- outS="libgcc/${dir}/${name}_s${objext}"
-
- echo $outS: $libgcc2_c_dep
- echo " $gcc_s_compile" $flags -DL$name \
- -fexceptions -fnon-call-exceptions -c '$(srcdir)/libgcc2.c' -o $outS
-
- echo $out: $libgcc2_c_dep
- echo " $gcc_compile" $flags -DL$name '$(vis_hide)' \
- -fexceptions -fnon-call-exceptions -c '$(srcdir)/libgcc2.c' -o $out
-
- echo $libgcc_a: $out
- echo $libgcc_s_so: $outS
- if [ "$SHLIB_MKMAP" ]; then
- echo libgcc/${dir}/libgcc.map: $outS
- fi
- else
- out="libgcc/${dir}/${name}${objext}"
- echo ${out}: stmp-dirs '$(srcdir)/config/$(LIB1ASMSRC)'
- echo " $gcc_compile" $flags -DL$name \
- -fexceptions -fnon-call-exceptions -c '$(srcdir)/libgcc2.c' -o $out
- echo $libgcc_a: $out
- fi
- done
-
- #
- # Build software floating point functions.
- #
-
- for fpbit_var in FPBIT DPBIT TPBIT ; do
- fpfuncs_var="${fpbit_var}_FUNCS"
- eval fpbit=\$$fpbit_var
- eval fpfuncs=\$$fpfuncs_var
-
- if [ "$fpbit" ] ; then
- for name in $fpfuncs; do
- case "$name" in
- # _sf_to_tf and _df_to_tf require tp-bit.c
- # being compiled in.
- _[sd]f_to_tf) [ -z "$TPBIT" ] && continue;;
- esac
- if [ "$libgcc_s_so" ]; then
- out="libgcc/${dir}/${name}${objext}"
- outS="libgcc/${dir}/${name}_s${objext}"
-
- echo $outS: $fpbit $fpbit_c_dep
- echo " $gcc_s_compile" -DFINE_GRAINED_LIBRARIES $flags -DL$name \
- -c $fpbit -o $outS
-
- echo $out: $fpbit $fpbit_c_dep
- echo " $gcc_compile" -DFINE_GRAINED_LIBRARIES $flags -DL$name \
- '$(vis_hide)' -c $fpbit -o $out
-
- echo $libgcc_a: $out
- echo $libgcc_s_so: $outS
- if [ "$SHLIB_MKMAP" ]; then
- echo libgcc/${dir}/libgcc.map: $outS
- fi
- else
- out="libgcc/${dir}/${name}${objext}"
- echo $out: $fpbit $fpbit_c_dep
- echo " $gcc_compile" -DFINE_GRAINED_LIBRARIES $flags -DL$name \
- -c $fpbit -o $out
-
- echo $libgcc_a: $out
- fi
- done
- fi
- done
-
- if [ "@enable_decimal_float@" = "yes" -a -z "$libgcc_so" ]; then
- # If $DFP_ENABLE is set, then we want all data type sizes.
- if [ "$DFP_ENABLE" ] ; then
- D32PBIT=1; D64PBIT=1; D128PBIT=1
- fi
-
- # Bring in the DFP support code if D32PBIT, D64PBIT or D128PBIT are set.
- if [ -n "$D32PBIT" -o -n "$D64PBIT" -o -n "$D128PBIT" ] ; then
- dec_filenames="decContext decNumber decRound decLibrary decUtility"
- fi
-
- # Only bring in decimal*.c files for types we support.
- if [ -n "$D32PBIT" ] ; then
- dec_filenames="$dec_filenames decimal32"
- fi
- if [ -n "$D64PBIT" ] ; then
- dec_filenames="$dec_filenames decimal64"
- fi
- if [ -n "$D128PBIT" ] ; then
- dec_filenames="$dec_filenames decimal128"
- fi
-
- for name in $dec_filenames ; do
- out="libgcc/${dir}/${name}${objext}"
- echo $out: "\$(srcdir)/../libdecnumber/${name}.c" $decnumber_dep
- echo " $gcc_compile" $flags -c "\$(srcdir)/../libdecnumber/${name}.c" -o $out
- echo $libgcc_a: $out
- done
-
- # For individual functions, loop over each variable by name.
- for dpbit_var in D32PBIT D64PBIT D128PBIT ; do
- dpfuncs_var="${dpbit_var}_FUNCS"
- eval dpbit=\$$dpbit_var
- eval dpfuncs=\$$dpfuncs_var
- case "$dpbit_var" in
- D32PBIT) dpwidth=32 ;;
- D64PBIT) dpwidth=64 ;;
- D128PBIT) dpwidth=128 ;;
- esac
-
- if [ "$dpbit" ]; then
- for name in $dpfuncs; do
- out="libgcc/${dir}/${name}${objext}"
- echo $out: config/dfp-bit.h config/dfp-bit.c $dfpbit_c_dep
- echo " $gcc_compile" -DFINE_GRAINED_LIBRARIES $flags -DL$name -DWIDTH=$dpwidth \
- $DFP_CFLAGS -c $\(srcdir\)/config/dfp-bit.c -o $out
- echo $libgcc_a: $out
- done
- fi
- done
- fi
-
- for file in $LIB2ADD; do
- name=`echo $file | sed -e 's/[.][cS]$//' -e 's/[.]asm$//'`
- oname=`echo $name | sed -e 's,.*/,,'`
-
- if [ "$libgcc_s_so" ]; then
- out="libgcc/${dir}/${oname}${objext}"
- outS="libgcc/${dir}/${oname}_s${objext}"
-
- case $file in
- *.c)
- echo $outS: stmp-dirs $file $libgcc_dep
- echo " $gcc_s_compile" $flags -c $file -o $outS
-
- echo $out: stmp-dirs $file $libgcc_dep
- echo " $gcc_compile" $flags '$(vis_hide)' -c $file -o $out
- ;;
-
- *.asm | *.S)
- outV="libgcc/${dir}/${oname}.vis"
-
- echo $outS: stmp-dirs $file $libgcc_dep
- echo " $gcc_s_compile" $flags -xassembler-with-cpp \
- -c $file -o $outS
-
- echo $out: stmp-dirs $file $libgcc_dep $outV
- echo " $gcc_compile" $flags -xassembler-with-cpp \
- -include $outV -c $file -o $out
- echo "${outV}: ${outS}; \$(gen-hide-list)"
- ;;
-
- *)
- echo "Unhandled extension: $file" >&2
- exit 1
- ;;
- esac
-
- echo $libgcc_a: $out
- echo $libgcc_s_so: $outS
- if [ "$SHLIB_MKMAP" ]; then
- echo libgcc/${dir}/libgcc.map: $outS
- fi
- else
- out="libgcc/${dir}/${oname}${objext}"
- case $file in
- *.c)
- echo $out: stmp-dirs $file $libgcc_dep
- echo " $gcc_compile" $flags -c $file -o $out
- ;;
-
- *.asm | *.S)
- echo $out: stmp-dirs $file $libgcc_dep
- echo " $gcc_compile" $flags -xassembler-with-cpp \
- -c $file -o $out
- ;;
-
- *)
- echo "Unhandled extension: $file" >&2
- exit 1
- ;;
- esac
-
- echo $libgcc_a: $out
- fi
- done
-
-
- for file in $LIB2ADD_ST; do
- name=`echo $file | sed -e 's/[.][cSo]$//' -e 's/[.]asm$//'`
- oname=`echo $name | sed -e 's,.*/,,'`
- out="libgcc/${dir}/${oname}${objext}"
-
- case $file in
- *.c)
- echo $out: stmp-dirs $file $libgcc_dep
- echo " $gcc_compile" $flags '$(vis_hide)' -c $file -o $out
- ;;
-
- *.asm | *.S)
- # We may have to compile it twice in order to establish the list
- # of symbols to be marked hidden.
- if [ "$libgcc_so" ]; then
- outV="libgcc/${dir}/${oname}.vis"
- outT="libgcc/${dir}/${oname}_t${objext}"
- echo ${outT}: stmp-dirs $file $libgcc_dep
- echo " $gcc_compile" $flags -xassembler-with-cpp \
- -c $file -o ${outT}
- echo $out: stmp-dirs $file $libgcc_dep $outV
- echo " $gcc_compile" $flags -xassembler-with-cpp \
- -include $outV -c $file -o $out
- echo "${outV}: ${outT}; \$(gen-hide-list)"
- else
- echo $out: stmp-dirs $file $libgcc_dep
- echo " $gcc_compile" $flags -xassembler-with-cpp \
- -c $file -o $out
- fi
- ;;
-
- *)
- echo "Unhandled extension: $file" >&2
- exit 1
- ;;
- esac
- echo $libgcc_a: $out
- done
-
- # If we don't have libgcc_eh.a, only LIB2ADDEH matters. If we do, only
- # LIB2ADDEHSTATIC and LIB2ADDEHSHARED matter. (Usually all three are
- # identical.)
-
- if [ "$libgcc_eh_a" ]; then
- for file in $LIB2ADDEHSTATIC; do
- name=`echo $file | sed -e 's/[.][cSo]$//' -e 's/[.]asm$//'`
- oname=`echo $name | sed -e 's,.*/,,'`
- out="libgcc/${dir}/${oname}${objext}"
-
- case $file in
- *.c)
- echo $out: stmp-dirs $file $LIB2ADDEHDEP $libgcc_dep
- echo " $gcc_compile" $flags -fexceptions '$(vis_hide)' -c $file -o $out
- ;;
- *.asm | *.S)
- # We have to compile it twice in order to establish the list
- # of symbols to be marked hidden.
- outV="libgcc/${dir}/${oname}.vis"
- outT="libgcc/${dir}/${oname}_t${objext}"
- echo ${outT}: stmp-dirs $file $LIB2ADDEHDEP $libgcc_dep
- echo " $gcc_compile" $flags -xassembler-with-cpp \
- -c $file -o ${outT}
- echo $out: stmp-dirs $file $LIB2ADDEHDEP $libgcc_dep $outV
- echo " $gcc_compile" $flags -xassembler-with-cpp \
- -include $outV -c $file -o $out
- echo "${outV}: ${outT}; \$(gen-hide-list)"
- ;;
- *) echo "Unhandled extension: $file">&2; exit 1 ;;
- esac
-
- echo $libgcc_eh_a: $out
- done
-
- for file in $LIB2ADDEHSHARED; do
- name=`echo $file | sed -e 's/[.][cSo]$//' -e 's/[.]asm$//'`
- oname=`echo $name | sed -e 's,.*/,,'`
- outS="libgcc/${dir}/${oname}_s${objext}"
-
- case $file in
- *.c)
- echo $outS: stmp-dirs $file $LIB2ADDEHDEP $libgcc_dep
- echo " $gcc_s_compile" $flags -fexceptions -c $file -o $outS
- ;;
- *.asm | *.S)
- echo $outS: stmp-dirs $file $LIB2ADDEHDEP $libgcc_dep
- echo " $gcc_s_compile" $flags -xassembler-with-cpp -c $file -o $outS
- ;;
- *) echo "Unhandled extension: $file">&2; exit 1 ;;
- esac
-
- echo $libgcc_s_so: $outS
- if [ "$SHLIB_MKMAP" ]; then
- echo libgcc/${dir}/libgcc.map: $outS
- fi
- done
-
- # If nothing went into libgcc_eh.a, create a dummy object -
- # some linkers don't like totally empty archives.
- if [ -z "$LIB2ADDEHSTATIC" ]; then
- file=eh_dummy.c
- out="libgcc/${dir}/eh_dummy${objext}"
- need_eh_dummy=1
-
- echo $out: stmp-dirs $file
- echo " $gcc_compile" $flags '$(vis_hide)' -fexceptions -c $file -o $out
- echo $libgcc_eh_a: $out
- fi
-
-
- else # no libgcc_eh.a
- for file in $LIB2ADDEH; do
- name=`echo $file | sed -e 's/[.][cSo]$//' -e 's/[.]asm$//'`
- oname=`echo $name | sed -e 's,.*/,,'`
- out="libgcc/${dir}/${oname}${objext}"
-
- case $file in
- *.c)
- echo $out: stmp-dirs $file $LIB2ADDEHDEP $libgcc_dep
- echo " $gcc_compile" $flags '$(vis_hide)' -fexceptions -c $file -o $out
- ;;
- *.asm | *.S)
- echo $out: stmp-dirs $file $LIB2ADDEHDEP $libgcc_dep
- echo " $gcc_compile" $flags -xassembler-with-cpp \
- -c $file -o $out
- ;;
- *) echo "Unhandled extension: $file">&2; exit 1 ;;
- esac
-
- echo $libgcc_a: $out
- done
- fi
-
- # We do _not_ handle assembly files in this context.
- if [ "$LIBUNWIND" ]; then
- for file in $LIBUNWIND; do
- case $file in
- *.c) ;;
- *) echo "Unhandled extension: $file">&2; exit 1 ;;
- esac
-
- name=`echo $file | sed -e 's/[.]c$//'`
- oname=`echo $name | sed -e 's,.*/,,'`
-
- if [ "$libunwind_so" ]; then
- out="libgcc/${dir}/${oname}${objext}"
- outS="libgcc/${dir}/${oname}_s${objext}"
-
- echo $out: stmp-dirs $file $LIBUNWINDDEP
- echo " $gcc_compile $flags -fexceptions \$(vis_hide) -c $file -o $out"
-
- echo $outS: stmp-dirs $file $LIBUNWINDDEP
- echo " $gcc_s_compile $flags -fexceptions -c $file -o $outS"
-
- echo $libunwind_a: $out
- echo $libunwind_so: $outS
- else
- out="libgcc/${dir}/${oname}${objext}"
- echo $out: stmp-dirs $file $LIBUNWINDDEP
- echo " $gcc_compile $flags -fexceptions \$(vis_hide) -c $file -o $out"
- echo $libunwind_a: $out
- fi
- done
- fi
-
- #
- # build libgcov components
- #
- for name in $LIBGCOV; do
- dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
- flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`;
- out="libgcc/${dir}/${name}${objext}"
-
- echo $out: $libgcov_c_dep
- echo " $gcc_compile $flags -DL$name -c \$(srcdir)/libgcov.c -o $out"
- echo $libgcov_a: $out
- done
-
- # EXTRA_MULTILIB_PARTS.
- if [ -n "$EXTRA_MULTILIB_PARTS" ]; then
- # Each of the EXTRA_MULTILIB_PARTS is built by recursive invocation
- # of the parent Makefile. We must do this just once for each
- # multilib, passing it all the EXTRA_MULTILIB_PARTS as
- # simultaneous goal targets, so that rules which cannot execute
- # simultaneously are properly serialized.
-
- extra=
- echo
- for f in $EXTRA_MULTILIB_PARTS; do
- case $dir in
- .) out=$f ; t= ;;
- *) out=$dir/$f ; t=$dir/ ;;
- esac
- case $out in
- # Prevent `make' from interpreting $out as a macro assignment
- *'$(EQ)'*) targ="T_TARGET=$out T_TARGET" ;;
- *) targ=$out ;;
- esac
- extra="$extra $targ"
- done
-
- if [ "$dir" = . ]; then
- suffix=
- else
- suffix=`echo $dir | sed s,/,_,g`
- fi
- echo extra$suffix: stmp-dirs
- echo " $make_compile" \\
- echo ' LIBGCC2_CFLAGS="$(LIBGCC2_CFLAGS)' $flags '" ' \\
- echo ' MULTILIB_CFLAGS="'$flags'"' T=$t $extra
- echo "all: extra$suffix"
-
- # Make libunwind.so and libgcc_s.so depend on these, since they
- # are likely to be implicitly used by the link process.
- if [ "$libgcc_s_so" ]; then
- echo "$libgcc_s_so: extra$suffix"
- fi
- if [ "$libunwind_so" ]; then
- echo "$libunwind_so: extra$suffix"
- fi
- fi
-
- # Library build rules.
- dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
- flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`;
-
- # Map-file generation.
- if [ "$SHLIB_LINK" -a "$SHLIB_MKMAP" ]; then
- mapfile="libgcc/${dir}/libgcc.map"
- tmpmapfile="libgcc/${dir}/tmp-libgcc.map"
- # This uses a here document instead of echos because some shells
- # will convert the \1 in the second sed command to a control-A.
- # The behavior of here documents is more predictable.
- cat <<EOF
-
-${mapfile}: $SHLIB_MKMAP $SHLIB_MAPFILES
- { \$(NM_FOR_TARGET) $SHLIB_NM_FLAGS \$(objects); echo %%; \\
- cat $SHLIB_MAPFILES \\
- | sed -e '/^[ ]*#/d' \\
- -e 's/^%\(if\|else\|elif\|endif\|define\)/#\1/' \\
- | $gcc_compile $flags -E -xassembler-with-cpp -; \\
- } | \$(AWK) -f $SHLIB_MKMAP $SHLIB_MKMAP_OPTS > ${tmpmapfile}
- mv '$tmpmapfile' \$@
-$libgcc_s_so: ${mapfile}
-EOF
- fi
-
- # Static libraries.
-
- # Each of these .a files depends on stmp-dirs. It would seem that
- # this dependency is redundant, since each of the object files
- # itself depends on stmp-dirs. However, it is possible that there
- # are in fact no object files. In that case, the stmp-dirs
- # dependency is required; the directory containing the archive must
- # exist before the archive itself can be created.
- echo ""
- echo "$libgcc_a: stmp-dirs"
- echo " -rm -f $libgcc_a"
- echo ' $(AR_CREATE_FOR_TARGET)' $libgcc_a '$(objects)'
- echo ' $(RANLIB_FOR_TARGET)' $libgcc_a
- echo "all: $libgcc_a"
-
- echo ""
- echo "$libgcov_a: stmp-dirs"
- echo " -rm -f $libgcov_a"
- echo ' $(AR_CREATE_FOR_TARGET)' $libgcov_a '$(objects)'
- echo ' $(RANLIB_FOR_TARGET)' $libgcov_a
- echo "all: $libgcov_a"
-
- # These libraries are not always built.
- if [ "$libunwind_a" ]; then
- echo ""
- echo "$libunwind_a: stmp-dirs"
- echo " -rm -f $libunwind_a"
- echo ' $(AR_CREATE_FOR_TARGET)' $libunwind_a '$(objects)'
- echo ' $(RANLIB_FOR_TARGET)' $libunwind_a
- echo "all: $libunwind_a"
- fi
-
- if [ "$libgcc_eh_a" ]; then
- echo ""
- echo "${dir}/libgcc_eh.a: stmp-dirs"
- echo " -rm -f ${dir}/libgcc_eh.a"
- echo ' $(AR_CREATE_FOR_TARGET)' ${dir}/libgcc_eh.a '$(objects)'
- echo ' $(RANLIB_FOR_TARGET)' ${dir}/libgcc_eh.a
- echo "all: $libgcc_eh_a"
- fi
-
- # Shared libraries.
- if [ "$libgcc_s_so" ]; then
- echo ""
- echo "$libgcc_s_so: stmp-dirs $libunwind_so"
- echo " $SHLIB_LINK" \
- | sed -e "s%@multilib_flags@%$flags%g" \
- -e "s%@multilib_dir@%$dir%g" \
- -e "s%@shlib_objs@%\$(objects)%g" \
- -e "s%@shlib_base_name@%libgcc_s%g" \
- -e "s%@shlib_map_file@%$mapfile%g" \
- -e "s%@shlib_slibdir_qual@%$shlib_dir_qual%g"
- echo "all: $libgcc_s_so"
- fi
-
- if [ "$libunwind_so" ]; then
- echo ""
- echo "$libunwind_so: stmp-dirs"
- echo " $SHLIBUNWIND_LINK" \
- | sed -e "s%@multilib_flags@%$flags%g" \
- -e "s%@multilib_dir@%$dir%g" \
- -e "s%@shlib_objs@%\$(objects)%g" \
- -e "s%@shlib_base_name@%libunwind%g" \
- -e "s%@shlib_slibdir_qual@%$shlib_dir_qual%g"
- echo "all: $libunwind_so"
- fi
-
-done # ml in MULTILIBS
-
-echo
-echo "libgcc-stage-start:"
-echo " for dir in \$(dirs); do \\"
-echo " if [ -d \$(stage)/\$\$dir ]; then :; \\"
-echo " else $mkinstalldirs \$(stage)/\$\$dir; fi; \\"
-echo " done"
-echo " -for dir in \$(dirs); do \\"
-echo " mv \$\$dir/*${objext} \$(stage)/\$\$dir; \\"
-echo " mv \$\$dir/*.vis \$(stage)/\$\$dir; \\"
-echo " mv \$\$dir/*.map \$(stage)/\$\$dir; \\"
-echo " test ! -f \$\$dir/libgcc.a || mv \$\$dir/lib* \$(stage)/\$\$dir; \\"
-echo " done"
-
-echo
-echo "stmp-dirs:"
-echo " for d in \$(dirs); do \\"
-echo " if [ -d \$\$d ]; then true; else $mkinstalldirs \$\$d; fi; \\"
-echo " done"
-echo " if [ -f stmp-dirs ]; then true; else touch stmp-dirs; fi"
-
-if [ "$need_eh_dummy" ]; then
- echo "eh_dummy.c:"
- echo " echo 'int __libgcc_eh_dummy;' > \$@"
-fi
-
-echo ""
-echo "install: all"
-for ml in $MULTILIBS; do
- dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
- flags=`echo ${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`;
- if [ $dir != . ]; then
- ldir='$(DESTDIR)$(libsubdir)'/$dir
- echo " if [ -d $ldir ]; then true; else $mkinstalldirs $ldir; chmod a+rx $ldir; fi;"
- else
- ldir='$(DESTDIR)$(libsubdir)'
- fi
- echo ' $(INSTALL_DATA)' ${dir}/libgcc.a ${ldir}/
- echo ' chmod 644' ${ldir}/libgcc.a
- echo ' $(RANLIB_FOR_TARGET)' ${ldir}/libgcc.a
- echo ' $(INSTALL_DATA)' ${dir}/libgcov.a ${ldir}/
- echo ' chmod 644' ${ldir}/libgcov.a
- echo ' $(RANLIB_FOR_TARGET)' ${ldir}/libgcov.a
-
- if [ "$SHLIB_LINK" ]; then
- echo ' $(INSTALL_DATA)' ${dir}/libgcc_eh.a ${ldir}/
- echo ' chmod 644' ${ldir}/libgcc_eh.a
- echo ' $(RANLIB_FOR_TARGET)' ${ldir}/libgcc_eh.a
-
- shlib_slibdir_qual=
- os_multilib_dir=`$GCC_FOR_TARGET $flags --print-multi-os-directory`
- if [ "$os_multilib_dir" != . ]; then
- shlib_slibdir_qual="/$os_multilib_dir"
- fi
- echo " $SHLIB_INSTALL" \
- | sed -e "s%@multilib_dir@%$dir%g" \
- -e "s%@shlib_base_name@%libgcc_s%g" \
- -e "s%@shlib_slibdir_qual@%$shlib_slibdir_qual%g"
- if [ "$LIBUNWIND" ]; then
- echo " $SHLIBUNWIND_INSTALL" \
- | sed -e "s%@multilib_dir@%$dir%g" \
- -e "s%@shlib_base_name@%libunwind%g" \
- -e "s%@shlib_slibdir_qual@%$shlib_slibdir_qual%g"
- libunwinddir='$(DESTDIR)$(slibdir)$(shlib_slibdir_qual)/$(shlib_dir)'
- echo ' $(INSTALL_DATA)' ${dir}/libunwind.a ${libunwinddir}/
- echo ' chmod 644' ${dir}/libunwind.a
- echo ' $(RANLIB_FOR_TARGET)' ${libunwinddir}/libunwind.a
- fi
- fi
-done
-for f in $EXTRA_MULTILIB_PARTS; do
- for ml in $MULTILIBS; do
- dir=`echo ${ml} | sed -e 's/;.*$//' -e 's/=/$(EQ)/g'`
- if [ $dir != . ]; then
- out=${dir}/$f
- ldir='$(DESTDIR)$(libsubdir)'/$dir
- else
- out=$f
- ldir='$(DESTDIR)$(libsubdir)'
- fi
- echo ' $(INSTALL_DATA)' $out $ldir/
- done
-done
-
-echo '.PHONY: all install'