Subject: 24.0.50; get rid of "unix" pre-defined macro when preprocessing Makefile

From: Miles Bader <[email-masked]>
Date: Mon, 12 Apr 2010 13:32:55 +0900

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