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