all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Paul Eggert <eggert@cs.ucla.edu>
To: Andreas Schwab <schwab@linux-m68k.org>
Cc: Christoph Scholtes <cschol2112@googlemail.com>,
	8675@debbugs.gnu.org, Bug-gnulib <bug-gnulib@gnu.org>
Subject: bug#8675: error: token "@" is not valid in preprocessor expressions
Date: Wed, 18 May 2011 12:55:13 -0700	[thread overview]
Message-ID: <4DD42421.6090906__3761.14118048481$1305748577$gmane$org@cs.ucla.edu> (raw)
In-Reply-To: <m3pqngp4hl.fsf@linux-m68k.org>

[Adding bug-gnulib to this thread.  For bug-gnulib readers, the scenario is
 in Emacs a "bzr update; make" failed with:

  ./unistd.h:1186:5: error: token "@" is not valid in preprocessor expressions

 because unistd.h was built with the old Makefile.
 Full thread at <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8675#31>.
]

On 05/18/11 05:39, Andreas Schwab wrote:
> If that does not work, then proper dependencies are missing.

I don't see how adding a dependency would fix this problem.  In this
case, lib/Makefile in turn depended on 'configure', 'configure.in',
'm4/longlong.m4', etc., etc., and one of these files got updated, so
lib/Makefile was regenerated; but as I understand it, the 'make' that was
(still) running was based on the out-of-date lib/Makefile, and it
generated the a bad lib/unistd.h.

Adding a dependency "unistd.h: Makefile" wouldn't fix this problem.

This sort of problem is not due to gnulib per se; it's inherent to any
project that uses makefiles.  In general, if a patch modifies a
makefile, or anything the makefile depends on, then you must
regenerate everything from scratch with a fresh 'make' invocation.

That being said, I've run into Christoph's problem myself more than
once, and it's a hassle, and it'd be nice to address it somehow.  How
about this idea?  I expect it would have worked around this problem.
Currently lib/Makefile contains something like this:

	unistd.h: <dependencies>
		<big-hairy-command>

Suppose we change this rule to look like this:

	unistd.h: Makefile <dependencies>
		case ' $? ,$(USING_NEW_MAKEFILE)' in \
		  *' Makefile '*,) \
		    exec $(MAKE) $(AM_MAKEFLAGS) USING_NEW_MAKEFILE=yes $@;; \
		esac; \
		<big-hairy-command>

This would be a gnulib change, so I'll CC: this to bug-gnulib.
A similar pattern would apply to every module that generates
a .h file with a big hairy command that uses 'make' variables.





  reply	other threads:[~2011-05-18 19:55 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-16  5:07 bug#8675: lisp_string_width and strings wider than INT_MAX Paul Eggert
2011-05-16  5:30 ` Eli Zaretskii
2011-05-16  5:33   ` Paul Eggert
2011-05-16  7:57     ` Eli Zaretskii
2011-05-16 16:37       ` Paul Eggert
2011-05-16 16:48       ` Stefan Monnier
2011-05-17  9:52         ` Eli Zaretskii
2011-05-17 10:30         ` merge-commits policy (was: bug#8675: lisp_string_width and strings wider than INT_MAX) Eli Zaretskii
2011-05-17 13:42           ` merge-commits policy Stefan Monnier
2011-05-17 17:57             ` Eli Zaretskii
2011-05-17 19:50               ` Stefan Monnier
2011-05-18  1:33 ` bug#8675: committed fix into trunk Paul Eggert
2011-05-18  2:26   ` Christoph Scholtes
2011-05-18  2:48     ` Paul Eggert
2011-05-18  3:19       ` Christoph Scholtes
2011-05-18 12:39       ` Andreas Schwab
2011-05-18 19:55         ` Paul Eggert [this message]
     [not found]         ` <4DD42421.6090906@cs.ucla.edu>
2011-05-18 20:35           ` bug#8675: error: token "@" is not valid in preprocessor expressions Andreas Schwab
     [not found]           ` <m262p7u4ph.fsf@igel.home>
2011-05-18 22:59             ` Paul Eggert
     [not found]             ` <4DD44F42.1050405@cs.ucla.edu>
2011-05-19  0:27               ` Bruno Haible
     [not found]               ` <201105190227.26215.bruno@clisp.org>
2011-05-19  1:47                 ` Christoph Scholtes
2011-05-19  7:39                   ` Paul Eggert
2011-05-18  6:54   ` bug#8664: committed fix into trunk Eli Zaretskii
  -- strict thread matches above, loose matches on Subject: below --
2011-05-12 19:58 bug#8664: * keyboard.c (make_lispy_event): Fix problem in integer overflow Paul Eggert
2011-05-12 20:26 ` bug#8664: Being more-systematic about user-interface timestamps Paul Eggert
2011-05-13  8:53   ` Eli Zaretskii
2011-05-14  9:10     ` Paul Eggert
2011-05-14  9:41       ` Eli Zaretskii
2011-05-14 19:09         ` Paul Eggert
2011-05-14 20:47           ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='4DD42421.6090906__3761.14118048481$1305748577$gmane$org@cs.ucla.edu' \
    --to=eggert@cs.ucla.edu \
    --cc=8675@debbugs.gnu.org \
    --cc=bug-gnulib@gnu.org \
    --cc=cschol2112@googlemail.com \
    --cc=schwab@linux-m68k.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.