Skip to contentSkip to conversation

New: util-list: schedutils doesn't build on target w/o enabling basic binaries

Buildroot Superseded bugzilla at busybox.net 4 participants 11 messages Feb 12, 2017 – Feb 20, 2017

lore
Share & tools
lore
#0 lore raw

https://bugs.busybox.net/show_bug.cgi?id=9656

Bug ID: 9656
Summary: util-list: schedutils doesn't build on target w/o
enabling basic binaries
Product: buildroot
Version: unspecified
Hardware: All
OS: Linux
Status: NEW
Severity: normal
Priority: P5
Component: Other
Assignee: unassigned at buildroot.uclibc.org
Reporter: aholtzma at gmail.com
CC: buildroot at uclibc.org
Target Milestone: ---

When I tried to add the schedutils portion of util-linux to my build, I noticed that that it wasn't getting built on the target. Further investigation shows that the culprit was the --disable-all-programs that was turned on if the basic binaries option (BR2_PACKAGE_UTIL_LINUX_BINARIES) was not set. If --disable-all-programs is set, the schedutils will not be built. This is not the case for other options like mount, which *do* get built. This is probably a autoconf bug in util-linux.

Version is git commit c77f7c689ffc8c5fd139e4622bd6f9d315bbc254, which is just after the disable-all-programs change landed.

Signature · 2 lines
You are receiving this mail because:
You are on the CC list for the bug.
#1 lore raw

[Buildroot] [Bug 9656] util-linux: schedutils doesn't build on target w/o enabling basic binaries

https://bugs.busybox.net/show_bug.cgi?id=9656

Aaron Holtzman <[email protected]> changed:

What |Removed |Added
----------------------------------------------------------------------------

            Summary|util-list: schedutils       |util-linux: schedutils
                   |doesn't build on target w/o |doesn't build on target w/o
                   |enabling basic binaries     |enabling basic binaries
Signature · 2 lines
You are receiving this mail because:
You are on the CC list for the bug.
#7 lore raw

[Buildroot] [Bug 9656] util-linux: schedutils doesn't build on target w/o enabling basic binaries

In reply to bugzilla at busybox.net

https://bugs.busybox.net/show_bug.cgi?id=9656

Carlos Santos <[email protected]> changed:

What |Removed |Added
----------------------------------------------------------------------------
Assignee|unassigned at buildroot.uclibc |casantos at datacom.ind.br
|.org |

Signature · 2 lines
You are receiving this mail because:
You are on the CC list for the bug.
#8 lore raw

[Buildroot] [Bug 9656] util-linux: schedutils doesn't build on target w/o enabling basic binaries

In reply to bugzilla at busybox.net

https://bugs.busybox.net/show_bug.cgi?id=9656

Carlos Santos <[email protected]> changed:

What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED

--- Comment #1 from Carlos Santos <[email protected]> ---
I confirmed that this is an autoconf bug, so let's move the discussion to the util-linux forum.

Signature · 2 lines
You are receiving this mail because:
You are on the CC list for the bug.
#2 lore raw

PATCH 1/1 util-linux: build schedutils without enabling basic binaries

In reply to bugzilla at busybox.net

Pull a patch already sent upstream tp fix AM_CONDITIONAL parameters that conditioned the build of ionice, taskset an chrt to the wrong variable.

Fixes:
https://bugs.busybox.net/show_bug.cgi?id=9656
https://github.com/karelzak/util-linux/issues/415

---
 ...build-when-configured-with-disable-all-pr.patch | 52 ++++++++++++++++++++++
 1 file changed, 52 insertions(+)
 create mode 100644 package/util-linux/0003-schedutils-build-when-configured-with-disable-all-pr.patch
package/util-linux/0003-schedutils-build-when-configured-with-disable-all-pr.patch new file +52 -0
new file mode 100644
index 0000000..812927e
@@ -0,0 +1,52 @@
+From e1578c3d32cc9f817f19729b5eee21e49b639185 Mon Sep 17 00:00:00 2001
+From: Carlos Santos <[email protected]>
+Date: Sat, 18 Feb 2017 17:23:37 -0200
+Subject: [PATCH] schedutils: build when configured with --disable-all-programs
+
+Fix AM_CONDITIONAL parameters that conditioned ionice, taskset an chrt
+to the values of build_{ionice,taskset,chrt} respectively, instead of
+build_schedutils.
+
+Fixes:
+  https://bugs.busybox.net/show_bug.cgi?id=9656
+  https://github.com/karelzak/util-linux/issues/415
+
+Signed-off-by: Carlos Santos <[email protected]>
+---
+ configure.ac | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index ad241fe..1933741 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1935,7 +1935,7 @@ UL_REQUIRES_SYSCALL_CHECK([ionice],
+ 	  [x86_64*],	[252])],
+ 	[ioprio_get])
+ 
+-AM_CONDITIONAL([BUILD_IONICE], [test "x$build_ionice" = xyes])
++AM_CONDITIONAL([BUILD_IONICE], [test "x$build_schedutils" = xyes])
+ 
+ UL_BUILD_INIT([taskset], [check])
+ UL_REQUIRES_BUILD([taskset], [schedutils])
+@@ -1943,7 +1943,7 @@ UL_REQUIRES_HAVE([taskset], [cpu_set_t], [cpu_set_t type])
+ UL_REQUIRES_SYSCALL_CHECK([taskset],
+ 	[UL_CHECK_SYSCALL([sched_getaffinity])],
+ 	[sched_getaffinity])
+-AM_CONDITIONAL([BUILD_TASKSET], [test "x$build_taskset" = xyes])
++AM_CONDITIONAL([BUILD_TASKSET], [test "x$build_schedutils" = xyes])
+ 
+ 
+ have_schedsetter=no
+@@ -1953,7 +1953,7 @@ AS_IF([test "x$ac_cv_func_sched_setscheduler" = xyes], [have_schedsetter=yes],
+ UL_BUILD_INIT([chrt], [check])
+ UL_REQUIRES_BUILD([chrt], [schedutils])
+ UL_REQUIRES_HAVE([chrt], [schedsetter], [sched_set functions])
+-AM_CONDITIONAL([BUILD_CHRT], [test "x$build_chrt" = xyes])
++AM_CONDITIONAL([BUILD_CHRT], [test "x$build_schedutils" = xyes])
+ 
+ AS_IF([test "x$build_chrt" = xyes], [
+ 	UL_CHECK_SYSCALL([sched_setattr])
+-- 
+2.7.4
+
Signature · 1 line
2.7.4
#3 lore raw

PATCH 1/1 util-linux: build schedutils without enabling basic binaries

In reply to Carlos Santos

Hi Carlos,

Quoted 26 lines · Carlos Santos

Pull a patch already sent upstream tp fix AM_CONDITIONAL parameters that conditioned the build of ionice, taskset an chrt to the wrong variable.

Fixes:
https://bugs.busybox.net/show_bug.cgi?id=9656
https://github.com/karelzak/util-linux/issues/415

---
 ...build-when-configured-with-disable-all-pr.patch | 52 ++++++++++++++++++++++
 1 file changed, 52 insertions(+)
 create mode 100644 package/util-linux/0003-schedutils-build-when-configured-with-disable-all-pr.patch
package/util-linux/0003-schedutils-build-when-configured-with-disable-all-pr.patch new file +6 -0
new file mode 100644
index 0000000..812927e
@@ -0,0 +1,52 @@
+From e1578c3d32cc9f817f19729b5eee21e49b639185 Mon Sep 17 00:00:00 2001
+From: Carlos Santos <[email protected]>
+Date: Sat, 18 Feb 2017 17:23:37 -0200
+Subject: [PATCH] schedutils: build when configured with --disable-all-programs
+
+Fix AM_CONDITIONAL parameters that conditioned ionice, taskset an chrt

package/util-linux/0003-schedutils-build-when-configured-with-disable-all-pr.patch line 16

Quoted 10 lines
package/util-linux/0003-schedutils-build-when-configured-with-disable-all-pr.patch new file +10 -0
+to the values of build_{ionice,taskset,chrt} respectively, instead of
+build_schedutils.
+
+Fixes:
+  https://bugs.busybox.net/show_bug.cgi?id=9656
+  https://github.com/karelzak/util-linux/issues/415
+
+Signed-off-by: Carlos Santos <[email protected]>
+---
+ configure.ac | 6 +++---

Please update the _AUTORECONF comment in util-linux.mk.

baruch

Signature · 3 lines
     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 -
#4 lore raw

PATCH v2 1/1 util-linux: build schedutils without enabling basic binaries

In reply to bugzilla at busybox.net

Pull a patch already sent upstream tp fix AM_CONDITIONAL parameters that conditioned the build of ionice, taskset an chrt to the wrong variable.

Fixes:
https://bugs.busybox.net/show_bug.cgi?id=9656
https://github.com/karelzak/util-linux/issues/415

---
 ...build-when-configured-with-disable-all-pr.patch | 52 ++++++++++++++++++++++
 package/util-linux/util-linux.mk                   |  4 +-
 2 files changed, 54 insertions(+), 2 deletions(-)
 create mode 100644 package/util-linux/0003-schedutils-build-when-configured-with-disable-all-pr.patch
package/util-linux/0003-schedutils-build-when-configured-with-disable-all-pr.patch new file +52 -0
new file mode 100644
index 0000000..812927e
@@ -0,0 +1,52 @@
+From e1578c3d32cc9f817f19729b5eee21e49b639185 Mon Sep 17 00:00:00 2001
+From: Carlos Santos <[email protected]>
+Date: Sat, 18 Feb 2017 17:23:37 -0200
+Subject: [PATCH] schedutils: build when configured with --disable-all-programs
+
+Fix AM_CONDITIONAL parameters that conditioned ionice, taskset an chrt
+to the values of build_{ionice,taskset,chrt} respectively, instead of
+build_schedutils.
+
+Fixes:
+  https://bugs.busybox.net/show_bug.cgi?id=9656
+  https://github.com/karelzak/util-linux/issues/415
+
+Signed-off-by: Carlos Santos <[email protected]>
+---
+ configure.ac | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index ad241fe..1933741 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1935,7 +1935,7 @@ UL_REQUIRES_SYSCALL_CHECK([ionice],
+ 	  [x86_64*],	[252])],
+ 	[ioprio_get])
+ 
+-AM_CONDITIONAL([BUILD_IONICE], [test "x$build_ionice" = xyes])
++AM_CONDITIONAL([BUILD_IONICE], [test "x$build_schedutils" = xyes])
+ 
+ UL_BUILD_INIT([taskset], [check])
+ UL_REQUIRES_BUILD([taskset], [schedutils])
+@@ -1943,7 +1943,7 @@ UL_REQUIRES_HAVE([taskset], [cpu_set_t], [cpu_set_t type])
+ UL_REQUIRES_SYSCALL_CHECK([taskset],
+ 	[UL_CHECK_SYSCALL([sched_getaffinity])],
+ 	[sched_getaffinity])
+-AM_CONDITIONAL([BUILD_TASKSET], [test "x$build_taskset" = xyes])
++AM_CONDITIONAL([BUILD_TASKSET], [test "x$build_schedutils" = xyes])
+ 
+ 
+ have_schedsetter=no
+@@ -1953,7 +1953,7 @@ AS_IF([test "x$ac_cv_func_sched_setscheduler" = xyes], [have_schedsetter=yes],
+ UL_BUILD_INIT([chrt], [check])
+ UL_REQUIRES_BUILD([chrt], [schedutils])
+ UL_REQUIRES_HAVE([chrt], [schedsetter], [sched_set functions])
+-AM_CONDITIONAL([BUILD_CHRT], [test "x$build_chrt" = xyes])
++AM_CONDITIONAL([BUILD_CHRT], [test "x$build_schedutils" = xyes])
+ 
+ AS_IF([test "x$build_chrt" = xyes], [
+ 	UL_CHECK_SYSCALL([sched_setattr])
+-- 
+2.7.4
+
package/util-linux/util-linux.mk +2 -2
index 441c252..f991b44 100644
@@ -8,8 +8,8 @@ UTIL_LINUX_VERSION_MAJOR = 2.29
 UTIL_LINUX_VERSION = $(UTIL_LINUX_VERSION_MAJOR).1
 UTIL_LINUX_SOURCE = util-linux-$(UTIL_LINUX_VERSION).tar.xz
 UTIL_LINUX_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/util-linux/v$(UTIL_LINUX_VERSION_MAJOR)
-# For 0001-build-sys-use-lm-for-scriptreplay-if-necessary.patch and
-# 0002-build-sys-improve-detection-of-the-isnan-function-in.patch
+
+# Required because of the patches for configure.ac.
 UTIL_LINUX_AUTORECONF = YES
 
 # README.licensing claims that some files are GPLv2-only, but this is not true.
Signature · 1 line
2.7.4
#5 lore raw

PATCH v3 1/1 util-linux: build schedutils without enabling basic binaries

In reply to bugzilla at busybox.net

Pull an upstream fix to allow building schedutils (ionice, taskset, chrt) when util-linux is configured with

  $ configure --disable-all-programs --enable-schedutils

Fixes:
https://bugs.busybox.net/show_bug.cgi?id=9656

---
Changes v1->v2
Update comment explaining why we need UTIL_LINUX_AUTORECONF = YES

Changes v2->v3
Pull full patch, as applied upstream by Karel Zak Clean-up commit message

---
 ...ix-disable-all-programs-enable-schedutils.patch | 99 ++++++++++++++++++++++
 package/util-linux/util-linux.mk                   |  4 +-
 2 files changed, 101 insertions(+), 2 deletions(-)
 create mode 100644 package/util-linux/0003-build-sys-fix-disable-all-programs-enable-schedutils.patch
package/util-linux/0003-build-sys-fix-disable-all-programs-enable-schedutils.patch new file +99 -0
new file mode 100644
index 0000000..bf19e10
@@ -0,0 +1,99 @@
+From 6f2eb03433bcb2d3c351efed848a1f8554a7ff78 Mon Sep 17 00:00:00 2001
+From: Karel Zak <[email protected]>
+Date: Mon, 20 Feb 2017 14:17:37 +0100
+Subject: [PATCH] build-sys: fix --disable-all-programs --enable-schedutils
+
+* add UL_ENABLE_ALIAS(NAME, MASTERNAME) to initialize $enable_<name>
+  according to MASTERNAME. Note that we have to use $build_<mastername>,
+  the $enable_<mastername> is just AC_ARG_ENABLE() stuff only. The
+  $build_ is evaluated and modified by our UL_...() functions.
+
+* add enable-schedutils.conf to have build-system regression test for
+  this use-case
+
+Addresses: https://github.com/karelzak/util-linux/issues/415
+Signed-off-by: Karel Zak <[email protected]>
+---
+ configure.ac                              | 14 ++++++++------
+ m4/ul.m4                                  | 15 +++++++++++++++
+ tools/config-gen.d/enable-schedutils.conf |  3 +++
+ 3 files changed, 26 insertions(+), 6 deletions(-)
+ create mode 100644 tools/config-gen.d/enable-schedutils.conf
+
+diff --git a/configure.ac b/configure.ac
+index ad241fe..be282f0 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1909,8 +1909,9 @@ AC_ARG_ENABLE([schedutils],
+ )
+ UL_BUILD_INIT([schedutils])
+ 
+-UL_BUILD_INIT([ionice], [check])
+-UL_REQUIRES_BUILD([ionice], [schedutils])
++
++UL_ENABLE_ALIAS([ionice], [schedutils])
++UL_BUILD_INIT([ionice])
+ UL_REQUIRES_SYSCALL_CHECK([ionice],
+ 	[UL_CHECK_SYSCALL([ioprio_set],
+ 	  [alpha],	[442],
+@@ -1937,8 +1938,9 @@ UL_REQUIRES_SYSCALL_CHECK([ionice],
+ 
+ AM_CONDITIONAL([BUILD_IONICE], [test "x$build_ionice" = xyes])
+ 
+-UL_BUILD_INIT([taskset], [check])
+-UL_REQUIRES_BUILD([taskset], [schedutils])
++
++UL_ENABLE_ALIAS([taskset], [schedutils])
++UL_BUILD_INIT([taskset])
+ UL_REQUIRES_HAVE([taskset], [cpu_set_t], [cpu_set_t type])
+ UL_REQUIRES_SYSCALL_CHECK([taskset],
+ 	[UL_CHECK_SYSCALL([sched_getaffinity])],
+@@ -1950,8 +1952,8 @@ have_schedsetter=no
+ AS_IF([test "x$ac_cv_func_sched_setscheduler" = xyes], [have_schedsetter=yes],
+       [test "x$ac_cv_func_sched_setattr" = xyes], [have_schedsetter=yes])
+ 
+-UL_BUILD_INIT([chrt], [check])
+-UL_REQUIRES_BUILD([chrt], [schedutils])
++UL_ENABLE_ALIAS([chrt], [schedutils])
++UL_BUILD_INIT([chrt])
+ UL_REQUIRES_HAVE([chrt], [schedsetter], [sched_set functions])
+ AM_CONDITIONAL([BUILD_CHRT], [test "x$build_chrt" = xyes])
+ 
+diff --git a/m4/ul.m4 b/m4/ul.m4
+index f8a0dd7..ed7227c 100644
+--- a/m4/ul.m4
++++ b/m4/ul.m4
+@@ -429,6 +429,21 @@ AC_DEFUN([UL_DEFAULT_ENABLE], [
+   fi
+ ])
+ 
++
++dnl UL_ENABLE_ALIAS(NAME, MASTERNAME)
++dnl
++dnl Initializes $enable_<name> variable according to $build_<mastername>.  This
++dnl is usefull for example if you want to use one --enable-mastername option
++dnl for group of programs.
++dnl
++AC_DEFUN([UL_ENABLE_ALIAS], [
++  m4_define([suffix], $1)
++  m4_define([mastersuffix], $2)
++
++  enable_[]suffix=$build_[]mastersuffix
++])
++
++
+ dnl UL_NCURSES_CHECK(NAME)
+ dnl
+ dnl Initializes $have_<name>, NCURSES_LIBS and NCURSES_CFLAGS variables according to
+diff --git a/tools/config-gen.d/enable-schedutils.conf b/tools/config-gen.d/enable-schedutils.conf
+new file mode 100644
+index 0000000..08deee4
+--- /dev/null
++++ b/tools/config-gen.d/enable-schedutils.conf
+@@ -0,0 +1,3 @@
++include:disable-all.conf
++
++--enable-schedutils
+-- 
+2.7.4
+
package/util-linux/util-linux.mk +2 -2
index 441c252..f991b44 100644
@@ -8,8 +8,8 @@ UTIL_LINUX_VERSION_MAJOR = 2.29
 UTIL_LINUX_VERSION = $(UTIL_LINUX_VERSION_MAJOR).1
 UTIL_LINUX_SOURCE = util-linux-$(UTIL_LINUX_VERSION).tar.xz
 UTIL_LINUX_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/util-linux/v$(UTIL_LINUX_VERSION_MAJOR)
-# For 0001-build-sys-use-lm-for-scriptreplay-if-necessary.patch and
-# 0002-build-sys-improve-detection-of-the-isnan-function-in.patch
+
+# Required because of the patches for configure.ac.
 UTIL_LINUX_AUTORECONF = YES
 
 # README.licensing claims that some files are GPLv2-only, but this is not true.
Signature · 1 line
2.7.4
#10 lore raw

[Buildroot] [Bug 9656] util-linux: schedutils doesn't build on target w/o enabling basic binaries

In reply to bugzilla at busybox.net

https://bugs.busybox.net/show_bug.cgi?id=9656

Thomas Petazzoni <[email protected]> changed:

What |Removed |Added
----------------------------------------------------------------------------

             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #3 from Thomas Petazzoni <[email protected]> --- Fixed by
https://git.buildroot.org/buildroot/commit/?id=125213d6164a395f7d0bfb136f3a873a02630ebc.

Thanks Carlos for having investigated and fixed the issue!

Signature · 2 lines
You are receiving this mail because:
You are on the CC list for the bug.
#6 lore raw

PATCH v3 1/1 util-linux: build schedutils without enabling basic binaries

In reply to Carlos Santos

Hello,

Quoted 5 lines · Carlos Santos

Pull an upstream fix to allow building schedutils (ionice, taskset, chrt) when util-linux is configured with

  $ configure --disable-all-programs --enable-schedutils
Quoted 8 lines

Fixes:
https://bugs.busybox.net/show_bug.cgi?id=9656

---
Changes v1->v2
Update comment explaining why we need UTIL_LINUX_AUTORECONF = YES

Applied to master, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com