[Armadeus-commitlog] armadeus branch, master, updated. release-3.2-151-g12e9b0f
Brought to you by:
sszy
|
From: Julien B a. A. <ar...@us...> - 2010-02-01 21:38:24
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via 12e9b0f863ec8dd53d1faebc53fa2a222889c3ac (commit)
via 17de2993729478a593bf48da6a3429cee841b188 (commit)
via 67de91dc3c66831001fa4f511e9fea63ee8b5d34 (commit)
from f93c5d282936c41b6abe64f606aa97c25645ffc4 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 12e9b0f863ec8dd53d1faebc53fa2a222889c3ac
Merge: 17de2993729478a593bf48da6a3429cee841b188 f93c5d282936c41b6abe64f606aa97c25645ffc4
Author: Julien Boibessot <jul...@ar...>
Date: Mon Feb 1 22:37:51 2010 +0100
Merge branch 'master' of ssh://artemys@armadeus.git.sourceforge.net/gitroot/armadeus/armadeus
commit 17de2993729478a593bf48da6a3429cee841b188
Author: Julien Boibessot <jul...@ar...>
Date: Mon Feb 1 22:37:31 2010 +0100
[BUILDROOT] [UCLIBC] Correct the times() system call: some return values are returned as errors but shouldn't
commit 67de91dc3c66831001fa4f511e9fea63ee8b5d34
Author: Julien Boibessot <jul...@ar...>
Date: Sun Jan 31 18:39:33 2010 +0100
[BUILDROOT] Updates APF27 default config
-----------------------------------------------------------------------
Summary of changes:
.../target/device/armadeus/apf27/apf27_defconfig | 13 +++--
...s_syscall_return_value_as_standard_errors.patch | 52 ++++++++++++++++++++
2 files changed, 59 insertions(+), 6 deletions(-)
create mode 100644 buildroot/toolchain/uClibc/uClibc-0.9.29-z-001-sysdeps-common-do_not_handle_times_syscall_return_value_as_standard_errors.patch
diff --git a/buildroot/target/device/armadeus/apf27/apf27_defconfig b/buildroot/target/device/armadeus/apf27/apf27_defconfig
index e14fc10..a7a1ece 100644
--- a/buildroot/target/device/armadeus/apf27/apf27_defconfig
+++ b/buildroot/target/device/armadeus/apf27/apf27_defconfig
@@ -1,6 +1,6 @@
#
# Automatically generated make config: don't edit
-# Thu Jan 14 09:44:51 2010
+# Sun Jan 31 18:25:35 2010
#
BR2_HAVE_DOT_CONFIG=y
BR2_VERSION="0.10.0-svn"
@@ -339,9 +339,14 @@ BR2_PACKAGE_PKGCONFIG=y
#
# Armadeus specific tools/utilities
#
+BR2_PACKAGE_AD9889CTRL=y
# BR2_PACKAGE_AS_DEVICES is not set
+# BR2_PACKAGE_CH7024CTRL is not set
# BR2_PACKAGE_ARMADEUS_DEMOS is not set
+BR2_PACKAGE_FPGAREGS=y
+BR2_PACKAGE_IMXREGS=y
# BR2_PACKAGE_IMXSSI is not set
+BR2_PACKAGE_MAX5821CTRL=y
# BR2_PACKAGE_ARMADEUS_TESTSUITE is not set
# BR2_PACKAGE_DUMMY is not set
# BR2_PACKAGE_FBTEST is not set
@@ -482,8 +487,6 @@ BR2_PACKAGE_PORTMAP=y
# BR2_PACKAGE_WEBIF is not set
BR2_PACKAGE_WIRELESS_TOOLS=y
BR2_BLOCKDEV_SUPPORT=y
-BR2_PACKAGE_AD9889CTRL=y
-# BR2_PACKAGE_CH7024CTRL is not set
#
# dbus not available (need expat or libxml2)
@@ -495,7 +498,6 @@ BR2_PACKAGE_AD9889CTRL=y
# BR2_PACKAGE_EEPROG is not set
# BR2_PACKAGE_FCONFIG is not set
# BR2_PACKAGE_FIS is not set
-BR2_PACKAGE_FPGAREGS=y
# BR2_PACKAGE_LIBFUSE is not set
# BR2_PACKAGE_GADGETFS_TEST is not set
# BR2_PACKAGE_GPM is not set
@@ -503,7 +505,6 @@ BR2_PACKAGE_FPGAREGS=y
# BR2_PACKAGE_HWDATA is not set
BR2_PACKAGE_I2C_TOOLS=y
# BR2_PACKAGE_INPUT_TOOLS is not set
-BR2_PACKAGE_IMXREGS=y
# BR2_PACKAGE_IOSTAT is not set
# BR2_PACKAGE_LCD4LINUX is not set
# BR2_PACKAGE_LIBAIO is not set
@@ -511,7 +512,6 @@ BR2_PACKAGE_IMXREGS=y
# BR2_PACKAGE_LIBUSB is not set
# BR2_PACKAGE_LM_SENSORS is not set
# BR2_PACKAGE_LVM2 is not set
-BR2_PACKAGE_MAX5821CTRL=y
# BR2_PACKAGE_MDADM is not set
# BR2_PACKAGE_MEMTESTER is not set
# BR2_PACKAGE_MKDOSFS is not set
@@ -600,6 +600,7 @@ BR2_PACKAGE_ALSA_UTILS_SPEAKER_TEST=y
BR2_PACKAGE_MPG123_ALSA=y
# BR2_PACKAGE_SPEEX is not set
# BR2_PACKAGE_FESTIVAL is not set
+# BR2_PACKAGE_FLITE is not set
BR2_GRAPHIC_SUPPORT=y
#
diff --git a/buildroot/toolchain/uClibc/uClibc-0.9.29-z-001-sysdeps-common-do_not_handle_times_syscall_return_value_as_standard_errors.patch b/buildroot/toolchain/uClibc/uClibc-0.9.29-z-001-sysdeps-common-do_not_handle_times_syscall_return_value_as_standard_errors.patch
new file mode 100644
index 0000000..e9726c9
--- /dev/null
+++ b/buildroot/toolchain/uClibc/uClibc-0.9.29-z-001-sysdeps-common-do_not_handle_times_syscall_return_value_as_standard_errors.patch
@@ -0,0 +1,52 @@
+Implements "times" syscall like on glibc: only EFAULT is considered as a valid
+error code from Linux kernel.
+To handle architectures that can't distinguish the error from a return value,
+make the application segfault in case of error (== bad struct tms parameter).
+
+Signed-off-by: Julien Boibessot <jul...@ar...>
+
+Index: uClibc-0.9.29/libc/sysdeps/linux/common/times.c
+===================================================================
+--- uClibc-0.9.29.orig/libc/sysdeps/linux/common/times.c 2010-01-27 10:15:38.000000000 +0100
++++ uClibc-0.9.29/libc/sysdeps/linux/common/times.c 2010-01-27 10:49:37.000000000 +0100
+@@ -12,5 +12,39 @@
+
+ libc_hidden_proto(times)
+
+-_syscall1(clock_t, times, struct tms *, buf);
++clock_t times(struct tms *buf)
++{
++ INTERNAL_SYSCALL_DECL (err);
++ clock_t ret = INTERNAL_SYSCALL (times, err, 1, buf);
++ if (INTERNAL_SYSCALL_ERROR_P (ret, err)
++ && __builtin_expect (INTERNAL_SYSCALL_ERRNO (ret, err) == EFAULT, 0))
++ {
++ /* This might be an error or not. For architectures which have
++ no separate return value and error indicators we cannot
++ distinguish a return value of -1 from an error. Do it the
++ hard way. We crash applications which pass in an invalid BUF
++ pointer. */
++#define touch(v) \
++ do { \
++ clock_t temp = v; \
++ asm volatile ("" : "+r" (temp)); \
++ v = temp; \
++ } while (0)
++ touch (buf->tms_utime);
++ touch (buf->tms_stime);
++ touch (buf->tms_cutime);
++ touch (buf->tms_cstime);
++
++ /* If we come here the tms struct is valid and the kernel did not
++ return an EFAULT error. Return the value given by the kernel. */
++ }
++
++ /* Return value (clock_t) -1 signals an error to userspace, but if there
++ wasn't any, return 0 instead. */
++ if (ret == (clock_t) -1)
++ return (clock_t) 0;
++
++ return ret;
++}
++
+ libc_hidden_def(times)
hooks/post-receive
--
armadeus
|