[OE-core] [PATCH] x264: add textrel to INSANE_SKIP to skip the warning

sujith h sujith.h at gmail.com
Wed Sep 21 08:14:19 UTC 2016


On Thu, Sep 15, 2016 at 3:37 PM, Phil Blundell <pb at pbcl.net> wrote:

> On Thu, 2016-09-15 at 12:22 +0530, Sujith H wrote:
> > From: Fahad Usman <fahad_usman at mentor.com>
> >
> > This change help fix the warning message:
> >
> > x264/r2491+gitAUTOINC+c8a773ebfc-r0/packages-
> > split/x264/usr/lib/libx264.so.144' has relocations in .text [textrel]
> >
> > Adding textrel to INSANE_SKIP resolves this issue.
>
> This is a poor commit message.  Adding textrel to INSANE_SKIP prevents
> the check from being done, so it is fairly self-evident that it will
> suppress the corresponding warning message.  Please add an explanation
> of why this is an appropriate thing to do, i.e. why the textrels are
> present and why you can't get rid of them by other means.
>
> In particular please clarify whether you want to do this because the
> textrels are absolutely unavoidable for some reason on your
> architecture, or just because you think this is a good trade-off for
> performance.  If the latter then I think the change probably belongs in
> a distro or BSP layer not in oe-core.
>

As per the reference from
http://www.yoctoproject.org/docs/current/ref-manual/ref-manual.html#qa-issue-textrel
I added CFLAGS_append = " -fPIC " in the recipe and tried to build x264.
Below is the result.


Loading cache: 100%
|##########################################################################################################################################################|
Time: 0:00:00
Loaded 1313 entries from dependency cache.
Parsing recipes: 100%
|########################################################################################################################################################|
Time: 0:00:02
Parsing of 877 .bb files complete (865 cached, 12 parsed). 1325 targets, 69
skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies

Build Configuration:
BB_VERSION        = "1.31.1"
BUILD_SYS         = "x86_64-linux"
NATIVELSBSTRING   = "universal"
TARGET_SYS        = "arm-poky-linux-gnueabi"
MACHINE           = "cyclone5"
DISTRO            = "poky"
DISTRO_VERSION    = "2.1+snapshot-20160921"
TUNE_FEATURES     = "arm armv7a vfp  neon"
TARGET_FPU        = "softfp"
meta
meta-poky
meta-yocto-bsp    = "toaster-next:75927f8f6809b9b4696fc438b240bc7a3db561e2"
meta-altera       = "master:1bfc1ac36f28352a79a7ba98dc9d74608d76f1e6"

Initialising tasks: 100%
|#####################################################################################################################################################|
Time: 0:00:01
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
WARNING: x264-r2491+gitAUTOINC+c8a773ebfc-r0 do_package_qa: QA Issue: ELF
binary
'/home/sujith/poky-push/build-qemuarm/tmp/work/armv7a-neon-poky-linux-gnueabi/x264/r2491+gitAUTOINC+c8a773ebfc-r0/packages-split/x264/usr/lib/libx264.so.144'
has relocations in .text [textrel]
NOTE: Tasks Summary: Attempted 407 tasks of which 394 didn't need to be
rerun and all succeeded.

Summary: There was 1 WARNING message shown.

I have tried to debug the compile log where I found, there are .S files in
the source. Here is the small snippet of the compile log

arm-poky-linux-gnueabi-gcc  -march=armv7-a -mfpu=neon  -mfloat-abi=softfp
--sysroot=/home/sujith/poky-push/build-qemuarm/tmp/sysroots/cyclone5
-Wno-maybe-uninitialized -Wshadow -O3 -ffast-math  -O2 -pipe -g
-feliminate-unused-debug-types
-fdebug-prefix-map=/home/sujith/poky-push/build-qemuarm/tmp/work/armv7a-neon-poky-linux-gnueabi/x264/r2491+gitAUTOINC+c8a773ebfc-r0=/usr/src/debug/x264/r2491+gitAUTOINC+c8a773ebfc-r0
-fdebug-prefix-map=/home/sujith/poky-push/build-qemuarm/tmp/sysroots/x86_64-linux=
-fdebug-prefix-map=/home/sujith/poky-push/build-qemuarm/tmp/sysroots/cyclone5=
-fPIC  -Wall -I. -I.
--sysroot=/home/sujith/poky-push/build-qemuarm/tmp/sysroots/cyclone5
-std=gnu99 -fPIC -fomit-frame-pointer -fno-tree-vectorize   -c -o
encoder/slicetype-cl.o encoder/slicetype-cl.c
arm-poky-linux-gnueabi-gcc -I. -I. -c -DSTACK_ALIGNMENT=16 -DPIC
-DHIGH_BIT_DEPTH=0 -DBIT_DEPTH=8 -o common/arm/cpu-a.o common/arm/cpu-a.S
arm-poky-linux-gnueabi-gcc -I. -I. -c -DSTACK_ALIGNMENT=16 -DPIC
-DHIGH_BIT_DEPTH=0 -DBIT_DEPTH=8 -o common/arm/pixel-a.o
common/arm/pixel-a.S
arm-poky-linux-gnueabi-gcc -I. -I. -c -DSTACK_ALIGNMENT=16 -DPIC
-DHIGH_BIT_DEPTH=0 -DBIT_DEPTH=8 -o common/arm/mc-a.o common/arm/mc-a.S
arm-poky-linux-gnueabi-gcc -I. -I. -c -DSTACK_ALIGNMENT=16 -DPIC
-DHIGH_BIT_DEPTH=0 -DBIT_DEPTH=8 -o common/arm/dct-a.o common/arm/dct-a.S
arm-poky-linux-gnueabi-gcc -I. -I. -c -DSTACK_ALIGNMENT=16 -DPIC
-DHIGH_BIT_DEPTH=0 -DBIT_DEPTH=8 -o common/arm/quant-a.o
common/arm/quant-a.S
arm-poky-linux-gnueabi-gcc -I. -I. -c -DSTACK_ALIGNMENT=16 -DPIC
-DHIGH_BIT_DEPTH=0 -DBIT_DEPTH=8 -o common/arm/deblock-a.o
common/arm/deblock-a.S
arm-poky-linux-gnueabi-gcc -I. -I. -c -DSTACK_ALIGNMENT=16 -DPIC
-DHIGH_BIT_DEPTH=0 -DBIT_DEPTH=8 -o common/arm/predict-a.o
common/arm/predict-a.S
rm -f libx264.a
arm-poky-linux-gnueabi-gcc  -march=armv7-a -mfpu=neon  -mfloat-abi=softfp
--sysroot=/home/sujith/poky-push/build-qemuarm/tmp/sysroots/cyclone5 -o
libx264.so.144  common/mc.o common/predict.o common/pixel.o
common/macroblock.o common/frame.o common/dct.o common/cpu.o common/cabac.o
common/common.o common/osdep.o common/rectangle.o common/set.o
common/quant.o common/deblock.o common/vlc.o common/mvpred.o
common/bitstream.o encoder/analyse.o encoder/me.o encoder/ratecontrol.o
encoder/set.o encoder/macroblock.o encoder/cabac.o encoder/cavlc.o
encoder/encoder.o encoder/lookahead.o common/threadpool.o common/arm/mc-c.o
common/arm/predict-c.o common/opencl.o encoder/slicetype-cl.o
common/arm/cpu-a.o common/arm/pixel-a.o common/arm/mc-a.o
common/arm/dct-a.o common/arm/quant-a.o common/arm/deblock-a.o
common/arm/predict-a.o   -shared -Wl,-soname,libx264.so.144  -Wl,-Bsymbolic
-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed
--sysroot=/home/sujith/poky-push/build-qemuarm/tmp/sysroots/cyclone5 -lm
-lpthread -ldl

 Hence I tried to edit the config.mak to get the .S files compile with
-fPIC. Basically updated the ASFLAGS. But that didn't helped me either.
Also tried to add, TARGET_CC_ARCH += " -fPIC ". May be I am wrong with
TARGET_CC_ARCH one.

I have verified with the command eu-findtextrel shown below in the devshell:

[root at sujith git]# eu-findtextrel libx264.so.144
either the file containing the function 'x264_pixel_ssim_end4_neon' or the
file containing the function '$a' is not compiled with -fpic/-fPIC
either the file containing the function '$d' or the file containing the
function '$a' is not compiled with -fpic/-fPIC
either the file containing the function 'memcpy_aligned_8_8_neon' or the
file containing the function '$a' is not compiled with -fpic/-fPIC
either the file containing the function 'x264_zigzag_scan_4x4_frame_neon'
or the file containing the function '$a' is not compiled with -fpic/-fPIC
either the file containing the function 'x264_coeff_last64_neon' or the
file containing the function '$a' is not compiled with -fpic/-fPIC
either the file containing the function '$d' or the file containing the
function '$a' is not compiled with -fpic/-fPIC
either the file containing the function '$d' or the file containing the
function '$d' is not compiled with -fpic/-fPIC
either the file containing the function '$d' or the file containing the
function '$d' is not compiled with -fpic/-fPIC
either the file containing the function '$d' or the file containing the
function '$d' is not compiled with -fpic/-fPIC
either the file containing the function '$d' or the file containing the
function '$d' is not compiled with -fpic/-fPIC
[root at sujith git]#

The above mentioned functions are part of .S files. I am not sure how to
proceed with this. May be a helping hand would be appreciated to move
further.

Yes, of course I can update the commit message.

Fahad, any idea to share?


Thanks,
Sujith H



>
> p.
>
>


-- 
സുജിത് ഹരിദാസന്
Bangalore
<Project>Contributor to KDE project
<Project>Contributor to Yocto project
http://fci.wikia.com/wiki/Anti-DRM-Campaign
<Blog> http://sujithh.info
C-x C-c
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20160921/b5a9dd1d/attachment-0002.html>


More information about the Openembedded-core mailing list