From b5457f146f83943eef8f5662f89e10bd52eec9bd Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Tue, 11 May 2010 20:44:36 -0700 Subject: [PATCH] Simplify linker-related logic in src/Makefile.in. * src/Makefile.in (YMF_PASS_LDFLAGS, LD, LINKER): Simplify the logic. (LINKER_WAS_SPECIFIED): Remove. --- src/ChangeLog | 3 +++ src/Makefile.in | 57 +++++++++++++++++++------------------------------ 2 files changed, 25 insertions(+), 35 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 7bf067e2427..16c20e188b4 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,8 @@ 2010-05-12 Glenn Morris + * Makefile.in (YMF_PASS_LDFLAGS, LD, LINKER): Simplify the logic. + (LINKER_WAS_SPECIFIED): Remove. + * 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]: diff --git a/src/Makefile.in b/src/Makefile.in index 9476254e48d..46d4e0c2878 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -1,7 +1,7 @@ # Makefile for GNU Emacs. # Copyright (C) 1985, 1987, 1988, 1993, 1994, 1995, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 -# Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +# Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -260,16 +260,22 @@ LIBX_BASE=$(LIBXMENU) LD_SWITCH_X_SITE LIBX_OTHER=@LIBX_OTHER@ #endif /* not HAVE_X_WINDOWS */ -#ifndef ORDINARY_LINK -GNULIB_VAR = $(LIB_GCC) -/* Fix linking if compiled with GCC. */ -#ifdef __GNUC__ +/* A macro which other sections of Makefile can redefine to munge the + flags before they are passed to LD. This is helpful if you have + redefined LD to something odd, like "gcc". + (The YMF prefix is a holdover from the old name "ymakefile".) */ +#define YMF_PASS_LDFLAGS(flags) flags -#ifdef LINKER -#define LINKER_WAS_SPECIFIED -#endif +#ifdef ORDINARY_LINK +LD = $(CC) + +#else /* not ORDINARY_LINK */ +GNULIB_VAR = $(LIB_GCC) + +/* Fix linking if compiled with GCC. */ +#if defined (__GNUC__) && ! defined (LINKER) /* Versions of GCC >= 2.0 put their library, libgcc.a, in obscure places that are difficult to figure out at make time. Fortunately, these same versions allow you to pass arbitrary flags on to the @@ -278,42 +284,23 @@ GNULIB_VAR = $(LIB_GCC) Well, it is not quite perfect. The "-nostdlib" keeps GCC from searching for libraries in its internal directories, so we have to ask GCC explicitly where to find libgcc.a. */ - -#ifndef LINKER #define LINKER $(CC) -nostdlib -#endif - -#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 - this with the shell''s ``for'' construct. - Note that some people do not have '.' in their paths, so we must - use ./prefix-args. */ +/* GCC passes any argument prefixed with -Xlinker directly to the linker. + See prefix-args.c for an explanation of why we do not do this with the + shell''s ``for'' construct. Note that sane people do not have '.' in + their paths, so we must use ./prefix-args. */ +#undef YMF_PASS_LDFLAGS #define YMF_PASS_LDFLAGS(flags) `./prefix-args -Xlinker flags` -#else -#define YMF_PASS_LDFLAGS(flags) flags -#endif +#endif /* defined (__GNUC__) && ! defined (LINKER) */ -#endif /* not ORDINARY_LINK */ - -#ifdef ORDINARY_LINK -LD = $(CC) -#else #ifdef LINKER LD=LINKER #else /* not LINKER */ LD=ld #endif /* not LINKER */ + #endif /* not ORDINARY_LINK */ -/* A macro which other sections of Makefile can redefine to munge the - flags before they are passed to LD. This is helpful if you have - redefined LD to something odd, like "gcc". - (The YMF prefix is a holdover from the old name "ymakefile".) - */ -#ifndef YMF_PASS_LDFLAGS -#define YMF_PASS_LDFLAGS(flags) flags -#endif #ifdef MSDOS #ifdef HAVE_X_WINDOWS -- 2.39.2