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

Stefan Agner stefan at agner.ch
Thu Apr 28 18:27:48 UTC 2016


On 2016-03-25 11:16, Stefan Agner wrote:
> On 2016-03-25 03:37, Martin Jansa wrote:
>> On Thu, Mar 24, 2016 at 04:26:56PM -0700, Stefan Agner wrote:
>>> 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.
>>
>> Is this needed in master branch as well?
> 
> Yes.
> 
>> All changes for released branch should go to master first.
>>
> 
> Sorry, should have added [master] to the subject.


This has made it to the master branch in between but has (not yet?) been
applied to jethro. Any chance to get it into jethro too?

http://git.openembedded.org/meta-openembedded/commit/?id=6132a35f8cf3906acef4ba54b7d8819a82e05be0

--
Stefan

> 
>>> 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
>>>
>>> --
>>> _______________________________________________
>>> Openembedded-devel mailing list
>>> Openembedded-devel at lists.openembedded.org
>>> http://lists.openembedded.org/mailman/listinfo/openembedded-devel



More information about the Openembedded-devel mailing list