summaryrefslogtreecommitdiff
path: root/gcc/config/i386/t-cygming
diff options
context:
space:
mode:
authorAaron W. LaFramboise <aaronavay62@aaronwl.com>2008-08-31 12:14:25 -0600
committerAaron W. LaFramboise <aaronwl@gcc.gnu.org>2008-08-31 12:14:25 -0600
commitd89f0ad6225ed957153f92edf50f06890193c32f (patch)
tree349007eb9608d2d70057524bcd0d030010875820 /gcc/config/i386/t-cygming
parent3e196fa9b9e3d7ce3b23e11f6517a6439506a2bc (diff)
downloadgcc-d89f0ad6225ed957153f92edf50f06890193c32f.tar.gz
configure.ac (RPATH_ENVVAR): Use PATH on Windows.
2008-08-31 Aaron W. LaFramboise <aaronavay62@aaronwl.com> <toplevel> * configure.ac (RPATH_ENVVAR): Use PATH on Windows. (GCC_SHLIB_SUBDIR): New. * Makefile.tpl (HOST_LIB_PATH_gcc): Use GCC_SHLIB_SUBDIR. * configure: Regenerate. * Makefile.in: Regenerate. <gcc> * mkmap-flat.awk: Add option pe_dll. * config/i386/t-cygming (SHLIB_LINK): Support building libgcc_s. * gcc/config/i386/t-cygwin (SHLIB_LC): Add. * gcc/config/i386/t-mingw32 (SHLIB_LC): Add. * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): New. (SUBTARGET_EXTRA_SPECS): Use SHARED_LIBGCC_UNDEFS_SPEC. (LINK_SPEC): Support libgcc_s. (LIBGCC_SPEC): Support libgcc_s. (LIBGCC_SONAME): New. <libstdc++-v3> * acinclude.m4 <enable_symvers>: Don't use symvers on Windows. * configure: Regenerated. * Makefile.in: Regenerated. * src/Makefile.in: Regenerated. * doc/makefile.in: Regenerated. * po/Makefile.in: Regenerated. * libmath/Makefile.in: Regenerated. * include/Makefile.in: Regenerated. * libsupc++/Makefile.in: Regenerated. * testsuite/makefile.in: Regenerated. From-SVN: r139837
Diffstat (limited to 'gcc/config/i386/t-cygming')
-rw-r--r--gcc/config/i386/t-cygming48
1 files changed, 48 insertions, 0 deletions
diff --git a/gcc/config/i386/t-cygming b/gcc/config/i386/t-cygming
index b2c50df01fa..c6e6cac7811 100644
--- a/gcc/config/i386/t-cygming
+++ b/gcc/config/i386/t-cygming
@@ -36,3 +36,51 @@ msformat-c.o: $(srcdir)/config/i386/msformat-c.c $(CONFIG_H) $(SYSTEM_H) coretyp
$(srcdir)/config/i386/msformat-c.c
STMP_FIXINC=stmp-fixinc
+
+# Build a shared libgcc library for PECOFF with a DEF file
+# with the GNU linker.
+#
+# mkmap-flat.awk is used with the pe_dll option to produce a DEF instead
+# of an ELF map file.
+#
+# Warning: If SHLIB_SOVERSION or SHLIB_SONAME is updated, LIBGCC_SONAME
+# in mingw32.h must be updated also.
+
+SHLIB_EXT = .dll
+SHLIB_IMPLIB = @shlib_base_name@.a
+SHLIB_SOVERSION = 1
+SHLIB_SONAME = @shlib_base_name@_$(SHLIB_SOVERSION)$(SHLIB_EXT)
+SHLIB_MAP = @shlib_map_file@
+SHLIB_OBJS = @shlib_objs@
+SHLIB_DIR = @multilib_dir@/shlib
+SHLIB_SLIBDIR_QUAL = @shlib_slibdir_qual@
+SHLIB_LC = -luser32 -lkernel32 -ladvapi32 -lshell32
+
+SHLIB_LINK = $(LN_S) $(SHLIB_MAP) $(SHLIB_MAP).def && \
+ if [ ! -d $(SHLIB_DIR) ]; then \
+ mkdir $(SHLIB_DIR) \
+ else true; fi && \
+ $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) -shared -nodefaultlibs \
+ $(SHLIB_MAP).def \
+ -Wl,--out-implib,$(SHLIB_DIR)/$(SHLIB_IMPLIB).tmp \
+ -o $(SHLIB_DIR)/$(SHLIB_SONAME).tmp @multilib_flags@ \
+ $(SHLIB_OBJS) $(SHLIB_LC) && \
+ $(AR_FOR_TARGET) -r $(SHLIB_DIR)/$(SHLIB_IMPLIB).tmp \
+ _chkstk.o _ctors.o gthr-win32.o && \
+ if [ -f $(SHLIB_DIR)/$(SHLIB_SONAME) ]; then \
+ mv -f $(SHLIB_DIR)/$(SHLIB_SONAME) \
+ $(SHLIB_DIR)/$(SHLIB_SONAME).backup; \
+ else true; fi && \
+ mv $(SHLIB_DIR)/$(SHLIB_SONAME).tmp $(SHLIB_DIR)/$(SHLIB_SONAME) && \
+ mv $(SHLIB_DIR)/$(SHLIB_IMPLIB).tmp $(SHLIB_DIR)/$(SHLIB_IMPLIB)
+# $(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)$(SHLIB_SLIBDIR_QUAL); \
+ $(INSTALL_PROGRAM) $(SHLIB_DIR)/$(SHLIB_SONAME) \
+ $$(DESTDIR)$$(bindir)/$(SHLIB_SONAME); \
+ $(INSTALL_DATA) $(SHLIB_DIR)/$(SHLIB_IMPLIB) \
+ $$(DESTDIR)$$(slibdir)$(SHLIB_SLIBDIR_QUAL)/$(SHLIB_IMPLIB)
+SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk
+SHLIB_MKMAP_OPTS = -v pe_dll=1
+SHLIB_MAPFILES = $(srcdir)/libgcc-std.ver