diff options
| author | Glenn Morris | 2010-05-18 19:42:04 -0700 |
|---|---|---|
| committer | Glenn Morris | 2010-05-18 19:42:04 -0700 |
| commit | c1d0dcfd127b3f9742c31f794e2a6d886048bb1e (patch) | |
| tree | 1d070669e258b1bc4ea5507fb58149ca1d6ee685 /src | |
| parent | 7f34aec377794208fb4aecda44c49ff9f11e7d86 (diff) | |
| download | emacs-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/ChangeLog | 14 | ||||
| -rw-r--r-- | src/Makefile.in | 54 | ||||
| -rw-r--r-- | src/m/ibms390x.h | 2 | ||||
| -rw-r--r-- | src/m/macppc.h | 6 | ||||
| -rw-r--r-- | src/s/aix4-2.h | 2 | ||||
| -rw-r--r-- | src/s/cygwin.h | 5 | ||||
| -rw-r--r-- | src/s/darwin.h | 3 | ||||
| -rw-r--r-- | src/s/gnu.h | 3 | ||||
| -rw-r--r-- | src/s/netbsd.h | 6 | ||||
| -rw-r--r-- | src/s/usg5-4.h | 2 |
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 @@ | |||
| 1 | 2010-05-19 Glenn Morris <rgm@gnu.org> | 1 | 2010-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 | ||
| 5 | 2010-05-18 Chong Yidong <cyd@stupidchicken.com> | 19 | 2010-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. |
| 125 | LIB_GCC=@LIB_GCC@ | 125 | LIB_GCC=@LIB_GCC@ |
| 126 | 126 | ||
| 127 | LD=@LINKER@ | ||
| 128 | |||
| 127 | ## May use $CRT_DIR. | 129 | ## May use $CRT_DIR. |
| 128 | LIB_STANDARD=@LIB_STANDARD@ | 130 | LIB_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 | ||
| 340 | LD = $(CC) | ||
| 341 | |||
| 342 | #else /* not ORDINARY_LINK */ | ||
| 343 | GNULIB_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 | ||
| 365 | LD=LINKER | ||
| 366 | #else /* not LINKER */ | ||
| 367 | LD=ld | ||
| 368 | #endif /* not LINKER */ | ||
| 369 | |||
| 370 | #endif /* not ORDINARY_LINK */ | ||
| 371 | |||
| 372 | |||
| 373 | #ifdef NS_IMPL_GNUSTEP | ||
| 374 | LD=$(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. */ |
| 380 | obj= dispnew.o frame.o scroll.o xdisp.o menu.o $(XMENU_OBJ) window.o \ | 336 | obj= 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 | ||
| 639 | LIBES = $(LOADLIBES) $(LIBS) $(LIBX_BASE) $(LIBX_OTHER) $(LIBSOUND) \ | 595 | LIBES = $(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 | ||
| 645 | all: emacs${EXEEXT} $(OTHER_FILES) | 601 | all: emacs${EXEEXT} $(OTHER_FILES) |
| 646 | 602 | ||
| @@ -682,6 +638,8 @@ ${libsrc}make-docfile${EXEEXT}: | |||
| 682 | buildobj.h: Makefile | 638 | buildobj.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 | |||
| 685 | temacs${EXEEXT}: $(START_FILES) stamp-oldxmenu ${obj} ${otherobj} prefix-args${EXEEXT} | 643 | temacs${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 | ||
| 3 | Copyright (C) 1985, 1986, 1992, 1999, 2002, 2003, 2004, 2005, 2006, | 3 | Copyright (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 | ||
| 6 | This file is part of GNU Emacs. | 6 | This file is part of GNU Emacs. |
| 7 | 7 | ||
| @@ -19,7 +19,7 @@ You should have received a copy of the GNU General Public License | |||
| 19 | along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | 19 | along 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 | ||