* 24.0.50; get rid of "unix" pre-defined macro when preprocessing Makefile
@ 2010-04-12 4:32 Miles Bader
2010-04-12 14:00 ` Chong Yidong
2010-04-12 14:00 ` bug#5934: " Chong Yidong
0 siblings, 2 replies; 3+ messages in thread
From: Miles Bader @ 2010-04-12 4:32 UTC (permalink / raw)
To: bug-gnu-emacs; +Cc: emacs-devel
Emacs uses the C preprocessor to process src/Makefile.in, and the CPP on
many systems defines the token "unix" (to be "1") for historical
reasons.
This has bad results if some of the Makefile contents include that
token; in particular, on my system, the definition of ALL_CFLAGS
contains " -I/usr/include/gio-unix-2.0/", and due to the bogus
predefined unix macro, this ends up as something that's not even legal
compiler command-line syntax.
Luckily, the "unix" macro isn't actually used by Makefile
preprocessing, so it's simple enough to add that to the list of things
which the Emacs configure script explicitly undefines when doing
Makefile preprocessing.
The following patch does this:
diff --git a/configure.in b/configure.in
index 515b779..a66f27e 100644
--- a/configure.in
+++ b/configure.in
@@ -3132,7 +3132,7 @@ test "${exec_prefix}" != NONE &&
# the C preprocessor to some helpful value like 1, or maybe the empty
# string. Needless to say consequent macro substitutions are less
# than conducive to the makefile finding the correct directory.
-[cpp_undefs="`echo $srcdir $configuration $canonical |
+[cpp_undefs="`echo $srcdir $configuration $canonical unix |
sed -e 's/[^a-zA-Z0-9_]/ /g' -e 's/^/ /' -e 's/ *$//' \
-e 's/ */ -U/g' -e 's/-U[0-9][^ ]*//g'`"]
Thanks,
-Miles
In GNU Emacs 24.0.50.12 (x86_64-unknown-linux-gnu, GTK+ Version 2.20.0)
of 2010-04-12 on dhlpc061
Windowing system distributor `The X.Org Foundation', version 11.0.10706000
Important settings:
value of $LC_ALL: nil
value of $LC_COLLATE: nil
value of $LC_CTYPE: nil
value of $LC_MESSAGES: nil
value of $LC_MONETARY: nil
value of $LC_NUMERIC: nil
value of $LC_TIME: nil
value of $LANG: ja_JP.UTF-8
value of $XMODIFIERS: @im=SCIM
locale-coding-system: utf-8-unix
default enable-multibyte-characters: t
Major mode: Shell-script
Minor modes in effect:
show-paren-mode: t
recentf-mode: t
rcirc-track-minor-mode: t
minibuffer-electric-default-mode: t
display-time-mode: t
desktop-save-mode: t
tooltip-mode: t
mouse-wheel-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
auto-encryption-mode: t
auto-compression-mode: t
temp-buffer-resize-mode: t
line-number-mode: t
transient-mark-mode: t
Recent input:
C-e C-a <down-mouse-4> <mouse-4> <double-down-mouse-4>
<double-mouse-4> <triple-down-mouse-4> <triple-mouse-4>
<triple-down-mouse-4> <triple-mouse-4> C-f C-f C-f
C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f
C-f C-f C-f C-f C-f C-f C-f C-f C-f <down-mouse-5>
<mouse-5> <double-down-mouse-5> <double-mouse-5> C-x
k <return> C-x C-g = n i SPC n SPC n q K g g C-x C-v
$ l s e C-g C-x C-v $ l s e / m s a t e r <escape>
h m a s t e r / M a k e SPC <escape> h <escape> h C-y
<escape> h c o n f i g u r e . i n <return> C-s c p
p C-s C-s C-s C-s <escape> > C-r m a k e f i l e .
c C-a C-q C-q C-q C-q C-q C-q C-q C-q C-q C-q C-q C-q
C-r c p p _ u d n e f s <backspace> <backspace> <backspace>
<backspace> <backspace> n d e f s C-r C-e C-b u n i
x SPC C-x C-s C-x C-v M a k <escape> b s r c / C-e
<tab> c <return> C-x C-x C-r C-a C-x C-v M-p <escape>
h <backspace> SPC SPC <backspace> . i n SPC C-g C-x
k <return> C-x C-v $ l b e / m a s t e r / <return>
C-x C-v s r c / M a SPC SPC . c <return> C-s C-g C-x
C-v M a SPC C-g C-s u n d e f C-s C-s C-s C-s C-s C-s
C-a C-s - U C-s C-a C-x C-v M-n <backspace> <backspace>
<return> C-s C-s C-s C-x C-v M-h c o n f SPC . SPC
<return> C-s C-s C-a <escape> x r e p o r t - e m SPC
<return>
Recent messages:
Mark saved where search started
x*DING*
Mark saved where search started
Note: file is write protected
x*DING*
Setting up indent for shell type bash
setting up indent stuff
Indentation variables are now local.
Indentation setup for shell type bash
Mark saved where search started
Load-path shadows:
/home/soft1/miles/.emacs.d/elpa/lua-mode-20070608/lua-mode hides /usr/local/share/emacs/site-lisp/lua-mode
/usr/share/emacs22/site-lisp/dictionaries-common/ispell hides /usr/local/share/emacs/24.0.50/lisp/textmodes/ispell
/usr/share/emacs22/site-lisp/dictionaries-common/flyspell hides /usr/local/share/emacs/24.0.50/lisp/textmodes/flyspell
~/src/elisp/timer hides /usr/local/share/emacs/24.0.50/lisp/emacs-lisp/timer
Features:
(shadow warnings emacsbug help-mode view multi-isearch autoconf
autoconf-mode image-mode compface gnus-fun flow-fill pp sort gnus-cite
smiley ansi-color mail-extr gnus-agent gnus-srvr nnvirtual gnus-async
gnus-bcklg gnus-score score-mode gnus-dup qp gnus-ml disp-table
gnus-topic gnus-nocem parse-time timezone gnus-cache pop3 byte-opt
bytecomp byte-compile nnml nndraft nnmh copyright auth-source netrc nntp
spam spam-stat gnus-uu yenc gnus-msg gnus-art mm-uu mml2015 epg-config
mm-view smime password-cache dig mailcap gnus-sum nnoo gnus-group
gnus-undo nnmail mail-source format-spec gnus-start gnus-spec gnus-int
gnus-range gnus-win yow cookie1 info nxml-uchnm rng-xsd xsd-regexp
rng-cmpct rng-nxml rng-valid rng-loc rng-uri rng-parse nxml-parse
rng-match rng-dt rng-util rng-pttrn nxml-ns nxml-mode nxml-outln
nxml-rap nxml-util nxml-glyph nxml-enc xmltok sh-script executable
vc-arch face-remap vc-git dired make-mode vc-mcvs vc-cvs flyspell ispell
cc-mode cc-fonts cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars
cc-defs lua-mode-autoloads xml-rpc-autoloads package reporter server
edmacro kmacro jka-compr uniquify paren recentf tree-widget rcirc
time-date ring minibuf-eldef gnus gnus-ems nnheader gnus-util wid-edit
time desktop cus-start cus-load advice help-fns advice-preload dabbrev
easy-mmode derived message sendmail regexp-opt rfc822 mml easymenu
mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045
ietf-drums mm-util mail-prsvr mailabbrev mail-utils gmm-utils mailheader
japan-util tooltip ediff-hook vc-hooks lisp-float-type mwheel x-win
x-dnd font-setting tool-bar dnd fontset image fringe lisp-mode register
page menu-bar rfn-eshadow timer select scroll-bar mldrag mouse jit-lock
font-lock syntax facemenu font-core frame cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew
greek romanian slovak czech european ethiopic indian cyrillic chinese
case-table epa-hook jka-cmpr-hook help simple abbrev loaddefs button
minibuffer faces cus-face files text-properties overlay md5 base64
format env code-pages mule custom widget hashtable-print-readable
backquote make-network-process dbusbind font-render-setting gtk
x-toolkit x multi-tty emacs)
--
What the fuck do white people have to be blue about!? Banana Republic ran
out of Khakis? The Espresso Machine is jammed? Hootie and The Blowfish
are breaking up??! Shit, white people oughtta understand, their job is to
GIVE people the blues, not to get them! -- George Carlin
^ permalink raw reply related [flat|nested] 3+ messages in thread
* bug#5934: 24.0.50; get rid of "unix" pre-defined macro when preprocessing Makefile
2010-04-12 4:32 24.0.50; get rid of "unix" pre-defined macro when preprocessing Makefile Miles Bader
2010-04-12 14:00 ` Chong Yidong
@ 2010-04-12 14:00 ` Chong Yidong
1 sibling, 0 replies; 3+ messages in thread
From: Chong Yidong @ 2010-04-12 14:00 UTC (permalink / raw)
To: Miles Bader; +Cc: 5934, emacs-devel
Miles Bader <miles.bader.fz@renesas.com> writes:
> Emacs uses the C preprocessor to process src/Makefile.in, and the CPP on
> many systems defines the token "unix" (to be "1") for historical
> reasons.
>
> This has bad results if some of the Makefile contents include that
> token; in particular, on my system, the definition of ALL_CFLAGS
> contains " -I/usr/include/gio-unix-2.0/", and due to the bogus
> predefined unix macro, this ends up as something that's not even legal
> compiler command-line syntax.
>
> Luckily, the "unix" macro isn't actually used by Makefile
> preprocessing, so it's simple enough to add that to the list of things
> which the Emacs configure script explicitly undefines when doing
> Makefile preprocessing.
>
> The following patch does this:
Looks good, could you check it into the trunk?
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: 24.0.50; get rid of "unix" pre-defined macro when preprocessing Makefile
2010-04-12 4:32 24.0.50; get rid of "unix" pre-defined macro when preprocessing Makefile Miles Bader
@ 2010-04-12 14:00 ` Chong Yidong
2010-04-12 14:00 ` bug#5934: " Chong Yidong
1 sibling, 0 replies; 3+ messages in thread
From: Chong Yidong @ 2010-04-12 14:00 UTC (permalink / raw)
To: Miles Bader; +Cc: 5934, emacs-devel
Miles Bader <miles.bader.fz@renesas.com> writes:
> Emacs uses the C preprocessor to process src/Makefile.in, and the CPP on
> many systems defines the token "unix" (to be "1") for historical
> reasons.
>
> This has bad results if some of the Makefile contents include that
> token; in particular, on my system, the definition of ALL_CFLAGS
> contains " -I/usr/include/gio-unix-2.0/", and due to the bogus
> predefined unix macro, this ends up as something that's not even legal
> compiler command-line syntax.
>
> Luckily, the "unix" macro isn't actually used by Makefile
> preprocessing, so it's simple enough to add that to the list of things
> which the Emacs configure script explicitly undefines when doing
> Makefile preprocessing.
>
> The following patch does this:
Looks good, could you check it into the trunk?
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2010-04-12 14:00 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-04-12 4:32 24.0.50; get rid of "unix" pre-defined macro when preprocessing Makefile Miles Bader
2010-04-12 14:00 ` Chong Yidong
2010-04-12 14:00 ` bug#5934: " Chong Yidong
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.