chrony: fix build with musl

Message ID 464b10815ee2e59be56aef7c79d5569ecde913f5.1510659474.git.baruch@tkos.co.il
State Accepted
Headers show
Series
  • chrony: fix build with musl
Related show

Commit Message

Baruch Siach Nov. 14, 2017, 11:37 a.m.
The SCM_TIMESTAMPING_PKTINFO macro is missing from the socket.h header
that musl libc provides as of version 1.1.16 that we currently use in
Buildroot. Patch the code to add this macro locally until we update
musl.

Fixes:
http://autobuild.buildroot.net/results/aab/aab3210d6d0c60fb07415d9bbdb09f2d4091446c/
http://autobuild.buildroot.net/results/fc8/fc8440db025f51c176240ca127bc68a367add21c/

Cc: Nathan Lynch <ntl@pobox.com>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
---
 .../chrony/0001-ntp-fix-build-with-musl-libc.patch | 39 ++++++++++++++++++++++
 1 file changed, 39 insertions(+)
 create mode 100644 package/chrony/0001-ntp-fix-build-with-musl-libc.patch

Comments

Thomas Petazzoni Nov. 15, 2017, 10:11 p.m. | #1
Hello,

On Tue, 14 Nov 2017 13:37:54 +0200, Baruch Siach wrote:
> The SCM_TIMESTAMPING_PKTINFO macro is missing from the socket.h header
> that musl libc provides as of version 1.1.16 that we currently use in
> Buildroot. Patch the code to add this macro locally until we update
> musl.
> 
> Fixes:
> http://autobuild.buildroot.net/results/aab/aab3210d6d0c60fb07415d9bbdb09f2d4091446c/
> http://autobuild.buildroot.net/results/fc8/fc8440db025f51c176240ca127bc68a367add21c/
> 
> Cc: Nathan Lynch <ntl@pobox.com>
> Signed-off-by: Baruch Siach <baruch@tkos.co.il>
> ---
>  .../chrony/0001-ntp-fix-build-with-musl-libc.patch | 39 ++++++++++++++++++++++
>  1 file changed, 39 insertions(+)
>  create mode 100644 package/chrony/0001-ntp-fix-build-with-musl-libc.patch

Applied to master, thanks. Is the problem fixed in upstream musl? If
not, did you report the problem?

Thanks!

Thomas
Baruch Siach Nov. 16, 2017, 4:01 a.m. | #2
Hi Thomas,

On Wed, Nov 15, 2017 at 11:11:41PM +0100, Thomas Petazzoni wrote:
> On Tue, 14 Nov 2017 13:37:54 +0200, Baruch Siach wrote:
> > The SCM_TIMESTAMPING_PKTINFO macro is missing from the socket.h header
> > that musl libc provides as of version 1.1.16 that we currently use in
> > Buildroot. Patch the code to add this macro locally until we update
> > musl.
> > 
> > Fixes:
> > http://autobuild.buildroot.net/results/aab/aab3210d6d0c60fb07415d9bbdb09f2d4091446c/
> > http://autobuild.buildroot.net/results/fc8/fc8440db025f51c176240ca127bc68a367add21c/
> > 
> > Cc: Nathan Lynch <ntl@pobox.com>
> > Signed-off-by: Baruch Siach <baruch@tkos.co.il>
> > ---
> >  .../chrony/0001-ntp-fix-build-with-musl-libc.patch | 39 ++++++++++++++++++++++
> >  1 file changed, 39 insertions(+)
> >  create mode 100644 package/chrony/0001-ntp-fix-build-with-musl-libc.patch
> 
> Applied to master, thanks. Is the problem fixed in upstream musl? If
> not, did you report the problem?

musl version 1.1.18 defines the SCM_TIMESTAMPING_PKTINFO macro. So once we 
bump musl and rebuild the toolchain, we can remove this patch.

baruch
Thomas Petazzoni Nov. 16, 2017, 7:46 a.m. | #3
Hello,

On Thu, 16 Nov 2017 06:01:30 +0200, Baruch Siach wrote:

> > >  .../chrony/0001-ntp-fix-build-with-musl-libc.patch | 39 ++++++++++++++++++++++
> > >  1 file changed, 39 insertions(+)
> > >  create mode 100644 package/chrony/0001-ntp-fix-build-with-musl-libc.patch  
> > 
> > Applied to master, thanks. Is the problem fixed in upstream musl? If
> > not, did you report the problem?  
> 
> musl version 1.1.18 defines the SCM_TIMESTAMPING_PKTINFO macro. So once we 
> bump musl and rebuild the toolchain, we can remove this patch.

OK, thanks!

Thomas

Patch

diff --git a/package/chrony/0001-ntp-fix-build-with-musl-libc.patch b/package/chrony/0001-ntp-fix-build-with-musl-libc.patch
new file mode 100644
index 000000000000..c927b343f754
--- /dev/null
+++ b/package/chrony/0001-ntp-fix-build-with-musl-libc.patch
@@ -0,0 +1,39 @@ 
+From 1e64bc4c4379ae3e55be3c518e0e3e22c8c4ae77 Mon Sep 17 00:00:00 2001
+From: Baruch Siach <baruch@tkos.co.il>
+Date: Tue, 14 Nov 2017 13:23:57 +0200
+Subject: [PATCH] ntp: fix build with musl libc
+
+The configure script enables HAVE_LINUX_TIMESTAMPING_OPT_PKTINFO based
+on the existence of struct scm_ts_pktinfo and
+SOF_TIMESTAMPING_OPT_PKTINFO that were introduced in Linux kernel v4.13
+in the linux/net_tstamp.h kernel header. But this feature also requires
+SCM_TIMESTAMPING_PKTINFO that is defined in the socket.h header. musl
+libc provides its own version of socket.h, and as of musl version 1.1.16
+this macro is missing. Define this macro in the code as a temporary
+measure until musl is updated to its latest version.
+
+Signed-off-by: Baruch Siach <baruch@tkos.co.il>
+---
+Upstream status: not upstreamable
+---
+ ntp_io_linux.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/ntp_io_linux.c b/ntp_io_linux.c
+index 00caed06f7ba..2214a6f6f6c5 100644
+--- a/ntp_io_linux.c
++++ b/ntp_io_linux.c
+@@ -574,6 +574,10 @@ extract_udp_data(unsigned char *msg, NTP_Remote_Address *remote_addr, int len)
+ 
+ /* ================================================== */
+ 
++#ifndef SCM_TIMESTAMPING_PKTINFO
++#define SCM_TIMESTAMPING_PKTINFO 58
++#endif
++
+ int
+ NIO_Linux_ProcessMessage(NTP_Remote_Address *remote_addr, NTP_Local_Address *local_addr,
+                          NTP_Local_Timestamp *local_ts, struct msghdr *hdr, int length)
+-- 
+2.15.0
+