Re: [PATCH 1/1] selftests: gpio: use pkg-config to determine libmount CFLAGS/LDLIBS

From: Fathi Boudra
Date: Mon Jul 03 2017 - 07:23:56 EST


On 1 July 2017 at 04:48, Michael Ellerman <mpe@xxxxxxxxxxxxxx> wrote:
> Fathi Boudra <fathi.boudra@xxxxxxxxxx> writes:
>
>> On 30 June 2017 at 05:20, Bamvor Zhang Jian <bamvor.zhangjian@xxxxxxxxxx> wrote:
>>> On 29 June 2017 at 19:39, Fathi Boudra <fathi.boudra@xxxxxxxxxx> wrote:
>>>> On 29 June 2017 at 12:01, Michael Ellerman <mpe@xxxxxxxxxxxxxx> wrote:
>>>>> Fathi Boudra <fathi.boudra@xxxxxxxxxx> writes:
>>>>>
>>>>>> Fix hardcoded and misplaced libmount headers. Use pkg-config instead to
>>>>>> figure out CFLAGS/LDLIBS, fixing also their value for cross-compilation.
>>>>>
>>>>> Can you explain how it fixes the values for cross-compilation?
>>>>
>>>> When pkg-config is invoked in a cross-build environment, it will
>>>> return your sysroot headers path instead of the hardcoded
>>>> -I/usr/include/libmount
>>>>
>>>> For example in my oe environment, when I invoke "pkg-config --cflags
>>>> mount", it returns:
>>>> -I/build/tmp-rpb-glibc/sysroots/hikey/usr/include/libmount
>>> I suppose we could also pass the extra CFLAGS and LDFLAGS directly to
>>> make it work. correct?
>>
>> or use the appropriate tool for getting CFLAGS/LDFLAGS instead of:
>> 1. hardcoding it and potentially get them wrong
>> 2. expecting the user will have to take extra steps, while he can just run make
>
> Sure. But by using the "appropriate tool" you create a new dependency on
> that tool.
>
> For folks building natively it's probably not a big deal, they probably
> already have pkg-config installed, but for cross building it's another
> thing to get working.
>
> Currently most of the selftests build, and cross-build, with nothing but
> a C compiler and libc, and we should try to maintain that as much as
> possible.

As you said, most of selftests build. There's a precedent. memfd test
is also using pkg-config. That's why I followed similar approach.

> cheers
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kselftest" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html