summaryrefslogtreecommitdiff
path: root/gcc/config/i386/t-cygwin
diff options
context:
space:
mode:
authordavek <davek@138bc75d-0d04-0410-961f-82ee72b054a4>2009-01-31 18:52:00 +0000
committerdavek <davek@138bc75d-0d04-0410-961f-82ee72b054a4>2009-01-31 18:52:00 +0000
commit8cae609cdca397a87c1059b07a44ef9b3b63ee53 (patch)
tree3b59fc8984e5b0cc68ebb79362688651ec1eeadc /gcc/config/i386/t-cygwin
parent27ed8c87b1d9aab091c167e649ab0c383c213647 (diff)
downloadgcc-8cae609cdca397a87c1059b07a44ef9b3b63ee53.tar.gz
PR target/38904
* mkmap-flat.awk (END): Use pe_dll command-line arg to pass LIBRARY name in, instead of hard-coding it. * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an extra target make frag to tmake_files according to EH model. (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise. * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target frags that define makefile variable EH_MODEL appropriately. * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment. * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or to "-sjlj" according to type of EH configured. (LIBGCC_SONAME): Concatenate it to shared library base name. * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or to "_sjlj" according to type of EH configured. (LIBGCC_SONAME): Concatenate it to shared library base name. * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL. (SHLIB_LINK): Add missing semicolon to if-else construct. (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as string value of "pe_dll" command-line option. * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper. (SHLIB_SONAME): Use it when overriding t-cygming default. (SHLIB_IMPLIB): Override t-cygming default. (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as string value of "pe_dll" command-line option. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@143829 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/i386/t-cygwin')
-rw-r--r--gcc/config/i386/t-cygwin12
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/config/i386/t-cygwin b/gcc/config/i386/t-cygwin
index 7433138d692..d58d84fcd6f 100644
--- a/gcc/config/i386/t-cygwin
+++ b/gcc/config/i386/t-cygwin
@@ -16,3 +16,15 @@ cygwin2.o: $(srcdir)/config/i386/cygwin2.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
# Cygwin-specific parts of LIB_SPEC
SHLIB_LC = -lcygwin -luser32 -lkernel32 -ladvapi32 -lshell32
+
+# We have already included one of the t-{dw2,sjlj}-eh fragments for EH_MODEL
+SHLIB_EH_EXTENSION = $(subst -dw2,,-$(EH_MODEL))
+
+# Cygwin uses different conventions than MinGW; override generic SHLIB_ def'ns here.
+SHLIB_IMPLIB = @shlib_base_name@$(SHLIB_EXT).a
+SHLIB_SONAME = cyggcc_s$(SHLIB_EH_EXTENSION)-$(SHLIB_SOVERSION)$(SHLIB_EXT)
+# This must match the definitions of SHLIB_SONAME/SHLIB_SOVERSION and LIBGCC_SONAME.
+# We'd like to use SHLIB_SONAME here too, and we can, since
+# we don't rely on shlib_base_name substitution for it.
+SHLIB_MKMAP_OPTS = -v pe_dll=$(SHLIB_SONAME)
+