diff options
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 10 | ||||
-rw-r--r-- | ld/config.in | 7 | ||||
-rwxr-xr-x | ld/configure | 7 | ||||
-rw-r--r-- | ld/configure.in | 9 | ||||
-rw-r--r-- | ld/sysdep.h | 4 |
5 files changed, 35 insertions, 2 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 0cead2b..bf18bbf 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,13 @@ +2012-05-17 Daniel Richard G. <skunk@iskunk.org> + Nick Clifton <nickc@redhat.com> + + PR 14072 + * configure.in: Add check that sysdep.h has been included before + any system header files. + * configure: Regenerate. + * config.in: Regenerate. + * sysdep.h: Generate an error if included before config.h. + 2012-05-16 Sergio Durigan Junior <sergiodj@redhat.com> * emultempl/m68hc1xelf.em (hook_in_stub): Pass proper `bfd' diff --git a/ld/config.in b/ld/config.in index bb4f5fa..5fbc4a3 100644 --- a/ld/config.in +++ b/ld/config.in @@ -1,5 +1,12 @@ /* config.in. Generated from configure.in by autoheader. */ +/* Check that config.h is #included before system headers + (this works only for glibc, but that should be enough). */ +#if defined(__GLIBC__) && !defined(__CONFIG_H__) +# error config.h must be #included before system headers +#endif +#define __CONFIG_H__ 1 + /* Define to 1 if translation of program messages to the user's native language is requested. */ #undef ENABLE_NLS diff --git a/ld/configure b/ld/configure index 85e78ef..f4e4bb6 100755 --- a/ld/configure +++ b/ld/configure @@ -4750,6 +4750,9 @@ $as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h ac_config_headers="$ac_config_headers config.h:config.in" +# PR 14072 + + if test -z "$target" ; then as_fn_error "Unrecognized target system type; please check config.sub." "$LINENO" 5 fi @@ -12174,7 +12177,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12177 "configure" +#line 12180 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -12280,7 +12283,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12283 "configure" +#line 12286 "configure" #include "confdefs.h" #if HAVE_DLFCN_H diff --git a/ld/configure.in b/ld/configure.in index 160a060..b844927 100644 --- a/ld/configure.in +++ b/ld/configure.in @@ -124,6 +124,15 @@ AM_LC_MESSAGES AC_CONFIG_HEADERS([config.h:config.in]) +# PR 14072 +AH_VERBATIM([00_CONFIG_H_CHECK], +[/* Check that config.h is #included before system headers + (this works only for glibc, but that should be enough). */ +#if defined(__GLIBC__) && !defined(__CONFIG_H__) +# error config.h must be #included before system headers +#endif +#define __CONFIG_H__ 1]) + if test -z "$target" ; then AC_MSG_ERROR(Unrecognized target system type; please check config.sub.) fi diff --git a/ld/sysdep.h b/ld/sysdep.h index eadee88..d3495fc 100644 --- a/ld/sysdep.h +++ b/ld/sysdep.h @@ -22,6 +22,10 @@ #ifndef LD_SYSDEP_H #define LD_SYSDEP_H +#ifdef PACKAGE +#error sysdep.h must be included in lieu of config.h +#endif + #include "config.h" #include <stdio.h> |