* [master/jethro][PATCH 0/9] uclibc fixes
@ 2015-10-16 7:59 Khem Raj
2015-10-16 7:59 ` [PATCH 1/9] rpcbind: Fix build with uclibc Khem Raj
` (8 more replies)
0 siblings, 9 replies; 10+ messages in thread
From: Khem Raj @ 2015-10-16 7:59 UTC (permalink / raw)
To: openembedded-core
These are fixes to uclibc and other packages to rebuild them on uclibc
this patchset will be useful on jethro as well, so this is a pull request for
both master and jethro
The following changes since commit d294da632a11024de69f091be71b71a1b2acacd9:
kern-tools: temp. test patch resume fix (2015-10-15 12:38:24 -0700)
are available in the git repository at:
git://github.com/kraj/openembedded-core uclibc_fixes
https://github.com/kraj/openembedded-core/tree/uclibc_fixes
Khem Raj (9):
rpcbind: Fix build with uclibc
libtirpc: Refresh uclibc patches
uclibc: Fix build with gcc5
coreutils-6.9: Add missing dependency on virtual/libiconv
coreutils: Do not use host paths in getloadavg.m4
libpam: Fix build with uclibc
libtirpc: Fix a bug exposed by uclibc
systemd: Fix build with uclibc
uclibc: Implement syncfs and AT_EMPTY_PATH for all and O_PATH for arm
.../coreutils/coreutils-6.9/loadavg.patch | 18 ++
meta/recipes-core/coreutils/coreutils_6.9.bb | 2 +
.../systemd/0001-fix-build-on-uClibc-exp10.patch | 22 ++
...nv-when-secure-versions-are-not-available.patch | 39 ++++
meta/recipes-core/systemd/systemd_225.bb | 2 +
meta/recipes-core/uclibc/uclibc-git.inc | 3 +
...-AT_EMPTY_PATH-for-all-and-O_PATH-for-arm.patch | 42 ++++
...zes-away-the-write-only-static-functions-.patch | 51 +++++
.../uclibc/uclibc-git/0001-wire-in-syncfs.patch | 49 +++++
.../libtirpc/libtirpc/remove-des-uclibc.patch | 22 +-
.../libtirpc/libtirpc/va_list.patch | 18 ++
meta/recipes-extended/libtirpc/libtirpc_0.2.5.bb | 4 +-
meta/recipes-extended/pam/libpam/use-utmpx.patch | 233 +++++++++++++++++++++
meta/recipes-extended/pam/libpam_1.2.1.bb | 4 +-
.../rpcbind/rpcbind/0001-uclibc-nss.patch | 30 ---
meta/recipes-extended/rpcbind/rpcbind_0.2.3.bb | 2 -
16 files changed, 496 insertions(+), 45 deletions(-)
create mode 100644 meta/recipes-core/coreutils/coreutils-6.9/loadavg.patch
create mode 100644 meta/recipes-core/systemd/systemd/0001-fix-build-on-uClibc-exp10.patch
create mode 100644 meta/recipes-core/systemd/systemd/0022-Use-getenv-when-secure-versions-are-not-available.patch
create mode 100644 meta/recipes-core/uclibc/uclibc-git/0001-fcntl-Add-AT_EMPTY_PATH-for-all-and-O_PATH-for-arm.patch
create mode 100644 meta/recipes-core/uclibc/uclibc-git/0001-gcc5-optimizes-away-the-write-only-static-functions-.patch
create mode 100644 meta/recipes-core/uclibc/uclibc-git/0001-wire-in-syncfs.patch
create mode 100644 meta/recipes-extended/libtirpc/libtirpc/va_list.patch
create mode 100644 meta/recipes-extended/pam/libpam/use-utmpx.patch
delete mode 100644 meta/recipes-extended/rpcbind/rpcbind/0001-uclibc-nss.patch
--
2.6.1
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 1/9] rpcbind: Fix build with uclibc
2015-10-16 7:59 [master/jethro][PATCH 0/9] uclibc fixes Khem Raj
@ 2015-10-16 7:59 ` Khem Raj
2015-10-16 7:59 ` [PATCH 2/9] libtirpc: Refresh uclibc patches Khem Raj
` (7 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Khem Raj @ 2015-10-16 7:59 UTC (permalink / raw)
To: openembedded-core
The 0001-uclibc-nss.patch has been applied upstream
in a bit different way but solves the issue at hand
Change-Id: I7312d109d01c08338d4673383e2eaccee219b7bd
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
.../rpcbind/rpcbind/0001-uclibc-nss.patch | 30 ----------------------
meta/recipes-extended/rpcbind/rpcbind_0.2.3.bb | 2 --
2 files changed, 32 deletions(-)
delete mode 100644 meta/recipes-extended/rpcbind/rpcbind/0001-uclibc-nss.patch
diff --git a/meta/recipes-extended/rpcbind/rpcbind/0001-uclibc-nss.patch b/meta/recipes-extended/rpcbind/rpcbind/0001-uclibc-nss.patch
deleted file mode 100644
index afa55f3..0000000
--- a/meta/recipes-extended/rpcbind/rpcbind/0001-uclibc-nss.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-Upstream-Status: Pending
-
-From b8f0d7b7318ba344c25785d6f5cf3f8de98012d4 Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Tue, 2 Feb 2010 09:36:03 +0000
-Subject: [PATCH 1/2] uclibc-nss
-
----
- src/rpcbind.c | 4 ++++
- 1 files changed, 4 insertions(+), 0 deletions(-)
-
-diff --git a/src/rpcbind.c b/src/rpcbind.c
-index 525ffba..1fe1a60 100644
---- a/src/rpcbind.c
-+++ b/src/rpcbind.c
-@@ -67,7 +67,11 @@
- #include <pwd.h>
- #include <string.h>
- #include <errno.h>
-+#if defined(__UCLIBC__)
-+#define __nss_configure_lookup(x,y)
-+#else
- #include <nss.h>
-+#endif
- #include "config.h"
- #include "rpcbind.h"
-
---
-1.6.6.1
-
diff --git a/meta/recipes-extended/rpcbind/rpcbind_0.2.3.bb b/meta/recipes-extended/rpcbind/rpcbind_0.2.3.bb
index 3336021..237018b 100644
--- a/meta/recipes-extended/rpcbind/rpcbind_0.2.3.bb
+++ b/meta/recipes-extended/rpcbind/rpcbind_0.2.3.bb
@@ -22,8 +22,6 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/rpcbind/rpcbind-${PV}.tar.bz2 \
"
MUSLPATCHES_libc-musl = "file://musl-sunrpc.patch"
-UCLIBCPATCHES_libc-uclibc = "file://0001-uclibc-nss.patch \
- "
UCLIBCPATCHES ?= ""
MUSLPATCHES ?= ""
--
2.6.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 2/9] libtirpc: Refresh uclibc patches
2015-10-16 7:59 [master/jethro][PATCH 0/9] uclibc fixes Khem Raj
2015-10-16 7:59 ` [PATCH 1/9] rpcbind: Fix build with uclibc Khem Raj
@ 2015-10-16 7:59 ` Khem Raj
2015-10-16 7:59 ` [PATCH 3/9] uclibc: Fix build with gcc5 Khem Raj
` (6 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Khem Raj @ 2015-10-16 7:59 UTC (permalink / raw)
To: openembedded-core
patch fails to apply otherwise
Change-Id: Ic16912e6e0e8ba75253a4aa0b357b91cabefbf5c
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
.../libtirpc/libtirpc/remove-des-uclibc.patch | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/meta/recipes-extended/libtirpc/libtirpc/remove-des-uclibc.patch b/meta/recipes-extended/libtirpc/libtirpc/remove-des-uclibc.patch
index d003348..553b1ff 100644
--- a/meta/recipes-extended/libtirpc/libtirpc/remove-des-uclibc.patch
+++ b/meta/recipes-extended/libtirpc/libtirpc/remove-des-uclibc.patch
@@ -3,11 +3,11 @@ uclibc does not provide des functionality unlike eglibc so lets disable ssl supp
Upstream-Status: Inappropriate [uclibc specific]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Index: libtirpc-0.2.3/src/rpc_soc.c
+Index: libtirpc-0.2.5/src/rpc_soc.c
===================================================================
---- libtirpc-0.2.3.orig/src/rpc_soc.c 2013-03-10 16:00:51.355282153 -0700
-+++ libtirpc-0.2.3/src/rpc_soc.c 2013-03-10 16:00:51.703282148 -0700
-@@ -520,6 +520,7 @@
+--- libtirpc-0.2.5.orig/src/rpc_soc.c
++++ libtirpc-0.2.5/src/rpc_soc.c
+@@ -520,6 +520,7 @@ clnt_broadcast(prog, vers, proc, xargs,
(resultproc_t) rpc_wrap_bcast, "udp");
}
@@ -15,7 +15,7 @@ Index: libtirpc-0.2.3/src/rpc_soc.c
/*
* Create the client des authentication object. Obsoleted by
* authdes_seccreate().
-@@ -551,6 +552,7 @@
+@@ -551,6 +552,7 @@ fallback:
dummy = authdes_seccreate(servername, window, NULL, ckey);
return (dummy);
}
@@ -23,16 +23,16 @@ Index: libtirpc-0.2.3/src/rpc_soc.c
/*
* Create a client handle for a unix connection. Obsoleted by clnt_vc_create()
-Index: libtirpc-0.2.3/src/Makefile.am
+Index: libtirpc-0.2.5/src/Makefile.am
===================================================================
---- libtirpc-0.2.3.orig/src/Makefile.am 2013-03-10 16:00:51.355282153 -0700
-+++ libtirpc-0.2.3/src/Makefile.am 2013-03-10 16:00:51.703282148 -0700
-@@ -50,7 +50,7 @@
+--- libtirpc-0.2.5.orig/src/Makefile.am
++++ libtirpc-0.2.5/src/Makefile.am
+@@ -51,7 +51,7 @@ libtirpc_la_SOURCES = auth_none.c auth_u
rpc_callmsg.c rpc_generic.c rpc_soc.c rpcb_clnt.c rpcb_prot.c \
rpcb_st_xdr.c svc.c svc_auth.c svc_dg.c svc_auth_unix.c svc_auth_none.c \
svc_generic.c svc_raw.c svc_run.c svc_simple.c svc_vc.c getpeereid.c \
-- auth_time.c auth_des.c authdes_prot.c
-+ auth_time.c
+- auth_time.c auth_des.c authdes_prot.c debug.c
++ auth_time.c debug.c
## XDR
libtirpc_la_SOURCES += xdr.c xdr_rec.c xdr_array.c xdr_float.c xdr_mem.c xdr_reference.c xdr_stdio.c
--
2.6.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 3/9] uclibc: Fix build with gcc5
2015-10-16 7:59 [master/jethro][PATCH 0/9] uclibc fixes Khem Raj
2015-10-16 7:59 ` [PATCH 1/9] rpcbind: Fix build with uclibc Khem Raj
2015-10-16 7:59 ` [PATCH 2/9] libtirpc: Refresh uclibc patches Khem Raj
@ 2015-10-16 7:59 ` Khem Raj
2015-10-16 7:59 ` [PATCH 4/9] coreutils-6.9: Add missing dependency on virtual/libiconv Khem Raj
` (5 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Khem Raj @ 2015-10-16 7:59 UTC (permalink / raw)
To: openembedded-core
An agressive optimization in gcc5 meant that we get linking errors
with uclibc build, this patch fixes the issue by letting gcc know
that these funcitons are used.
Change-Id: I8ecf3999a0855b3bbf4bc2df576be5351f9be5b0
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
meta/recipes-core/uclibc/uclibc-git.inc | 1 +
...zes-away-the-write-only-static-functions-.patch | 51 ++++++++++++++++++++++
2 files changed, 52 insertions(+)
create mode 100644 meta/recipes-core/uclibc/uclibc-git/0001-gcc5-optimizes-away-the-write-only-static-functions-.patch
diff --git a/meta/recipes-core/uclibc/uclibc-git.inc b/meta/recipes-core/uclibc/uclibc-git.inc
index 14a577f..9e3d644 100644
--- a/meta/recipes-core/uclibc/uclibc-git.inc
+++ b/meta/recipes-core/uclibc/uclibc-git.inc
@@ -16,5 +16,6 @@ SRC_URI = "git://uclibc.org/uClibc.git;branch=master \
file://0005-Always-use-O2-for-compiling-fork.c.patch \
file://0006-ldso-limited-support-for-ORIGIN-in-rpath.patch \
file://0007-nptl-atfork-Hide-pthread_atfork-in-shared-versions.patch \
+ file://0001-gcc5-optimizes-away-the-write-only-static-functions-.patch \
"
S = "${WORKDIR}/git"
diff --git a/meta/recipes-core/uclibc/uclibc-git/0001-gcc5-optimizes-away-the-write-only-static-functions-.patch b/meta/recipes-core/uclibc/uclibc-git/0001-gcc5-optimizes-away-the-write-only-static-functions-.patch
new file mode 100644
index 0000000..e622f87
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-git/0001-gcc5-optimizes-away-the-write-only-static-functions-.patch
@@ -0,0 +1,51 @@
+From 2659fb25d32f4b29c1c96aa5730fe40e19d53ab0 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 14 Oct 2015 17:38:37 -0700
+Subject: [PATCH] gcc5 optimizes away the write only static functions and we
+ end up with
+
+ librt/librt_so.a(rt-unwind-resume.oS): In function `_Unwind_Resume':
+ rt-unwind-resume.c:(.text+0x3c): undefined reference to `libgcc_s_resume'
+ collect2: error: ld returned 1 exit status
+ make[2]: *** [lib/librt.so] Error 1
+
+marking these functions explicitly used with __attribute_used__ avoids
+that optimization.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c | 2 +-
+ libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-resume.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c b/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c
+index f4d6f41..0c2edd7 100644
+--- a/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c
++++ b/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c
+@@ -27,7 +27,7 @@
+ #define __libc_fatal(x) {/*write(STDERR_FILENO, x, strlen(x));*/ abort();}
+
+ static void *libgcc_s_handle;
+-static void (*libgcc_s_resume) (struct _Unwind_Exception *exc);
++static void (*libgcc_s_resume) (struct _Unwind_Exception *exc) __attribute_used__;
+ static _Unwind_Reason_Code (*libgcc_s_personality)
+ (_Unwind_State, struct _Unwind_Exception *, struct _Unwind_Context *);
+ static _Unwind_Reason_Code (*libgcc_s_forcedunwind)
+diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-resume.c b/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-resume.c
+index f9a4ffb..f0c3047 100644
+--- a/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-resume.c
++++ b/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-resume.c
+@@ -25,7 +25,7 @@
+ #define __libc_dlclose dlclose
+ #define __libc_fatal(x) {/*write(STDERR_FILENO, x, strlen(x));*/ abort();}
+
+-static void (*libgcc_s_resume) (struct _Unwind_Exception *exc);
++static void (*libgcc_s_resume) (struct _Unwind_Exception *exc) __attribute_used__;
+ static _Unwind_Reason_Code (*libgcc_s_personality)
+ (_Unwind_State, struct _Unwind_Exception *, struct _Unwind_Context *);
+
+--
+2.6.1
+
--
2.6.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 4/9] coreutils-6.9: Add missing dependency on virtual/libiconv
2015-10-16 7:59 [master/jethro][PATCH 0/9] uclibc fixes Khem Raj
` (2 preceding siblings ...)
2015-10-16 7:59 ` [PATCH 3/9] uclibc: Fix build with gcc5 Khem Raj
@ 2015-10-16 7:59 ` Khem Raj
2015-10-16 7:59 ` [PATCH 5/9] coreutils: Do not use host paths in getloadavg.m4 Khem Raj
` (4 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Khem Raj @ 2015-10-16 7:59 UTC (permalink / raw)
To: openembedded-core
Surfaces on uclibc where libiconv is not coming from libc but from
separate package.
Change-Id: I8eef52a69d2b6830deff94531631ca098bce2a89
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
meta/recipes-core/coreutils/coreutils_6.9.bb | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta/recipes-core/coreutils/coreutils_6.9.bb b/meta/recipes-core/coreutils/coreutils_6.9.bb
index 4ff1d50..8d5b96d 100644
--- a/meta/recipes-core/coreutils/coreutils_6.9.bb
+++ b/meta/recipes-core/coreutils/coreutils_6.9.bb
@@ -9,6 +9,7 @@ LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
file://src/ls.c;beginline=4;endline=16;md5=15ed60f67b1db5fedd5dbc37cf8a9543"
PR = "r5"
+DEPENDS = "virtual/libiconv"
inherit autotools gettext texinfo
--
2.6.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 5/9] coreutils: Do not use host paths in getloadavg.m4
2015-10-16 7:59 [master/jethro][PATCH 0/9] uclibc fixes Khem Raj
` (3 preceding siblings ...)
2015-10-16 7:59 ` [PATCH 4/9] coreutils-6.9: Add missing dependency on virtual/libiconv Khem Raj
@ 2015-10-16 7:59 ` Khem Raj
2015-10-16 8:00 ` [PATCH 6/9] libpam: Fix build with uclibc Khem Raj
` (3 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Khem Raj @ 2015-10-16 7:59 UTC (permalink / raw)
To: openembedded-core
helps configure QA pass when building for uclibc
Change-Id: I42e9542829bc3678ee777d0a8768aecdf77eaead
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
.../recipes-core/coreutils/coreutils-6.9/loadavg.patch | 18 ++++++++++++++++++
meta/recipes-core/coreutils/coreutils_6.9.bb | 1 +
2 files changed, 19 insertions(+)
create mode 100644 meta/recipes-core/coreutils/coreutils-6.9/loadavg.patch
diff --git a/meta/recipes-core/coreutils/coreutils-6.9/loadavg.patch b/meta/recipes-core/coreutils/coreutils-6.9/loadavg.patch
new file mode 100644
index 0000000..c72efd4
--- /dev/null
+++ b/meta/recipes-core/coreutils/coreutils-6.9/loadavg.patch
@@ -0,0 +1,18 @@
+Remove hardcoded paths so OE's configure QA does not detect it and fail the builds
+For cross compilation is less interesting to look into host paths for target libraries anyway
+
+Upstream-Status: Inappropriate [OE Specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Index: coreutils-6.9/m4/getloadavg.m4
+===================================================================
+--- coreutils-6.9.orig/m4/getloadavg.m4
++++ coreutils-6.9/m4/getloadavg.m4
+@@ -49,7 +49,6 @@ if test $gl_have_func = no; then
+ # There is a commonly available library for RS/6000 AIX.
+ # Since it is not a standard part of AIX, it might be installed locally.
+ gl_getloadavg_LIBS=$LIBS
+- LIBS="-L/usr/local/lib $LIBS"
+ AC_CHECK_LIB(getloadavg, getloadavg,
+ [LIBS="-lgetloadavg $LIBS"], [LIBS=$gl_getloadavg_LIBS])
+ fi
diff --git a/meta/recipes-core/coreutils/coreutils_6.9.bb b/meta/recipes-core/coreutils/coreutils_6.9.bb
index 8d5b96d..e9f82ab 100644
--- a/meta/recipes-core/coreutils/coreutils_6.9.bb
+++ b/meta/recipes-core/coreutils/coreutils_6.9.bb
@@ -26,6 +26,7 @@ SRC_URI = "${GNU_MIRROR}/coreutils/${BP}.tar.bz2 \
file://coreutils-build-with-acl.patch \
file://coreutils-fix-texinfo.patch \
file://fix_for_manpage_building.patch \
+ file://loadavg.patch \
"
SRC_URI[md5sum] = "c9607d8495f16e98906e7ed2d9751a06"
--
2.6.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 6/9] libpam: Fix build with uclibc
2015-10-16 7:59 [master/jethro][PATCH 0/9] uclibc fixes Khem Raj
` (4 preceding siblings ...)
2015-10-16 7:59 ` [PATCH 5/9] coreutils: Do not use host paths in getloadavg.m4 Khem Raj
@ 2015-10-16 8:00 ` Khem Raj
2015-10-16 8:00 ` [PATCH 7/9] libtirpc: Fix a bug exposed by uclibc Khem Raj
` (2 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Khem Raj @ 2015-10-16 8:00 UTC (permalink / raw)
To: openembedded-core
libpam needs to adjust for posix utmpx
uclibc now disables utmp
Change-Id: Ibcb7cb621527f318eb8b6e2741647ccb4c6bb39c
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
meta/recipes-extended/pam/libpam/use-utmpx.patch | 233 +++++++++++++++++++++++
meta/recipes-extended/pam/libpam_1.2.1.bb | 4 +-
2 files changed, 236 insertions(+), 1 deletion(-)
create mode 100644 meta/recipes-extended/pam/libpam/use-utmpx.patch
diff --git a/meta/recipes-extended/pam/libpam/use-utmpx.patch b/meta/recipes-extended/pam/libpam/use-utmpx.patch
new file mode 100644
index 0000000..dd04bbb
--- /dev/null
+++ b/meta/recipes-extended/pam/libpam/use-utmpx.patch
@@ -0,0 +1,233 @@
+utmp() may not be configured in and use posix compliant utmpx always
+UTMP is SVID legacy, UTMPX is mandated by POSIX
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Index: Linux-PAM-1.2.1/libpam/pam_modutil_getlogin.c
+===================================================================
+--- Linux-PAM-1.2.1.orig/libpam/pam_modutil_getlogin.c
++++ Linux-PAM-1.2.1/libpam/pam_modutil_getlogin.c
+@@ -10,8 +10,7 @@
+
+ #include <stdlib.h>
+ #include <unistd.h>
+-#include <utmp.h>
+-
++#include <utmpx.h>
+ #define _PAMMODUTIL_GETLOGIN "_pammodutil_getlogin"
+
+ const char *
+@@ -22,7 +21,7 @@ pam_modutil_getlogin(pam_handle_t *pamh)
+ const void *void_curr_tty;
+ const char *curr_tty;
+ char *curr_user;
+- struct utmp *ut, line;
++ struct utmpx *ut, line;
+
+ status = pam_get_data(pamh, _PAMMODUTIL_GETLOGIN, &logname);
+ if (status == PAM_SUCCESS) {
+@@ -48,10 +47,10 @@ pam_modutil_getlogin(pam_handle_t *pamh)
+ }
+ logname = NULL;
+
+- setutent();
++ setutxent();
+ strncpy(line.ut_line, curr_tty, sizeof(line.ut_line));
+
+- if ((ut = getutline(&line)) == NULL) {
++ if ((ut = getutxline(&line)) == NULL) {
+ goto clean_up_and_go_home;
+ }
+
+@@ -74,7 +73,7 @@ pam_modutil_getlogin(pam_handle_t *pamh)
+
+ clean_up_and_go_home:
+
+- endutent();
++ endutxent();
+
+ return logname;
+ }
+Index: Linux-PAM-1.2.1/modules/pam_issue/pam_issue.c
+===================================================================
+--- Linux-PAM-1.2.1.orig/modules/pam_issue/pam_issue.c
++++ Linux-PAM-1.2.1/modules/pam_issue/pam_issue.c
+@@ -25,7 +25,7 @@
+ #include <string.h>
+ #include <unistd.h>
+ #include <sys/utsname.h>
+-#include <utmp.h>
++#include <utmpx.h>
+ #include <time.h>
+ #include <syslog.h>
+
+@@ -246,13 +246,13 @@ read_issue_quoted(pam_handle_t *pamh, FI
+ case 'U':
+ {
+ unsigned int users = 0;
+- struct utmp *ut;
+- setutent();
+- while ((ut = getutent())) {
++ struct utmpx *ut;
++ setutxent();
++ while ((ut = getutxent())) {
+ if (ut->ut_type == USER_PROCESS)
+ ++users;
+ }
+- endutent();
++ endutxent();
+ if (c == 'U')
+ snprintf (buf, sizeof buf, "%u %s", users,
+ (users == 1) ? "user" : "users");
+Index: Linux-PAM-1.2.1/modules/pam_lastlog/pam_lastlog.c
+===================================================================
+--- Linux-PAM-1.2.1.orig/modules/pam_lastlog/pam_lastlog.c
++++ Linux-PAM-1.2.1/modules/pam_lastlog/pam_lastlog.c
+@@ -15,8 +15,9 @@
+ #include <errno.h>
+ #ifdef HAVE_UTMP_H
+ # include <utmp.h>
+-#else
+-# include <lastlog.h>
++#endif
++#ifdef HAVE_UTMPX_H
++# include <utmpx.h>
+ #endif
+ #include <pwd.h>
+ #include <stdlib.h>
+@@ -27,6 +28,12 @@
+ #include <syslog.h>
+ #include <unistd.h>
+
++#ifndef HAVE_UTMP_H
++#define UT_LINESIZE 32
++#define UT_HOSTSIZE 32
++#define UT_NAMESIZE 256
++#endif
++
+ #if defined(hpux) || defined(sunos) || defined(solaris)
+ # ifndef _PATH_LASTLOG
+ # define _PATH_LASTLOG "/usr/adm/lastlog"
+@@ -38,7 +45,7 @@
+ # define UT_LINESIZE 12
+ # endif /* UT_LINESIZE */
+ #endif
+-#if defined(hpux)
++#if defined(hpux) || !defined HAVE_UTMP_H
+ struct lastlog {
+ time_t ll_time;
+ char ll_line[UT_LINESIZE];
+@@ -447,8 +454,8 @@ last_login_failed(pam_handle_t *pamh, in
+ {
+ int retval;
+ int fd;
+- struct utmp ut;
+- struct utmp utuser;
++ struct utmpx ut;
++ struct utmpx utuser;
+ int failed = 0;
+ char the_time[256];
+ char *date = NULL;
+Index: Linux-PAM-1.2.1/modules/pam_limits/pam_limits.c
+===================================================================
+--- Linux-PAM-1.2.1.orig/modules/pam_limits/pam_limits.c
++++ Linux-PAM-1.2.1/modules/pam_limits/pam_limits.c
+@@ -33,7 +33,7 @@
+ #include <sys/resource.h>
+ #include <limits.h>
+ #include <glob.h>
+-#include <utmp.h>
++#include <utmpx.h>
+ #ifndef UT_USER /* some systems have ut_name instead of ut_user */
+ #define UT_USER ut_user
+ #endif
+@@ -227,7 +227,7 @@ static int
+ check_logins (pam_handle_t *pamh, const char *name, int limit, int ctrl,
+ struct pam_limit_s *pl)
+ {
+- struct utmp *ut;
++ struct utmpx *ut;
+ int count;
+
+ if (ctrl & PAM_DEBUG_ARG) {
+@@ -242,7 +242,7 @@ check_logins (pam_handle_t *pamh, const
+ return LOGIN_ERR;
+ }
+
+- setutent();
++ setutxent();
+
+ /* Because there is no definition about when an application
+ actually adds a utmp entry, some applications bizarrely do the
+@@ -260,7 +260,7 @@ check_logins (pam_handle_t *pamh, const
+ count = 1;
+ }
+
+- while((ut = getutent())) {
++ while((ut = getutxent())) {
+ #ifdef USER_PROCESS
+ if (ut->ut_type != USER_PROCESS) {
+ continue;
+@@ -296,7 +296,7 @@ check_logins (pam_handle_t *pamh, const
+ break;
+ }
+ }
+- endutent();
++ endutxent();
+ if (count > limit) {
+ if (name) {
+ pam_syslog(pamh, LOG_WARNING,
+Index: Linux-PAM-1.2.1/modules/pam_timestamp/pam_timestamp.c
+===================================================================
+--- Linux-PAM-1.2.1.orig/modules/pam_timestamp/pam_timestamp.c
++++ Linux-PAM-1.2.1/modules/pam_timestamp/pam_timestamp.c
+@@ -56,7 +56,7 @@
+ #include <time.h>
+ #include <sys/time.h>
+ #include <unistd.h>
+-#include <utmp.h>
++#include <utmpx.h>
+ #include <syslog.h>
+ #include <paths.h>
+ #include "hmacsha1.h"
+@@ -197,15 +197,15 @@ timestamp_good(time_t then, time_t now,
+ static int
+ check_login_time(const char *ruser, time_t timestamp)
+ {
+- struct utmp utbuf, *ut;
++ struct utmpx utbuf, *ut;
+ time_t oldest_login = 0;
+
+- setutent();
++ setutxent();
+ while(
+ #ifdef HAVE_GETUTENT_R
+- !getutent_r(&utbuf, &ut)
++ !getutxent_r(&utbuf, &ut)
+ #else
+- (ut = getutent()) != NULL
++ (ut = getutxent()) != NULL
+ #endif
+ ) {
+ if (ut->ut_type != USER_PROCESS) {
+@@ -218,7 +218,7 @@ check_login_time(const char *ruser, time
+ oldest_login = ut->ut_tv.tv_sec;
+ }
+ }
+- endutent();
++ endutxent();
+ if(oldest_login == 0 || timestamp < oldest_login) {
+ return PAM_AUTH_ERR;
+ }
+Index: Linux-PAM-1.2.1/modules/pam_unix/support.c
+===================================================================
+--- Linux-PAM-1.2.1.orig/modules/pam_unix/support.c
++++ Linux-PAM-1.2.1/modules/pam_unix/support.c
+@@ -13,7 +13,6 @@
+ #include <pwd.h>
+ #include <shadow.h>
+ #include <limits.h>
+-#include <utmp.h>
+ #include <errno.h>
+ #include <signal.h>
+ #include <ctype.h>
diff --git a/meta/recipes-extended/pam/libpam_1.2.1.bb b/meta/recipes-extended/pam/libpam_1.2.1.bb
index ac3097e..0353356 100644
--- a/meta/recipes-extended/pam/libpam_1.2.1.bb
+++ b/meta/recipes-extended/pam/libpam_1.2.1.bb
@@ -28,7 +28,9 @@ SRC_URI = "http://linux-pam.org/library/Linux-PAM-${PV}.tar.bz2 \
SRC_URI[md5sum] = "9dc53067556d2dd567808fd509519dd6"
SRC_URI[sha256sum] = "342b1211c0d3b203a7df2540a5b03a428a087bd8a48c17e49ae268f992b334d9"
-SRC_URI_append_libc-uclibc = " file://pam-no-innetgr.patch"
+SRC_URI_append_libc-uclibc = " file://pam-no-innetgr.patch \
+ file://use-utmpx.patch"
+
SRC_URI_append_libc-musl = " file://pam-no-innetgr.patch"
DEPENDS = "bison flex flex-native cracklib"
--
2.6.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 7/9] libtirpc: Fix a bug exposed by uclibc
2015-10-16 7:59 [master/jethro][PATCH 0/9] uclibc fixes Khem Raj
` (5 preceding siblings ...)
2015-10-16 8:00 ` [PATCH 6/9] libpam: Fix build with uclibc Khem Raj
@ 2015-10-16 8:00 ` Khem Raj
2015-10-16 8:00 ` [PATCH 8/9] systemd: Fix build with uclibc Khem Raj
2015-10-16 8:00 ` [PATCH 9/9] uclibc: Implement syncfs and AT_EMPTY_PATH for all and O_PATH for arm Khem Raj
8 siblings, 0 replies; 10+ messages in thread
From: Khem Raj @ 2015-10-16 8:00 UTC (permalink / raw)
To: openembedded-core
to have va_list we need to include stdarg.h no matter what
but it was latent since with glibc it was getting pull in silently
via other headers
Change-Id: Ie5f1af4c1374fa525647fcb3ae936ec525a99da1
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
meta/recipes-extended/libtirpc/libtirpc/va_list.patch | 18 ++++++++++++++++++
meta/recipes-extended/libtirpc/libtirpc_0.2.5.bb | 4 +++-
2 files changed, 21 insertions(+), 1 deletion(-)
create mode 100644 meta/recipes-extended/libtirpc/libtirpc/va_list.patch
diff --git a/meta/recipes-extended/libtirpc/libtirpc/va_list.patch b/meta/recipes-extended/libtirpc/libtirpc/va_list.patch
new file mode 100644
index 0000000..855d15b
--- /dev/null
+++ b/meta/recipes-extended/libtirpc/libtirpc/va_list.patch
@@ -0,0 +1,18 @@
+This patch is fixing build with uclibc where compiler ( gcc5 ) says it cant find va_list
+the patch is right for upstreaming as well
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+
+Index: libtirpc-0.2.5/src/debug.h
+===================================================================
+--- libtirpc-0.2.5.orig/src/debug.h
++++ libtirpc-0.2.5/src/debug.h
+@@ -22,6 +22,7 @@
+ #ifndef _DEBUG_H
+ #define _DEBUG_H
+ #include <syslog.h>
++#include <stdarg.h>
+
+ extern int libtirpc_debug_level;
+ extern int log_stderr;
diff --git a/meta/recipes-extended/libtirpc/libtirpc_0.2.5.bb b/meta/recipes-extended/libtirpc/libtirpc_0.2.5.bb
index 3edf002..330b829 100644
--- a/meta/recipes-extended/libtirpc/libtirpc_0.2.5.bb
+++ b/meta/recipes-extended/libtirpc/libtirpc_0.2.5.bb
@@ -15,7 +15,9 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.bz2;name=libtirpc \
file://libtirpc-0.2.1-fortify.patch \
"
-SRC_URI_append_libc-uclibc = " file://remove-des-uclibc.patch"
+SRC_URI_append_libc-uclibc = " file://remove-des-uclibc.patch \
+ file://va_list.patch \
+ "
SRC_URI[libtirpc.md5sum] = "8cd41a5ef5a9b50d0fb6abb98af15368"
SRC_URI[libtirpc.sha256sum] = "62f9de7c2c8686c568757730e1fef66502a0e00d6cacf33546d0267984e002db"
--
2.6.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 8/9] systemd: Fix build with uclibc
2015-10-16 7:59 [master/jethro][PATCH 0/9] uclibc fixes Khem Raj
` (6 preceding siblings ...)
2015-10-16 8:00 ` [PATCH 7/9] libtirpc: Fix a bug exposed by uclibc Khem Raj
@ 2015-10-16 8:00 ` Khem Raj
2015-10-16 8:00 ` [PATCH 9/9] uclibc: Implement syncfs and AT_EMPTY_PATH for all and O_PATH for arm Khem Raj
8 siblings, 0 replies; 10+ messages in thread
From: Khem Raj @ 2015-10-16 8:00 UTC (permalink / raw)
To: openembedded-core
225 needs additional patches for cater for new APIs used
in systemd
Change-Id: Idb66c2c6bb65c94b52ba35b276ca12cc868b043e
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
.../systemd/0001-fix-build-on-uClibc-exp10.patch | 22 ++++++++++++
...nv-when-secure-versions-are-not-available.patch | 39 ++++++++++++++++++++++
meta/recipes-core/systemd/systemd_225.bb | 2 ++
3 files changed, 63 insertions(+)
create mode 100644 meta/recipes-core/systemd/systemd/0001-fix-build-on-uClibc-exp10.patch
create mode 100644 meta/recipes-core/systemd/systemd/0022-Use-getenv-when-secure-versions-are-not-available.patch
diff --git a/meta/recipes-core/systemd/systemd/0001-fix-build-on-uClibc-exp10.patch b/meta/recipes-core/systemd/systemd/0001-fix-build-on-uClibc-exp10.patch
new file mode 100644
index 0000000..76ce4b7
--- /dev/null
+++ b/meta/recipes-core/systemd/systemd/0001-fix-build-on-uClibc-exp10.patch
@@ -0,0 +1,22 @@
+Inspired by: http://peter.korsgaard.com/patches/alsa-utils/alsamixer-fix-build-on-uClibc-exp10.patch
+
+exp10 extension is not part of uClibc, so compute it.
+
+
+Signed-off-by: Samuel Martin <s.martin49@gmail.com>
+
+Upstream-Status: Pending
+
+Index: git/src/basic/missing.h
+===================================================================
+--- git.orig/src/basic/missing.h
++++ git/src/basic/missing.h
+@@ -1036,3 +1036,8 @@ static inline int kcmp(pid_t pid1, pid_t
+ #ifndef INPUT_PROP_ACCELEROMETER
+ #define INPUT_PROP_ACCELEROMETER 0x06
+ #endif
++
++#ifdef __UCLIBC__
++/* 10^x = 10^(log e^x) = (e^x)^log10 = e^(x * log 10) */
++#define exp10(x) (exp((x) * log(10)))
++#endif /* __UCLIBC__ */
diff --git a/meta/recipes-core/systemd/systemd/0022-Use-getenv-when-secure-versions-are-not-available.patch b/meta/recipes-core/systemd/systemd/0022-Use-getenv-when-secure-versions-are-not-available.patch
new file mode 100644
index 0000000..30e3817
--- /dev/null
+++ b/meta/recipes-core/systemd/systemd/0022-Use-getenv-when-secure-versions-are-not-available.patch
@@ -0,0 +1,39 @@
+From cb71e4beea3b3b11e5951f95c829cd2eee9fcf7b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 12 Sep 2015 19:10:04 +0000
+Subject: [PATCH 22/31] Use getenv when secure versions are not available
+
+musl doesnt implement secure version, so we default
+to it if configure does not detect a secure imeplementation
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Rejected
+
+ src/basic/missing.h | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/src/basic/missing.h b/src/basic/missing.h
+index bf9b490..d6dbc7d 100644
+--- a/src/basic/missing.h
++++ b/src/basic/missing.h
+@@ -584,13 +584,14 @@ static inline int name_to_handle_at(int fd, const char *name, struct file_handle
+ return syscall(__NR_name_to_handle_at, fd, name, handle, mnt_id, flags);
+ }
+ #endif
+-
+-#ifndef HAVE_SECURE_GETENV
++#ifdef HAVE_SECURE_GETENV
+ # ifdef HAVE___SECURE_GETENV
+ # define secure_getenv __secure_getenv
+ # else
+ # error "neither secure_getenv nor __secure_getenv are available"
+ # endif
++#else
++# define secure_getenv getenv
+ #endif
+
+ #ifndef CIFS_MAGIC_NUMBER
+--
+2.5.2
+
diff --git a/meta/recipes-core/systemd/systemd_225.bb b/meta/recipes-core/systemd/systemd_225.bb
index c2dad58..18c2448 100644
--- a/meta/recipes-core/systemd/systemd_225.bb
+++ b/meta/recipes-core/systemd/systemd_225.bb
@@ -53,6 +53,8 @@ S = "${WORKDIR}/git"
SRC_URI_append_libc-uclibc = "\
file://0001-units-Prefer-getty-to-agetty-in-console-setup-system.patch \
+ file://0022-Use-getenv-when-secure-versions-are-not-available.patch \
+ file://0001-fix-build-on-uClibc-exp10.patch \
"
LDFLAGS_append_libc-uclibc = " -lrt"
--
2.6.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 9/9] uclibc: Implement syncfs and AT_EMPTY_PATH for all and O_PATH for arm
2015-10-16 7:59 [master/jethro][PATCH 0/9] uclibc fixes Khem Raj
` (7 preceding siblings ...)
2015-10-16 8:00 ` [PATCH 8/9] systemd: Fix build with uclibc Khem Raj
@ 2015-10-16 8:00 ` Khem Raj
8 siblings, 0 replies; 10+ messages in thread
From: Khem Raj @ 2015-10-16 8:00 UTC (permalink / raw)
To: openembedded-core
needed for systemd 225 to compile with uclibc
Change-Id: Id5f990edf4a773de49742f9f9ea5139e55e21f69
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
meta/recipes-core/uclibc/uclibc-git.inc | 2 +
...-AT_EMPTY_PATH-for-all-and-O_PATH-for-arm.patch | 42 +++++++++++++++++++
.../uclibc/uclibc-git/0001-wire-in-syncfs.patch | 49 ++++++++++++++++++++++
3 files changed, 93 insertions(+)
create mode 100644 meta/recipes-core/uclibc/uclibc-git/0001-fcntl-Add-AT_EMPTY_PATH-for-all-and-O_PATH-for-arm.patch
create mode 100644 meta/recipes-core/uclibc/uclibc-git/0001-wire-in-syncfs.patch
diff --git a/meta/recipes-core/uclibc/uclibc-git.inc b/meta/recipes-core/uclibc/uclibc-git.inc
index 9e3d644..dcb616d 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 \
file://0006-ldso-limited-support-for-ORIGIN-in-rpath.patch \
file://0007-nptl-atfork-Hide-pthread_atfork-in-shared-versions.patch \
file://0001-gcc5-optimizes-away-the-write-only-static-functions-.patch \
+ file://0001-fcntl-Add-AT_EMPTY_PATH-for-all-and-O_PATH-for-arm.patch \
+ file://0001-wire-in-syncfs.patch \
"
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 0000000..6942db4
--- /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 @@
+From 4c8f5fe7d41493e8e181941ae5a01713155f44d1 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 15 Oct 2015 15:34:39 +0000
+Subject: [PATCH] fcntl: Add AT_EMPTY_PATH for all and O_PATH for arm
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ include/fcntl.h | 3 +++
+ libc/sysdeps/linux/arm/bits/fcntl.h | 1 +
+ 2 files changed, 4 insertions(+)
+
+diff --git a/include/fcntl.h b/include/fcntl.h
+index 11000dd..8a7ad9b 100644
+--- a/include/fcntl.h
++++ b/include/fcntl.h
+@@ -65,6 +65,9 @@ __BEGIN_DECLS
+ # define AT_SYMLINK_FOLLOW 0x400 /* Follow symbolic links. */
+ # define AT_EACCESS 0x200 /* Test access permitted for
+ effective IDs, not real IDs. */
++# ifdef __USE_GNU
++# define AT_EMPTY_PATH 0x1000 /* Allow empty relative pathname. */
++# endif
+ #endif
+
+ /* Do the file control operation described by CMD on FD.
+diff --git a/libc/sysdeps/linux/arm/bits/fcntl.h b/libc/sysdeps/linux/arm/bits/fcntl.h
+index aedc154..c6ba958 100644
+--- a/libc/sysdeps/linux/arm/bits/fcntl.h
++++ b/libc/sysdeps/linux/arm/bits/fcntl.h
+@@ -50,6 +50,7 @@
+ # define O_DIRECT 0200000 /* Direct disk access. */
+ # define O_NOATIME 01000000 /* Do not set atime. */
+ # define O_CLOEXEC 02000000 /* Set close_on_exec. */
++# define O_PATH 010000000 /* Resolve pathname but do not open file. */
+ #endif
+
+ /* For now Linux has synchronisity options for data and read operations.
+--
+2.6.1
+
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 0000000..079ad6b
--- /dev/null
+++ b/meta/recipes-core/uclibc/uclibc-git/0001-wire-in-syncfs.patch
@@ -0,0 +1,49 @@
+From 4f2db1b46bda5e376245ec36198b137709f069e8 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 15 Oct 2015 17:03:37 +0000
+Subject: [PATCH] wire in syncfs
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ include/unistd.h | 2 +-
+ libc/sysdeps/linux/common/syncfs.c | 13 +++++++++++++
+ 2 files changed, 14 insertions(+), 1 deletion(-)
+ create mode 100644 libc/sysdeps/linux/common/syncfs.c
+
+diff --git a/include/unistd.h b/include/unistd.h
+index 3793d2d..d01bb08 100644
+--- a/include/unistd.h
++++ b/include/unistd.h
+@@ -1073,7 +1073,7 @@ extern char *getpass (const char *__prompt) __nonnull ((1));
+ extern int fsync (int __fd);
+ #endif /* Use BSD || X/Open || Unix98. */
+
+-#if 0 /*def __USE_GNU */
++#ifdef __USE_GNU
+ /* Make all changes done to all files on the file system associated
+ * with FD actually appear on disk. */
+ extern int syncfs (int __fd) __THROW;
+diff --git a/libc/sysdeps/linux/common/syncfs.c b/libc/sysdeps/linux/common/syncfs.c
+new file mode 100644
+index 0000000..d2eed05
+--- /dev/null
++++ b/libc/sysdeps/linux/common/syncfs.c
+@@ -0,0 +1,13 @@
++/* vi: set sw=4 ts=4: */
++/*
++ * fsync() 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>
++
++_syscall1(int, syncfs, int, fd)
+--
+2.6.1
+
--
2.6.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
end of thread, other threads:[~2015-10-16 8:00 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-10-16 7:59 [master/jethro][PATCH 0/9] uclibc fixes Khem Raj
2015-10-16 7:59 ` [PATCH 1/9] rpcbind: Fix build with uclibc Khem Raj
2015-10-16 7:59 ` [PATCH 2/9] libtirpc: Refresh uclibc patches Khem Raj
2015-10-16 7:59 ` [PATCH 3/9] uclibc: Fix build with gcc5 Khem Raj
2015-10-16 7:59 ` [PATCH 4/9] coreutils-6.9: Add missing dependency on virtual/libiconv Khem Raj
2015-10-16 7:59 ` [PATCH 5/9] coreutils: Do not use host paths in getloadavg.m4 Khem Raj
2015-10-16 8:00 ` [PATCH 6/9] libpam: Fix build with uclibc Khem Raj
2015-10-16 8:00 ` [PATCH 7/9] libtirpc: Fix a bug exposed by uclibc Khem Raj
2015-10-16 8:00 ` [PATCH 8/9] systemd: Fix build with uclibc Khem Raj
2015-10-16 8:00 ` [PATCH 9/9] uclibc: Implement syncfs and AT_EMPTY_PATH for all and O_PATH for arm Khem Raj
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.