[FFmpeg-devel] [PATCH] libavcodec: Remove dynamic relocs from aarch64/h264idct_neon.S
Manoj Gupta
manojgupta at chromium.org
Fri Jan 4 02:47:58 EET 2019
Thanks a lot :-)
On Thu, Jan 3, 2019 at 1:53 PM Michael Niedermayer
<michael at niedermayer.cc> wrote:
>
> On Wed, Jan 02, 2019 at 06:29:22PM -0800, Manoj Gupta wrote:
> > On Wed, Jan 2, 2019 at 2:33 PM Michael Niedermayer
> > <michael at niedermayer.cc> wrote:
> > >
> > > On Wed, Jan 02, 2019 at 10:12:33AM -0800, Manoj Gupta wrote:
> > > > On Mon, Dec 31, 2018 at 8:31 AM Michael Niedermayer
> > > > <michael at niedermayer.cc> wrote:
> > > > >
> > > > > On Fri, Dec 28, 2018 at 03:12:53PM -0800, Manoj Gupta wrote:
> > > > > > Hi All,
> > > > > >
> > > > > > I recently had a problem building ffmpeg for AArch64 where lld linker
> > > > > > complained about text relocations in readonly segment. The following
> > > > > > patch fixes the linker complains by referring to a local label instead
> > > > > > of function name.
> > > > > >
> > > > > > This is similar in nature as the following previous commits:
> > > > > > https://www.mail-archive.com/ffmpeg-cvslog@ffmpeg.org/msg34290.html
> > > > > > https://www.mail-archive.com/ffmpeg-cvslog@ffmpeg.org/msg34419.html
> > > > > >
> > > > > > Thanks,
> > > > > > Manoj
> > > > > >
> > > > > > Patch:
> > > > > >
> > > > > > libavcodec: Remove dynamic relocs from aarch64/h264idct_neon.S
> > > > > >
> > > > > > Some of the assembly functions e.g. ff_h264_idct_dc_add_neon
> > > > > > has code like:
> > > > > > movrel x14, X(ff_h264_idct_add_neon)
> > > > > >
> > > > > > Linker cannot resolve them fully at link time and emits dynamic
> > > > > > relocations.
> > > > > > Use explicit labels instead so that no dynamic relocations are
> > > > > > needed at all.
> > > > > >
> > > > > > This avoids lld complains about text relocations.
> > > > > >
> > > > > > For background, see https://crbug.com/917919
> > > > > >
> > > > > > Signed-off-by: Manoj Gupta <manojgupta at chromium.org>
> > > > > > ---
> > > > > > libavcodec/aarch64/h264idct_neon.S | 20 ++++++++++++--------
> > > > > > 1 file changed, 12 insertions(+), 8 deletions(-)
> > > > >
> > > > > Has this been tested on all common aarch64 platforms ?
> > > > >
> > > > I have tested this on Chromium with clang+lld linker and Debian
> > > > aarch64 cross compiler gcc + bfd linker.
> > > > Please let me know if more testing is needed.
> > >
> > > it would be good to test on apple too
> > >
> >
> > Thanks, tested on my macbook compiling to aarch64 and the build itself was fine.
> >
> > Use the following configure (+ make) command, hopefully I did it the right way.
> >
> > ./configure --cc=$HOME/ffmpeg/my-clang --cxx=$HOME/ffmpeg/my-clang++
> > --prefix=$HOME/ffmpeg/ffmpeg_out --enable-cross-compile --arch=aarch64
> > --target-os=darwin
> > --sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk
> > --sysinclude=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk
> >
> > my-clang and my-clang++ are wrapper scripts passing the iphone SDK
> > headers to clang.
> >
> > $ cat my-clang
> > #! /bin/bash
> > clang -isysroot $(xcrun --sdk iphoneos --show-sdk-path) -arch arm64 "$@"
>
> thanks, will apply
>
> [...]
> --
> Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
>
> In a rich man's house there is no place to spit but his face.
> -- Diogenes of Sinope
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
More information about the ffmpeg-devel
mailing list