[oe] [meta-multimedia][jethro][PATCH] gstreamer: fix argument parsing when using Bison 3

Stefan Agner stefan at agner.ch
Thu Mar 24 23:26:56 UTC 2016


From: Stefan Agner <stefan.agner at toradex.com>

Remove the argument fix patch and add a patch which fixes the
grammer.y Bison input file. YYLEX_PARAM seems to be no longer
supported and has been replaced with %parse-param which has
been introduced already in 2003.

This fixes a segmentation fault when launching gst-launch-0.10.

Signed-off-by: Stefan Agner <stefan.agner at toradex.com>
---
This is the stack trace of the segmentation fault:
(gdb) bt 
#0  priv_gst_parse_yylex (yylval_param=yylval_param at entry=0xbe8a4224, yyscanner=0xc8) at lex.priv_gst_parse_yy.c:1153
#1  0x4022d712 in priv_gst_parse_yyparse (scanner=<optimized out>, graph=graph at entry=0xbe8a47ec) at grammar.tab.c:1821
#2  0x4022f18c in priv_gst_parse_launch (
    str=0x94f28 "filesrc location=/home/root_2p_key60_q90_aac128_44.mp4 ! qtdemuxemux demux.video_00 ! nv_omx_h264dec ! nv_gl_eglimagesink demux.audio_00 ! nv_omx_aacdec ! alsasink device=hw:0,0 ", 
    error=error at entry=0xbe8a4910, ctx=ctx at entry=0x0, flags=flags at entry=GST_PARSE_FLAG_NONE) at /usr/src/debug/gstreamer/0.10.36-r2/gstreamer-0.10.36/gst/parse/grammar.y:927
#3  0x402277b8 in gst_parse_launch_full (
    pipeline_description=0x94f28 "filesrc location=/home/root_2p_key60_q90_aac128_44.mp4 ! qtdemuxemux demux.video_00 ! nv_omx_h264dec ! nv_gl_eglimagesink demux.audio_00 ! nv_omx_aacdec ! alsasink device=hw:0,0 ", context=context at entry=0x0, flags=flags at entry=GST_PARSE_FLAG_NONE, error=error at entry=0xbe8a4910) at /usr/src/debug/gstreamer/0.10.36-r2/gstreamer-0.10.36/gst/gstparse.c:336
#4  0x40227968 in gst_parse_launchv_full (argv=argv at entry=0x7ad50, context=context at entry=0x0, flags=flags at entry=GST_PARSE_FLAG_NONE, error=error at entry=0xbe8a4910)
    at /usr/src/debug/gstreamer/0.10.36-r2/gstreamer-0.10.36/gst/gstparse.c:272
#5  0x402279f2 in gst_parse_launchv (argv=argv at entry=0x7ad50, error=error at entry=0xbe8a4910) at /usr/src/debug/gstreamer/0.10.36-r2/gstreamer-0.10.36/gst/gstparse.c:224
#6  0x0000a6d8 in main (argc=16, argv=0xbe8a4ca4) at /usr/src/debug/gstreamer/0.10.36-r2/gstreamer-0.10.36/tools/gst-launch.c:1031

 ...01-parse-make-grammar.y-work-with-Bison-3.patch | 35 ++++++++++++++++++++++
 ...mer-change-priv_gst_parse_yylex-arguments.patch | 33 --------------------
 .../gstreamer-0.10/gstreamer_0.10.36.bb            |  2 +-
 3 files changed, 36 insertions(+), 34 deletions(-)
 create mode 100644 meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-parse-make-grammar.y-work-with-Bison-3.patch
 delete mode 100644 meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstreamer-change-priv_gst_parse_yylex-arguments.patch

diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-parse-make-grammar.y-work-with-Bison-3.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-parse-make-grammar.y-work-with-Bison-3.patch
new file mode 100644
index 0000000..dc2d606
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-parse-make-grammar.y-work-with-Bison-3.patch
@@ -0,0 +1,35 @@
+From 60516f4798894f958fc53b470e1283318d0f8706 Mon Sep 17 00:00:00 2001
+From: Kerrick Staley <kerrick at kerrickstaley.com>
+Date: Tue, 20 Aug 2013 23:59:29 -0700
+Subject: [PATCH 1/2] parse: make grammar.y work with Bison 3
+
+YYLEX_PARAM is no longer supported in Bison 3.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=706462
+---
+ 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..7f9dd16 100644
+--- a/gst/parse/grammar.y
++++ b/gst/parse/grammar.y
+@@ -26,7 +26,6 @@
+  */
+ 
+ #define YYERROR_VERBOSE 1
+-#define YYLEX_PARAM scanner
+ 
+ #define YYENABLE_NLS 0
+ 
+@@ -648,6 +647,7 @@ static int yyerror (void *scanner, graph_t *graph, const char *s);
+ %right '.'
+ %left '!' '='
+ 
++%lex-param { void *scanner }
+ %parse-param { void *scanner }
+ %parse-param { graph_t *graph }
+ %pure-parser
+-- 
+2.7.2
+
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstreamer-change-priv_gst_parse_yylex-arguments.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstreamer-change-priv_gst_parse_yylex-arguments.patch
deleted file mode 100644
index bf93cb2..0000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstreamer-change-priv_gst_parse_yylex-arguments.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-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 <Chong.Lu at windriver.com>
----
- 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
-
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer_0.10.36.bb b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer_0.10.36.bb
index 5b30603..ad7cf99 100644
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer_0.10.36.bb
+++ b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer_0.10.36.bb
@@ -15,7 +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 \
+           file://0001-parse-make-grammar.y-work-with-Bison-3.patch \
 "
 
 SRC_URI[md5sum] = "a0cf7d6877f694a1a2ad2b4d1ecb890b"
-- 
1.9.1




More information about the Openembedded-devel mailing list