Re: [Buildroot] [PATCH 2/2] package/gdb: use stat() privided by the system

Sergio Durigan Junior
2018-09-11T18:22:08Z

On Tuesday, September 11 2018, Pedro Alves wrote:

> On 09/11/2018 01:38 AM, Sergio Durigan Junior wrote:
>
>> This is happening because, before the commit mentioned above,
>> 'common-utils.c' (which gets transformed into 'common-utils-ipa.c'
>> during the gdbserver build) wasn't calling 'stat'. It doesn't seem like
>> a regression; it seems like a hidden problem that was uncovered by the
>> need of 'stat'.
>>
>> I don't know why this problem is manifesting only when compiling IPA,
>> and not when compiling 'common-utils.c' during GDB's/gdbserver's build.
>
> Because the IPA doesn't link with gnulib. And the answer to that wouldn't
> be as simple as "just link it in", because the IPA objects are supposed
> to be compiled with -fPIC and -fvisibility=hidden. So we'd need a third
> build of gnulib for the IPA.

That explains it. It seems strange to me that we still include the
gnulib headers when compiling IPA; I confess I just assumed IPA was
linking with gnulib because of this.

> It doesn't seem like this code that calls stat (is_regular_file?) is
> useful for the IPA, so a quicker/simpler fix would be to simply move
> that function out of common-utils.c into some other file that is not
> shared with the IPA.

It's not useful for IPA; it could be moved to common/filestuff.c, for
example. But IMHO, we should probably have an explicit file just for
IPA, because otherwise we'll forget about this restriction and re-add
some 'stat' calls to common-utils.c.

Thanks,

--
Sergio
GPG key ID: 237A 54B1 0287 28BF 00EF 31F4 D0EB 7628 65FC 5E36
Please send encrypted e-mail if possible