PA HP-UX 11.23 64-bit configuration; HP-UX iconv bug

Joseph S. Myers joseph@codesourcery.com
Fri Mar 4 23:02:00 GMT 2005


These two patches address configuration problems with HP-UX on PA.

First, HP-UX iconv does not work with the linker -z option (fault on NULL 
pointer dereferences) which is the default on PA but not on IA64 (this 
inconsistency is a separate bug which I expect to address by making it the 
default on IA64 as well).  This bug has been reported to HP and should be 
fixed in a future release, but not necessarily for 11.23.

The only testcases in the GCC testsuites this bug affects are certain 
libstdc++ tests because other tests use character set names which HP-UX 
iconv doesn't know.  The tests only fail on 11.23 because prior releases 
don't have the ISO8859-1 alias.  For some reason they don't currently fail 
on 64-bit PA 11.23 although a simple testcase shows the iconv problem is 
still present there.

The first patch here XFAILs these tests on *-*-hpux11.23.  This target 
choice is because in the expectation that the bug will be fixed in future 
versions and that the IA64 configuration will be made consistent with the 
PA configuration so exposing the iconv problem there.  OK to commit to 
mainline and 4.0 branch?  (The testsuite output still gives WARNING for 
the tests failing to produce an executable, but no longer produces FAIL.)

Second, the configuration header pa/pa-hpux1111.h is for HP-UX 11.11 or 
later (not just exactly 11.11) on PA.  The configuration for 32-bit PA 
uses it properly on *-*-hpux11.[1-9]*.  The 64-bit configuration however 
only uses it for *-*-hpux11.11.  This patch fixes the 64-bit configuration 
to be consistent with the 32-bit configuration.  For some reason this 
consistency includes consistency of iconv-related testcase failures.

Bootstrapped on hppa64-hp-hpux11.23 with the only "regressions" being
that the expected failures discussed above and caused by an iconv bug
now appear on this target.  OK to commit to mainline and 4.0 branch?
(This is a regression in that there was no such inconsistency in 3.4
where there is no special header pa-hpux1111.h.)

-- 
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-03-04  Joseph S. Myers  <joseph@codesourcery.com>

	* testsuite/22_locale/collate/compare/wchar_t/2.cc,
	testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc,
	testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc,
	testsuite/22_locale/collate/hash/wchar_t/2.cc,
	testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc,
	testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc,
	testsuite/22_locale/collate/transform/wchar_t/2.cc,
	testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc,
	testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc:
	XFAIL on *-*-hpux11.23.

diff -rupN GCC.orig/libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/2.cc GCC/libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/2.cc
--- GCC.orig/libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/2.cc	2004-02-29 21:25:10.000000000 +0000
+++ GCC/libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/2.cc	2005-03-04 01:10:47.000000000 +0000
@@ -19,6 +19,7 @@
 // USA.
 
 // { dg-do run }
+// { dg-xfail-if "" { "*-*-hpux11.23" } { "*" } { "" } } */
 // { dg-options "-finput-charset=ISO8859-1" }
 // { dg-require-iconv "ISO8859-1" }
 
diff -rupN GCC.orig/libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc GCC/libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc
--- GCC.orig/libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc	2004-02-29 21:25:10.000000000 +0000
+++ GCC/libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc	2005-03-04 01:10:52.000000000 +0000
@@ -21,6 +21,7 @@
 // 22.2.4.1.1 collate members
 
 // { dg-do run }
+// { dg-xfail-if "" { "*-*-hpux11.23" } { "*" } { "" } } */
 // { dg-options "-finput-charset=ISO8859-1" }
 // { dg-require-iconv "ISO8859-1" }
 
diff -rupN GCC.orig/libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc GCC/libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc
--- GCC.orig/libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc	2004-02-29 21:25:10.000000000 +0000
+++ GCC/libstdc++-v3/testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc	2005-03-04 01:10:57.000000000 +0000
@@ -21,6 +21,7 @@
 // 22.2.4.1.1 collate members
 
 // { dg-do run }
+// { dg-xfail-if "" { "*-*-hpux11.23" } { "*" } { "" } } */
 // { dg-options "-finput-charset=ISO8859-1" }
 // { dg-require-iconv "ISO8859-1" }
 
diff -rupN GCC.orig/libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/2.cc GCC/libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/2.cc
--- GCC.orig/libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/2.cc	2004-02-29 21:25:10.000000000 +0000
+++ GCC/libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/2.cc	2005-03-04 01:11:06.000000000 +0000
@@ -21,6 +21,7 @@
 // 22.2.4.1.1 collate members
 
 // { dg-do run }
+// { dg-xfail-if "" { "*-*-hpux11.23" } { "*" } { "" } } */
 // { dg-options "-finput-charset=ISO8859-1" }
 // { dg-require-iconv "ISO8859-1" }
 
diff -rupN GCC.orig/libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc GCC/libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc
--- GCC.orig/libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc	2004-02-29 21:25:10.000000000 +0000
+++ GCC/libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc	2005-03-04 01:11:11.000000000 +0000
@@ -21,6 +21,7 @@
 // 22.2.4.1.1 collate members
 
 // { dg-do run }
+// { dg-xfail-if "" { "*-*-hpux11.23" } { "*" } { "" } } */
 // { dg-options "-finput-charset=ISO8859-1" }
 // { dg-require-iconv "ISO8859-1" }
 
diff -rupN GCC.orig/libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc GCC/libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc
--- GCC.orig/libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc	2004-02-29 21:25:10.000000000 +0000
+++ GCC/libstdc++-v3/testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc	2005-03-04 01:11:15.000000000 +0000
@@ -21,6 +21,7 @@
 // 22.2.4.1.1 collate members
 
 // { dg-do run }
+// { dg-xfail-if "" { "*-*-hpux11.23" } { "*" } { "" } } */
 // { dg-options "-finput-charset=ISO8859-1" }
 // { dg-require-iconv "ISO8859-1" }
 
diff -rupN GCC.orig/libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/2.cc GCC/libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/2.cc
--- GCC.orig/libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/2.cc	2004-02-29 21:25:10.000000000 +0000
+++ GCC/libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/2.cc	2005-03-04 01:11:22.000000000 +0000
@@ -21,6 +21,7 @@
 // 22.2.4.1.1 collate members
 
 // { dg-do run }
+// { dg-xfail-if "" { "*-*-hpux11.23" } { "*" } { "" } } */
 // { dg-options "-finput-charset=ISO8859-1" }
 // { dg-require-iconv "ISO8859-1" }
 
diff -rupN GCC.orig/libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc GCC/libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc
--- GCC.orig/libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc	2004-02-29 21:25:10.000000000 +0000
+++ GCC/libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc	2005-03-04 01:11:27.000000000 +0000
@@ -21,6 +21,7 @@
 // 22.2.4.1.1 collate members
 
 // { dg-do run }
+// { dg-xfail-if "" { "*-*-hpux11.23" } { "*" } { "" } } */
 // { dg-options "-finput-charset=ISO8859-1" }
 // { dg-require-iconv "ISO8859-1" }
 
diff -rupN GCC.orig/libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc GCC/libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc
--- GCC.orig/libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc	2004-02-29 21:25:10.000000000 +0000
+++ GCC/libstdc++-v3/testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc	2005-03-04 01:11:32.000000000 +0000
@@ -21,6 +21,7 @@
 // 22.2.4.1.1 collate members
 
 // { dg-do run }
+// { dg-xfail-if "" { "*-*-hpux11.23" } { "*" } { "" } } */
 // { dg-options "-finput-charset=ISO8859-1" }
 // { dg-require-iconv "ISO8859-1" }
 
2005-03-04  Joseph S. Myers  <joseph@codesourcery.com>

	* config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
	*-*-hpux11.[1-9]*, not just for *-*-hpux11.11.

diff -rupN GCC.orig/gcc/config.gcc GCC/gcc/config.gcc
--- GCC.orig/gcc/config.gcc	2005-03-01 13:23:26.000000000 +0000
+++ GCC/gcc/config.gcc	2005-03-02 02:26:53.000000000 +0000
@@ -857,7 +857,7 @@ hppa*64*-*-hpux11*)
 			 pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux11.h"
 	fi
 	case ${target} in
-	*-*-hpux11.11)
+	*-*-hpux11.[1-9]*)
 		tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
 		;;
 	*)



More information about the Gcc-patches mailing list