Skip to content

Commit

Permalink
devel/util-linux: Unbreak on FreeBSD 13.2 and set pkgconfigdir
Browse files Browse the repository at this point in the history
* Remove bswap compatibility "hacks" as we now have glibc compatible
  ones in supported releases
* Set pkgconfigdir so .pc files ends up in correct path

PR:		242996
Reviewed by:	Warner Losh <imp@bsdimp.com>, yuri (maintainer)
  • Loading branch information
Daniel Engberg authored and Daniel Engberg committed Jun 26, 2023
1 parent 7a00365 commit 770f3a4
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 41 deletions.
6 changes: 3 additions & 3 deletions devel/util-linux/Makefile
Expand Up @@ -11,21 +11,21 @@ WWW= https://github.com/karelzak/util-linux
LICENSE= GPLv2
LICENSE_FILE= ${WRKSRC}/COPYING

BROKEN_FreeBSD_14= ld: error: undefined symbol: bswap32

LIB_DEPENDS= libpcre2-8.so:devel/pcre2 \
libuuid.so:misc/e2fsprogs-libuuid
RUN_DEPENDS= bash:shells/bash

USES= autoreconf gettext-tools gmake libtool ncurses pkgconfig \
shebangfix tar:xz

USE_LDCONFIG= yes

SHEBANG_FILES= misc-utils/getopt-parse.bash

GNU_CONFIGURE= yes
CONFIGURE_ARGS= --disable-nls --disable-ipcrm --disable-ipcs \
--disable-makeinstall-chown --disable-makeinstall-setuid
--disable-makeinstall-chown --disable-makeinstall-setuid \
--with-pkgconfigdir=${PREFIX}/libdata/pkgconfig

INSTALL_TARGET= install-strip

Expand Down
47 changes: 9 additions & 38 deletions devel/util-linux/files/patch-include_bitops.h
@@ -1,40 +1,11 @@
commit a38d1f69fee5ca7e883b09ed3668a7da3b161051
Author: Warner Losh <imp@FreeBSD.org>
Date: Fri Apr 29 15:29:44 2022 -0600

BSD: Use byteswap.h and endian.h defined macos when present

Newer versions of FreeBSD will have a glibc compatible
byteswap.h. Currently, this file assumes that FreeBSD requires
bswap{16,32,64} to always be defined. This isn't the case when we're
using the byteswap.h file (which is enabled by HAVE_BYTESWAP_H
define). Assume that if byteswap.h and endian.h are present, then the
proper macros are defined. Otherwise, assume that sys/endian.h is
present and paper over the small differences between the BSDs for this
file.

Signed-off-by: Warner Losh <imp@bsdimp.com>

--- include/bitops.h
--- include/bitops.h.orig 2023-06-25 21:35:59 UTC
+++ include/bitops.h
@@ -20,6 +20,12 @@
# include <sys/endian.h>
#endif

+#if !(defined(HAVE_BYTESWAP_H) && defined(HAVE_ENDIAN_H))
+/*
+ * When both byteswap.h and endian.h are preseent, the proper macros are defined
+ * as those files are glibc compatible. Otherwise, compensate for the slightly
+ * different interfaces between the different BSDs.
+ */
#if defined(__OpenBSD__)
# include <sys/types.h>
@@ -25,7 +25,7 @@
# define be16toh(x) betoh16(x)
@@ -47,6 +53,7 @@
# define bswap_32(x) OSSwapInt32(x)
# define bswap_64(x) OSSwapInt64(x)
#endif
+#endif

/*
* Fallbacks
# define be32toh(x) betoh32(x)
# define be64toh(x) betoh64(x)
-#elif defined(__NetBSD__) || defined(__FreeBSD__) || defined(__DragonFly__)
+#elif defined(__NetBSD__) || defined(__DragonFly__)
# define bswap_16(x) bswap16(x)
# define bswap_32(x) bswap32(x)
# define bswap_64(x) bswap64(x)

0 comments on commit 770f3a4

Please sign in to comment.