Commit 0a40d019 authored by Thomas Petazzoni's avatar Thomas Petazzoni Committed by Peter Korsgaard
Browse files

uclibc: remove 0.9.33 version



The upstream project is dead, the 0.9.33 version requires tons of
patches, and uclibc-ng has now successfully replaced uclibc. It is
time to get rid of the 0.9.33 version.

Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: default avatarPeter Korsgaard <peter@korsgaard.com>
parent 1a222542
Loading
Loading
Loading
Loading
+0 −37
Original line number Diff line number Diff line
From bb08cd16cb0353b3d4116ca8959dbecd2e78f545 Mon Sep 17 00:00:00 2001
From: Peter Korsgaard <jacmet@sunsite.dk>
Date: Tue, 3 Jul 2012 15:54:57 +0200
Subject: [PATCH 1/8] bits/time.h: sync with glibc 2.16

CLOCK_MONOTONIC_RAW is available since 2.6.28
(2d42244ae71d: clocksource: introduce CLOCK_MONOTONIC_RAW), and
CLOCK_*_COARSE since 2.6.32 (da15cfdae033: time: Introduce
CLOCK_REALTIME_COARSE).

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 libc/sysdeps/linux/common/bits/time.h | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/libc/sysdeps/linux/common/bits/time.h b/libc/sysdeps/linux/common/bits/time.h
index 7ed54bf..c871223 100644
--- a/libc/sysdeps/linux/common/bits/time.h
+++ b/libc/sysdeps/linux/common/bits/time.h
@@ -54,6 +54,12 @@
 #   define CLOCK_PROCESS_CPUTIME_ID	2
 /* Thread-specific CPU-time clock.  */
 #   define CLOCK_THREAD_CPUTIME_ID	3
+/* Monotonic system-wide clock, not adjusted for frequency scaling.  */
+#   define CLOCK_MONOTONIC_RAW		4
+/* Identifier for system-wide realtime clock, updated only on ticks.  */
+#   define CLOCK_REALTIME_COARSE	5
+/* Monotonic system-wide clock, updated only on ticks.  */
+#   define CLOCK_MONOTONIC_COARSE	6
 
 /* Flag to indicate time is absolute.  */
 #   define TIMER_ABSTIME		1
-- 
1.8.1.2
+0 −54
Original line number Diff line number Diff line
From 518bc50ae42540574bba360225c8a65b56b79148 Mon Sep 17 00:00:00 2001
From: Jonas Bonn <jonas@southpole.se>
Date: Tue, 6 Sep 2011 10:30:40 +0200
Subject: [PATCH 3/8] Add dup3 syscall

Signed-off-by: Jonas Bonn <jonas@southpole.se>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 include/unistd.h                 |  4 ++++
 libc/sysdeps/linux/common/dup3.c | 17 +++++++++++++++++
 2 files changed, 21 insertions(+)
 create mode 100644 libc/sysdeps/linux/common/dup3.c

diff --git a/include/unistd.h b/include/unistd.h
index 1b2fd4d..f7d070b 100644
--- a/include/unistd.h
+++ b/include/unistd.h
@@ -513,6 +513,10 @@ extern int dup (int __fd) __THROW __wur;
 extern int dup2 (int __fd, int __fd2) __THROW;
 libc_hidden_proto(dup2)
 
+/* Duplicate FD to FD2, closing FD2 and making it open on the same file.  */
+extern int dup3 (int __fd, int __fd2, int __flags) __THROW;
+libc_hidden_proto(dup3)
+
 /* NULL-terminated array of "NAME=VALUE" environment variables.  */
 extern char **__environ;
 #ifdef __USE_GNU
diff --git a/libc/sysdeps/linux/common/dup3.c b/libc/sysdeps/linux/common/dup3.c
new file mode 100644
index 0000000..7b57438
--- /dev/null
+++ b/libc/sysdeps/linux/common/dup3.c
@@ -0,0 +1,17 @@
+/* vi: set sw=4 ts=4: */
+/*
+ * dup3() for uClibc
+ *
+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
+ *
+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
+ */
+
+#include <sys/syscall.h>
+#include <unistd.h>
+
+
+#ifdef __NR_dup3
+_syscall3(int, dup3, int, oldfd, int, newfd, int, flags)
+libc_hidden_def(dup3)
+#endif
-- 
1.8.1.2
+0 −381
Original line number Diff line number Diff line
From 7fef6b983456e4c529a5239ea90715050e6f4452 Mon Sep 17 00:00:00 2001
From: Chris Packham <chris.packham@alliedtelesis.co.nz>
Date: Mon, 1 Oct 2012 18:12:54 +1300
Subject: [PATCH 4/8] libc/sysdeps: add __kernel_long and __kernel_ulong

Linux 3.4 added __kernel_long_t and __kernel_ulong_t and various
exported header files were updated to use these new types. Add the
definitions for __kernel_long_t and __kernel_ulong_t to the relevant
kernel_types.h headers.

This change was automated with the following scriptlet

  git grep --name-only 'typedef.*__kernel_old_dev_t' \
    | xargs sed -i '/typedef.*__kernel_old_dev_t/ a\
  typedef long\t\t__kernel_long_t;\
  typedef unsigned long\t__kernel_ulong_t;'

Whitespace in arm, hppa, sparc was then manually fixed up.

Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
[yann.morin.1998@free.fr: remove avr32 bits, now Buildroot no longer
 supports it]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
--
Here's a cleaned up patch which should get the whitespace right. I'm a
bit iffy about the sparc changes they make sense to me but it's not a
platform I have access to.

I can break this up per arch or per maintainer if requested.

 libc/sysdeps/linux/alpha/bits/kernel_types.h      |    2 ++
 libc/sysdeps/linux/arm/bits/kernel_types.h        |    2 ++
 libc/sysdeps/linux/bfin/bits/kernel_types.h       |    2 ++
 libc/sysdeps/linux/c6x/bits/kernel_types.h        |    2 ++
 libc/sysdeps/linux/cris/bits/kernel_types.h       |    2 ++
 libc/sysdeps/linux/e1/bits/kernel_types.h         |    2 ++
 libc/sysdeps/linux/h8300/bits/kernel_types.h      |    2 ++
 libc/sysdeps/linux/hppa/bits/kernel_types.h       |    2 ++
 libc/sysdeps/linux/i386/bits/kernel_types.h       |    2 ++
 libc/sysdeps/linux/ia64/bits/kernel_types.h       |    2 ++
 libc/sysdeps/linux/m68k/bits/kernel_types.h       |    2 ++
 libc/sysdeps/linux/microblaze/bits/kernel_types.h |    2 ++
 libc/sysdeps/linux/mips/bits/kernel_types.h       |    4 ++++
 libc/sysdeps/linux/nios2/bits/kernel_types.h      |    2 ++
 libc/sysdeps/linux/powerpc/bits/kernel_types.h    |    4 ++++
 libc/sysdeps/linux/sh/bits/kernel_types.h         |    2 ++
 libc/sysdeps/linux/sh64/bits/kernel_types.h       |    2 ++
 libc/sysdeps/linux/sparc/bits/kernel_types.h      |    4 ++++
 libc/sysdeps/linux/v850/bits/kernel_types.h       |    2 ++
 libc/sysdeps/linux/x86_64/bits/kernel_types.h     |    2 ++
 libc/sysdeps/linux/xtensa/bits/kernel_types.h     |    2 ++
 22 files changed, 50 insertions(+)
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 libc/sysdeps/linux/alpha/bits/kernel_types.h      | 2 ++
 libc/sysdeps/linux/arm/bits/kernel_types.h        | 2 ++
 libc/sysdeps/linux/bfin/bits/kernel_types.h       | 2 ++
 libc/sysdeps/linux/c6x/bits/kernel_types.h        | 2 ++
 libc/sysdeps/linux/cris/bits/kernel_types.h       | 2 ++
 libc/sysdeps/linux/e1/bits/kernel_types.h         | 2 ++
 libc/sysdeps/linux/h8300/bits/kernel_types.h      | 2 ++
 libc/sysdeps/linux/hppa/bits/kernel_types.h       | 2 ++
 libc/sysdeps/linux/i386/bits/kernel_types.h       | 2 ++
 libc/sysdeps/linux/ia64/bits/kernel_types.h       | 2 ++
 libc/sysdeps/linux/m68k/bits/kernel_types.h       | 2 ++
 libc/sysdeps/linux/microblaze/bits/kernel_types.h | 2 ++
 libc/sysdeps/linux/mips/bits/kernel_types.h       | 4 ++++
 libc/sysdeps/linux/nios2/bits/kernel_types.h      | 2 ++
 libc/sysdeps/linux/powerpc/bits/kernel_types.h    | 4 ++++
 libc/sysdeps/linux/sh/bits/kernel_types.h         | 2 ++
 libc/sysdeps/linux/sh64/bits/kernel_types.h       | 2 ++
 libc/sysdeps/linux/sparc/bits/kernel_types.h      | 4 ++++
 libc/sysdeps/linux/v850/bits/kernel_types.h       | 2 ++
 libc/sysdeps/linux/x86_64/bits/kernel_types.h     | 2 ++
 libc/sysdeps/linux/xtensa/bits/kernel_types.h     | 2 ++
 22 files changed, 50 insertions(+)

diff --git a/libc/sysdeps/linux/alpha/bits/kernel_types.h b/libc/sysdeps/linux/alpha/bits/kernel_types.h
index d5574c9..cd59b9d 100644
--- a/libc/sysdeps/linux/alpha/bits/kernel_types.h
+++ b/libc/sysdeps/linux/alpha/bits/kernel_types.h
@@ -33,6 +33,8 @@ typedef __kernel_gid_t __kernel_old_gid_t;
 typedef __kernel_uid_t __kernel_uid32_t;
 typedef __kernel_gid_t __kernel_gid32_t;
 typedef __kernel_dev_t __kernel_old_dev_t;
+typedef long		__kernel_long_t;
+typedef unsigned long	__kernel_ulong_t;
 
 typedef struct {
 	int val[2];
diff --git a/libc/sysdeps/linux/arm/bits/kernel_types.h b/libc/sysdeps/linux/arm/bits/kernel_types.h
index 766a306..6b36f32 100644
--- a/libc/sysdeps/linux/arm/bits/kernel_types.h
+++ b/libc/sysdeps/linux/arm/bits/kernel_types.h
@@ -32,6 +32,8 @@ typedef unsigned short		__kernel_old_uid_t;
 typedef unsigned short		__kernel_old_gid_t;
 typedef long long		__kernel_loff_t;
 typedef __kernel_dev_t		__kernel_old_dev_t;
+typedef long			__kernel_long_t;
+typedef unsigned long		__kernel_ulong_t;
 
 typedef struct {
 #ifdef __USE_ALL
diff --git a/libc/sysdeps/linux/bfin/bits/kernel_types.h b/libc/sysdeps/linux/bfin/bits/kernel_types.h
index d69a875..9fec595 100644
--- a/libc/sysdeps/linux/bfin/bits/kernel_types.h
+++ b/libc/sysdeps/linux/bfin/bits/kernel_types.h
@@ -32,6 +32,8 @@ typedef unsigned short	__kernel_old_uid_t;
 typedef unsigned short	__kernel_old_gid_t;
 typedef long long	__kernel_loff_t;
 typedef __kernel_dev_t	__kernel_old_dev_t;
+typedef long		__kernel_long_t;
+typedef unsigned long	__kernel_ulong_t;
 
 typedef struct {
 #ifdef __USE_ALL
diff --git a/libc/sysdeps/linux/c6x/bits/kernel_types.h b/libc/sysdeps/linux/c6x/bits/kernel_types.h
index 7557309..2c363a8 100644
--- a/libc/sysdeps/linux/c6x/bits/kernel_types.h
+++ b/libc/sysdeps/linux/c6x/bits/kernel_types.h
@@ -22,6 +22,8 @@ typedef unsigned int	__kernel_gid32_t;
 typedef unsigned int	__kernel_old_uid_t;
 typedef unsigned int	__kernel_old_gid_t;
 typedef unsigned int	__kernel_old_dev_t;
+typedef long		__kernel_long_t;
+typedef unsigned long	__kernel_ulong_t;
 typedef unsigned int	__kernel_size_t;
 typedef int		__kernel_ssize_t;
 typedef int		__kernel_ptrdiff_t;
diff --git a/libc/sysdeps/linux/cris/bits/kernel_types.h b/libc/sysdeps/linux/cris/bits/kernel_types.h
index f122c7f..5d31f7b 100644
--- a/libc/sysdeps/linux/cris/bits/kernel_types.h
+++ b/libc/sysdeps/linux/cris/bits/kernel_types.h
@@ -28,6 +28,8 @@ typedef unsigned int    __kernel_gid32_t;
 typedef unsigned short  __kernel_old_uid_t;
 typedef unsigned short  __kernel_old_gid_t;
 typedef __kernel_dev_t	__kernel_old_dev_t;
+typedef long		__kernel_long_t;
+typedef unsigned long	__kernel_ulong_t;
 
 #ifdef __GNUC__
 typedef long long	__kernel_loff_t;
diff --git a/libc/sysdeps/linux/e1/bits/kernel_types.h b/libc/sysdeps/linux/e1/bits/kernel_types.h
index 8017d85..f55a129 100644
--- a/libc/sysdeps/linux/e1/bits/kernel_types.h
+++ b/libc/sysdeps/linux/e1/bits/kernel_types.h
@@ -31,6 +31,8 @@ typedef unsigned int	__kernel_gid32_t;
 typedef unsigned short	__kernel_old_uid_t;
 typedef unsigned short	__kernel_old_gid_t;
 typedef __kernel_dev_t	__kernel_old_dev_t;
+typedef long		__kernel_long_t;
+typedef unsigned long	__kernel_ulong_t;
 typedef long long	__kernel_loff_t;
 
 /*
diff --git a/libc/sysdeps/linux/h8300/bits/kernel_types.h b/libc/sysdeps/linux/h8300/bits/kernel_types.h
index 0570675..4cfd1bf 100644
--- a/libc/sysdeps/linux/h8300/bits/kernel_types.h
+++ b/libc/sysdeps/linux/h8300/bits/kernel_types.h
@@ -32,6 +32,8 @@ typedef unsigned short	__kernel_old_uid_t;
 typedef unsigned short	__kernel_old_gid_t;
 typedef long long	__kernel_loff_t;
 typedef __kernel_dev_t	__kernel_old_dev_t;
+typedef long		__kernel_long_t;
+typedef unsigned long	__kernel_ulong_t;
 
 typedef struct {
 #ifdef __USE_ALL
diff --git a/libc/sysdeps/linux/hppa/bits/kernel_types.h b/libc/sysdeps/linux/hppa/bits/kernel_types.h
index 4441f9b..6b2e794 100644
--- a/libc/sysdeps/linux/hppa/bits/kernel_types.h
+++ b/libc/sysdeps/linux/hppa/bits/kernel_types.h
@@ -45,6 +45,8 @@ typedef long long		__kernel_off64_t;
 typedef unsigned long long	__kernel_ino64_t;
 
 typedef unsigned int		__kernel_old_dev_t;
+typedef long			__kernel_long_t;
+typedef unsigned long		__kernel_ulong_t;
 
 typedef struct {
 #ifdef __USE_ALL
diff --git a/libc/sysdeps/linux/i386/bits/kernel_types.h b/libc/sysdeps/linux/i386/bits/kernel_types.h
index 9c07c72..59044b8 100644
--- a/libc/sysdeps/linux/i386/bits/kernel_types.h
+++ b/libc/sysdeps/linux/i386/bits/kernel_types.h
@@ -40,6 +40,8 @@ typedef unsigned int	__kernel_gid32_t;
 typedef unsigned short	__kernel_old_uid_t;
 typedef unsigned short	__kernel_old_gid_t;
 typedef __kernel_dev_t	__kernel_old_dev_t;
+typedef long		__kernel_long_t;
+typedef unsigned long	__kernel_ulong_t;
 typedef long long	__kernel_loff_t;
 
 typedef struct {
diff --git a/libc/sysdeps/linux/ia64/bits/kernel_types.h b/libc/sysdeps/linux/ia64/bits/kernel_types.h
index c8ef86d..e31dc65 100644
--- a/libc/sysdeps/linux/ia64/bits/kernel_types.h
+++ b/libc/sysdeps/linux/ia64/bits/kernel_types.h
@@ -52,5 +52,7 @@ typedef __kernel_gid_t __kernel_gid32_t;
 
 typedef unsigned int	__kernel_dev_t;
 typedef unsigned int	__kernel_old_dev_t;
+typedef long		__kernel_long_t;
+typedef unsigned long	__kernel_ulong_t;
 
 #endif /* _ASM_IA64_POSIX_TYPES_H */
diff --git a/libc/sysdeps/linux/m68k/bits/kernel_types.h b/libc/sysdeps/linux/m68k/bits/kernel_types.h
index 0a77a8f..176b968 100644
--- a/libc/sysdeps/linux/m68k/bits/kernel_types.h
+++ b/libc/sysdeps/linux/m68k/bits/kernel_types.h
@@ -32,6 +32,8 @@ typedef unsigned short	__kernel_old_uid_t;
 typedef unsigned short	__kernel_old_gid_t;
 typedef long long	__kernel_loff_t;
 typedef __kernel_dev_t	__kernel_old_dev_t;
+typedef long		__kernel_long_t;
+typedef unsigned long	__kernel_ulong_t;
 
 typedef struct {
 #ifdef __USE_ALL
diff --git a/libc/sysdeps/linux/microblaze/bits/kernel_types.h b/libc/sysdeps/linux/microblaze/bits/kernel_types.h
index 2a70575..a9f736b 100644
--- a/libc/sysdeps/linux/microblaze/bits/kernel_types.h
+++ b/libc/sysdeps/linux/microblaze/bits/kernel_types.h
@@ -44,6 +44,8 @@ typedef unsigned int	__kernel_gid32_t;
 typedef unsigned int	__kernel_old_uid_t;
 typedef unsigned int	__kernel_old_gid_t;
 typedef unsigned int	__kernel_old_dev_t;
+typedef long		__kernel_long_t;
+typedef unsigned long	__kernel_ulong_t;
 
 #ifdef __GNUC__
 typedef long long	__kernel_loff_t;
diff --git a/libc/sysdeps/linux/mips/bits/kernel_types.h b/libc/sysdeps/linux/mips/bits/kernel_types.h
index 9fc3b96..97faeac 100644
--- a/libc/sysdeps/linux/mips/bits/kernel_types.h
+++ b/libc/sysdeps/linux/mips/bits/kernel_types.h
@@ -32,6 +32,8 @@ typedef int		__kernel_gid32_t;
 typedef __kernel_uid_t	__kernel_old_uid_t;
 typedef __kernel_gid_t	__kernel_old_gid_t;
 typedef __kernel_dev_t	__kernel_old_dev_t;
+typedef long		__kernel_long_t;
+typedef unsigned long	__kernel_ulong_t;
 typedef long long      __kernel_loff_t;
 #else
 typedef unsigned int	__kernel_dev_t;
@@ -68,6 +70,8 @@ typedef int		__kernel_gid32_t;
 typedef __kernel_uid_t	__kernel_old_uid_t;
 typedef __kernel_gid_t	__kernel_old_gid_t;
 typedef __kernel_dev_t	__kernel_old_dev_t;
+typedef long		__kernel_long_t;
+typedef unsigned long	__kernel_ulong_t;
 typedef long long      __kernel_loff_t;
 #endif
 
diff --git a/libc/sysdeps/linux/nios2/bits/kernel_types.h b/libc/sysdeps/linux/nios2/bits/kernel_types.h
index 8b86d79..3c030e7 100644
--- a/libc/sysdeps/linux/nios2/bits/kernel_types.h
+++ b/libc/sysdeps/linux/nios2/bits/kernel_types.h
@@ -31,6 +31,8 @@ typedef unsigned int	__kernel_gid32_t;
 typedef unsigned short	__kernel_old_uid_t;
 typedef unsigned short	__kernel_old_gid_t;
 typedef unsigned short	__kernel_old_dev_t;
+typedef long		__kernel_long_t;
+typedef unsigned long	__kernel_ulong_t;
 typedef long long	__kernel_loff_t;
 
 typedef struct {
diff --git a/libc/sysdeps/linux/powerpc/bits/kernel_types.h b/libc/sysdeps/linux/powerpc/bits/kernel_types.h
index 3f3b933..1167de2 100644
--- a/libc/sysdeps/linux/powerpc/bits/kernel_types.h
+++ b/libc/sysdeps/linux/powerpc/bits/kernel_types.h
@@ -36,6 +36,8 @@ typedef unsigned int	__kernel_gid32_t;
 typedef unsigned int	__kernel_old_uid_t;
 typedef unsigned int	__kernel_old_gid_t;
 typedef __kernel_dev_t	__kernel_old_dev_t;
+typedef long		__kernel_long_t;
+typedef unsigned long	__kernel_ulong_t;
 #else
 typedef unsigned int	__kernel_dev_t;
 typedef unsigned int	__kernel_ino_t;
@@ -61,6 +63,8 @@ typedef unsigned int	__kernel_gid32_t;
 typedef unsigned int	__kernel_old_uid_t;
 typedef unsigned int	__kernel_old_gid_t;
 typedef __kernel_dev_t	__kernel_old_dev_t;
+typedef long		__kernel_long_t;
+typedef unsigned long	__kernel_ulong_t;
 typedef long long	__kernel_loff_t;
 #endif
 
diff --git a/libc/sysdeps/linux/sh/bits/kernel_types.h b/libc/sysdeps/linux/sh/bits/kernel_types.h
index f96e9fa..ac97261 100644
--- a/libc/sysdeps/linux/sh/bits/kernel_types.h
+++ b/libc/sysdeps/linux/sh/bits/kernel_types.h
@@ -32,6 +32,8 @@ typedef unsigned int	__kernel_gid32_t;
 typedef unsigned short	__kernel_old_uid_t;
 typedef unsigned short	__kernel_old_gid_t;
 typedef __kernel_dev_t	__kernel_old_dev_t;
+typedef long		__kernel_long_t;
+typedef unsigned long	__kernel_ulong_t;
 typedef long long	__kernel_loff_t;
 
 typedef struct {
diff --git a/libc/sysdeps/linux/sh64/bits/kernel_types.h b/libc/sysdeps/linux/sh64/bits/kernel_types.h
index 671cc83..8cc6c61 100644
--- a/libc/sysdeps/linux/sh64/bits/kernel_types.h
+++ b/libc/sysdeps/linux/sh64/bits/kernel_types.h
@@ -43,6 +43,8 @@ typedef unsigned int    __kernel_gid32_t;
 typedef unsigned short  __kernel_old_uid_t;
 typedef unsigned short  __kernel_old_gid_t;
 typedef __kernel_dev_t	__kernel_old_dev_t;
+typedef long		__kernel_long_t;
+typedef unsigned long	__kernel_ulong_t;
 typedef long long       __kernel_loff_t;
 
 typedef struct {
diff --git a/libc/sysdeps/linux/sparc/bits/kernel_types.h b/libc/sysdeps/linux/sparc/bits/kernel_types.h
index 0cc4bc2..a10e075 100644
--- a/libc/sysdeps/linux/sparc/bits/kernel_types.h
+++ b/libc/sysdeps/linux/sparc/bits/kernel_types.h
@@ -32,6 +32,8 @@ typedef unsigned short	       __kernel_gid16_t;
 typedef __kernel_uid_t 	       __kernel_old_uid_t;
 typedef __kernel_gid_t         __kernel_old_gid_t;
 typedef __kernel_dev_t         __kernel_old_dev_t;
+typedef long                   __kernel_long_t;
+typedef unsigned long          __kernel_ulong_t;
 typedef __kernel_uid_t	       __kernel_uid32_t;
 typedef __kernel_gid_t	       __kernel_gid32_t;
 typedef int		       __kernel_suseconds_t;
@@ -62,6 +64,8 @@ typedef unsigned int	       __kernel_gid32_t;
 typedef unsigned short	       __kernel_old_uid_t;
 typedef unsigned short	       __kernel_old_gid_t;
 typedef __kernel_dev_t         __kernel_old_dev_t;
+typedef long                   __kernel_long_t;
+typedef unsigned long          __kernel_ulong_t;
 typedef long long              __kernel_loff_t;
 #endif
 
diff --git a/libc/sysdeps/linux/v850/bits/kernel_types.h b/libc/sysdeps/linux/v850/bits/kernel_types.h
index 3e851ab..780aa8a 100644
--- a/libc/sysdeps/linux/v850/bits/kernel_types.h
+++ b/libc/sysdeps/linux/v850/bits/kernel_types.h
@@ -41,6 +41,8 @@ typedef unsigned int	__kernel_gid32_t;
 typedef unsigned short	__kernel_old_uid_t;
 typedef unsigned short	__kernel_old_gid_t;
 typedef __kernel_dev_t	__kernel_old_dev_t;
+typedef long		__kernel_long_t;
+typedef unsigned long	__kernel_ulong_t;
 
 typedef struct {
 #ifdef __USE_ALL
diff --git a/libc/sysdeps/linux/x86_64/bits/kernel_types.h b/libc/sysdeps/linux/x86_64/bits/kernel_types.h
index de800d7..0cae08c 100644
--- a/libc/sysdeps/linux/x86_64/bits/kernel_types.h
+++ b/libc/sysdeps/linux/x86_64/bits/kernel_types.h
@@ -40,6 +40,8 @@ typedef unsigned int	__kernel_gid32_t;
 typedef unsigned short	__kernel_old_uid_t;
 typedef unsigned short	__kernel_old_gid_t;
 typedef __kernel_dev_t	__kernel_old_dev_t;
+typedef long		__kernel_long_t;
+typedef unsigned long	__kernel_ulong_t;
 typedef long long	__kernel_loff_t;
 
 typedef struct {
diff --git a/libc/sysdeps/linux/xtensa/bits/kernel_types.h b/libc/sysdeps/linux/xtensa/bits/kernel_types.h
index 44f1075..ed38f2e 100644
--- a/libc/sysdeps/linux/xtensa/bits/kernel_types.h
+++ b/libc/sysdeps/linux/xtensa/bits/kernel_types.h
@@ -33,6 +33,8 @@ typedef unsigned int	__kernel_gid32_t;
 typedef unsigned short	__kernel_old_uid_t;
 typedef unsigned short	__kernel_old_gid_t;
 typedef unsigned short	__kernel_old_dev_t;
+typedef long		__kernel_long_t;
+typedef unsigned long	__kernel_ulong_t;
 typedef long long	__kernel_loff_t;
 
 /* Beginning in 2.6 kernels, which is the first version that includes the
-- 
1.8.1.2
+0 −42
Original line number Diff line number Diff line
From 963671276c0ef14458e0a7990107bcd2c075f3cd Mon Sep 17 00:00:00 2001
From: Filippo Arcidiacono <filippo.arcidiacono@st.com>
Date: Mon, 10 Dec 2012 09:50:52 +0100
Subject: [PATCH 6/8] arm: clone: restore stack pointer just after return from
 syscall

If the syscall returns with an error the stack pointer and r4 register
are not restored because the instruction 'ldmnefd sp!, {r4}' is executed
after branching to '__error' label.
This bug has been spotted out by running './utstest clone 5' from LTP
built with -fstack-protector-all compiler flag as log below:

root@cortex-a9:/usr/tests/ltp/testcases/bin# ./utstest clone 5
stack smashing detected: ./utstest terminated()

Regression introduced by commit e58798e107d652644629a1daaa95d76430808d53

Signed-off-by: Filippo Arcidiacono <filippo.arcidiacono@st.com>
Signed-off-by: Giuseppe Di Giore <giuseppe.di-giore@st.com>
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 libc/sysdeps/linux/arm/clone.S | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libc/sysdeps/linux/arm/clone.S b/libc/sysdeps/linux/arm/clone.S
index fdc05b8..e4101ba 100644
--- a/libc/sysdeps/linux/arm/clone.S
+++ b/libc/sysdeps/linux/arm/clone.S
@@ -111,8 +111,8 @@ __clone:
 	ldr	r4, [sp, #12]
 	DO_CALL (clone)
 	movs	a1, a1
-	blt	__error
 	ldmnefd	sp!, {r4}
+	blt	__error
 	IT(t, ne)
 #if defined(__USE_BX__)
 	bxne	lr
-- 
1.8.1.2
+0 −29
Original line number Diff line number Diff line
From c12211a2f1832169e31063512b3e2081e503e856 Mon Sep 17 00:00:00 2001
From: Will Newton <will.newton@linaro.org>
Date: Tue, 2 Apr 2013 13:53:35 +0100
Subject: [PATCH 7/8] arm/clone.S: Add missing IT instruction for Thumb2.

The conditional load needs to be made part of an IT block on Thumb2
cores.

Signed-off-by: Will Newton <will.newton@linaro.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 libc/sysdeps/linux/arm/clone.S | 1 +
 1 file changed, 1 insertion(+)

diff --git a/libc/sysdeps/linux/arm/clone.S b/libc/sysdeps/linux/arm/clone.S
index e4101ba..1f7f09d 100644
--- a/libc/sysdeps/linux/arm/clone.S
+++ b/libc/sysdeps/linux/arm/clone.S
@@ -111,6 +111,7 @@ __clone:
 	ldr	r4, [sp, #12]
 	DO_CALL (clone)
 	movs	a1, a1
+	IT(t, ne)
 	ldmnefd	sp!, {r4}
 	blt	__error
 	IT(t, ne)
-- 
1.8.1.2
Loading