summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--configure.in29
-rw-r--r--msdos/ChangeLog4
-rw-r--r--msdos/sed1v2.inp1
-rw-r--r--src/ChangeLog12
-rw-r--r--src/Makefile.in16
-rw-r--r--src/m/arm.h6
-rw-r--r--src/s/cygwin.h3
-rw-r--r--src/s/freebsd.h3
-rw-r--r--src/s/gnu-linux.h6
-rw-r--r--src/s/msdos.h1
-rw-r--r--src/s/netbsd.h3
12 files changed, 55 insertions, 33 deletions
diff --git a/ChangeLog b/ChangeLog
index 6bc657783c8..831fc2263f8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2010-05-12 Glenn Morris <rgm@gnu.org>
+
+ * configure.in (LIB_GCC): New output variable.
+
2010-05-11 Glenn Morris <rgm@gnu.org>
* make-dist (msdos): No more mainmake.
diff --git a/configure.in b/configure.in
index d634262a0fc..3a0067ecece 100644
--- a/configure.in
+++ b/configure.in
@@ -3234,6 +3234,35 @@ fi
AC_SUBST(LD_SWITCH_SYSTEM_EXTRA)
+LIB_GCC=
+if test "x$GCC" = "xyes"; then
+
+ case "$opsys" in
+ ## cygwin: don't link against static libgcc.
+ cygwin|freebsd|netbsd|openbsd) LIB_GCC= ;;
+
+ gnu-*)
+ ## armin76@gentoo.org reported that the lgcc_s flag is necessary to
+ ## build on ARM EABI under GNU/Linux. (Bug#5518)
+ ## Note that m/arm.h never bothered to undefine LIB_GCC first.
+ if test "$machine" = "arm"; then
+ LIB_GCC="-lgcc_s"
+ else
+ ## FIXME? s/gnu-linux.h used to define LIB_GCC as below, then
+ ## immediately undefine it again and redefine it to empty.
+ ## Was the C_SWITCH_X_SITE part really necessary?
+## LIB_GCC=`$(CC) $(C_SWITCH_X_SITE) -print-libgcc-file-name`
+ LIB_GCC=
+ fi
+ ;;
+
+ ## Ask GCC where to find libgcc.a.
+ *) LIB_GCC=`$(CC) -print-libgcc-file-name 2> /dev/null` ;;
+ esac
+fi dnl if $GCC
+AC_SUBST(LIB_GCC)
+
+
AH_TOP([/* GNU Emacs site configuration template file.
Copyright (C) 1988, 1993, 1994, 1999, 2000, 2001, 2002, 2004, 2005,
2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
diff --git a/msdos/ChangeLog b/msdos/ChangeLog
index bed87472907..8ce1b625fc6 100644
--- a/msdos/ChangeLog
+++ b/msdos/ChangeLog
@@ -1,3 +1,7 @@
+2010-05-12 Glenn Morris <rgm@gnu.org>
+
+ * sed1v2.inp (LIB_GCC): Edit to -Lgcc.
+
2010-05-11 Glenn Morris <rgm@gnu.org>
* sed1x.inp (LIBS_SYSTEM): Edit to -lxext -lsys.
diff --git a/msdos/sed1v2.inp b/msdos/sed1v2.inp
index db6944ec135..f0e057c6b28 100644
--- a/msdos/sed1v2.inp
+++ b/msdos/sed1v2.inp
@@ -51,6 +51,7 @@ s/@LIB_MATH@/-lm/
/^LD_SWITCH_SYSTEM *=/s/@LD_SWITCH_SYSTEM@//
/^LD_SWITCH_SYSTEM_EXTRA *=/s/@LD_SWITCH_SYSTEM_EXTRA@//
/^LIBS_SYSTEM *=/s/@LIBS_SYSTEM@//
+/^LIB_GCC *=/s/@LIB_GCC@/-Lgcc/
/^LIBTIFF *=/s/@LIBTIFF@//
/^LIBJPEG *=/s/@LIBJPEG@//
/^LIBPNG *=/s/@LIBPNG@//
diff --git a/src/ChangeLog b/src/ChangeLog
index 35b5153649a..7bf067e2427 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,15 @@
+2010-05-12 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (LIB_GCC): Set using configure, not cpp.
+ (GNULIB_VAR) [!ORDINARY_LINK]: Always set to $LIB_GCC.
+ * m/arm.h (LIB_GCC) [GNU_LINUX]:
+ * s/cygwin.h (LIB_GCC):
+ * s/freebsd.h (LIB_GCC):
+ * s/gnu-linux.h (LIB_GCC):
+ * s/msdos.h (LIB_GCC):
+ * s/netbsd.h (LIB_GCC):
+ Move to configure.
+
2010-05-11 Karel Klic <kklic@redhat.com>
* ftfont.c: Fix incorrect parentheses of #if condition for
diff --git a/src/Makefile.in b/src/Makefile.in
index 292429fc7b4..9476254e48d 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -91,6 +91,9 @@ TEMACS_LDFLAGS = $(LD_SWITCH_SYSTEM) $(LD_SWITCH_SYSTEM_EXTRA) $(LD_SWITCH_SYSTE
## Some systems define this to request special libraries.
LIBS_SYSTEM=@LIBS_SYSTEM@
+## Where to find libgcc.a, if using gcc and necessary.
+LIB_GCC=@LIB_GCC@
+
LIBTIFF=@LIBTIFF@
LIBJPEG=@LIBJPEG@
LIBPNG=@LIBPNG@
@@ -258,6 +261,8 @@ LIBX_OTHER=@LIBX_OTHER@
#endif /* not HAVE_X_WINDOWS */
#ifndef ORDINARY_LINK
+GNULIB_VAR = $(LIB_GCC)
+
/* Fix linking if compiled with GCC. */
#ifdef __GNUC__
@@ -278,13 +283,6 @@ LIBX_OTHER=@LIBX_OTHER@
#define LINKER $(CC) -nostdlib
#endif
-#ifndef LIB_GCC
-/* Ask GCC where to find libgcc.a. */
-#define LIB_GCC `$(CC) -print-libgcc-file-name`
-#endif /* not LIB_GCC */
-
-GNULIB_VAR = LIB_GCC
-
#ifndef LINKER_WAS_SPECIFIED
/* GCC passes any argument prefixed with -Xlinker directly to the
linker. See prefix-args.c for an explanation of why we do not do
@@ -296,10 +294,6 @@ GNULIB_VAR = LIB_GCC
#define YMF_PASS_LDFLAGS(flags) flags
#endif
-#else /* not __GNUC__ */
-GNULIB_VAR =
-
-#endif /* not __GNUC__ */
#endif /* not ORDINARY_LINK */
#ifdef ORDINARY_LINK
diff --git a/src/m/arm.h b/src/m/arm.h
index c3a5d6e4ad5..cf30e2e1b19 100644
--- a/src/m/arm.h
+++ b/src/m/arm.h
@@ -24,11 +24,5 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#define NO_REMAP
-/* armin76@gentoo.org reported that the lgcc_s flag is necessary to
- build on ARM EABI under GNU/Linux (Bug#5518). */
-#ifdef GNU_LINUX
-#define LIB_GCC -lgcc_s
-#endif
-
/* arch-tag: 07856f0c-f0c8-4bd8-99af-0b7fa1e5ee42
(do not change this comment) */
diff --git a/src/s/cygwin.h b/src/s/cygwin.h
index 296b1970a97..4a5add787f4 100644
--- a/src/s/cygwin.h
+++ b/src/s/cygwin.h
@@ -127,9 +127,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
returns ENOSYS. A workaround is to set G_SLICE=always-malloc. */
#define G_SLICE_ALWAYS_MALLOC
-/* Don't link against static libgcc */
-#define LIB_GCC
-
/* the end */
/* arch-tag: 5ae7ba00-83b0-4ab3-806a-3e845779191b
diff --git a/src/s/freebsd.h b/src/s/freebsd.h
index 78c7dfdf6bb..2bce3ad63be 100644
--- a/src/s/freebsd.h
+++ b/src/s/freebsd.h
@@ -30,9 +30,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_p - (FILE)->_bf._base)
-#undef LIB_GCC
-#define LIB_GCC
-
#define HAVE_GETLOADAVG 1
#define DECLARE_GETPWUID_WITH_UID_T
diff --git a/src/s/gnu-linux.h b/src/s/gnu-linux.h
index 5c94a4369ce..a42bbaadf62 100644
--- a/src/s/gnu-linux.h
+++ b/src/s/gnu-linux.h
@@ -140,9 +140,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#endif /* !_IO_STDIO_H && ! __UCLIBC__ */
#endif /* emacs */
-/* Ask GCC where to find libgcc.a. */
-#define LIB_GCC `$(CC) $(C_SWITCH_X_SITE) -print-libgcc-file-name`
-
#ifdef emacs
#define INTERRUPT_INPUT
#endif
@@ -151,9 +148,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#define POSIX /* affects getpagesize.h and systty.h */
-#undef LIB_GCC
-#define LIB_GCC
-
#define UNEXEC unexelf.o
/* This is to work around mysterious gcc failures in some system versions.
diff --git a/src/s/msdos.h b/src/s/msdos.h
index 4d7ca08d3c0..efed104e958 100644
--- a/src/s/msdos.h
+++ b/src/s/msdos.h
@@ -95,7 +95,6 @@ You lose; /* Emacs for DOS must be compiled with DJGPP */
#define ORDINARY_LINK
/* command.com does not understand `...` so we define this. */
-#define LIB_GCC -Lgcc
#define SEPCHAR ';'
#define NULL_DEVICE "nul"
diff --git a/src/s/netbsd.h b/src/s/netbsd.h
index fa6d1141c8c..2511dc1c1e7 100644
--- a/src/s/netbsd.h
+++ b/src/s/netbsd.h
@@ -26,9 +26,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_p - (FILE)->_bf._base)
-#undef LIB_GCC
-#define LIB_GCC
-
#define AMPERSAND_FULL_NAME
/* On post 1.3 releases of NetBSD, gcc -nostdlib also clears