Skip to content

Llvm v6.0.1 + binutils+llnode update#650

Merged
springmeyer merged 5 commits into
masterfrom
llvm-binutils-llnode-update
Aug 21, 2018
Merged

Llvm v6.0.1 + binutils+llnode update#650
springmeyer merged 5 commits into
masterfrom
llvm-binutils-llnode-update

Conversation

@springmeyer
Copy link
Copy Markdown
Contributor

@springmeyer springmeyer commented Aug 21, 2018

I've been feeling anxious about fixing #620 because it creates an extremely tricky to debug situation in mapbox/mason-js#58. After many hours last month debugging mapbox/mason-js#58 I've concluded that the ideal solution is to not have symlinks of directories in llvm packages, especially ones where the symlink is different per llvm sub-package.

So, this PR fixes the problem by stopping the practice of symlinking the c++ directory on OS X. So, now the llvm packages simply build and install the libc++ headers in all cases, instead of trying to use the system C++ headers in Xcode. This has the advantage of being more portable. It has the disadvantage that if the c++ headers provided by mason become API incompatible with the libc++ library on osx, we may hit problems in the future. However I think this risk is worth it, since bundling the c++ headers inside the llvm package allows greater control. If an incompatibility arises we can always avoid using the llvm provided c++ headers in the package manually.

In the process of fixing #620 this also brings in:

  • llvm 6.0.1 and sub-packages
  • an updated binutils and llnode

I updated binutils since I always try to use the latest version with each llvm package. I updated llnode since the project is useful for debugging the behavior of node programs and it needs to be compiled against llvm headers. This version of llnode fixes and linking problem such that, at least on OS X, it should work to against both the apple/xcode provided lldb and the mason provided lldb.

mason install lldb 6.0.1
mason install llnode 1.7.1
$(mason prefix lldb 6.0.1)/bin/lldb --batch -o "plugin load $(mason prefix llnode 1.7.1)/lib/plugin.so" -o "v8"  -o "quit
mkdir -p /usr/lib/lldb/plugins
cp $(mason prefix llnode 1.7.1)/lib/plugin.so /usr/lib/lldb/plugins/
lldb --batch -o "v8"  -o "quit"

/cc @alliecrevier for visibility

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant