[Lldb-commits] [lldb] 2353321 - [lldb][Docs] Add Curses version note to build page
David Spickett via lldb-commits
lldb-commits at lists.llvm.org
Fri Mar 8 03:33:32 PST 2024
Author: David Spickett
Date: 2024-03-08T11:33:17Z
New Revision: 235332150d52d11b340a10be1bb88432d2cf4179
URL: https://github.com/llvm/llvm-project/commit/235332150d52d11b340a10be1bb88432d2cf4179
DIFF: https://github.com/llvm/llvm-project/commit/235332150d52d11b340a10be1bb88432d2cf4179.diff
LOG: [lldb][Docs] Add Curses version note to build page
This explains a thing that hit me on FreeBSD because the base system
has an ncursesw at one version and I installed from pkg another
version that was simply ncurses (no wide char support).
For whatever reason, when we pass -lcurses to the linker it ends up
picking bits of both installs. This led to lldb crashing immediately
if you tried to use the `gui` command.
In a way that gave little information but I stumbled onto
https://github.com/vifm/vifm/issues/325 which is very similar.
```
ec2-user at freebsd:~/build-llvm $ ldd ./bin/lldb | grep curses
libncursesw.so.9 => /lib/libncursesw.so.9 (0x6a515206e000)
libncurses.so.6 => /usr/local/lib/libncurses.so.6 (0x6a5158e86000)
```
We should only see one version, and it and libpanel etc should
all have "w" or not have "w". This was not the case for my build.
What I can see from the CMake side seemed fine, it found the pkg
installed ncurses in /usr/local. Something else must decide that
-lcurses should pull in the other one.
Regardless, I don't know how to fix that but the solution for most
people is just not to add another ncurses if they already have one.
So I've added a note saying so, and how to check what your lldb
is using.
Added:
Modified:
lldb/docs/resources/build.rst
Removed:
################################################################################
diff --git a/lldb/docs/resources/build.rst b/lldb/docs/resources/build.rst
index fe8e293db642e2..5f4d35ced6236c 100644
--- a/lldb/docs/resources/build.rst
+++ b/lldb/docs/resources/build.rst
@@ -85,6 +85,13 @@ commands below.
versions of python unusable. This primarily affects Windows, as debug builds of
LLDB must use debug python as well.
+.. note::
+ Installing multiple versions of Curses, particularly when only one is built with
+ wide character support, can cause lldb to be linked with an incorrect set of
+ libraries. If your system already has Curses, we recommend you use that version.
+ If you do install another one, use a tool like ``ldd`` to ensure only one version
+ of Curses is being used in the final ``lldb`` executable.
+
Windows
*******
More information about the lldb-commits
mailing list