[Lldb-commits] [PATCH] D47625: [cmake] Detect presence of wide-char libedit at build time

Davide Italiano via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 28 11:04:51 PST 2019


On Thu, Feb 28, 2019 at 10:31 AM Davide Italiano <dccitaliano at gmail.com> wrote:
>
> On Thu, Feb 28, 2019 at 8:25 AM Raphael Isemann via lldb-commits
> <lldb-commits at lists.llvm.org> wrote:
> >
> > Am Do., 28. Feb. 2019 um 17:11 Uhr schrieb Pavel Labath via
> > lldb-commits <lldb-commits at lists.llvm.org>:
> > >
> > > On 28/02/2019 16:18, Pavel Labath via lldb-commits wrote:
> > > > On 28/02/2019 02:37, Davide Italiano via Phabricator wrote:
> > > >> davide added a comment.
> > > >> Herald added a subscriber: jdoerfert.
> > > >> Herald added a project: LLVM.
> > > >>
> > > >> Pavel, this broke unicode handling for lldb on MacOS. If you type
> > > >> something in the lldb cmdline, it won't print the right character but
> > > >> a series of unicode sequences.
> > > >> The main concern is that this also breaks the Swift REPL (powered by
> > > >> lldb).
> > > >>
> > > >> Looks like something like this:
> > > >>
> > > >>    $ git diff
> > > >>    diff --git a/lldb/include/lldb/Host/Editline.h
> > > >> b/lldb/include/lldb/Host/Editline.h
> > > >>    index cb40f1e6917..e53991c450f 100644
> > > >>    --- a/lldb/include/lldb/Host/Editline.h
> > > >>    +++ b/lldb/include/lldb/Host/Editline.h
> > > >>    @@ -51,6 +51,7 @@
> > > >>     #include <string>
> > > >>     #include <vector>
> > > >>    +#include "lldb/Host/Config.h"
> > > >>     #include "lldb/Host/ConnectionFileDescriptor.h"
> > > >>     #include "lldb/Host/Predicate.h"
> > > >>     #include "lldb/Utility/FileSpec.h"
> > > >>
> > > >> "fixes" the CMake build. I'm seeing failures if I apply the same patch
> > > >> to the Xcode project.
> > > >
> > > > Have you tried putting the `#include "lldb/Host/Config.h"` at the top of
> > > > Editline.h, so that LLDB_EDITLINE_USE_WCHAR is defined before the
> > > > ```
> > > > #if LLDB_EDITLINE_USE_WCHAR
> > > > #include <codecvt>
> > > > #endif
> > > > ```
> > > > block ?
> > >
> > >
> > >
> > > Ok, I've done some more experiments, and I'm pretty sure this will fix
> > > things. I didn't commit that yet because I found that this breaks the
> > > modules build. I am not sure why is that, but I suspect this is because
> > > we don't have a modulemap file for the lldb/Host/Config.h file. I am not
> > > sure if I'll have time to fix that today.
> > >
> > > cheers,
> > > pavel
> > > _______________________________________________
> > > lldb-commits mailing list
> > > lldb-commits at lists.llvm.org
> > > https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
> >
> > Can you post the error if you still have the log around? If modules
> > fail because this simple header is duplicated then that's an
> > interesting Clang bug.
> >
> > - Raphael
> >
>
> I confirm that putting the include at the beginning of the file fixes
> my issues with Xcodebuild. I'm trying to reproduce with the modules
> build and attach the log here.
>

Raphael, this is the error I'm seeing:

[2689/3391] Building CXX object
tools/lldb/source/Host/CMakeFiles/lldbHost.dir/common/MainLoop.cpp.o

FAILED: tools/lldb/source/Host/CMakeFiles/lldbHost.dir/common/MainLoop.cpp.o

/Applications/Xcode4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
 -DGTEST_HAS_RTTI=0 -DHAVE_ROUND -DLIBXML2_DEFINED
-DLLDB_CONFIGURATION_RELEASE -DLLDB_USE_OS_LOG
-D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
-Itools/lldb/source/Host
-I/Users/davide/llvm-monorepo/llvm-mono/llvm/tools/lldb/source/Host
-Itools/lldb/include
-I/Users/davide/llvm-monorepo/llvm-mono/llvm/tools/lldb/include
-isystem /Applications/Xcode4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/libxml2
-Iinclude -I/Users/davide/llvm-monorepo/llvm-mono/llvm/include
-I/Applications/Xcode4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/python2.7
-I/Users/davide/llvm-monorepo/llvm-mono/llvm/tools/clang/include
-Itools/lldb/../clang/include
-I/Users/davide/llvm-monorepo/llvm-mono/llvm/tools/lldb/source/. -fPIC
-fvisibility-inlines-hidden -Werror=date-time
-Werror=unguarded-availability-new -std=c++11 -fmodules
-fmodules-cache-path=/Users/davide/llvm-monorepo/llvm-mono/build-re/module.cache
-fcxx-modules -Wall -Wextra -Wno-unused-parameter -Wwrite-strings
-Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long
-Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type
-Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wstring-conversion
-fdiagnostics-color -Wno-deprecated-declarations -Wno-unknown-pragmas
-Wno-strict-aliasing -Wno-deprecated-register -Wno-vla-extension -O3
-DNDEBUG -isysroot
/Applications/Xcode4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk
   -fno-exceptions -fno-rtti -MD -MT
tools/lldb/source/Host/CMakeFiles/lldbHost.dir/common/MainLoop.cpp.o
-MF tools/lldb/source/Host/CMakeFiles/lldbHost.dir/common/MainLoop.cpp.o.d
-o tools/lldb/source/Host/CMakeFiles/lldbHost.dir/common/MainLoop.cpp.o
-c /Users/davide/llvm-monorepo/llvm-mono/llvm/tools/lldb/source/Host/common/MainLoop.cpp
/Users/davide/llvm-monorepo/llvm-mono/llvm/tools/lldb/source/Host/common/MainLoop.cpp:209:7:
error: use of undeclared identifier 'ppoll'
  if (ppoll(read_fds.data(), read_fds.size(), nullptr, &sigmask) == -1 &&
      ^
/Users/davide/llvm-monorepo/llvm-mono/llvm/tools/lldb/source/Host/common/MainLoop.cpp:333:25:
error: use of undeclared identifier 'HAVE_SYS_EVENT_H'
  ret = pthread_sigmask(HAVE_SYS_EVENT_H ? SIG_UNBLOCK : SIG_BLOCK,

                        ^
2 errors generated.


More information about the llvm-commits mailing list