diff options
| author | Khem Raj <raj.khem@gmail.com> | 2015-10-16 00:50:20 -0700 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-10-27 07:24:26 +0000 |
| commit | 73e1d33cf10b06c882f6f1d152e615e698431a49 (patch) | |
| tree | 4c104d7205e91c6ef76c093f7f3384143654b7eb | |
| parent | 2e4575d2e87022eee3262279df0c53f7733b52ef (diff) | |
| download | poky-73e1d33cf10b06c882f6f1d152e615e698431a49.tar.gz | |
uclibc: Implement syncfs and AT_EMPTY_PATH for all and O_PATH for arm
needed for systemd 225 to compile with uclibc
Change-Id: Id5f990edf4a773de49742f9f9ea5139e55e21f69
(From OE-Core rev: 5c515a1c7a86c510b6ae4f99c5b2e20d52622543)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
3 files changed, 93 insertions, 0 deletions
diff --git a/meta/recipes-core/uclibc/uclibc-git.inc b/meta/recipes-core/uclibc/uclibc-git.inc index 9e3d64408c..dcb616d0d2 100644 --- a/meta/recipes-core/uclibc/uclibc-git.inc +++ b/meta/recipes-core/uclibc/uclibc-git.inc | |||
| @@ -17,5 +17,7 @@ SRC_URI = "git://uclibc.org/uClibc.git;branch=master \ | |||
| 17 | file://0006-ldso-limited-support-for-ORIGIN-in-rpath.patch \ | 17 | file://0006-ldso-limited-support-for-ORIGIN-in-rpath.patch \ |
| 18 | file://0007-nptl-atfork-Hide-pthread_atfork-in-shared-versions.patch \ | 18 | file://0007-nptl-atfork-Hide-pthread_atfork-in-shared-versions.patch \ |
| 19 | file://0001-gcc5-optimizes-away-the-write-only-static-functions-.patch \ | 19 | file://0001-gcc5-optimizes-away-the-write-only-static-functions-.patch \ |
| 20 | file://0001-fcntl-Add-AT_EMPTY_PATH-for-all-and-O_PATH-for-arm.patch \ | ||
| 21 | file://0001-wire-in-syncfs.patch \ | ||
| 20 | " | 22 | " |
| 21 | S = "${WORKDIR}/git" | 23 | S = "${WORKDIR}/git" |
diff --git a/meta/recipes-core/uclibc/uclibc-git/0001-fcntl-Add-AT_EMPTY_PATH-for-all-and-O_PATH-for-arm.patch b/meta/recipes-core/uclibc/uclibc-git/0001-fcntl-Add-AT_EMPTY_PATH-for-all-and-O_PATH-for-arm.patch new file mode 100644 index 0000000000..6942db4624 --- /dev/null +++ b/meta/recipes-core/uclibc/uclibc-git/0001-fcntl-Add-AT_EMPTY_PATH-for-all-and-O_PATH-for-arm.patch | |||
| @@ -0,0 +1,42 @@ | |||
| 1 | From 4c8f5fe7d41493e8e181941ae5a01713155f44d1 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Khem Raj <raj.khem@gmail.com> | ||
| 3 | Date: Thu, 15 Oct 2015 15:34:39 +0000 | ||
| 4 | Subject: [PATCH] fcntl: Add AT_EMPTY_PATH for all and O_PATH for arm | ||
| 5 | |||
| 6 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
| 7 | --- | ||
| 8 | Upstream-Status: Pending | ||
| 9 | |||
| 10 | include/fcntl.h | 3 +++ | ||
| 11 | libc/sysdeps/linux/arm/bits/fcntl.h | 1 + | ||
| 12 | 2 files changed, 4 insertions(+) | ||
| 13 | |||
| 14 | diff --git a/include/fcntl.h b/include/fcntl.h | ||
| 15 | index 11000dd..8a7ad9b 100644 | ||
| 16 | --- a/include/fcntl.h | ||
| 17 | +++ b/include/fcntl.h | ||
| 18 | @@ -65,6 +65,9 @@ __BEGIN_DECLS | ||
| 19 | # define AT_SYMLINK_FOLLOW 0x400 /* Follow symbolic links. */ | ||
| 20 | # define AT_EACCESS 0x200 /* Test access permitted for | ||
| 21 | effective IDs, not real IDs. */ | ||
| 22 | +# ifdef __USE_GNU | ||
| 23 | +# define AT_EMPTY_PATH 0x1000 /* Allow empty relative pathname. */ | ||
| 24 | +# endif | ||
| 25 | #endif | ||
| 26 | |||
| 27 | /* Do the file control operation described by CMD on FD. | ||
| 28 | diff --git a/libc/sysdeps/linux/arm/bits/fcntl.h b/libc/sysdeps/linux/arm/bits/fcntl.h | ||
| 29 | index aedc154..c6ba958 100644 | ||
| 30 | --- a/libc/sysdeps/linux/arm/bits/fcntl.h | ||
| 31 | +++ b/libc/sysdeps/linux/arm/bits/fcntl.h | ||
| 32 | @@ -50,6 +50,7 @@ | ||
| 33 | # define O_DIRECT 0200000 /* Direct disk access. */ | ||
| 34 | # define O_NOATIME 01000000 /* Do not set atime. */ | ||
| 35 | # define O_CLOEXEC 02000000 /* Set close_on_exec. */ | ||
| 36 | +# define O_PATH 010000000 /* Resolve pathname but do not open file. */ | ||
| 37 | #endif | ||
| 38 | |||
| 39 | /* For now Linux has synchronisity options for data and read operations. | ||
| 40 | -- | ||
| 41 | 2.6.1 | ||
| 42 | |||
diff --git a/meta/recipes-core/uclibc/uclibc-git/0001-wire-in-syncfs.patch b/meta/recipes-core/uclibc/uclibc-git/0001-wire-in-syncfs.patch new file mode 100644 index 0000000000..079ad6b3b4 --- /dev/null +++ b/meta/recipes-core/uclibc/uclibc-git/0001-wire-in-syncfs.patch | |||
| @@ -0,0 +1,49 @@ | |||
| 1 | From 4f2db1b46bda5e376245ec36198b137709f069e8 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Khem Raj <raj.khem@gmail.com> | ||
| 3 | Date: Thu, 15 Oct 2015 17:03:37 +0000 | ||
| 4 | Subject: [PATCH] wire in syncfs | ||
| 5 | |||
| 6 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
| 7 | --- | ||
| 8 | Upstream-Status: Pending | ||
| 9 | |||
| 10 | include/unistd.h | 2 +- | ||
| 11 | libc/sysdeps/linux/common/syncfs.c | 13 +++++++++++++ | ||
| 12 | 2 files changed, 14 insertions(+), 1 deletion(-) | ||
| 13 | create mode 100644 libc/sysdeps/linux/common/syncfs.c | ||
| 14 | |||
| 15 | diff --git a/include/unistd.h b/include/unistd.h | ||
| 16 | index 3793d2d..d01bb08 100644 | ||
| 17 | --- a/include/unistd.h | ||
| 18 | +++ b/include/unistd.h | ||
| 19 | @@ -1073,7 +1073,7 @@ extern char *getpass (const char *__prompt) __nonnull ((1)); | ||
| 20 | extern int fsync (int __fd); | ||
| 21 | #endif /* Use BSD || X/Open || Unix98. */ | ||
| 22 | |||
| 23 | -#if 0 /*def __USE_GNU */ | ||
| 24 | +#ifdef __USE_GNU | ||
| 25 | /* Make all changes done to all files on the file system associated | ||
| 26 | * with FD actually appear on disk. */ | ||
| 27 | extern int syncfs (int __fd) __THROW; | ||
| 28 | diff --git a/libc/sysdeps/linux/common/syncfs.c b/libc/sysdeps/linux/common/syncfs.c | ||
| 29 | new file mode 100644 | ||
| 30 | index 0000000..d2eed05 | ||
| 31 | --- /dev/null | ||
| 32 | +++ b/libc/sysdeps/linux/common/syncfs.c | ||
| 33 | @@ -0,0 +1,13 @@ | ||
| 34 | +/* vi: set sw=4 ts=4: */ | ||
| 35 | +/* | ||
| 36 | + * fsync() for uClibc | ||
| 37 | + * | ||
| 38 | + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org> | ||
| 39 | + * | ||
| 40 | + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. | ||
| 41 | + */ | ||
| 42 | + | ||
| 43 | +#include <sys/syscall.h> | ||
| 44 | +#include <unistd.h> | ||
| 45 | + | ||
| 46 | +_syscall1(int, syncfs, int, fd) | ||
| 47 | -- | ||
| 48 | 2.6.1 | ||
| 49 | |||
