[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: don't process $(LDFLAGS) with prefix-args
From: |
Paul Jarc |
Subject: |
Re: don't process $(LDFLAGS) with prefix-args |
Date: |
Thu, 27 Mar 2003 15:38:29 -0500 |
User-agent: |
Gnus/5.090017 (Oort Gnus v0.17) Emacs/21.2 (gnu/linux) |
Richard Stallman <address@hidden> wrote:
> Earlier versions of Emacs had a bug where user-supplied $(LDFLAGS)
> would be processed by prefix-args when building temacs. The bug was
> fixed for 21.2 (or perhaps earlier), but it's back again in 21.3.
>
> Can you find the difference in 21.3 which brought back the bug? I
> don't see any change in Makefile.in between 21.2 and 21.3 that would
> relate to this at all.
The distributed Makefile.in's are similar enough, but somewhere in the
21.2 build process, Makefile.in is modified like so:
--- Makefile.in.2 2003-03-27 14:42:33.000000000 -0500
+++ emacs-21.2/src/Makefile.in 2003-03-27 14:57:21.000000000 -0500
@@ -495,7 +495,7 @@
#endif /* not ORDINARY_LINK */
ALL_LDFLAGS = LD_SWITCH_SYSTEM LD_SWITCH_SYSTEM_TEMACS LD_SWITCH_MACHINE \
- LD_SWITCH_MACHINE_TEMACS LD_SWITCH_SITE $(LDFLAGS)
+ LD_SWITCH_MACHINE_TEMACS LD_SWITCH_SITE
/* A macro which other sections of Makefile can redefine to munge the
flags before they're passed to LD. This is helpful if you have
@@ -868,7 +868,7 @@
#endif
temacs: MAKE_PARALLEL $(LOCALCPP) $(STARTFILES) stamp-oldxmenu ${obj}
${otherobj} OBJECTS_MACHINE prefix-args
- $(LD) YMF_PASS_LDFLAGS (${STARTFLAGS} ${ALL_LDFLAGS}) \
+ $(LD) YMF_PASS_LDFLAGS (${STARTFLAGS} ${ALL_LDFLAGS}) $(LDFLAGS) \
-o temacs ${STARTFILES} ${obj} ${otherobj} \
OBJECTS_MACHINE ${LIBES}
21.3 does not modify its Makefile.in during the build process.
> You might want to look at whether LINKER_WAS_SPECIFIED is defined in
> 21.2 and in 21.3. A change in that might affect it.
Where should I look for that?
> User-supplied $(LDFLAGS) is used with both $(CC) and, when building
> temacs, $(LD).
>
> I see it is used with $(CC) when compiling prefix-args.
> Anywhere else?
I tried building with raw linker flags in LDFLAGS, and I got
diagnostics about unrecognized options when building test-distrib,
make-docfile, profile, digest-doc, sorted-doc, movemail, cvtmail,
fakemail, yow, emacsserver, hexl, etags, ctags, emacsclient, b2m,
ebrowse, and prefix-args.
> Why do you use -Wl or -Xlinker args in it?
I need to supply rpath options so shared libraries will be found.
> Precisely which executables do you want those options for?
*I* need it for any executables that link to the jpeg, libpng,
libungif, ncurses, tiff, xfree86, or zlib libraries. But I imagine
other users might want to pass other flags that should take effect for
all executables, regardless of what they link to.
> This could be fixed by using prefix-args whenever we pass
> $(LDFLAGS) to $(CC), but not when we pass $(LDFLAGS) to ld; then the
> instructions would have to tell users to pass flags as they should
> appear to ld, instead of as they should appear to $(CC).
>
> As far as I can see, src/Makefile.in already does this, except in on
> case: when compiling prefix-args itself.
Yes, but the same user-supplied LDFLAGS is used for all
subdirectories, so the problem is not limited to src/Makefile.in.
paul