mirror of
https://github.com/yann64/haikuports.git
synced 2026-05-04 22:18:55 +02:00
bison: added recipe for version 3.0.4
This commit is contained in:
@@ -22,10 +22,10 @@ SECONDARY_ARCHITECTURES="x86 x86_gcc2"
|
|||||||
|
|
||||||
|
|
||||||
PROVIDES="
|
PROVIDES="
|
||||||
bison$secondaryArchSuffix = $portVersion compat >= 2.6
|
bison$secondaryArchSuffix = $portVersion compat >= 2.5
|
||||||
cmd:bison$secondaryArchSuffix = $portVersion compat >= 2.6
|
cmd:bison$secondaryArchSuffix = $portVersion compat >= 2.5
|
||||||
cmd:yacc$secondaryArchSuffix
|
cmd:yacc$secondaryArchSuffix
|
||||||
devel:liby$secondaryArchSuffix = $portVersion compat >= 2.6
|
devel:liby$secondaryArchSuffix = $portVersion compat >= 2.5
|
||||||
"
|
"
|
||||||
REQUIRES="
|
REQUIRES="
|
||||||
haiku$secondaryArchSuffix
|
haiku$secondaryArchSuffix
|
||||||
|
|||||||
71
sys-devel/bison/bison-3.0.4.recipe
Normal file
71
sys-devel/bison/bison-3.0.4.recipe
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
SUMMARY="A yacc-compatible parser generator"
|
||||||
|
DESCRIPTION="Bison is a general-purpose parser generator that converts an \
|
||||||
|
annotated context-free grammar into an LALR(1) or GLR parser for that \
|
||||||
|
grammar. Once you are proficient with Bison, you can use it to develop a wide \
|
||||||
|
range of language parsers, from those used in simple desk calculators to \
|
||||||
|
complex programming languages.
|
||||||
|
|
||||||
|
Bison is upward compatible with Yacc: all properly-written Yacc grammars ought \
|
||||||
|
to work with Bison with no change. Anyone familiar with Yacc should be able to \
|
||||||
|
use Bison with little trouble. You need to be fluent in C or C++ programming \
|
||||||
|
in order to use Bison."
|
||||||
|
HOMEPAGE="http://www.gnu.org/software/bison/bison.html"
|
||||||
|
COPYRIGHT="1992-2011 Free Software Foundation, Inc."
|
||||||
|
LICENSE="GNU GPL v3"
|
||||||
|
REVISION="1"
|
||||||
|
SOURCE_URI="http://ftp.gnu.org/gnu/bison/bison-$portVersion.tar.xz"
|
||||||
|
CHECKSUM_SHA256="a72428c7917bdf9fa93cb8181c971b6e22834125848cf1d03ce10b1bb0716fe1"
|
||||||
|
PATCHES="bison-${portVersion}.patchset"
|
||||||
|
|
||||||
|
ARCHITECTURES="x86_gcc2 x86 x86_64"
|
||||||
|
SECONDARY_ARCHITECTURES="x86 x86_gcc2"
|
||||||
|
|
||||||
|
|
||||||
|
PROVIDES="
|
||||||
|
bison$secondaryArchSuffix = $portVersion compat >= 2
|
||||||
|
cmd:bison$secondaryArchSuffix = $portVersion compat >= 2
|
||||||
|
cmd:yacc$secondaryArchSuffix
|
||||||
|
devel:liby$secondaryArchSuffix = $portVersion compat >= 2
|
||||||
|
"
|
||||||
|
REQUIRES="
|
||||||
|
haiku$secondaryArchSuffix
|
||||||
|
cmd:m4
|
||||||
|
"
|
||||||
|
|
||||||
|
BUILD_REQUIRES="
|
||||||
|
haiku${secondaryArchSuffix}_devel
|
||||||
|
"
|
||||||
|
BUILD_PREREQUIRES="
|
||||||
|
cmd:gcc$secondaryArchSuffix
|
||||||
|
cmd:ld$secondaryArchSuffix
|
||||||
|
cmd:awk
|
||||||
|
cmd:diff
|
||||||
|
cmd:flex
|
||||||
|
cmd:help2man
|
||||||
|
cmd:m4
|
||||||
|
cmd:make
|
||||||
|
cmd:makeinfo
|
||||||
|
cmd:perl
|
||||||
|
cmd:sed
|
||||||
|
"
|
||||||
|
|
||||||
|
BUILD()
|
||||||
|
{
|
||||||
|
runConfigure ./configure
|
||||||
|
make $jobArgs
|
||||||
|
}
|
||||||
|
|
||||||
|
INSTALL()
|
||||||
|
{
|
||||||
|
make install
|
||||||
|
|
||||||
|
prepareInstalledDevelLibs liby
|
||||||
|
|
||||||
|
rm $libDir/charset.alias
|
||||||
|
rmdir $libDir
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST()
|
||||||
|
{
|
||||||
|
make check
|
||||||
|
}
|
||||||
196
sys-devel/bison/patches/bison-3.0.4.patchset
Normal file
196
sys-devel/bison/patches/bison-3.0.4.patchset
Normal file
@@ -0,0 +1,196 @@
|
|||||||
|
From 106cc98f0ecd239bc71eb44a908e9c7e0f63af67 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jerome Duval <jerome.duval@gmail.com>
|
||||||
|
Date: Thu, 24 Dec 2015 14:57:38 +0000
|
||||||
|
Subject: gcc2 fix
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/AnnotationList.c b/src/AnnotationList.c
|
||||||
|
index 586ed9b..375001a 100644
|
||||||
|
--- a/src/AnnotationList.c
|
||||||
|
+++ b/src/AnnotationList.c
|
||||||
|
@@ -230,12 +230,12 @@ AnnotationList__computePredecessorAnnotations (AnnotationList *self, state *s,
|
||||||
|
state **predecessor;
|
||||||
|
for (predecessor = predecessors[s->number]; *predecessor; ++predecessor)
|
||||||
|
{
|
||||||
|
+ bool potential_contribution = false;
|
||||||
|
+ bitset *lookaheads = NULL;
|
||||||
|
AnnotationList *annotation_node =
|
||||||
|
AnnotationList__alloc_on_obstack (
|
||||||
|
self->inadequacyNode->contributionCount, annotations_obstackp);
|
||||||
|
annotation_node->inadequacyNode = self->inadequacyNode;
|
||||||
|
- bool potential_contribution = false;
|
||||||
|
- bitset *lookaheads = NULL;
|
||||||
|
{
|
||||||
|
ContributionIndex ci;
|
||||||
|
for (ci = 0; ci < self->inadequacyNode->contributionCount; ++ci)
|
||||||
|
diff --git a/src/complain.c b/src/complain.c
|
||||||
|
index 22e18cb..4cc2361 100644
|
||||||
|
--- a/src/complain.c
|
||||||
|
+++ b/src/complain.c
|
||||||
|
@@ -104,6 +104,7 @@ ARGMATCH_VERIFY (warnings_args, warnings_types);
|
||||||
|
void
|
||||||
|
warning_argmatch (char const *arg, size_t no, size_t err)
|
||||||
|
{
|
||||||
|
+ size_t b;
|
||||||
|
int value = XARGMATCH ("--warning", arg + no + err,
|
||||||
|
warnings_args, warnings_types);
|
||||||
|
|
||||||
|
@@ -114,7 +115,6 @@ warning_argmatch (char const *arg, size_t no, size_t err)
|
||||||
|
no = !no;
|
||||||
|
}
|
||||||
|
|
||||||
|
- size_t b;
|
||||||
|
for (b = 0; b < warnings_size; ++b)
|
||||||
|
if (value & 1 << b)
|
||||||
|
{
|
||||||
|
diff --git a/src/getargs.c b/src/getargs.c
|
||||||
|
index fa9e3c1..433ff27 100644
|
||||||
|
--- a/src/getargs.c
|
||||||
|
+++ b/src/getargs.c
|
||||||
|
@@ -253,6 +253,7 @@ usage (int status)
|
||||||
|
program_name);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
+ const char *lc_messages = setlocale (LC_MESSAGES, NULL);
|
||||||
|
/* For ../build-aux/cross-options.pl to work, use the format:
|
||||||
|
^ -S, --long[=ARGS] (whitespace)
|
||||||
|
A --long option is required.
|
||||||
|
@@ -363,7 +364,6 @@ FEATURE is a list of comma separated words that can include:\n\
|
||||||
|
/* Don't output this redundant message for English locales.
|
||||||
|
Note we still output for 'C' so that it gets included in the
|
||||||
|
man page. */
|
||||||
|
- const char *lc_messages = setlocale (LC_MESSAGES, NULL);
|
||||||
|
if (lc_messages && !STREQ (lc_messages, "en_"))
|
||||||
|
/* TRANSLATORS: Replace LANG_CODE in this URL with your language
|
||||||
|
code <http://translationproject.org/team/LANG_CODE.html> to
|
||||||
|
diff --git a/src/ielr.c b/src/ielr.c
|
||||||
|
index 8b28e67..29a2726 100644
|
||||||
|
--- a/src/ielr.c
|
||||||
|
+++ b/src/ielr.c
|
||||||
|
@@ -1032,9 +1032,9 @@ ielr_split_states (bitsetv follow_kernel_items, bitsetv always_follows,
|
||||||
|
lookahead sets. */
|
||||||
|
if (!annotation_lists)
|
||||||
|
{
|
||||||
|
+ state_list *node;
|
||||||
|
timevar_push (TV_IELR_PHASE4);
|
||||||
|
initialize_LA ();
|
||||||
|
- state_list *node;
|
||||||
|
for (node = first_state; node; node = node->next)
|
||||||
|
if (!node->state->consistent)
|
||||||
|
{
|
||||||
|
diff --git a/src/muscle-tab.c b/src/muscle-tab.c
|
||||||
|
index b38598b..4b285fb 100644
|
||||||
|
--- a/src/muscle-tab.c
|
||||||
|
+++ b/src/muscle-tab.c
|
||||||
|
@@ -468,12 +468,13 @@ muscle_percent_variable_update (char const *variable, location variable_loc,
|
||||||
|
&& STREQ (eq + 1, *value))
|
||||||
|
: STREQ (c->obsolete, variable))
|
||||||
|
{
|
||||||
|
+ char *res;
|
||||||
|
char *old = define_directive (c->obsolete, *value);
|
||||||
|
char *upd = define_directive (c->updated, *value);
|
||||||
|
deprecated_directive (&variable_loc, old, upd);
|
||||||
|
free (old);
|
||||||
|
free (upd);
|
||||||
|
- char *res = xstrdup (c->updated);
|
||||||
|
+ res = xstrdup (c->updated);
|
||||||
|
{
|
||||||
|
char *eq2 = strchr (res, '=');
|
||||||
|
if (eq2)
|
||||||
|
@@ -506,6 +507,7 @@ muscle_percent_define_insert (char const *var, location variable_loc,
|
||||||
|
if (how == MUSCLE_PERCENT_DEFINE_GRAMMAR_FILE
|
||||||
|
&& muscle_find_const (name))
|
||||||
|
{
|
||||||
|
+ location loc;
|
||||||
|
muscle_percent_define_how how_old = atoi (muscle_find_const (how_name));
|
||||||
|
unsigned i = 0;
|
||||||
|
if (how_old == MUSCLE_PERCENT_DEFINE_F)
|
||||||
|
@@ -514,7 +516,7 @@ muscle_percent_define_insert (char const *var, location variable_loc,
|
||||||
|
_("%%define variable %s redefined"),
|
||||||
|
quote (variable));
|
||||||
|
i += SUB_INDENT;
|
||||||
|
- location loc = muscle_percent_define_get_loc (variable);
|
||||||
|
+ loc = muscle_percent_define_get_loc (variable);
|
||||||
|
complain_indent (&loc, complaint, &i, _("previous definition"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -657,8 +659,9 @@ muscle_percent_define_flag_if (char const *variable)
|
||||||
|
result = false;
|
||||||
|
else if (!muscle_find_const (invalid_boolean_name))
|
||||||
|
{
|
||||||
|
+ location loc;
|
||||||
|
muscle_insert (invalid_boolean_name, "");
|
||||||
|
- location loc = muscle_percent_define_get_loc (variable);
|
||||||
|
+ loc = muscle_percent_define_get_loc (variable);
|
||||||
|
complain (&loc, complaint,
|
||||||
|
_("invalid value for %%define Boolean variable %s"),
|
||||||
|
quote (variable));
|
||||||
|
diff --git a/src/scan-gram.l b/src/scan-gram.l
|
||||||
|
index a7e9bc4..18b4426 100644
|
||||||
|
--- a/src/scan-gram.l
|
||||||
|
+++ b/src/scan-gram.l
|
||||||
|
@@ -952,10 +952,11 @@ handle_syncline (char *args, location loc)
|
||||||
|
static void
|
||||||
|
unexpected_end (boundary start, char const *msgid, char const *token_end)
|
||||||
|
{
|
||||||
|
+ size_t i;
|
||||||
|
location loc;
|
||||||
|
loc.start = start;
|
||||||
|
loc.end = scanner_cursor;
|
||||||
|
- size_t i = strlen (token_end);
|
||||||
|
+ i = strlen (token_end);
|
||||||
|
|
||||||
|
/* Adjust scanner cursor so that any later message does not count
|
||||||
|
the characters about to be inserted. */
|
||||||
|
diff --git a/src/symlist.c b/src/symlist.c
|
||||||
|
index 109c27c..18e6623 100644
|
||||||
|
--- a/src/symlist.c
|
||||||
|
+++ b/src/symlist.c
|
||||||
|
@@ -120,9 +120,9 @@ symbol_list_prepend (symbol_list *list, symbol_list *node)
|
||||||
|
symbol_list *
|
||||||
|
symbol_list_append (symbol_list *list, symbol_list *node)
|
||||||
|
{
|
||||||
|
+ symbol_list *next = list;
|
||||||
|
if (!list)
|
||||||
|
return node;
|
||||||
|
- symbol_list *next = list;
|
||||||
|
while (next->next)
|
||||||
|
next = next->next;
|
||||||
|
next->next = node;
|
||||||
|
diff --git a/src/symtab.c b/src/symtab.c
|
||||||
|
index fb025da..93f36b8 100644
|
||||||
|
--- a/src/symtab.c
|
||||||
|
+++ b/src/symtab.c
|
||||||
|
@@ -1030,8 +1030,9 @@ init_prec_nodes (void)
|
||||||
|
prec_nodes = xcalloc (nsyms, sizeof *prec_nodes);
|
||||||
|
for (i = 0; i < nsyms; ++i)
|
||||||
|
{
|
||||||
|
+ symgraph *s;
|
||||||
|
prec_nodes[i] = xmalloc (sizeof *prec_nodes[i]);
|
||||||
|
- symgraph *s = prec_nodes[i];
|
||||||
|
+ s = prec_nodes[i];
|
||||||
|
s->id = i;
|
||||||
|
s->succ = 0;
|
||||||
|
s->pred = 0;
|
||||||
|
diff --git a/src/uniqstr.c b/src/uniqstr.c
|
||||||
|
index a4e2db0..9a8e30b 100644
|
||||||
|
--- a/src/uniqstr.c
|
||||||
|
+++ b/src/uniqstr.c
|
||||||
|
@@ -63,12 +63,14 @@ uniqstr_vsprintf (char const *format, ...)
|
||||||
|
length = vsnprintf (NULL, 0, format, args);
|
||||||
|
va_end (args);
|
||||||
|
|
||||||
|
+{
|
||||||
|
char res[length + 1];
|
||||||
|
va_start (args, format);
|
||||||
|
vsprintf (res, format, args);
|
||||||
|
va_end (args);
|
||||||
|
return uniqstr_new (res);
|
||||||
|
}
|
||||||
|
+}
|
||||||
|
|
||||||
|
/*------------------------------.
|
||||||
|
| Abort if S is not a uniqstr. |
|
||||||
|
--
|
||||||
|
2.2.2
|
||||||
|
|
||||||
Reference in New Issue
Block a user