Message ID | 20181129214730.7225-1-fontaine.fabrice@gmail.com |
---|---|
State | Rejected |
Headers | show |
Series | [PATCH/next,1/1] linuxptp: fix build with kernel headers >= 4.19 | expand |
Hi Fabrice, Adding Richard Cochran who introduced this net_tstamp.h change in kernel commit 80b14dee2be. Fabrice Fontaine writes: > clockid_t has been added in net_tstamp.h since kernel 4.19 and > https://github.com/torvalds/linux/commit/80b14dee2bea128928537d61c333f24cb8cbb62f > > As a result, build fails on: > In file included from clock.c:20: > /home/peko/autobuild/instance-0/output/host/arc-buildroot-linux-uclibc/sysroot/usr/include/linux/net_tstamp.h:158:2: error: unknown type name 'clockid_t' > clockid_t clockid; /* reference clockid */ > > To fix this error, add (or move) include on time.h before net_tstamp.h > in clock.c, sk.c and timemaster.c I think this is a bug in the net_tstamp.h header. UAPI headers should not reference userspace types. It should use __kernel_clockid_t instead. Richard, can you comment on that? Thanks, baruch > Fixes: > - http://autobuild.buildroot.org/results/4f53c0b6f3395f4d1ec0aa58f9df36c8145b1066 > > Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> > --- > .../0002-fix-build-with-kernel-headers-4.19.patch | 71 ++++++++++++++++++++++ > 1 file changed, 71 insertions(+) > create mode 100644 package/linuxptp/0002-fix-build-with-kernel-headers-4.19.patch > > diff --git a/package/linuxptp/0002-fix-build-with-kernel-headers-4.19.patch b/package/linuxptp/0002-fix-build-with-kernel-headers-4.19.patch > new file mode 100644 > index 0000000000..de7c964dad > --- /dev/null > +++ b/package/linuxptp/0002-fix-build-with-kernel-headers-4.19.patch > @@ -0,0 +1,71 @@ > +From d378524e88f6228a3fbf58641f6e0002fa9d0724 Mon Sep 17 00:00:00 2001 > +From: Fabrice Fontaine <fontaine.fabrice@gmail.com> > +Date: Thu, 29 Nov 2018 22:19:19 +0100 > +Subject: [PATCH] fix build with kernel headers >= 4.19 > + > +clockid_t has been added in net_tstamp.h since kernel 4.19 and > +https://github.com/torvalds/linux/commit/80b14dee2bea128928537d61c333f24cb8cbb62f > + > +As a result, build fails on: > +In file included from clock.c:20: > +/home/peko/autobuild/instance-0/output/host/arc-buildroot-linux-uclibc/sysroot/usr/include/linux/net_tstamp.h:158:2: error: unknown type name 'clockid_t' > + clockid_t clockid; /* reference clockid */ > + > +To fix this error, add (or move) include on time.h before net_tstamp.h > +in clock.c, sk.c and timemaster.c > + > +Fixes: > + - http://autobuild.buildroot.org/results/4f53c0b6f3395f4d1ec0aa58f9df36c8145b1066 > + > +Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> > +[Upstream status: https://sourceforge.net/p/linuxptp/code/merge-requests/1] > +--- > + clock.c | 2 +- > + sk.c | 1 + > + timemaster.c | 1 + > + 3 files changed, 3 insertions(+), 1 deletion(-) > + > +diff --git a/clock.c b/clock.c > +index 56bc79b..ef9a008 100644 > +--- a/clock.c > ++++ b/clock.c > +@@ -17,11 +17,11 @@ > + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. > + */ > + #include <errno.h> > ++#include <time.h> > + #include <linux/net_tstamp.h> > + #include <poll.h> > + #include <stdlib.h> > + #include <string.h> > +-#include <time.h> > + #include <sys/queue.h> > + > + #include "address.h" > +diff --git a/sk.c b/sk.c > +index e2b1f28..30162eb 100644 > +--- a/sk.c > ++++ b/sk.c > +@@ -18,6 +18,7 @@ > + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. > + */ > + #include <errno.h> > ++#include <time.h> > + #include <linux/net_tstamp.h> > + #include <linux/sockios.h> > + #include <linux/ethtool.h> > +diff --git a/timemaster.c b/timemaster.c > +index 058678f..00db59f 100644 > +--- a/timemaster.c > ++++ b/timemaster.c > +@@ -22,6 +22,7 @@ > + #include <errno.h> > + #include <libgen.h> > + #include <limits.h> > ++#include <time.h> > + #include <linux/net_tstamp.h> > + #include <net/if.h> > + #include <signal.h> > +-- > +2.14.1 > + -- http://baruch.siach.name/blog/ ~. .~ Tk Open Systems =}------------------------------------------------ooO--U--Ooo------------{= - baruch@tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -
Hi Fabrice, [ Resending with the updated address of Richard ] Adding Richard Cochran who introduced this net_tstamp.h change in kernel commit 80b14dee2be. Fabrice Fontaine writes: > clockid_t has been added in net_tstamp.h since kernel 4.19 and > https://github.com/torvalds/linux/commit/80b14dee2bea128928537d61c333f24cb8cbb62f > > As a result, build fails on: > In file included from clock.c:20: > /home/peko/autobuild/instance-0/output/host/arc-buildroot-linux-uclibc/sysroot/usr/include/linux/net_tstamp.h:158:2: error: unknown type name 'clockid_t' > clockid_t clockid; /* reference clockid */ > > To fix this error, add (or move) include on time.h before net_tstamp.h > in clock.c, sk.c and timemaster.c I think this is a bug in the net_tstamp.h header. UAPI headers should not reference userspace types. It should use __kernel_clockid_t instead. Richard, can you comment on that? Thanks, baruch > Fixes: > - http://autobuild.buildroot.org/results/4f53c0b6f3395f4d1ec0aa58f9df36c8145b1066 > > Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> > --- > .../0002-fix-build-with-kernel-headers-4.19.patch | 71 ++++++++++++++++++++++ > 1 file changed, 71 insertions(+) > create mode 100644 package/linuxptp/0002-fix-build-with-kernel-headers-4.19.patch > > diff --git a/package/linuxptp/0002-fix-build-with-kernel-headers-4.19.patch b/package/linuxptp/0002-fix-build-with-kernel-headers-4.19.patch > new file mode 100644 > index 0000000000..de7c964dad > --- /dev/null > +++ b/package/linuxptp/0002-fix-build-with-kernel-headers-4.19.patch > @@ -0,0 +1,71 @@ > +From d378524e88f6228a3fbf58641f6e0002fa9d0724 Mon Sep 17 00:00:00 2001 > +From: Fabrice Fontaine <fontaine.fabrice@gmail.com> > +Date: Thu, 29 Nov 2018 22:19:19 +0100 > +Subject: [PATCH] fix build with kernel headers >= 4.19 > + > +clockid_t has been added in net_tstamp.h since kernel 4.19 and > +https://github.com/torvalds/linux/commit/80b14dee2bea128928537d61c333f24cb8cbb62f > + > +As a result, build fails on: > +In file included from clock.c:20: > +/home/peko/autobuild/instance-0/output/host/arc-buildroot-linux-uclibc/sysroot/usr/include/linux/net_tstamp.h:158:2: error: unknown type name 'clockid_t' > + clockid_t clockid; /* reference clockid */ > + > +To fix this error, add (or move) include on time.h before net_tstamp.h > +in clock.c, sk.c and timemaster.c > + > +Fixes: > + - http://autobuild.buildroot.org/results/4f53c0b6f3395f4d1ec0aa58f9df36c8145b1066 > + > +Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> > +[Upstream status: https://sourceforge.net/p/linuxptp/code/merge-requests/1] > +--- > + clock.c | 2 +- > + sk.c | 1 + > + timemaster.c | 1 + > + 3 files changed, 3 insertions(+), 1 deletion(-) > + > +diff --git a/clock.c b/clock.c > +index 56bc79b..ef9a008 100644 > +--- a/clock.c > ++++ b/clock.c > +@@ -17,11 +17,11 @@ > + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. > + */ > + #include <errno.h> > ++#include <time.h> > + #include <linux/net_tstamp.h> > + #include <poll.h> > + #include <stdlib.h> > + #include <string.h> > +-#include <time.h> > + #include <sys/queue.h> > + > + #include "address.h" > +diff --git a/sk.c b/sk.c > +index e2b1f28..30162eb 100644 > +--- a/sk.c > ++++ b/sk.c > +@@ -18,6 +18,7 @@ > + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. > + */ > + #include <errno.h> > ++#include <time.h> > + #include <linux/net_tstamp.h> > + #include <linux/sockios.h> > + #include <linux/ethtool.h> > +diff --git a/timemaster.c b/timemaster.c > +index 058678f..00db59f 100644 > +--- a/timemaster.c > ++++ b/timemaster.c > +@@ -22,6 +22,7 @@ > + #include <errno.h> > + #include <libgen.h> > + #include <limits.h> > ++#include <time.h> > + #include <linux/net_tstamp.h> > + #include <net/if.h> > + #include <signal.h> > +-- > +2.14.1 > + -- http://baruch.siach.name/blog/ ~. .~ Tk Open Systems =}------------------------------------------------ooO--U--Ooo------------{= - baruch@tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -
Hello, On Fri, 30 Nov 2018 06:26:55 +0200, Baruch Siach wrote: > [ Resending with the updated address of Richard ] > > Adding Richard Cochran who introduced this net_tstamp.h change in kernel > commit 80b14dee2be. > > Fabrice Fontaine writes: > > clockid_t has been added in net_tstamp.h since kernel 4.19 and > > https://github.com/torvalds/linux/commit/80b14dee2bea128928537d61c333f24cb8cbb62f > > > > As a result, build fails on: > > In file included from clock.c:20: > > /home/peko/autobuild/instance-0/output/host/arc-buildroot-linux-uclibc/sysroot/usr/include/linux/net_tstamp.h:158:2: error: unknown type name 'clockid_t' > > clockid_t clockid; /* reference clockid */ > > > > To fix this error, add (or move) include on time.h before net_tstamp.h > > in clock.c, sk.c and timemaster.c > > I think this is a bug in the net_tstamp.h header. UAPI headers should > not reference userspace types. It should use __kernel_clockid_t instead. > > Richard, can you comment on that? Any update on this? I agree with Baruch here, __kernel_clockid_t should be used. However, 4.19 is already released with this clockid_t reference, so I guess we will anyway have to support that ? Thanks, Thomas
Hi Thomas, Thomas Petazzoni writes: > On Fri, 30 Nov 2018 06:26:55 +0200, Baruch Siach wrote: > >> [ Resending with the updated address of Richard ] >> >> Adding Richard Cochran who introduced this net_tstamp.h change in kernel >> commit 80b14dee2be. >> >> Fabrice Fontaine writes: >> > clockid_t has been added in net_tstamp.h since kernel 4.19 and >> > https://github.com/torvalds/linux/commit/80b14dee2bea128928537d61c333f24cb8cbb62f >> > >> > As a result, build fails on: >> > In file included from clock.c:20: >> > /home/peko/autobuild/instance-0/output/host/arc-buildroot-linux-uclibc/sysroot/usr/include/linux/net_tstamp.h:158:2: error: unknown type name 'clockid_t' >> > clockid_t clockid; /* reference clockid */ >> > >> > To fix this error, add (or move) include on time.h before net_tstamp.h >> > in clock.c, sk.c and timemaster.c >> >> I think this is a bug in the net_tstamp.h header. UAPI headers should >> not reference userspace types. It should use __kernel_clockid_t instead. >> >> Richard, can you comment on that? > > Any update on this? I agree with Baruch here, __kernel_clockid_t should > be used. > > However, 4.19 is already released with this clockid_t reference, so I > guess we will anyway have to support that ? A patch fixing that would be backported to 4.19.x I think. So unless some external toolchain sticks to older buggy header, we can get away with that. baruch -- http://baruch.siach.name/blog/ ~. .~ Tk Open Systems =}------------------------------------------------ooO--U--Ooo------------{= - baruch@tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -
Hello Richard, On Sun, 9 Dec 2018 17:59:34 -0800, Richard Cochran wrote: > > However, 4.19 is already released with this clockid_t reference, so I > > guess we will anyway have to support that ? > > Please take this question up with Jesus Sanchez-Palencia on netdev > mailing list. Yesterday, when I replied to this thread, which has Jesus in Cc, I got: <jesus.sanchez-palencia@intel.com>: host mga14.intel.com[192.55.52.115] said: 550 #5.1.0 Address rejected. (in reply to RCPT TO command) So I'm not sure what's going on, but Jesus is probably not receiving all his e-mails. Best regards, Thomas
Hello, On Thu, 29 Nov 2018 22:47:30 +0100, Fabrice Fontaine wrote: > clockid_t has been added in net_tstamp.h since kernel 4.19 and > https://github.com/torvalds/linux/commit/80b14dee2bea128928537d61c333f24cb8cbb62f > > As a result, build fails on: > In file included from clock.c:20: > /home/peko/autobuild/instance-0/output/host/arc-buildroot-linux-uclibc/sysroot/usr/include/linux/net_tstamp.h:158:2: error: unknown type name 'clockid_t' > clockid_t clockid; /* reference clockid */ > > To fix this error, add (or move) include on time.h before net_tstamp.h > in clock.c, sk.c and timemaster.c > > Fixes: > - http://autobuild.buildroot.org/results/4f53c0b6f3395f4d1ec0aa58f9df36c8145b1066 > > Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> The issue has been fixed in the upstream Linux kernel: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/include/uapi/linux/net_tstamp.h?id=e2c4cf7f98a519eb4d95532bfa06bcaf3562fed5 This commit is part of Linux 4.20. It has a "Fixes" tag, so it should normally be backported to Linux 4.19 at some point, even though this hasn't happened yet. So instead of doing a work around in linuxptp, we'll use the upstream Linux kernel fix. Best regards, Thomas
diff --git a/package/linuxptp/0002-fix-build-with-kernel-headers-4.19.patch b/package/linuxptp/0002-fix-build-with-kernel-headers-4.19.patch new file mode 100644 index 0000000000..de7c964dad --- /dev/null +++ b/package/linuxptp/0002-fix-build-with-kernel-headers-4.19.patch @@ -0,0 +1,71 @@ +From d378524e88f6228a3fbf58641f6e0002fa9d0724 Mon Sep 17 00:00:00 2001 +From: Fabrice Fontaine <fontaine.fabrice@gmail.com> +Date: Thu, 29 Nov 2018 22:19:19 +0100 +Subject: [PATCH] fix build with kernel headers >= 4.19 + +clockid_t has been added in net_tstamp.h since kernel 4.19 and +https://github.com/torvalds/linux/commit/80b14dee2bea128928537d61c333f24cb8cbb62f + +As a result, build fails on: +In file included from clock.c:20: +/home/peko/autobuild/instance-0/output/host/arc-buildroot-linux-uclibc/sysroot/usr/include/linux/net_tstamp.h:158:2: error: unknown type name 'clockid_t' + clockid_t clockid; /* reference clockid */ + +To fix this error, add (or move) include on time.h before net_tstamp.h +in clock.c, sk.c and timemaster.c + +Fixes: + - http://autobuild.buildroot.org/results/4f53c0b6f3395f4d1ec0aa58f9df36c8145b1066 + +Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> +[Upstream status: https://sourceforge.net/p/linuxptp/code/merge-requests/1] +--- + clock.c | 2 +- + sk.c | 1 + + timemaster.c | 1 + + 3 files changed, 3 insertions(+), 1 deletion(-) + +diff --git a/clock.c b/clock.c +index 56bc79b..ef9a008 100644 +--- a/clock.c ++++ b/clock.c +@@ -17,11 +17,11 @@ + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + #include <errno.h> ++#include <time.h> + #include <linux/net_tstamp.h> + #include <poll.h> + #include <stdlib.h> + #include <string.h> +-#include <time.h> + #include <sys/queue.h> + + #include "address.h" +diff --git a/sk.c b/sk.c +index e2b1f28..30162eb 100644 +--- a/sk.c ++++ b/sk.c +@@ -18,6 +18,7 @@ + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + #include <errno.h> ++#include <time.h> + #include <linux/net_tstamp.h> + #include <linux/sockios.h> + #include <linux/ethtool.h> +diff --git a/timemaster.c b/timemaster.c +index 058678f..00db59f 100644 +--- a/timemaster.c ++++ b/timemaster.c +@@ -22,6 +22,7 @@ + #include <errno.h> + #include <libgen.h> + #include <limits.h> ++#include <time.h> + #include <linux/net_tstamp.h> + #include <net/if.h> + #include <signal.h> +-- +2.14.1 +
clockid_t has been added in net_tstamp.h since kernel 4.19 and https://github.com/torvalds/linux/commit/80b14dee2bea128928537d61c333f24cb8cbb62f As a result, build fails on: In file included from clock.c:20: /home/peko/autobuild/instance-0/output/host/arc-buildroot-linux-uclibc/sysroot/usr/include/linux/net_tstamp.h:158:2: error: unknown type name 'clockid_t' clockid_t clockid; /* reference clockid */ To fix this error, add (or move) include on time.h before net_tstamp.h in clock.c, sk.c and timemaster.c Fixes: - http://autobuild.buildroot.org/results/4f53c0b6f3395f4d1ec0aa58f9df36c8145b1066 Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> --- .../0002-fix-build-with-kernel-headers-4.19.patch | 71 ++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 package/linuxptp/0002-fix-build-with-kernel-headers-4.19.patch