<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
code
        {mso-style-priority:99;
        font-family:"Courier New";}
span.EmailStyle18
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:691225236;
        mso-list-template-ids:-747570772;}
@list l1
        {mso-list-id:1721711329;
        mso-list-template-ids:674923472;}
@list l1:level1
        {mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level2
        {mso-level-tab-stop:72.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level3
        {mso-level-tab-stop:108.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level4
        {mso-level-tab-stop:144.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level5
        {mso-level-tab-stop:180.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level6
        {mso-level-tab-stop:216.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level7
        {mso-level-tab-stop:252.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level8
        {mso-level-tab-stop:288.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level9
        {mso-level-tab-stop:324.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-GB" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Hal,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">In my ongoing struggle to succeed despite my repeated failures, I have successfully compiled boost/hpx/otherstuff with just clang++ and linked to libc++ from the c++11 toolchain. However, when I startup programs compiled as part of HPX,
 I get a segfault in some _<i>dl</i>_fixup going on during the initialization of a static path/dir object in boost filesystem.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The best explanation I’ve found from stackoverflow says (http://stackoverflow.com/questions/10578315/segmentation-fault-in-dl-runtime-resolve)<o:p></o:p></p>
<ol start="1" type="1">
<li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1 level1 lfo3">
<span style="font-size:12.0pt;font-family:"Times New Roman","serif";mso-fareast-language:EN-GB">Heap corruption (overflow) or<o:p></o:p></span></li><li class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1 level1 lfo3">
<span style="font-size:12.0pt;font-family:"Times New Roman","serif";mso-fareast-language:EN-GB">Mismatched parts of
</span><span style="font-size:10.0pt;font-family:"Courier New";mso-fareast-language:EN-GB">glibc</span><span style="font-size:12.0pt;font-family:"Times New Roman","serif";mso-fareast-language:EN-GB"> itself.<o:p></o:p></span></li></ol>
<p class="MsoNormal">and 2) is clearly a possibility in my case since we’re using
<o:p></o:p></p>
<p class="MsoNormal" style="text-indent:36.0pt">libc.so.6 => /bgsys/drivers/ppcfloor/gnu-linux-4.7.2/powerpc64-bgq-linux/lib/libc.so.6 (0x00000fff78420000)<o:p></o:p></p>
<p class="MsoNormal">which is non-standard.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Question: Is there anything in the bgclang script that does important setting of any var/flag which might influence how the exes get linked. I see stuff in particular that sets<o:p></o:p></p>
<p class="MsoNormal" style="text-indent:36.0pt">BGCLANG_TARGET_INC="-Xclang -isystem -Xclang /gpfs/bbp.cscs.ch/home/biddisco/apps/clang/bgclang/r206161-20140414/libc++/include $BGCLANG_TARGET_INC"<o:p></o:p></p>
<p class="MsoNormal">and also <o:p></o:p></p>
<p class="MsoNormal">                BGCLANG_TARGET_FLAGS="$BGCLANG_TARGET_FLAGS -L$BGSYS_FLOOR/$GNU_LINUX/powerpc64-bgq-linux/lib"<o:p></o:p></p>
<p class="MsoNormal">and I wonder about the -Xclang items which I understand to be instructions to clang plugins.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">If I have my system configured as follows<o:p></o:p></p>
<p class="MsoNormal">CFLAGS="-mcpu=a2"<o:p></o:p></p>
<p class="MsoNormal">CXXFLAGS="-mcpu=a2 -std=c++11 -stdlib=libc++ -D_bgq_linux -I/gpfs/bbp.cscs.ch/home/biddisco/apps/clang/bgclang/r206161-20140414/libc++/include -I/bgsys/drivers/ppcfloor"<o:p></o:p></p>
<p class="MsoNormal">LDFLAGS="-dynamic -L/gpfs/bbp.cscs.ch/home/biddisco/apps/clang/bgclang/r206161-20140414/libc++/lib -L/bgsys/drivers/ppcfloor/gnu-linux-4.7.2/powerpc64-bgq-linux/lib"<o:p></o:p></p>
<p class="MsoNormal">(the -D_bgq_linux is mine and used by certain cpp files to #include stuff)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">can you imagine what might be going wrong with my build/link to munge my libc initialization in any way? Have I linked to the wrong libc/c++ stuff perhaps?<o:p></o:p></p>
<p class="MsoNormal">Typically my exes come out looking like this (ldd below) as far as libs are used, which seems ok, but they do segfault on start which is really annoying me a lot (understatement).
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">thanks<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">JB<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">bbpbg2:~/bgas/clang/build/cpp$ ldd ../hpx/bin/network_storage<o:p></o:p></p>
<p class="MsoNormal">                linux-vdso64.so.1 =>  (0x00000fff7d580000)<o:p></o:p></p>
<p class="MsoNormal">                libhpxd.so.0 => /gpfs/bbp.cscs.ch/home/biddisco/bgas/clang/build/hpx/lib/hpx/libhpxd.so.0 (0x00000fff79b00000)<o:p></o:p></p>
<p class="MsoNormal">                libhpx_serializationd.so.0 => /gpfs/bbp.cscs.ch/home/biddisco/bgas/clang/build/hpx/lib/hpx/libhpx_serializationd.so.0 (0x00000fff79ac0000)<o:p></o:p></p>
<p class="MsoNormal">                libboost_date_time-clang35-mt-d-1_55.so.1.55.0 => /gpfs/bbp.cscs.ch/home/biddisco/apps/clang/boost_1_55_0/lib/libboost_date_time-clang35-mt-d-1_55.so.1.55.0 (0x00000fff79a90000)<o:p></o:p></p>
<p class="MsoNormal">                libboost_filesystem-clang35-mt-d-1_55.so.1.55.0 => /gpfs/bbp.cscs.ch/home/biddisco/apps/clang/boost_1_55_0/lib/libboost_filesystem-clang35-mt-d-1_55.so.1.55.0 (0x00000fff79a40000)<o:p></o:p></p>
<p class="MsoNormal">                libboost_program_options-clang35-mt-d-1_55.so.1.55.0 => /gpfs/bbp.cscs.ch/home/biddisco/apps/clang/boost_1_55_0/lib/libboost_program_options-clang35-mt-d-1_55.so.1.55.0 (0x00000fff79920000)<o:p></o:p></p>
<p class="MsoNormal">                libboost_regex-clang35-mt-d-1_55.so.1.55.0 => /gpfs/bbp.cscs.ch/home/biddisco/apps/clang/boost_1_55_0/lib/libboost_regex-clang35-mt-d-1_55.so.1.55.0 (0x00000fff79710000)<o:p></o:p></p>
<p class="MsoNormal">                libboost_serialization-clang35-mt-d-1_55.so.1.55.0 => /gpfs/bbp.cscs.ch/home/biddisco/apps/clang/boost_1_55_0/lib/libboost_serialization-clang35-mt-d-1_55.so.1.55.0 (0x00000fff79530000)<o:p></o:p></p>
<p class="MsoNormal">                libboost_system-clang35-mt-d-1_55.so.1.55.0 => /gpfs/bbp.cscs.ch/home/biddisco/apps/clang/boost_1_55_0/lib/libboost_system-clang35-mt-d-1_55.so.1.55.0 (0x00000fff79510000)<o:p></o:p></p>
<p class="MsoNormal">                libboost_thread-clang35-mt-d-1_55.so.1.55.0 => /gpfs/bbp.cscs.ch/home/biddisco/apps/clang/boost_1_55_0/lib/libboost_thread-clang35-mt-d-1_55.so.1.55.0 (0x00000fff794c0000)<o:p></o:p></p>
<p class="MsoNormal">                libboost_atomic-clang35-mt-d-1_55.so.1.55.0 => /gpfs/bbp.cscs.ch/home/biddisco/apps/clang/boost_1_55_0/lib/libboost_atomic-clang35-mt-d-1_55.so.1.55.0 (0x00000fff794a0000)<o:p></o:p></p>
<p class="MsoNormal">                libboost_chrono-clang35-mt-d-1_55.so.1.55.0 => /gpfs/bbp.cscs.ch/home/biddisco/apps/clang/boost_1_55_0/lib/libboost_chrono-clang35-mt-d-1_55.so.1.55.0 (0x00000fff79480000)<o:p></o:p></p>
<p class="MsoNormal">                libboost_context-clang35-mt-d-1_55.so.1.55.0 => /gpfs/bbp.cscs.ch/home/biddisco/apps/clang/boost_1_55_0/lib/libboost_context-clang35-mt-d-1_55.so.1.55.0 (0x00000fff79460000)<o:p></o:p></p>
<p class="MsoNormal">                libmpich.so.3 => /usr/lib64/mvapich2/lib/libmpich.so.3 (0x00000fff790f0000)<o:p></o:p></p>
<p class="MsoNormal">                libibverbs.so.1 => /usr/lib64/libibverbs.so.1 (0x000000808dbe0000)<o:p></o:p></p>
<p class="MsoNormal">                libopa.so.1 => /usr/lib64/mvapich2/lib/libopa.so.1 (0x00000fff790a0000)<o:p></o:p></p>
<p class="MsoNormal">                libmpl.so.1 => /usr/lib64/mvapich2/lib/libmpl.so.1 (0x00000080afc00000)<o:p></o:p></p>
<p class="MsoNormal">                librt.so.1 => /bgsys/drivers/ppcfloor/gnu-linux-4.7.2/powerpc64-bgq-linux/lib/librt.so.1 (0x00000fff78f70000)<o:p></o:p></p>
<p class="MsoNormal">                libpthread.so.0 => /bgsys/drivers/ppcfloor/gnu-linux-4.7.2/powerpc64-bgq-linux/lib/libpthread.so.0 (0x00000fff78e50000)<o:p></o:p></p>
<p class="MsoNormal">                librdmacm.so.1 => /usr/lib64/librdmacm.so.1 (0x000000808dc10000)<o:p></o:p></p>
<p class="MsoNormal">                libhwloc.so.5 => /gpfs/bbp.cscs.ch/home/biddisco/apps/clang/hwloc-1.8.1/lib/libhwloc.so.5 (0x00000fff78df0000)<o:p></o:p></p>
<p class="MsoNormal">                libdl.so.2 => /bgsys/drivers/ppcfloor/gnu-linux-4.7.2/powerpc64-bgq-linux/lib/libdl.so.2 (0x00000fff78cd0000)<o:p></o:p></p>
<p class="MsoNormal">                libc++.so.1 => /gpfs/bbp.cscs.ch/home/biddisco/apps/clang/bgclang/libc++/lib/libc++.so.1 (0x00000fff78ab0000)<o:p></o:p></p>
<p class="MsoNormal">                libstdc++.so.6 => /bgsys/drivers/ppcfloor/gnu-linux-4.7.2/powerpc64-bgq-linux/lib/libstdc++.so.6 (0x00000fff78880000)<o:p></o:p></p>
<p class="MsoNormal">                libm.so.6 => /bgsys/drivers/ppcfloor/gnu-linux-4.7.2/powerpc64-bgq-linux/lib/libm.so.6 (0x00000fff78760000)<o:p></o:p></p>
<p class="MsoNormal">                libgcc_s.so.1 => /bgsys/drivers/ppcfloor/gnu-linux-4.7.2/powerpc64-bgq-linux/lib/libgcc_s.so.1 (0x00000fff78650000)<o:p></o:p></p>
<p class="MsoNormal">                libc.so.6 => /bgsys/drivers/ppcfloor/gnu-linux-4.7.2/powerpc64-bgq-linux/lib/libc.so.6 (0x00000fff78420000)<o:p></o:p></p>
<p class="MsoNormal">                libibumad.so.3 => /usr/lib64/libibumad.so.3 (0x00000080a0b60000)<o:p></o:p></p>
<p class="MsoNormal">                /lib64/ld64.so.1 (0x0000000020a80000)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span lang="IT-CH"><o:p> </o:p></span></p>
</div>
</body>
</html>