[cfe-dev] Building clang + LLVM on macOS Sierra

don hinton via cfe-dev cfe-dev at lists.llvm.org
Thu Sep 22 12:52:42 PDT 2016


Hi Kevin:

On my system, I find stdio.h, etc., in /usr/include, but you get a warning
saying it doesn't exist.  Did you install the command line tools?  Here's
what I get:

//////// system version

local:/Users/dhinton $ /usr/bin/clang -xc++ -E - -v </dev/null
Apple LLVM version 7.3.0 (clang-703.0.31)
Target: x86_64-apple-darwin15.6.0
Thread model: posix
InstalledDir:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
 "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang"
-cc1 -triple x86_64-apple-macosx10.11.0 -Wdeprecated-objc-isa-usage
-Werror=deprecated-objc-isa-usage -E -disable-free -disable-llvm-verifier
-main-file-name - -mrelocation-model pic -pic-level 2 -mthread-model posix
-mdisable-fp-elim -masm-verbose -munwind-tables -target-cpu core2
-target-linker-version 264.3.102 -v -dwarf-column-info -resource-dir
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/7.3.0
-stdlib=libc++ -fdeprecated-macro -fdebug-compilation-dir /Users/dhinton
-ferror-limit 19 -fmessage-length 204 -stack-protector 1 -fblocks
-fobjc-runtime=macosx-10.11.0 -fencode-extended-block-signature
-fcxx-exceptions -fexceptions -fmax-type-align=16 -fdiagnostics-show-option
-fcolor-diagnostics -o - -x c++ -
clang -cc1 version 7.3.0 (clang-703.0.31) default target
x86_64-apple-darwin15.6.0
ignoring nonexistent directory "/usr/include/c++/v1"
ignoring nonexistent directory "/usr/local/include"
#include "..." search starts here:
#include <...> search starts here:
 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1
 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/7.3.0/include
 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include
 /usr/include
 /System/Library/Frameworks (framework directory)
 /Library/Frameworks (framework directory)
End of search list.
# 1 "<stdin>"
# 1 "<built-in>" 1
# 1 "<built-in>" 3
# 336 "<built-in>" 3
# 1 "<command line>" 1
# 1 "<built-in>" 2
# 1 "<stdin>" 2

//////// and my locally installed version:

local:/Users/dhinton $ ~/usr/bin/clang -xc++ -E - -v </dev/null
clang version 4.0.0  (http://llvm.org/git/llvm.git
f970c6e67b13351e92c33667b991155d9569b5da)
Target: x86_64-apple-darwin15.6.0
Thread model: posix
InstalledDir: /Users/dhinton/usr/bin
 "/Users/dhinton/usr/bin/clang-4.0" -cc1 -triple x86_64-apple-macosx10.11.0
-Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -E
-disable-free -disable-llvm-verifier -discard-value-names -main-file-name -
-mrelocation-model pic -pic-level 2 -mthread-model posix -mdisable-fp-elim
-masm-verbose -munwind-tables -target-cpu core2 -target-linker-version
264.3.102 -v -dwarf-column-info -debugger-tuning=lldb -resource-dir
/Users/dhinton/usr/bin/../lib/clang/4.0.0 -stdlib=libc++ -fdeprecated-macro
-fdebug-compilation-dir /Users/dhinton -ferror-limit 19 -fmessage-length
204 -stack-protector 1 -fblocks -fobjc-runtime=macosx-10.11.0
-fencode-extended-block-signature -fcxx-exceptions -fexceptions
-fmax-type-align=16 -fdiagnostics-show-option -fcolor-diagnostics -o - -x
c++ -
clang -cc1 version 4.0.0 based upon LLVM 4.0.0svn default target
x86_64-apple-darwin15.6.0
ignoring nonexistent directory "/usr/include/c++/v1"
ignoring nonexistent directory "/usr/local/include"
#include "..." search starts here:
#include <...> search starts here:
 /Users/dhinton/usr/bin/../include/c++/v1
 /Users/dhinton/usr/bin/../lib/clang/4.0.0/include
 /usr/include
 /System/Library/Frameworks (framework directory)
 /Library/Frameworks (framework directory)
End of search list.
# 1 "<stdin>"
# 1 "<built-in>" 1
# 1 "<built-in>" 3
# 337 "<built-in>" 3
# 1 "<command line>" 1
# 1 "<built-in>" 2
# 1 "<stdin>" 2

hth...
don

On Thu, Sep 22, 2016 at 11:42 AM, Kevin Ushey via cfe-dev <
cfe-dev at lists.llvm.org> wrote:

> Hi everyone,
>
> This is my first post here on cfe, so please be kind -- I apologize if
> some of these issues have already been discussed previously on the list.
> I'm building clang + LLVM mostly following the instructions at
> http://clang.llvm.org/get_started.html and http://llvm.org/docs/CMake.html.
> The goal is for me to be able to produce a clang installation that I can
> use and play with locally on my MBP.
>
> When building LLVM + clang, I had to manually add the include paths for
> Valgrind, libxml2, and Python (currently just using -DCMAKE_C_FLAGS and
> -DCMAKE_CXX_FLAGS when invoking cmake for configuration). Is this intended,
> or should the cmake scripts be able to automatically discover these
> dependencies? (I believe the header include errors occurred when attempting
> to compile lldb).
>
> After making these changes, an installation of clang is produced, but it
> does not seem to know about the standard library headers -- e.g.
> compilation fails when attempting to include <stdio.h>. (Note that this
> build was produced with 'libcxx' available in the 'llvm/projects'
> subdirectory). This did seem to work automagically when building with
> clang-3.9; has anything changed here? Is there some option I can set that
> says "please install + use the version of libc++ in the projects directory
> by default"? For reference:
>
> $ clang-4.0 -E - -v < /dev/null
> clang version 4.0.0 (http://llvm.org/git/clang.git
> 2f1019880e3fca33b8c7ac8f8bd272e546d930ac) (http://llvm.org/git/llvm.git
> 20bb0322fd381dd7e265eaa05b7fb1c292278abe)
> Target: x86_64-apple-darwin16.0.0
> Thread model: posix
> InstalledDir: /usr/local/bin
>  "/usr/local/llvm/bin/clang-4.0" -cc1 -triple x86_64-apple-macosx10.12.0
> -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -E
> -disable-free -disable-llvm-verifier -discard-value-names -main-file-name -
> -mrelocation-model pic -pic-level 2 -mthread-model posix -mdisable-fp-elim
> -masm-verbose -munwind-tables -target-cpu core2 -target-linker-version
> 274.1 -v -dwarf-column-info -debugger-tuning=lldb -resource-dir
> /usr/local/llvm/bin/../lib/clang/4.0.0 -fdebug-compilation-dir
> /Users/kevin/scratch -ferror-limit 19 -fmessage-length 101 -stack-protector
> 1 -fblocks -fobjc-runtime=macosx-10.12.0 -fencode-extended-block-signature
> -fmax-type-align=16 -fdiagnostics-show-option -fcolor-diagnostics -o - -x c
> -
> clang -cc1 version 4.0.0 based upon LLVM 4.0.0svn default target
> x86_64-apple-darwin16.0.0
> ignoring nonexistent directory "/usr/include"
> #include "..." search starts here:
> #include <...> search starts here:
>  /usr/local/include
>  /usr/local/llvm/bin/../lib/clang/4.0.0/include
>  /System/Library/Frameworks (framework directory)
>  /Library/Frameworks (framework directory)
> End of search list.
>
> For reference, I am configuring LLVM from a build directory within the
> LLVM project tree with:
>
> cmake -G "Ninja" ..                                \
>     -DCMAKE_C_COMPILER=/usr/bin/clang              \
>     -DCMAKE_C_FLAGS="${INCLUDE_FLAGS}"             \
>     -DCMAKE_CXX_COMPILER=/usr/bin/clang++          \
>     -DCMAKE_CXX_FLAGS="${INCLUDE_FLAGS}"           \
>     -DCMAKE_SHARED_LINKER_FLAGS="-L/usr/local/lib" \
>     -DCMAKE_BUILD_TYPE=Release                     \
>     -DCMAKE_INSTALL_PREFIX="${LLVM_INSTALL_DIR}"   \
>     -DLLVM_ENABLE_CXX1Y=Yes                        \
>     -DLLVM_ENABLE_LTO=Yes
>
> with INCLUDE_FLAGS set with the include paths as noted before.
>
> As an aside, it would be _incredibly_ helpful if a 'one-button' shell
> script for download, build and installation of LLVM + clang could be
> provided in the documentation; that is, something users could play with and
> tweak themselves. Or, perhaps, links to scripts used by existing projects
> that need to build LLVM + clang themselves?
>
> Thanks,
> Kevin
>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20160922/9062b515/attachment.html>


More information about the cfe-dev mailing list