This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
3.0.3 PATCH: Properly fix stdio.h on Tru64 UNIX V5.1A
- From: Rainer Orth <ro at TechFak dot Uni-Bielefeld dot DE>
- To: gcc-patches at gcc dot gnu dot org
- Cc: Bruce Korb <bkorb at gnu dot org>
- Date: Mon, 26 Nov 2001 20:36:11 +0100 (MET)
- Subject: 3.0.3 PATCH: Properly fix stdio.h on Tru64 UNIX V5.1A
As reported in PR libf2c/4826 and mentioned both on several mailing lists
(like tru64-unix-managers) and in private mail, GCC 3.0.2 fails to
bootstrap on Tru64 UNIX V5.1A.
I've analyzed the failure based on a copy of the V5.1A stdio.h: compared to
V5.1, Compaq changed various prototypes to use __VA_LIST__ instead of
va_list/__va_list, and fixincludes didn't know about this and thus couldn't
properly fix those prototypes to use __gnuc_va_list instead. The patch
below fixes this and allows GCC 3.0.2 to bootstrap on that platform; not
having access to such a system myself, I cannot report testsuite results
yet (but hope to get them from one of the various reporters of this bug).
Ok for branch and mainline?
Rainer
-----------------------------------------------------------------------------
Rainer Orth, Faculty of Technology, Bielefeld University
Email: ro@TechFak.Uni-Bielefeld.DE
Wed Nov 21 18:58:37 2001 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* fixinc/inclhack.def (stdio_va_list): Handle __VA_LIST__ in Tru64
UNIX V5.1A stdio.h.
* fixinc/fixincl.x: Regenerate.
Fixes PR libf2c/4826.
Index: inclhack.def
===================================================================
RCS file: /cvs/gcc/gcc/gcc/fixinc/inclhack.def,v
retrieving revision 1.101.2.15
diff -u -p -r1.101.2.15 inclhack.def
--- inclhack.def 2001/09/13 02:38:12 1.101.2.15
+++ inclhack.def 2001/11/26 19:27:31
@@ -2223,7 +2223,8 @@ fix = {
/*
* Use __gnuc_va_list in arg types in place of va_list.
- * On 386BSD use __gnuc_va_list instead of _VA_LIST_. We're hoping the
+ * On 386BSD use __gnuc_va_list instead of _VA_LIST_. On Tru64 UNIX V5.1A
+ * use __gnuc_va_list instead of __VA_LIST__. We're hoping the
* trailing parentheses and semicolon save all other systems from this.
* Define __not_va_list__ (something harmless and unused)
* instead of va_list.
@@ -2232,6 +2233,7 @@ fix = {
sed = "s@ va_list @ __gnuc_va_list @\n"
"s@ va_list)@ __gnuc_va_list)@\n"
"s@ _VA_LIST_));@ __gnuc_va_list));@\n"
+ "s@ __VA_LIST__));@ __gnuc_va_list));@\n"
"s@ va_list@ __not_va_list__@\n"
"s@\\*va_list@*__not_va_list__@\n"
"s@ __va_list)@ __gnuc_va_list)@\n"