<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugzilla.yoctoproject.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugzilla.yoctoproject.org/"
          
          maintainer="it-coreprojects-helpdesk@linuxfoundation.org"
>

    <bug>
          <bug_id>11123</bug_id>
          
          <creation_ts>2017-03-03 17:12:28 +0000</creation_ts>
          <short_desc>Stripping fixincl fails in gcc-cross-arm and gcc-cross-initial-arm do_populate_sysroot on Debian 9</short_desc>
          <delta_ts>2017-03-07 20:53:14 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>7</classification_id>
          <classification>Build System, Metadata &amp; Runtime</classification>
          <product>OE-Core</product>
          <component>devtools / tool chain</component>
          <version>unspecified</version>
          <rep_platform>x86</rep_platform>
          <op_sys>arm</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>Medium+</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>2.3 M3</target_milestone>
          
          <blocked>11009</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Paul Barker">paul</reporter>
          <assigned_to name="Richard Purdie">richard.purdie</assigned_to>
          <cc>meta.mr.watcher</cc>
    
    <cc>meta.watcher</cc>
    
    <cc>richard.purdie</cc>
    
    <cc>ross.burton</cc>
    
    <cc>stephano</cc>
          
          
          <cf_os>---</cf_os>
          <cf_regression_type>---</cf_regression_type>
          
          <cf_docchange>Don&apos;t know</cf_docchange>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>71067</commentid>
    <comment_count>0</comment_count>
    <who name="Paul Barker">paul</who>
    <bug_when>2017-03-03 17:12:28 +0000</bug_when>
    <thetext>$ bitbake rpi-hwup-image
WARNING: Host distribution &quot;debian-9&quot; has not been validated with this version of the build system; you may possibly experience unexpected failures. It is recommended that you use a tested distribution.
Parsing recipes: 100% |#########################################################################################################################################################| Time: 0:00:50
Parsing of 882 .bb files complete (0 cached, 882 parsed). 1360 targets, 78 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies
 
Build Configuration:
BB_VERSION        = &quot;1.33.2&quot;
BUILD_SYS         = &quot;x86_64-linux&quot;
NATIVELSBSTRING   = &quot;debian-9&quot;
TARGET_SYS        = &quot;arm-poky-linux-gnueabi&quot;
MACHINE           = &quot;raspberrypi&quot;
DISTRO            = &quot;poky&quot;
DISTRO_VERSION    = &quot;2.2+snapshot-20170303&quot;
TUNE_FEATURES     = &quot;arm armv6 vfp arm1176jzfs callconvention-hard&quot;
TARGET_FPU        = &quot;hard&quot;
meta
meta-poky
meta-yocto-bsp    = &quot;master:32e1eac49201fb57ca0d26ef3d2012f7e8573663&quot;
meta-raspberrypi  = &quot;master:9788cffbf072d71d56d1948a5c0b63bbfed220ee&quot;
 
Initialising tasks: 100% |######################################################################################################################################################| Time: 0:00:11
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
ERROR: gcc-cross-initial-arm-6.3.0-r0 do_populate_sysroot: runstrip: &apos;[&apos;strip&apos;, &apos;--remove-section=.comment&apos;, &apos;--remove-section=.note&apos;, &apos;/ar0/pbarker/work/toganlabs/rpi/poky/build/tmp/work/x86_64-linux/gcc-cross-initial-arm/6.3.0-r0/sysroot-destdir/ar0/pbarker/work/toganlabs/rpi/poky/build/tmp/work/x86_64-linux/gcc-cross-initial-arm/6.3.0-r0/recipe-sysroot-native/usr/libexec/arm-poky-linux-gnueabi.gcc-cross-initial-arm/gcc/arm-poky-linux-gnueabi/6.3.0/install-tools/fixincl&apos;]&apos; strip command failed with 1 (b&apos;strip: /ar0/pbarker/work/toganlabs/rpi/poky/build/tmp/work/x86_64-linux/gcc-cross-initial-arm/6.3.0-r0/sysroot-destdir/ar0/pbarker/work/toganlabs/rpi/poky/build/tmp/work/x86_64-linux/gcc-cross-initial-arm/6.3.0-r0/recipe-sysroot-native/usr/libexec/arm-poky-linux-gnueabi.gcc-cross-initial-arm/gcc/arm-poky-linux-gnueabi/6.3.0/install-tools/stMfU86F: Not enough room for program headers, try linking with -N\nstrip:/ar0/pbarker/work/toganlabs/rpi/poky/build/tmp/work/x86_64-linux/gcc-cross-initial-arm/6.3.0-r0/sysroot-destdir/ar0/pbarker/work/toganlabs/rpi/poky/build/tmp/work/x86_64-linux/gcc-cross-initial-arm/6.3.0-r0/recipe-sysroot-native/usr/libexec/arm-poky-linux-gnueabi.gcc-cross-initial-arm/gcc/arm-poky-linux-gnueabi/6.3.0/install-tools/stMfU86F[.note.ABI-tag]: Bad value\n&apos;)

The same error is seen for gcc-cross-arm.

Apparently this has also been seen on the autobuilder from time-to-time but only on Debian 9. Not sure if its specific to an ARM target or not.

It&apos;s specific to using uninative. Disabling uninative causes the error to go away.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>71073</commentid>
    <comment_count>1</comment_count>
    <who name="Richard Purdie">richard.purdie</who>
    <bug_when>2017-03-04 16:08:36 +0000</bug_when>
    <thetext>I have some further debug:

richard@jet:/media/build1/poky/build/tmp/work/x86_64-linux/gcc-crosssdk-x86_64-pokysdk-linux/6.3.0-r0/gcc-6.3.0/build.x86_64-linux.x86_64-pokysdk-linux/fixincludes$ rm fixinclrm: cannot remove &apos;fixincl&apos;: No such file or directory
richard@jet:/media/build1/poky/build/tmp/work/x86_64-linux/gcc-crosssdk-x86_64-pokysdk-linux/6.3.0-r0/gcc-6.3.0/build.x86_64-linux.x86_64-pokysdk-linux/fixincludes$ gcc  -isystem/media/build1/poky/build/tmp/work/x86_64-linux/gcc-crosssdk-x86_64-pokysdk-linux/6.3.0-r0/recipe-sysroot-native/usr/include -O2 -pipe -L/media/build1/poky/build/tmp/work/x86_64-linux/gcc-crosssdk-x86_64-pokysdk-linux/6.3.0-r0/recipe-sysroot-native/usr/lib -L/media/build1/poky/build/tmp/work/x86_64-linux/gcc-crosssdk-x86_64-pokysdk-linux/6.3.0-r0/recipe-sysroot-native/lib -Wl,-rpath-link,/media/build1/poky/build/tmp/work/x86_64-linux/gcc-crosssdk-x86_64-pokysdk-linux/6.3.0-r0/recipe-sysroot-native/usr/lib -Wl,-rpath-link,/media/build1/poky/build/tmp/work/x86_64-linux/gcc-crosssdk-x86_64-pokysdk-linux/6.3.0-r0/recipe-sysroot-native/lib -Wl,-rpath,/media/build1/poky/build/tmp/work/x86_64-linux/gcc-crosssdk-x86_64-pokysdk-linux/6.3.0-r0/recipe-sysroot-native/usr/lib -Wl,-rpath,/media/build1/poky/build/tmp/work/x86_64-linux/gcc-crosssdk-x86_64-pokysdk-linux/6.3.0-r0/recipe-sysroot-native/lib -Wl,-O1 -o fixincl fixincl.o fixtests.o fixfixes.o server.o procopen.o fixlib.o fixopts.o ../libiberty/libiberty.a 
richard@jet:/media/build1/poky/build/tmp/work/x86_64-linux/gcc-crosssdk-x86_64-pokysdk-linux/6.3.0-r0/gcc-6.3.0/build.x86_64-linux.x86_64-pokysdk-linux/fixincludes$ /media/build1/poky/build/tmp/sysroots-uninative/x86_64-linux/usr/bin/patchelf-uninative --set-interpreter /media/build1/poky/build/tmp/sysroots-uninative/x86_64-linux/lib/ld-linux-x86-64.so.2 fixincl
warning: working around a Linux kernel bug by creating a hole of 2027520 bytes in ‘fixincl’
richard@jet:/media/build1/poky/build/tmp/work/x86_64-linux/gcc-crosssdk-x86_64-pokysdk-linux/6.3.0-r0/gcc-6.3.0/build.x86_64-linux.x86_64-pokysdk-linux/fixincludes$ strip fixincl
strip: stKzBygr: Not enough room for program headers, try linking with -N
strip:stKzBygr[.note.ABI-tag]: Bad value
richard@jet:/media/build1/poky/build/tmp/work/x86_64-linux/gcc-crosssdk-x86_64-pokysdk-linux/6.3.0-r0/gcc-6.3.0/build.x86_64-linux.x86_64-pokysdk-linux/fixincludes$

Basically, if you link fixincl, then change the interpreter on some systems, it increases the size of the binary such that it can&apos;t then be stripped. This was from an Ubuntu 16.10 system. Something about the inflated binaries patchelf generates on some systems seems to break this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>71074</commentid>
    <comment_count>2</comment_count>
    <who name="Richard Purdie">richard.purdie</who>
    <bug_when>2017-03-04 16:10:00 +0000</bug_when>
    <thetext>Also note we are seeing this on the autobuilders:

https://autobuilder.yocto.io/builders/buildtools/builds/178 from buildtools on debian-testing on the new AB cluster</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>71081</commentid>
    <comment_count>3</comment_count>
    <who name="Richard Purdie">richard.purdie</who>
    <bug_when>2017-03-06 11:50:51 +0000</bug_when>
    <thetext>Further updates: What triggers whether a binary is ET_DYN or not is whether its linked with the pie flag. If pie linking is chosen, the binary becomes ET_DYN and the workaround in patchelf kicks in.

I&apos;m guessing some distros like debian-testing and ubuntu 16.10 have ld which does this by default.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>71103</commentid>
    <comment_count>4</comment_count>
    <who name="Richard Purdie">richard.purdie</who>
    <bug_when>2017-03-07 11:32:44 +0000</bug_when>
    <thetext>https://github.com/NixOS/patchelf/issues/10 seems pertinent to this issue. Sadly the patches there don&apos;t work for me though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>71112</commentid>
    <comment_count>5</comment_count>
    <who name="Richard Purdie">richard.purdie</who>
    <bug_when>2017-03-07 20:53:14 +0000</bug_when>
    <thetext>http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=c4901328fe5cf912c0965e5b011b64a95a9bcb9d</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>