diff options
author | aaronwl <aaronwl@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-08-31 18:14:25 +0000 |
---|---|---|
committer | aaronwl <aaronwl@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-08-31 18:14:25 +0000 |
commit | 7d804f0444b23a9de39bb6c608f17c94e356cd28 (patch) | |
tree | 349007eb9608d2d70057524bcd0d030010875820 | |
parent | 3cb0c12f0819cbbf5f8227dba197bb4f379b867f (diff) | |
download | gcc-7d804f0444b23a9de39bb6c608f17c94e356cd28.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@139837 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | Makefile.in | 7 | ||||
-rw-r--r-- | Makefile.tpl | 7 | ||||
-rwxr-xr-x | configure | 15 | ||||
-rw-r--r-- | configure.ac | 12 | ||||
-rw-r--r-- | gcc/ChangeLog | 12 | ||||
-rw-r--r-- | gcc/config/i386/mingw32.h | 25 | ||||
-rw-r--r-- | gcc/config/i386/t-cygming | 48 | ||||
-rw-r--r-- | gcc/config/i386/t-cygwin | 2 | ||||
-rw-r--r-- | gcc/config/i386/t-mingw32 | 3 | ||||
-rw-r--r-- | gcc/mkmap-flat.awk | 14 | ||||
-rw-r--r-- | libstdc++-v3/ChangeLog | 13 | ||||
-rw-r--r-- | libstdc++-v3/Makefile.in | 1 | ||||
-rw-r--r-- | libstdc++-v3/acinclude.m4 | 7 | ||||
-rwxr-xr-x | libstdc++-v3/configure | 7 | ||||
-rw-r--r-- | libstdc++-v3/doc/Makefile.in | 1 | ||||
-rw-r--r-- | libstdc++-v3/include/Makefile.in | 1 | ||||
-rw-r--r-- | libstdc++-v3/libmath/Makefile.in | 1 | ||||
-rw-r--r-- | libstdc++-v3/libsupc++/Makefile.in | 1 | ||||
-rw-r--r-- | libstdc++-v3/po/Makefile.in | 1 | ||||
-rw-r--r-- | libstdc++-v3/src/Makefile.in | 1 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/Makefile.in | 1 |
22 files changed, 178 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog index 8afe2f8111e..67175b8c8cc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2008-08-31 Aaron W. LaFramboise <aaronavay62@aaronwl.com> + + * 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. + 2008-08-30 Gerald Pfeifer <gerald@pfeifer.com> * MAINTAINERS: Consistently use tabs to separate columns. diff --git a/Makefile.in b/Makefile.in index 2ede05810ee..0305d28c938 100644 --- a/Makefile.in +++ b/Makefile.in @@ -105,6 +105,11 @@ GDB_NLM_DEPS = # the libraries. RPATH_ENVVAR = @RPATH_ENVVAR@ +# On targets where RPATH_ENVVAR is PATH, a subdirectory of the GCC build path +# is used instead of the directory itself to avoid including built +# executables in PATH. +GCC_SHLIB_SUBDIR = @GCC_SHLIB_SUBDIR@ + # Build programs are put under this directory. BUILD_SUBDIR = @build_subdir@ # This is set by the configure script to the arguments to use when configuring @@ -445,7 +450,7 @@ HOST_LIB_PATH = $(HOST_LIB_PATH_bfd)$(HOST_LIB_PATH_opcodes)$(HOST_LIB_PATH_gmp) # Define HOST_LIB_PATH_gcc here, for the sake of TARGET_LIB_PATH, ouch @if gcc -HOST_LIB_PATH_gcc = $$r/$(HOST_SUBDIR)/gcc:$$r/$(HOST_SUBDIR)/prev-gcc: +HOST_LIB_PATH_gcc = $$r/$(HOST_SUBDIR)/gcc$(GCC_SHLIB_SUBDIR):$$r/$(HOST_SUBDIR)/prev-gcc$(GCC_SHLIB_SUBDIR): @endif gcc diff --git a/Makefile.tpl b/Makefile.tpl index a9dfd3e2af4..051703eaa88 100644 --- a/Makefile.tpl +++ b/Makefile.tpl @@ -108,6 +108,11 @@ GDB_NLM_DEPS = # the libraries. RPATH_ENVVAR = @RPATH_ENVVAR@ +# On targets where RPATH_ENVVAR is PATH, a subdirectory of the GCC build path +# is used instead of the directory itself to avoid including built +# executables in PATH. +GCC_SHLIB_SUBDIR = @GCC_SHLIB_SUBDIR@ + # Build programs are put under this directory. BUILD_SUBDIR = @build_subdir@ # This is set by the configure script to the arguments to use when configuring @@ -440,7 +445,7 @@ HOST_LIB_PATH = [+ FOR host_modules +][+ # Define HOST_LIB_PATH_gcc here, for the sake of TARGET_LIB_PATH, ouch @if gcc -HOST_LIB_PATH_gcc = $$r/$(HOST_SUBDIR)/gcc:$$r/$(HOST_SUBDIR)/prev-gcc: +HOST_LIB_PATH_gcc = $$r/$(HOST_SUBDIR)/gcc$(GCC_SHLIB_SUBDIR):$$r/$(HOST_SUBDIR)/prev-gcc$(GCC_SHLIB_SUBDIR): @endif gcc [+ FOR host_modules +][+ IF lib_path +] diff --git a/configure b/configure index 59d190d3716..1a2bbbca0cc 100755 --- a/configure +++ b/configure @@ -272,7 +272,7 @@ PACKAGE_STRING= PACKAGE_BUGREPORT= ac_unique_file="move-if-change" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS TOPLEVEL_CONFIGURE_ARGUMENTS build build_cpu build_vendor build_os build_noncanonical host_noncanonical target_noncanonical host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN LN_S build_libsubdir build_subdir host_subdir target_subdir CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX GNATBIND ac_ct_GNATBIND GNATMAKE ac_ct_GNATMAKE do_compare gmplibs gmpinc stage1_languages SYSROOT_CFLAGS_FOR_TARGET DEBUG_PREFIX_CFLAGS_FOR_TARGET CFLAGS_FOR_TARGET CXXFLAGS_FOR_TARGET RPATH_ENVVAR tooldir build_tooldir CONFIGURE_GDB_TK GDB_TK INSTALL_GDB_TK build_configargs build_configdirs host_configargs configdirs target_configargs AR_FOR_BUILD AS_FOR_BUILD CC_FOR_BUILD CFLAGS_FOR_BUILD CXXFLAGS_FOR_BUILD CXX_FOR_BUILD DLLTOOL_FOR_BUILD GCJ_FOR_BUILD GFORTRAN_FOR_BUILD LDFLAGS_FOR_BUILD LD_FOR_BUILD NM_FOR_BUILD RANLIB_FOR_BUILD WINDMC_FOR_BUILD WINDRES_FOR_BUILD config_shell YACC BISON M4 LEX FLEX MAKEINFO EXPECT RUNTEST AR AS DLLTOOL LD LIPO NM RANLIB STRIP WINDRES WINDMC OBJCOPY OBJDUMP CC_FOR_TARGET CXX_FOR_TARGET GCC_FOR_TARGET GCJ_FOR_TARGET GFORTRAN_FOR_TARGET AR_FOR_TARGET AS_FOR_TARGET DLLTOOL_FOR_TARGET LD_FOR_TARGET LIPO_FOR_TARGET NM_FOR_TARGET OBJDUMP_FOR_TARGET RANLIB_FOR_TARGET STRIP_FOR_TARGET WINDRES_FOR_TARGET WINDMC_FOR_TARGET RAW_CXX_FOR_TARGET FLAGS_FOR_TARGET COMPILER_AS_FOR_TARGET COMPILER_LD_FOR_TARGET COMPILER_NM_FOR_TARGET MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT stage1_cflags stage1_checking stage2_werror_flag datarootdir docdir pdfdir htmldir LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS TOPLEVEL_CONFIGURE_ARGUMENTS build build_cpu build_vendor build_os build_noncanonical host_noncanonical target_noncanonical host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN LN_S build_libsubdir build_subdir host_subdir target_subdir CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX GNATBIND ac_ct_GNATBIND GNATMAKE ac_ct_GNATMAKE do_compare gmplibs gmpinc stage1_languages SYSROOT_CFLAGS_FOR_TARGET DEBUG_PREFIX_CFLAGS_FOR_TARGET CFLAGS_FOR_TARGET CXXFLAGS_FOR_TARGET RPATH_ENVVAR GCC_SHLIB_SUBDIR tooldir build_tooldir CONFIGURE_GDB_TK GDB_TK INSTALL_GDB_TK build_configargs build_configdirs host_configargs configdirs target_configargs AR_FOR_BUILD AS_FOR_BUILD CC_FOR_BUILD CFLAGS_FOR_BUILD CXXFLAGS_FOR_BUILD CXX_FOR_BUILD DLLTOOL_FOR_BUILD GCJ_FOR_BUILD GFORTRAN_FOR_BUILD LDFLAGS_FOR_BUILD LD_FOR_BUILD NM_FOR_BUILD RANLIB_FOR_BUILD WINDMC_FOR_BUILD WINDRES_FOR_BUILD config_shell YACC BISON M4 LEX FLEX MAKEINFO EXPECT RUNTEST AR AS DLLTOOL LD LIPO NM RANLIB STRIP WINDRES WINDMC OBJCOPY OBJDUMP CC_FOR_TARGET CXX_FOR_TARGET GCC_FOR_TARGET GCJ_FOR_TARGET GFORTRAN_FOR_TARGET AR_FOR_TARGET AS_FOR_TARGET DLLTOOL_FOR_TARGET LD_FOR_TARGET LIPO_FOR_TARGET NM_FOR_TARGET OBJDUMP_FOR_TARGET RANLIB_FOR_TARGET STRIP_FOR_TARGET WINDRES_FOR_TARGET WINDMC_FOR_TARGET RAW_CXX_FOR_TARGET FLAGS_FOR_TARGET COMPILER_AS_FOR_TARGET COMPILER_LD_FOR_TARGET COMPILER_NM_FOR_TARGET MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT stage1_cflags stage1_checking stage2_werror_flag datarootdir docdir pdfdir htmldir LIBOBJS LTLIBOBJS' ac_subst_files='serialization_dependencies host_makefile_frag target_makefile_frag alphaieee_frag ospace_frag' ac_pwd=`pwd` @@ -5594,12 +5594,23 @@ case "${host}" in ;; esac +# Decide which environment variable is used to find dynamic libraries. case "${host}" in *-*-hpux*) RPATH_ENVVAR=SHLIB_PATH ;; *-*-darwin* | *-*-rhapsody* ) RPATH_ENVVAR=DYLD_LIBRARY_PATH ;; + *-*-mingw* | *-*-cygwin ) RPATH_ENVVAR=PATH ;; *) RPATH_ENVVAR=LD_LIBRARY_PATH ;; esac +# On systems where the dynamic library environment variable is PATH, +# gcc/ will put dynamic libraries into a subdirectory to avoid adding +# built executables to PATH. +if test "$RPATH_ENVVAR" = PATH; then + GCC_SHLIB_SUBDIR=/shlib +else + GCC_SHLIB_SUBDIR= +fi + # Record target_configdirs and the configure arguments for target and # build configuration in Makefile. target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'` @@ -6072,6 +6083,7 @@ done + # Build module lists & subconfigure args. @@ -12971,6 +12983,7 @@ s,@DEBUG_PREFIX_CFLAGS_FOR_TARGET@,$DEBUG_PREFIX_CFLAGS_FOR_TARGET,;t t s,@CFLAGS_FOR_TARGET@,$CFLAGS_FOR_TARGET,;t t s,@CXXFLAGS_FOR_TARGET@,$CXXFLAGS_FOR_TARGET,;t t s,@RPATH_ENVVAR@,$RPATH_ENVVAR,;t t +s,@GCC_SHLIB_SUBDIR@,$GCC_SHLIB_SUBDIR,;t t s,@tooldir@,$tooldir,;t t s,@build_tooldir@,$build_tooldir,;t t s,@CONFIGURE_GDB_TK@,$CONFIGURE_GDB_TK,;t t diff --git a/configure.ac b/configure.ac index d4b962f0445..e9309a6c6de 100644 --- a/configure.ac +++ b/configure.ac @@ -2050,12 +2050,23 @@ case "${host}" in ;; esac +# Decide which environment variable is used to find dynamic libraries. case "${host}" in *-*-hpux*) RPATH_ENVVAR=SHLIB_PATH ;; *-*-darwin* | *-*-rhapsody* ) RPATH_ENVVAR=DYLD_LIBRARY_PATH ;; + *-*-mingw* | *-*-cygwin ) RPATH_ENVVAR=PATH ;; *) RPATH_ENVVAR=LD_LIBRARY_PATH ;; esac +# On systems where the dynamic library environment variable is PATH, +# gcc/ will put dynamic libraries into a subdirectory to avoid adding +# built executables to PATH. +if test "$RPATH_ENVVAR" = PATH; then + GCC_SHLIB_SUBDIR=/shlib +else + GCC_SHLIB_SUBDIR= +fi + # Record target_configdirs and the configure arguments for target and # build configuration in Makefile. target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'` @@ -2513,6 +2524,7 @@ AC_SUBST_FILE(ospace_frag) # Miscellanea: directories, flags, etc. AC_SUBST(RPATH_ENVVAR) +AC_SUBST(GCC_SHLIB_SUBDIR) AC_SUBST(tooldir) AC_SUBST(build_tooldir) AC_SUBST(CONFIGURE_GDB_TK) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c74589c933f..7b14a2c4428 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,15 @@ +2008-08-31 Aaron W. LaFramboise <aaronavay62@aaronwl.com> + + * mkmap-flat.awk: Add option pe_dll. + * config/i386/t-cygming (SHLIB_LINK): Support building libgcc_s. + * config/i386/t-cygwin (SHLIB_LC): Add. + * 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. + 2008-08-31 Jan Hubicka <jh@suse.cz> * predict.c (maybe_hot_bb_p, maybe_hot_edge_p): Previous commit diff --git a/gcc/config/i386/mingw32.h b/gcc/config/i386/mingw32.h index f5abe789977..bb5fd7f7e6e 100644 --- a/gcc/config/i386/mingw32.h +++ b/gcc/config/i386/mingw32.h @@ -67,19 +67,33 @@ along with GCC; see the file COPYING3. If not see #define LIB_SPEC "%{pg:-lgmon} %{mwindows:-lgdi32 -lcomdlg32} \ -luser32 -lkernel32 -ladvapi32 -lshell32" -/* Include in the mingw32 libraries with libgcc */ -#undef LINK_SPEC +/* Weak symbols do not get resolved if using a Windows dll import lib. + Make the unwind registration references strong undefs. */ +#if DWARF2_UNWIND_INFO +#define SHARED_LIBGCC_UNDEFS_SPEC \ + "%{shared-libgcc: -u ___register_frame_info -u ___deregister_frame_info}" +#else +#define SHARED_LIBGCC_UNDEFS_SPEC "" +#endif + +#undef SUBTARGET_EXTRA_SPECS +#define SUBTARGET_EXTRA_SPECS \ + { "shared_libgcc_undefs", SHARED_LIBGCC_UNDEFS_SPEC } + #define LINK_SPEC "%{mwindows:--subsystem windows} \ %{mconsole:--subsystem console} \ %{shared: %{mdll: %eshared and mdll are not compatible}} \ %{shared: --shared} %{mdll:--dll} \ %{static:-Bstatic} %{!static:-Bdynamic} \ - %{shared|mdll: -e _DllMainCRTStartup@12}" + %{shared|mdll: -e _DllMainCRTStartup@12 --enable-auto-image-base} \ + %(shared_libgcc_undefs)" /* Include in the mingw32 libraries with libgcc */ #undef LIBGCC_SPEC #define LIBGCC_SPEC \ - "%{mthreads:-lmingwthrd} -lmingw32 -lgcc -lmoldname -lmingwex -lmsvcrt" + "-lmingw32 \ + %{shared-libgcc:-lgcc_s} -lgcc \ + -lmoldname -lmingwex -lmsvcrt" #undef STARTFILE_SPEC #define STARTFILE_SPEC "%{shared|mdll:dllcrt2%O%s} \ @@ -186,3 +200,6 @@ __enable_execute_stack (void *addr) \ #if !TARGET_64BIT #define MD_UNWIND_SUPPORT "config/i386/w32-unwind.h" #endif + +/* This matches SHLIB_SONAME and SHLIB_SOVERSION in t-cygming. */ +#define LIBGCC_SONAME "libgcc_s_1.dll" 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 diff --git a/gcc/config/i386/t-cygwin b/gcc/config/i386/t-cygwin index c6e77731b1a..3715c0b450c 100644 --- a/gcc/config/i386/t-cygwin +++ b/gcc/config/i386/t-cygwin @@ -14,3 +14,5 @@ cygwin2.o: $(srcdir)/config/i386/cygwin2.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \ $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ $(srcdir)/config/i386/cygwin2.c +# Cygwin-specific parts of LIB_SPEC +SHLIB_LC += -lcygwin diff --git a/gcc/config/i386/t-mingw32 b/gcc/config/i386/t-mingw32 index 6d043a37f6a..79554e708f4 100644 --- a/gcc/config/i386/t-mingw32 +++ b/gcc/config/i386/t-mingw32 @@ -1,2 +1,5 @@ # Match SYSTEM_INCLUDE_DIR NATIVE_SYSTEM_HEADER_DIR = /mingw/include + +# MinGW-specific parts of LIB_SPEC +SHLIB_LC += -lmingw32 -lmingwex -lmoldname -lmsvcrt diff --git a/gcc/mkmap-flat.awk b/gcc/mkmap-flat.awk index 377731a4e7d..4a9a99356d8 100644 --- a/gcc/mkmap-flat.awk +++ b/gcc/mkmap-flat.awk @@ -18,6 +18,11 @@ # along with GCC; see the file COPYING3. If not see # <http://www.gnu.org/licenses/>. +# Options: +# "-v leading_underscore=1" : Symbols in map need leading underscore. +# "-v pe_dll=1" : Create .DEF file for Windows PECOFF +# DLL link instead of map file. + BEGIN { state = "nm"; excluding = 0; @@ -86,7 +91,14 @@ $1 == "}" { } END { + + if (pe_dll) { + # This matches SHLIB_SONAME in config/i386/t-cygming. + print "LIBRARY libgcc_s_1.dll"; + print "EXPORTS"; + } + for (sym in export) - if (def[sym]) + if (def[sym] || (pe_dll && def["_" sym])) print sym; } diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index ec3292ff1ce..29adf70c41f 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,16 @@ +2008-08-31 Aaron W. LaFramboise <aaronavay62@aaronwl.com> + + * 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. + 2008-08-29 Mark Mitchell <mark@codesourcery.com> * testsuite/25_algorithms/nth_element/2.cc: Constrain iterations diff --git a/libstdc++-v3/Makefile.in b/libstdc++-v3/Makefile.in index f4e4a414b88..e1013ef9c24 100644 --- a/libstdc++-v3/Makefile.in +++ b/libstdc++-v3/Makefile.in @@ -36,6 +36,7 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ +LIBOBJDIR = DIST_COMMON = README $(am__configure_deps) $(srcdir)/../config.guess \ $(srcdir)/../config.sub $(srcdir)/../install-sh \ $(srcdir)/../ltmain.sh $(srcdir)/../missing \ diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 index 052515b2156..279c4f3e145 100644 --- a/libstdc++-v3/acinclude.m4 +++ b/libstdc++-v3/acinclude.m4 @@ -2637,7 +2637,12 @@ if test x$enable_symvers = xyes ; then enable_symvers=no else if test $with_gnu_ld = yes ; then - enable_symvers=gnu + case ${target_os} in + cygwin* | pe | mingw32*) + enable_symvers=no ;; + *) + enable_symvers=gnu ;; + esac else case ${target_os} in darwin*) diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure index 4287de594d8..d7e034b9c4d 100755 --- a/libstdc++-v3/configure +++ b/libstdc++-v3/configure @@ -106551,7 +106551,12 @@ if test x$enable_symvers = xyes ; then enable_symvers=no else if test $with_gnu_ld = yes ; then - enable_symvers=gnu + case ${target_os} in + cygwin* | pe | mingw32*) + enable_symvers=no ;; + *) + enable_symvers=gnu ;; + esac else case ${target_os} in darwin*) diff --git a/libstdc++-v3/doc/Makefile.in b/libstdc++-v3/doc/Makefile.in index 17c2e864d3c..ab2a902e766 100644 --- a/libstdc++-v3/doc/Makefile.in +++ b/libstdc++-v3/doc/Makefile.in @@ -36,6 +36,7 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ +LIBOBJDIR = DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/fragment.am subdir = doc diff --git a/libstdc++-v3/include/Makefile.in b/libstdc++-v3/include/Makefile.in index 2c5d744fd4f..81d0cc80633 100644 --- a/libstdc++-v3/include/Makefile.in +++ b/libstdc++-v3/include/Makefile.in @@ -36,6 +36,7 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ +LIBOBJDIR = DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/fragment.am subdir = include diff --git a/libstdc++-v3/libmath/Makefile.in b/libstdc++-v3/libmath/Makefile.in index 1592897335e..18dfbcc5559 100644 --- a/libstdc++-v3/libmath/Makefile.in +++ b/libstdc++-v3/libmath/Makefile.in @@ -37,6 +37,7 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ +LIBOBJDIR = subdir = libmath DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 diff --git a/libstdc++-v3/libsupc++/Makefile.in b/libstdc++-v3/libsupc++/Makefile.in index c3d1c6c6b43..5b0a246f820 100644 --- a/libstdc++-v3/libsupc++/Makefile.in +++ b/libstdc++-v3/libsupc++/Makefile.in @@ -38,6 +38,7 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ +LIBOBJDIR = DIST_COMMON = $(glibcxxinstall_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(top_srcdir)/fragment.am subdir = libsupc++ diff --git a/libstdc++-v3/po/Makefile.in b/libstdc++-v3/po/Makefile.in index b19c1b4d94b..408562e7fc6 100644 --- a/libstdc++-v3/po/Makefile.in +++ b/libstdc++-v3/po/Makefile.in @@ -36,6 +36,7 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ +LIBOBJDIR = DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/fragment.am subdir = po diff --git a/libstdc++-v3/src/Makefile.in b/libstdc++-v3/src/Makefile.in index 6c2030a845e..2f4f3ddae7a 100644 --- a/libstdc++-v3/src/Makefile.in +++ b/libstdc++-v3/src/Makefile.in @@ -37,6 +37,7 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ +LIBOBJDIR = DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/fragment.am subdir = src diff --git a/libstdc++-v3/testsuite/Makefile.in b/libstdc++-v3/testsuite/Makefile.in index 4bd6419a506..9e58dfca798 100644 --- a/libstdc++-v3/testsuite/Makefile.in +++ b/libstdc++-v3/testsuite/Makefile.in @@ -36,6 +36,7 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ +LIBOBJDIR = DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/fragment.am subdir = testsuite |