snapshot of project "byacc", label t20140422

This commit is contained in:
Thomas E. Dickey 2014-04-22 23:36:31 -04:00
parent d254ed2a23
commit f89b0db54b
19 changed files with 318 additions and 749 deletions

33
CHANGES
View File

@ -1,3 +1,36 @@
2014-04-19 Thomas E. Dickey <dickey@invisible-island.net>
* config.sub: 2014-04-03
* config.guess: 2014-03-23
2014-04-09 Rick.Spates
* main.c, defs.h: patch to allow DEBUG build with WIN32 system
2014-04-09 Thomas E. Dickey <dickey@invisible-island.net>
* output.c, reader.c: gcc warnings
* reader.c: fix const-cast warnings
* output.c:
fix a few clang --analyze warnings; one was a case where output_ctable emitted
an empty table (which should be an error).
* reader.c: appease clang --analyze
* defs.h: mark two functions as no-return.
* VERSION: bump
* makefile.in: use $LINT_OPTS from environment via configure script
* yaccpar.c: regen
* yacc.1:
clarify relationship of btyacc features to default configuration.
2014-04-08 Thomas E. Dickey <dickey@invisible-island.net> 2014-04-08 Thomas E. Dickey <dickey@invisible-island.net>
* mstring.c: minor reformatting to make coverage analysis simpler * mstring.c: minor reformatting to make coverage analysis simpler

View File

@ -1,4 +1,4 @@
MANIFEST for byacc, version t20140409 MANIFEST for byacc, version t20140422
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
MANIFEST this file MANIFEST this file
ACKNOWLEDGEMENTS original version of byacc - 1993 ACKNOWLEDGEMENTS original version of byacc - 1993
@ -6,8 +6,6 @@ AUTHORS nicknames for some contributors (see CHANGES for
Makefile.old renamed from Makefile Makefile.old renamed from Makefile
NEW_FEATURES original version of byacc - 1993 NEW_FEATURES original version of byacc - 1993
NOTES original version of byacc - 1993 NOTES original version of byacc - 1993
NOTES-btyacc-Changes byacc-btyacc-20140323
NOTES-btyacc-Disposition byacc-btyacc-20140323
NO_WARRANTY original version of byacc - 1993 NO_WARRANTY original version of byacc - 1993
README original version of byacc - 1993 README original version of byacc - 1993
README.BTYACC byacc-btyacc-20140323 README.BTYACC byacc-btyacc-20140323

View File

@ -1,385 +0,0 @@
Tom Shields, March 17, 2014
PARKING LOT ISSUES:
-------------------
- verify debian packaging still works?
- there are no #line directives in y.tab.i, other than those that come
from the input file and the skeleton file; to fix this, would need to
count output lines in externs_file and add 'write_externs_lineno()'
similar to 'write_code_lineno()'
- if there are no defined symbols, the .tab.h file isn't empty (weird case,
may not be worth fixing)
- consider: treat []-actions identical to {}-actions if not processing a
backtracking parser (avoids test case error)?
BTYACC CHANGES CURRENTLY DEFERRED, BY FILE:
-------------------------------------------
push.skel
- skeleton for a 'push' parser
- needs to be upgraded match the structure of yaccpar.skel
defs.h
- adopt '%include' changes
- adopt '%define'/'%ifdef'/'%endif'
- adopt -E flag to print preprocessed grammar to stdout
error.c
- adopt '%include' changes
- NOTE: there is a btyacc change that might be worth adopting in byacc
[FileError() refactoring to eliminate duplicated code in most of the
error message functions]
main.c
- adopt '%define' changes
- adopt '-DNAME' command line option to define preprocessor variable NAME
- adopt -E flag to print preprocessed grammar to stdout
- adopt '-S skeleton_file' command line option to select an alternate parser
skeleton file
- the skeleton file named by the -S flag is used as provided to open the
file; consider a change to this behavior to check whether the named file
has a path prefix, and if not, look in 'installation' directory if the
file is not found in the working directory
output.c
- adopt '%include' changes
reader.c
- adopt '%include' changes
- adopt '%define'/'%ifdef'/'%endif' changes
- adopt -E flag to print preprocessed grammar to stdout
- NOTE: there is a btyacc change that might be worth adopting in byacc
[copy_string() & copy_comment() refactoring to eliminate duplicated
code in copy_text() and copy_union()]
warshall.c
- NOTE: there is a btyacc change that might be worth adopting in byacc
[shifting 'mask' incrementally rather than literal '1' by a variable
amount each time thru the loop]
================================================================================
new files:
----------
skel2c
- modified from btyacc distribution: don't generate #include defs.h
- extended syntax recognized to include '%% insert VERSION here', generating
the defines for YYMAJOR, YYMINOR and YYPATCH at that point
- made generated tables type 'const char *const' to match skelton.c from
byacc-20130925 baseline
- added code to append text for write_section() to end of generated skeleton.c
- remove conversion of tab to \t in generated skeleton.c
- extended syntax recognized to include '%%ifdef', '%%ifndef', '%%else' and
'%%endif'; used in yaccpar.skel to bracket code that is specific to
backtracking
yaccpar.skel.old
- created from skeleton.c in byacc-20140101 baseline; use of this skeleton
will create a version of skeleton.c that is close to that in the
byacc-20140101 baseline
- eliminated 'body_3' and 'trailer_2' skeleton segments - no need to generate
yyerror() invocation dynamically; YYERROR_CALL() is already generated
earlier, and so can be used in the skeleton to simplify
- added 'const' to types in '%% tables' section to match what skel2c,
start_int_table() and state_str_table() generate
- added a few cosmetic changes (e.g., added some additional comments,
reworded debugging output to match yaccpar.skel, changed yygrowstack()
to return YYENOMEM for 'out of memory' error, rather than -1, to match
yaccpar.skel; changed yyparse() return value from 1 to 2 for the
'out of memory' error to match yaccpar.skel)
- added '#ifndef'/'#endif' around '#define YYINITSTACKSIZE 200' to allow
the value to be changed at compile time
- changed 'printf(' to 'fprintf(stderr, '; added stack depth (yydepth) to
debugging output from yaccpar.skel
- use 'YYINT' rather than 'short' for integer table types
yaccpar.skel
- renamed from btyaccpa.ske, merged with btyacc-c.ske
- modified from btyacc distribution to match the latest byacc-20140101
skeleton structure & data structures
- make local functions static
- change "virtual memory exceeded" to "memory exhausted" for bison
compatibility
- change debug output generation from printf/puts/putc onto stdout to use
fprintf/fputs/fputc onto stderr; include
stack depth and whether or not in trial parsing
- changed types of generated string tables to be 'const pointer to const char'
- check all malloc()/realloc() return values, ensure return value of
yyparse() = 2 if parsing failed due to memory exhaustion
- change YYDBPR() macro to YYSTYPE_TOSTRING(); define semantics as delivering
a char* value representing a semantic value (e.g., yylval or yyval, or the
contents of an entry on the semantic stack); additional parameter passed:
grammar symbol # (to assist interpretation of semantic value)
- change YYPOSN to YYLTYPE and yyposn to yylloc (position corresponding to
yylval) for bison compatibility; add yyloc (corresponding to yyval)
- move default definition of YYLTYPE into output.c, generating a typedef
- add '#if defined(YYLTYPE) || defined(YYLTYPE_IS_DECLARED)'/'#endif' around
all lines specific to position processing
- add '#if defined(YYDESTRUCT_CALL)'/'#endif' around all lines specific to
semantic & position stack processing to reclaim memory associated with
discarded symbols
- add '%%ifdef YYBTYACC'/'%%endif' around all lines specific to backtrack
parsing; converted by skel2c into '#if defined(YYBTYACC)'/'#endif'
- distinguish between "yacc stack overflow" and "memory exhausted" situations
- consolidated termination cleanup code; introduced yyreturn, set to 2 after
labels yyoverflow/yyenomem, set to 1 after label yyabort, set to 0 after
label yyaccept; all termination cases jump to label yyreturn, which does
any cleanup then returns yyreturn value
- replaced YYDELETEVAL & YYDELETEPOSN user-supplied macro capability by
implementation of byacc-generated yydestruct() as defined by bison
compatible %destructor mechanism
- moved invocation of 'YYREDUCEPOSNFUNC' macro to immediately prior to, rather
than after, execution of final rule action (so that, at some future
date, implementation extensions can be added to enable custom calculation
of locations associated with non-terminals within rule actions); deleted
unnecessary flag 'reduce_posn'; deleted 'YYCALLREDUCEPOSN' macro; deleted
C++ variant of 'YYREDUCEPOSNFUNC' invocation
- adopt approach similar to bison for default computation of yyloc; change
macro 'YYREDUCEPOSNFUNC' name to 'YYLLOC_DEFAULT' for bison compatibility;
added 'yyerror_loc_range[2]' to hold start & end locations for error
situations that pop the stack
- use 'YYINT' rather than 'short' for integer table types, and for indexing
parser tables
readskel.c
http://www.verisign.com/index.html- replaced error() with fprintf()
mstring.h
- moved contents of mstring.h to defs.h - mstring.h is obsolete
mstring.c
- replaced include of mstring.h with defs.h
- changed 'START' to 'HEAD' to remove conflict with 'START' used for
the start symbol defined in defs.h
modified byacc files:
---------------------
skeleton.c
- skeleton.c is now generated from the appropriate skeleton file by 'skel2c'
configure.in
- added configuration for --enable-btyacc option; if 'yes' add '-DYYBTYACC'
to DEFINES in makefile.in; --enable-btyacc defaults to 'no'
- added configuration for --with-max-table-size option; if present,
overrides the value of MAXTABLE defined in defs.h
- regenerate configure using autoconf
makefile.in
- added mstring.c to C_FILES
- added mstring$o to OBJS
- added @DEFINES@ as value of DEFINES make variable
- added new make variable SKELETON with value 'yaccpar.skel'
- added rule to generate skeleton.c from $(SKELETON), depending on skel2c
and makefile
- added rm -f skeleton.c distclean rule
- moved dependency on makefile from only main$o & skeleton$o to $(OBJS),
since if ./configure is run changing, for example, from --enable-btyacc
to --disable-btyacc, all files must be recompiled to ensure a clean
executable
- add @MAXTABLE@ for optional '-DMAXTABLE=nnn' if configured using
--with-max-table-size=nnn
- changed 'cd test && rn 0f test-*'to 'rm -f $(testdir)/test-*'
test/run_test.sh
- ???
test/run_make.sh
- ???
defs.h
- moved contents of mstring.h to defs.h - mstring.h is obsolete
- added <limits.h> to get the various system defined machine limits;
changed definitions of MAXCHAR, MAXSHORT, MINSHORT & BITS_PER_WORD to use
defines from <limits.h>; changed definitions of BIT and SETBIT to use
value of BITS_PER_WORD
- added typedef for __compar_fn_t, conditioned on _COMPAR_FN_T being
undefined (at least for Mac OSX environment)
- adopt new symbol class values ACTION and ARGUMENT
- adopt changes/additions used by inherited attribute processing
- clean up locations of extern function definitions to match where they
actually live in source files
- adopt error functions from inherited attribute processing; added new error
functions
- added keyword code LOCATIONS for %locations
- added keyword code DESTRUCTOR for %destructor
- added extern decl for 'int locations'; true if %locations present
- added extern decl for 'int backtrack'; initialized to 0 (= false), set to
1 (= true) if -B flag is present
- added extern decl for 'int destructor'; true if at least one %destructor
present in grammar spec file
- define 'YYINT' as the smallest C type that can be used to address a
table of size 'MAXTABLE'; define 'YYINT' based on the value of
'MAXTABLE' using the standard system type size definitions from <limits.h>;
define 'MAXYYINT' and 'MINYYINT' accordingly
- change 'Value_t' and 'Index_t' to 'YYINT' from 'short'
- allow 'MAXTABLE' to be defined by '-DMAXTABLE=nnn' at compile-time
closure.c
- changed print_closure(), print_EFF() and print_first_derives() to 'static';
added fwd declarations
- changed 'short' to 'Value_t' (in some instances, 'Value_t' was already
used for variables/parameters that were related to variables/parameters
declared as 'short'
error.c
- adopt error functions from inherited attribute processing; added a few
additional inherited attribute error functions
graph.c
- changed 'short' to 'Value_t' (in some instances, 'Value_t' was already
used for variables/parameters that were related to variables/parameters
declared as 'short'
lalr.c
- changed MAXSHORT to MAXYYINT
lr0.c
- changed MAXSHORT to MAXYYINT
- changed 'short' to 'Value_t' (in some instances, 'Value_t' was already
used for variables/parameters that were related to variables/parameters
declared as 'short'
main.c
- changed 'short' to 'Value_t' (in some instances, 'Value_t' was already
used for variables/parameters that were related to variables/parameters
declared as 'short'
mkpar.c
- backtracking attempts to resolve shift/reduce and reduce/reduce conflicts
output.c
- generate prefix & YYPREFIX defines into externs file (-i, .tab.i) and
code file (-r, .code.c); generate into output file (.tab.c) only if not
using -r option; eliminates doubled output of prefix aliases if -r with
no -i in y.tab.c and y.code.c or if -r & -i in y.tab.i and y.code.c
- changed types of generated string tables to be 'const pointer to const char'
- adopt backtracking as an alternative in cases where otherwise we have a
conflict in the parsing actions (3, rather than 2, choices)
- wrap defines file with (where "yy" is value of 'symbol_prefix')
#ifndef __yy_defines_h_
#define _yy_defines_h_
<defines>
#endif
- avoid writing %%xdecls skeleton section twice if -r used
- eliminated 'body_3' and 'trailer_2' skeleton segments - no need to generate
yyerror() invocation dynamically; YYERROR_CALL() is already generated
earlier, and can be used in the pareser skeleton
- if -P flag (pure_parser), add yylloc as 2nd parameter to yylex()
(declaration & call)
- change YYPOSN to YYLTYPE and yyposn to yylloc (position corresponding to
yylval) for bison compatibility; add yyloc (corresponding to yyval)
- generate yylloc parameters for yylex & yyerror if %locations present
- add location as 1st parameter to declaraion & invocation of yyerror() if
%locations present
- output backtrack parsing tables if -B flag is present
- added generation of yystos[] with output_accessing_symbols() to allow
translation from a parser internal state number to the corresponding
grammar symbol number [0 .. nsyms) of the accessing symbol of that parser
state; used in the generated code for YYDESTRUCT_CALL() &
YYSTYPE_TOSTRING() to enable the correct semantic value union tag to be
determined when executing the implementation of YYDESTRUCT_CALL() or
YYSTYPE_TOSTRING() (similar to yystos[] in bison)
- added to output_prefix(): yystos; yycindex & yyctable if compiling
backtracking; yyloc & yylloc if %locations used
- extended yyname[] to include all grammar symbols, not just the terminal
symbols: '$end', 'error', '$accept', all non-terminals, including internally
generated non-terminals for embedded actions in rules, and 'illegal-symbol'
(which bison spells '$undefined'); '$end' already defined as a symbol 0,
rathern than adding 'end-of-file' as the name of symbol 0; added
'illegal-symbol' from byacc-20140101 (NOTE: the comment in the code that
says byacc does not predefine '$end' and '$error' is incorrect; however,
both bison and byacc spell '$error' as 'error')
- added generation of #define YYTRANSLATE() from byacc-20140101, but changed
the definition for the undefined symbol case because it is no longer in
yyname[YYMAXTOKEN+1] but rather occurs after the last non-terminal symbol;
added #define YYUNDFTOKEN to contain the index in yyname of 'illegal-symbol'
- generate YYLTYPE in output_ltype() as a struct like for bison rather than
using #define in yaccpar.skel
- added 'write_code_lineno' invocation at start of 'output_prefix'
- added 'write_code_lineno' invocation at start of 'output_pure_parser'
- added 'write_code_lineno' invocation prior to generation of #include
for externs file
- added 'write_code_lineno' invocation after 1st 'write_section(fp, xdecls)'
- added '++outline;' prior to output of '#define YYTRANSLATE' - this was
actually causing almost all of the invocations of 'write_code_lineno' to
put out the correct #line directive
- corrected 'write_code_lineno' - the line number in a #line directive is
the number of the next line, not the number of the #line line
- changed MAXSHORT to MAXYYINT; changed 'high' local static from 'int' to
'long' so that it can get higher than 'MAXYYINT' without machine-dependent
behavior; changed related formats from '%d' to '%ld'
- generate 'YYINT' rather than 'short' for integer table types
- generate YYDESTRUCT_DECL & YYDESTRUCT_CALL macros, similar to YYERROR_DECL
and YYERROR_CALL macros, that can be redefined by user, if desired, to add
additional parameters to yydestruct() (and even change the 'yydestruct'
function name)
- if at least one %destructor present, generate yydestruct(); 1st parameter
is a string indicating the context in which yydestruct() is invoked
(e.g., discarding input token, discarding state on stack, cleanup when
aborting); 2nd parameter is the internal grammar symbol number [0..nsyms)
of the accessing symbol of the parser state on the top of the stack; 3rd
parameter is a pointer to the semantic value to be reclaimed associated
with the grammar symbol in the 2nd parameter; if %locations is defined,
the 4th parameter is a pointer to the position value to be reclaimed
associated with the grammar symbol in the 2nd parameter
reader.c
- adopt []-actions, similar to {}-actions; {}-actions are only executed when
not in trial mode, but []-actions are executed regardless of mode
- adopt new symbol class values ACTION and ARGUMENT
- adopt inherited attributes (syntax resembles arguments to non-terminal
symbols)
- adopt keyword table lookup from btyacc, modified to handle equivalence
of '-' and '_' in spelling of keywords
- adopt refactoring of tag table creation into cache_tag() for use in
multiple locations
- added new error functions in place of btyacc's generic error() function
- changed '0' to 'NULL' for pointer initialization
- reworked for-loop at end of get_line (part of DEFERRED '%ifdef/%endif' change)
- added %locations directive for bison compatibility to enable position
processing
- added decl for 'int locations'; true if %locations present
- added decl 'int backtrack'; initialized to 0 (= false), set to
1 (= true) if -B flag is present
- process %locations if present, set location = 1
- only process []-actions and only generate 'if (!yytrial)' prefix for
{}-actions if backtracking is enabled
- add decl for 'int destructor'; true if at least one %destructor is present
- add %destructor directive to enable semantic & position stack processing to
reclaim memory associated with discarded symbols
- process bison compatible %destructor (set destructor = 1); support @$ in
%destructor code to reference the position value if %locations is defined
- changed 'short' to 'Value_t' (in some instances, 'Value_t' was already
used for variables/parameters that were related to variables/parameters
declared as 'short'
- if %locations present, support @N and @$ syntax as for bison to reference
the locations associated with the N-th rhs symbol and the lhs symbol,
respectively
symtab.c
- initialize fields added to 'struct bucket' for non-terminal symbol
inherited attributes
verbose.c
- for parse states with conflicts, the contents of the y.output file include
the trial shift and/or trial reduce actions
- added output to the end of the verbose report showing the correspondance
between grammar symbol #, internal parser symbol #, and grammar symbol name
- changed 'short' to 'Value_t' (in some instances, 'Value_t' was already
used for variables/parameters that were related to variables/parameters
declared as 'short'
yacc.1
- added options 'P', 'V', 'y' and '-o output_file' to the yacc command
synopsis (already covered in the description section)
- added options 'B', 'D' and 'L' to the yacc command synopsis; added text in
the description section
- added %locations description to the extensions section

View File

@ -1,80 +0,0 @@
Tom Shields, March 17, 2014
NOTE: README.BTYACC needs to be re-written (or another README file created)
to explain how the extensions were adopted into the byacc-20140101 baseline.
bytacc changes adopted; see README.BTYACC for details.
------------------------------------------------------
Changes to the skeleton to send debugging output to stderr.
Changes to the types of the grammar tables from 'short' to 'int' if
MAXTABLE is defined to be > MAXSHORT for generation of large grammar tables
for large grammars. This can be set with the invocation of configure
using the --with-max-table-size=N option
Changes to add syntactic sugaring for definition and semantic processing
of inherited attributes associated with non-terminal symbols on the rhs of
rules. Inherited attributes are implemented as {}-actions, and as such may
introduce reduce/reduce conflicts. The advantage over manual {}-actions is
that checking is performed on the number and types of inherited attributes,
and the positions on the semantic stack are automatically calculated.
Identical actions produced by the inherited attribute syntax are collapsed
into a single action, reducing reduce/reduce conflicts.
The %type specification is extended to define the types of inherited
attributes associated with non-terminal symbols on the lhs of rules, in
addition to its original purpose in yacc for specifying the type of the
symbol itself on the parser's value stack. In order to permit the two
aspects to be used independently, the <type> specification following
%type is optional.
Added a mechanism to the parser skeleton for computing and propagating
the text position of grammar symbols if %locations directive is present in
the grammar specificaion, or if yacc is invoked with the -L flag. Includes
support for "@$" and "@N" (for N an integer) in actions to refer to symbol
locations.
Added a bison compatible %destructor directive to define a memory
management mechanism to the parser skeleton that enables cleanup of semantic
values and text positions associated with the parsing stack that are
automatically discarded during error processing.
The following is only available if configure is invoked with the
--enable-btyacc=yes:
Changes to enable backtracking with semantic disambiguation, if yacc is
invoked with the -B flag. A yacc parser disambiguates shift/reduce conflicts
by choosing to shift, and reduce/reduce conflicts by reducing using the
earliest grammar rule (in the grammar specification). A btyacc parser handles
a conflict by remembering the current parse point and entering into trial parse
mode. In trial parse mode, the parser tries each of the conflicting options
until the first successs or until all options are exhausted. If the parser
runs into an error while in trial parse mode, it backtracks to the most recent
conflict point and tries the next alternative. If the parser finds a
successful parse, it backtracks to the point where it first entered trial parse
mode and continues with normal parsing, using the action at the start of the
successful trial path. Success in trial parse mode is achieved either by
successfully reducing the start symbol at the end of input or by invocation of
YYVALID (or YYVALID_NESTED). Semantic disambiguation is supported within
[]-actions, which are always executed, with invocation of YYERROR to terminate
a trial path or YYVALID (and YYVALID_NESTED). Yacc {}-actions are only
executed during normal parsing.
btyacc changes deferred:
------------------------
The -S command line flag to enable use of an alternate parser skeleton,
read from an external file.
Preprocessor statements: %define, %ifdef/%endif, %include.
btyacc changes rejected:
------------------------
The yyerror_detailed() option for error messages is replaced by the
byacc feature for specifying options paramters to yyerror().
C++-specific features in the parser skeleton.

View File

@ -1,4 +1,4 @@
-- $Id: README.BTYACC,v 1.1 2014/03/25 19:21:31 Tom.Shields Exp $ -- $Id: README.BTYACC,v 1.2 2014/04/22 08:18:57 Tom.Shields Exp $
The original README from btyacc is below. The original README from btyacc is below.
@ -8,6 +8,20 @@ byacc baseline.
The %include and %define/%ifdef enhancements described below are not currently The %include and %define/%ifdef enhancements described below are not currently
incorporated. incorporated.
The position management functionality ("YYPOSN", "yyposn", "YYREDUCEPOSNFUNC",
"YYREDUCEPOSNFUNCARG" & "YYCALLREDUCEPOSN") is replaced by a bison-compatible
"%locations" implementation.
The memory management functionality ("YYDELETEVAL" & "YYDELETEPOSN") is
replaced by a bison-compatible "%destructor" implementation.
The detailed syntax error processing functionality ("YYERROR_DETAILED"
& "yyerror_detailed()") is subsumed by the bison-compatible "yyerror()"
implementation, as modified by the %parse-param and %locations directives.
The debugging macro "YYDBPR()" in the parser skeleton is renamed
"YYSTYPE_TOSTRING()".
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
BTYACC -- backtracking yacc BTYACC -- backtracking yacc
=========================== ===========================

View File

@ -1 +1 @@
20140409 20140422

164
config.guess vendored
View File

@ -1,8 +1,8 @@
#! /bin/sh #! /bin/sh
# Attempt to guess a canonical system name. # Attempt to guess a canonical system name.
# Copyright 1992-2013 Free Software Foundation, Inc. # Copyright 1992-2014 Free Software Foundation, Inc.
timestamp='2013-11-29' timestamp='2014-03-23'
# This file is free software; you can redistribute it and/or modify it # This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by # under the terms of the GNU General Public License as published by
@ -50,7 +50,7 @@ version="\
GNU config.guess ($timestamp) GNU config.guess ($timestamp)
Originally written by Per Bothner. Originally written by Per Bothner.
Copyright 1992-2013 Free Software Foundation, Inc. Copyright 1992-2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@ -149,7 +149,7 @@ Linux|GNU|GNU/*)
LIBC=gnu LIBC=gnu
#endif #endif
EOF EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
;; ;;
esac esac
@ -826,7 +826,7 @@ EOF
*:MINGW*:*) *:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32 echo ${UNAME_MACHINE}-pc-mingw32
exit ;; exit ;;
i*:MSYS*:*) *:MSYS*:*)
echo ${UNAME_MACHINE}-pc-msys echo ${UNAME_MACHINE}-pc-msys
exit ;; exit ;;
i*:windows32*:*) i*:windows32*:*)
@ -969,10 +969,10 @@ EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
;; ;;
or1k:Linux:*:*) openrisc*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC} echo or1k-unknown-linux-${LIBC}
exit ;; exit ;;
or32:Linux:*:*) or32:Linux:*:* | or1k*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC} echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;; exit ;;
padre:Linux:*:*) padre:Linux:*:*)
@ -1371,154 +1371,6 @@ EOF
exit ;; exit ;;
esac esac
eval $set_cc_for_build
cat >$dummy.c <<EOF
#ifdef _SEQUENT_
# include <sys/types.h>
# include <sys/utsname.h>
#endif
main ()
{
#if defined (sony)
#if defined (MIPSEB)
/* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
I don't know.... */
printf ("mips-sony-bsd\n"); exit (0);
#else
#include <sys/param.h>
printf ("m68k-sony-newsos%s\n",
#ifdef NEWSOS4
"4"
#else
""
#endif
); exit (0);
#endif
#endif
#if defined (__arm) && defined (__acorn) && defined (__unix)
printf ("arm-acorn-riscix\n"); exit (0);
#endif
#if defined (hp300) && !defined (hpux)
printf ("m68k-hp-bsd\n"); exit (0);
#endif
#if defined (NeXT)
#if !defined (__ARCHITECTURE__)
#define __ARCHITECTURE__ "m68k"
#endif
int version;
version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
if (version < 4)
printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
else
printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
exit (0);
#endif
#if defined (MULTIMAX) || defined (n16)
#if defined (UMAXV)
printf ("ns32k-encore-sysv\n"); exit (0);
#else
#if defined (CMU)
printf ("ns32k-encore-mach\n"); exit (0);
#else
printf ("ns32k-encore-bsd\n"); exit (0);
#endif
#endif
#endif
#if defined (__386BSD__)
printf ("i386-pc-bsd\n"); exit (0);
#endif
#if defined (sequent)
#if defined (i386)
printf ("i386-sequent-dynix\n"); exit (0);
#endif
#if defined (ns32000)
printf ("ns32k-sequent-dynix\n"); exit (0);
#endif
#endif
#if defined (_SEQUENT_)
struct utsname un;
uname(&un);
if (strncmp(un.version, "V2", 2) == 0) {
printf ("i386-sequent-ptx2\n"); exit (0);
}
if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
printf ("i386-sequent-ptx1\n"); exit (0);
}
printf ("i386-sequent-ptx\n"); exit (0);
#endif
#if defined (vax)
# if !defined (ultrix)
# include <sys/param.h>
# if defined (BSD)
# if BSD == 43
printf ("vax-dec-bsd4.3\n"); exit (0);
# else
# if BSD == 199006
printf ("vax-dec-bsd4.3reno\n"); exit (0);
# else
printf ("vax-dec-bsd\n"); exit (0);
# endif
# endif
# else
printf ("vax-dec-bsd\n"); exit (0);
# endif
# else
printf ("vax-dec-ultrix\n"); exit (0);
# endif
#endif
#if defined (alliant) && defined (i860)
printf ("i860-alliant-bsd\n"); exit (0);
#endif
exit (1);
}
EOF
$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
{ echo "$SYSTEM_NAME"; exit; }
# Apollos put the system type in the environment.
test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
# Convex versions that predate uname can use getsysinfo(1)
if [ -x /usr/convex/getsysinfo ]
then
case `getsysinfo -f cpu_type` in
c1*)
echo c1-convex-bsd
exit ;;
c2*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
exit ;;
c34*)
echo c34-convex-bsd
exit ;;
c38*)
echo c38-convex-bsd
exit ;;
c4*)
echo c4-convex-bsd
exit ;;
esac
fi
cat >&2 <<EOF cat >&2 <<EOF
$0: unable to guess system type $0: unable to guess system type

15
config.sub vendored
View File

@ -1,8 +1,8 @@
#! /bin/sh #! /bin/sh
# Configuration validation subroutine script. # Configuration validation subroutine script.
# Copyright 1992-2013 Free Software Foundation, Inc. # Copyright 1992-2014 Free Software Foundation, Inc.
timestamp='2013-10-01' timestamp='2014-04-03'
# This file is free software; you can redistribute it and/or modify it # This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by # under the terms of the GNU General Public License as published by
@ -68,7 +68,7 @@ Report bugs and patches to <config-patches@gnu.org>."
version="\ version="\
GNU config.sub ($timestamp) GNU config.sub ($timestamp)
Copyright 1992-2013 Free Software Foundation, Inc. Copyright 1992-2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@ -296,8 +296,7 @@ case $basic_machine in
| nds32 | nds32le | nds32be \ | nds32 | nds32le | nds32be \
| nios | nios2 | nios2eb | nios2el \ | nios | nios2 | nios2eb | nios2el \
| ns16k | ns32k \ | ns16k | ns32k \
| open8 \ | open8 | or1k | or1knd | or32 \
| or1k | or32 \
| pdp10 | pdp11 | pj | pjl \ | pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle \ | powerpc | powerpc64 | powerpc64le | powerpcle \
| pyramid \ | pyramid \
@ -415,6 +414,7 @@ case $basic_machine in
| nios-* | nios2-* | nios2eb-* | nios2el-* \ | nios-* | nios2-* | nios2eb-* | nios2el-* \
| none-* | np1-* | ns16k-* | ns32k-* \ | none-* | np1-* | ns16k-* | ns32k-* \
| open8-* \ | open8-* \
| or1k*-* \
| orion-* \ | orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
@ -1376,7 +1376,7 @@ case $os in
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
| -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*)
# Remember, each alternative MUST END IN *, to match a version number. # Remember, each alternative MUST END IN *, to match a version number.
;; ;;
-qnx*) -qnx*)
@ -1594,9 +1594,6 @@ case $basic_machine in
mips*-*) mips*-*)
os=-elf os=-elf
;; ;;
or1k-*)
os=-elf
;;
or32-*) or32-*)
os=-coff os=-coff
;; ;;

View File

@ -30,6 +30,9 @@
/* Define to 1 if mkstemp() is available and working. */ /* Define to 1 if mkstemp() is available and working. */
#undef HAVE_MKSTEMP #undef HAVE_MKSTEMP
/* Define to 1 if vsnprintf() is available and working. */
#undef HAVE_VSNPRINTF
/* Define to maximum table size (default: 32500) */ /* Define to maximum table size (default: 32500) */
#undef MAXTABLE #undef MAXTABLE

245
configure vendored
View File

@ -1,5 +1,5 @@
#! /bin/sh #! /bin/sh
# From configure.in Revision: 1.18 . # From configure.in Revision: 1.19 .
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by Autoconf 2.52.20121002. # Generated by Autoconf 2.52.20121002.
# #
@ -3930,7 +3930,76 @@ EOF
fi fi
echo "$as_me:3933: checking for maximum table size" >&5 for ac_func in vsnprintf
do
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
echo "$as_me:3936: checking for $ac_func" >&5
echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
if eval "test \"\${$as_ac_var+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
#line 3942 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func (); below. */
#include <assert.h>
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char $ac_func ();
char (*f) ();
int
main ()
{
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
choke me
#else
f = $ac_func; /* workaround for ICC 12.0.3 */ if (f == 0) return 1;
#endif
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:3973: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
echo "$as_me:3976: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:3979: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:3982: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
eval "$as_ac_var=yes"
else
echo "$as_me: failed program was:" >&5
cat conftest.$ac_ext >&5
eval "$as_ac_var=no"
fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
fi
echo "$as_me:3992: result: `eval echo '${'$as_ac_var'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
if test `eval echo '${'$as_ac_var'}'` = yes; then
cat >>confdefs.h <<EOF
#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
EOF
fi
done
echo "$as_me:4002: checking for maximum table size" >&5
echo $ECHO_N "checking for maximum table size... $ECHO_C" >&6 echo $ECHO_N "checking for maximum table size... $ECHO_C" >&6
# Check whether --with-max-table-size or --without-max-table-size was given. # Check whether --with-max-table-size or --without-max-table-size was given.
@ -3940,12 +4009,12 @@ if test "${with_max_table_size+set}" = set; then
fi; fi;
if test -n "$with_max_table_size" if test -n "$with_max_table_size"
then then
echo "$as_me:3943: result: $with_max_table_size" >&5 echo "$as_me:4012: result: $with_max_table_size" >&5
echo "${ECHO_T}$with_max_table_size" >&6 echo "${ECHO_T}$with_max_table_size" >&6
check=`expr "$with_max_table_size" + 0` check=`expr "$with_max_table_size" + 0`
if test "x$check" != "x$with_max_table_size" if test "x$check" != "x$with_max_table_size"
then then
{ { echo "$as_me:3948: error: invalid value for --with-max-table-size: $with_max_table_size" >&5 { { echo "$as_me:4017: error: invalid value for --with-max-table-size: $with_max_table_size" >&5
echo "$as_me: error: invalid value for --with-max-table-size: $with_max_table_size" >&2;} echo "$as_me: error: invalid value for --with-max-table-size: $with_max_table_size" >&2;}
{ (exit 1); exit 1; }; } { (exit 1); exit 1; }; }
fi fi
@ -3955,11 +4024,11 @@ cat >>confdefs.h <<EOF
EOF EOF
else else
echo "$as_me:3958: result: default" >&5 echo "$as_me:4027: result: default" >&5
echo "${ECHO_T}default" >&6 echo "${ECHO_T}default" >&6
fi fi
echo "$as_me:3962: checking if backtracking extension is wanted" >&5 echo "$as_me:4031: checking if backtracking extension is wanted" >&5
echo $ECHO_N "checking if backtracking extension is wanted... $ECHO_C" >&6 echo $ECHO_N "checking if backtracking extension is wanted... $ECHO_C" >&6
# Check whether --enable-btyacc or --disable-btyacc was given. # Check whether --enable-btyacc or --disable-btyacc was given.
@ -3967,7 +4036,7 @@ if test "${enable_btyacc+set}" = set; then
enableval="$enable_btyacc" enableval="$enable_btyacc"
fi; fi;
echo "$as_me:3970: result: $enable_btyacc" >&5 echo "$as_me:4039: result: $enable_btyacc" >&5
echo "${ECHO_T}$enable_btyacc" >&6 echo "${ECHO_T}$enable_btyacc" >&6
if test "$enable_btyacc" = "yes"; then if test "$enable_btyacc" = "yes"; then
@ -3982,7 +4051,7 @@ fi
if ( test "$GCC" = yes || test "$GXX" = yes ) if ( test "$GCC" = yes || test "$GXX" = yes )
then then
echo "$as_me:3985: checking if you want to check for gcc warnings" >&5 echo "$as_me:4054: checking if you want to check for gcc warnings" >&5
echo $ECHO_N "checking if you want to check for gcc warnings... $ECHO_C" >&6 echo $ECHO_N "checking if you want to check for gcc warnings... $ECHO_C" >&6
# Check whether --with-warnings or --without-warnings was given. # Check whether --with-warnings or --without-warnings was given.
@ -3992,7 +4061,7 @@ if test "${with_warnings+set}" = set; then
else else
cf_opt_with_warnings=no cf_opt_with_warnings=no
fi; fi;
echo "$as_me:3995: result: $cf_opt_with_warnings" >&5 echo "$as_me:4064: result: $cf_opt_with_warnings" >&5
echo "${ECHO_T}$cf_opt_with_warnings" >&6 echo "${ECHO_T}$cf_opt_with_warnings" >&6
if test "$cf_opt_with_warnings" != no ; then if test "$cf_opt_with_warnings" != no ; then
@ -4014,10 +4083,10 @@ cat > conftest.i <<EOF
EOF EOF
if test "$GCC" = yes if test "$GCC" = yes
then then
{ echo "$as_me:4017: checking for $CC __attribute__ directives..." >&5 { echo "$as_me:4086: checking for $CC __attribute__ directives..." >&5
echo "$as_me: checking for $CC __attribute__ directives..." >&6;} echo "$as_me: checking for $CC __attribute__ directives..." >&6;}
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4020 "${as_me:-configure}" #line 4089 "${as_me:-configure}"
#include "confdefs.h" #include "confdefs.h"
#include "conftest.h" #include "conftest.h"
#include "conftest.i" #include "conftest.i"
@ -4066,12 +4135,12 @@ EOF
;; ;;
esac esac
if { (eval echo "$as_me:4069: \"$ac_compile\"") >&5 if { (eval echo "$as_me:4138: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5 (eval $ac_compile) 2>&5
ac_status=$? ac_status=$?
echo "$as_me:4072: \$? = $ac_status" >&5 echo "$as_me:4141: \$? = $ac_status" >&5
(exit $ac_status); }; then (exit $ac_status); }; then
test -n "$verbose" && echo "$as_me:4074: result: ... $cf_attribute" >&5 test -n "$verbose" && echo "$as_me:4143: result: ... $cf_attribute" >&5
echo "${ECHO_T}... $cf_attribute" >&6 echo "${ECHO_T}... $cf_attribute" >&6
cat conftest.h >>confdefs.h cat conftest.h >>confdefs.h
case $cf_attribute in #(vi case $cf_attribute in #(vi
@ -4135,12 +4204,12 @@ INTEL_COMPILER=no
if test "$GCC" = yes ; then if test "$GCC" = yes ; then
case $host_os in case $host_os in
linux*|gnu*) linux*|gnu*)
echo "$as_me:4138: checking if this is really Intel C compiler" >&5 echo "$as_me:4207: checking if this is really Intel C compiler" >&5
echo $ECHO_N "checking if this is really Intel C compiler... $ECHO_C" >&6 echo $ECHO_N "checking if this is really Intel C compiler... $ECHO_C" >&6
cf_save_CFLAGS="$CFLAGS" cf_save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -no-gcc" CFLAGS="$CFLAGS -no-gcc"
cat >conftest.$ac_ext <<_ACEOF cat >conftest.$ac_ext <<_ACEOF
#line 4143 "configure" #line 4212 "configure"
#include "confdefs.h" #include "confdefs.h"
int int
@ -4157,16 +4226,16 @@ make an error
} }
_ACEOF _ACEOF
rm -f conftest.$ac_objext rm -f conftest.$ac_objext
if { (eval echo "$as_me:4160: \"$ac_compile\"") >&5 if { (eval echo "$as_me:4229: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5 (eval $ac_compile) 2>&5
ac_status=$? ac_status=$?
echo "$as_me:4163: \$? = $ac_status" >&5 echo "$as_me:4232: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext' { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:4166: \"$ac_try\"") >&5 { (eval echo "$as_me:4235: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
echo "$as_me:4169: \$? = $ac_status" >&5 echo "$as_me:4238: \$? = $ac_status" >&5
(exit $ac_status); }; }; then (exit $ac_status); }; }; then
INTEL_COMPILER=yes INTEL_COMPILER=yes
cf_save_CFLAGS="$cf_save_CFLAGS -we147" cf_save_CFLAGS="$cf_save_CFLAGS -we147"
@ -4177,7 +4246,7 @@ cat conftest.$ac_ext >&5
fi fi
rm -f conftest.$ac_objext conftest.$ac_ext rm -f conftest.$ac_objext conftest.$ac_ext
CFLAGS="$cf_save_CFLAGS" CFLAGS="$cf_save_CFLAGS"
echo "$as_me:4180: result: $INTEL_COMPILER" >&5 echo "$as_me:4249: result: $INTEL_COMPILER" >&5
echo "${ECHO_T}$INTEL_COMPILER" >&6 echo "${ECHO_T}$INTEL_COMPILER" >&6
;; ;;
esac esac
@ -4186,12 +4255,12 @@ fi
CLANG_COMPILER=no CLANG_COMPILER=no
if test "$GCC" = yes ; then if test "$GCC" = yes ; then
echo "$as_me:4189: checking if this is really Clang C compiler" >&5 echo "$as_me:4258: checking if this is really Clang C compiler" >&5
echo $ECHO_N "checking if this is really Clang C compiler... $ECHO_C" >&6 echo $ECHO_N "checking if this is really Clang C compiler... $ECHO_C" >&6
cf_save_CFLAGS="$CFLAGS" cf_save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -Qunused-arguments" CFLAGS="$CFLAGS -Qunused-arguments"
cat >conftest.$ac_ext <<_ACEOF cat >conftest.$ac_ext <<_ACEOF
#line 4194 "configure" #line 4263 "configure"
#include "confdefs.h" #include "confdefs.h"
int int
@ -4208,16 +4277,16 @@ make an error
} }
_ACEOF _ACEOF
rm -f conftest.$ac_objext rm -f conftest.$ac_objext
if { (eval echo "$as_me:4211: \"$ac_compile\"") >&5 if { (eval echo "$as_me:4280: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5 (eval $ac_compile) 2>&5
ac_status=$? ac_status=$?
echo "$as_me:4214: \$? = $ac_status" >&5 echo "$as_me:4283: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext' { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:4217: \"$ac_try\"") >&5 { (eval echo "$as_me:4286: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
echo "$as_me:4220: \$? = $ac_status" >&5 echo "$as_me:4289: \$? = $ac_status" >&5
(exit $ac_status); }; }; then (exit $ac_status); }; }; then
CLANG_COMPILER=yes CLANG_COMPILER=yes
cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments" cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments"
@ -4228,12 +4297,12 @@ cat conftest.$ac_ext >&5
fi fi
rm -f conftest.$ac_objext conftest.$ac_ext rm -f conftest.$ac_objext conftest.$ac_ext
CFLAGS="$cf_save_CFLAGS" CFLAGS="$cf_save_CFLAGS"
echo "$as_me:4231: result: $CLANG_COMPILER" >&5 echo "$as_me:4300: result: $CLANG_COMPILER" >&5
echo "${ECHO_T}$CLANG_COMPILER" >&6 echo "${ECHO_T}$CLANG_COMPILER" >&6
fi fi
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 4236 "${as_me:-configure}" #line 4305 "${as_me:-configure}"
int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; } int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
EOF EOF
@ -4250,7 +4319,7 @@ then
# remark #981: operands are evaluated in unspecified order # remark #981: operands are evaluated in unspecified order
# warning #279: controlling expression is constant # warning #279: controlling expression is constant
{ echo "$as_me:4253: checking for $CC warning options..." >&5 { echo "$as_me:4322: checking for $CC warning options..." >&5
echo "$as_me: checking for $CC warning options..." >&6;} echo "$as_me: checking for $CC warning options..." >&6;}
cf_save_CFLAGS="$CFLAGS" cf_save_CFLAGS="$CFLAGS"
EXTRA_CFLAGS="-Wall" EXTRA_CFLAGS="-Wall"
@ -4266,12 +4335,12 @@ echo "$as_me: checking for $CC warning options..." >&6;}
wd981 wd981
do do
CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt" CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
if { (eval echo "$as_me:4269: \"$ac_compile\"") >&5 if { (eval echo "$as_me:4338: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5 (eval $ac_compile) 2>&5
ac_status=$? ac_status=$?
echo "$as_me:4272: \$? = $ac_status" >&5 echo "$as_me:4341: \$? = $ac_status" >&5
(exit $ac_status); }; then (exit $ac_status); }; then
test -n "$verbose" && echo "$as_me:4274: result: ... -$cf_opt" >&5 test -n "$verbose" && echo "$as_me:4343: result: ... -$cf_opt" >&5
echo "${ECHO_T}... -$cf_opt" >&6 echo "${ECHO_T}... -$cf_opt" >&6
EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt" EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
fi fi
@ -4280,7 +4349,7 @@ echo "${ECHO_T}... -$cf_opt" >&6
elif test "$GCC" = yes elif test "$GCC" = yes
then then
{ echo "$as_me:4283: checking for $CC warning options..." >&5 { echo "$as_me:4352: checking for $CC warning options..." >&5
echo "$as_me: checking for $CC warning options..." >&6;} echo "$as_me: checking for $CC warning options..." >&6;}
cf_save_CFLAGS="$CFLAGS" cf_save_CFLAGS="$CFLAGS"
EXTRA_CFLAGS= EXTRA_CFLAGS=
@ -4304,12 +4373,12 @@ echo "$as_me: checking for $CC warning options..." >&6;}
Wundef $cf_gcc_warnings $cf_warn_CONST Wwrite-strings Wundef $cf_gcc_warnings $cf_warn_CONST Wwrite-strings
do do
CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt" CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
if { (eval echo "$as_me:4307: \"$ac_compile\"") >&5 if { (eval echo "$as_me:4376: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5 (eval $ac_compile) 2>&5
ac_status=$? ac_status=$?
echo "$as_me:4310: \$? = $ac_status" >&5 echo "$as_me:4379: \$? = $ac_status" >&5
(exit $ac_status); }; then (exit $ac_status); }; then
test -n "$verbose" && echo "$as_me:4312: result: ... -$cf_opt" >&5 test -n "$verbose" && echo "$as_me:4381: result: ... -$cf_opt" >&5
echo "${ECHO_T}... -$cf_opt" >&6 echo "${ECHO_T}... -$cf_opt" >&6
case $cf_opt in #(vi case $cf_opt in #(vi
Wcast-qual) #(vi Wcast-qual) #(vi
@ -4320,7 +4389,7 @@ echo "${ECHO_T}... -$cf_opt" >&6
[34].*) [34].*)
test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6 test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6
echo "${as_me:-configure}:4323: testing feature is broken in gcc $GCC_VERSION ..." 1>&5 echo "${as_me:-configure}:4392: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
continue;; continue;;
esac esac
@ -4330,7 +4399,7 @@ echo "${as_me:-configure}:4323: testing feature is broken in gcc $GCC_VERSION ..
[12].*) [12].*)
test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6 test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6
echo "${as_me:-configure}:4333: testing feature is broken in gcc $GCC_VERSION ..." 1>&5 echo "${as_me:-configure}:4402: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
continue;; continue;;
esac esac
@ -4346,7 +4415,7 @@ rm -rf conftest*
fi fi
fi fi
echo "$as_me:4349: checking if you want to see long compiling messages" >&5 echo "$as_me:4418: checking if you want to see long compiling messages" >&5
echo $ECHO_N "checking if you want to see long compiling messages... $ECHO_C" >&6 echo $ECHO_N "checking if you want to see long compiling messages... $ECHO_C" >&6
# Check whether --enable-echo or --disable-echo was given. # Check whether --enable-echo or --disable-echo was given.
@ -4380,10 +4449,10 @@ else
ECHO_CC='' ECHO_CC=''
fi; fi;
echo "$as_me:4383: result: $enableval" >&5 echo "$as_me:4452: result: $enableval" >&5
echo "${ECHO_T}$enableval" >&6 echo "${ECHO_T}$enableval" >&6
echo "$as_me:4386: checking if you want to use dmalloc for testing" >&5 echo "$as_me:4455: checking if you want to use dmalloc for testing" >&5
echo $ECHO_N "checking if you want to use dmalloc for testing... $ECHO_C" >&6 echo $ECHO_N "checking if you want to use dmalloc for testing... $ECHO_C" >&6
# Check whether --with-dmalloc or --without-dmalloc was given. # Check whether --with-dmalloc or --without-dmalloc was given.
@ -4400,7 +4469,7 @@ EOF
else else
with_dmalloc= with_dmalloc=
fi; fi;
echo "$as_me:4403: result: ${with_dmalloc:-no}" >&5 echo "$as_me:4472: result: ${with_dmalloc:-no}" >&5
echo "${ECHO_T}${with_dmalloc:-no}" >&6 echo "${ECHO_T}${with_dmalloc:-no}" >&6
case .$with_cflags in #(vi case .$with_cflags in #(vi
@ -4494,23 +4563,23 @@ fi
esac esac
if test "$with_dmalloc" = yes ; then if test "$with_dmalloc" = yes ; then
echo "$as_me:4497: checking for dmalloc.h" >&5 echo "$as_me:4566: checking for dmalloc.h" >&5
echo $ECHO_N "checking for dmalloc.h... $ECHO_C" >&6 echo $ECHO_N "checking for dmalloc.h... $ECHO_C" >&6
if test "${ac_cv_header_dmalloc_h+set}" = set; then if test "${ac_cv_header_dmalloc_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6 echo $ECHO_N "(cached) $ECHO_C" >&6
else else
cat >conftest.$ac_ext <<_ACEOF cat >conftest.$ac_ext <<_ACEOF
#line 4503 "configure" #line 4572 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <dmalloc.h> #include <dmalloc.h>
_ACEOF _ACEOF
if { (eval echo "$as_me:4507: \"$ac_cpp conftest.$ac_ext\"") >&5 if { (eval echo "$as_me:4576: \"$ac_cpp conftest.$ac_ext\"") >&5
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
ac_status=$? ac_status=$?
egrep -v '^ *\+' conftest.er1 >conftest.err egrep -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1 rm -f conftest.er1
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:4513: \$? = $ac_status" >&5 echo "$as_me:4582: \$? = $ac_status" >&5
(exit $ac_status); } >/dev/null; then (exit $ac_status); } >/dev/null; then
if test -s conftest.err; then if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_c_preproc_warn_flag
@ -4529,11 +4598,11 @@ else
fi fi
rm -f conftest.err conftest.$ac_ext rm -f conftest.err conftest.$ac_ext
fi fi
echo "$as_me:4532: result: $ac_cv_header_dmalloc_h" >&5 echo "$as_me:4601: result: $ac_cv_header_dmalloc_h" >&5
echo "${ECHO_T}$ac_cv_header_dmalloc_h" >&6 echo "${ECHO_T}$ac_cv_header_dmalloc_h" >&6
if test $ac_cv_header_dmalloc_h = yes; then if test $ac_cv_header_dmalloc_h = yes; then
echo "$as_me:4536: checking for dmalloc_debug in -ldmalloc" >&5 echo "$as_me:4605: checking for dmalloc_debug in -ldmalloc" >&5
echo $ECHO_N "checking for dmalloc_debug in -ldmalloc... $ECHO_C" >&6 echo $ECHO_N "checking for dmalloc_debug in -ldmalloc... $ECHO_C" >&6
if test "${ac_cv_lib_dmalloc_dmalloc_debug+set}" = set; then if test "${ac_cv_lib_dmalloc_dmalloc_debug+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6 echo $ECHO_N "(cached) $ECHO_C" >&6
@ -4541,7 +4610,7 @@ else
ac_check_lib_save_LIBS=$LIBS ac_check_lib_save_LIBS=$LIBS
LIBS="-ldmalloc $LIBS" LIBS="-ldmalloc $LIBS"
cat >conftest.$ac_ext <<_ACEOF cat >conftest.$ac_ext <<_ACEOF
#line 4544 "configure" #line 4613 "configure"
#include "confdefs.h" #include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */ /* Override any gcc2 internal prototype to avoid an error. */
@ -4560,16 +4629,16 @@ dmalloc_debug ();
} }
_ACEOF _ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:4563: \"$ac_link\"") >&5 if { (eval echo "$as_me:4632: \"$ac_link\"") >&5
(eval $ac_link) 2>&5 (eval $ac_link) 2>&5
ac_status=$? ac_status=$?
echo "$as_me:4566: \$? = $ac_status" >&5 echo "$as_me:4635: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext' { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:4569: \"$ac_try\"") >&5 { (eval echo "$as_me:4638: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
echo "$as_me:4572: \$? = $ac_status" >&5 echo "$as_me:4641: \$? = $ac_status" >&5
(exit $ac_status); }; }; then (exit $ac_status); }; }; then
ac_cv_lib_dmalloc_dmalloc_debug=yes ac_cv_lib_dmalloc_dmalloc_debug=yes
else else
@ -4580,7 +4649,7 @@ fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS LIBS=$ac_check_lib_save_LIBS
fi fi
echo "$as_me:4583: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5 echo "$as_me:4652: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5
echo "${ECHO_T}$ac_cv_lib_dmalloc_dmalloc_debug" >&6 echo "${ECHO_T}$ac_cv_lib_dmalloc_dmalloc_debug" >&6
if test $ac_cv_lib_dmalloc_dmalloc_debug = yes; then if test $ac_cv_lib_dmalloc_dmalloc_debug = yes; then
cat >>confdefs.h <<EOF cat >>confdefs.h <<EOF
@ -4595,7 +4664,7 @@ fi
fi fi
echo "$as_me:4598: checking if you want to use dbmalloc for testing" >&5 echo "$as_me:4667: checking if you want to use dbmalloc for testing" >&5
echo $ECHO_N "checking if you want to use dbmalloc for testing... $ECHO_C" >&6 echo $ECHO_N "checking if you want to use dbmalloc for testing... $ECHO_C" >&6
# Check whether --with-dbmalloc or --without-dbmalloc was given. # Check whether --with-dbmalloc or --without-dbmalloc was given.
@ -4612,7 +4681,7 @@ EOF
else else
with_dbmalloc= with_dbmalloc=
fi; fi;
echo "$as_me:4615: result: ${with_dbmalloc:-no}" >&5 echo "$as_me:4684: result: ${with_dbmalloc:-no}" >&5
echo "${ECHO_T}${with_dbmalloc:-no}" >&6 echo "${ECHO_T}${with_dbmalloc:-no}" >&6
case .$with_cflags in #(vi case .$with_cflags in #(vi
@ -4706,23 +4775,23 @@ fi
esac esac
if test "$with_dbmalloc" = yes ; then if test "$with_dbmalloc" = yes ; then
echo "$as_me:4709: checking for dbmalloc.h" >&5 echo "$as_me:4778: checking for dbmalloc.h" >&5
echo $ECHO_N "checking for dbmalloc.h... $ECHO_C" >&6 echo $ECHO_N "checking for dbmalloc.h... $ECHO_C" >&6
if test "${ac_cv_header_dbmalloc_h+set}" = set; then if test "${ac_cv_header_dbmalloc_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6 echo $ECHO_N "(cached) $ECHO_C" >&6
else else
cat >conftest.$ac_ext <<_ACEOF cat >conftest.$ac_ext <<_ACEOF
#line 4715 "configure" #line 4784 "configure"
#include "confdefs.h" #include "confdefs.h"
#include <dbmalloc.h> #include <dbmalloc.h>
_ACEOF _ACEOF
if { (eval echo "$as_me:4719: \"$ac_cpp conftest.$ac_ext\"") >&5 if { (eval echo "$as_me:4788: \"$ac_cpp conftest.$ac_ext\"") >&5
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
ac_status=$? ac_status=$?
egrep -v '^ *\+' conftest.er1 >conftest.err egrep -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1 rm -f conftest.er1
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:4725: \$? = $ac_status" >&5 echo "$as_me:4794: \$? = $ac_status" >&5
(exit $ac_status); } >/dev/null; then (exit $ac_status); } >/dev/null; then
if test -s conftest.err; then if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_c_preproc_warn_flag
@ -4741,11 +4810,11 @@ else
fi fi
rm -f conftest.err conftest.$ac_ext rm -f conftest.err conftest.$ac_ext
fi fi
echo "$as_me:4744: result: $ac_cv_header_dbmalloc_h" >&5 echo "$as_me:4813: result: $ac_cv_header_dbmalloc_h" >&5
echo "${ECHO_T}$ac_cv_header_dbmalloc_h" >&6 echo "${ECHO_T}$ac_cv_header_dbmalloc_h" >&6
if test $ac_cv_header_dbmalloc_h = yes; then if test $ac_cv_header_dbmalloc_h = yes; then
echo "$as_me:4748: checking for debug_malloc in -ldbmalloc" >&5 echo "$as_me:4817: checking for debug_malloc in -ldbmalloc" >&5
echo $ECHO_N "checking for debug_malloc in -ldbmalloc... $ECHO_C" >&6 echo $ECHO_N "checking for debug_malloc in -ldbmalloc... $ECHO_C" >&6
if test "${ac_cv_lib_dbmalloc_debug_malloc+set}" = set; then if test "${ac_cv_lib_dbmalloc_debug_malloc+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6 echo $ECHO_N "(cached) $ECHO_C" >&6
@ -4753,7 +4822,7 @@ else
ac_check_lib_save_LIBS=$LIBS ac_check_lib_save_LIBS=$LIBS
LIBS="-ldbmalloc $LIBS" LIBS="-ldbmalloc $LIBS"
cat >conftest.$ac_ext <<_ACEOF cat >conftest.$ac_ext <<_ACEOF
#line 4756 "configure" #line 4825 "configure"
#include "confdefs.h" #include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */ /* Override any gcc2 internal prototype to avoid an error. */
@ -4772,16 +4841,16 @@ debug_malloc ();
} }
_ACEOF _ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:4775: \"$ac_link\"") >&5 if { (eval echo "$as_me:4844: \"$ac_link\"") >&5
(eval $ac_link) 2>&5 (eval $ac_link) 2>&5
ac_status=$? ac_status=$?
echo "$as_me:4778: \$? = $ac_status" >&5 echo "$as_me:4847: \$? = $ac_status" >&5
(exit $ac_status); } && (exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext' { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:4781: \"$ac_try\"") >&5 { (eval echo "$as_me:4850: \"$ac_try\"") >&5
(eval $ac_try) 2>&5 (eval $ac_try) 2>&5
ac_status=$? ac_status=$?
echo "$as_me:4784: \$? = $ac_status" >&5 echo "$as_me:4853: \$? = $ac_status" >&5
(exit $ac_status); }; }; then (exit $ac_status); }; }; then
ac_cv_lib_dbmalloc_debug_malloc=yes ac_cv_lib_dbmalloc_debug_malloc=yes
else else
@ -4792,7 +4861,7 @@ fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS LIBS=$ac_check_lib_save_LIBS
fi fi
echo "$as_me:4795: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5 echo "$as_me:4864: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5
echo "${ECHO_T}$ac_cv_lib_dbmalloc_debug_malloc" >&6 echo "${ECHO_T}$ac_cv_lib_dbmalloc_debug_malloc" >&6
if test $ac_cv_lib_dbmalloc_debug_malloc = yes; then if test $ac_cv_lib_dbmalloc_debug_malloc = yes; then
cat >>confdefs.h <<EOF cat >>confdefs.h <<EOF
@ -4807,7 +4876,7 @@ fi
fi fi
echo "$as_me:4810: checking if you want to use valgrind for testing" >&5 echo "$as_me:4879: checking if you want to use valgrind for testing" >&5
echo $ECHO_N "checking if you want to use valgrind for testing... $ECHO_C" >&6 echo $ECHO_N "checking if you want to use valgrind for testing... $ECHO_C" >&6
# Check whether --with-valgrind or --without-valgrind was given. # Check whether --with-valgrind or --without-valgrind was given.
@ -4824,7 +4893,7 @@ EOF
else else
with_valgrind= with_valgrind=
fi; fi;
echo "$as_me:4827: result: ${with_valgrind:-no}" >&5 echo "$as_me:4896: result: ${with_valgrind:-no}" >&5
echo "${ECHO_T}${with_valgrind:-no}" >&6 echo "${ECHO_T}${with_valgrind:-no}" >&6
case .$with_cflags in #(vi case .$with_cflags in #(vi
@ -4917,7 +4986,7 @@ fi
;; ;;
esac esac
echo "$as_me:4920: checking if you want to perform memory-leak testing" >&5 echo "$as_me:4989: checking if you want to perform memory-leak testing" >&5
echo $ECHO_N "checking if you want to perform memory-leak testing... $ECHO_C" >&6 echo $ECHO_N "checking if you want to perform memory-leak testing... $ECHO_C" >&6
# Check whether --enable-leaks or --disable-leaks was given. # Check whether --enable-leaks or --disable-leaks was given.
@ -4927,7 +4996,7 @@ if test "${enable_leaks+set}" = set; then
else else
: ${with_no_leaks:=no} : ${with_no_leaks:=no}
fi; fi;
echo "$as_me:4930: result: $with_no_leaks" >&5 echo "$as_me:4999: result: $with_no_leaks" >&5
echo "${ECHO_T}$with_no_leaks" >&6 echo "${ECHO_T}$with_no_leaks" >&6
if test "$with_no_leaks" = yes ; then if test "$with_no_leaks" = yes ; then
@ -5023,7 +5092,7 @@ DEFS=-DHAVE_CONFIG_H
: ${CONFIG_STATUS=./config.status} : ${CONFIG_STATUS=./config.status}
ac_clean_files_save=$ac_clean_files ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files $CONFIG_STATUS" ac_clean_files="$ac_clean_files $CONFIG_STATUS"
{ echo "$as_me:5026: creating $CONFIG_STATUS" >&5 { echo "$as_me:5095: creating $CONFIG_STATUS" >&5
echo "$as_me: creating $CONFIG_STATUS" >&6;} echo "$as_me: creating $CONFIG_STATUS" >&6;}
cat >$CONFIG_STATUS <<_ACEOF cat >$CONFIG_STATUS <<_ACEOF
#! $SHELL #! $SHELL
@ -5196,7 +5265,7 @@ cat >>$CONFIG_STATUS <<\EOF
echo "$ac_cs_version"; exit 0 ;; echo "$ac_cs_version"; exit 0 ;;
--he | --h) --he | --h)
# Conflict between --help and --header # Conflict between --help and --header
{ { echo "$as_me:5199: error: ambiguous option: $1 { { echo "$as_me:5268: error: ambiguous option: $1
Try \`$0 --help' for more information." >&5 Try \`$0 --help' for more information." >&5
echo "$as_me: error: ambiguous option: $1 echo "$as_me: error: ambiguous option: $1
Try \`$0 --help' for more information." >&2;} Try \`$0 --help' for more information." >&2;}
@ -5215,7 +5284,7 @@ Try \`$0 --help' for more information." >&2;}
ac_need_defaults=false;; ac_need_defaults=false;;
# This is an error. # This is an error.
-*) { { echo "$as_me:5218: error: unrecognized option: $1 -*) { { echo "$as_me:5287: error: unrecognized option: $1
Try \`$0 --help' for more information." >&5 Try \`$0 --help' for more information." >&5
echo "$as_me: error: unrecognized option: $1 echo "$as_me: error: unrecognized option: $1
Try \`$0 --help' for more information." >&2;} Try \`$0 --help' for more information." >&2;}
@ -5252,7 +5321,7 @@ do
# Handling of arguments. # Handling of arguments.
"makefile" ) CONFIG_FILES="$CONFIG_FILES makefile" ;; "makefile" ) CONFIG_FILES="$CONFIG_FILES makefile" ;;
"config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h:config_h.in" ;; "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h:config_h.in" ;;
*) { { echo "$as_me:5255: error: invalid argument: $ac_config_target" >&5 *) { { echo "$as_me:5324: error: invalid argument: $ac_config_target" >&5
echo "$as_me: error: invalid argument: $ac_config_target" >&2;} echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
{ (exit 1); exit 1; }; };; { (exit 1); exit 1; }; };;
esac esac
@ -5487,7 +5556,7 @@ done; }
esac esac
if test x"$ac_file" != x-; then if test x"$ac_file" != x-; then
{ echo "$as_me:5490: creating $ac_file" >&5 { echo "$as_me:5559: creating $ac_file" >&5
echo "$as_me: creating $ac_file" >&6;} echo "$as_me: creating $ac_file" >&6;}
rm -f "$ac_file" rm -f "$ac_file"
fi fi
@ -5505,7 +5574,7 @@ echo "$as_me: creating $ac_file" >&6;}
-) echo $tmp/stdin ;; -) echo $tmp/stdin ;;
[\\/$]*) [\\/$]*)
# Absolute (can't be DOS-style, as IFS=:) # Absolute (can't be DOS-style, as IFS=:)
test -f "$f" || { { echo "$as_me:5508: error: cannot find input file: $f" >&5 test -f "$f" || { { echo "$as_me:5577: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;} echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; } { (exit 1); exit 1; }; }
echo $f;; echo $f;;
@ -5518,7 +5587,7 @@ echo "$as_me: error: cannot find input file: $f" >&2;}
echo $srcdir/$f echo $srcdir/$f
else else
# /dev/null tree # /dev/null tree
{ { echo "$as_me:5521: error: cannot find input file: $f" >&5 { { echo "$as_me:5590: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;} echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; } { (exit 1); exit 1; }; }
fi;; fi;;
@ -5534,7 +5603,7 @@ cat >>$CONFIG_STATUS <<\EOF
if test -n "$ac_seen"; then if test -n "$ac_seen"; then
ac_used=`grep '@datarootdir@' $ac_item` ac_used=`grep '@datarootdir@' $ac_item`
if test -z "$ac_used"; then if test -z "$ac_used"; then
{ echo "$as_me:5537: WARNING: datarootdir was used implicitly but not set: { echo "$as_me:5606: WARNING: datarootdir was used implicitly but not set:
$ac_seen" >&5 $ac_seen" >&5
echo "$as_me: WARNING: datarootdir was used implicitly but not set: echo "$as_me: WARNING: datarootdir was used implicitly but not set:
$ac_seen" >&2;} $ac_seen" >&2;}
@ -5543,7 +5612,7 @@ $ac_seen" >&2;}
fi fi
ac_seen=`grep '${datarootdir}' $ac_item` ac_seen=`grep '${datarootdir}' $ac_item`
if test -n "$ac_seen"; then if test -n "$ac_seen"; then
{ echo "$as_me:5546: WARNING: datarootdir was used explicitly but not set: { echo "$as_me:5615: WARNING: datarootdir was used explicitly but not set:
$ac_seen" >&5 $ac_seen" >&5
echo "$as_me: WARNING: datarootdir was used explicitly but not set: echo "$as_me: WARNING: datarootdir was used explicitly but not set:
$ac_seen" >&2;} $ac_seen" >&2;}
@ -5580,7 +5649,7 @@ s,@INSTALL@,$ac_INSTALL,;t t
ac_init=`egrep '[ ]*'$ac_name'[ ]*=' $ac_file` ac_init=`egrep '[ ]*'$ac_name'[ ]*=' $ac_file`
if test -z "$ac_init"; then if test -z "$ac_init"; then
ac_seen=`echo "$ac_seen" |sed -e 's,^,'$ac_file':,'` ac_seen=`echo "$ac_seen" |sed -e 's,^,'$ac_file':,'`
{ echo "$as_me:5583: WARNING: Variable $ac_name is used but was not set: { echo "$as_me:5652: WARNING: Variable $ac_name is used but was not set:
$ac_seen" >&5 $ac_seen" >&5
echo "$as_me: WARNING: Variable $ac_name is used but was not set: echo "$as_me: WARNING: Variable $ac_name is used but was not set:
$ac_seen" >&2;} $ac_seen" >&2;}
@ -5591,7 +5660,7 @@ $ac_seen" >&2;}
egrep -n '@[A-Z_][A-Z_0-9]+@' $ac_file >>$tmp/out egrep -n '@[A-Z_][A-Z_0-9]+@' $ac_file >>$tmp/out
if test -s $tmp/out; then if test -s $tmp/out; then
ac_seen=`sed -e 's,^,'$ac_file':,' < $tmp/out` ac_seen=`sed -e 's,^,'$ac_file':,' < $tmp/out`
{ echo "$as_me:5594: WARNING: Some variables may not be substituted: { echo "$as_me:5663: WARNING: Some variables may not be substituted:
$ac_seen" >&5 $ac_seen" >&5
echo "$as_me: WARNING: Some variables may not be substituted: echo "$as_me: WARNING: Some variables may not be substituted:
$ac_seen" >&2;} $ac_seen" >&2;}
@ -5640,7 +5709,7 @@ for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
* ) ac_file_in=$ac_file.in ;; * ) ac_file_in=$ac_file.in ;;
esac esac
test x"$ac_file" != x- && { echo "$as_me:5643: creating $ac_file" >&5 test x"$ac_file" != x- && { echo "$as_me:5712: creating $ac_file" >&5
echo "$as_me: creating $ac_file" >&6;} echo "$as_me: creating $ac_file" >&6;}
# First look for the input files in the build tree, otherwise in the # First look for the input files in the build tree, otherwise in the
@ -5651,7 +5720,7 @@ echo "$as_me: creating $ac_file" >&6;}
-) echo $tmp/stdin ;; -) echo $tmp/stdin ;;
[\\/$]*) [\\/$]*)
# Absolute (can't be DOS-style, as IFS=:) # Absolute (can't be DOS-style, as IFS=:)
test -f "$f" || { { echo "$as_me:5654: error: cannot find input file: $f" >&5 test -f "$f" || { { echo "$as_me:5723: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;} echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; } { (exit 1); exit 1; }; }
echo $f;; echo $f;;
@ -5664,7 +5733,7 @@ echo "$as_me: error: cannot find input file: $f" >&2;}
echo $srcdir/$f echo $srcdir/$f
else else
# /dev/null tree # /dev/null tree
{ { echo "$as_me:5667: error: cannot find input file: $f" >&5 { { echo "$as_me:5736: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;} echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; } { (exit 1); exit 1; }; }
fi;; fi;;
@ -5782,7 +5851,7 @@ cat >>$CONFIG_STATUS <<\EOF
rm -f $tmp/in rm -f $tmp/in
if test x"$ac_file" != x-; then if test x"$ac_file" != x-; then
if cmp -s $ac_file $tmp/config.h 2>/dev/null; then if cmp -s $ac_file $tmp/config.h 2>/dev/null; then
{ echo "$as_me:5785: $ac_file is unchanged" >&5 { echo "$as_me:5854: $ac_file is unchanged" >&5
echo "$as_me: $ac_file is unchanged" >&6;} echo "$as_me: $ac_file is unchanged" >&6;}
else else
ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \

View File

@ -1,7 +1,7 @@
dnl Process this file with 'autoconf' to produce a 'configure' script dnl Process this file with 'autoconf' to produce a 'configure' script
dnl $Id: configure.in,v 1.18 2014/04/06 19:11:51 tom Exp $ dnl $Id: configure.in,v 1.19 2014/04/22 22:56:51 tom Exp $
AC_PREREQ(2.52.20011201) AC_PREREQ(2.52.20011201)
AC_REVISION($Revision: 1.18 $) AC_REVISION($Revision: 1.19 $)
AC_INIT(main.c) AC_INIT(main.c)
AC_CONFIG_HEADER(config.h:config_h.in) AC_CONFIG_HEADER(config.h:config_h.in)
@ -18,6 +18,7 @@ CF_PROG_LINT
CF_XOPEN_SOURCE CF_XOPEN_SOURCE
AC_CHECK_HEADERS(fcntl.h) AC_CHECK_HEADERS(fcntl.h)
CF_MKSTEMP CF_MKSTEMP
AC_HAVE_FUNCS(vsnprintf)
AC_MSG_CHECKING(for maximum table size) AC_MSG_CHECKING(for maximum table size)
AC_ARG_WITH([max-table-size], AC_ARG_WITH([max-table-size],

9
defs.h
View File

@ -1,4 +1,4 @@
/* $Id: defs.h,v 1.47 2014/04/09 21:23:45 Rick.Spates Exp $ */ /* $Id: defs.h,v 1.49 2014/04/22 23:34:34 tom Exp $ */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
#include <config.h> #include <config.h>
@ -409,6 +409,10 @@ extern param *parse_param;
#endif #endif
#endif #endif
#ifndef GCC_PRINTFLIKE
#define GCC_PRINTFLIKE(fmt,var) /*nothing*/
#endif
/* closure.c */ /* closure.c */
extern void closure(Value_t * nucleus, int n); extern void closure(Value_t * nucleus, int n);
extern void finalize_closure(void); extern void finalize_closure(void);
@ -488,7 +492,7 @@ struct mstring
char *base, *ptr, *end; char *base, *ptr, *end;
}; };
extern void msprintf(struct mstring *, const char *, ...); extern void msprintf(struct mstring *, const char *, ...) GCC_PRINTFLIKE(2,3);
extern int mputchar(struct mstring *, int); extern int mputchar(struct mstring *, int);
extern struct mstring *msnew(void); extern struct mstring *msnew(void);
extern char *msdone(struct mstring *); extern char *msdone(struct mstring *);
@ -535,5 +539,6 @@ extern void lr0_leaks(void);
extern void lalr_leaks(void); extern void lalr_leaks(void);
extern void mkpar_leaks(void); extern void mkpar_leaks(void);
extern void output_leaks(void); extern void output_leaks(void);
extern void mstring_leaks(void);
extern void reader_leaks(void); extern void reader_leaks(void);
#endif #endif

3
main.c
View File

@ -1,4 +1,4 @@
/* $Id: main.c,v 1.49 2014/04/09 21:25:20 Rick.Spates Exp $ */ /* $Id: main.c,v 1.50 2014/04/22 23:34:47 tom Exp $ */
#include <signal.h> #include <signal.h>
#ifndef _WIN32 #ifndef _WIN32
@ -166,6 +166,7 @@ done(int k)
lr0_leaks(); lr0_leaks();
lalr_leaks(); lalr_leaks();
mkpar_leaks(); mkpar_leaks();
mstring_leaks();
output_leaks(); output_leaks();
reader_leaks(); reader_leaks();
#endif #endif

View File

@ -1,4 +1,4 @@
/* $Id: mstring.c,v 1.3 2014/04/08 20:37:26 tom Exp $ */ /* $Id: mstring.c,v 1.6 2014/04/22 23:36:31 tom Exp $ */
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
@ -13,39 +13,82 @@
#define TAIL 8 #define TAIL 8
#if defined(YYBTYACC) #if defined(YYBTYACC)
static char *buf_ptr;
static size_t buf_len;
void void
msprintf(struct mstring *s, const char *fmt,...) msprintf(struct mstring *s, const char *fmt,...)
{ {
static char buf[4096]; /* a big static buffer */
va_list args; va_list args;
size_t len; size_t len;
#ifdef HAVE_VSNPRINTF
int changed;
#endif
if (!s || !s->base) if (!s || !s->base)
return; return;
va_start(args, fmt);
vsprintf(buf, fmt, args);
va_end(args);
len = strlen(buf); if (buf_len == 0)
{
buf_ptr = malloc(buf_len = 4096);
}
if (buf_ptr == 0)
{
return;
}
#ifdef HAVE_VSNPRINTF
do
{
va_start(args, fmt);
len = (size_t) vsnprintf(buf_ptr, buf_len, fmt, args);
va_end(args);
if ((changed = (len > buf_len)) != 0)
{
char *new_ptr = realloc(buf_ptr, (buf_len * 3) / 2);
if (new_ptr == 0)
{
free(buf_ptr);
buf_ptr = 0;
return;
}
buf_ptr = new_ptr;
}
}
while (changed);
#else
va_start(args, fmt);
len = (size_t) vsprintf(buf_ptr, fmt, args);
va_end(args);
if (len >= buf_len)
return;
#endif
if (len > (size_t) (s->end - s->ptr)) if (len > (size_t) (s->end - s->ptr))
{ {
char *new_base;
size_t cp = (size_t) (s->ptr - s->base); size_t cp = (size_t) (s->ptr - s->base);
size_t cl = (size_t) (s->end - s->base); size_t cl = (size_t) (s->end - s->base);
size_t nl = cl; size_t nl = cl;
while (len > (nl - cp)) while (len > (nl - cp))
nl = nl + nl + TAIL; nl = nl + nl + TAIL;
if ((s->base = realloc(s->base, nl))) if ((new_base = realloc(s->base, nl)))
{ {
s->base = new_base;
s->ptr = s->base + cp; s->ptr = s->base + cp;
s->end = s->base + nl; s->end = s->base + nl;
} }
else else
{ {
s->ptr = s->end = 0; free(s->base);
s->base = 0;
s->ptr = 0;
s->end = 0;
return; return;
} }
} }
memcpy(s->ptr, buf, len); memcpy(s->ptr, buf_ptr, len);
s->ptr += len; s->ptr += len;
} }
#endif #endif
@ -76,11 +119,11 @@ mputchar(struct mstring *s, int ch)
struct mstring * struct mstring *
msnew(void) msnew(void)
{ {
struct mstring *n = malloc(sizeof(struct mstring)); struct mstring *n = TMALLOC(struct mstring, 1);
if (n) if (n)
{ {
if ((n->base = n->ptr = malloc(HEAD)) != 0) if ((n->base = n->ptr = MALLOC(HEAD)) != 0)
{ {
n->end = n->base + HEAD; n->end = n->base + HEAD;
} }
@ -150,3 +193,15 @@ strnshash(const char *s)
return h; return h;
} }
#endif #endif
#ifdef NO_LEAKS
void
mstring_leaks(void)
{
#if defined(YYBTYACC)
free(buf_ptr);
buf_ptr = 0;
buf_len = 0;
#endif
}
#endif

View File

@ -1,4 +1,4 @@
/* $Id: output.c,v 1.65 2014/04/09 21:10:48 tom Exp $ */ /* $Id: output.c,v 1.67 2014/04/22 23:16:57 tom Exp $ */
#include "defs.h" #include "defs.h"
@ -315,9 +315,9 @@ output_accessing_symbols(void)
} }
static Value_t static Value_t
find_conflict_base(Value_t cbase) find_conflict_base(int cbase)
{ {
Value_t i, j; int i, j;
for (i = 0; i < cbase; i++) for (i = 0; i < cbase; i++)
{ {
@ -327,9 +327,9 @@ find_conflict_base(Value_t cbase)
break; break;
} }
if (j + cbase >= nconflicts) if (j + cbase >= nconflicts)
return i; break;
} }
return cbase; return (Value_t) i;
} }
#endif #endif

View File

@ -1,8 +1,8 @@
Summary: byacc - public domain Berkeley LALR Yacc parser generator Summary: byacc - public domain Berkeley LALR Yacc parser generator
%define AppProgram byacc %define AppProgram byacc
%define AppVersion 20140409 %define AppVersion 20140422
%define UseProgram yacc %define UseProgram yacc
# $XTermId: byacc.spec,v 1.19 2014/04/09 19:53:59 tom Exp $ # $XTermId: byacc.spec,v 1.20 2014/04/22 08:13:20 tom Exp $
Name: %{AppProgram} Name: %{AppProgram}
Version: %{AppVersion} Version: %{AppVersion}
Release: 1 Release: 1

View File

@ -1,3 +1,9 @@
byacc (20140422) unstable; urgency=low
* maintenance updates
-- Thomas E. Dickey <dickey@invisible-island.net> Tue, 22 Apr 2014 04:13:20 -0400
byacc (20140409) unstable; urgency=low byacc (20140409) unstable; urgency=low
* integrate Tom Shield's btyacc-related changes * integrate Tom Shield's btyacc-related changes

View File

@ -1,8 +1,8 @@
Summary: byacc - public domain Berkeley LALR Yacc parser generator Summary: byacc - public domain Berkeley LALR Yacc parser generator
%define AppProgram byacc %define AppProgram byacc
%define AppVersion 20140409 %define AppVersion 20140422
%define UseProgram yacc %define UseProgram yacc
# $XTermId: mingw-byacc.spec,v 1.2 2014/04/09 19:53:59 tom Exp $ # $XTermId: mingw-byacc.spec,v 1.3 2014/04/22 08:13:20 tom Exp $
Name: %{AppProgram} Name: %{AppProgram}
Version: %{AppVersion} Version: %{AppVersion}
Release: 1 Release: 1

View File

@ -1,7 +1,7 @@
# $NetBSD: Makefile,v 1.9 2008/07/24 17:13:00 tonnerre Exp $ # $NetBSD: Makefile,v 1.9 2008/07/24 17:13:00 tonnerre Exp $
# #
DISTNAME= byacc-20140409 DISTNAME= byacc-20140422
PKGREVISION= 1 PKGREVISION= 1
CATEGORIES= devel CATEGORIES= devel
MASTER_SITES= ftp://invisible-island.net/byacc/ MASTER_SITES= ftp://invisible-island.net/byacc/