This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Patch to disable inappropriate predefines on hppa-hpux if flag_iso


In 4.0 but not before, various feature test macros are predefined on
hppa-hpux depending on flag_pa_unix (which defaults to 1998).  This
flag also causes an appropriate object file to be linked with to
select runtime behavior depending on the Unix standard followed.  It
is wrong to define these feature test macros unconditionally as they
cause the headers to make declarations not part of ISO C and users
writing strictly conforming applications for a given Unix or POSIX
standard will expect to define the feature test macros themselves to
appropriate values.  This patch disables the inappropriate predefines
if flag_iso.

Bootstrapped with no regressions on hppa2.0w-hp-hpux11.23 and
hppa64-hp-hpux11.23.  OK to commit to mainline and 4.0 branch?

-- 
Joseph S. Myers               http://www.srcf.ucam.org/~jsm28/gcc/
    jsm@polyomino.org.uk (personal mail)
    joseph@codesourcery.com (CodeSourcery mail)
    jsm28@gcc.gnu.org (Bugzilla assignments and CCs)

2005-05-07  Joseph S. Myers  <joseph@codesourcery.com>

	* config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Do not define
	inappropriate feature test macros if flag_iso.

diff -rupN GCC.orig/gcc/config/pa/pa-hpux11.h GCC/gcc/config/pa/pa-hpux11.h
--- GCC.orig/gcc/config/pa/pa-hpux11.h	2005-04-28 16:50:23.000000000 +0000
+++ GCC/gcc/config/pa/pa-hpux11.h	2005-05-06 03:33:05.000000000 +0000
@@ -66,7 +66,7 @@ Boston, MA 02111-1307, USA.  */
 	  }								\
 	if (!TARGET_64BIT)						\
 	  builtin_define ("_ILP32");					\
-	if (flag_pa_unix >= 1995)					\
+	if (flag_pa_unix >= 1995 && !flag_iso)				\
 	  {								\
 	    builtin_define ("_XOPEN_UNIX");				\
 	    builtin_define ("_XOPEN_SOURCE_EXTENDED");			\
@@ -75,8 +75,11 @@ Boston, MA 02111-1307, USA.  */
 	  {								\
 	    if (flag_pa_unix >= 1998)					\
 	      {								\
-		builtin_define ("_INCLUDE__STDC_A1_SOURCE");		\
-		builtin_define ("_INCLUDE_XOPEN_SOURCE_500");		\
+		if (flag_isoc94 || flag_isoc99 || c_dialect_cxx()	\
+		    || !flag_iso)					\
+		  builtin_define ("_INCLUDE__STDC_A1_SOURCE");		\
+		if (!flag_iso)						\
+		  builtin_define ("_INCLUDE_XOPEN_SOURCE_500");		\
 	      }								\
 	    else if (flag_isoc94 || flag_isoc99 || c_dialect_cxx ())	\
 	      warning (0, "-munix=98 option required for C89 "		\


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]