Boost logo

Boost :

Subject: Re: [boost] toolset=clang-win uses clang-linux-win?
From: Paul A. Bristow (pbristow_at_[hidden])
Date: 2018-07-09 12:01:06


> -----Original Message-----
> From: Boost [mailto:boost-bounces_at_[hidden]] On Behalf Of Peter Dimov via Boost
> Sent: 09 July 2018 11:42
> To: boost-devel
> Cc: Peter Dimov
> Subject: [boost] toolset=clang-win uses clang-linux-win?
>
> When I try `b2 toolset=clang-win` on Appveyor, I get `clang-linux-win`
> instead, that is, `-win` is interpreted as version for some reason, not as
> platform:
>
> https://ci.appveyor.com/project/pdimov/system/build/job/sjpdq5yrir2ewuhh
>
> Is this normal, or is it a bug in the clang toolset? Is there a magic
> command line incantation that would let me select clang-win?

FWIW, my failed attempts to use b2 to generate Boost libraries, in the 'standard' way, announce:

  clang-linux.compile.c++.without-pth bin.v2\libs\chrono\build\clang-linux-6.0.0\release\threading-multi\chrono.obj
  clang version 6.0.0 (tags/RELEASE_600/final)

Is the "clang-linux" significant?

Paul

PS user-config.jam is

using clang
  : # Version.
    6.0.0
  : # Location of Clang compiler .exe file(s).
    "C:/LLVM/clang-600/LLVM/bin/clang++.exe"
  : # Options.
    <compileflags>-v
    <compileflags>-m64
    <compileflags>-fmsc-version=1900
    <compileflags>--target=i686-pc-windows-msvc
    <define>_CRT_SECURE_NO_DEPRECATE
    <define>_CRT_SECURE_NO_WARNINGS
    <define>BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE

    <cxxflags>-std=c++17
    #https://clang.llvm.org/docs/CommandGuide/clang.html#cmdoption-s
    # options are -flto, -flto=full, -flto=thin, -emit-llvm
    # Generate output files in LLVM formats, suitable for link time optimization.
    # The default for -flto is "full", in which the LLVM bitcode is suitable for monolithic Link Time Optimization (LTO),
    # where the linker merges all such modules into a single combined module for optimization. With "thin",
    # ThinLTO compilation is invoked instead.
    <cxxflags>-flto=full
    <cxxflags>-Wno-deprecated
    <cxxflags>-Wno-deprecated-declarations
  # <cxxflags>-fmacro-backtrace-limit=0
 # <cxxflags>-Wno-invalid-token-paste
    <cxxflags>-Wno-language-extension-token
    <cxxflags>-Wno-microsoft-enum-value
    <cxxflags>-Wno-literal-range
    <cxxflags>-Wno-unknown-pragmas
    <cxxflags>-Wno-unused-variable
    <cxxflags>-Wno-microsoft-enum-value
    <cxxflags>-Wno-invalid-constexpr
    # Need to stop reporting an error in Boost.System (needs fixing).
    
    <linkflags>--verbose
    <linkflags>-fuse-ld=lld # Essential to use lld.
    <linkflags>-flto=full # -flto=thin fails using Codeblocks "error: Expected a single module" But not later????
    <linkflags>-m64
    <linkflags>--target=i686-pc-windows-msvc
    <linkflags>-lmsvcrt
    # -lmsvcrt Needed to avoid unresolved external symbol __imp____RTDynamicCast
    # but also then need <toolset>clang:<define>NODEFAULTLIB=libcmt.lib # Avoid warning.
;

---
Paul A. Bristow
Prizet Farmhouse
Kendal UK LA8 8AB
+44 (0) 1539 561830

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk