On 12-08-16 15:00 , Diego Novillo wrote:
On 12-08-16 14:46 , Joseph S. Myers wrote:
On Thu, 16 Aug 2012, Diego Novillo wrote:

diff --git a/gcc/intl.h b/gcc/intl.h
index c4db354..745fefd 100644
--- a/gcc/intl.h
+++ b/gcc/intl.h
@@ -27,8 +27,8 @@
  # define setlocale(category, locale) (locale)
  #endif

-#ifdef ENABLE_NLS
  #include <libintl.h>
+#ifdef ENABLE_NLS

I'm not sure it's safe to assume libintl.h exists on all hosts (e.g.
MinGW) unless ENABLE_NLS.  (If ENABLE_NLS, the intl/ directory will have
built that header if the host didn't have it.)

I wonder if we couldn't simply '#define _LIBINTL_H 1' in the #else
branch then.  Something like this (though it seems a bit hacky to me):

This is the patch I'm currently testing. I need someone with a very old toolchain (4.1 or earlier) to also give this a try (the original problem does not occur in g++ more recent than 4.1).


Thanks.  Diego.

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a8ff00d..8798b8f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
 2012-08-16   Diego Novillo  <dnovi...@google.com>

+       PR bootstrap/54281
+       * intl.h: Prevent libintl.h from being included when
+       ENABLE_NLS is not set.
+
+2012-08-16   Diego Novillo  <dnovi...@google.com>
+
        Revert

        PR bootstrap/54281
diff --git a/gcc/intl.h b/gcc/intl.h
index c4db354..e10e357 100644
--- a/gcc/intl.h
+++ b/gcc/intl.h
@@ -32,6 +32,11 @@
 extern void gcc_init_libintl (void);
 extern size_t gcc_gettext_width (const char *);
 #else
+/* Prevent libintl.h from being included, since we are truncating
+   some functions (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54281).  */
+# ifndef _LIBINTL_H
+# define _LIBINTL_H 1
+# endif
 /* Stubs.  */
 # undef textdomain
 # define textdomain(domain) (domain)

Reply via email to