diff options
author | Ludovic Courtès <ludo@gnu.org> | 2014-03-12 14:35:07 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2014-03-12 14:35:07 +0100 |
commit | 8cb0d6d7fa9aaac316c29a64c541336b51b6f93d (patch) | |
tree | cff10ce7d5815336a31ae67762c48c0d0cfd9c0c | |
parent | da7e43a6e0dadb2f96e6e33163bb4d94715f7498 (diff) | |
download | guile-8cb0d6d7fa9aaac316c29a64c541336b51b6f93d.tar.gz |
build: Don't include <config.h> in native programs when cross-compiling.
* libguile/Makefile.am (gen-scmconfig.$(OBJEXT)): When cross-compiling,
pass -DCROSS_COMPILING=1.
(c-tokenize.$(OBJEXT)): Likewise.
* libguile/c-tokenize.lex (%top): Include <config.h> only when
CROSS_COMPILING is undefined.
* libguile/gen-scmconfig.c: Likewise.
-rw-r--r-- | libguile/Makefile.am | 24 | ||||
-rw-r--r-- | libguile/c-tokenize.lex | 9 | ||||
-rw-r--r-- | libguile/gen-scmconfig.c | 8 |
3 files changed, 25 insertions, 16 deletions
diff --git a/libguile/Makefile.am b/libguile/Makefile.am index 6a631d89f..9be6d0fda 100644 --- a/libguile/Makefile.am +++ b/libguile/Makefile.am @@ -60,12 +60,13 @@ gen_scmconfig_SOURCES = gen-scmconfig.c ## the generated config.h and gen-scmconfig.h. Nothing else from Guile ## is included by this code generator. gen-scmconfig.$(OBJEXT): gen-scmconfig.c - $(AM_V_GEN) \ - if [ "$(cross_compiling)" = "yes" ]; then \ - $(CC_FOR_BUILD) $(DEFS) $(DEFAULT_INCLUDES) -I$(top_builddir) \ - -c -o $@ $<; \ - else \ - $(COMPILE) -c -o $@ $<; \ + $(AM_V_GEN) \ + if [ "$(cross_compiling)" = "yes" ]; then \ + $(CC_FOR_BUILD) -DCROSS_COMPILING=1 $(DEFS) \ + $(DEFAULT_INCLUDES) -I$(top_builddir) \ + -c -o "$@" "$<"; \ + else \ + $(COMPILE) -c -o "$@" "$<"; \ fi ## Override default rule; this should run on BUILD host. @@ -92,11 +93,12 @@ guile_filter_doc_snarfage_SOURCES = c-tokenize.c ## Override default rule; this should be compiled for BUILD host. ## For some reason, OBJEXT does not include the dot c-tokenize.$(OBJEXT): c-tokenize.c - $(AM_V_GEN) \ - if [ "$(cross_compiling)" = "yes" ]; then \ - $(CC_FOR_BUILD) -I$(top_builddir) -c -o $@ $<; \ - else \ - $(COMPILE) -c -o $@ $<; \ + $(AM_V_GEN) \ + if [ "$(cross_compiling)" = "yes" ]; then \ + $(CC_FOR_BUILD) -DCROSS_COMPILING=1 -I$(top_builddir) \ + -c -o "$@" "$<"; \ + else \ + $(COMPILE) -c -o "$@" "$<"; \ fi ## Override default rule; this should run on BUILD host. diff --git a/libguile/c-tokenize.lex b/libguile/c-tokenize.lex index a64b61da4..03fe9898c 100644 --- a/libguile/c-tokenize.lex +++ b/libguile/c-tokenize.lex @@ -1,7 +1,12 @@ %top{ /* Include <config.h> before anything else because Gnulib headers such - as <stdio.h> rely on it. */ -#include <config.h> + as <stdio.h> rely on it. + + However, when cross-compiling, don't include <config.h> because it + contains information about the host, not about the build. */ +#ifndef CROSS_COMPILING +# include <config.h> +#endif } %option noyywrap diff --git a/libguile/gen-scmconfig.c b/libguile/gen-scmconfig.c index 2f6fa6e6a..3c8be4f8e 100644 --- a/libguile/gen-scmconfig.c +++ b/libguile/gen-scmconfig.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2013 Free Software Foundation, Inc. +/* Copyright (C) 2003-2014 Free Software Foundation, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License @@ -132,8 +132,10 @@ **********************************************************************/ -#ifdef HAVE_CONFIG_H -# include <config.h> +/* Don't include <config.h> when cross-compiling because it contains + information about the host, not about the build machine. */ +#ifndef CROSS_COMPILING +# include <config.h> #endif #include <libguile/gen-scmconfig.h> |