[Buildroot] board-specific autotools env customization

Arnout Vandecappelle arnout at mind.be
Wed Feb 4 20:21:26 UTC 2015


On 04/02/15 08:52, Lionel Orry wrote:
> Hi Arnout,
> 
> On Tue, Feb 3, 2015 at 9:54 AM, Arnout Vandecappelle <arnout at mind.be> wrote:

[snip]
>>  So we would really appreciate if you could check the various flags that zeromq
>> tries to run and set them to yes if they are available, and send a patch to the
>> mailing list. I've already checked libzmq_cv_sock_cloexec: SOCK_CLOEXEC was
>> introduced in 2.6.27 so we can also assume that it's always available. Which
>> kernel version do you run?
>>
> 
> I have this list in here (there are 6 flags, 5 of them are available)
> for my compiler, so I could make this patch. It won't do anything
> useful until the acinclude.m4 is patched though, so I suppose the
> first step is to fix acinclude.m4.
> 
> I use a 2.6.32 based kernel.
> 
> For reference, with my current compiler :
> * compiler version : sh4-linux-gcc (GCC) 4.7.3 20130514
> (STMicroelectronics/Linux Base 4.7.3-124)
> * SOCK_CLOEXEC : available
> * SO_KEEPALIVE : available
> * TCP_KEEPCNT : available
> * TCP_KEEPIDLE : available
> * TCP_KEEPINTVL : available
> * TCP_KEEPALIVE : not available

 This indeed seems to correspond to the current situation (kernel > 2.6.30).


>>> Aside note : in fact, in zeromq, the macros written for these flags
>>> detection are wrong because they don't check if the value is set in
>>> environment and always override them; so it is a bad example, but the
>>
>>  Yeah, indeed, you should also patch acinclude.m4 to correctly use a cache
>> variable with AC_CACHE_VAL and AC_CACHE_CHECK. And that patch should be sent
>> upstream of course.
>>
> 
> I totally agree. But I'm still quite bad at autotools stuff and I
> don't know how to use AC_CACHE_xxx macros
> but I'll try to do it anyway. Any hints appreciated, the most clean
> the patch is, the more chances it will have to hit upstream...

The basic pattern is:

AC_CACHE_CHECK(whether SOCK_CLOEXEC is supported, libzmq_cv_sock_cloexec,
[AC_TRY_RUN(...)])

and then of course remove the AC_MSG_CHECKING that comes before it. The cache
variable should be set in the body of the AC_CACHE_CHECK, like it currently is.


 Regards,
 Arnout


[snip]

-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F


More information about the buildroot mailing list