[OE-core] [PATCH v4 1/2] nettle: fix the Segmentation fault

Khem Raj raj.khem at gmail.com
Sat May 11 01:27:33 UTC 2019



On 4/24/19 1:41 AM, mingli.yu at windriver.com wrote:
> From: Mingli Yu <Mingli.Yu at windriver.com>
> 
> The commit[8ac8fa8ee1 nettle: update to 3.4.1]
> add CFLAGS_append = " -std=c99" to silence the
> below error for native build:
> | ../nettle-3.4.1/rsa-sign-tr.c: In function 'sec_equal':
> | ../nettle-3.4.1/rsa-sign-tr.c:243:3: error: 'for' loop initial declarations are only allowed in C99 mode
>     for (size_t i = 0; i < limbs; i++)
>     ^
> | ../nettle-3.4.1/rsa-sign-tr.c:243:3: note: use option -std=c99 or -std=gnu99 to compile your code
> | Makefile:263: recipe for target 'rsa-sign-tr.o' failed
> 
> But the above change will trigger below Segmentation
> fault:
>   # echo -n passwd| nettle-pbkdf2 -i 1 -l 16 salt
>   [65534.886509] nettle-pbkdf2[708]: segfault at 1f594260 ip 00007f3332256998 sp 00007fff60d44410 error 4 in libnettle.so.6.5[7f3332244000+1d00]
>   [65534.887525] Code: e8 6d db fe ff 44 01 6d 68 48 83 c4 08 5b 5d 41 5c 41 5d 41 5e 41 5f c3 66 2e 0f 1f 84 00 00 00 00 00 49 89 dc e9 68 ff f
>   Segmentation fault
> 
> So update the logic to CFLAGS_append = " -std=gnu99"
> to fix the issue.
> 
> Signed-off-by: Mingli Yu <Mingli.Yu at windriver.com>
> ---
>   meta/recipes-support/nettle/nettle_3.4.1.bb | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/meta/recipes-support/nettle/nettle_3.4.1.bb b/meta/recipes-support/nettle/nettle_3.4.1.bb
> index dd49c30..8375fcf 100644
> --- a/meta/recipes-support/nettle/nettle_3.4.1.bb
> +++ b/meta/recipes-support/nettle/nettle_3.4.1.bb
> @@ -30,7 +30,7 @@ inherit autotools ptest multilib_header
>   EXTRA_AUTORECONF += "--exclude=aclocal"
>   
>   EXTRA_OECONF = "--disable-openssl"
> -CFLAGS_append = " -std=c99"
> +CFLAGS_append = " -std=gnu99"

Is this flag needed for native build on distros using really old gcc ?

then I think we should add it to BUILD_CFLAGS and let default standard 
prevail that gcc/clang selects in target case.

>   
>   do_compile_ptest() {
>           oe_runmake buildtest
> 


More information about the Openembedded-core mailing list