diff options
author | Peter Korsgaard <jacmet@sunsite.dk> | 2010-02-22 22:05:41 +0100 |
---|---|---|
committer | Peter Korsgaard <jacmet@sunsite.dk> | 2010-02-22 22:05:41 +0100 |
commit | 43ffd946ad569f3a1d0662de221cd4cb65bdc8e6 (patch) | |
tree | 51a058ab53af3fd5c3d6cbe57c1f5f3cbd9b3015 /toolchain/uClibc/uClibc-0.9.30.2-avr32-add-varargs-handling-of-prctl-syscall.patch | |
parent | c8ff60c8283b0ad116fcf43f485f199c29432c9d (diff) | |
download | buildroot-novena-43ffd946ad569f3a1d0662de221cd4cb65bdc8e6.tar.gz buildroot-novena-43ffd946ad569f3a1d0662de221cd4cb65bdc8e6.zip |
toolchain/uClibc: additional 0.9.30.2 patches
Everything on the 0_9_30 branch since the release (0.9.30.3 to be)
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Diffstat (limited to 'toolchain/uClibc/uClibc-0.9.30.2-avr32-add-varargs-handling-of-prctl-syscall.patch')
-rw-r--r-- | toolchain/uClibc/uClibc-0.9.30.2-avr32-add-varargs-handling-of-prctl-syscall.patch | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/toolchain/uClibc/uClibc-0.9.30.2-avr32-add-varargs-handling-of-prctl-syscall.patch b/toolchain/uClibc/uClibc-0.9.30.2-avr32-add-varargs-handling-of-prctl-syscall.patch new file mode 100644 index 000000000..cd228831a --- /dev/null +++ b/toolchain/uClibc/uClibc-0.9.30.2-avr32-add-varargs-handling-of-prctl-syscall.patch @@ -0,0 +1,74 @@ +From 85bc04d5436ca6c8a30a1ad28862260a04b8b3d5 Mon Sep 17 00:00:00 2001 +From: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com> +Date: Wed, 16 Dec 2009 13:16:08 +0100 +Subject: [PATCH 02/15] avr32: add varargs handling of prctl syscall + +prctl is defined to use varargs in the header file, hence it needs varargs +specific handling in the source. This patch properly handles the variodic +argument before the syscall is passed to the kernel for the AVR32 architecture. + +Signed-off-by: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com> +--- + libc/sysdeps/linux/avr32/Makefile.arch | 2 +- + libc/sysdeps/linux/avr32/prctl.c | 36 ++++++++++++++++++++++++++++++++ + 2 files changed, 37 insertions(+), 1 deletions(-) + create mode 100644 libc/sysdeps/linux/avr32/prctl.c + +diff --git a/libc/sysdeps/linux/avr32/Makefile.arch b/libc/sysdeps/linux/avr32/Makefile.arch +index bc5f625..98b85a7 100644 +--- a/libc/sysdeps/linux/avr32/Makefile.arch ++++ b/libc/sysdeps/linux/avr32/Makefile.arch +@@ -5,7 +5,7 @@ + # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. + # + +-CSRC := brk.c clone.c mmap.c sigaction.c ++CSRC := brk.c clone.c mmap.c prctl.c sigaction.c + + SSRC := __longjmp.S setjmp.S bsd-setjmp.S bsd-_setjmp.S \ + sigrestorer.S syscall.S vfork.S +diff --git a/libc/sysdeps/linux/avr32/prctl.c b/libc/sysdeps/linux/avr32/prctl.c +new file mode 100644 +index 0000000..4e146e3 +--- /dev/null ++++ b/libc/sysdeps/linux/avr32/prctl.c +@@ -0,0 +1,36 @@ ++/* ++ * prctl syscall for AVR32 Linux. ++ * ++ * Copyright (C) 2010 Atmel Corporation ++ * ++ * This file is subject to the terms and conditions of the GNU Lesser General ++ * Public License. See the file "COPYING.LIB" in the main directory of this ++ * archive for more details. ++ */ ++#include <sys/syscall.h> ++#include <sys/prctl.h> ++#include <stdarg.h> ++ ++#ifdef __NR_prctl ++#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 +-- +1.6.6.1 + |