Re: [lldb-dev] [RFC] lldb integration with (user mode) qemu

2021-11-04 Thread Jessica Clarke via lldb-dev
On Fri, Oct 29, 2021 at 05:55:02AM +, David Spickett via lldb-dev wrote:
>> I don't think it does. Or at least I'm not sure how do you propose to solve 
>> them (who is "you" in the paragraph above?).
> 
> I tend to use "you" meaning "you or I" in hypotheticals. Same thing as
> "if I had" but for whatever reason I phrase it like that to include
> the other person, and it does have its ambiguities.
> 
> What I was proposing is, if I was correct (which I wasn't) then having
> the user "platform select qemu-user" would solve things. (which it
> doesn't)
> 
>> What currently happens is that when you open a non-native (say, linux) 
>> executable, the appropriate remote platform gets selected automatically.
> 
> ...because of this. I see where the blocker is now. I thought remote
> platforms had to be selected before they could claim.
> 
>> If we do have a prompt, then this may not be so critical, though I expect 
>> that most users would still prefer it we automatically selected qemu.
> 
> Seems reasonable to put qemu-user above remote-linux. Only claiming if
> qemu-user has been configured sufficiently. I guess architecture would
> be the minimum setting, given we can't find the qemu binary without
> it.
> 
> Is this similar in any way to how the different OS remote platforms
> work? For example there is a remote-linux and a remote-netbsd, is
> there enough information in the program file itself to pick just one
> or is there an implicit default there too?
> (I see that platform CreateInstance gets an ArchSpec but having
> trouble finding where that comes from)

Please make sure you don't forget that bsd-user also exists (and after
living in a fork for many years for various boring reasons is in the
middle of being upstreamed), so don't tie it entirely to remote-linux.

Jess
___
lldb-dev mailing list
lldb-dev@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev


Re: [lldb-dev] Some API test failures are really opaque/could be improved

2021-11-04 Thread David Blaikie via lldb-dev
I haven't made any further progress on it - I think the actual git diff I
posted, changing config.llvm_libs_dir wouldn't quite be shippable as-is,
because it's only correct to add the "/@LLVM_DEFAULT_TARGET_TRIPLE@" if the
runtimes were built with LLVM_ENABLE_PER_TARGET_RUNTIME_DIR ON (which is
the default on Linux, but not on MacOS) - so some extra conditionality is
needed, but I'm not sure of the best/right place to implement that.

On Thu, Nov 4, 2021 at 8:15 AM Raphael Isemann  wrote:

> Is someone currently working on fixing this? FWIW, I think David's
> change seems to go in the right direction (when I originally looked at
> this I also ended up on the wrong rpath but I thought it was some
> other code that set the wrong value. Didn't realize we have two places
> where this happens). I think David's diff is better than we currently
> have so maybe we should just turn this into a review?
>
> Am Di., 26. Okt. 2021 um 06:43 Uhr schrieb David Blaikie <
> dblai...@gmail.com>:
> >
> > On Mon, Oct 25, 2021 at 1:28 PM Louis Dionne  wrote:
> >>
> >> I believe the issue is probably not related so much to
> LLVM_ENABLE_PROJECTS vs LLVM_ENABLE_RUNTIMES, but rather to the fact that
> LLVM_ENABLE_RUNTIMES uses per-target runtime directories now (hasn't always
> been the case), which basically means that libc++ ends up in
> `/lib//libc++.so` instead of
> `/lib/libc++.so`.
> >
> >
> > Ish, yes. It's a bug in LLVM_ENABLE_RUNTIMES that isn't present in
> LLVM_ENABLE_PROJECTS, so for now if I want to run the lldb pretty printer
> tests for libc++ on Linux it seems the only way I can is by using the
> deprecated functionality of libc++ in LLVM_ENABLE_PROJECTS.
> >
> > Consider this a bug report (looks like a bug in the lldb CMake
> configuration, not in libc++'s build itself, but something to figure out if
> Linux lldb devs are going to use libc++ +.ENABLE_RUNTIMES path) on that
> deprecation?
> >
> >>
> >> I think you either want to specify the per-target library dir when
> running against libc++, or you want to disable that and use
> `LLVM_ENABLE_PER_TARGET_RUNTIME_DIR=OFF` when configuring the runtimes. In
> all cases, you want to be using `LLVM_ENABLE_RUNTIMES` and not
> `LLVM_ENABLE_PROJECTS`, since the latter is deprecated now.
> >
> >
> > I didn't enable LLVM_ENABLE_PER_TARGET_RUNTIME_DIR myself/in the root
> cmake config. It looks like it's hardcoded(?) into the ENABLE_RUNTIMES
> sub-build?
> https://github.com/llvm/llvm-project/blob/e5fb79b31424267704e9d2d9674089fd7316453e/llvm/runtimes/CMakeLists.txt#L76
> I'm not sure there's any way to override that from the root? And in any
> case I'd have thought the defaults would need to/be intended to work
> correctly on supported platforms?
> >
> > So something in lldb's dir handling (maybe some general infrastructure
> in LLVM could use some improvement to provide an LLVM_RUNTIME_LIBS_DIR, or
> similar? that could then be used from other places - rather than libc++,
> for instance, creating that directory for itself based on LLVM_LIBS_DIR and
> LLVM_ENABLE_PER_TARGET_RUNTIME_DIR, etc) needs some fixes to support the
> current defaults/hardcoded modes on Linux?
> >
> >>
> >> Cheers,
> >> Louis
> >>
> >> On Oct 25, 2021, at 13:57, David Blaikie  wrote:
> >>
> >> +Louis Dionne - perhaps the libcxx and lldb folks would be interesting
> in finding a suitable way to address this issue, since currently either
> option (using libcxx in ENABLE_PROJECTS or using it in ENABLE_RUNTIMES) is
> incomplete - if I use ENABLE_RUNTIMES I get the libcxx testing run against
> the just-built clang and generally this is the "supported" configuration,
> but then some lldb tests fail because they can't find libcxx.so.1 (on
> Linux) - and using ENABLE_PROJECTS means not using the just-built clang for
> libcxx tests (so missing the libcxx breakages caused by my array name
> change) but do use the just-built libcxx in lldb tests and find failures
> there...
> >>
> >> On Wed, Oct 20, 2021 at 1:57 PM David Blaikie 
> wrote:
> >>>
> >>> On Tue, Oct 19, 2021 at 4:55 PM David Blaikie 
> wrote:
> 
>  On Tue, Oct 19, 2021 at 9:08 AM Raphael Isemann 
> wrote:
> >
> > Actually the RPATH theory is wrong, but the LLVM_ENABLE_PROJECT
> > workaround *should* still work.
> 
> 
>  I'll give that a go (it's running at the moment) though I guess this
> is inconsistent with the direction libcxx is moving in for building, re:
> https://groups.google.com/g/llvm-dev/c/tpuLxk_ipLw
> >>>
> >>>
> >>> Yep, it does work with LLVM_ENABLE_PROJECT rather than
> LLVM_ENABLE_RUNTIME.
> >>>
> >>> Specifically the test binary is linked with an rpath to the just-built
> lib directory that ensures the just-built libc++.so is found:
> >>>
> >>> /usr/local/google/home/blaikie/dev/llvm/build/release/bin/clang main.o
> -g -O0 -fno-builtin -m64
> -I/usr/local/google/home/blaikie/dev/llvm/src/lldb/packages/Python/lldbsuite/test/make/../../../../../include
> 

Re: [lldb-dev] Some API test failures are really opaque/could be improved

2021-11-04 Thread Raphael Isemann via lldb-dev
Is someone currently working on fixing this? FWIW, I think David's
change seems to go in the right direction (when I originally looked at
this I also ended up on the wrong rpath but I thought it was some
other code that set the wrong value. Didn't realize we have two places
where this happens). I think David's diff is better than we currently
have so maybe we should just turn this into a review?

Am Di., 26. Okt. 2021 um 06:43 Uhr schrieb David Blaikie :
>
> On Mon, Oct 25, 2021 at 1:28 PM Louis Dionne  wrote:
>>
>> I believe the issue is probably not related so much to LLVM_ENABLE_PROJECTS 
>> vs LLVM_ENABLE_RUNTIMES, but rather to the fact that LLVM_ENABLE_RUNTIMES 
>> uses per-target runtime directories now (hasn't always been the case), which 
>> basically means that libc++ ends up in 
>> `/lib//libc++.so` instead of `/lib/libc++.so`.
>
>
> Ish, yes. It's a bug in LLVM_ENABLE_RUNTIMES that isn't present in 
> LLVM_ENABLE_PROJECTS, so for now if I want to run the lldb pretty printer 
> tests for libc++ on Linux it seems the only way I can is by using the 
> deprecated functionality of libc++ in LLVM_ENABLE_PROJECTS.
>
> Consider this a bug report (looks like a bug in the lldb CMake configuration, 
> not in libc++'s build itself, but something to figure out if Linux lldb devs 
> are going to use libc++ +.ENABLE_RUNTIMES path) on that deprecation?
>
>>
>> I think you either want to specify the per-target library dir when running 
>> against libc++, or you want to disable that and use 
>> `LLVM_ENABLE_PER_TARGET_RUNTIME_DIR=OFF` when configuring the runtimes. In 
>> all cases, you want to be using `LLVM_ENABLE_RUNTIMES` and not 
>> `LLVM_ENABLE_PROJECTS`, since the latter is deprecated now.
>
>
> I didn't enable LLVM_ENABLE_PER_TARGET_RUNTIME_DIR myself/in the root cmake 
> config. It looks like it's hardcoded(?) into the ENABLE_RUNTIMES sub-build? 
> https://github.com/llvm/llvm-project/blob/e5fb79b31424267704e9d2d9674089fd7316453e/llvm/runtimes/CMakeLists.txt#L76
>  I'm not sure there's any way to override that from the root? And in any case 
> I'd have thought the defaults would need to/be intended to work correctly on 
> supported platforms?
>
> So something in lldb's dir handling (maybe some general infrastructure in 
> LLVM could use some improvement to provide an LLVM_RUNTIME_LIBS_DIR, or 
> similar? that could then be used from other places - rather than libc++, for 
> instance, creating that directory for itself based on LLVM_LIBS_DIR and 
> LLVM_ENABLE_PER_TARGET_RUNTIME_DIR, etc) needs some fixes to support the 
> current defaults/hardcoded modes on Linux?
>
>>
>> Cheers,
>> Louis
>>
>> On Oct 25, 2021, at 13:57, David Blaikie  wrote:
>>
>> +Louis Dionne - perhaps the libcxx and lldb folks would be interesting in 
>> finding a suitable way to address this issue, since currently either option 
>> (using libcxx in ENABLE_PROJECTS or using it in ENABLE_RUNTIMES) is 
>> incomplete - if I use ENABLE_RUNTIMES I get the libcxx testing run against 
>> the just-built clang and generally this is the "supported" configuration, 
>> but then some lldb tests fail because they can't find libcxx.so.1 (on Linux) 
>> - and using ENABLE_PROJECTS means not using the just-built clang for libcxx 
>> tests (so missing the libcxx breakages caused by my array name change) but 
>> do use the just-built libcxx in lldb tests and find failures there...
>>
>> On Wed, Oct 20, 2021 at 1:57 PM David Blaikie  wrote:
>>>
>>> On Tue, Oct 19, 2021 at 4:55 PM David Blaikie  wrote:

 On Tue, Oct 19, 2021 at 9:08 AM Raphael Isemann  
 wrote:
>
> Actually the RPATH theory is wrong, but the LLVM_ENABLE_PROJECT
> workaround *should* still work.


 I'll give that a go (it's running at the moment) though I guess this is 
 inconsistent with the direction libcxx is moving in for building, re: 
 https://groups.google.com/g/llvm-dev/c/tpuLxk_ipLw
>>>
>>>
>>> Yep, it does work with LLVM_ENABLE_PROJECT rather than LLVM_ENABLE_RUNTIME.
>>>
>>> Specifically the test binary is linked with an rpath to the just-built lib 
>>> directory that ensures the just-built libc++.so is found:
>>>
>>> /usr/local/google/home/blaikie/dev/llvm/build/release/bin/clang main.o -g 
>>> -O0 -fno-builtin -m64  
>>> -I/usr/local/google/home/blaikie/dev/llvm/src/lldb/packages/Python/lldbsuite/test/make/../../../../../include
>>>  
>>> -I/usr/local/google/home/blaikie/dev/llvm/src/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/list
>>>  
>>> -I/usr/local/google/home/blaikie/dev/llvm/src/lldb/packages/Python/lldbsuite/test/make
>>>  -include 
>>> /usr/local/google/home/blaikie/dev/llvm/src/lldb/packages/Python/lldbsuite/test/make/test_common.h
>>>  -fno-limit-debug-info  -gsplit-dwarf-stdlib=libc++ 
>>> -Wl,-rpath,/usr/local/google/home/blaikie/dev/llvm/build/release/./lib 
>>> --driver-mode=g++ -o "a.out"
>>>
>>> Oh, actually it passes the same rpath when using LLVM_ENABLE_RUNTIME, but 
>>> the 

[lldb-dev] [Bug 52393] LLDB crashes while printing optional member from parent class

2021-11-04 Thread via lldb-dev
https://bugs.llvm.org/show_bug.cgi?id=52393

Raphael Isemann  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #6 from Raphael Isemann  ---
Gonna mark this as a duplicate (but thanks for the report!)

*** This bug has been marked as a duplicate of bug 51818 ***

-- 
You are receiving this mail because:
You are the assignee for the bug.___
lldb-dev mailing list
lldb-dev@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev