[FFmpeg-devel] [PATCH] Symbian OS won't load binaries which have a function pointer assigned directly using a library routine (original) (raw)

Michael Niedermayer michaelni
Mon Jan 24 16🔞51 CET 2011


On Mon, Jan 24, 2011 at 01:16:04PM +0000, M?ns Rullg?rd wrote:

Pankaj yadav writes:

> Hi, > > We are porting VLC and dependency libraries to Symbian OS and this is a > small patch which is a workaround to a Symbian OS limitation. > > -- > Pankaj Yadav > http://people.videolan.org/~pk <http://people.videolan.org/%7Epk> > Open Source Enthusiast > > From c09de83ea0a4ed13653e26296d5bd5b20db93e31 Mon Sep 17 00:00:00 2001 > From: Pankaj Yadav > Date: Mon, 24 Jan 2011 18:01:03 +0530 > Subject: [PATCH] Symbian OS won't load binaries which have a function pointer assigned directly using a library routine > > --- > libavutil/eval.c | 84 ++++++++++++++++++++++++++++++++++++++++++++++-------- > 1 files changed, 72 insertions(+), 12 deletions(-) > > diff --git a/libavutil/eval.c b/libavutil/eval.c > index 0fef97b..a5b7dc7 100644 > --- a/libavutil/eval.c > +++ b/libavutil/eval.c > @@ -71,6 +71,66 @@ static const int8t siprefixes['z' - 'E' + 1] = { > ['Y'-'E']= 24, > }; > > +static double staticsin(double a) > +{ > + return sin(a); > +} > + [...] > double avstrtod(const char *numstr, char **tail) > { > double d; > @@ -250,18 +310,18 @@ static int parseprimary(AVExpr **e, Parser *p) > p->s++; // ")" > > d->type = efunc0; > - if (strmatch(next, "sinh" )) d->a.func0 = sinh; > - else if (strmatch(next, "cosh" )) d->a.func0 = cosh; > - else if (strmatch(next, "tanh" )) d->a.func0 = tanh; > - else if (strmatch(next, "sin" )) d->a.func0 = sin; > - else if (strmatch(next, "cos" )) d->a.func0 = cos; > - else if (strmatch(next, "tan" )) d->a.func0 = tan; > - else if (strmatch(next, "atan" )) d->a.func0 = atan; > - else if (strmatch(next, "asin" )) d->a.func0 = asin; > - else if (strmatch(next, "acos" )) d->a.func0 = acos; > - else if (strmatch(next, "exp" )) d->a.func0 = exp; > - else if (strmatch(next, "log" )) d->a.func0 = log; > - else if (strmatch(next, "abs" )) d->a.func0 = fabs; > + if (strmatch(next, "sinh" )) d->a.func0 = staticsinh; > + else if (strmatch(next, "cosh" )) d->a.func0 = staticcosh; > + else if (strmatch(next, "tanh" )) d->a.func0 = statictanh; > + else if (strmatch(next, "sin" )) d->a.func0 = staticsin; > + else if (strmatch(next, "cos" )) d->a.func0 = staticcos; > + else if (strmatch(next, "tan" )) d->a.func0 = statictan; > + else if (strmatch(next, "atan" )) d->a.func0 = staticatan; > + else if (strmatch(next, "asin" )) d->a.func0 = staticasin; > + else if (strmatch(next, "acos" )) d->a.func0 = staticacos; > + else if (strmatch(next, "exp" )) d->a.func0 = staticexp; > + else if (strmatch(next, "log" )) d->a.func0 = staticlog; > + else if (strmatch(next, "abs" )) d->a.func0 = staticfabs; > else if (strmatch(next, "squish")) d->type = esquish; > else if (strmatch(next, "gauss" )) d->type = egauss; > else if (strmatch(next, "mod" )) d->type = emod; This is ridiculous. What is the reason for this crazy limitation?

i dont like you mans but i agree this is crazy

maybe its something with a missing linked in lib? and this works because macros get used or something in that direction i dont know exactly

[...]

Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

The educated differ from the uneducated as much as the living from the dead. -- Aristotle -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: Digital signature URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20110124/3b1d83c1/attachment.pgp>



More information about the ffmpeg-devel mailing list