diff options
author | Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> | 2010-02-28 10:50:15 (GMT) |
---|---|---|
committer | Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> | 2010-02-28 10:50:15 (GMT) |
commit | ca9b06fbe64f25f0b983cb1ddd85962cfbf38a17 (patch) | |
tree | b8c29195cd9f7d1b316690bf21c8a4b0fc5fac2b /patches/uClibc/0.9.30.2/190-avr32-add-varargs-handling-of-prctl-syscall.patch | |
parent | 6d53a561b2a482c1ae1de24310e0bffe490861df (diff) |
libc/uClibc: vampirise patches for 0.9.30.2 from builroot
Commit in upstream buildroot:
http://git.buildroot.org/buildroot/commit/?id=43ffd946ad569f3a1d0662de221cd4cb65bdc8e6
Everything on the 0_9_30 branch since the release (0.9.30.3 to be)
Diffstat (limited to 'patches/uClibc/0.9.30.2/190-avr32-add-varargs-handling-of-prctl-syscall.patch')
-rw-r--r-- | patches/uClibc/0.9.30.2/190-avr32-add-varargs-handling-of-prctl-syscall.patch | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/patches/uClibc/0.9.30.2/190-avr32-add-varargs-handling-of-prctl-syscall.patch b/patches/uClibc/0.9.30.2/190-avr32-add-varargs-handling-of-prctl-syscall.patch new file mode 100644 index 0000000..cd22883 --- /dev/null +++ b/patches/uClibc/0.9.30.2/190-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 + |