[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Bison 1.30h and alloca
From: |
Akim Demaille |
Subject: |
Bison 1.30h and alloca |
Date: |
22 Dec 2001 16:27:26 +0100 |
User-agent: |
Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.4 (Civil Service) |
Please, keep this public.
Paul, the bottom line of this bug is alloca. Something has changed
between now and before, wrt AIX:
22. calc.at:396: testing Calculator ...
calc.at:396: bison calc.y -o calc.c
calc.at:396: $CC $CFLAGS $CPPFLAGS calc.c -o calc
stderr:
ld: 0711-317 ERROR: Undefined symbol: .__builtin_alloca
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
calc.at:396: exit code was 8, expected 0
22. calc.at:396: FAILED near `calc.at:396'
According to config.log (included in the testsuire.logs below), alloca
_is_ present and usable, but we are different of what was used in the
test, and... I can see something that might explain the problem: there
are now spaces between `#' and `pragma', I have no idea whether it
matters. But on this respect, we don't follow autoconf.texi's advice.
Also, autoconf.texi says nothing should be before that #pragma, but it
is _not_ the case, there _is_ something before:
| /* A Bison parser, made from calc.y
| by GNU bison 1.30i. */
|
| #define YYBISON 1 /* Identify Bison output. */
|
| # define CALC_EOF 0
| # define NUM 257
| # define NEG 258
|
| #line 3 "calc.y"
|
| #include <config.h>
| /* We don't need a perfect malloc for these tests. */
| #undef malloc
| #include <stdio.h>
|
| #if STDC_HEADERS
| # include <stdlib.h>
| # include <string.h>
| #else
| char *strcat(char *dest, const char *src);
| #endif
| #include <ctype.h>
|
|
| static int power (int base, int exponent);
| static void yyerror (const char *s);
| static int yylex (void);
| static int yygetc (void);
| static void yyungetc (int c);
|
| extern void perror (const char *s);
| #ifndef YYSTYPE
| #define YYSTYPE int
| #endif
| #ifndef YYDEBUG
| # define YYDEBUG 0
| #endif
|
| #define YYFINAL 25
| #define YYFLAG -32768
| #define YYNTBASE 15
|
| /* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
| #define YYTRANSLATE(x) ((unsigned)(x) <= 258 ? yytranslate[x] : 18)
|
| /* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
| static const char yytranslate[] =
| {
| 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
| 12, 2, 2, 2, 2, 2, 2, 2, 2, 2,
| 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
| 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
| 13, 14, 8, 7, 2, 6, 2, 9, 2, 2,
| 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
| 2, 5, 2, 2, 2, 2, 2, 2, 2, 2,
| 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
| 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
| 2, 2, 2, 2, 11, 2, 2, 2, 2, 2,
| 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
| 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
| 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
| 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
| 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
| 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
| 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
| 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
| 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
| 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
| 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
| 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
| 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
| 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
| 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
| 2, 2, 2, 2, 2, 2, 1, 4, 10
| };
|
| CUT
|
| #if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
|
| /* The parser invokes alloca or malloc; define the necessary symbols. */
|
| # if YYSTACK_USE_ALLOCA
| # define YYSTACK_ALLOC alloca
| # define YYSIZE_T YYSTD (size_t)
| # else
So I am just in favor of removing all the hacks to have alloca used on
AIX. As a matter of fact, I am in favor of removing _all_ the hacks,
but the GNU system specific ones.
Then, another `bug':
49. regression.at:612: testing Invalid CPP guards: input/input...
regression.at:612: bison --defines=input/input.h input/input.y
regression.at:612: $CC -E input/input.h
--- /dev/null Fri Dec 21 13:51:11 2001
+++ /pro/3gl/GNU/bison-1.30h/tests/testsuite.dir/at-stderr Fri Dec 21
13:51:42 2001
@@ -0,0 +1 @@
+cc: 1501-218 file input/input.h contains an incorrect file suffix
stdout:
#line 9 "input/input.h"
extern int yylval;
49. regression.at:612: FAILED near `regression.at:612'
Err, I don't understand this one at all, what's wrong with
`input/input.h' ?
50. regression.at:613: testing Invalid CPP guards: 9foo...
regression.at:613: bison --defines=9foo.h 9foo.y
regression.at:613: $CC -E 9foo.h
--- /dev/null Fri Dec 21 13:51:50 2001
+++ /pro/3gl/GNU/bison-1.30h/tests/testsuite.dir/at-stderr Fri Dec 21
13:52:18 2001
@@ -0,0 +1 @@
+cc: 1501-218 file 9foo.h contains an incorrect file suffix
stdout:
#line 9 "9foo.h"
extern int yylval;
50. regression.at:613: FAILED near `regression.at:613'
This seems to be quite ridiculous: I can't compile a file which name
starts with a digit???
--- Begin Message ---
Subject: |
Re: bison-1.30 |
Date: |
Fri, 21 Dec 2001 14:10:34 +0100 |
On Wed 31 Oct 2001 14:33, Akim Demaille <address@hidden> wrote:
> >>>>> "H" == H Merijn Brand <H.Merijn> writes:
>
> H> builds, tests and installs clean on HP-UX 11.00, HP-UX 10.20,
> H> AIX-4.3.3 and AIX-4.2.1 all using native compiler.
Same for 1.30h as far as HP-UX. For AIX see below
> H> Small nit during tests, bison test suite reports:
>
> H> ## GNU Bison 1.29e test suite. ##
same for 1.30h (reports test suite 1.30g)
> :) :) :)
>
> Thanks!
AIX-4.2
## --------------------------- ##
## GNU Bison 1.30g test suite. ##
## --------------------------- ##
Output file names.
1: output.at:38 ok
2: output.at:40 ok
3: output.at:42 ok
4: output.at:44 ok
5: output.at:46 ok
6: output.at:48 ok
7: output.at:52 ok
8: output.at:54 ok
9: output.at:58 ok
10: output.at:60 ok
11: output.at:64 ok
12: output.at:69 ok
13: output.at:72 ok
14: output.at:76 ok
15: output.at:80 ok
Grammar Sets (Firsts etc.).
16: sets.at:26 ok
17: sets.at:160 ok
Grammar Reduction.
18: reduce.at:26 ok
19: reduce.at:70 ok
20: reduce.at:116 ok
21: reduce.at:180 ok
Simple Calculator.
22: calc.at:396 FAILED near `calc.at:396'
23: calc.at:398 FAILED near `calc.at:398'
24: calc.at:399 FAILED near `calc.at:399'
25: calc.at:400 FAILED near `calc.at:400'
26: calc.at:401 FAILED near `calc.at:401'
27: calc.at:402 FAILED near `calc.at:402'
28: calc.at:403 FAILED near `calc.at:403'
29: calc.at:405 FAILED near `calc.at:405'
30: calc.at:407 FAILED near `calc.at:407'
31: calc.at:409 FAILED near `calc.at:409'
32: calc.at:410 FAILED near `calc.at:410'
Torture Tests.
33: torture.at:83 FAILED near `torture.at:85'
34: torture.at:104 ok
Torture Tests.
33: torture.at:83 FAILED near `torture.at:85'
34: torture.at:104 ok
35: torture.at:123 ok
Regression tests.
36: regression.at:26 ok
37: regression.at:50 ok
38: regression.at:155 ok
39: regression.at:260 ok
40: regression.at:404 ok
41: regression.at:424 ok
42: regression.at:441 ok
43: regression.at:462 ok
44: regression.at:485 ok
45: regression.at:507 ok
46: regression.at:530 ok
47: regression.at:550 ok
48: regression.at:570 ok
49: regression.at:612 FAILED near `regression.at:612'
50: regression.at:613 FAILED near `regression.at:613'
## ------------------------------------------------- ##
## ERROR: Suite unsuccessful, 14 of 50 tests failed. ##
## ------------------------------------------------- ##
calc.at:396: bison calc.y -o calc.c
calc.at:396: $CC $CFLAGS $CPPFLAGS calc.c -o calc
stderr:
ld: 0711-317 ERROR: Undefined symbol: .__builtin_alloca
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
calc.at:396: exit code was 8, expected 0
22. calc.at:396: FAILED near `calc.at:396'
etc.
ld: 0711-317 ERROR: Undefined symbol: .__builtin_alloca
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
calc.at:410: exit code was 8, expected 0
32. calc.at:410: FAILED near `calc.at:410'
33. torture.at:83: testing Exploding the Stack Size with Alloca...
torture.at:85: bison input.y -o input.c
torture.at:85: $CC $CFLAGS $CPPFLAGS input.c -o input
stderr:
ld: 0711-317 ERROR: Undefined symbol: .__builtin_alloca
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
torture.at:85: exit code was 8, expected 0
33. torture.at:83: FAILED near `torture.at:85'
49. regression.at:612: testing Invalid CPP guards: input/input...
regression.at:612: bison --defines=input/input.h input/input.y
regression.at:612: $CC -E input/input.h
--- /dev/null Fri Dec 21 13:51:11 2001
+++ /pro/3gl/GNU/bison-1.30h/tests/testsuite.dir/at-stderr Fri Dec 21
13:51:42 2001
@@ -0,0 +1 @@
+cc: 1501-218 file input/input.h contains an incorrect file suffix
stdout:
#line 9 "input/input.h"
extern int yylval;
49. regression.at:612: FAILED near `regression.at:612'
50. regression.at:613: testing Invalid CPP guards: 9foo...
regression.at:613: bison --defines=9foo.h 9foo.y
regression.at:613: $CC -E 9foo.h
--- /dev/null Fri Dec 21 13:51:50 2001
+++ /pro/3gl/GNU/bison-1.30h/tests/testsuite.dir/at-stderr Fri Dec 21
13:52:18 2001
@@ -0,0 +1 @@
+cc: 1501-218 file 9foo.h contains an incorrect file suffix
stdout:
#line 9 "9foo.h"
extern int yylval;
50. regression.at:613: FAILED near `regression.at:613'
## ------------------------- ##
## testsuite.log is created. ## (attached)
## ------------------------- ##
AIX 4.3:
## GNU Bison 1.30g test suite. ##
## --------------------------- ##
Output file names.
1: output.at:38 FAILED near `output.at:38'
2: output.at:40 FAILED near `output.at:40'
3: output.at:42 FAILED near `output.at:42'
4: output.at:44 FAILED near `output.at:44'
5: output.at:46 ok
6: output.at:48 FAILED near `output.at:48'
7: output.at:52 FAILED near `output.at:52'
8: output.at:54 FAILED near `output.at:54'
9: output.at:58 ok
10: output.at:60 FAILED near `output.at:60'
11: output.at:64 FAILED near `output.at:64'
12: output.at:69 FAILED near `output.at:69'
13: output.at:72 FAILED near `output.at:72'
14: output.at:76 ok
15: output.at:80 ok
Grammar Sets (Firsts etc.).
16: sets.at:26 ok
17: sets.at:160 ok
Grammar Reduction.
18: reduce.at:26 ok
19: reduce.at:70 ok
20: reduce.at:116 ok
21: reduce.at:180 ok
Simple Calculator.
22: calc.at:396 FAILED near `calc.at:396'
23: calc.at:398 FAILED near `calc.at:398'
24: calc.at:399 FAILED near `calc.at:399'
25: calc.at:400 FAILED near `calc.at:400'
26: calc.at:401 FAILED near `calc.at:401'
27: calc.at:402 FAILED near `calc.at:402'
28: calc.at:403 FAILED near `calc.at:403'
29: calc.at:405 FAILED near `calc.at:405'
30: calc.at:407 FAILED near `calc.at:407'
31: calc.at:409 FAILED near `calc.at:409'
32: calc.at:410 FAILED near `calc.at:410'
Torture Tests.
33: torture.at:83 FAILED near `torture.at:85'
34: torture.at:104 ok
35: torture.at:123 ok
Regression tests.
36: regression.at:26 ok
37: regression.at:50 ok
38: regression.at:155 ok
39: regression.at:260 ok
40: regression.at:404 ok
41: regression.at:424 ok
42: regression.at:441 ok
43: regression.at:462 ok
44: regression.at:485 ok
45: regression.at:507 ok
46: regression.at:530 ok
47: regression.at:550 ok
48: regression.at:570 ok
49: regression.at:612 ok
50: regression.at:613 ok
## ------------------------------------------------- ##
## ERROR: Suite unsuccessful, 23 of 50 tests failed. ##
## ------------------------------------------------- ##
--
H.Merijn Brand Amsterdam Perl Mongers (http://amsterdam.pm.org/)
using perl-5.6.1, 5.7.2 & 630 on HP-UX 10.20 & 11.00, AIX 4.2, AIX 4.3,
WinNT 4, Win2K pro & WinCE 2.11. Smoking perl CORE: address@hidden
http://archives.develooper.com/address@hidden/ address@hidden
send smoke reports to: address@hidden, QA: http://qa.perl.org
test-4.2.log.gz
Description: Binary data
test-4.3.log.gz
Description: Binary data
--- End Message ---
- Bison 1.30h and alloca,
Akim Demaille <=