<?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>8274</bug_id>
          
          <creation_ts>2015-09-09 21:36:00 +0000</creation_ts>
          <short_desc>libatomic missing from builds</short_desc>
          <delta_ts>2015-10-26 16:06: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>core</component>
          <version>1.8</version>
          <rep_platform>All</rep_platform>
          <op_sys>Multiple</op_sys>
          <bug_status>VERIFIED</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.0</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Thiago Macieira">thiago</reporter>
          <assigned_to name="Ross Burton">ross.burton</assigned_to>
          <cc>bogdanx.a.voiculescu</cc>
    
    <cc>meta.mr.watcher</cc>
    
    <cc>meta.watcher</cc>
          
          <qa_contact name="Bogdan Alexandru Voiculescu">bogdanx.a.voiculescu</qa_contact>
          <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>53894</commentid>
    <comment_count>0</comment_count>
    <who name="Thiago Macieira">thiago</who>
    <bug_when>2015-09-09 21:36:00 +0000</bug_when>
    <thetext>libatomic is part of GCC and contains the code for certain atomic data access that GCC might generate. 

On most architectures, modern GCC will inline all the calls via builtins, but there are some data sizes for which the intrinsics will result in out-of-line accesses to libatomic. (e.g., 8-byte access on MIPS32 and PPC32, any non-standard size like 3, 5, 6, 7, 9 bytes, etc.)

For that reason, libatomic should be part of all toolchains and I guess part of OE-Core. At the very least, it needs to be part of the MIPS32 and PPC32 toolchains, since 8-byte loads are out-of-line on those architectures.

This came about on Qt work: Qt 5.7 may require 8-byte atomic loads to succeed, so libatomic needs to be present where 8-byte loads result in out-of-line calls. (Qt 5.7 is scheduled for sometime early next year).

Also note that libatomic is in /usr/lib/.debug for those images, but not in regular form:

$ find /opt/poky -name libatomic.so.1.1.0 2&gt;/dev/null
/opt/poky/1.7/sysroots/ppce500v2-poky-linux-gnuspe/usr/lib/.debug/libatomic.so.1.1.0
/opt/poky/1.7/sysroots/armv7a-vfp-neon-poky-linux-gnueabi/usr/lib/.debug/libatomic.so.1.1.0
/opt/poky/1.7/sysroots/mips32r2-poky-linux/usr/lib/.debug/libatomic.so.1.1.0
/opt/poky/1.8/sysroots/mips32r2-poky-linux/usr/lib/.debug/libatomic.so.1.1.0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>53942</commentid>
    <comment_count>1</comment_count>
    <who name="Thiago Macieira">thiago</who>
    <bug_when>2015-09-10 15:40:39 +0000</bug_when>
    <thetext>Any chance of still fixing this for 1.9? It shouldn&apos;t be hard: libatomic must be being built already, as the debug symbols are there. I&apos;m asking that it be packaged and included in poky.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>53943</commentid>
    <comment_count>2</comment_count>
    <who name="Ross Burton">ross.burton</who>
    <bug_when>2015-09-10 15:59:39 +0000</bug_when>
    <thetext>1.9 is 2.0, we kept the 1.9M names for tracking but the release will be 2.0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54408</commentid>
    <comment_count>3</comment_count>
    <who name="Ross Burton">ross.burton</who>
    <bug_when>2015-09-21 19:44:28 +0000</bug_when>
    <thetext>Patch on the list.

The debug file is included because all of gcc-runtime&apos;s debug symbols are in a single package.  Not sure what you mean by &quot;not in regular form&quot;, it appears normal to me on my qemumips build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54411</commentid>
    <comment_count>4</comment_count>
    <who name="Thiago Macieira">thiago</who>
    <bug_when>2015-09-21 21:05:33 +0000</bug_when>
    <thetext>(In reply to comment #3)
&gt; Patch on the list.
&gt; 
&gt; The debug file is included because all of gcc-runtime&apos;s debug symbols are in
&gt; a single package.  Not sure what you mean by &quot;not in regular form&quot;, it
&gt; appears normal to me on my qemumips build.

I meant that the regular library (not the .debug one) is not included in the default sysroot image, but the debug file for it is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54782</commentid>
    <comment_count>5</comment_count>
    <who name="Ross Burton">ross.burton</who>
    <bug_when>2015-09-29 12:23:13 +0000</bug_when>
    <thetext>Fixed in oe-core 55e8067d3fb6a1fc97b4486e28e3e3bae2b5cd00.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55763</commentid>
    <comment_count>6</comment_count>
    <who name="Bogdan Alexandru Voiculescu">bogdanx.a.voiculescu</who>
    <bug_when>2015-10-26 16:06:14 +0000</bug_when>
    <thetext>Verified on master: 505a82673ac2487df5ea343a6422c2fc47018831
./tmp/sysroots/qemux86-64/usr/lib64/libatomic.so.1.1.0
./tmp/sysroots/lib32-qemux86-64/usr/lib/libatomic.so.1.1.0

/opt/poky/2.0_AB$ sudo find . -name libatomic.so.1.1.0
./sysroots/core2-64-poky-linux/usr/lib/libatomic.so.1.1.0
./sysroots/core2-64-poky-linux/usr/lib/.debug/libatomic.so.1.1.0</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>