[PATCH] add selectable varargs handling of prctl syscall
Carmelo AMOROSO
carmelo.amoroso at st.com
Mon Jan 11 16:53:54 UTC 2010
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hans-Christian Egtvedt wrote:
> On Wed, 16 Dec 2009 13:23:56 +0100
> Hans-Christian Egtvedt <hans-christian.egtvedt at atmel.com> wrote:
>
> Bump
>
>> prctl is defined to use varargs in the header file, hence might need varargs
>> specific handling in the source. This patch properly handles the variodic
>> argument before the syscall is passed to the kernel if the
>> __UCLIBC_VARARGS_REQUIRED__ symbol is defined.
>>
>> Since not all architectures need to handle varargs explicit, an uClibc
>> architecture feature was added to enable this feature. The config symbol is
>> named __UCLIBC_VARARGS_REQUIRED__ and is added as undefined to all
>> architectures except AVR32.
>>
>> Signed-off-by: Hans-Christian Egtvedt <hans-christian.egtvedt at atmel.com>
>> ---
>> .../linux/alpha/bits/uClibc_arch_features.h | 6 +++++
>> libc/sysdeps/linux/arm/bits/uClibc_arch_features.h | 6 +++++
>> .../linux/avr32/bits/uClibc_arch_features.h | 6 +++++
>> .../sysdeps/linux/bfin/bits/uClibc_arch_features.h | 6 +++++
>> .../linux/common/bits/uClibc_arch_features.h | 6 +++++
>> libc/sysdeps/linux/common/prctl.c | 24 ++++++++++++++++++++
>> .../sysdeps/linux/cris/bits/uClibc_arch_features.h | 6 +++++
>> libc/sysdeps/linux/e1/bits/uClibc_arch_features.h | 6 +++++
>> libc/sysdeps/linux/frv/bits/uClibc_arch_features.h | 6 +++++
>> .../linux/h8300/bits/uClibc_arch_features.h | 6 +++++
>> .../sysdeps/linux/hppa/bits/uClibc_arch_features.h | 6 +++++
>> .../sysdeps/linux/i386/bits/uClibc_arch_features.h | 6 +++++
>> .../sysdeps/linux/i960/bits/uClibc_arch_features.h | 6 +++++
>> .../sysdeps/linux/ia64/bits/uClibc_arch_features.h | 6 +++++
>> .../sysdeps/linux/m68k/bits/uClibc_arch_features.h | 6 +++++
>> .../linux/microblaze/bits/uClibc_arch_features.h | 6 +++++
>> .../sysdeps/linux/mips/bits/uClibc_arch_features.h | 6 +++++
>> .../sysdeps/linux/nios/bits/uClibc_arch_features.h | 6 +++++
>> .../linux/nios2/bits/uClibc_arch_features.h | 6 +++++
>> .../linux/powerpc/bits/uClibc_arch_features.h | 6 +++++
>> libc/sysdeps/linux/sh/bits/uClibc_arch_features.h | 6 +++++
>> .../sysdeps/linux/sh64/bits/uClibc_arch_features.h | 6 +++++
>> .../linux/sparc/bits/uClibc_arch_features.h | 6 +++++
>> .../sysdeps/linux/v850/bits/uClibc_arch_features.h | 6 +++++
>> libc/sysdeps/linux/vax/bits/uClibc_arch_features.h | 6 +++++
>> .../linux/x86_64/bits/uClibc_arch_features.h | 6 +++++
>> .../linux/xtensa/bits/uClibc_arch_features.h | 6 +++++
>> 27 files changed, 180 insertions(+), 0 deletions(-)
>>
>> diff --git a/libc/sysdeps/linux/alpha/bits/uClibc_arch_features.h b/libc/sysdeps/linux/alpha/bits/uClibc_arch_features.h
>> index e106d12..cc44cb0 100644
>> --- a/libc/sysdeps/linux/alpha/bits/uClibc_arch_features.h
>> +++ b/libc/sysdeps/linux/alpha/bits/uClibc_arch_features.h
>> @@ -44,4 +44,10 @@
>> /* only weird assemblers generally need this */
>> #undef __UCLIBC_ASM_LINE_SEP__
>>
>> +/*
>> + * define if target requires to handle varargs explicit as stated in the GNU
>> + * documentation.
>> + */
>> +#undef __UCLIBC_VARARGS_REQUIRED__
>> +
>> #endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
>> diff --git a/libc/sysdeps/linux/arm/bits/uClibc_arch_features.h b/libc/sysdeps/linux/arm/bits/uClibc_arch_features.h
>> index 14621d9..e4d2370 100644
>> --- a/libc/sysdeps/linux/arm/bits/uClibc_arch_features.h
>> +++ b/libc/sysdeps/linux/arm/bits/uClibc_arch_features.h
>> @@ -48,4 +48,10 @@
>> /* only weird assemblers generally need this */
>> #undef __UCLIBC_ASM_LINE_SEP__
>>
>> +/*
>> + * define if target requires to handle varargs explicit as stated in the GNU
>> + * documentation.
>> + */
>> +#undef __UCLIBC_VARARGS_REQUIRED__
>> +
>> #endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
>> diff --git a/libc/sysdeps/linux/avr32/bits/uClibc_arch_features.h b/libc/sysdeps/linux/avr32/bits/uClibc_arch_features.h
>> index c306577..61ea6ca 100644
>> --- a/libc/sysdeps/linux/avr32/bits/uClibc_arch_features.h
>> +++ b/libc/sysdeps/linux/avr32/bits/uClibc_arch_features.h
>> @@ -45,4 +45,10 @@
>> /* only weird assemblers generally need this */
>> #undef __UCLIBC_ASM_LINE_SEP__
>>
>> +/*
>> + * define if target requires to handle varargs explicit as stated in the GNU
>> + * documentation.
>> + */
>> +#define __UCLIBC_VARARGS_REQUIRED__
>> +
>> #endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
>> diff --git a/libc/sysdeps/linux/bfin/bits/uClibc_arch_features.h b/libc/sysdeps/linux/bfin/bits/uClibc_arch_features.h
>> index 4bab547..30da91f 100644
>> --- a/libc/sysdeps/linux/bfin/bits/uClibc_arch_features.h
>> +++ b/libc/sysdeps/linux/bfin/bits/uClibc_arch_features.h
>> @@ -45,4 +45,10 @@
>> /* only weird assemblers generally need this */
>> #undef __UCLIBC_ASM_LINE_SEP__
>>
>> +/*
>> + * define if target requires to handle varargs explicit as stated in the GNU
>> + * documentation.
>> + */
>> +#undef __UCLIBC_VARARGS_REQUIRED__
>> +
>> #endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
>> diff --git a/libc/sysdeps/linux/common/bits/uClibc_arch_features.h b/libc/sysdeps/linux/common/bits/uClibc_arch_features.h
>> index 6cb6177..2019e7b 100644
>> --- a/libc/sysdeps/linux/common/bits/uClibc_arch_features.h
>> +++ b/libc/sysdeps/linux/common/bits/uClibc_arch_features.h
>> @@ -47,4 +47,10 @@
>> /* only weird assemblers generally need this */
>> #undef __UCLIBC_ASM_LINE_SEP__
>>
>> +/*
>> + * define if target requires to handle varargs explicit as stated in the GNU
>> + * documentation.
>> + */
>> +#undef __UCLIBC_VARARGS_REQUIRED__
>> +
>> #endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
>> diff --git a/libc/sysdeps/linux/common/prctl.c b/libc/sysdeps/linux/common/prctl.c
>> index a6764c5..4624fad 100644
>> --- a/libc/sysdeps/linux/common/prctl.c
>> +++ b/libc/sysdeps/linux/common/prctl.c
>> @@ -12,6 +12,30 @@
>> /* psm: including sys/prctl.h would depend on kernel headers */
>>
>> #ifdef __NR_prctl
>> +#ifndef __UCLIBC_VARARGS_REQUIRED__
>> extern int prctl (int, long, long, long, long);
>> _syscall5(int, prctl, int, option, long, arg2, long, arg3, long, arg4, long, arg5)
>> +#else
>> +#include <sys/prctl.h>
>> +
>> +#define __NR___syscall_prctl __NR_prctl
>> +static inline _syscall5(int, __syscall_prctl, int, option, long, arg2, long, arg3,
>> + long, arg4, long, arg5);
>> +int prctl(int __option, ...) {
>> + long arg2;
>> + long arg3;
>> + long arg4;
>> + long arg5;
>> + va_list ap;
>> +
>> + va_start(ap, __option);
>> + arg2 = va_arg(ap, long);
>> + arg3 = va_arg(ap, long);
>> + arg4 = va_arg(ap, long);
>> + arg5 = va_arg(ap, long);
>> + va_end(ap);
>> +
>> + return INLINE_SYSCALL(prctl, 5, __option, arg2, arg3, arg4, arg5);
>> +}
>> +#endif
>> #endif
>> diff --git a/libc/sysdeps/linux/cris/bits/uClibc_arch_features.h b/libc/sysdeps/linux/cris/bits/uClibc_arch_features.h
>> index fc14946..7c42e55 100644
>> --- a/libc/sysdeps/linux/cris/bits/uClibc_arch_features.h
>> +++ b/libc/sysdeps/linux/cris/bits/uClibc_arch_features.h
>> @@ -45,4 +45,10 @@
>> /* only weird assemblers generally need this */
>> #define __UCLIBC_ASM_LINE_SEP__ @
>>
>> +/*
>> + * define if target requires to handle varargs explicit as stated in the GNU
>> + * documentation.
>> + */
>> +#undef __UCLIBC_VARARGS_REQUIRED__
>> +
>> #endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
>> diff --git a/libc/sysdeps/linux/e1/bits/uClibc_arch_features.h b/libc/sysdeps/linux/e1/bits/uClibc_arch_features.h
>> index 2a9422e..969f7cb 100644
>> --- a/libc/sysdeps/linux/e1/bits/uClibc_arch_features.h
>> +++ b/libc/sysdeps/linux/e1/bits/uClibc_arch_features.h
>> @@ -45,4 +45,10 @@
>> /* only weird assemblers generally need this */
>> #undef __UCLIBC_ASM_LINE_SEP__
>>
>> +/*
>> + * define if target requires to handle varargs explicit as stated in the GNU
>> + * documentation.
>> + */
>> +#undef __UCLIBC_VARARGS_REQUIRED__
>> +
>> #endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
>> diff --git a/libc/sysdeps/linux/frv/bits/uClibc_arch_features.h b/libc/sysdeps/linux/frv/bits/uClibc_arch_features.h
>> index 2a9422e..969f7cb 100644
>> --- a/libc/sysdeps/linux/frv/bits/uClibc_arch_features.h
>> +++ b/libc/sysdeps/linux/frv/bits/uClibc_arch_features.h
>> @@ -45,4 +45,10 @@
>> /* only weird assemblers generally need this */
>> #undef __UCLIBC_ASM_LINE_SEP__
>>
>> +/*
>> + * define if target requires to handle varargs explicit as stated in the GNU
>> + * documentation.
>> + */
>> +#undef __UCLIBC_VARARGS_REQUIRED__
>> +
>> #endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
>> diff --git a/libc/sysdeps/linux/h8300/bits/uClibc_arch_features.h b/libc/sysdeps/linux/h8300/bits/uClibc_arch_features.h
>> index 4bab547..30da91f 100644
>> --- a/libc/sysdeps/linux/h8300/bits/uClibc_arch_features.h
>> +++ b/libc/sysdeps/linux/h8300/bits/uClibc_arch_features.h
>> @@ -45,4 +45,10 @@
>> /* only weird assemblers generally need this */
>> #undef __UCLIBC_ASM_LINE_SEP__
>>
>> +/*
>> + * define if target requires to handle varargs explicit as stated in the GNU
>> + * documentation.
>> + */
>> +#undef __UCLIBC_VARARGS_REQUIRED__
>> +
>> #endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
>> diff --git a/libc/sysdeps/linux/hppa/bits/uClibc_arch_features.h b/libc/sysdeps/linux/hppa/bits/uClibc_arch_features.h
>> index 722447d..cbb5fb0 100644
>> --- a/libc/sysdeps/linux/hppa/bits/uClibc_arch_features.h
>> +++ b/libc/sysdeps/linux/hppa/bits/uClibc_arch_features.h
>> @@ -44,4 +44,10 @@
>> /* the default ; is a comment on hppa */
>> #define __UCLIBC_ASM_LINE_SEP__ !
>>
>> +/*
>> + * define if target requires to handle varargs explicit as stated in the GNU
>> + * documentation.
>> + */
>> +#undef __UCLIBC_VARARGS_REQUIRED__
>> +
>> #endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
>> diff --git a/libc/sysdeps/linux/i386/bits/uClibc_arch_features.h b/libc/sysdeps/linux/i386/bits/uClibc_arch_features.h
>> index deeec03..c9e2242 100644
>> --- a/libc/sysdeps/linux/i386/bits/uClibc_arch_features.h
>> +++ b/libc/sysdeps/linux/i386/bits/uClibc_arch_features.h
>> @@ -45,6 +45,12 @@
>> /* only weird assemblers generally need this */
>> #undef __UCLIBC_ASM_LINE_SEP__
>>
>> +/*
>> + * define if target requires to handle varargs explicit as stated in the GNU
>> + * documentation.
>> + */
>> +#undef __UCLIBC_VARARGS_REQUIRED__
>> +
>> #if defined _LIBC
>> #define internal_function __attribute__ ((regparm (3), stdcall))
>> #endif
>> diff --git a/libc/sysdeps/linux/i960/bits/uClibc_arch_features.h b/libc/sysdeps/linux/i960/bits/uClibc_arch_features.h
>> index 0ddef34..19fadb9 100644
>> --- a/libc/sysdeps/linux/i960/bits/uClibc_arch_features.h
>> +++ b/libc/sysdeps/linux/i960/bits/uClibc_arch_features.h
>> @@ -45,4 +45,10 @@
>> /* only weird assemblers generally need this */
>> #undef __UCLIBC_ASM_LINE_SEP__
>>
>> +/*
>> + * define if target requires to handle varargs explicit as stated in the GNU
>> + * documentation.
>> + */
>> +#undef __UCLIBC_VARARGS_REQUIRED__
>> +
>> #endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
>> diff --git a/libc/sysdeps/linux/ia64/bits/uClibc_arch_features.h b/libc/sysdeps/linux/ia64/bits/uClibc_arch_features.h
>> index a3644ce..0bbf670 100644
>> --- a/libc/sysdeps/linux/ia64/bits/uClibc_arch_features.h
>> +++ b/libc/sysdeps/linux/ia64/bits/uClibc_arch_features.h
>> @@ -44,4 +44,10 @@
>> /* only weird assemblers generally need this */
>> #undef __UCLIBC_ASM_LINE_SEP__
>>
>> +/*
>> + * define if target requires to handle varargs explicit as stated in the GNU
>> + * documentation.
>> + */
>> +#undef __UCLIBC_VARARGS_REQUIRED__
>> +
>> #endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
>> diff --git a/libc/sysdeps/linux/m68k/bits/uClibc_arch_features.h b/libc/sysdeps/linux/m68k/bits/uClibc_arch_features.h
>> index 518fb39..69fa2c2 100644
>> --- a/libc/sysdeps/linux/m68k/bits/uClibc_arch_features.h
>> +++ b/libc/sysdeps/linux/m68k/bits/uClibc_arch_features.h
>> @@ -48,4 +48,10 @@
>> /* only weird assemblers generally need this */
>> #undef __UCLIBC_ASM_LINE_SEP__
>>
>> +/*
>> + * define if target requires to handle varargs explicit as stated in the GNU
>> + * documentation.
>> + */
>> +#undef __UCLIBC_VARARGS_REQUIRED__
>> +
>> #endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
>> diff --git a/libc/sysdeps/linux/microblaze/bits/uClibc_arch_features.h b/libc/sysdeps/linux/microblaze/bits/uClibc_arch_features.h
>> index 2a9422e..969f7cb 100644
>> --- a/libc/sysdeps/linux/microblaze/bits/uClibc_arch_features.h
>> +++ b/libc/sysdeps/linux/microblaze/bits/uClibc_arch_features.h
>> @@ -45,4 +45,10 @@
>> /* only weird assemblers generally need this */
>> #undef __UCLIBC_ASM_LINE_SEP__
>>
>> +/*
>> + * define if target requires to handle varargs explicit as stated in the GNU
>> + * documentation.
>> + */
>> +#undef __UCLIBC_VARARGS_REQUIRED__
>> +
>> #endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
>> diff --git a/libc/sysdeps/linux/mips/bits/uClibc_arch_features.h b/libc/sysdeps/linux/mips/bits/uClibc_arch_features.h
>> index 82f67bf..88ac2c6 100644
>> --- a/libc/sysdeps/linux/mips/bits/uClibc_arch_features.h
>> +++ b/libc/sysdeps/linux/mips/bits/uClibc_arch_features.h
>> @@ -44,4 +44,10 @@
>> /* only weird assemblers generally need this */
>> #undef __UCLIBC_ASM_LINE_SEP__
>>
>> +/*
>> + * define if target requires to handle varargs explicit as stated in the GNU
>> + * documentation.
>> + */
>> +#undef __UCLIBC_VARARGS_REQUIRED__
>> +
>> #endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
>> diff --git a/libc/sysdeps/linux/nios/bits/uClibc_arch_features.h b/libc/sysdeps/linux/nios/bits/uClibc_arch_features.h
>> index 2a9422e..969f7cb 100644
>> --- a/libc/sysdeps/linux/nios/bits/uClibc_arch_features.h
>> +++ b/libc/sysdeps/linux/nios/bits/uClibc_arch_features.h
>> @@ -45,4 +45,10 @@
>> /* only weird assemblers generally need this */
>> #undef __UCLIBC_ASM_LINE_SEP__
>>
>> +/*
>> + * define if target requires to handle varargs explicit as stated in the GNU
>> + * documentation.
>> + */
>> +#undef __UCLIBC_VARARGS_REQUIRED__
>> +
>> #endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
>> diff --git a/libc/sysdeps/linux/nios2/bits/uClibc_arch_features.h b/libc/sysdeps/linux/nios2/bits/uClibc_arch_features.h
>> index 2a9422e..969f7cb 100644
>> --- a/libc/sysdeps/linux/nios2/bits/uClibc_arch_features.h
>> +++ b/libc/sysdeps/linux/nios2/bits/uClibc_arch_features.h
>> @@ -45,4 +45,10 @@
>> /* only weird assemblers generally need this */
>> #undef __UCLIBC_ASM_LINE_SEP__
>>
>> +/*
>> + * define if target requires to handle varargs explicit as stated in the GNU
>> + * documentation.
>> + */
>> +#undef __UCLIBC_VARARGS_REQUIRED__
>> +
>> #endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
>> diff --git a/libc/sysdeps/linux/powerpc/bits/uClibc_arch_features.h b/libc/sysdeps/linux/powerpc/bits/uClibc_arch_features.h
>> index 6f1f396..f01a997 100644
>> --- a/libc/sysdeps/linux/powerpc/bits/uClibc_arch_features.h
>> +++ b/libc/sysdeps/linux/powerpc/bits/uClibc_arch_features.h
>> @@ -44,4 +44,10 @@
>> /* only weird assemblers generally need this */
>> #undef __UCLIBC_ASM_LINE_SEP__
>>
>> +/*
>> + * define if target requires to handle varargs explicit as stated in the GNU
>> + * documentation.
>> + */
>> +#undef __UCLIBC_VARARGS_REQUIRED__
>> +
>> #endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
>> diff --git a/libc/sysdeps/linux/sh/bits/uClibc_arch_features.h b/libc/sysdeps/linux/sh/bits/uClibc_arch_features.h
>> index 5e3528d..600874a 100644
>> --- a/libc/sysdeps/linux/sh/bits/uClibc_arch_features.h
>> +++ b/libc/sysdeps/linux/sh/bits/uClibc_arch_features.h
>> @@ -48,4 +48,10 @@
>> /* only weird assemblers generally need this */
>> #undef __UCLIBC_ASM_LINE_SEP__
>>
>> +/*
>> + * define if target requires to handle varargs explicit as stated in the GNU
>> + * documentation.
>> + */
>> +#undef __UCLIBC_VARARGS_REQUIRED__
>> +
>> #endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
>> diff --git a/libc/sysdeps/linux/sh64/bits/uClibc_arch_features.h b/libc/sysdeps/linux/sh64/bits/uClibc_arch_features.h
>> index 46bf23e..5cb5baf 100644
>> --- a/libc/sysdeps/linux/sh64/bits/uClibc_arch_features.h
>> +++ b/libc/sysdeps/linux/sh64/bits/uClibc_arch_features.h
>> @@ -44,4 +44,10 @@
>> /* only weird assemblers generally need this */
>> #undef __UCLIBC_ASM_LINE_SEP__
>>
>> +/*
>> + * define if target requires to handle varargs explicit as stated in the GNU
>> + * documentation.
>> + */
>> +#undef __UCLIBC_VARARGS_REQUIRED__
>> +
>> #endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
>> diff --git a/libc/sysdeps/linux/sparc/bits/uClibc_arch_features.h b/libc/sysdeps/linux/sparc/bits/uClibc_arch_features.h
>> index 1dbfa2b..6e3afac 100644
>> --- a/libc/sysdeps/linux/sparc/bits/uClibc_arch_features.h
>> +++ b/libc/sysdeps/linux/sparc/bits/uClibc_arch_features.h
>> @@ -44,4 +44,10 @@
>> /* only weird assemblers generally need this */
>> #undef __UCLIBC_ASM_LINE_SEP__
>>
>> +/*
>> + * define if target requires to handle varargs explicit as stated in the GNU
>> + * documentation.
>> + */
>> +#undef __UCLIBC_VARARGS_REQUIRED__
>> +
>> #endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
>> diff --git a/libc/sysdeps/linux/v850/bits/uClibc_arch_features.h b/libc/sysdeps/linux/v850/bits/uClibc_arch_features.h
>> index 2a9422e..969f7cb 100644
>> --- a/libc/sysdeps/linux/v850/bits/uClibc_arch_features.h
>> +++ b/libc/sysdeps/linux/v850/bits/uClibc_arch_features.h
>> @@ -45,4 +45,10 @@
>> /* only weird assemblers generally need this */
>> #undef __UCLIBC_ASM_LINE_SEP__
>>
>> +/*
>> + * define if target requires to handle varargs explicit as stated in the GNU
>> + * documentation.
>> + */
>> +#undef __UCLIBC_VARARGS_REQUIRED__
>> +
>> #endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
>> diff --git a/libc/sysdeps/linux/vax/bits/uClibc_arch_features.h b/libc/sysdeps/linux/vax/bits/uClibc_arch_features.h
>> index f9a7b39..383d60c 100644
>> --- a/libc/sysdeps/linux/vax/bits/uClibc_arch_features.h
>> +++ b/libc/sysdeps/linux/vax/bits/uClibc_arch_features.h
>> @@ -44,4 +44,10 @@
>> /* only weird assemblers generally need this */
>> #undef __UCLIBC_ASM_LINE_SEP__
>>
>> +/*
>> + * define if target requires to handle varargs explicit as stated in the GNU
>> + * documentation.
>> + */
>> +#undef __UCLIBC_VARARGS_REQUIRED__
>> +
>> #endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
>> diff --git a/libc/sysdeps/linux/x86_64/bits/uClibc_arch_features.h b/libc/sysdeps/linux/x86_64/bits/uClibc_arch_features.h
>> index 748e544..9f6532d 100644
>> --- a/libc/sysdeps/linux/x86_64/bits/uClibc_arch_features.h
>> +++ b/libc/sysdeps/linux/x86_64/bits/uClibc_arch_features.h
>> @@ -44,4 +44,10 @@
>> /* only weird assemblers generally need this */
>> #undef __UCLIBC_ASM_LINE_SEP__
>>
>> +/*
>> + * define if target requires to handle varargs explicit as stated in the GNU
>> + * documentation.
>> + */
>> +#undef __UCLIBC_VARARGS_REQUIRED__
>> +
>> #endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
>> diff --git a/libc/sysdeps/linux/xtensa/bits/uClibc_arch_features.h b/libc/sysdeps/linux/xtensa/bits/uClibc_arch_features.h
>> index fef1765..1598fc0 100644
>> --- a/libc/sysdeps/linux/xtensa/bits/uClibc_arch_features.h
>> +++ b/libc/sysdeps/linux/xtensa/bits/uClibc_arch_features.h
>> @@ -44,4 +44,10 @@
>> /* only weird assemblers generally need this */
>> #undef __UCLIBC_ASM_LINE_SEP__
>>
>> +/*
>> + * define if target requires to handle varargs explicit as stated in the GNU
>> + * documentation.
>> + */
>> +#undef __UCLIBC_VARARGS_REQUIRED__
>> +
>> #endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
>
>
Hi,
is it not easier/cleaner to provide a AVR32 specific implementation
of prctl instead of adding the arch feature as undefined for all other archs
polluting all the arch_features headers pointlessly ?
Cheers,
Carmelo
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org
iEYEARECAAYFAktLV6IACgkQoRq/3BrK1s/oiwCdFoPxhGHGoB6hmaeu6olD+bHw
60kAoOXB3lUmrLq4SbApGia6fCWj439s
=mATP
-----END PGP SIGNATURE-----
More information about the uClibc
mailing list