All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] linux-libc-headers: Include linux/stddef.h in linux/swab.h
@ 2018-09-13  1:05 Khem Raj
  2018-09-13  1:05 ` [PATCH 2/2] musl: Wire-up name_to_handle_at and name_to_handle_at syscalls Khem Raj
  2018-09-13  3:46 ` [PATCH 1/2] linux-libc-headers: Include linux/stddef.h in linux/swab.h Bruce Ashfield
  0 siblings, 2 replies; 5+ messages in thread
From: Khem Raj @ 2018-09-13  1:05 UTC (permalink / raw)
  To: openembedded-core; +Cc: Bruce Ashfield

This helps compiling bpf tests using non-glibc C libraries e.g. musl

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Bruce Ashfield <bruce.ashfield@windriver.com>
---
 ...linux-stddef.h-in-swab.h-uapi-header.patch | 44 +++++++++++++++++++
 .../linux-libc-headers_4.18.bb                |  1 +
 2 files changed, 45 insertions(+)
 create mode 100644 meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-include-linux-stddef.h-in-swab.h-uapi-header.patch

diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-include-linux-stddef.h-in-swab.h-uapi-header.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-include-linux-stddef.h-in-swab.h-uapi-header.patch
new file mode 100644
index 0000000000..9d17daa70f
--- /dev/null
+++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-include-linux-stddef.h-in-swab.h-uapi-header.patch
@@ -0,0 +1,44 @@
+From 9708dc74d9f49488d669e070982f6224a888d61a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 12 Sep 2018 17:08:58 -0700
+Subject: [PATCH] include linux/stddef.h in swab.h uapi header
+
+swab.h uses __always_inline without including the header where it is
+defined, this is exposed by musl based distributions where this macro is
+not defined by system C library headers unlike glibc where it is defined
+in sys/cdefs.h and that header gets pulled in indirectly via
+
+features.h -> sys/cdefs.h
+
+and features.h gets pulled in a lot of headers. Therefore it may work in
+cases where features.h is includes but not otherwise.
+
+Adding linux/stddef.h here ensures that __always_inline is always
+defined independent of which C library is used in userspace
+
+Upstream-Status: Submitted [https://lkml.org/lkml/2018/9/13/78]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Cc: Philippe Ombredanne <pombredanne@nexb.com>
+Cc: Kate Stewart <kstewart@linuxfoundation.org>
+Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Cc: Thomas Gleixner <tglx@linutronix.de>
+---
+ include/uapi/linux/swab.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/include/uapi/linux/swab.h b/include/uapi/linux/swab.h
+index 23cd84868cc3..acddbe50a20d 100644
+--- a/include/uapi/linux/swab.h
++++ b/include/uapi/linux/swab.h
+@@ -3,6 +3,7 @@
+ #define _UAPI_LINUX_SWAB_H
+ 
+ #include <linux/types.h>
++#include <linux/stddef.h>
+ #include <linux/compiler.h>
+ #include <asm/swab.h>
+ 
+-- 
+2.19.0
+
diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.18.bb b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.18.bb
index e38872bb91..eb7bee72b0 100644
--- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.18.bb
+++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.18.bb
@@ -6,6 +6,7 @@ SRC_URI_append_libc-musl = "\
     file://0003-remove-inclusion-of-sysinfo.h-in-kernel.h.patch \
     file://0001-libc-compat.h-musl-_does_-define-IFF_LOWER_UP-DORMAN.patch \
     file://0001-if_ether-move-muslc-ethhdr-protection-to-uapi-file.patch \
+    file://0001-include-linux-stddef.h-in-swab.h-uapi-header.patch \
    "
 
 SRC_URI[md5sum] = "bee5fe53ee1c3142b8f0c12c0d3348f9"
-- 
2.19.0



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/2] musl: Wire-up name_to_handle_at and name_to_handle_at syscalls
  2018-09-13  1:05 [PATCH 1/2] linux-libc-headers: Include linux/stddef.h in linux/swab.h Khem Raj
@ 2018-09-13  1:05 ` Khem Raj
  2018-09-13 13:14   ` Richard Purdie
  2018-09-13  3:46 ` [PATCH 1/2] linux-libc-headers: Include linux/stddef.h in linux/swab.h Bruce Ashfield
  1 sibling, 1 reply; 5+ messages in thread
From: Khem Raj @ 2018-09-13  1:05 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 ...e_to_handle_at-and-name_to_handle_at.patch | 76 +++++++++++++++++++
 meta/recipes-core/musl/musl_git.bb            |  1 +
 2 files changed, 77 insertions(+)
 create mode 100644 meta/recipes-core/musl/musl/0001-wireup-linux-name_to_handle_at-and-name_to_handle_at.patch

diff --git a/meta/recipes-core/musl/musl/0001-wireup-linux-name_to_handle_at-and-name_to_handle_at.patch b/meta/recipes-core/musl/musl/0001-wireup-linux-name_to_handle_at-and-name_to_handle_at.patch
new file mode 100644
index 0000000000..4738e1efd8
--- /dev/null
+++ b/meta/recipes-core/musl/musl/0001-wireup-linux-name_to_handle_at-and-name_to_handle_at.patch
@@ -0,0 +1,76 @@
+From ef3ef607693a9513d5ab94a1de67dd2f1f97d8ad Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 12 Sep 2018 16:08:40 -0700
+Subject: [PATCH] wireup linux/name_to_handle_at and name_to_handle_at syscalls
+
+Upstream-Status: Submitted [https://www.openwall.com/lists/musl/2018/09/13/4]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ include/fcntl.h               |  7 +++++++
+ src/linux/name_to_handle_at.c | 11 +++++++++++
+ src/linux/open_by_handle_at.c | 10 ++++++++++
+ 3 files changed, 28 insertions(+)
+ create mode 100644 src/linux/name_to_handle_at.c
+ create mode 100644 src/linux/open_by_handle_at.c
+
+diff --git a/include/fcntl.h b/include/fcntl.h
+index 6d8edcd1..5c3defcb 100644
+--- a/include/fcntl.h
++++ b/include/fcntl.h
+@@ -155,6 +155,11 @@ int lockf(int, int, off_t);
+ #define F_OWNER_PID 1
+ #define F_OWNER_PGRP 2
+ #define F_OWNER_GID 2
++struct file_handle {
++	unsigned int handle_bytes;
++	int handle_type;
++	unsigned char f_handle[];
++};
+ struct f_owner_ex {
+ 	int type;
+ 	pid_t pid;
+@@ -170,6 +175,8 @@ struct f_owner_ex {
+ #define SPLICE_F_GIFT 8
+ int fallocate(int, int, off_t, off_t);
+ #define fallocate64 fallocate
++int name_to_handle_at(int, const char *, struct file_handle *, int *, int);
++int open_by_handle_at(int, struct file_handle *, int);
+ ssize_t readahead(int, off_t, size_t);
+ int sync_file_range(int, off_t, off_t, unsigned);
+ ssize_t vmsplice(int, const struct iovec *, size_t, unsigned);
+diff --git a/src/linux/name_to_handle_at.c b/src/linux/name_to_handle_at.c
+new file mode 100644
+index 00000000..bb6f8007
+--- /dev/null
++++ b/src/linux/name_to_handle_at.c
+@@ -0,0 +1,11 @@
++#define _GNU_SOURCE
++#include <fcntl.h>
++#include "syscall.h"
++
++int name_to_handle_at(int dirfd, const char *pathname,
++			struct file_handle *handle,
++			int *mount_id, int flags)
++{
++	return syscall(SYS_name_to_handle_at, dirfd,
++		pathname, handle, mount_id, flags);
++}
+diff --git a/src/linux/open_by_handle_at.c b/src/linux/open_by_handle_at.c
+new file mode 100644
+index 00000000..9bc93f14
+--- /dev/null
++++ b/src/linux/open_by_handle_at.c
+@@ -0,0 +1,10 @@
++#define _GNU_SOURCE
++#include <fcntl.h>
++#include "syscall.h"
++
++int open_by_handle_at(int mount_fd, struct file_handle *handle,
++                             int flags)
++{
++	return syscall(SYS_open_by_handle_at, mount_fd,
++		handle, flags);
++}
+-- 
+2.19.0
+
diff --git a/meta/recipes-core/musl/musl_git.bb b/meta/recipes-core/musl/musl_git.bb
index de1cfd0058..f6edf7de61 100644
--- a/meta/recipes-core/musl/musl_git.bb
+++ b/meta/recipes-core/musl/musl_git.bb
@@ -11,6 +11,7 @@ PV = "1.1.20+git${SRCPV}"
 
 SRC_URI = "git://git.musl-libc.org/musl \
            file://0001-Make-dynamic-linker-a-relative-symlink-to-libc.patch \
+           file://0001-wireup-linux-name_to_handle_at-and-name_to_handle_at.patch \
           "
 
 S = "${WORKDIR}/git"
-- 
2.19.0



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/2] linux-libc-headers: Include linux/stddef.h in linux/swab.h
  2018-09-13  1:05 [PATCH 1/2] linux-libc-headers: Include linux/stddef.h in linux/swab.h Khem Raj
  2018-09-13  1:05 ` [PATCH 2/2] musl: Wire-up name_to_handle_at and name_to_handle_at syscalls Khem Raj
@ 2018-09-13  3:46 ` Bruce Ashfield
  1 sibling, 0 replies; 5+ messages in thread
From: Bruce Ashfield @ 2018-09-13  3:46 UTC (permalink / raw)
  To: Khem Raj, openembedded-core

On 2018-09-12 9:05 PM, Khem Raj wrote:
> This helps compiling bpf tests using non-glibc C libraries e.g. musl

Looks good to me. Thanks for the cc', most appreciated.

Acked-by: Bruce Ashfield <bruce.ashfield@windriver.com>

> 
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> Cc: Bruce Ashfield <bruce.ashfield@windriver.com>
> ---
>   ...linux-stddef.h-in-swab.h-uapi-header.patch | 44 +++++++++++++++++++
>   .../linux-libc-headers_4.18.bb                |  1 +
>   2 files changed, 45 insertions(+)
>   create mode 100644 meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-include-linux-stddef.h-in-swab.h-uapi-header.patch
> 
> diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-include-linux-stddef.h-in-swab.h-uapi-header.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-include-linux-stddef.h-in-swab.h-uapi-header.patch
> new file mode 100644
> index 0000000000..9d17daa70f
> --- /dev/null
> +++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-include-linux-stddef.h-in-swab.h-uapi-header.patch
> @@ -0,0 +1,44 @@
> +From 9708dc74d9f49488d669e070982f6224a888d61a Mon Sep 17 00:00:00 2001
> +From: Khem Raj <raj.khem@gmail.com>
> +Date: Wed, 12 Sep 2018 17:08:58 -0700
> +Subject: [PATCH] include linux/stddef.h in swab.h uapi header
> +
> +swab.h uses __always_inline without including the header where it is
> +defined, this is exposed by musl based distributions where this macro is
> +not defined by system C library headers unlike glibc where it is defined
> +in sys/cdefs.h and that header gets pulled in indirectly via
> +
> +features.h -> sys/cdefs.h
> +
> +and features.h gets pulled in a lot of headers. Therefore it may work in
> +cases where features.h is includes but not otherwise.
> +
> +Adding linux/stddef.h here ensures that __always_inline is always
> +defined independent of which C library is used in userspace
> +
> +Upstream-Status: Submitted [https://lkml.org/lkml/2018/9/13/78]
> +
> +Signed-off-by: Khem Raj <raj.khem@gmail.com>
> +Cc: Philippe Ombredanne <pombredanne@nexb.com>
> +Cc: Kate Stewart <kstewart@linuxfoundation.org>
> +Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> +Cc: Thomas Gleixner <tglx@linutronix.de>
> +---
> + include/uapi/linux/swab.h | 1 +
> + 1 file changed, 1 insertion(+)
> +
> +diff --git a/include/uapi/linux/swab.h b/include/uapi/linux/swab.h
> +index 23cd84868cc3..acddbe50a20d 100644
> +--- a/include/uapi/linux/swab.h
> ++++ b/include/uapi/linux/swab.h
> +@@ -3,6 +3,7 @@
> + #define _UAPI_LINUX_SWAB_H
> +
> + #include <linux/types.h>
> ++#include <linux/stddef.h>
> + #include <linux/compiler.h>
> + #include <asm/swab.h>
> +
> +--
> +2.19.0
> +
> diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.18.bb b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.18.bb
> index e38872bb91..eb7bee72b0 100644
> --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.18.bb
> +++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.18.bb
> @@ -6,6 +6,7 @@ SRC_URI_append_libc-musl = "\
>       file://0003-remove-inclusion-of-sysinfo.h-in-kernel.h.patch \
>       file://0001-libc-compat.h-musl-_does_-define-IFF_LOWER_UP-DORMAN.patch \
>       file://0001-if_ether-move-muslc-ethhdr-protection-to-uapi-file.patch \
> +    file://0001-include-linux-stddef.h-in-swab.h-uapi-header.patch \
>      "
>   
>   SRC_URI[md5sum] = "bee5fe53ee1c3142b8f0c12c0d3348f9"
> 



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/2] musl: Wire-up name_to_handle_at and name_to_handle_at syscalls
  2018-09-13  1:05 ` [PATCH 2/2] musl: Wire-up name_to_handle_at and name_to_handle_at syscalls Khem Raj
@ 2018-09-13 13:14   ` Richard Purdie
  2018-09-13 14:12     ` Khem Raj
  0 siblings, 1 reply; 5+ messages in thread
From: Richard Purdie @ 2018-09-13 13:14 UTC (permalink / raw)
  To: Khem Raj, openembedded-core

On Wed, 2018-09-12 at 18:05 -0700, Khem Raj wrote:
> Signed-off-by: Khem Raj <raj.khem@gmail.com>

Somewhat ironically, this breaks musl builds in strace:

https://autobuilder.yoctoproject.org/typhoon/#/builders/11/builds/55/steps/7/logs/step1b
https://autobuilder.yoctoproject.org/typhoon/#/builders/27/builds/55/steps/7/logs/step1b

Cheers,

Richard


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/2] musl: Wire-up name_to_handle_at and name_to_handle_at syscalls
  2018-09-13 13:14   ` Richard Purdie
@ 2018-09-13 14:12     ` Khem Raj
  0 siblings, 0 replies; 5+ messages in thread
From: Khem Raj @ 2018-09-13 14:12 UTC (permalink / raw)
  To: Richard Purdie; +Cc: Patches and discussions about the oe-core layer

On Thu, Sep 13, 2018 at 6:14 AM Richard Purdie
<richard.purdie@linuxfoundation.org> wrote:
>
> On Wed, 2018-09-12 at 18:05 -0700, Khem Raj wrote:
> > Signed-off-by: Khem Raj <raj.khem@gmail.com>
>
> Somewhat ironically, this breaks musl builds in strace:
>
> https://autobuilder.yoctoproject.org/typhoon/#/builders/11/builds/55/steps/7/logs/step1b
> https://autobuilder.yoctoproject.org/typhoon/#/builders/27/builds/55/steps/7/logs/step1b
>

yeah, sent another fix on top.

> Cheers,
>
> Richard


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2018-09-13 14:13 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-09-13  1:05 [PATCH 1/2] linux-libc-headers: Include linux/stddef.h in linux/swab.h Khem Raj
2018-09-13  1:05 ` [PATCH 2/2] musl: Wire-up name_to_handle_at and name_to_handle_at syscalls Khem Raj
2018-09-13 13:14   ` Richard Purdie
2018-09-13 14:12     ` Khem Raj
2018-09-13  3:46 ` [PATCH 1/2] linux-libc-headers: Include linux/stddef.h in linux/swab.h Bruce Ashfield

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.