Boost logo

Boost :

Subject: [boost] Using clang 4.0.0 with b2/bjam fails missing cstddef in boost/config/select_stdlib_config.hpp
From: Paul A. Bristow (pbristow_at_[hidden])
Date: 2017-03-24 17:27:23


I have installed the shiny new Clang at c:\llvm\ with MS Visual Studio 2015 update 3

I have added Clang to my user-config.jam thus

using clang ;

or in full detail:

using clang
  : # version
    4.0.0
  : # location Clang compiler .exe location. # from http://llvm.org/releases/download.html dated 9Mar2017
    c:\\LLVM\\bin\\clang++.exe
  : # options
    <warnings>on
    <cxxflags>-v
;

and tried to invoke it thus

I:\modular-boost\libs\hello_boost\example>b2 toolset=clang-4.0.0 -d2 --debug-configuration > clang40_24Mar17.log

(.log file attached in case that helps).

It starts well but comes to a terminal halt missing cstddef in boost/config/select_stdlib_config.hpp

clang version 4.0.0 (tags/RELEASE_400/final)
Target: x86_64-pc-windows-msvc
Thread model: posix
InstalledDir: c:\LLVM\bin
 "c:\\LLVM\\bin\\clang++.exe" -cc1 -triple x86_64-pc-windows-msvc19.0.24123 -emit-obj -mrelax-all -mincremental-linker-compatible
-disable-free -main-file-name hello_boost.cpp -mrelocation-model pic -pic-level 2 -mthread-model posix -fmath-errno -masm-verbose
-mconstructor-aliases -munwind-tables -target-cpu x86-64 -momit-leaf-frame-pointer -v -dwarf-column-info -debug-info-kind=limited
-dwarf-version=4 -debugger-tuning=gdb -coverage-notes-file
"I:\\modular-boost\\libs\\hello_boost\\example\\..\\..\\..\\bin.v2\\libs\\hello_boost\\example\\hello_boost.test\\clang-linux-4.0.0\
\debug\\hello_boost.gcno" -resource-dir "c:\\LLVM\\bin\\..\\lib\\clang\\4.0.0" -D BOOST_ALL_NO_LIB=1 -I "..\\..\\.."
-internal-isystem "c:\\LLVM\\bin\\..\\lib\\clang\\4.0.0\\include" -internal-isystem "C:\\Program Files (x86)\\Windows
Kits\\10\\Include\\10.0.10586.0\\ucrt" -O0 -Wno-unused-local-typedef -Wno-dll-attribute-on-redeclaration -Wall -fdeprecated-macro
-fdebug-compilation-dir "I:\\modular-boost\\libs\\hello_boost\\example" -ferror-limit 19 -fmessage-length 0 -fms-extensions
-fms-compatibility -fms-compatibility-version=19.0.24123 -std=c++14 -fdelayed-template-parsing -fno-inline -fobjc-runtime=gcc
-fcxx-exceptions -fexceptions -fdiagnostics-show-option -o
"..\\..\\..\\bin.v2\\libs\\hello_boost\\example\\hello_boost.test\\clang-linux-4.0.0\\debug\\hello_boost.obj" -x c++ hello_boost.cpp
clang -cc1 version 4.0.0 based upon LLVM 4.0.0 default target x86_64-pc-windows-msvc
#include "..." search starts here:
#include <...> search starts here:
 ..\..\..
 c:\LLVM\bin\..\lib\clang\4.0.0\include
 C:\Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\ucrt
End of search list.
In file included from hello_boost.cpp:15:
In file included from ..\..\..\boost/config.hpp:44:
..\..\..\boost/config/select_stdlib_config.hpp:18:12: fatal error: 'cstddef' file not found
# include <cstddef>

I have two versions of cstddef

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\cstddef exists and refers to other files.

contains
// cstddef standard header
#pragma once
#ifndef _CSTDDEF_
#define _CSTDDEF_
#include <yvals.h>

and another at C:\programfiles\mingw-w64\x86_64-6.3.0-win32-seh-rt_v5-rev1\mingw64\lib\gcc\x86_64-w64-mingw32\6.3.0\include\c++;

My PATH has (amongst other items)

C:\Programfiles\mingw-w64\x86_64-6.3.0-win32-seh-rt_v5-rev1\mingw64\bin;
C:\programfiles\mingw-w64\x86_64-6.3.0-win32-seh-rt_v5-rev1\mingw64\lib\gcc\x86_64-w64-mingw32\6.3.0\include;
C:\programfiles\mingw-w64\x86_64-6.3.0-win32-seh-rt_v5-rev1\mingw64\lib\gcc\x86_64-w64-mingw32\6.3.0\include\c++;
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include;

Is this expected (rather than clang-msvc-14.0)?
notice: will use 'clang++' for clang-linux, condition <toolset>clang-linux-4.0.0

Anyone can give a clue as to what I am doing wrong?

Thanks

Paul

---
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