summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorChocobo12017-08-15 10:54:54 +0800
committerChocobo12017-08-15 11:40:21 +0800
commitd7d1ebbb0eb0ea8f2f96cf906d4b4d9947e17b92 (patch)
tree1300251ac2e805cc75065ce025d4eae068964d60
parent21555a98cbd4c49365e5778288a6f92914c96fce (diff)
downloadaur-d7d1ebbb0eb0ea8f2f96cf906d4b4d9947e17b92.tar.gz
upgpkg: bison-git 3.0.4.r16.gd6445ec1-2
-rw-r--r--.SRCINFO4
-rw-r--r--PKGBUILD15
-rw-r--r--sun-cc.patch151
3 files changed, 166 insertions, 4 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 22784bb13abb..3e1290d378f0 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = bison-git
pkgdesc = The GNU general-purpose parser generator
pkgver = 3.0.4.r16.gd6445ec1
- pkgrel = 1
+ pkgrel = 2
url = https://www.gnu.org/software/bison/bison.html
arch = i686
arch = x86_64
@@ -14,7 +14,9 @@ pkgbase = bison-git
provides = bison
conflicts = bison
source = git+https://git.savannah.gnu.org/git/bison.git
+ source = sun-cc.patch
sha256sums = SKIP
+ sha256sums = ecde4c4e21e16d4b2a0bf6fc22ada353cc7e6977af340de967fa35387ce921e1
pkgname = bison-git
diff --git a/PKGBUILD b/PKGBUILD
index 6e915d1b7e68..24b3ed30184f 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -2,7 +2,7 @@
pkgname=bison-git
pkgver=3.0.4.r16.gd6445ec1
-pkgrel=1
+pkgrel=2
pkgdesc="The GNU general-purpose parser generator"
arch=('i686' 'x86_64')
url="https://www.gnu.org/software/bison/bison.html"
@@ -11,10 +11,19 @@ depends=('glibc')
makedepends=('git' 'gzip' 'rsync' 'tar')
provides=('bison')
conflicts=('bison')
-source=("git+https://git.savannah.gnu.org/git/bison.git")
-sha256sums=('SKIP')
+source=("git+https://git.savannah.gnu.org/git/bison.git"
+ "sun-cc.patch")
+sha256sums=('SKIP'
+ 'ecde4c4e21e16d4b2a0bf6fc22ada353cc7e6977af340de967fa35387ce921e1')
+prepare() {
+ cd "bison"
+
+ patch -p1 -i "$srcdir/sun-cc.patch"
+ git submodule update --init "submodules/autoconf"
+}
+
pkgver() {
cd "bison"
diff --git a/sun-cc.patch b/sun-cc.patch
new file mode 100644
index 000000000000..89fc5f6c39ae
--- /dev/null
+++ b/sun-cc.patch
@@ -0,0 +1,151 @@
+commit 952416114729b95209dccfc4edacfc1ff13b4e82
+Author: Akim Demaille <akim@lrde.epita.fr>
+Date: Mon Jan 26 18:23:12 2015 +0100
+
+ tests: c++: fix symbol lookup issue
+
+ Sun C 5.13 SunOS_sparc 2014/10/20 reports errors on tests 430-432.
+
+ Reported by Dennis Clarke.
+ <http://lists.gnu.org/archive/html/bug-bison/2015-01/msg00087.html>
+
+ * tests/c++.at (Variants): Be sure to emit operator<< before using it:
+ use "%code top" rather than "%code".
+ Prefer std::vector to std::list.
+ Do not define anything in std::, to avoid undefined behavior.
+
+diff --git a/tests/c++.at b/tests/c++.at
+index 55d7d40..60292f4 100644
+--- a/tests/c++.at
++++ b/tests/c++.at
+@@ -96,7 +96,7 @@ AT_SETUP([C++ Variant-based Symbols])
+ AT_KEYWORDS([variant])
+
+ AT_BISON_OPTION_PUSHDEFS([%skeleton "lalr1.cc" %debug $1])
+-# Store strings and integers in a list of strings.
++# Store strings and integers in a vector of strings.
+ AT_DATA_GRAMMAR([list.y],
+ [[%skeleton "lalr1.cc"
+ %define api.value.type variant
+@@ -114,20 +114,20 @@ AT_DATA_GRAMMAR([list.y],
+ }
+
+ %token <int> INT "int"
+-%type < std::list<int> > exp
++%type < std::vector<int> > exp
+
+ %printer { yyo << $$; } <int>
+ %printer
+ {
+- for (std::list<int>::const_iterator i = $$.begin (); i != $$.end (); ++i)
++ for (std::vector<int>::const_iterator i = $$.begin (); i != $$.end (); ++i)
+ {
+ if (i != $$.begin ())
+ yyo << ", ";
+ yyo << *i;
+ }
+- } < std::list<int> >
++ } < std::vector<int> >
+
+-%code requires { #include <list> }
++%code requires { #include <vector> }
+ %code { int yylex (yy::parser::semantic_type* yylval); }
+
+ %%
+@@ -185,7 +185,7 @@ m4_pushdef([AT_TEST],
+ [AT_SETUP([Variants $1])
+
+ AT_BISON_OPTION_PUSHDEFS([%debug $1])
+-# Store strings and integers in a list of strings.
++# Store strings and integers in a vector of strings.
+ AT_DATA_GRAMMAR([list.y],
+ [[%debug
+ %define api.value.type variant
+@@ -194,29 +194,25 @@ AT_DATA_GRAMMAR([list.y],
+
+ %code requires // code for the .hh file
+ {
+-#include <list>
++#include <vector>
+ #include <string>
+-typedef std::list<std::string> strings_type;
++typedef std::vector<std::string> strings_type;
+ }
+
+-%code // code for the .cc file
++%code top // code for the .cc file.
+ {
+ #include <cstdlib> // abort, getenv
+ #include <iostream>
++#include <vector>
+ #include <sstream>
++#include <string>
+
+- namespace yy
+- {
+- static]AT_TOKEN_CTOR_IF([[
+- parser::symbol_type yylex ()]], [[
+- parser::token_type yylex (parser::semantic_type* yylval]AT_LOCATION_IF([,
+- parser::location_type* yylloc])[)]])[;
+- }
+
+- // Printing a list of strings (for %printer).
+- // Koening look up will look into std, since that's an std::list.
+- namespace std
++ typedef std::vector<std::string> strings_type;
++
++ namespace yy
+ {
++ // Must be available early, as is used in %destructor.
+ std::ostream&
+ operator<<(std::ostream& o, const strings_type& s)
+ {
+@@ -230,16 +226,27 @@ typedef std::list<std::string> strings_type;
+ return o << ')';
+ }
+ }
++}
+
+- // Conversion to string.
+- template <typename T>
+- inline
+- std::string
+- to_string (const T& t)
++%code // code for the .cc file.
++{
++ namespace yy
+ {
+- std::ostringstream o;
+- o << t;
+- return o.str ();
++ static]AT_TOKEN_CTOR_IF([[
++ parser::symbol_type yylex ()]], [[
++ parser::token_type yylex (parser::semantic_type* yylval]AT_LOCATION_IF([,
++ parser::location_type* yylloc])[)]])[;
++
++ // Conversion to string.
++ template <typename T>
++ inline
++ std::string
++ to_string (const T& t)
++ {
++ std::ostringstream o;
++ o << t;
++ return o.str ();
++ }
+ }
+ }
+
+@@ -252,10 +259,10 @@ typedef std::list<std::string> strings_type;
+ // Using the template type to exercize its parsing.
+ // Starting with :: to ensure we don't output "<::" which starts by the
+ // digraph for the left square bracket.
+-%type <::std::list<std::string>> list;
++%type <::std::vector<std::string>> list;
+
+ %printer { yyo << $$; }
+- <int> <::std::string> <::std::list<std::string>>;
++ <int> <::std::string> <::std::vector<std::string>>;
+ %destructor { std::cerr << "Destroy: " << $$ << '\n'; } <*>;
+ %destructor { std::cerr << "Destroy: \"" << $$ << "\"\n"; } <::std::string>;
+ %%