[prev in list] [next in list] [prev in thread] [next in thread]
List: ast-developers
Subject: [ast-developers] [patch] ast-open.20120-06-12 build failure on Solaris 11/i386/Sun Studio in jcl cod
From: Roland Mainz <roland.mainz () nrubsig ! org>
Date: 2012-06-17 23:40:47
Message-ID: CAKAoaQkCN=F+=xDhfmWZLr10q2FRzNeUAPmyfq3biv9mu27wVg () mail ! gmail ! com
[Download RAW message or body]
Hi!
----
The jcl parts of ast-open.20120-06-12 fail to build on Solaris 11/i386
with Sun Studio 12.1:
-- snip --
+ 1> jcl.req
+ cc -D_TS_ERRNO -D_REENTRANT -KPIC -xO4 '-xalias_level=std' -xspace
-Xa -xstrconst -z combreloc -xildoff -xcsi '-errtags=yes'
'-DSHOPT_CMDLIB_BLTIN=0' '-DSH_CMDLIB_DIR="/usr/ast/
bin"' '-DSHOPT_CMDLIB_HDR="/home/test001/ksh93/ast_ksh_20120612/build_i386_64bit_extrabuiltins/tmp_solaris_builtin_header.h"'
-DSHOPT_SYSRC '-D_map_libc=1' '-D_lib_socket=1' -lsoc
ket -lnsl -I/home/test001/ksh93/ast_ksh_20120612/build_i386_64bit_extrabuiltins/src/lib/libjcl
-I- -I../../../include/ast -DDEBUG -D_PACKAGE_ast -c
/home/test001/ksh93/ast_ksh_201
20612/build_i386_64bit_extrabuiltins/src/lib/libjcl/open.c
+ cc -D_TS_ERRNO -D_REENTRANT -KPIC -xO4 '-xalias_level=std' -xspace
-Xa -xstrconst -z combreloc -xildoff -xcsi '-errtags=yes'
'-DSHOPT_CMDLIB_BLTIN=0' '-DSH_CMDLIB_DIR="/usr/ast/
bin"' '-DSHOPT_CMDLIB_HDR="/home/test001/ksh93/ast_ksh_20120612/build_i386_64bit_extrabuiltins/tmp_solaris_builtin_header.h"'
-DSHOPT_SYSRC '-D_map_libc=1' '-D_lib_socket=1' -lsoc
ket -lnsl -I/home/test001/ksh93/ast_ksh_20120612/build_i386_64bit_extrabuiltins/src/lib/libjcl
-I- -I../../../include/ast -DDEBUG -D_PACKAGE_ast -c
/home/test001/ksh93/ast_ksh_201
20612/build_i386_64bit_extrabuiltins/src/lib/libjcl/parse.c
"/home/test001/ksh93/ast_ksh_20120612/build_i386_64bit_extrabuiltins/src/lib/libjcl/parse.c",
line 46: syntax error before or at: 18
"/home/test001/ksh93/ast_ksh_20120612/build_i386_64bit_extrabuiltins/src/lib/libjcl/parse.c",
line 46: warning: syntax error: empty declaration
(E_EMPTY_DECLARATION)
"/home/test001/ksh93/ast_ksh_20120612/build_i386_64bit_extrabuiltins/src/lib/libjcl/parse.c",
line 817: warning: improper pointer/integer combination: op "="
(E_BAD_PTR_INT_COMBINATION)
"/home/test001/ksh93/ast_ksh_20120612/build_i386_64bit_extrabuiltins/src/lib/libjcl/parse.c",
line 1950: warning: improper pointer/integer combination: op "!="
(E_BAD_PTR_INT_COMBINATION)
"/home/test001/ksh93/ast_ksh_20120612/build_i386_64bit_extrabuiltins/src/lib/libjcl/parse.c",
line 1952: warning: improper pointer/integer combination: arg #4
(E_BAD_PTR_INT_COMB_ARG)
cc: acomp failed for
/home/test001/ksh93/ast_ksh_20120612/build_i386_64bit_extrabuiltins/src/lib/libjcl/parse.c
make [lib/libjcl]: *** exit code 2 making parse.o
-- snip --
The problem here is AFAIK the use of |SS| as symbol...
-- snip --
static char SS[] = "//";
-- snip --
... because a system header defines this:
-- snip --
$ grep -r -E '#.*define[[:space:]]+SS[[:space:]]+' /usr/include/
/usr/include/sys/regset.h:#define SS 18 /*
only stored on a privilege transition */
-- snip --
(this mess comes from the "i386 ABI supplement"... thanks likely go to
Intel... ;-/ ).
There are two ways to fix it:
1. #undef SS in parse.c
2. Rename the variable (because _uppercase_ 1/2/3-letter symbols are
always in danger from being trampled in some way by system includes)
I've opted for [2] because the all-uppercase symbols are really
calling for trouble...
... attached (as "astopen20120612_jcl_parse001.diff.txt") is the patch...
----
Bye,
Roland
--
__ . . __
(o.\ \/ /.o) roland.mainz@nrubsig.org
\__\/\/__/ MPEG specialist, C&&JAVA&&Sun&&Unix programmer
/O /==\ O\ TEL +49 641 3992797
(;O/ \/ \O;)
["astopen20120612_jcl_parse001.diff.txt" (text/plain)]
--- src/lib/libjcl/parse.c Wed Nov 15 09:56:41 2006
+++ src/lib/libjcl/parse.c Mon Jun 18 01:25:04 2012
@@ -41,10 +41,10 @@
static char dummy[] = "/dev/null";
-static char EQ[] = "=";
-static char END[] = "\\\\";
-static char SS[] = "//";
-static char ST[] = "*";
+static char tok_EQ[] = "=";
+static char tok_END[] = "\\\\";
+static char tok_SS[] = "//";
+static char tok_ST[] = "*";
/*
* common syntax error message
@@ -525,9 +525,9 @@
if (jcl->pushed)
{
memcpy(&jcl->data, &jcl->push[--jcl->pushed], sizeof(Push_t));
- if (jcl->last == END)
+ if (jcl->last == tok_END)
{
- s = END;
+ s = tok_END;
goto token;
}
}
@@ -534,7 +534,7 @@
else if (jcl->data != null)
{
jcl->data = null;
- s = END;
+ s = tok_END;
goto token;
}
else
@@ -814,7 +814,7 @@
else
xel(jcl, null);
}
- s = SS;
+ s = tok_SS;
goto token;
}
else if (*jcl->data == '*')
@@ -825,7 +825,7 @@
}
continue;
case '=':
- if (!n && !q && jcl->last != EQ)
+ if (!n && !q && jcl->last != tok_EQ)
{
if (*jcl->data == '\'' && *(jcl->data + 1) == '\'' && (*(jcl->data + 2) == ',' \
|| isspace(*(jcl->data + 2)) || *(jcl->data + 2) == 0)) {
@@ -834,7 +834,7 @@
xel(jcl, null);
if ((jcl->data - s) == 3)
{
- s = EQ;
+ s = tok_EQ;
goto token;
}
}
@@ -844,11 +844,11 @@
xel(jcl, null);
if ((jcl->data - s) == 1)
{
- s = EQ;
+ s = tok_EQ;
goto token;
}
}
- xel(jcl, EQ);
+ xel(jcl, tok_EQ);
break;
}
continue;
@@ -855,7 +855,7 @@
case '*':
if (!n && !q && (jcl->data - s) == 1 && (*jcl->data == ',' || *jcl->data == ' ' \
|| *jcl->data == 0)) {
- s = ST;
+ s = tok_ST;
goto token;
}
continue;
@@ -916,8 +916,8 @@
{
register char* tok;
- if (jcl->last != END)
- while ((tok = lex(jcl)) && tok != END);
+ if (jcl->last != tok_END)
+ while ((tok = lex(jcl)) && tok != tok_END);
}
/*
@@ -1066,9 +1066,9 @@
if (!(tok = lex(jcl)))
syntax(jcl, 2, NiL, NiL, NiL);
- else if (tok == END)
+ else if (tok == tok_END)
return 0;
- else if ((val = lex(jcl)) == EQ)
+ else if ((val = lex(jcl)) == tok_EQ)
val = lex(jcl);
else
{
@@ -1298,7 +1298,7 @@
}
else
pd = 0;
- if (val && (streq(tok, "DSN") || streq(tok, "DSNAME")) || !val && (streq(tok, \
"DUMMY") && (val = dummy) && (dd->flags |= JCL_DD_DUMMY) || !jcl->pushed && tok != ST \
&& (val = tok))) + if (val && (streq(tok, "DSN") || streq(tok, "DSNAME")) || !val && \
(streq(tok, "DUMMY") && (val = dummy) && (dd->flags |= JCL_DD_DUMMY) || !jcl->pushed \
&& tok != tok_ST && (val = tok))) {
if (dd->flags & JCL_DD_DUMMY)
{
@@ -1494,7 +1494,7 @@
return -1;
}
}
- else if (tok == ST)
+ else if (tok == tok_ST)
{
while (tok = card(jcl))
{
@@ -1511,7 +1511,7 @@
jcl->record = tok;
xel(jcl, NiL);
if (tok)
- xel(jcl, END);
+ xel(jcl, tok_END);
}
}
if ((dd->flags & JCL_DD_INCLUDE) && dd->path && jclinclude(jcl, dd->path, JCL_PROC, \
NiL)) @@ -1903,7 +1903,7 @@
int r;
while (s = lex(jcl))
- if (s == END)
+ if (s == tok_END)
{
if (jcl->disc->errorf)
(*jcl->disc->errorf)(NiL, jcl->disc, 2, "THEN expected");
@@ -1947,9 +1947,9 @@
while (tok = lex(jcl))
{
- if (tok != SS)
+ if (tok != tok_SS)
{
- syntax(jcl, 2, tok, SS, NiL);
+ syntax(jcl, 2, tok, tok_SS, NiL);
return -1;
}
if (!(name = lex(jcl)))
_______________________________________________
ast-developers mailing list
ast-developers@research.att.com
https://mailman.research.att.com/mailman/listinfo/ast-developers
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic