[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