Skip to contentSkip to conversation

boot/syslinux: Fix build with glibc 2.23+

PATCH Superseded Alexander Sverdlin 4 participants 4 messages Nov 14, 2018

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 boot/syslinux: Fix build with glibc 2.23+

When building with glibc 2.23+, the "major", "minor" and "makedev" functions are defined in "sys/sysmacros.h". The patch "extlinux: pull in sys/sysmacros.h for major/minor/makedev", applied to Syslinux during 2016Apr, should help. Please note that not only Syslinux is affected by this change in glibc.

---
 ...-sysmacros-h-for-major-minor-makedev.patch | 34 +++++++++++++++++++
 1 file changed, 34 insertions(+)
 create mode 100644 boot/syslinux/0012-pull-in-sys-sysmacros-h-for-major-minor-makedev.patch
boot/syslinux/0012-pull-in-sys-sysmacros-h-for-major-minor-makedev.patch new file +34 -0
new file mode 100644
index 0000000000..beba5cc245
@@ -0,0 +1,34 @@
+From 1a74985b2a404639b08882c57f3147229605dfd5 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <[email protected]>
+Date: Tue, 19 Apr 2016 06:50:31 -0400
+Subject: [PATCH] extlinux: pull in sys/sysmacros.h for major/minor/makedev
+
+These functions are defined in sys/sysmacros.h, so add the include to
+main.c.  This is already handled correctly in mountinfo.c.  Otherwise
+we get build failures like:
+
+main.o: In function 'find_device_sysfs':
+extlinux/main.c:1131: undefined reference to 'minor'
+
+Signed-off-by: Mike Frysinger <[email protected]>
+Signed-off-by: Gene Cumm <[email protected]>
+Signed-off-by: Alexander Sverdlin <[email protected]>
+---
+ extlinux/main.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/extlinux/main.c b/extlinux/main.c
+index a7ebd49..ebff7ea 100644
+--- a/extlinux/main.c
++++ b/extlinux/main.c
+@@ -38,6 +38,7 @@
+ #include <sysexits.h>
+ #include <sys/ioctl.h>
+ #include <sys/stat.h>
++#include <sys/sysmacros.h>
+ #include <sys/types.h>
+ #include <sys/mount.h>
+ #include <sys/vfs.h>
+-- 
+2.10.5.GIT
+
Signature · 1 line
2.19.1
#1 lore raw

PATCH 1/1 boot/syslinux: Fix build with glibc 2.23+

Quoted 64 lines

From: "Alexander Sverdlin" <[email protected]>
To: "buildroot" <[email protected]>
Cc: "Alexander Sverdlin" <[email protected]>, "Thomas Petazzoni" <[email protected]>, "DATACOM" <[email protected]>
Sent: Ter?a-feira, 13 de novembro de 2018 22:02:05
Subject: [PATCH] boot/syslinux: Fix build with glibc 2.23+

When building with glibc 2.23+, the "major", "minor" and "makedev" functions are defined in "sys/sysmacros.h". The patch "extlinux: pull in sys/sysmacros.h for major/minor/makedev", applied to Syslinux during 2016Apr, should help. Please note that not only Syslinux is affected by this change in glibc.

---
...-sysmacros-h-for-major-minor-makedev.patch | 34 +++++++++++++++++++

1 file changed, 34 insertions(+)

create mode 100644 boot/syslinux/0012-pull-in-sys-sysmacros-h-for-major-minor-makedev.patch

diff --git a/boot/syslinux/0012-pull-in-sys-sysmacros-h-for-major-minor-makedev.patch b/boot/syslinux/0012-pull-in-sys-sysmacros-h-for-major-minor-makedev.patch new file mode 100644
index 0000000000..beba5cc245

boot/syslinux/0012-pull-in-sys-sysmacros-h-for-major-minor-makedev.patch new file +34 -1
@@ -0,0 +1,34 @@
+From 1a74985b2a404639b08882c57f3147229605dfd5 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <[email protected]>
+Date: Tue, 19 Apr 2016 06:50:31 -0400
+Subject: [PATCH] extlinux: pull in sys/sysmacros.h for major/minor/makedev
+
+These functions are defined in sys/sysmacros.h, so add the include to
+main.c.  This is already handled correctly in mountinfo.c.  Otherwise
+we get build failures like:
+
+main.o: In function 'find_device_sysfs':
+extlinux/main.c:1131: undefined reference to 'minor'
+
+Signed-off-by: Mike Frysinger <[email protected]>
+Signed-off-by: Gene Cumm <[email protected]>
+Signed-off-by: Alexander Sverdlin <[email protected]>
+---
+ extlinux/main.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/extlinux/main.c b/extlinux/main.c
+index a7ebd49..ebff7ea 100644
+--- a/extlinux/main.c
++++ b/extlinux/main.c
+@@ -38,6 +38,7 @@
+ #include <sysexits.h>
+ #include <sys/ioctl.h>
+ #include <sys/stat.h>
++#include <sys/sysmacros.h>
+ #include <sys/types.h>
+ #include <sys/mount.h>
+ #include <sys/vfs.h>
+--
+2.10.5.GIT
+
--
Quoted 1 line

2.19.1

#2 lore raw

PATCH 1/1 boot/syslinux: Fix build with glibc 2.23+

In reply to Alexander Sverdlin

Hi Alexander,

Quoted 1 line · Alexander Sverdlin

When building with glibc 2.23+, the "major", "minor" and "makedev"

Should be "glibc 2.28+". Ditto for the subject line.

Quoted 7 lines

functions are defined in "sys/sysmacros.h". The patch "extlinux: pull in sys/sysmacros.h for major/minor/makedev", applied to Syslinux during 2016Apr, should help. Please note that not only Syslinux is affected by this change in glibc.

This line should be above the sign-off as part of the commit log.

baruch

Signature · 3 lines
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -
#3 lore raw

PATCH 1/1 boot/syslinux: Fix build with glibc 2.23+

In reply to Alexander Sverdlin

Hello,

Quoted 1 line · Alexander Sverdlin

When building with glibc 2.23+, the "major", "minor" and "makedev"

It is really since glibc 2.28 that there is a build issue related to this. Prior to glibc 2.28, <sys/sysmacros.h> was implicitly included by another header that was very commonly included, "hiding" the issue.

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com