Re: time to workaround libc/13097 in fsf gdb?

Pedro Alves
2014-09-19T14:38:18Z

On 09/17/2014 09:10 PM, Jan Kratochvil wrote:
> On Fri, 12 Sep 2014 14:46:23 +0200, Pedro Alves wrote:
>> On 09/12/2014 01:33 PM, Jan Kratochvil wrote:
>>> On Fri, 12 Sep 2014 14:14:36 +0200, Pedro Alves wrote:
>>>> I was more inclined to leave the vdso in the shared library list
>>>> though, like ldd does, than filtering it out. Like, similar to
>>>> your gdbarch_solib_file_not_found_is_ok patch, but look at the
>>>> addresses rather than filenames in the hook. I'm not sure
>>>> whether that'd complicate things too much.
>>>
>>> Everything can be done but this is again changing a direction/behavior of GDB
>>> upon receiving a fix of current behavior. So far GDB has not been including
>>> vDSO in the library list and the patch was fixing that behavior. One can go
>>> very far from doing one fix up to rewriting GDB from scratch.
>>
>> I think that's a bit uncalled for and unfair -- AIUI, your original patch
>> even did that; it left vdso.so in the list.
>>
>> I had said:
>>
>> "Alternatively to hard coding the names, maybe we could match the vdso address
>> found through that with the addresses found iterating the dynamic linker list, to
>> know which dynamic linker entry is the vdso."
>>
>> And your new patch said:
>>
>> "But now it discards any shared libraries which match a symbol file loaded via
>> add-symbol-file-from-memory. Which may be OK but it is more widespread change
>> than before."
>>
>> I was only clarifying what I had already said in the message
>> you replied to.
>
> Do you mean that "Alternatively to hard coding the names, maybe we could" was
> only an idea which I should have ignored?

No, it was an idea that should have been further discussed. I failed
to follow up back then, sorry about that.

>> I have no idea what problems you found in the original patch that led to
>> redesigning the patch to filter out instead,
>
> As there was the discussion whether the list of names of former patch
> Message-ID: <20121122201737.GA32172@host2.jankratochvil.net>
> is complete and whether one should not use the address match instead.
>
> The new patch
> Message-ID: <20121125181505.GA26194@host2.jankratochvil.net>
> filters-out the vDSO from library list as is done by FSF GDB HEAD.
>
> Each of the patches is considered to have some disadvantages, IIUC.

OK, I've investigated this further. I think that we're a couple steps
away from being able to list the vdso without causing other issues.
I'll reply again with a patch based on your "new" patch, but that matches
the vdso by address independently of add-symbol-file-from-memory.

> But all of them are just theoretical in the usual GDB nitpicking style.

That is just not helpful. :-/

>> or what you saw that would suggest that doing that change would require
>> tilting so much in the "rewriting GDB from scratch" direction.
>
> For each fix of GDB one has to consider how widespread the fix should be.
>
> Any fix present on gdb-patches is wrong as it is not written in an
> effective/maintainable language (C++/Java/C#/others). Therefore a full fix
> would be always to rewrite GDB into C++/Java/C#/others first - that I call
> "rewriting GDB from scratch". But that I consider as a too large task to do
> for any of the fixes, particularly because is then more effective to rather
> start extending LLDB instead.

Perhaps not surprisingly, I disagree.

> Another possible metric is to make
> a fix in minimal time/effort/cost so that the user is no longer affected by
> the specific bug being addressed. This metric I try to follow.

I'd call that the "put on life support" metric... I don't agree with it
(for GDB), and I'd guess most on this list don't.

> You seem to evaluate the patches by some other metric which I cannot guess
> myself in advance to coding a patch.

It's simply the metric of someone who believes that GDB is here
to stay, and therefore weighs impact of changes both in the present
and in the future. Yes, GDB does have its issues, then again which
project doesn't?

Thanks,
Pedro Alves