[LTP] [PATCH] syscalls/mprotect04: Fix compilation error for ia64

Jan Stancek jstancek@redhat.com
Fri Jul 26 14:22:57 CEST 2019



----- Original Message -----
> Fixes: 94f5be719 ("syscalls/mprotect04: align exec_func to 64 bytes")
> 
> Signed-off-by: Petr Vorel <pvorel@suse.cz>
> ---
> Hi,
> 
> or should we drop ia64 support as the architecture is obsolete?
> Since we don't test this arch, there are some other build failures
> (at least on old SLES I tested the patch).

Thanks, I missed the ia64-specific code. RHEL dropped support for ia64 in RHEL6,
and RHEL5 will likely be EOL in ~6 months, so I'm fine either way.

One note below.

> 
> Kind regards,
> Petr
> 
>  testcases/kernel/syscalls/mprotect/mprotect04.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/testcases/kernel/syscalls/mprotect/mprotect04.c
> b/testcases/kernel/syscalls/mprotect/mprotect04.c
> index a014ab6b4..d1991a2db 100644
> --- a/testcases/kernel/syscalls/mprotect/mprotect04.c
> +++ b/testcases/kernel/syscalls/mprotect/mprotect04.c
> @@ -141,7 +141,7 @@ struct func_desc {
>  	uint64_t glob_pointer;
>  };
>  
> -static __attribute__((noinline)) void *get_func(void *mem)
> +static __attribute__((noinline)) void *get_func(void *mem, uintptr_t
> *func_page_offset LTP_ATTRIBUTE_UNUSED)
>  {
>  	static struct func_desc fdesc;
>  
> @@ -275,11 +275,13 @@ static void testfunc_protexec(void)
>  	if (!func)
>  		goto out;
>  
> +#ifndef __ia64__

If you initialize func_page_offset to 0 in ia64 get_func(), then this ifdef
is not needed. Either way:

Acked-by: Jan Stancek <jstancek@redhat.com>

>  	if (func_page_offset + 64 > page_sz) {
>  		SAFE_MUNMAP(cleanup, p, page_sz);
>  		tst_brkm(TCONF, cleanup, "func too close to page boundary, "
>  			"maybe your compiler ignores -falign-functions?");
>  	}
> +#endif
>  
>  	/* Change the protection to PROT_EXEC. */
>  	TEST(mprotect(p, page_sz, PROT_EXEC));
> --
> 2.22.0
> 
> 


More information about the ltp mailing list