Hi Jeremy,

On 2/6/2025 1:22 PM, Jeremy Drake via Cygwin wrote:
We were attempting to build util-linux 2.40.2 for MSYS2, based on the
source package of util-linux-2.40.2-2 from Cygwin [1].  We were scratching
our heads as to why it wasn't building tasksel for us, when it did in your
package.  I evenutally saw in the cygport that it tests for sys/syscall.h
and warns if it is not present.  I could not find a package that provides
this header.  Can you explain where it comes from, so that we can also
build util-linux?  (For now, I added a couple extra patches to
configure.ac to make it look for functions instead of syscall numbers [2])

1: https://github.com/msys2/MSYS2-packages/pull/5194
2:
https://github.com/msys2/MSYS2-packages/compare/bbc219480a47d1f0ab87b99302627815390f4ee1..e00b44ad67481a8ad1c490d2b5475d3500dac436

Apologies for the inconvenience. It's an unsettled matter if/whether Cygwin should supply a sys/syscall.h. I cobbled together something to allow the util-linux, and something else maybe FUSE-related, to complete build without angst.

The following script creates on stdout something that works. Direct stdout to /usr/include/sys/syscall.h if you dare ;-).
HTH,

..mark
---------------------------

#!/bin/sh
#
#       gen-syscall-h.sh
#       Generates #defines for a plausible Cygwin <sys/syscall.h> on stdout
#       2023/12/30 Original version by Mark A. Geisert <m...@maxrnd.com>
#
#       This currently works by creating a list of all symbols exported
#       by libcygwin.a and subtracting out the symbols also exported
#       by libm.a.  After that, a symbol is kept only if it starts with
#       a lowercase letter and does not start with "cygwin_" or "main".
#
TMPF=/tmp/.$$.
trap 'rm -f $TMPF' EXIT
nm /usr/lib/libm.a | awk '/ T [a-z]/    {print $3}' | sort > $TMPF
nm /usr/lib/libcygwin.a | awk '/ T [a-z]/       {print $3}' | \
        grep -vE '^cygwin_|^main' | sort | \
        diff --suppress-common-lines -y - $TMPF | \
        awk '/^[a-z]/   {printf "#define SYS_%s %d\n", $1, ++RECNO}'
exit $?


--
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