All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/2] openntpd: fix musl build with older kernel headers
@ 2017-09-29  9:13 Baruch Siach
  2017-09-29  9:13 ` [Buildroot] [PATCH 2/2] libressl: " Baruch Siach
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Baruch Siach @ 2017-09-29  9:13 UTC (permalink / raw)
  To: buildroot

musl provides its own SYS_getrandom definition, but not GRND_NONBLOCK.
This breaks the build with kernel headers older than v3.17. Add a patch
adding a local definition of GRND_NONBLOCK to fix the build.

The getentropy_linux.c file is in upstream tarball, but not in its git
repository. It originates form OpenBSD. For this reason the patch is
against the tarball, but not git formatted.

Fixes:
http://autobuild.buildroot.net/results/623/6235ddc095bc1984439e7339d590b11581a3e257/
http://autobuild.buildroot.net/results/648/648e7c91edcf893fa780de9bb44c05f5f842a2e8/
http://autobuild.buildroot.net/results/7da/7da71263a6e9b780031f1f6185c760d11dfc994e/

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
---
 package/openntpd/0002-fix-musl.patch | 38 ++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)
 create mode 100644 package/openntpd/0002-fix-musl.patch

diff --git a/package/openntpd/0002-fix-musl.patch b/package/openntpd/0002-fix-musl.patch
new file mode 100644
index 000000000000..e369d5a8ae60
--- /dev/null
+++ b/package/openntpd/0002-fix-musl.patch
@@ -0,0 +1,38 @@
+From: Baruch Siach <baruch@tkos.co.il>
+Date: Fri, 29 Sep 2017 10:06:52 +0300
+Subject: [PATCH] Fix build with musl and older Linux kernel
+
+The musl libc carries its own copy of Linux system calls. When building
+with Linux headers older than v3.17, musl provides SYS_getrandom
+definition, but not GRND_NONBLOCK. This causes build failure for
+libressl and openntpd:
+
+getentropy_linux.c: In function 'getentropy_getrandom':
+getentropy_linux.c:205:42: error: 'GRND_NONBLOCK' undeclared (first use in this function)
+   ret = syscall(SYS_getrandom, buf, len, GRND_NONBLOCK);
+                                          ^~~~~~~~~~~~~
+
+Define GRND_NONBLOCK locally when its definition is missing to fix the
+build. There should be no run-time effect. Older kernels return ENOSYS
+for unsupported syscall().
+
+[ from upstream pull request with file location changed ]
+Signed-off-by: Baruch Siach <baruch@tkos.co.il>
+---
+Upstream status: https://github.com/libressl-portable/openbsd/pull/82
+
+diff -Nuar openntpd-6.2p2-orig/compat/getentropy_linux.c openntpd-6.2p2/compat/getentropy_linux.c
+--- openntpd-6.2p2-orig/compat/getentropy_linux.c	2017-09-07 22:12:02.000000000 +0300
++++ openntpd-6.2p2/compat/getentropy_linux.c	2017-09-29 11:54:54.856245770 +0300
+@@ -194,6 +194,11 @@
+ }
+ 
+ #ifdef SYS_getrandom
++
++#ifndef GRND_NONBLOCK
++#define GRND_NONBLOCK   0x0001
++#endif
++
+ static int
+ getentropy_getrandom(void *buf, size_t len)
+ {
-- 
2.14.2

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

* [Buildroot] [PATCH 2/2] libressl: fix musl build with older kernel headers
  2017-09-29  9:13 [Buildroot] [PATCH 1/2] openntpd: fix musl build with older kernel headers Baruch Siach
@ 2017-09-29  9:13 ` Baruch Siach
  2017-10-06 18:59   ` Arnout Vandecappelle
  2017-10-05 19:20 ` [Buildroot] [PATCH 1/2] openntpd: " Arnout Vandecappelle
  2017-10-05 20:17 ` Peter Korsgaard
  2 siblings, 1 reply; 7+ messages in thread
From: Baruch Siach @ 2017-09-29  9:13 UTC (permalink / raw)
  To: buildroot

musl provides its own SYS_getrandom definition, but not GRND_NONBLOCK.
This breaks the build with kernel headers older than v3.17. Add a patch
adding a local definition of GRND_NONBLOCK to fix the build.

The following defconfig reproduces the build failure:

BR2_x86_pentium_mmx=y
BR2_TOOLCHAIN_BUILDROOT_MUSL=y
BR2_KERNEL_HEADERS_3_12=y
BR2_PACKAGE_LIBRESSL=y

The getentropy_linux.c file is in upstream tarball, but not in its git
repository. It originates form OpenBSD. For this reason the patch is
against the tarball, but not git formatted.

Cc: Adam Duskett <aduskett@gmail.com>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
---
 package/libressl/0002-fix-musl.patch | 38 ++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)
 create mode 100644 package/libressl/0002-fix-musl.patch

diff --git a/package/libressl/0002-fix-musl.patch b/package/libressl/0002-fix-musl.patch
new file mode 100644
index 000000000000..ddb953402d91
--- /dev/null
+++ b/package/libressl/0002-fix-musl.patch
@@ -0,0 +1,38 @@
+From: Baruch Siach <baruch@tkos.co.il>
+Date: Fri, 29 Sep 2017 10:06:52 +0300
+Subject: [PATCH] Fix build with musl and older Linux kernel
+
+The musl libc carries its own copy of Linux system calls. When building
+with Linux headers older than v3.17, musl provides SYS_getrandom
+definition, but not GRND_NONBLOCK. This causes build failure for
+libressl and openntpd:
+
+getentropy_linux.c: In function 'getentropy_getrandom':
+getentropy_linux.c:205:42: error: 'GRND_NONBLOCK' undeclared (first use in this function)
+   ret = syscall(SYS_getrandom, buf, len, GRND_NONBLOCK);
+                                          ^~~~~~~~~~~~~
+
+Define GRND_NONBLOCK locally when its definition is missing to fix the
+build. There should be no run-time effect. Older kernels return ENOSYS
+for unsupported syscall().
+
+[ from upstream pull request with file location changed ]
+Signed-off-by: Baruch Siach <baruch@tkos.co.il>
+---
+Upstream status: https://github.com/libressl-portable/openbsd/pull/82
+
+diff -Nuar libressl-2.5.5-orig/crypto/compat/getentropy_linux.c libressl-2.5.5/crypto/compat/getentropy_linux.c
+--- libressl-2.5.5-orig/crypto/compat/getentropy_linux.c	2017-07-09 13:59:48.000000000 +0300
++++ libressl-2.5.5/crypto/compat/getentropy_linux.c	2017-09-29 10:03:32.447958829 +0300
+@@ -194,6 +194,11 @@
+ }
+ 
+ #ifdef SYS_getrandom
++
++#ifndef GRND_NONBLOCK
++#define GRND_NONBLOCK   0x0001
++#endif
++
+ static int
+ getentropy_getrandom(void *buf, size_t len)
+ {
-- 
2.14.2

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

* [Buildroot] [PATCH 1/2] openntpd: fix musl build with older kernel headers
  2017-09-29  9:13 [Buildroot] [PATCH 1/2] openntpd: fix musl build with older kernel headers Baruch Siach
  2017-09-29  9:13 ` [Buildroot] [PATCH 2/2] libressl: " Baruch Siach
@ 2017-10-05 19:20 ` Arnout Vandecappelle
  2017-10-05 20:17 ` Peter Korsgaard
  2 siblings, 0 replies; 7+ messages in thread
From: Arnout Vandecappelle @ 2017-10-05 19:20 UTC (permalink / raw)
  To: buildroot



On 29-09-17 11:13, Baruch Siach wrote:
> musl provides its own SYS_getrandom definition, but not GRND_NONBLOCK.
> This breaks the build with kernel headers older than v3.17. Add a patch
> adding a local definition of GRND_NONBLOCK to fix the build.
> 
> The getentropy_linux.c file is in upstream tarball, but not in its git
> repository. It originates form OpenBSD. For this reason the patch is
> against the tarball, but not git formatted.
> 
> Fixes:
> http://autobuild.buildroot.net/results/623/6235ddc095bc1984439e7339d590b11581a3e257/
> http://autobuild.buildroot.net/results/648/648e7c91edcf893fa780de9bb44c05f5f842a2e8/
> http://autobuild.buildroot.net/results/7da/7da71263a6e9b780031f1f6185c760d11dfc994e/
> 
> Signed-off-by: Baruch Siach <baruch@tkos.co.il>

 Applied to master, thanks, after fixing a small typo in the commit log.

 Regards,
 Arnout

> ---
>  package/openntpd/0002-fix-musl.patch | 38 ++++++++++++++++++++++++++++++++++++
>  1 file changed, 38 insertions(+)
>  create mode 100644 package/openntpd/0002-fix-musl.patch
> 
> diff --git a/package/openntpd/0002-fix-musl.patch b/package/openntpd/0002-fix-musl.patch
> new file mode 100644
> index 000000000000..e369d5a8ae60
> --- /dev/null
> +++ b/package/openntpd/0002-fix-musl.patch
> @@ -0,0 +1,38 @@
> +From: Baruch Siach <baruch@tkos.co.il>
> +Date: Fri, 29 Sep 2017 10:06:52 +0300
> +Subject: [PATCH] Fix build with musl and older Linux kernel
> +
> +The musl libc carries its own copy of Linux system calls. When building
> +with Linux headers older than v3.17, musl provides SYS_getrandom
> +definition, but not GRND_NONBLOCK. This causes build failure for
> +libressl and openntpd:
> +
> +getentropy_linux.c: In function 'getentropy_getrandom':
> +getentropy_linux.c:205:42: error: 'GRND_NONBLOCK' undeclared (first use in this function)
> +   ret = syscall(SYS_getrandom, buf, len, GRND_NONBLOCK);
> +                                          ^~~~~~~~~~~~~
> +
> +Define GRND_NONBLOCK locally when its definition is missing to fix the
> +build. There should be no run-time effect. Older kernels return ENOSYS
> +for unsupported syscall().
> +
> +[ from upstream pull request with file location changed ]
> +Signed-off-by: Baruch Siach <baruch@tkos.co.il>
> +---
> +Upstream status: https://github.com/libressl-portable/openbsd/pull/82
> +
> +diff -Nuar openntpd-6.2p2-orig/compat/getentropy_linux.c openntpd-6.2p2/compat/getentropy_linux.c
> +--- openntpd-6.2p2-orig/compat/getentropy_linux.c	2017-09-07 22:12:02.000000000 +0300
> ++++ openntpd-6.2p2/compat/getentropy_linux.c	2017-09-29 11:54:54.856245770 +0300
> +@@ -194,6 +194,11 @@
> + }
> + 
> + #ifdef SYS_getrandom
> ++
> ++#ifndef GRND_NONBLOCK
> ++#define GRND_NONBLOCK   0x0001
> ++#endif
> ++
> + static int
> + getentropy_getrandom(void *buf, size_t len)
> + {
> 

-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF

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

* [Buildroot] [PATCH 1/2] openntpd: fix musl build with older kernel headers
  2017-09-29  9:13 [Buildroot] [PATCH 1/2] openntpd: fix musl build with older kernel headers Baruch Siach
  2017-09-29  9:13 ` [Buildroot] [PATCH 2/2] libressl: " Baruch Siach
  2017-10-05 19:20 ` [Buildroot] [PATCH 1/2] openntpd: " Arnout Vandecappelle
@ 2017-10-05 20:17 ` Peter Korsgaard
  2017-10-06  4:35   ` Baruch Siach
  2 siblings, 1 reply; 7+ messages in thread
From: Peter Korsgaard @ 2017-10-05 20:17 UTC (permalink / raw)
  To: buildroot

>>>>> "Baruch" == Baruch Siach <baruch@tkos.co.il> writes:

 > musl provides its own SYS_getrandom definition, but not GRND_NONBLOCK.
 > This breaks the build with kernel headers older than v3.17. Add a patch
 > adding a local definition of GRND_NONBLOCK to fix the build.

 > The getentropy_linux.c file is in upstream tarball, but not in its git
 > repository. It originates form OpenBSD. For this reason the patch is
 > against the tarball, but not git formatted.

FYI, I believe upstream openntpd development only supports openbsd,
similar to E.G. openssh, and the linux specific code is in
openntpd-portable:

https://github.com/openntpd-portable/openntpd-portable

-- 
Bye, Peter Korsgaard

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

* [Buildroot] [PATCH 1/2] openntpd: fix musl build with older kernel headers
  2017-10-05 20:17 ` Peter Korsgaard
@ 2017-10-06  4:35   ` Baruch Siach
  2017-10-06  5:51     ` Peter Korsgaard
  0 siblings, 1 reply; 7+ messages in thread
From: Baruch Siach @ 2017-10-06  4:35 UTC (permalink / raw)
  To: buildroot

Hi Peter,

On Thu, Oct 05, 2017 at 10:17:56PM +0200, Peter Korsgaard wrote:
> >>>>> "Baruch" == Baruch Siach <baruch@tkos.co.il> writes:
> 
>  > musl provides its own SYS_getrandom definition, but not GRND_NONBLOCK.
>  > This breaks the build with kernel headers older than v3.17. Add a patch
>  > adding a local definition of GRND_NONBLOCK to fix the build.
> 
>  > The getentropy_linux.c file is in upstream tarball, but not in its git
>  > repository. It originates form OpenBSD. For this reason the patch is
>  > against the tarball, but not git formatted.
> 
> FYI, I believe upstream openntpd development only supports openbsd,
> similar to E.G. openssh, and the linux specific code is in
> openntpd-portable:
> 
> https://github.com/openntpd-portable/openntpd-portable

The getentropy_linux.c file is not in the openntpd-portable git repo:

  https://github.com/openntpd-portable/openntpd-portable/tree/master/compat

It is apparently copied when generating the tarball from the code openbsd 
libressl:

  https://github.com/libressl-portable/openbsd/blob/master/src/lib/libcrypto/arc4random/getentropy_linux.c

The same goes for libressl-portable, the target of the second patch in this 
series. For that reason the upstream pull request is against the openbsd tree, 
the real upstream for that file.

baruch

-- 
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -

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

* [Buildroot] [PATCH 1/2] openntpd: fix musl build with older kernel headers
  2017-10-06  4:35   ` Baruch Siach
@ 2017-10-06  5:51     ` Peter Korsgaard
  0 siblings, 0 replies; 7+ messages in thread
From: Peter Korsgaard @ 2017-10-06  5:51 UTC (permalink / raw)
  To: buildroot

>>>>> "Baruch" == Baruch Siach <baruch@tkos.co.il> writes:

Hi,

 >> FYI, I believe upstream openntpd development only supports openbsd,
 >> similar to E.G. openssh, and the linux specific code is in
 >> openntpd-portable:
 >> 
 >> https://github.com/openntpd-portable/openntpd-portable

 > The getentropy_linux.c file is not in the openntpd-portable git repo:

 >   https://github.com/openntpd-portable/openntpd-portable/tree/master/compat

Sorry - You're right, I must have been tired yesterday evening.

 > It is apparently copied when generating the tarball from the code openbsd 
 > libressl:

>   https://github.com/libressl-portable/openbsd/blob/master/src/lib/libcrypto/arc4random/getentropy_linux.c

What a mess :/

 > The same goes for libressl-portable, the target of the second patch in this 
 > series. For that reason the upstream pull request is against the openbsd tree, 
 > the real upstream for that file.

Ok, thanks.

-- 
Bye, Peter Korsgaard

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

* [Buildroot] [PATCH 2/2] libressl: fix musl build with older kernel headers
  2017-09-29  9:13 ` [Buildroot] [PATCH 2/2] libressl: " Baruch Siach
@ 2017-10-06 18:59   ` Arnout Vandecappelle
  0 siblings, 0 replies; 7+ messages in thread
From: Arnout Vandecappelle @ 2017-10-06 18:59 UTC (permalink / raw)
  To: buildroot



On 29-09-17 11:13, Baruch Siach wrote:
> musl provides its own SYS_getrandom definition, but not GRND_NONBLOCK.
> This breaks the build with kernel headers older than v3.17. Add a patch
> adding a local definition of GRND_NONBLOCK to fix the build.
> 
> The following defconfig reproduces the build failure:
> 
> BR2_x86_pentium_mmx=y
> BR2_TOOLCHAIN_BUILDROOT_MUSL=y
> BR2_KERNEL_HEADERS_3_12=y
> BR2_PACKAGE_LIBRESSL=y
> 
> The getentropy_linux.c file is in upstream tarball, but not in its git
> repository. It originates form OpenBSD. For this reason the patch is
> against the tarball, but not git formatted.
> 
> Cc: Adam Duskett <aduskett@gmail.com>
> Signed-off-by: Baruch Siach <baruch@tkos.co.il>

 Applied to master, thanks.

> ---
>  package/libressl/0002-fix-musl.patch | 38 ++++++++++++++++++++++++++++++++++++
>  1 file changed, 38 insertions(+)
>  create mode 100644 package/libressl/0002-fix-musl.patch
> 
> diff --git a/package/libressl/0002-fix-musl.patch b/package/libressl/0002-fix-musl.patch

 But I changed the name to correspond to the subject line.

 Regards,
 Arnout

-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF

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

end of thread, other threads:[~2017-10-06 18:59 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-09-29  9:13 [Buildroot] [PATCH 1/2] openntpd: fix musl build with older kernel headers Baruch Siach
2017-09-29  9:13 ` [Buildroot] [PATCH 2/2] libressl: " Baruch Siach
2017-10-06 18:59   ` Arnout Vandecappelle
2017-10-05 19:20 ` [Buildroot] [PATCH 1/2] openntpd: " Arnout Vandecappelle
2017-10-05 20:17 ` Peter Korsgaard
2017-10-06  4:35   ` Baruch Siach
2017-10-06  5:51     ` Peter Korsgaard

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.