pkgsrc-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
pkg/60697: devel/libuuid: does not build on DragonFly
>Number: 60697
>Category: pkg
>Synopsis: devel/libuuid: does not build on DragonFly
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: pkg-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Tue Sep 08 16:20:00 +0000 2026
>Originator: Showta Ishizaki
>Release: pkgsrc CVS as of 2026-09-08, devel/libuuid/Makefile.common,v 1.14
>Organization:
>Environment:
System: DragonFly 6.4-RELEASE x86_64
Architecture: x86_64
Machine: x86_64
>Description:
The build stops in lib/cpuset.c:
./include/cpuset.h:43:13: error: '__cpu_mask' undeclared (first use
in this function); did you mean '__cpumask_t'?
./include/cpuset.h:43:37: error: 'cpu_set_t' {aka 'struct
<anonymous>'} has no member named '__bits'
*** [lib/libcommon_la-cpuset.lo] Error code 1
lib/cpuset.c is compiled when configure finds cpu_set_t
(lib/Makemodule.am), and when CPU_ALLOC is not declared,
include/cpuset.h defines the CPU_*_S macros itself. Those are, as the
file says, "based on code from glibc", and use the glibc-internal
__cpu_mask and cpu_set_t.__bits. On DragonFly configure's test finds
cpu_set_t, so config.h ends up with HAVE_CPU_SET_T 1 and
HAVE_DECL_CPU_ALLOC 0, which is the one combination the header does
not handle.
Nothing this package builds uses any of it: lib/path.c and
include/path.h guard every reference with #ifdef HAVE_CPU_SET_T. So
the smallest fix seems to be to have configure conclude the type is
absent, which drops lib/cpuset.c from libcommon.
lang/python313 requires libuuid, so at the moment this stops a fair
amount on DragonFly.
>How-To-Repeat:
On DragonFly 6.4:
cd devel/libuuid && make build
>Fix:
With the diff below, on DragonFly 6.4-RELEASE/x86_64, the same tree and
the same commands go from failing to building:
before rc=1 HAVE_CPU_SET_T 1 134 lines mentioning cpuset in the log
after rc=0 /* #undef */ none, and no cpuset object on disk;
the generated Makefile has the
cpuset.lo line commented out
libuuid.so.1.3.0, libuuid.a and uuidgen are produced
The diff sets this in Makefile.common because devel/libblkid and
x11/mcookie include the same file; I did not build either of them.
What I actually built was the identical setting written as an
.if ${OPSYS} == "DragonFly" block in devel/libuuid/Makefile.
mk/bsd.pkg.mk (OPSYSVARS) makes that equivalent to
CONFIGURE_ENV.DragonFly+=, but I read that rather than built it. If
the shared file seems too wide for something tried on one package, I am
happy to move it to devel/libuuid/Makefile.
Index: devel/libuuid/Makefile.common
===================================================================
RCS file: /cvsroot/pkgsrc/devel/libuuid/Makefile.common,v
retrieving revision 1.14
diff -u -u -r1.14 Makefile.common
--- devel/libuuid/Makefile.common 14 Sep 2025 11:08:51 -0000 1.14
+++ devel/libuuid/Makefile.common 8 Sep 2026 10:56:04 -0000
@@ -30,6 +30,11 @@
CONFIGURE_ARGS.SunOS+= --disable-symvers
CONFIGURE_ENV.SunOS+= ac_cv_header_sys_vfs_h=no
+# include/cpuset.h's fallback for a libc without CPU_ALLOC is written
+# against glibc internals, and DragonFly has cpu_set_t without being glibc.
+# Nothing built here needs lib/cpuset.c, so have configure leave it out.
+CONFIGURE_ENV.DragonFly+= ac_cv_type_cpu_set_t=no
+
.include "../../mk/bsd.prefs.mk"
.if ${MACHINE_PLATFORM:MSunOS-*-i386} || \
Home |
Main Index |
Thread Index |
Old Index