aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGlenn Morris2010-05-18 19:42:04 -0700
committerGlenn Morris2010-05-18 19:42:04 -0700
commitc1d0dcfd127b3f9742c31f794e2a6d886048bb1e (patch)
tree1d070669e258b1bc4ea5507fb58149ca1d6ee685 /src
parent7f34aec377794208fb4aecda44c49ff9f11e7d86 (diff)
downloademacs-c1d0dcfd127b3f9742c31f794e2a6d886048bb1e.tar.gz
emacs-c1d0dcfd127b3f9742c31f794e2a6d886048bb1e.zip
Set linker-related things with configure.
* configure.in (LINKER, YMF_PASS_LDFLAGS): New output variables. (ORDINARY_LINK): New AC_DEFINE. (LIB_GCC): No need to set if ORDINARY_LINK. * src/Makefile.in (LD, YMF_PASS_LDFLAGS): Set with configure, not cpp. (GNULIB_VAR): Remove. (LIBES): Use LIB_GCC instead of GNULIB_VAR. * src/m/ibms390x.h (LINKER): * src/m/macppc.h (LINKER) [GNU_LINUX]: * src/s/aix4-2.h (ORDINARY_LINK): * src/s/cygwin.h (LINKER): * src/s/darwin.h (ORDINARY_LINK): * src/s/gnu.h (ORDINARY_LINK): * src/s/netbsd.h (LINKER): * src/s/usg5-4.h (ORDINARY_LINK): Move to configure. * msdos/sed1v2.inp (LD): Edit to $(CC). (YMF_PASS_LDFLAGS): Edit to `flags'.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog14
-rw-r--r--src/Makefile.in54
-rw-r--r--src/m/ibms390x.h2
-rw-r--r--src/m/macppc.h6
-rw-r--r--src/s/aix4-2.h2
-rw-r--r--src/s/cygwin.h5
-rw-r--r--src/s/darwin.h3
-rw-r--r--src/s/gnu.h3
-rw-r--r--src/s/netbsd.h6
-rw-r--r--src/s/usg5-4.h2
10 files changed, 23 insertions, 74 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 1fbfcb314ef..5d1c53bf7ba 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,19 @@
12010-05-19 Glenn Morris <rgm@gnu.org> 12010-05-19 Glenn Morris <rgm@gnu.org>
2 2
3 * Makefile.in (LD, YMF_PASS_LDFLAGS): Set with configure, not cpp.
4 (GNULIB_VAR): Remove.
5 (LIBES): Use LIB_GCC instead of GNULIB_VAR.
6
7 * m/ibms390x.h (LINKER):
8 * m/macppc.h (LINKER) [GNU_LINUX]:
9 * s/aix4-2.h (ORDINARY_LINK):
10 * s/cygwin.h (LINKER):
11 * s/darwin.h (ORDINARY_LINK):
12 * s/gnu.h (ORDINARY_LINK):
13 * s/netbsd.h (LINKER):
14 * s/usg5-4.h (ORDINARY_LINK):
15 Move to configure.
16
3 * s/aix4-2.h (LINKER): Remove; this file sets ORDINARY_LINK. 17 * s/aix4-2.h (LINKER): Remove; this file sets ORDINARY_LINK.
4 18
52010-05-18 Chong Yidong <cyd@stupidchicken.com> 192010-05-18 Chong Yidong <cyd@stupidchicken.com>
diff --git a/src/Makefile.in b/src/Makefile.in
index 676d2a0834e..bab812e656f 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -124,6 +124,8 @@ LIBS_SYSTEM=@LIBS_SYSTEM@
124## Where to find libgcc.a, if using gcc and necessary. 124## Where to find libgcc.a, if using gcc and necessary.
125LIB_GCC=@LIB_GCC@ 125LIB_GCC=@LIB_GCC@
126 126
127LD=@LINKER@
128
127## May use $CRT_DIR. 129## May use $CRT_DIR.
128LIB_STANDARD=@LIB_STANDARD@ 130LIB_STANDARD=@LIB_STANDARD@
129 131
@@ -329,52 +331,6 @@ ALL_OBJC_CFLAGS=$(ALL_CFLAGS) $(GNU_OBJC_CFLAGS)
329 $(CC) -c $(CPPFLAGS) $(ALL_OBJC_CFLAGS) $< 331 $(CC) -c $(CPPFLAGS) $(ALL_OBJC_CFLAGS) $<
330 332
331 333
332/* A macro which other sections of Makefile can redefine to munge the
333 flags before they are passed to LD. This is helpful if you have
334 redefined LD to something odd, like "gcc".
335 (The YMF prefix is a holdover from the old name "ymakefile".) */
336#define YMF_PASS_LDFLAGS(flags) flags
337
338
339#ifdef ORDINARY_LINK
340LD = $(CC)
341
342#else /* not ORDINARY_LINK */
343GNULIB_VAR = $(LIB_GCC)
344
345/* Fix linking if compiled with GCC. */
346#if defined (__GNUC__) && ! defined (LINKER)
347/* Versions of GCC >= 2.0 put their library, libgcc.a, in obscure
348 places that are difficult to figure out at make time. Fortunately,
349 these same versions allow you to pass arbitrary flags on to the
350 linker, so there is no reason not to use it as a linker.
351
352 Well, it is not quite perfect. The "-nostdlib" keeps GCC from
353 searching for libraries in its internal directories, so we have to
354 ask GCC explicitly where to find libgcc.a. */
355#define LINKER $(CC) -nostdlib
356/* GCC passes any argument prefixed with -Xlinker directly to the linker.
357 See prefix-args.c for an explanation of why we do not do this with the
358 shell''s ``for'' construct. Note that sane people do not have '.' in
359 their paths, so we must use ./prefix-args. */
360#undef YMF_PASS_LDFLAGS
361#define YMF_PASS_LDFLAGS(flags) `./prefix-args -Xlinker flags`
362#endif /* defined (__GNUC__) && ! defined (LINKER) */
363
364#ifdef LINKER
365LD=LINKER
366#else /* not LINKER */
367LD=ld
368#endif /* not LINKER */
369
370#endif /* not ORDINARY_LINK */
371
372
373#ifdef NS_IMPL_GNUSTEP
374LD=$(CC) -rdynamic
375#endif
376
377
378/* lastfile must follow all files whose initialized data areas should 334/* lastfile must follow all files whose initialized data areas should
379 be dumped as pure by dump-emacs. */ 335 be dumped as pure by dump-emacs. */
380obj= dispnew.o frame.o scroll.o xdisp.o menu.o $(XMENU_OBJ) window.o \ 336obj= dispnew.o frame.o scroll.o xdisp.o menu.o $(XMENU_OBJ) window.o \
@@ -634,13 +590,13 @@ SOME_MACHINE_LISP = ../lisp/mouse.elc \
634/* Construct full set of libraries to be linked. 590/* Construct full set of libraries to be linked.
635 Note that SunOS needs -lm to come before -lc; otherwise, you get 591 Note that SunOS needs -lm to come before -lc; otherwise, you get
636 duplicated symbols. If the standard libraries were compiled 592 duplicated symbols. If the standard libraries were compiled
637 with GCC, we might need gnulib again after them. */ 593 with GCC, we might need LIB_GCC again after them. */
638 594
639LIBES = $(LOADLIBES) $(LIBS) $(LIBX_BASE) $(LIBX_OTHER) $(LIBSOUND) \ 595LIBES = $(LOADLIBES) $(LIBS) $(LIBX_BASE) $(LIBX_OTHER) $(LIBSOUND) \
640 $(RSVG_LIBS) $(DBUS_LIBS) $(LIBGPM) $(LIBRESOLV) $(LIBS_SYSTEM) \ 596 $(RSVG_LIBS) $(DBUS_LIBS) $(LIBGPM) $(LIBRESOLV) $(LIBS_SYSTEM) \
641 $(LIBS_TERMCAP) $(GETLOADAVG_LIBS) ${GCONF_LIBS} ${LIBSELINUX_LIBS} \ 597 $(LIBS_TERMCAP) $(GETLOADAVG_LIBS) ${GCONF_LIBS} ${LIBSELINUX_LIBS} \
642 $(FREETYPE_LIBS) $(FONTCONFIG_LIBS) $(LIBOTF_LIBS) $(M17N_FLT_LIBS) \ 598 $(FREETYPE_LIBS) $(FONTCONFIG_LIBS) $(LIBOTF_LIBS) $(M17N_FLT_LIBS) \
643 $(GNULIB_VAR) $(LIB_MATH) $(LIB_STANDARD) $(GNULIB_VAR) 599 $(LIB_GCC) $(LIB_MATH) $(LIB_STANDARD) $(LIB_GCC)
644 600
645all: emacs${EXEEXT} $(OTHER_FILES) 601all: emacs${EXEEXT} $(OTHER_FILES)
646 602
@@ -682,6 +638,8 @@ ${libsrc}make-docfile${EXEEXT}:
682buildobj.h: Makefile 638buildobj.h: Makefile
683 echo "#define BUILDOBJ \"${obj} ${otherobj} " "\"" > buildobj.h 639 echo "#define BUILDOBJ \"${obj} ${otherobj} " "\"" > buildobj.h
684 640
641#define YMF_PASS_LDFLAGS(flags) @YMF_PASS_LDFLAGS@
642
685temacs${EXEEXT}: $(START_FILES) stamp-oldxmenu ${obj} ${otherobj} prefix-args${EXEEXT} 643temacs${EXEEXT}: $(START_FILES) stamp-oldxmenu ${obj} ${otherobj} prefix-args${EXEEXT}
686 $(LD) YMF_PASS_LDFLAGS ( ${TEMACS_LDFLAGS} \ 644 $(LD) YMF_PASS_LDFLAGS ( ${TEMACS_LDFLAGS} \
687 ${NS_IMPL_GNUSTEP_TEMACS_LDFLAGS} ) \ 645 ${NS_IMPL_GNUSTEP_TEMACS_LDFLAGS} ) \
diff --git a/src/m/ibms390x.h b/src/m/ibms390x.h
index fda3007cb74..d6aa0c713c6 100644
--- a/src/m/ibms390x.h
+++ b/src/m/ibms390x.h
@@ -62,8 +62,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
62/* On the 64 bit architecture, we can use 60 bits for addresses */ 62/* On the 64 bit architecture, we can use 60 bits for addresses */
63#define VALBITS 60 63#define VALBITS 60
64 64
65#define LINKER $(CC) -nostdlib
66
67/* Define XPNTR to avoid or'ing with DATA_SEG_BITS */ 65/* Define XPNTR to avoid or'ing with DATA_SEG_BITS */
68#define XPNTR(a) XUINT (a) 66#define XPNTR(a) XUINT (a)
69 67
diff --git a/src/m/macppc.h b/src/m/macppc.h
index b9dcf3bdc92..f348286030c 100644
--- a/src/m/macppc.h
+++ b/src/m/macppc.h
@@ -32,12 +32,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
32#define HAVE_TEXT_START 32#define HAVE_TEXT_START
33#endif 33#endif
34 34
35/* NAKAJI Hiroyuki <nakaji@tutrp.tut.ac.jp> says this is needed
36 For MkLinux/LinuxPPC. */
37#ifdef GNU_LINUX
38#define LINKER $(CC) -nostdlib
39#endif
40
41#ifdef _ARCH_PPC64 35#ifdef _ARCH_PPC64
42#ifndef _LP64 36#ifndef _LP64
43#define _LP64 37#define _LP64
diff --git a/src/s/aix4-2.h b/src/s/aix4-2.h
index 9963e5744bf..5212c432843 100644
--- a/src/s/aix4-2.h
+++ b/src/s/aix4-2.h
@@ -106,7 +106,5 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
106 106
107#define UNEXEC unexaix.o 107#define UNEXEC unexaix.o
108 108
109#define ORDINARY_LINK
110
111/* arch-tag: 38fe75ea-6aef-42bd-8449-bc34d921a562 109/* arch-tag: 38fe75ea-6aef-42bd-8449-bc34d921a562
112 (do not change this comment) */ 110 (do not change this comment) */
diff --git a/src/s/cygwin.h b/src/s/cygwin.h
index e2afb7ddc44..b6d0c7c88ff 100644
--- a/src/s/cygwin.h
+++ b/src/s/cygwin.h
@@ -1,7 +1,7 @@
1/* System description header file for Cygwin. 1/* System description header file for Cygwin.
2 2
3Copyright (C) 1985, 1986, 1992, 1999, 2002, 2003, 2004, 2005, 2006, 3Copyright (C) 1985, 1986, 1992, 1999, 2002, 2003, 2004, 2005, 2006,
4 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 4 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
5 5
6This file is part of GNU Emacs. 6This file is part of GNU Emacs.
7 7
@@ -19,7 +19,7 @@ You should have received a copy of the GNU General Public License
19along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ 19along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
20 20
21/* SYSTEM_TYPE should indicate the kind of system you are using. 21/* SYSTEM_TYPE should indicate the kind of system you are using.
22 It sets the Lisp variable system-type. */ 22 It sets the Lisp variable system-type. */
23#define SYSTEM_TYPE "cygwin" 23#define SYSTEM_TYPE "cygwin"
24 24
25/* Emacs can read input using SIGIO and buffering characters itself, 25/* Emacs can read input using SIGIO and buffering characters itself,
@@ -94,7 +94,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
94#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_p - (FILE)->_bf._base) 94#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_p - (FILE)->_bf._base)
95#define SYSV_SYSTEM_DIR 1 95#define SYSV_SYSTEM_DIR 1
96#define UNEXEC unexcw.o 96#define UNEXEC unexcw.o
97#define LINKER $(CC)
98 97
99#define HAVE_SOCKETS 98#define HAVE_SOCKETS
100 99
diff --git a/src/s/darwin.h b/src/s/darwin.h
index 76c0054cd3f..a30360576a8 100644
--- a/src/s/darwin.h
+++ b/src/s/darwin.h
@@ -147,9 +147,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
147#undef HAVE_POSIX_MEMALIGN 147#undef HAVE_POSIX_MEMALIGN
148#endif 148#endif
149 149
150/* Link this program just by running cc. */
151#define ORDINARY_LINK
152
153/* Define the following so emacs symbols will not conflict with those 150/* Define the following so emacs symbols will not conflict with those
154 in the System framework. Otherwise -prebind will not work. */ 151 in the System framework. Otherwise -prebind will not work. */
155 152
diff --git a/src/s/gnu.h b/src/s/gnu.h
index cb4c4a9d807..4567f4e9f4f 100644
--- a/src/s/gnu.h
+++ b/src/s/gnu.h
@@ -29,8 +29,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
29 29
30#define SIGNALS_VIA_CHARACTERS 30#define SIGNALS_VIA_CHARACTERS
31 31
32/* GNU needs its own crt0, and libc defines data_start. */ 32/* libc defines data_start. */
33#define ORDINARY_LINK
34#define DATA_START ({ extern int data_start; (char *) &data_start; }) 33#define DATA_START ({ extern int data_start; (char *) &data_start; })
35 34
36/* Some losing code fails to include this and then assumes 35/* Some losing code fails to include this and then assumes
diff --git a/src/s/netbsd.h b/src/s/netbsd.h
index 4874ec9af56..af8fd00a6bd 100644
--- a/src/s/netbsd.h
+++ b/src/s/netbsd.h
@@ -26,12 +26,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
26 26
27#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_p - (FILE)->_bf._base) 27#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_p - (FILE)->_bf._base)
28 28
29/* On post 1.3 releases of NetBSD, gcc -nostdlib also clears
30 the library search parth, i.e. it won't search /usr/lib
31 for libc and friends. Using -nostartfiles instead avoids
32 this problem, and will also work on earlier NetBSD releases. */
33#define LINKER $(CC) -nostartfiles
34
35#define DEFAULT_SOUND_DEVICE "/dev/audio" 29#define DEFAULT_SOUND_DEVICE "/dev/audio"
36 30
37/* Greg A. Woods <woods@weird.com> says we must include signal.h 31/* Greg A. Woods <woods@weird.com> says we must include signal.h
diff --git a/src/s/usg5-4.h b/src/s/usg5-4.h
index f870086368c..85499fb1124 100644
--- a/src/s/usg5-4.h
+++ b/src/s/usg5-4.h
@@ -69,8 +69,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
69/* On USG systems signal handlers return void. */ 69/* On USG systems signal handlers return void. */
70#define SIGTYPE void 70#define SIGTYPE void
71 71
72#define ORDINARY_LINK
73
74/* Undump with ELF. */ 72/* Undump with ELF. */
75#undef COFF 73#undef COFF
76 74