* [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.