[Buildroot] [PATCH 1/1] fio: (bugfix) add libaio dependency (added description)
Matthew Weber
matthew.weber at rockwellcollins.com
Thu Aug 14 02:24:00 UTC 2014
Thomas,
On Wed, Aug 13, 2014 at 4:59 PM, Thomas Petazzoni
<thomas.petazzoni at free-electrons.com> wrote:
> Dear Matt Weber,
>
> On Wed, 13 Aug 2014 13:53:42 -0500, Matt Weber wrote:
>> The fio package at runtime (dlopen)links in the libaio library
>> when the ioengine is selected as libaio. I.e. this isn't caught at
>> build time since the link wouldn't occur.
>>
>> Signed-off-by: Matt Weber <Matthew.Weber at rockwellcollins.com>
>
> Thanks for the explanation. However, this patch still isn't completely
> correct. The first issue is that you have added a changelog information
> ("added description") in the commit title, which is preserved forever
> in the Git history. The changelog information should go...
>
>> ---
>
> ... here, so that it doesn't get preserved forever in the Git history.
>
> Also, the (bugfix) part of your commit title is kind of strange. I
> think a proper commit title would be:
>
> fio: add missing libaio dependency
Agree, I didn't scrub my commit before generating the path. Sorry
about that I'll cleanup and submit v2.
>
> Also, you say that libaio is needed when the ioengine is selected as
> libaio. Are there other ioengine that could potentially be used, and
> therefore make the libaio dependency optional?
The code only has this one dlopen case. Everything else is linked at
compile time.
>
>> package/fio/Config.in | 1 +
>> package/fio/fio.mk | 1 +
>> 2 files changed, 2 insertions(+)
>>
>> diff --git a/package/fio/Config.in b/package/fio/Config.in
>> index 8cbbf6c..b907fb9 100644
>> --- a/package/fio/Config.in
>> +++ b/package/fio/Config.in
>> @@ -3,6 +3,7 @@ config BR2_PACKAGE_FIO
>> depends on BR2_USE_MMU # fork()
>> depends on BR2_LARGEFILE
>> depends on BR2_TOOLCHAIN_HAS_THREADS
>> + select BR2_PACKAGE_LIBAIO #ioengine libaio
>
> This should be:
>
> # Runtime dependency: libaio is dlopen()ed by fio
> select BR2_PACKAGE_LIBAIO
Agree, will update.
>
> Also, the libaio package is only available for a limited set of
> architectures (see package/libaio/Config.in), and those dependencies
> must be propagated to fio if libaio is indeed a mandatory dependency of
> fio.
The code doesn't (currently) seem to make the libaio optional. So I
agree at this point it would make the most sense to restrict fio to
the same build targets as libaio and enforce this dependency.
>
>> # fio uses posix_madvise(), which is not part of any official
>> # release of uClibc, but is part of uClibc Git, and backported
>> # in Buildroot patch set of uClibc 0.9.33. Therefore, we
<snip>
>> FIO_LICENSE_FILES = LICENSE
>> +FIO_DEPENDENCIES = libaio
>
> If libaio is only a runtime dependency of fio (and not a build time
> dependency), then this line is not needed.
True, we would have see build failures if this was required.
Thank you for the feedback,
--
Matthew L Weber / Sr Software Engineer / Platform Software
MS 131-100, C Ave NE, Cedar Rapids, IA, 52498, USA
Phone: 319-295-7349
matthew.weber at rockwellcollins.com
www.rockwellcollins.com
Note: Any Export License Required Information and License Restricted
Third Party Intellectual Property (TPIP) content must be encrypted and
sent to matthew.weber at corp.rockwellcollins.com.
More information about the buildroot
mailing list