[FFmpeg-devel] [PATCH] Fix missing used attribute for inline assembly variables

Michael Niedermayer michael at niedermayer.cc
Tue Oct 31 18:19:27 EET 2017


On Tue, Oct 31, 2017 at 03:52:14PM +0000, Thomas Köppe wrote:
> +Teresa, who drafted the patch initially.
> 
> On 31 October 2017 at 15:38, Michael Niedermayer <michael at niedermayer.cc>
> wrote:
> 
> > On Tue, Oct 31, 2017 at 12:16:18PM +0000, Thomas Köppe wrote:
> > > Variables used in inline assembly need to be marked with
> > attribute((used)).
> >
> > This should not be the case.
> > Variables referenced through in/out operands should not need that.
> > Only ones accessed directly bypassing operands should need this
> >
> 
> I've added Teresa to the thread, who initially analyzed the problem. (For
> background on ThinLTO, see here cppcon talk:
> https://www.youtube.com/watch?v=p9nH2vZ2mNo.)
> 
> [...]
> > > -    #define DECLARE_ALIGNED(n,t,v)      t __attribute__ ((aligned (n)))
> > v
> > > +    #define DECLARE_ALIGNED(n,t,v)      t av_used __attribute__
> > ((aligned (n))) v
> >
> > which variables actually are affected/ need this ?
> >
> 
> Without this annotation, and when compiling and linking with ThinLTO, I get
> an undefined reference to "ff_h264_cabac_tables", and also to
> "ff_pw_96", "ff_pw_53",
> "ff_pw_42", "ff_w1111" and many more.

i guess these are all accessed directly, like through MANGLE()


> 
> 
> > Marking all aligned variables as used makes it harder to spot unused
> > variables leading to accumulation of cruft
> >
> 
> I see. Maybe we can annotate only the affected variables more granularly?
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Avoid a single point of failure, be that a person or equipment.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20171031/47be5435/attachment.sig>


More information about the ffmpeg-devel mailing list