#45251 closed request (fixed)
request for lldb
Reported by: | RJVB (René Bertin) | Owned by: | larryv (Lawrence Velázquez) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | jeremyhu (Jeremy Huddleston Sequoia), cooljeanius (Eric Gallager), alexreg (Alexander Regueiro), eborisch (Eric A. Borisch), mmpestorich (Mike M Pestorich) | |
Port: | lldb |
Description
Would it be possible to provide a port for the debugger component of llvm, lldb?
Attachments (7)
Change History (41)
comment:1 Changed 10 years ago by jeremyhu (Jeremy Huddleston Sequoia)
comment:2 Changed 10 years ago by RJVB (René Bertin)
I would if the Portfile code in the other llvm ports weren't so complicated, and lldb's own build system were a little less OS version specific ...
clang-3.4 clearly builds on 10.6.8 , is there any reason to believe lldb-3.4 wouldn't with the proper build scripts?
comment:3 Changed 10 years ago by larryv (Lawrence Velázquez)
Owner: | changed from macports-tickets@… to larryv@… |
---|---|
Port: | lldb added |
Status: | new → assigned |
Version: | 2.3.1 |
I’ll put this on my todo list.
comment:4 Changed 10 years ago by cooljeanius (Eric Gallager)
personally, besides just lldb, I'd like every single llvm sub-project on the front page of llvm.org to have its own port, but then again I'm kind of OCD about checking off stuff on checklists, and lldb is probably the most important of the sub-projects that is still missing a port...
comment:8 follow-up: 18 Changed 10 years ago by eborisch (Eric A. Borisch)
Would also (hopefully) provide _lldb.so linked against MacPorts' python27 rather than the system one (and vim-lldb won't crash on startup.)
comment:9 Changed 9 years ago by eborisch (Eric A. Borisch)
This is (likely) a big stumbling block for a MacPorts-provided lldb.
I suppose users who actually want it could create the certificate manually and then build lldb via MacPorts...
docs/code-signing.txt:
On MacOSX lldb needs to be code signed. The Debug, DebugClang and Release builds are set to code sign using a code signing certificate named "lldb_codesign". If you have re-installed a new OS, please delete all old lldb_codesign items from your keychain. There will be a code signing certification and a public and private key. Reboot after deleting them. You will also need to delete and build folders that contained old signed items. The darwin kernel will cache code signing using the executable's file system node, so you will need to delete the file so the kernel clears its cache. If you don't have one yet you will need to: - Launch /Applications/Utilities/Keychain Access.app - In Keychain Access select the "login" keychain in the "Keychains" list in the upper left hand corner of the window. - Select the following menu item: Keychain Access->Certificate Assistant->Create a Certificate... - Set the following settings Name = lldb_codesign Identity Type = Self Signed Root Certificate Type = Code Signing - Click Create - Click Continue - Click Done - Click on the "My Certificates" - Double click on your new lldb_codesign certificate - Turn down the "Trust" disclosure triangle, scroll to the "Code Signing" trust pulldown menu and select "Always Trust" and authenticate as needed using your username and password. - Drag the new "lldb_codesign" code signing certificate (not the public or private keys of the same name) from the "login" keychain to the "System" keychain in the Keychains pane on the left hand side of the main Keychain Access window. This will move this certificate to the "System" keychain. You'll have to authorize a few more times, set it to be "Always trusted" when asked. - Remove "~/Desktop/lldb_codesign.cer" file on your desktop if there is one. - In the Keychain Access GUI, click and drag "lldb_codesign" in the "System" keychain onto the desktop. The drag will create a "~/Desktop/lldb_codesign.cer" file used in the next step. - Switch to Terminal, and run the following: sudo security add-trust -d -r trustRoot -p basic -p codeSign -k /Library/Keychains/System.keychain ~/Desktop/lldb_codesign.cer rm -f ~/Desktop/lldb_codesign.cer - Drag the "lldb_codesign" certificate from the "System" keychain back into the "login" keychain - Quit Keychain Access - Reboot - Clean by removing all previously creating code signed binaries and rebuild lldb and you should be able to debug. When you build your LLDB for the first time, the Xcode GUI will prompt you for permission to use the "lldb_codesign" keychain. Be sure to click "Always Allow" on your first build. From here on out, the "lldb_codesign" will be trusted and you can build from the command line without having to authorize. Also the first time you debug using a LLDB that was built with this code signing certificate, you will need to authenticate once.
Ugh.
comment:11 Changed 8 years ago by RJVB (René Bertin)
As mentioned on the dev ML too:
I have a first draft for an lldb-3.8 subport:
This appears to work, except for the whole signing business. Running the debugger via sudo allows it to attach but is of course no viable solution.
I wonder if there is no more elegant method to change an executables signing identity that doesn't involve rebooting as lldb's code-signing document suggests?
comment:12 Changed 8 years ago by RJVB (René Bertin)
Setting the debugserver executable SETUID root works too, but is that less risky?
comment:13 Changed 8 years ago by RJVB (René Bertin)
Either way, the existing codesigning instructions in the buildsystem do not appear to work through port build
:
> port -nvok build lldb-3.8 ... cd /opt/local/var/macports/build/_opt_local_site-ports_lang_llvm-3.8/lldb-3.8/work/build/tools/lldb/tools/debugserver/source/MacOSX && /opt/local/bin/cmake -E cmake_link_script CMakeFiles/debugserver.dir/link.txt --verbose=ON /opt/local/bin/clang++-mp-3.7 -O3 -march=native -std=c++11 -DNDEBUG -stdlib=libc++ -fPIC -fvisibility-inlines-hidden -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wcovered-switch-default -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -std=c++11 -Wno-deprecated-declarations -Wno-unknown-pragmas -Wno-strict-aliasing -Wno-deprecated-register -Wno-vla-extension -fno-exceptions -fno-rtti -Wno-gnu-zero-variadic-macro-arguments -Wno-zero-length-array -Wno-extended-offsetof -arch x86_64 -mmacosx-version-min=10.9 -Wl,-search_paths_first -Wl,-headerpad_max_install_names -L/opt/local/lib -Wl,-headerpad_max_install_names -Wl,-rpath,@loader_path -Wl,-rpath,@loader_path/ -stdlib=libc++ -Wl,-sectcreate,__TEXT,__info_plist,/opt/local/var/macports/build/_opt_local_site-ports_lang_llvm-3.8/lldb-3.8/work/llvm-3.8.1.src/tools/lldb/tools/debugserver/source/../resources/lldb-debugserver-Info.plist -Wl,-dead_strip CMakeFiles/debugserver.dir/HasAVX.s.o CMakeFiles/debugserver.dir/CFBundle.cpp.o CMakeFiles/debugserver.dir/CFData.cpp.o CMakeFiles/debugserver.dir/CFString.cpp.o CMakeFiles/debugserver.dir/Genealogy.cpp.o CMakeFiles/debugserver.dir/MachException.cpp.o CMakeFiles/debugserver.dir/MachProcess.mm.o CMakeFiles/debugserver.dir/MachTask.mm.o CMakeFiles/debugserver.dir/MachThread.cpp.o CMakeFiles/debugserver.dir/MachThreadList.cpp.o CMakeFiles/debugserver.dir/MachVMMemory.cpp.o CMakeFiles/debugserver.dir/MachVMRegion.cpp.o CMakeFiles/debugserver.dir/mach_excServer.c.o CMakeFiles/debugserver.dir/mach_excUser.c.o CMakeFiles/debugserver.dir/debugserver_vers.c.o -o ../../../../../../bin/debugserver ../../../../../../lib/liblldbDebugserverCommon.a ../../../../../../lib/liblldbUtility.a ../../../../../../lib/liblldbDebugserverMacOSX_I386.a ../../../../../../lib/liblldbDebugserverMacOSX_X86_64.a -framework Cocoa -Wl,-rpath,@executable_path/../lib cd /opt/local/var/macports/build/_opt_local_site-ports_lang_llvm-3.8/lldb-3.8/work/build/bin && /opt/local/bin/cmake -E env CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate codesign --force --sign lldb_codesign debugserver lldb_codesign: no identity found make[2]: *** [bin/debugserver] Error 1 make[2]: *** Deleting file `bin/debugserver' make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_site-ports_lang_llvm-3.8/lldb-3.8/work/build' make[1]: *** [tools/lldb/tools/debugserver/source/MacOSX/CMakeFiles/debugserver.dir/all] Error 2
The signing does work when running make by hand in the debugserver's build directory (port work lldb-3.8
/build/tools/lldb/tools/debugserver) , but it doesn't yield a functional (sanctioned) debugserver executable. Of course I didn't reboot after each different signing attempt ...
comment:14 Changed 8 years ago by raimue (Rainer Müller)
If the certificate named 'lldb_codesign' is only in you login keychain, the user macports
will not have access to it during building.
See also #51504, where you started to implement codesigning as a port group already.
comment:15 Changed 8 years ago by RJVB (René Bertin)
Well, my macports
user setting is to use my own username. I know the risks, but I think I discovered why I rarely ever saw those realised; the same reason for which the codesign app didn't find my signing certificate. MacPorts "base" sets the HOME variable to something safe, even if you're using an existing username as the macports user.
I just updated the code signing PortGroup, I hope this discussion will draw some activity to that ticket.
comment:16 Changed 8 years ago by RJVB (René Bertin)
Hah, all I had to do was uninstall lldb-3.8, restart taskgated
(sudo killall -1 taskgated
) and reinstall lldb-3.8 . That took care of kernel certificate caching.
I must say I am running taskgated with the -p option, so it's still possible that YMMV.
Changed 8 years ago by RJVB (René Bertin)
Attachment: | patch-no-codesign.diff added |
---|
comment:17 Changed 8 years ago by RJVB (René Bertin)
The port still needs the registry file for the port select
feature.
Changed 8 years ago by RJVB (René Bertin)
Attachment: | mp-lldb-3.8 added |
---|
Changed 8 years ago by RJVB (René Bertin)
Attachment: | llvm-3.8.diff added |
---|
comment:18 Changed 8 years ago by RJVB (René Bertin)
Replying to eborisch@…:
Would also (hopefully) provide _lldb.so linked against MacPorts' python27 rather than the system one (and vim-lldb won't crash on startup.)
> otool -L /opt/local/libexec/llvm-3.8/lib/liblldb.dylib /opt/local/libexec/llvm-3.8/lib/liblldb.dylib: /opt/local/libexec/llvm-3.8/lib/liblldb.dylib (compatibility version 0.0.0, current version 3.8.1) /opt/local/lib/libedit.0.dylib (compatibility version 1.0.0, current version 1.51.0) /opt/local/lib/libncurses.6.dylib (compatibility version 6.0.0, current version 6.0.0) /opt/local/lib/libform.6.dylib (compatibility version 6.0.0, current version 6.0.0) /opt/local/lib/libpanel.6.dylib (compatibility version 6.0.0, current version 6.0.0) /opt/local/Library/Frameworks/Python.framework/Versions/2.7/Python (compatibility version 2.7.0, current version 2.7.0) /opt/local/lib/libxml2.2.dylib (compatibility version 12.0.0, current version 12.2.0) /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 157.0.0) /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1056.17.0) /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 855.17.0) /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 59.0.0) /System/Library/Frameworks/Security.framework/Versions/A/Security (compatibility version 1.0.0, current version 55471.14.40) /System/Library/PrivateFrameworks/DebugSymbols.framework/Versions/A/DebugSymbols (compatibility version 1.0.0, current version 106.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1) /opt/local/lib/libffi.6.dylib (compatibility version 7.0.0, current version 7.4.0) /opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.8) /opt/local/libexec/llvm-3.8/lib/libLLVM.dylib (compatibility version 1.0.0, current version 3.8.1) /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0) /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
Changed 8 years ago by RJVB (René Bertin)
Attachment: | patch-accept-build_types.diff added |
---|
Changed 8 years ago by RJVB (René Bertin)
Attachment: | patch-no-codesign-3.9.diff added |
---|
Changed 8 years ago by RJVB (René Bertin)
Attachment: | mp-lldb-3.9 added |
---|
Changed 8 years ago by RJVB (René Bertin)
Attachment: | llvm-3.9.diff added |
---|
comment:19 Changed 8 years ago by RJVB (René Bertin)
I've added an lldb subport to the new release version of port:llvm-3.9 . Initial testing indicates it is functional.
comment:20 follow-up: 21 Changed 8 years ago by jeremyhu (Jeremy Huddleston Sequoia)
Some comments:
- Don't skip codesigning. There's not really a reason that I can see to do patch-no-codesign-3.9.diff. If the developer doesn't have a CODESIGN_IDENTITY set, just adhoc sign it by setting LLDB_CODESIGN_IDENTITY to - when executing cmake.
- We should probably allow users to specifiy a codesigning identity in macports.conf and honor that.
- Where is the code-sign-1.0.tcl that you reference in the Portfile changes?
- We should not rebuild everything for lldb. The cmake build system should be capable of building lldb against the installed llvm and libclang. Can you try that out. There are some reasons why we can't yet do that for clang, but it's a goal to not have to rebuild what's already built.
- We should not need to use
install_name_tool
to change the dylib identifiers. - Why patch-accept-build_types.diff? What's being passed that isn't accepted? Should you instead update that list and push the patch upstream?
comment:21 follow-up: 23 Changed 8 years ago by RJVB (René Bertin)
Replying to jeremyhu@…:
- Don't skip codesigning. There's not really a reason that I can see to do patch-no-codesign-3.9.diff. If the developer doesn't have a CODESIGN_IDENTITY set, just adhoc sign it
by setting LLDB_CODESIGN_IDENTITY to - when executing cmake.
That's what I did at first, but as discussed elsewhere, the only location where we can really codesign from within MacPorts is in the (post) activate step. During the build step where lldb is normally signed, the user is the macports user, who typically won't have access to the *operator*'s keychain (and HOME will be set to point elsewhere anyway).
We can of course sign twice, but that would mean using -f
the 2nd time, and are we sure that will work, what with the kernel caching?
- We should probably allow users to specifiy a codesigning identity in macports.conf and honor that.
There's a parallel discussion on the devel ML about this.
- Where is the code-sign-1.0.tcl that you reference in the Portfile changes?
Submitted elsewhere, ticket #51504
- We should not rebuild everything for lldb. The cmake build system should be capable of building lldb against the installed llvm and libclang. Can you try that out. There are some reasons why we can't yet do that for clang, but it's a goal to not have to rebuild what's already built.
When I can find a couple of hours I don't need my machine for other things ... Note that I build within the lldb subdirectory. CMake's Makefiles are clever enough to rebuild only what's absolutely necessary in that case.
- We should not need to use
install_name_tool
to change the dylib identifiers.
Is there a reason why it's necessary for the other subports?
- Why patch-accept-build_types.diff? What's being passed that isn't accepted? Should you instead update that list and push the patch upstream?
That's because of a change I proposed for the CMake portgroup which still hasn't been included (or rejected). Using another than the 4 predefined build types it becomes possible to control the compiler flags (upstreams of what the buildsystem might do with them). Debian has a similar tactic (-DCMAKE_BUILD_TYPE=Debian), I presume for the same reason.
comment:22 Changed 8 years ago by RJVB (René Bertin)
In fact, do you have any guidelines or at least arguments to pass to CMake for building lldb in isolation? The online build instructions don't seem to consider that possibility, except by using one of the Xcode projects (but I reckon that's not a good idea here).
comment:23 follow-up: 24 Changed 8 years ago by jeremyhu (Jeremy Huddleston Sequoia)
Replying to rjvbertin@…:
the only location where we can really codesign from within MacPorts is in the (post) activate step.
I'm not suggesting that you somehow get the macports user to access the real user's keychain. That's not needed to adhoc sign. Just set LLDB_CODESIGN_IDENTITY="-" to get it adhoc signed.
- Where is the code-sign-1.0.tcl that you reference in the Portfile changes?
Submitted elsewhere, ticket #51504
- We should not rebuild everything for lldb. The cmake build system should be capable of building lldb against the installed llvm and libclang. Can you try that out. There are some reasons why we can't yet do that for clang, but it's a goal to not have to rebuild what's already built.
When I can find a couple of hours I don't need my machine for other things ... Note that I build within the lldb subdirectory. CMake's Makefiles are clever enough to rebuild only what's absolutely necessary in that case.
Ok, that's good enough for now, but we should look into that a bit more.
- We should not need to use
install_name_tool
to change the dylib identifiers.Is there a reason why it's necessary for the other subports?
It's not. The other subports don't do it (as of a year or so ago).
- Why patch-accept-build_types.diff? What's being passed that isn't accepted? Should you instead update that list and push the patch upstream?
That's because of a change I proposed for the CMake portgroup which still hasn't been included (or rejected). Using another than the 4 predefined build types it becomes possible to control the compiler flags (upstreams of what the buildsystem might do with them). Debian has a similar tactic (-DCMAKE_BUILD_TYPE=Debian), I presume for the same reason.
Ok. Perhaps send this patch upstream to llvm.org then.
comment:24 Changed 8 years ago by RJVB (René Bertin)
Replying to jeremyhu@…:
Ok, that's good enough for now, but we should look into that a bit more.
I could raise the question on the lldb ML...
Is there a reason why it's necessary for the other subports?
It's not. The other subports don't do it (as of a year or so ago).
My bad. I introduced the identifier change when I was setting up a variant that builds a static libllvm and thus allows to build a redistributable libclang. (Potential) ports that provide a clang-based parser could benefit from that as they could simply depend on *a* port providing libclang, without the need for installing a full clang port or clang-version variants. KDevelop is one such port, slated for release in a near future along with the other KF5 ports. It's been a while, but it looks that the identify change is required to make all the libraries load when using KDevelop and NOT using a redistributable build.
The change basically locks the dylibs to their intended location; is there anything wrong with that?
That's because of a change I proposed for the CMake portgroup which still hasn't been included (or rejected). Using another than the 4 predefined build types it becomes possible to control the compiler flags (upstreams of what the buildsystem might do with them). Debian has a similar tactic (-DCMAKE_BUILD_TYPE=Debian), I presume for the same reason.
Ok. Perhaps send this patch upstream to llvm.org then.
OK, I'll see about that. I have a hunch that "they" will tell me just to use one of CMake's predefined types, and that if MacPorts wants better control over the compiler options it's their problem ;)
comment:25 Changed 8 years ago by RJVB (René Bertin)
Re: install_name_tool: I thought I'd do a rapid test not requiring a full rebuild by building KDEvelop's clang parser against 3.6.2, and discovered that the clang/llvm dylibs use the full path instead of @rpath. Exactly the change I introduced in my Portfiles...
comment:26 Changed 8 years ago by RJVB (René Bertin)
Re: install_name_tool (2)
I installed llvm+clang 3.8 from the servers, so with @rpath in libLLVM and libclang. This clearly no longer poses a problem for KDevelop's clang-based parser. I don't have any other cross-platform projects that link against libclang and/or libLLVM that I can test though, so don't really know what to do here. Should we assume that it's up to the dependent software to add the path to libclang to its rpath?
FWIW: I also timed my build (-O3 and the nortti
variant) vs. the default build. A C++ project that takes about 1 minute to build with the former takes roughly 20 seconds more with the latter (i.e. about 30% slower).
comment:27 Changed 8 years ago by jeremyhu (Jeremy Huddleston Sequoia)
a redistributable libclang
I'm ok with splitting up the port and would be happy do to so if we can avoid build time regressions and setup sane dependencies. I don't like the current situation in which clang rebuilds libLLVM.dylib at build time instead of using llvm-config to find the installed one to build and link against.
The change basically locks the dylibs to their intended location; is there anything wrong with that?
If that is needed, it should be addressed as a patch to the build system that can be integrated upstream. Using install_name_tool can introduce a dependency on cctools, which is a pain point as it can cause a dependncy cycle (eg: building clang-3.7 on Leopard requires us to build two older llvm versions in order to bootstrap the process: llvm-3.3 -> cctools -> llvm-3.4 -> ld64 -> clang-3.4 -> llvm-3.7 -> clang-3.7).
Should we assume that it's up to the dependent software to add the path to libclang to its rpath?
Let's track that in a separate bug (I filed #52196). I'm of the opinion that llvm-config --ldflags
should "do the right thing" but it doesn't setup rpath.
comment:28 Changed 8 years ago by RJVB (René Bertin)
[this inadvertently went out as an email first, sorry about that]
I'm ok with splitting up the port and would be happy do to so if we can avoid build time regressions and setup sane dependencies.
Building a redistributable, standalone libclang is a bit of a separate issue, no? That said, it's also supposed to speed up compile times when using clang, as there are less shared libraries to load at each invocation.
I don't like the current situation in which clang rebuilds libLLVM.dylib at build time instead of using llvm-config to find the installed one to build and link against.
No, I agree (all the more since build times for 3.9 appear to be almost 50% longer than the ones for 3.8).
That said, I tried my trick of calling make in the tools/clang. For once it doesn't work, probably because there are apparently 3 parallel directories that have to be built in the right order.
You probably saw my thread about standalone building of lldb. In short: it almost works. I copied the missing CheckAtomic.cmake file into the installed cmake/llvm directory, and tried to build lldb. It aborted because of trying to include a headerfile from the llvm source:
In file included from /opt/local/var/macports/build/_opt_local_site-ports_lang_llvm-3.9/lldb-3.9/work/llvm-3.9.0.src/tools/lldb/tools/lldb-mi/MICmdCmdData.cpp:45: /opt/local/var/macports/build/_opt_local_site-ports_lang_llvm-3.9/lldb-3.9/work/llvm-3.9.0.src/tools/lldb/tools/lldb-mi/MIUtilParse.h:13:10: fatal error: '../lib/Support/regex_impl.h' file not found #include "../lib/Support/regex_impl.h" ^ 1 error generated.
But, the extrapolated build time would be around 45 minutes (against IIRC almost 1h15 for my current approach) and the extrapolated build directory size is over 2x smaller.
If that is needed, it should be addressed as a patch to the build system that can be integrated upstream. Using install_name_tool can introduce a dependency on cctools, which is a pain point as it can cause a dependncy
Can you explain? Why would that the be case as long as we don't tell the port to use the copy from cctools?
Let's track that in a separate bug (I filed #52196). I'm of the opinion that
llvm-config --ldflags
should "do the right thing" but it doesn't setup rpath.
I've thought about this a bit more, and it may be a moot point. The official Linux builds I have on my Ubuntu rig also install libclang, libLLVM etc. somewhere that's not part of the standard ldconfig search path. IOW, cross-platform code already has to add the path to those libraries to its rpath, which should solve the issue on OS X too. No?
comment:29 follow-up: 32 Changed 8 years ago by jeremyhu (Jeremy Huddleston Sequoia)
Why would that the be case as long as we don't tell the port to use the copy from cctools?
Because the cctools port might be newer than the Xcode.app-installed version, and the toolchain building the port might be using emitting load commands that the Xcode.app-provided version does not understand. This becomes more obvious when you look back at the Leopard case.
comment:30 Changed 8 years ago by jeremyhu (Jeremy Huddleston Sequoia)
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Ok, well the parts that are not controversial are now in llvm-devel as r152453. We can iterate on it.
comment:31 Changed 8 years ago by RJVB (René Bertin)
OK, I on my end will maintain the 3.9 implementation in my macstrop github repo. I don't have the resources to do much more.
I did manage to figure out how to do a standalone build, though. That currently requires installing an additional .cmake file with port:llvm and unpacking the lldb sources in the llvm source tree, but the resulting build directory is over twice smaller. The extrapolated estimates in an earlier post were clearly too large. These findings have been fed back to the lldb ML so someone upstream will probably take care of the issue.
comment:32 Changed 8 years ago by RJVB (René Bertin)
Replying to jeremyhu@…:
Because the cctools port might be newer than the Xcode.app-installed version, and the toolchain building the port might be using emitting load commands that the Xcode.app-provided version does not understand. This becomes more obvious when you look back at the Leopard case.
You do realise that port:cctools is already listed as a build dependency?
comment:33 Changed 8 years ago by RJVB (René Bertin)
FWIW, I now have a port:lldb-3.9 that uses a standalone build and contains the necessary patch and tweaks to achieve this.
comment:34 Changed 8 years ago by jeremyhu (Jeremy Huddleston Sequoia)
You do realise that port:cctools is already listed as a build dependency?
Of clang, yes. We want to make sure it's not a dependency of llvm
Yeah, probably... if someone is interested in providing it and maintaining it.