Well, I had _thought_ I had done 'cygport install' and run the installed
version, but I seem to have been wrong.  I seem to have manually over-written
the proper (stripped) binary with the wrapper!

Anyway, I've got the whole thing working and offer the attached patches for
"thoughtful consideration".  I have done away with the need to create an empty
or fake /usr/local/include/sys/syscall.h and changed the source of the
relevant programs to conditional #include <sys/syscall.h> on #indef
__CYGWIN__, which sruck me as more legitimate (the file in questions is
patched anyway).  And I improved configure.ac so that the programs controlled
by --enable-schedutils are more independent and can fail individually without
failing the build.  Part of that was subtituting, as a patch to configure.ac,
a check for the sched_getaffinity and sched_setaffinity calls in place of the
check for the corresponding syscall.  The whole builds and installs.  I can
provide the packaged up version (I assume that is the 'dist' hierarchy) if
that would be helpful.

Regards - Eliot
NAME="util-linux"
VERSION=2.33.1
RELEASE=1
CATEGORY="Base"
SUMMARY="Collection of basic system utilities"
HOMEPAGE="https://github.com/karelzak/util-linux/";
SRC_URI="https://mirrors.edge.kernel.org/pub/linux/utils/${NAME}/v${PV_MAJ_MIN}/${NAME}-${VERSION}.tar.xz";
PATCH_URI="
        2.24.2-libintl.patch
        2.25.1-cygwin-include.patch
        2.24.2-agetty.patch
        2.24.2-libblkid-topology.patch
        2.32.1-testsuite.patch
        2.33.1-cygwin-cpuset.patch
        2.33.1-cygwin-cpuset.patch2
        2.33.1-cygwin-ionice.patch
        2.33.1-cygwin-taskset.patch
"

PKG_NAMES="${NAME} libblkid1 libblkid-devel libfdisk1 libfdisk-devel
           libsmartcols1 libsmartcols-devel libuuid1 libuuid-devel uuidd"
util_linux_CONTENTS="
        --exclude=*.dll --exclude=uuidd*
        bin/*
        sbin/*
        usr/bin/*
        usr/share/bash-completion/
        usr/share/doc/${NAME}
        usr/share/locale/*/*/util-linux.mo
        usr/share/man/man[158]/*
"
libblkid1_CATEGORY="Libs"
libblkid1_SUMMARY="Block device ID library (runtime)"
libblkid1_CONTENTS="usr/bin/cygblkid-1.dll"
libblkid_devel_CATEGORY="Libs"
libblkid_devel_SUMMARY="Block device ID library (development)"
libblkid_devel_CONTENTS="
        usr/include/blkid/
        usr/lib/libblkid.*
        usr/lib/pkgconfig/blkid.pc
        usr/share/man/man3/*blkid*
"
libfdisk1_CATEGORY="Libs"
libfdisk1_SUMMARY="Disk partition table manipulation library (runtime)"
libfdisk1_CONTENTS="usr/bin/cygfdisk-1.dll"
libfdisk_devel_CATEGORY="Libs"
libfdisk_devel_SUMMARY="Disk partition table manipulation library (development)"
libfdisk_devel_CONTENTS="
        usr/include/libfdisk/
        usr/lib/libfdisk.*
        usr/lib/pkgconfig/fdisk.pc
"
libsmartcols1_CATEGORY="Libs"
libsmartcols1_SUMMARY="Tabular data formatting library (runtime)"
libsmartcols1_DESCRIPTION="The libsmartcols library is used for smart
adaptive formatting of tabular data."
libsmartcols1_CONTENTS="usr/bin/cygsmartcols-1.dll"
libsmartcols_devel_CATEGORY="Libs"
libsmartcols_devel_SUMMARY="Tabular data formatting library (development)"
libsmartcols_devel_DESCRIPTION=${libsmartcols1_DESCRIPTION}
libsmartcols_devel_CONTENTS="
        usr/include/libsmartcols/
        usr/lib/libsmartcols.*
        usr/lib/pkgconfig/smartcols.pc
"
libuuid1_CATEGORY="Libs"
libuuid1_SUMMARY="Universally Unique ID library (runtime)"
libuuid1_CONTENTS="usr/bin/cyguuid-1.dll"
libuuid_devel_CATEGORY="Libs"
libuuid_devel_SUMMARY="Universally Unique ID library (development)"
libuuid_devel_CONTENTS="
        usr/include/uuid/
        usr/lib/libuuid.*
        usr/lib/pkgconfig/uuid.pc
        usr/share/man/man3/*uuid*
"
uuidd_CATEGORY="System"
uuidd_SUMMARY="UUID daemon"
uuidd_CONTENTS="
        usr/sbin/uuidd.exe
        usr/share/bash-completion/completions/uuidd
        usr/share/man/man8/uuidd.8*
        var/lib/libuuid/
        var/run/uuidd/
"

BUILD_REQUIRES="
        bison
        gettext-devel
        libcrypt-devel
        libncurses-devel
        libreadline-devel
        zlib-devel
"

CPPFLAGS+=" -D__USE_LINUX_IOCTL_DEFS"

# fsck: e2fsprogs
# ipcrm, ipcs: ipc-utils
# kill, mount: cygwin
# login: login
# su: coreutils
# last, mesg, mountpoint, utmpdump, wall: sysvinit
# others are linux-specific or obsolete
CYGCONF_ARGS="
  --runstatedir=/var/run
  --enable-libuuid
  --enable-libuuid-force-uuidd
  --enable-libblkid
  --enable-libfdisk
  --disable-libmount
  --disable-mount
  --disable-losetup
  --disable-fsck
  --disable-partx
  --enable-uuidd
  --disable-mountpoint
  --disable-fallocate
  --disable-unshare
  --disable-nsenter
  --disable-setpriv
  --disable-eject
  --enable-agetty
  --enable-cramfs
  --enable-bfs
  --disable-fdformat
  --disable-hwclock
  --disable-wdctl
  --disable-switch_root
  --disable-pivot_root
  --disable-ipcrm
  --disable-ipcs
  --disable-tunelp
  --disable-kill
  --disable-last
  --disable-lslogins
  --disable-utmpdump
  --disable-line
  --disable-mesg
  --disable-raw
  --enable-rename
  --disable-vipw
  --disable-newgrp
  --disable-chfn-chsh
  --disable-login
  --enable-nologin
  --disable-sulogin
  --disable-su
  --disable-runuser
  --enable-ul
  --enable-more
  --enable-pg
  --disable-setterm
  --enable-schedutils
  --disable-wall
  --disable-write
  --disable-use-tty-group
  --disable-makeinstall-chown
  --disable-makeinstall-setuid
  SOLIB_LDFLAGS=-no-undefined
"

# prevents bogus .so symlinks
MAKEOPTS+=" libdir=/usr/lib"

KEEPDIRS="/var/lib/libuuid /var/run/uuidd"
--- origsrc/util-linux-2.33.1/lib/cpuset.c      2020-03-21 20:48:54.978830500 
-0400
+++ src/util-linux-2.33.1/lib/cpuset.c  2020-03-21 21:21:56.238472500 -0400
@@ -20,7 +20,9 @@
 #include <errno.h>
 #include <string.h>
 #include <ctype.h>
+#ifndef __CYGWIN__
 #include <sys/syscall.h>
+#endif
 
 #include "cpuset.h"
 #include "c.h"
--- origsrc/util-linux-2.33.1/configure.ac      2020-03-21 20:19:20.952384000 
-0400
+++ src/util-linux-2.33.1/configure.ac  2020-03-21 20:42:40.640966200 -0400
@@ -2054,8 +2054,13 @@
 )
 
 
-UL_ENABLE_ALIAS([ionice], [schedutils])
-UL_BUILD_INIT([ionice])
+AC_ARG_ENABLE([ionice],
+  AS_HELP_STRING([--disable-ionice], [disable ionice even if schedutils is 
enabled]),
+  [], [UL_DEFAULT_ENABLE([ionice], [check])]
+)
+
+UL_BUILD_INIT([ionice], [check])
+UL_REQUIRES_BUILD([ionice], [schedutils])
 UL_REQUIRES_SYSCALL_CHECK([ionice],
        [UL_CHECK_SYSCALL([ioprio_set],
          [alpha],      [442],
--- origsrc/util-linux-2.33.1/configure.ac      2020-03-21 23:12:49.481503500 
-0400
+++ src/util-linux-2.33.1/configure.ac  2020-03-21 23:17:20.565468100 -0400
@@ -2052,6 +2052,7 @@
   AS_HELP_STRING([--disable-schedutils], [do not build chrt, ionice, taskset]),
   [], [UL_DEFAULT_ENABLE([schedutils], [check])]
 )
+UL_BUILD_INIT([schedutils])
 
 
 UL_ENABLE_ALIAS([ionice], [schedutils])
@@ -2083,12 +2084,11 @@
 AM_CONDITIONAL([BUILD_IONICE], [test "x$build_ionice" = xyes])
 
 
-UL_ENABLE_ALIAS([taskset], [schedutils])
-UL_BUILD_INIT([taskset])
+UL_BUILD_INIT([taskset], [check])
+UL_REQUIRES_BUILD([taskset], [schedutils])
 UL_REQUIRES_HAVE([taskset], [cpu_set_t], [cpu_set_t type])
-UL_REQUIRES_SYSCALL_CHECK([taskset],
-       [UL_CHECK_SYSCALL([sched_getaffinity])],
-       [sched_getaffinity])
+AC_CHECK_FUNCS([sched_getaffinity sched_setaffinity], 
[have_schedaffinity=yes],[have_schedaffinity=no])
+UL_REQUIRES_HAVE([taskset], [schedaffinity], [sched affinity functions])
 AM_CONDITIONAL([BUILD_TASKSET], [test "x$build_taskset" = xyes])
 
 
--
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

Reply via email to