uclibc fixes
cover uclibc fixes
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
Signature · 1 line
2.6.1
PATCH 1/9 rpcbind: Fix build with uclibc
The 0001-uclibc-nss.patch has been applied upstream in a bit different way but solves the issue at hand
--- .../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
meta/recipes-extended/rpcbind/rpcbind/0001-uclibc-nss.patch deleted +0 -30
@@ -1,30 +0,0 @@ -Upstream-Status: Pending - -From b8f0d7b7318ba344c25785d6f5cf3f8de98012d4 Mon Sep 17 00:00:00 2001 -From: Natanael Copa <[email protected]> -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 -
meta/recipes-extended/rpcbind/rpcbind_0.2.3.bb +0 -2
@@ -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 ?= ""
Signature · 1 line
2.6.1
PATCH 2/9 libtirpc: Refresh uclibc patches
patch fails to apply otherwise
--- .../libtirpc/libtirpc/remove-des-uclibc.patch | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-)
meta/recipes-extended/libtirpc/libtirpc/remove-des-uclibc.patch +11 -11
@@ -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 <[email protected]> -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
Signature · 1 line
2.6.1
PATCH 3/9 uclibc: Fix build with gcc5
In reply to Khem RajAn 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.
--- 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
meta/recipes-core/uclibc/uclibc-git.inc +1 -0
@@ -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"
meta/recipes-core/uclibc/uclibc-git/0001-gcc5-optimizes-away-the-write-only-static-functions-.patch new file +51 -0
51 lines not on this page · raw message
Signature · 1 line
2.6.1
PATCH 4/9 coreutils-6.9: Add missing dependency on virtual/libiconv
In reply to Khem RajSurfaces on uclibc where libiconv is not coming from libc but from separate package.
--- meta/recipes-core/coreutils/coreutils_6.9.bb | 1 + 1 file changed, 1 insertion(+)
meta/recipes-core/coreutils/coreutils_6.9.bb +1 -0
@@ -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
Signature · 1 line
2.6.1
PATCH 5/9 coreutils: Do not use host paths in getloadavg.m4
In reply to Khem Rajhelps configure QA pass when building for uclibc
--- .../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
meta/recipes-core/coreutils/coreutils-6.9/loadavg.patch new file +18 -0
@@ -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 <[email protected]> + +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
meta/recipes-core/coreutils/coreutils_6.9.bb +1 -0
@@ -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"
Signature · 1 line
2.6.1
PATCH 6/9 libpam: Fix build with uclibc
In reply to Khem Rajlibpam needs to adjust for posix utmpx
uclibc now disables utmp
--- 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
meta/recipes-extended/pam/libpam/use-utmpx.patch new file +233 -0
@@ -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 <[email protected]> +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>
meta/recipes-extended/pam/libpam_1.2.1.bb +3 -1
@@ -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"
Signature · 1 line
2.6.1
PATCH 7/9 libtirpc: Fix a bug exposed by uclibc
In reply to Khem Rajto 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
--- 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
meta/recipes-extended/libtirpc/libtirpc/va_list.patch new file +18 -0
@@ -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 <[email protected]> +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;
meta/recipes-extended/libtirpc/libtirpc_0.2.5.bb +3 -1
@@ -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"
Signature · 1 line
2.6.1
PATCH 8/9 systemd: Fix build with uclibc
In reply to Khem Raj225 needs additional patches for cater for new APIs used in systemd
--- .../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
meta/recipes-core/systemd/systemd/0001-fix-build-on-uClibc-exp10.patch new file +22 -0
@@ -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 <[email protected]> + +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__ */
meta/recipes-core/systemd/systemd/0022-Use-getenv-when-secure-versions-are-not-available.patch new file +39 -0
@@ -0,0 +1,39 @@ +From cb71e4beea3b3b11e5951f95c829cd2eee9fcf7b Mon Sep 17 00:00:00 2001 +From: Khem Raj <[email protected]> +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 <[email protected]> +--- +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 +
meta/recipes-core/systemd/systemd_225.bb +2 -0
@@ -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"
Signature · 1 line
2.6.1
PATCH 9/9 uclibc: Implement syncfs and AT_EMPTY_PATH for all and O_PATH for arm
In reply to Khem Rajneeded for systemd 225 to compile with uclibc
--- 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
meta/recipes-core/uclibc/uclibc-git.inc +2 -0
@@ -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"
meta/recipes-core/uclibc/uclibc-git/0001-fcntl-Add-AT_EMPTY_PATH-for-all-and-O_PATH-for-arm.patch new file +42 -0
42 lines not on this page · raw message
meta/recipes-core/uclibc/uclibc-git/0001-wire-in-syncfs.patch new file +49 -0
49 lines not on this page · raw message
Signature · 1 line
2.6.1