diff options
author | Timo Teräs <timo.teras@iki.fi> | 2010-06-12 12:48:02 +0300 |
---|---|---|
committer | Timo Teräs <timo.teras@iki.fi> | 2010-06-12 12:48:02 +0300 |
commit | e78111c2f02740a103083368c39df4bece60569f (patch) | |
tree | 879a7dfdede417a51ee8eb3e7b5f7b8548dbd138 | |
parent | 53ae1813e99d25570f75e77b145d6825072ef838 (diff) | |
download | aports-e78111c2f02740a103083368c39df4bece60569f.tar.bz2 aports-e78111c2f02740a103083368c39df4bece60569f.tar.xz |
main/uclibc: define O_CLOEXEC in headers only
Allows applications using O_CLOEXEC to be compiled. No changes to
uclibc library code.
-rw-r--r-- | main/uclibc/0010-define-O_CLOEXEC.patch | 295 | ||||
-rw-r--r-- | main/uclibc/APKBUILD | 4 |
2 files changed, 298 insertions, 1 deletions
diff --git a/main/uclibc/0010-define-O_CLOEXEC.patch b/main/uclibc/0010-define-O_CLOEXEC.patch new file mode 100644 index 0000000000..6db4dbbed0 --- /dev/null +++ b/main/uclibc/0010-define-O_CLOEXEC.patch @@ -0,0 +1,295 @@ +Backported from the below upstream commit by Timo Teräs. Changes +to non-header files were removed. + +From b8f1f91cc6d7b579fdb2370ab046565f9930aa09 Mon Sep 17 00:00:00 2001 +From: Mike Frysinger <vapier@gentoo.org> +Date: Wed, 7 Oct 2009 22:51:55 -0400 +Subject: [PATCH] clean up O_CLOEXEC handling + +Drop the "#ifndef O_CLOEXEC" cruft, enable O_CLOEXEC in most fcntl.h +headers, and import __ASSUME_O_CLOEXEC from glibc. + +Signed-off-by: Mike Frysinger <vapier@gentoo.org> +--- + libc/misc/dirent/opendir.c | 8 +++----- + libc/misc/utmp/utent.c | 21 ++++----------------- + libc/pwd_grp/lckpwdf.c | 8 +++----- + libc/sysdeps/linux/alpha/bits/fcntl.h | 2 -- + libc/sysdeps/linux/arm/bits/fcntl.h | 2 -- + libc/sysdeps/linux/avr32/bits/fcntl.h | 1 + + libc/sysdeps/linux/bfin/bits/fcntl.h | 2 ++ + libc/sysdeps/linux/common/bits/kernel-features.h | 8 ++++++++ + libc/sysdeps/linux/cris/bits/fcntl.h | 1 + + libc/sysdeps/linux/frv/bits/fcntl.h | 2 ++ + libc/sysdeps/linux/hppa/bits/fcntl.h | 1 + + libc/sysdeps/linux/i386/bits/fcntl.h | 2 -- + libc/sysdeps/linux/ia64/bits/fcntl.h | 2 -- + libc/sysdeps/linux/m68k/bits/fcntl.h | 1 + + libc/sysdeps/linux/microblaze/bits/fcntl.h | 2 ++ + libc/sysdeps/linux/mips/bits/fcntl.h | 1 + + libc/sysdeps/linux/powerpc/bits/fcntl.h | 2 -- + libc/sysdeps/linux/sh/bits/fcntl.h | 2 -- + libc/sysdeps/linux/sh64/bits/fcntl.h | 2 ++ + libc/sysdeps/linux/sparc/bits/fcntl.h | 2 -- + libc/sysdeps/linux/x86_64/bits/fcntl.h | 2 -- + libc/sysdeps/linux/xtensa/bits/fcntl.h | 1 + + 22 files changed, 32 insertions(+), 43 deletions(-) + +diff --git a/libc/sysdeps/linux/alpha/bits/fcntl.h b/libc/sysdeps/linux/alpha/bits/fcntl.h +index 2a6b9ea..649c563 100644 +--- a/libc/sysdeps/linux/alpha/bits/fcntl.h ++++ b/libc/sysdeps/linux/alpha/bits/fcntl.h +@@ -50,9 +50,7 @@ + # define O_NOFOLLOW 0200000 /* Do not follow links. */ + # define O_DIRECT 02000000 /* Direct disk access. */ + # define O_NOATIME 04000000 /* Do not set atime. */ +-# if 0 + # define O_CLOEXEC 010000000 /* Set close_on_exec. */ +-# endif + #endif + + #ifdef __USE_LARGEFILE64 +diff --git a/libc/sysdeps/linux/arm/bits/fcntl.h b/libc/sysdeps/linux/arm/bits/fcntl.h +index 86cea4b..7cc5a9d 100644 +--- a/libc/sysdeps/linux/arm/bits/fcntl.h ++++ b/libc/sysdeps/linux/arm/bits/fcntl.h +@@ -50,9 +50,7 @@ + # define O_NOFOLLOW 0100000 /* Do not follow links. */ + # define O_DIRECT 0200000 /* Direct disk access. */ + # define O_NOATIME 01000000 /* Do not set atime. */ +-# if 0 + # define O_CLOEXEC 02000000 /* Set close_on_exec. */ +-# endif + #endif + + /* For now Linux has synchronisity options for data and read operations. +diff --git a/libc/sysdeps/linux/avr32/bits/fcntl.h b/libc/sysdeps/linux/avr32/bits/fcntl.h +index 2301e22..767243e 100644 +--- a/libc/sysdeps/linux/avr32/bits/fcntl.h ++++ b/libc/sysdeps/linux/avr32/bits/fcntl.h +@@ -30,6 +30,7 @@ + # define O_DIRECTORY 00200000 /* direct disk access */ + # define O_NOFOLLOW 00400000 /* don't follow links */ + # define O_NOATIME 01000000 /* don't set atime */ ++# define O_CLOEXEC 02000000 /* set close_on_exec */ + #endif + + #ifdef __USE_LARGEFILE64 +diff --git a/libc/sysdeps/linux/bfin/bits/fcntl.h b/libc/sysdeps/linux/bfin/bits/fcntl.h +index 7d0bcf9..f019b71 100644 +--- a/libc/sysdeps/linux/bfin/bits/fcntl.h ++++ b/libc/sysdeps/linux/bfin/bits/fcntl.h +@@ -48,6 +48,8 @@ + # define O_DIRECTORY 040000 /* Must be a directory. */ + # define O_NOFOLLOW 0100000 /* Do not follow links. */ + # define O_DIRECT 0200000 /* Direct disk access. */ ++# define O_NOATIME 01000000 /* don't set atime */ ++# define O_CLOEXEC 02000000 /* set close_on_exec */ + #endif + + /* For now Linux has synchronisity options for data and read operations. +diff --git a/libc/sysdeps/linux/common/bits/kernel-features.h b/libc/sysdeps/linux/common/bits/kernel-features.h +index 5216d7b..8829734 100644 +--- a/libc/sysdeps/linux/common/bits/kernel-features.h ++++ b/libc/sysdeps/linux/common/bits/kernel-features.h +@@ -70,6 +70,14 @@ + # define __ASSUME_GETDENTS32_D_TYPE 1 + #endif + ++/* Support for various CLOEXEC and NONBLOCK flags was added for x86, ++ x86-64, PPC, IA-64, SPARC< and S390 in 2.6.23. */ ++#if __LINUX_KERNEL_VERSION >= 0x020617 \ ++ && (defined __i386__ || defined __x86_64__ || defined __powerpc__ \ ++ || defined __ia64__ || defined __sparc__ || defined __s390__) ++# define __ASSUME_O_CLOEXEC 1 ++#endif ++ + /* These features were surely available with 2.4.12. */ + #if __LINUX_KERNEL_VERSION >= 132108 && defined __mc68000__ + # define __ASSUME_MMAP2_SYSCALL 1 +diff --git a/libc/sysdeps/linux/cris/bits/fcntl.h b/libc/sysdeps/linux/cris/bits/fcntl.h +index a2106ef..29443ba 100644 +--- a/libc/sysdeps/linux/cris/bits/fcntl.h ++++ b/libc/sysdeps/linux/cris/bits/fcntl.h +@@ -50,6 +50,7 @@ + # define O_DIRECTORY 0200000 /* Must be a directory. */ + # define O_NOFOLLOW 0400000 /* Do not follow links. */ + # define O_NOATIME 01000000 /* Do not set atime. */ ++# define O_CLOEXEC 02000000 /* set close_on_exec */ + #endif + + /* For now Linux has synchronisity options for data and read operations. +diff --git a/libc/sysdeps/linux/frv/bits/fcntl.h b/libc/sysdeps/linux/frv/bits/fcntl.h +index 06e8860..d437175 100644 +--- a/libc/sysdeps/linux/frv/bits/fcntl.h ++++ b/libc/sysdeps/linux/frv/bits/fcntl.h +@@ -45,6 +45,8 @@ + # define O_DIRECT 040000 /* Direct disk access. */ + # define O_DIRECTORY 0200000 /* Must be a directory. */ + # define O_NOFOLLOW 0400000 /* Do not follow links. */ ++# define O_NOATIME 01000000 /* don't set atime */ ++# define O_CLOEXEC 02000000 /* set close_on_exec */ + #endif + + /* For now Linux has synchronisity options for data and read operations. +diff --git a/libc/sysdeps/linux/hppa/bits/fcntl.h b/libc/sysdeps/linux/hppa/bits/fcntl.h +index cc23bf8..86e3b6f 100644 +--- a/libc/sysdeps/linux/hppa/bits/fcntl.h ++++ b/libc/sysdeps/linux/hppa/bits/fcntl.h +@@ -50,6 +50,7 @@ + # define O_DIRECTORY 00010000 /* Must be a directory. */ + # define O_NOFOLLOW 00000200 /* Do not follow links. */ + # define O_NOATIME 04000000 /* Do not set atime. */ ++# define O_CLOEXEC 010000000 /* set close_on_exec */ + #endif + + #ifdef __USE_LARGEFILE64 +diff --git a/libc/sysdeps/linux/i386/bits/fcntl.h b/libc/sysdeps/linux/i386/bits/fcntl.h +index 7f0b552..22e073b 100644 +--- a/libc/sysdeps/linux/i386/bits/fcntl.h ++++ b/libc/sysdeps/linux/i386/bits/fcntl.h +@@ -50,9 +50,7 @@ + # define O_DIRECTORY 0200000 /* Must be a directory. */ + # define O_NOFOLLOW 0400000 /* Do not follow links. */ + # define O_NOATIME 01000000 /* Do not set atime. */ +-# if 0 + # define O_CLOEXEC 02000000 /* Set close_on_exec. */ +-# endif + #endif + + /* For now Linux has synchronisity options for data and read operations. +diff --git a/libc/sysdeps/linux/ia64/bits/fcntl.h b/libc/sysdeps/linux/ia64/bits/fcntl.h +index d134c4b..85a55f6 100644 +--- a/libc/sysdeps/linux/ia64/bits/fcntl.h ++++ b/libc/sysdeps/linux/ia64/bits/fcntl.h +@@ -49,9 +49,7 @@ + # define O_DIRECTORY 0200000 /* must be a directory */ + # define O_NOFOLLOW 0400000 /* don't follow links */ + # define O_NOATIME 01000000 /* Do not set atime. */ +-# if 0 + # define O_CLOEXEC 02000000 /* Set close_on_exec. */ +-# endif + #endif + + #ifdef __USE_LARGEFILE64 +diff --git a/libc/sysdeps/linux/m68k/bits/fcntl.h b/libc/sysdeps/linux/m68k/bits/fcntl.h +index d36198d..e564b42 100644 +--- a/libc/sysdeps/linux/m68k/bits/fcntl.h ++++ b/libc/sysdeps/linux/m68k/bits/fcntl.h +@@ -49,6 +49,7 @@ + # define O_NOFOLLOW 0100000 /* Do not follow links. */ + # define O_DIRECT 0200000 /* Direct disk access. */ + # define O_NOATIME 01000000 /* Do not set atime. */ ++# define O_CLOEXEC 02000000 /* set close_on_exec */ + #endif + + /* For now Linux has synchronisity options for data and read operations. +diff --git a/libc/sysdeps/linux/microblaze/bits/fcntl.h b/libc/sysdeps/linux/microblaze/bits/fcntl.h +index c8aeb91..bb6727a 100644 +--- a/libc/sysdeps/linux/microblaze/bits/fcntl.h ++++ b/libc/sysdeps/linux/microblaze/bits/fcntl.h +@@ -45,6 +45,8 @@ + # define O_DIRECTORY 040000 /* Must be a directory. */ + # define O_NOFOLLOW 0100000 /* Do not follow links. */ + # define O_DIRECT 0200000 /* Direct disk access. */ ++# define O_NOATIME 01000000 /* Do not set atime. */ ++# define O_CLOEXEC 02000000 /* set close_on_exec */ + #endif + + /* For now Linux has synchronisity options for data and read operations. +diff --git a/libc/sysdeps/linux/mips/bits/fcntl.h b/libc/sysdeps/linux/mips/bits/fcntl.h +index ef015a4..f0072fd 100644 +--- a/libc/sysdeps/linux/mips/bits/fcntl.h ++++ b/libc/sysdeps/linux/mips/bits/fcntl.h +@@ -51,6 +51,7 @@ + # define O_DIRECT 0x8000 /* Direct disk access hint. */ + # define O_DIRECTORY 0x10000 /* Must be a directory. */ + # define O_NOATIME 0x40000 /* Do not set atime. */ ++# define O_CLOEXEC 02000000 /* set close_on_exec */ + #endif + + /* For now Linux has no synchronisity options for data and read operations. +diff --git a/libc/sysdeps/linux/powerpc/bits/fcntl.h b/libc/sysdeps/linux/powerpc/bits/fcntl.h +index ceb75b4..0759c6a 100644 +--- a/libc/sysdeps/linux/powerpc/bits/fcntl.h ++++ b/libc/sysdeps/linux/powerpc/bits/fcntl.h +@@ -50,9 +50,7 @@ + # define O_DIRECTORY 040000 /* Must be a directory. */ + # define O_NOFOLLOW 0100000 /* Do not follow links. */ + # define O_NOATIME 01000000 /* Do not set atime. */ +-# if 0 + # define O_CLOEXEC 02000000 /* Set close_on_exec. */ +-# endif + #endif + + #ifdef __USE_LARGEFILE64 +diff --git a/libc/sysdeps/linux/sh/bits/fcntl.h b/libc/sysdeps/linux/sh/bits/fcntl.h +index 570484c..adb7377 100644 +--- a/libc/sysdeps/linux/sh/bits/fcntl.h ++++ b/libc/sysdeps/linux/sh/bits/fcntl.h +@@ -50,9 +50,7 @@ + # define O_DIRECTORY 0200000 /* Must be a directory. */ + # define O_NOFOLLOW 0400000 /* Do not follow links. */ + # define O_NOATIME 01000000 /* Do not set atime. */ +-# if 0 + # define O_CLOEXEC 02000000 /* Set close_on_exec. */ +-# endif + #endif + + /* For now Linux has synchronisity options for data and read operations. +diff --git a/libc/sysdeps/linux/sh64/bits/fcntl.h b/libc/sysdeps/linux/sh64/bits/fcntl.h +index 06e8860..156df97 100644 +--- a/libc/sysdeps/linux/sh64/bits/fcntl.h ++++ b/libc/sysdeps/linux/sh64/bits/fcntl.h +@@ -45,6 +45,8 @@ + # define O_DIRECT 040000 /* Direct disk access. */ + # define O_DIRECTORY 0200000 /* Must be a directory. */ + # define O_NOFOLLOW 0400000 /* Do not follow links. */ ++# define O_NOATIME 01000000 /* Do not set atime. */ ++# define O_CLOEXEC 02000000 /* set close_on_exec */ + #endif + + /* For now Linux has synchronisity options for data and read operations. +diff --git a/libc/sysdeps/linux/sparc/bits/fcntl.h b/libc/sysdeps/linux/sparc/bits/fcntl.h +index 29c09a9..31a6d9b 100644 +--- a/libc/sysdeps/linux/sparc/bits/fcntl.h ++++ b/libc/sysdeps/linux/sparc/bits/fcntl.h +@@ -49,9 +49,7 @@ + # define O_NOFOLLOW 0x20000 /* don't follow links */ + # define O_DIRECT 0x100000 /* direct disk access hint */ + # define O_NOATIME 0x200000 /* Do not set atime. */ +-# if 0 + # define O_CLOEXEC 0x400000 /* Set close_on_exit. */ +-# endif + #endif + + #ifdef __USE_LARGEFILE64 +diff --git a/libc/sysdeps/linux/x86_64/bits/fcntl.h b/libc/sysdeps/linux/x86_64/bits/fcntl.h +index be00e4a..f1cf388 100644 +--- a/libc/sysdeps/linux/x86_64/bits/fcntl.h ++++ b/libc/sysdeps/linux/x86_64/bits/fcntl.h +@@ -50,9 +50,7 @@ + # define O_DIRECTORY 0200000 /* Must be a directory. */ + # define O_NOFOLLOW 0400000 /* Do not follow links. */ + # define O_NOATIME 01000000 /* Do not set atime. */ +-# if 0 + # define O_CLOEXEC 02000000 /* Set close_on_exec. */ +-# endif + #endif + + /* For now Linux has synchronisity options for data and read operations. +diff --git a/libc/sysdeps/linux/xtensa/bits/fcntl.h b/libc/sysdeps/linux/xtensa/bits/fcntl.h +index a89362e..921a626 100644 +--- a/libc/sysdeps/linux/xtensa/bits/fcntl.h ++++ b/libc/sysdeps/linux/xtensa/bits/fcntl.h +@@ -50,6 +50,7 @@ + # define O_DIRECTORY 0200000 /* Must be a directory. */ + # define O_NOFOLLOW 0400000 /* Do not follow links. */ + # define O_NOATIME 01000000 /* Do not set atime. */ ++# define O_CLOEXEC 02000000 /* set close_on_exec */ + #endif + + /* For now Linux has synchronisity options for data and read operations. +-- +1.7.0.4 + diff --git a/main/uclibc/APKBUILD b/main/uclibc/APKBUILD index 72b5648b3b..7fc953d773 100644 --- a/main/uclibc/APKBUILD +++ b/main/uclibc/APKBUILD @@ -1,7 +1,7 @@ # Maintainer: Natanael Copa <ncopa@alpinelinux.org> pkgname=uclibc pkgver=0.9.30.2 -pkgrel=2 +pkgrel=3 pkgdesc="C library for developing embedded Linux systems" url=http://uclibc.org license="LGPL-2" @@ -25,6 +25,7 @@ source="http://uclibc.org/downloads/$_mynamever.tar.bz2 0007-Unbreak-build-for-sparc-on-some-config-s.patch 0008-malloc-fix-race-condition-and-other-bugs-in-the-no-m.patch 0009-libm-enable-log2f-and-exp2f.patch + 0010-define-O_CLOEXEC.patch uclibc-linuxthreads-init-stdio.patch pthread-new-aliasing-fix.diff @@ -79,6 +80,7 @@ c78e19855a8a83f07855fe82ceaf9d21 0006-fstatat-fix-up-behavior-on-32-64-bit-host d20abc16e2ce8579f77e42271008ff07 0007-Unbreak-build-for-sparc-on-some-config-s.patch 2438e999b21cfaf823139df05d06dd33 0008-malloc-fix-race-condition-and-other-bugs-in-the-no-m.patch 0b2ed68cbd2e4bb2941155bdb1f0f9b0 0009-libm-enable-log2f-and-exp2f.patch +85b0c69f3810bd067efd709b5682b150 0010-define-O_CLOEXEC.patch 152bd508303e110e660fa7935411b6df uclibc-linuxthreads-init-stdio.patch 969187e1da84d0a0a5957b392a3d5a2b pthread-new-aliasing-fix.diff bbb8475963e791f596c34c81ef5583d7 uclibc-resolv-cname-fix.diff |