Boost C++ Libraries: Ticket #10258: b2 fails to find gcc if bootstrapped with clang https://svn.boost.org/trac10/ticket/10258 <p> The system showing the problem is Ubuntu 14.04 LTS on ARMv7a. x86 or x64 may not have the same problem. This is in Boost 1.56 beta. </p> <p> What my CI was always doing for bootstrap is this: </p> <p> ./bootstrap.sh --with-toolset=clang </p> <p> Unfortunately, this breaks: </p> <p> ./b2 toolset=gcc ... </p> <p> iff you bootstrapped with clang! It appears to set the gcc executable path to an empty string with obvious consequences. </p> <p> ./b2 toolset=clang works fine though, as does bootstrapping with gcc whereupon both gcc and clang toolsets work fine. </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/10258 Trac 1.4.3 Vladimir Prus Mon, 28 Jul 2014 10:19:59 GMT <link>https://svn.boost.org/trac10/ticket/10258#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10258#comment:1</guid> <description> <p> Could you please say how "./b2 toolset=gcc ..." fails exactly? What's your project-config.jam? </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Niall Douglas</dc:creator> <pubDate>Mon, 28 Jul 2014 10:26:33 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/10258#comment:2 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10258#comment:2</guid> <description> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/10258#comment:1" title="Comment 1">vladimir_prus</a>: </p> <blockquote class="citation"> <p> Could you please say how "./b2 toolset=gcc ..." fails exactly? What's your project-config.jam? </p> </blockquote> <p> You can see a failing build log at <a class="ext-link" href="https://ci.nedprod.com/view/Boost.AFIO/job/Boost.AFIO%20Build%20POSIX_ARM_GCC%204.8/10/console"><span class="icon">​</span>https://ci.nedprod.com/view/Boost.AFIO/job/Boost.AFIO%20Build%20POSIX_ARM_GCC%204.8/10/console</a>. </p> <p> There is no project-config.jam. Everything is entirely set to default vanilla settings. It could be an ARM Linux thing. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Jürgen Hunold</dc:creator> <pubDate>Tue, 29 Jul 2014 06:38:09 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/10258#comment:3 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10258#comment:3</guid> <description> <p> bootstrap.sh creates a project-config.jam in BOOST_ROOT which contains the default compiler setup. Please take a look for it and tell us the contents. Your error log contains "/bin/sh: 2: -ftemplate-depth-128: not found" which is the classic indication that the (default) compiler is missing/not found/somehow got lost. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Niall Douglas</dc:creator> <pubDate>Tue, 29 Jul 2014 10:20:34 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/10258#comment:4 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10258#comment:4</guid> <description> <p> When bootstrapped with no arguments: </p> <pre class="wiki"># Boost.Build Configuration # Automatically generated by bootstrap.sh import option ; import feature ; # Compiler configuration. This definition will be used unless # you already have defined some toolsets in your user-config.jam # file. if ! gcc in [ feature.values &lt;toolset&gt; ] { using gcc ; } project : default-build &lt;toolset&gt;gcc ; # Python configuration using python : 2.7 : /usr ; # List of --with-&lt;library&gt; and --without-&lt;library&gt; # options. If left empty, all libraries will be built. # Options specified on the command line completely # override this variable. libraries = ; # These settings are equivivalent to corresponding command-line # options. option.set prefix : /usr/local ; option.set exec-prefix : /usr/local ; option.set libdir : /usr/local/lib ; option.set includedir : /usr/local/include ; # Stop on first error option.set keep-going : false ; </pre><p> When bootstrapped with --with-toolset=clang: </p> <pre class="wiki"># Boost.Build Configuration # Automatically generated by bootstrap.sh import option ; import feature ; # Compiler configuration. This definition will be used unless # you already have defined some toolsets in your user-config.jam # file. if ! clang in [ feature.values &lt;toolset&gt; ] { using clang ; } project : default-build &lt;toolset&gt;clang ; # Python configuration using python : 2.7 : /usr ; # List of --with-&lt;library&gt; and --without-&lt;library&gt; # options. If left empty, all libraries will be built. # Options specified on the command line completely # override this variable. libraries = ; # These settings are equivivalent to corresponding command-line # options. option.set prefix : /usr/local ; option.set exec-prefix : /usr/local ; option.set libdir : /usr/local/lib ; option.set includedir : /usr/local/include ; # Stop on first error option.set keep-going : false ; </pre><p> Locations of g++ and clang++ </p> <pre class="wiki">jenkins-slave@tegra-ubuntu:~/workspace/Boost.AFIO Build POSIX_ARM_clang 3.4/boost-local$ whereis g++ g++: /usr/bin/g++ /usr/bin/X11/g++ /usr/share/man/man1/g++.1.gz jenkins-slave@tegra-ubuntu:~/workspace/Boost.AFIO Build POSIX_ARM_clang 3.4/boost-local$ whereis clang++ clang++: /usr/bin/clang++ /usr/bin/X11/clang++ /usr/share/man/man1/clang++.1.gz </pre><p> After bootstrapping with clang I also did a: </p> <pre class="wiki">./b2 toolset=gcc libs/afio/build -d9 &gt; debug.txt </pre><p> ... and have attached the output as a file which hopefully says what went wrong. </p> <p> Let me know if you need anything else. </p> <p> Niall </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Niall Douglas</dc:creator> <pubDate>Tue, 29 Jul 2014 10:24:36 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/10258#comment:5 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10258#comment:5</guid> <description> <p> Ok attachments are limited to a pathetic 256Kb, so I sent the log to Google Drive: </p> <p> <a class="ext-link" href="https://drive.google.com/file/d/0B5QDPUNHLpKMNDJhM1ZoZXpCSms/edit?usp=sharing"><span class="icon">​</span>https://drive.google.com/file/d/0B5QDPUNHLpKMNDJhM1ZoZXpCSms/edit?usp=sharing</a> </p> <p> N </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Steven Watanabe</dc:creator> <pubDate>Tue, 23 Jan 2018 01:01:12 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/10258#comment:6 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10258#comment:6</guid> <description> <p> The reason this happens is: </p> <ul><li>clang imports gcc </li><li>gcc.jam calls feature.extend toolset : gcc ; at the top level. </li><li>build-system.jam attempts to autoconfigure toolsets based on whether the feature value is known. Therefore, a plain toolset=gcc will not trigger autoconfiguration if clang has been used. </li></ul><p> Workarounds: </p> <ul><li>toolset=gcc-7.2.1 (or whatever the full version of gcc is) </li><li>add using gcc to user-config.jam. </li></ul> </description> <category>Ticket</category> </item> </channel> </rss>