<?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>7081</bug_id>
          
          <creation_ts>2014-12-12 23:14:53 +0000</creation_ts>
          <short_desc>glibc test suite fails to build some programs</short_desc>
          <delta_ts>2015-04-03 16:00:48 +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>unspecified</version>
          <rep_platform>x86</rep_platform>
          <op_sys>Multiple</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>1.8 M4</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Juro Bystricky">juro.bystricky</reporter>
          <assigned_to name="Juro Bystricky">juro.bystricky</assigned_to>
          <cc>meta.mr.watcher</cc>
    
    <cc>meta.watcher</cc>
          
          
          <cf_os>---</cf_os>
          <cf_regression_type>---</cf_regression_type>
          
          <cf_docchange>No (bug/feature does not impact docs)</cf_docchange>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>47549</commentid>
    <comment_count>0</comment_count>
      <attachid>2297</attachid>
    <who name="Juro Bystricky">juro.bystricky</who>
    <bug_when>2014-12-12 23:14:53 +0000</bug_when>
    <thetext>Created attachment 2297
Patch to detect g++ system header files

The following programs from the glibc test suite fail to build:

/elf/tst-unique3cc
/elf/tst-unique4cc
/elf/tst-unique3lib.cc
/elf/tst-unique3lib2.cc

in all cases the error is:

fatal error: cstdio: No such file or directory
 #include &lt;cstdio&gt;

The reason is the c++ header files were not found by the g++.
g++ was invoked with -nostdinc flag, and in that case the path to system include
files must be specified explicitly. The glibc &quot;configure&quot; contains some code to detect
the g++ system headers file location, but it does not work correctly.
For example, it uses g++ itself to query for the location of the header files,
but g++ may not be present at all at the cofigure time. Also, the algorithm used
to detect the header file location does not seem to work with g++ anymore.
Even if g++ is present the resulting config.log shows:
CXX_SYSINCLUDES=&apos;&apos;

To fix the problem, the location of the include headers should be determined before 
running the test suite, not before building glibc.

The proposed solution modifies /meta/recipes-core/glibc/glibc-testing.inc. The new code 
cracks &quot;configparms&quot; to get the actual CXX and sysroot used for the glibc test suite, then 
uses CXX to determine CXX version and CXX machine. 
Based on the results, it composes a new value for c++-sysincludes 
and appends &quot;configparms&quot; with the new value.

The header locations are assumed to be:
    sysroot/usr/include/c++/&lt;version&gt;
    sysroot/usr/include/c++/&lt;version&gt;/&lt;machine&gt;

This was so far successfully tested on qemux86-64.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47550</commentid>
    <comment_count>1</comment_count>
    <who name="Juro Bystricky">juro.bystricky</who>
    <bug_when>2014-12-13 02:59:18 +0000</bug_when>
    <thetext>Also tested fine on qemumips.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47570</commentid>
    <comment_count>2</comment_count>
    <who name="Juro Bystricky">juro.bystricky</who>
    <bug_when>2014-12-15 19:04:17 +0000</bug_when>
    <thetext>The fix I described previously (but a bit more paranoid) is being tested. The fix is quite safe, it does not affect glibc build at all, it only modifies the testing script. 

If there are no c++-sysincludes specified in config.make, then the location of the headers is determined by querying the CXX compiler as specified in configparms.
If the corresponding folders do exist in the &lt;sysroot&gt; (as specified by configparms as well) then tew value of c++-sysincludes is written to the configparms as well, overriding the previous empty definition.

If the config.make contains a value for c++-sysincludes, then it is assumed
to be correct and the testing is done as before without any changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>49750</commentid>
    <comment_count>3</comment_count>
    <who name="Juro Bystricky">juro.bystricky</who>
    <bug_when>2015-03-25 15:07:00 +0000</bug_when>
    <thetext>The problem remains also with glibc 2.21.
Posted a patch that fixes the problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>49751</commentid>
    <comment_count>4</comment_count>
      <attachid>2453</attachid>
    <who name="Juro Bystricky">juro.bystricky</who>
    <bug_when>2015-03-25 15:10:03 +0000</bug_when>
    <thetext>Created attachment 2453
Patch to determine location of g++ system header files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>50079</commentid>
    <comment_count>5</comment_count>
    <who name="Juro Bystricky">juro.bystricky</who>
    <bug_when>2015-04-03 16:00:48 +0000</bug_when>
    <thetext>Merged to trunk commit: 47dedbcb52702539b124ecf43cf53e4c3b7b3b33</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>2297</attachid>
            <date>2014-12-12 23:14:53 +0000</date>
            <delta_ts>2014-12-12 23:14:53 +0000</delta_ts>
            <desc>Patch to detect g++ system header files</desc>
            <filename>glibc-testing.diff</filename>
            <type>text/plain</type>
            <size>1394</size>
            <attacher name="Juro Bystricky">juro.bystricky</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1jb3JlL2dsaWJjL2dsaWJjLXRlc3RpbmcuaW5jIGIv
bWV0YS9yZWNpcGVzLWNvcmUvZ2xpYmMvZ2xpYmMtdGVzdGluZy5pbmMKaW5kZXggZWMxNmZlMS4u
MmU4ZWUwMiAxMDA2NDQKLS0tIGEvbWV0YS9yZWNpcGVzLWNvcmUvZ2xpYmMvZ2xpYmMtdGVzdGlu
Zy5pbmMKKysrIGIvbWV0YS9yZWNpcGVzLWNvcmUvZ2xpYmMvZ2xpYmMtdGVzdGluZy5pbmMKQEAg
LTY1LDkgKzY1LDIyIEBAIHRoZW4KIGZpCiAJZWNobyAiIyB3ZSB0ZXN0IHVzaW5nIGNyb3NzIGNv
bXBpbGVyIGZyb20gcmVhbCBzeXNyb290IHRoZXJlZm9yZSBvdmVycmlkZSB0aGUiID4gJHtCfS9j
b25maWdwYXJtcwogCWVjaG8gIiMgZGVmaW5pdGlvbnMgdGhhdCBjb21lIGZyb20gJHtCfS9jb25m
aWcubWFrZSIgPj4gJHtCfS9jb25maWdwYXJtcwotCiAJZmdyZXAgdGNib290c3RyYXAgJHtCfS9j
b25maWcubWFrZSA+ICR7Qn0vY29uZmlncGFybXMKIAlzZWQgLWkgLWUgInMvXC10Y2Jvb3RzdHJh
cC8vZyIgJHtCfS9jb25maWdwYXJtcworCisjIGcrKyB1c2VzIGZsYWcgLW5vc3RkaW5jLCBzbyB0
aGUgbG9jYXRpb25zIG9mIHN5c3RlbSBpbmNsdWRlIGhlYWRlcnMgbXVzdCBiZSBleHBsaWNpdGx5
IHNwZWNpZmllZAorIyBUaGUgbG9jYXRpb25zIGFyZSBhc3N1bWVkIHRvIGJlOgorIyAgICBzeXNy
b290L3Vzci9pbmNsdWRlL2MrKy88ZysrIHZlcnNpb24+CisjICAgIHN5c3Jvb3QvdXNyL2luY2x1
ZGUvYysrLzxnKysgdmVyc2lvbj4vPG1hY2hpbmU+CisKK3N5c3Jvb3Q9XGBjYXQgJHtCfS9jb25m
aWdwYXJtcyB8IHNlZCAtbiAiL0NYWC9wIiB8IHNlZCAtZSAicy9eLiotLXN5c3Jvb3Q9Ly8iXGAK
K2N4eD1cYGNhdCAke0J9L2NvbmZpZ3Bhcm1zIHwgYXdrICdcJDEgfiAvXkNYWC8nIHwgYXdrIC1G
Ij0iICd7cHJpbnQgXCQyfScgfCBhd2sgJ3twcmludCBcJDF9J1xgCitjeHhtYWNoaW5lPVxgXCRj
eHggLWR1bXBtYWNoaW5lXGAKK2N4eHZlcnNpb249XGBcJGN4eCAtZHVtcHZlcnNpb25cYAorCisj
IHBhc3MgdGhlIG5ldyB2YWx1ZSBvZiBjKystc3lzaW5jbHVkZXMgdmlhIGNvbmZpZ3Bhcm1zCitl
Y2hvICJjKystc3lzaW5jbHVkZXMgPSAtaXN5c3RlbSBcJHN5c3Jvb3QvdXNyL2luY2x1ZGUvYysr
L1wkY3h4dmVyc2lvbiAtaXN5c3RlbSBcJHN5c3Jvb3QvdXNyL2luY2x1ZGUvYysrL1wkY3h4dmVy
c2lvbi9cJGN4eG1hY2hpbmUiID4+ICR7Qn0vY29uZmlncGFybXMKKwogd3JhcHBlcj0iJHtTfS9z
Y3JpcHRzL2Nyb3NzLXRlc3Qtc3NoLnNoIFwkdGFyZ2V0IgogbG9jYWxlZGVmPSIke1NUQUdJTkdf
QklORElSX05BVElWRX0vY3Jvc3MtbG9jYWxlZGVmIC0tbGl0dGxlLWVuZGlhbiAtLXVpbnQzMi1h
bGlnbj00IgogbWFrZSB0ZXN0cy1jbGVhbgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>2453</attachid>
            <date>2015-03-25 15:10:03 +0000</date>
            <delta_ts>2015-03-25 15:10:03 +0000</delta_ts>
            <desc>Patch to determine location of g++ system header files</desc>
            <filename>file_7081.txt</filename>
            <type>text/plain</type>
            <size>1748</size>
            <attacher name="Juro Bystricky">juro.bystricky</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1jb3JlL2dsaWJjL2dsaWJjLXRlc3RpbmcuaW5jIGIv
bWV0YS9yZWNpcGVzLWNvcmUvZ2xpYmMvZ2xpYmMtdGVzdGluZy5pbmMNCmluZGV4IGVjMTZmZTEu
LmZkMWFmMzkgMTAwNjQ0DQotLS0gYS9tZXRhL3JlY2lwZXMtY29yZS9nbGliYy9nbGliYy10ZXN0
aW5nLmluYw0KKysrIGIvbWV0YS9yZWNpcGVzLWNvcmUvZ2xpYmMvZ2xpYmMtdGVzdGluZy5pbmMN
CkBAIC02NSw5ICs2NSwyNiBAQCB0aGVuDQogZmkNCiAgICAgICAgZWNobyAiIyB3ZSB0ZXN0IHVz
aW5nIGNyb3NzIGNvbXBpbGVyIGZyb20gcmVhbCBzeXNyb290IHRoZXJlZm9yZSBvdmVycmlkZSB0
aGUiID4gJHtCfS9jb25maWdwYXJtcw0KICAgICAgICBlY2hvICIjIGRlZmluaXRpb25zIHRoYXQg
Y29tZSBmcm9tICR7Qn0vY29uZmlnLm1ha2UiID4+ICR7Qn0vY29uZmlncGFybXMNCi0NCiAgICAg
ICAgZmdyZXAgdGNib290c3RyYXAgJHtCfS9jb25maWcubWFrZSA+ICR7Qn0vY29uZmlncGFybXMN
CiAgICAgICAgc2VkIC1pIC1lICJzL1wtdGNib290c3RyYXAvL2ciICR7Qn0vY29uZmlncGFybXMN
CisNCisjIGcrKyB1c2VzIGZsYWcgLW5vc3RkaW5jLCBzbyB0aGUgbG9jYXRpb25zIG9mIHN5c3Rl
bSBpbmNsdWRlIGhlYWRlcnMgbXVzdCBiZSBleHBsaWNpdGx5IHNwZWNpZmllZA0KKyMgSWYgdGhl
IGxvY2F0aW9ucyBhcmUgbm90IGFscmVhZHkgc3BlY2lmaWVkIGluIGNvbmZpZy5tYWtlLCB0aGVu
IHdlIHByb3ZpZGUgdGhlIGZvbGxvd2luZyBsb2NhdGlvbnM6DQorIyAgICA8c3lzcm9vdD4vdXNy
L2luY2x1ZGUvYysrLzxnKysgdmVyc2lvbj4NCisjICAgIDxzeXNyb290Pi91c3IvaW5jbHVkZS9j
KysvPGcrKyB2ZXJzaW9uPi88bWFjaGluZT4NCisNCitjeHhpbmNsdWRlcz1cYGNhdCAke0J9L2Nv
bmZpZy5tYWtlIHwgZ2F3ayAnXCQxID09ICJjKystc3lzaW5jbHVkZXMiJyB8IGdhd2sgLUYiPSIg
J3twcmludCBcJDJ9JyB8IHNlZCAicy9bIFx0XVw/Ly9nIlxgDQorDQoraWYgWyAteiAiXCRjeHhp
bmNsdWRlcyIgXTsgdGhlbg0KKyAgc3lzcm9vdD1cYGNhdCAke0J9L2NvbmZpZ3Bhcm1zIHwgc2Vk
IC1uICIvQ1hYL3AiIHwgc2VkIC1lICJzL14uKi0tc3lzcm9vdD0vLyJcYA0KKyAgY3h4PVxgY2F0
ICR7Qn0vY29uZmlncGFybXMgfCBnYXdrICdcJDEgfiAvXkNYWC8nIHwgZ2F3ayAtRiI9IiAne3By
aW50IFwkMn0nIHwgZ2F3ayAne3ByaW50IFwkMX0nXGANCisgIGN4eG1hY2hpbmU9XGBcJGN4eCAt
ZHVtcG1hY2hpbmVcYA0KKyAgY3h4dmVyc2lvbj1cYFwkY3h4IC1kdW1wdmVyc2lvblxgDQorICAj
IHBhc3MgdGhlIG5ldyB2YWx1ZSBvZiBjKystc3lzaW5jbHVkZXMgdmlhIGNvbmZpZ3Bhcm1zDQor
ICBlY2hvICIjIGMrKy1zeXNpbmNsdWRlcyBhZGRlZDoiID4+ICR7Qn0vY29uZmlncGFybXMNCisg
IGVjaG8gImMrKy1zeXNpbmNsdWRlcyA9IC1pc3lzdGVtIFwkc3lzcm9vdC91c3IvaW5jbHVkZS9j
KysvXCRjeHh2ZXJzaW9uIC1pc3lzdGVtIFwkc3lzcm9vdC91c3IvaW5jbHVkZS9jKysvXCRjeHh2
ZXJzaW9uL1wkY3h4bWFjaGluZSIgPj4gJHtCfS9jb25maWdwYXJtcw0KK2ZpDQorDQogd3JhcHBl
cj0iJHtTfS9zY3JpcHRzL2Nyb3NzLXRlc3Qtc3NoLnNoIFwkdGFyZ2V0Ig0KIGxvY2FsZWRlZj0i
JHtTVEFHSU5HX0JJTkRJUl9OQVRJVkV9L2Nyb3NzLWxvY2FsZWRlZiAtLWxpdHRsZS1lbmRpYW4g
LS11aW50MzItYWxpZ249NCINCiBtYWtlIHRlc3RzLWNsZWFuDQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>