[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
strtok_r on AIX 7.1BETA
From: |
Bruno Haible |
Subject: |
strtok_r on AIX 7.1BETA |
Date: |
Fri, 30 Jul 2010 21:37:47 +0200 |
User-agent: |
KMail/1.9.9 |
The logs show that the autoconf test for strtok_r fails in an unexpected way:
checking whether strtok_r works... no
"conftest.c", line 745.2: 1506-766 (S) The universal character name "�" is not
in the allowable range for an identifier.
"conftest.c", line 745.5: 1506-766 (S) The universal character name "�" is not
in the allowable range for an identifier.
"conftest.c", line 745.8: 1506-766 (S) The universal character name "�" is not
in the allowable range for an identifier.
"conftest.c", line 745.11: 1506-766 (S) The universal character name "�" is not
in the allowable range for an identifier.
"conftest.c", line 745.14: 1506-766 (S) The universal character name "�" is not
in the allowable range for an identifier.
"conftest.c", line 745.18: 1506-766 (S) The universal character name "�" is not
in the allowable range for an identifier.
"conftest.c", line 745.5: 1506-277 (S) Syntax error: possible missing ';' or
','?
"conftest.c", line 745.2: 1506-045 (S) Undeclared identifier \u00c2\u00a0.
The referenced line in the test program is this:
char *save_ptr = (char *) 0xd0d0;
It looks like a compiler bug to me. I'm committing this tentative workaround:
2010-07-30 Bruno Haible <address@hidden>
strtok_r: Avoid triggering bug in AIX 7.1 xlc compiler.
* m4/strtok_r.m4 (gl_FUNC_STRTOK_R): Don't cast an invalid address to
a 'char *'.
Reported by Rainer Tammer.
--- m4/strtok_r.m4.orig Fri Jul 30 21:23:04 2010
+++ m4/strtok_r.m4 Fri Jul 30 12:51:05 2010
@@ -1,4 +1,4 @@
-# strtok_r.m4 serial 10
+# strtok_r.m4 serial 11
dnl Copyright (C) 2002-2004, 2006-2007, 2009-2010 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
@@ -30,8 +30,9 @@
#include <stdlib.h>
#include <string.h>
]],
- [[char delimiters[] = "xxxxxxxx";
- char *save_ptr = (char *) 0xd0d0;
+ [[static const char dummy[] = "\177\01a";
+ char delimiters[] = "xxxxxxxx";
+ char *save_ptr = (char *) dummy;
strtok_r (delimiters, "x", &save_ptr);
strtok_r (NULL, "x", &save_ptr);
return 0;
- iconv on AIX 7.1BETA, (continued)
- printf on AIX 7.1BETA, Bruno Haible, 2010/07/30
- rename on AIX 7.1BETA, Bruno Haible, 2010/07/30
- round on AIX 7.1BETA, Bruno Haible, 2010/07/30
- truncl on AIX 7.1BETA, Bruno Haible, 2010/07/30
- stat on AIX 7.1BETA, Bruno Haible, 2010/07/30
- strndup on AIX 7.1BETA, Bruno Haible, 2010/07/30
- symlink on AIX 7.1BETA, Bruno Haible, 2010/07/30
- unlink on AIX 7.1BETA, Bruno Haible, 2010/07/30
- strtok_r on AIX 7.1BETA,
Bruno Haible <=
- wcwidth on AIX 7.1BETA, Bruno Haible, 2010/07/30
- futimens on AIX 7.1BETA, Bruno Haible, 2010/07/30
- Re: futimens on AIX 7.1BETA, Eric Blake, 2010/07/30
- getline on AIX 7.1BETA, Bruno Haible, 2010/07/30
- Re: M4 1.4.14 on AIX 7.1BETA, Bruno Haible, 2010/07/30
- Re: M4 1.4.14 on AIX 7.1BETA, Rainer Tammer, 2010/07/30
- Re: M4 1.4.14 on AIX 7.1BETA, Bruno Haible, 2010/07/31
- Re: M4 1.4.14 on AIX 7.1BETA, Rainer Tammer, 2010/07/31
- Re: M4 1.4.14 on AIX 7.1BETA, Bruno Haible, 2010/07/31
- Re: M4 1.4.14 on AIX 7.1BETA, Rainer Tammer, 2010/07/30