Skip to contentSkip to conversation

bison: update to 3.0.2

PATCH In review Chong Lu 2 participants 8 messages Nov 18, 2014 – Nov 25, 2014

lore
Share & tools
lore

Chong Lu

author
#0 lore raw

cover bison: update to 3.0.2

The following changes since commit edaeb8940813b620090a0797ad3b6a076897512d:

bitbake: cooker.py: fix loginfo op being set to an invalid value (2014-11-12 17:04:50 +0000)

are available in the git repository at:

git://git.pokylinux.org/poky-contrib chonglu/bison
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=chonglu/bison

Chong Lu (3):
bison: update to 3.0.2
gstreamer: change priv_gst_parse_yylex arguments
webkit-gtk: ANGLE doesn't build with bison 3

 .../bison/bison-do-not-try-to-generate-docs.patch  | 37 ++++++++++++++++++++++
 .../bison/bison/dont-depend-on-help2man.patch      | 32 -------------------
 .../bison/bison/fix_cross_manpage_building.patch   | 19 -----------
 .../bison/{bison_2.7.1.bb => bison_3.0.2.bb}       | 21 ++++++------
 ...mer-change-priv_gst_parse_yylex-arguments.patch | 33 +++++++++++++++++++
 .../gstreamer/gstreamer_0.10.36.bb                 |  1 +
 ...bkit-gtk-ANGLE-doesn-t-build-with-bison-3.patch | 26 +++++++++++++++
 meta/recipes-sato/webkit/webkit-gtk_1.8.3.bb       |  1 +
 8 files changed, 108 insertions(+), 62 deletions(-)
 create mode 100644 meta/recipes-devtools/bison/bison/bison-do-not-try-to-generate-docs.patch
 delete mode 100644 meta/recipes-devtools/bison/bison/dont-depend-on-help2man.patch
 delete mode 100644 meta/recipes-devtools/bison/bison/fix_cross_manpage_building.patch
 rename meta/recipes-devtools/bison/{bison_2.7.1.bb => bison_3.0.2.bb} (70%)
 create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer-0.10.36/gstreamer-change-priv_gst_parse_yylex-arguments.patch
 create mode 100644 meta/recipes-sato/webkit/files/webkit-gtk-ANGLE-doesn-t-build-with-bison-3.patch
Signature · 1 line
1.9.1
author
#1 lore raw

PATCH 1/3 bison: update to 3.0.2

Upgrade bison to 3.0.2.
Don't try to generate docs when cross-compiling. Remove unneeded patches: dont-depend-on-help2man.patch and fix_cross_manpage_building.patch

---
 .../bison/bison-do-not-try-to-generate-docs.patch  | 37 ++++++++++++++++++++++
 .../bison/bison/dont-depend-on-help2man.patch      | 32 -------------------
 .../bison/bison/fix_cross_manpage_building.patch   | 19 -----------
 .../bison/{bison_2.7.1.bb => bison_3.0.2.bb}       | 21 ++++++------
 4 files changed, 47 insertions(+), 62 deletions(-)
 create mode 100644 meta/recipes-devtools/bison/bison/bison-do-not-try-to-generate-docs.patch
 delete mode 100644 meta/recipes-devtools/bison/bison/dont-depend-on-help2man.patch
 delete mode 100644 meta/recipes-devtools/bison/bison/fix_cross_manpage_building.patch
 rename meta/recipes-devtools/bison/{bison_2.7.1.bb => bison_3.0.2.bb} (70%)
meta/recipes-devtools/bison/bison/bison-do-not-try-to-generate-docs.patch new file +37 -0
new file mode 100644
index 0000000..53a3d9b
@@ -0,0 +1,37 @@
+bison: don't try to generate docs
+
+We usually cannot run the just created binaries when cross-compiling,
+so in that case ignore the documentation dependencies.
+
+Upstream-Status: Inappropriate
+
+Signed-off-by: Chong Lu <[email protected]>
+---
+ doc/local.mk |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/doc/local.mk b/doc/local.mk
+index 4fe0859..27e3cc2 100644
+--- a/doc/local.mk
++++ b/doc/local.mk
+@@ -86,7 +86,7 @@ doc/refcard.pdf: doc/refcard.tex
+ 
+ EXTRA_DIST += $(top_srcdir)/doc/bison.help
+ MAINTAINERCLEANFILES += $(top_srcdir)/doc/bison.help
+-$(top_srcdir)/doc/bison.help: src/bison$(EXEEXT)
++$(top_srcdir)/doc/bison.help:
+ 	$(AM_V_GEN)src/bison$(EXEEXT) --version >doc/bison.help.tmp
+ 	$(AM_V_at) src/bison$(EXEEXT) --help   >>doc/bison.help.tmp
+ 	$(AM_V_at)$(top_srcdir)/build-aux/move-if-change doc/bison.help.tmp $@
+@@ -106,7 +106,7 @@ remove_time_stamp = \
+   sed 's/^\(\.TH[^"]*"[^"]*"[^"]*\)"[^"]*"/\1/'
+ 
+ # Depend on configure to get version number changes.
+-$(top_srcdir)/doc/bison.1: doc/bison.help doc/bison.x $(top_srcdir)/configure
++$(top_srcdir)/doc/bison.1:
+ 	$(AM_V_GEN)$(HELP2MAN)			\
+ 	    --include=$(top_srcdir)/doc/bison.x	\
+ 	    [email protected] src/bison$(EXEEXT)
+-- 
+1.7.9.5
+
meta/recipes-devtools/bison/bison/dont-depend-on-help2man.patch deleted +0 -32
deleted file mode 100644
index 21b44bf..0000000
@@ -1,32 +0,0 @@
-Upstream-Status: Inappropriate
-
-Signed-off-by: Marko Lindqvist <[email protected]>
-diff -Nurd bison-2.7/doc/Makefile.am bison-2.7/doc/Makefile.am
---- bison-2.7/doc/Makefile.am	2012-12-09 17:51:03.000000000 +0200
-+++ bison-2.7/doc/Makefile.am	2013-01-02 06:49:50.804894071 +0200
-@@ -52,15 +52,11 @@
- ## Man Pages.  ##
- ## ----------- ##
-
--dist_man_MANS = $(srcdir)/bison.1
--
--EXTRA_DIST += $(dist_man_MANS:.1=.x) common.x
--MAINTAINERCLEANFILES += $(dist_man_MANS)
-+EXTRA_DIST += bison.x common.x
-
- # Depend on configure to get version number changes.
- common_dep = $(top_srcdir)/configure $(srcdir)/common.x
- srcsrcdir = $(top_srcdir)/bin
--$(srcdir)/bison.1:      $(common_dep) $(top_srcdir)/src/getargs.c
-
- # Differences to ignore when comparing the man page (the date).
- remove_time_stamp = \
-@@ -94,8 +90,6 @@
-	fi
-	$(AM_V_at)rm -f $@*.t
-
--nodist_man_MANS = yacc.1
--
- ## ------------------------------ ##
- ## Graphviz examples generation.  ##
- ## ------------------------------ ##
meta/recipes-devtools/bison/bison/fix_cross_manpage_building.patch deleted +0 -19
deleted file mode 100644
index 8b68379..0000000
@@ -1,19 +0,0 @@
-Upstream-Status: Inappropriate [embedded specific]
-
-help2man is looking at the generated binary for help output. This does not work for cross compilations. So taking out the local PREPATH (../src) directory from path so that help2 man can find the native version of the bison in the native sysroot directory.
-
-Date: 2010/06/28
-Signed-Off-By: Nitin A Kamble <[email protected]>
-
-diff --git a/doc/Makefile.am b/doc/Makefile.am
-index c7f2755..af9453a 100644
---- a/doc/Makefile.am
-+++ b/doc/Makefile.am
-@@ -80,7 +80,6 @@ PREPATH = $(top_builddir)/src
- 	  echo cd $$dir '&&' $(MAKE) $(AM_MAKEFLAGS) $$program &&	\
- 	  (cd $$dir && $(MAKE) $(AM_MAKEFLAGS) $$program) || exit;	\
- 	done
--	$(AM_V_at)PATH="$(PREPATH)$(PATH_SEPARATOR)$$PATH";		     \
- 	export PATH;							     \
- 	$(HELP2MAN)							     \
- 	    --include=$*.x						     \
meta/recipes-devtools/bison/bison_3.0.2.bb renamed from meta/recipes-devtools/bison/bison_2.7.1.bb +10 -11
similarity index 70%
rename from meta/recipes-devtools/bison/bison_2.7.1.bb
rename to meta/recipes-devtools/bison/bison_3.0.2.bb
index 4a3ad15..74a0e9f 100644
@@ -9,28 +9,27 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
 SECTION = "devel"
 DEPENDS = "bison-native flex-native"
 
-BASE_SRC_URI = "${GNU_MIRROR}/bison/bison-${PV}.tar.xz \
-	        file://m4.patch \
-                file://dont-depend-on-help2man.patch \
-	       "
+SRC_URI = "${GNU_MIRROR}/bison/bison-${PV}.tar.xz \
+           file://m4.patch \
+           file://bison-do-not-try-to-generate-docs.patch \
+"
 
 # No point in hardcoding path to m4, just use PATH
 EXTRA_OECONF += "M4=m4"
 
-SRC_URI = "${BASE_SRC_URI} \
-           file://fix_cross_manpage_building.patch \
-          "
-
-SRC_URI[md5sum] = "7be02eb973eccf388f1ae750fc09eed0"
-SRC_URI[sha256sum] = "b409adcbf245baadb68d2f66accf6fdca5e282cafec1b865f4b5e963ba8ea7fb"
+SRC_URI[md5sum] = "146be9ff9fbd27497f0bf2286a5a2082"
+SRC_URI[sha256sum] = "a2c3e8528bdb50567d6fa26deeb493dc5ccd7e277b865251608a9e43ac928f3c"
 
 LDFLAGS_prepend_libc-uclibc = " -lrt "
 DEPENDS_class-native = "gettext-minimal-native"
-SRC_URI_class-native = "${BASE_SRC_URI}"
 
 inherit autotools gettext texinfo
 acpaths = "-I ${S}/m4"
 
+do_compile_prepend() {
+	for i in mfcalc calc++ rpcalc; do mkdir -p ${B}/examples/$i; done
+}
+
 do_install_append_class-native() {
 	create_wrapper ${D}/${bindir}/bison \
 		BISON_PKGDATADIR=${STAGING_DATADIR_NATIVE}/bison
Signature · 1 line
1.9.1
author
#6 lore raw

PATCH 2/3 gstreamer: change priv_gst_parse_yylex arguments

In reply to Chong Lu

Change priv_gst_parse_yylex to fit new bison version, else we will get following error:

| grammar.tab.c: In function 'priv_gst_parse_yyparse':
| grammar.tab.c:67:25: error: too few arguments to function 'priv_gst_parse_yylex'
|  #define yylex           priv_gst_parse_yylex
|                          ^
---
 ...mer-change-priv_gst_parse_yylex-arguments.patch | 33 ++++++++++++++++++++++
 .../gstreamer/gstreamer_0.10.36.bb                 |  1 +
 2 files changed, 34 insertions(+)
 create mode 100644 meta/recipes-multimedia/gstreamer/gstreamer-0.10.36/gstreamer-change-priv_gst_parse_yylex-arguments.patch
meta/recipes-multimedia/gstreamer/gstreamer-0.10.36/gstreamer-change-priv_gst_parse_yylex-arguments.patch new file +33 -0
new file mode 100644
index 0000000..bf93cb2
@@ -0,0 +1,33 @@
+gstreamer: change priv_gst_parse_yylex arguments
+
+Change priv_gst_parse_yylex to fit new bison version, else we will
+get following error:
+
+| grammar.tab.c: In function 'priv_gst_parse_yyparse':
+| grammar.tab.c:67:25: error: too few arguments to function 'priv_gst_parse_yylex'
+|  #define yylex           priv_gst_parse_yylex
+|                          ^
+
+Upstream-Status: Pending
+
+Signed-off-by: Chong Lu <[email protected]>
+---
+ gst/parse/grammar.y | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/gst/parse/grammar.y b/gst/parse/grammar.y
+index 24fc87b..24fe906 100644
+--- a/gst/parse/grammar.y
++++ b/gst/parse/grammar.y
+@@ -36,7 +36,7 @@
+ 
+ typedef void* yyscan_t;
+ 
+-int priv_gst_parse_yylex (void * yylval_param , yyscan_t yyscanner);
++int priv_gst_parse_yylex (yyscan_t yyscanner);
+ int priv_gst_parse_yylex_init (yyscan_t scanner);
+ int priv_gst_parse_yylex_destroy (yyscan_t scanner);
+ struct yy_buffer_state * priv_gst_parse_yy_scan_string (char* , yyscan_t);
+-- 
+1.9.1
+
meta/recipes-multimedia/gstreamer/gstreamer_0.10.36.bb +1 -0
index f08908a..5b30603 100644
@@ -15,6 +15,7 @@ SRC_URI = "http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.bz
            file://check_fix.patch \
            file://gst-inspect-check-error.patch \
            file://0001-baseparse-Fix-self-comparison-always-evaluates-to-tr.patch \
+           file://gstreamer-change-priv_gst_parse_yylex-arguments.patch \
 "
 
 SRC_URI[md5sum] = "a0cf7d6877f694a1a2ad2b4d1ecb890b"
Signature · 1 line
1.9.1
author
#7 lore raw

PATCH 3/3 webkit-gtk: ANGLE doesn't build with bison 3

In reply to Chong Lu

Use %lex-param to set YYLEX_PARAM.

---
 ...bkit-gtk-ANGLE-doesn-t-build-with-bison-3.patch | 26 ++++++++++++++++++++++
 meta/recipes-sato/webkit/webkit-gtk_1.8.3.bb       |  1 +
 2 files changed, 27 insertions(+)
 create mode 100644 meta/recipes-sato/webkit/files/webkit-gtk-ANGLE-doesn-t-build-with-bison-3.patch
meta/recipes-sato/webkit/files/webkit-gtk-ANGLE-doesn-t-build-with-bison-3.patch new file +26 -0
new file mode 100644
index 0000000..e7e9083
@@ -0,0 +1,26 @@
+webkit-gtk: ANGLE doesn't build with bison 3
+
+Use %lex-param to set YYLEX_PARAM.
+
+Upstream-Status: Pending
+
+Signed-off-by: Chong Lu <[email protected]>
+---
+ Source/ThirdParty/ANGLE/src/compiler/glslang.y | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Source/ThirdParty/ANGLE/src/compiler/glslang.y b/Source/ThirdParty/ANGLE/src/compiler/glslang.y
+index ec1a85c..15723cc 100644
+--- a/Source/ThirdParty/ANGLE/src/compiler/glslang.y
++++ b/Source/ThirdParty/ANGLE/src/compiler/glslang.y
+@@ -32,6 +32,7 @@ WHICH GENERATES THE GLSL ES PARSER (glslang_tab.cpp AND glslang_tab.h).
+ %expect 1 /* One shift reduce conflict because of if | else */
+ %pure-parser
+ %parse-param {TParseContext* context}
++%lex-param {YYLEX_PARAM}
+ 
+ %union {
+     struct {
+-- 
+1.9.1
+
meta/recipes-sato/webkit/webkit-gtk_1.8.3.bb +1 -0
index 29f8a79..735ce5f 100644
@@ -26,6 +26,7 @@ SRC_URI = "\
   file://obsolete_automake_macros.patch \
   file://0001-Enable-mips64-build.patch \
   file://aarch64.patch \
+  file://webkit-gtk-ANGLE-doesn-t-build-with-bison-3.patch \
  "
 
 SRC_URI[md5sum] = "dcbf9d5e2e6391f857c29a57528b32a6"
Signature · 1 line
1.9.1
#2 lore raw
In reply to Chong Lu
Quoted 2 lines · Chong Lu

Upgrade bison to 3.0.2.

In testing glibc fails to build on some arches and this patch may be the cause:

| plural.c: In function '__gettextparse':
| plural.c:64:25: error: too few arguments to function '__gettextlex'
|  #define yylex           __gettextlex
|                          ^
| plural.c:1296:16: note: in expansion of macro 'yylex'
|        yychar = yylex (&yylval);
|                 ^
| plural.c:64:25: note: declared here
|  #define yylex           __gettextlex
|                          ^
| plural.y:69:12: note: in expansion of macro 'yylex'
|  static int yylex PARAMS ((YYSTYPE *lval, const char **pexp));
|             ^
| plural.y:178:29: error: 'arg' undeclared (first use in this function)
|       ((struct parse_args *) arg)->res = $1;

Does that look like something that bison 3 broke? If so we need to fix glibc.

Ross

author
#3 lore raw
Quoted 24 lines · Ross

On 18 November 2014 07:22, Chong Lu <[email protected] <mailto:[email protected]>> wrote:

    Upgrade bison to 3.0.2.

In testing glibc fails to build on some arches and this patch may be the cause:

| plural.c: In function '__gettextparse':
| plural.c:64:25: error: too few arguments to function '__gettextlex'
|  #define yylex __gettextlex
|                          ^
| plural.c:1296:16: note: in expansion of macro 'yylex'
|        yychar = yylex (&yylval);
|                 ^
| plural.c:64:25: note: declared here
|  #define yylex __gettextlex
|                          ^
| plural.y:69:12: note: in expansion of macro 'yylex'
|  static int yylex PARAMS ((YYSTYPE *lval, const char **pexp));
|             ^
| plural.y:178:29: error: 'arg' undeclared (first use in this function)
|       ((struct parse_args *) arg)->res = $1;
Quoted 3 lines

Does that look like something that bison 3 broke? If so we need to fix glibc.

Ross

Hi Ross,

After I upgrade bison, I test world on qemuppc and qemux86, that's ok. Can you tell me, which arch will build failure or how to reproduce this failure? I will try to fix it.

Best Regards
Chong

#4 lore raw
Quoted 5 lines · Chong Lu

After I upgrade bison, I test world on qemuppc and qemux86, that's ok. Can you tell me, which arch will build failure or how to reproduce this failure?
I will try to fix it.

https://autobuilder.yoctoproject.org/main/builders/nightly-ppc-lsb/builds/104/steps/BuildImages/logs/stdio

That's PPC with poky-lsb. It may be unrelated but the failures involve bison. I see that glibc doesn't depend on bison-native so if it is running the tool at build time there could be problems with bison being replaced during a build.

Ross

author
#5 lore raw
Quoted 9 lines · Ross

On 24 November 2014 at 05:19, Chong Lu <[email protected] <mailto:[email protected]>> wrote:

After I upgrade bison, I test world on qemuppc and qemux86, that's ok. Can you tell me, which arch will build failure or how to reproduce this failure?
I will try to fix it.

Quoted 5 lines

https://autobuilder.yoctoproject.org/main/builders/nightly-ppc-lsb/builds/104/steps/BuildImages/logs/stdio

That's PPC with poky-lsb. It may be unrelated but the failures involve bison. I see that glibc doesn't depend on bison-native so if it is running the tool at build time there could be problems with bison being replaced during a build.

Ross

Hi Ross,

I try to reproduce this issue in my environment. But I can't get build failure about glibc. glibc depends on bison-native:
"glibc" -> "kconfig-frontends-native" -> "bison-native"
I checked glibc source code. In intl/plural.c file, The bison version is defined:
#define YYBISON_VERSION "2.7"
Does this issue related with sstate?
I build world on some arch, no build failure appear.:-)

Best Regards
Chong