openwrt/tools
Michael Pratt efdd65cb87 tools/gnulib: allow forced exclusion of functions after configure
Overriding variables used in both the macros and the headers
like setting REPLACE_FCNTL to 0 while invoking Make causes the
function aliases like rpl_fcntl() to not be defined,
however the object may still be built with the fnctl() function.

Usually this is enough for building while avoiding
the need to link the resulting libgnu library
to every single other build target for a project
in order to include the gnulib copy of the function,
because in these cases we don't care which version
of the function is used.

However for functions like fcntl() this doesn't work
as it is designed to use either the alias or standard declaration
from gnulib headers in order to be
a wrapper for the native host copy of fcntl()
by containing recursive calls to fcntl() within itself
after undefining the gnulib function declaration.

Overriding the variables used by the header when invoking Make
causes the header's declarations to be blocked,
and this results in the gnulib version of fcntl()
to call itself recursively and indefinitely
leading to segmentation faults.

Fix this by using macros defined with those variables
in order to exclude the function during preprocessing.

While at it, do the same for reallocarray()
so that the configure option --avoid=reallocarray
and Make variable REPLACE_REALLOCARRAY set to 0
would have a similar effect.

In the future this patch can be expanded to include
more functions and some version of this may be upstreamable.

Signed-off-by: Michael Pratt <mcpratt@pm.me>
Link: https://github.com/openwrt/openwrt/pull/15690
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-06-19 11:22:13 +02:00
..
7z tools: assign PKG_CPE_ID 2023-09-19 20:21:33 +02:00
autoconf tools: prefer gz or bz2 tarballs 2024-04-06 11:24:18 +02:00
autoconf-archive tools/autoconf-archive: bump to 2023.02.20 2023-03-20 23:43:28 +01:00
automake tools: prefer gz or bz2 tarballs 2024-04-06 11:24:18 +02:00
b43-tools treewide: update PKG_MIRROR_HASH to zst 2024-04-06 11:24:18 +02:00
bash tools/bash: update to 5.2.21 2023-12-08 16:28:40 +01:00
bc tools/bc: update to 1.07.1 2022-10-22 22:50:37 +02:00
bison tools/bison: hardcode path to m4 with STAGING_DIR_HOST 2024-04-25 21:33:51 +02:00
bzip2 tools/bzip2: switch to cmake 2024-04-03 18:56:58 +02:00
cbootimage treewide: update PKG_MIRROR_HASH to zst 2024-04-06 11:24:18 +02:00
cbootimage-configs treewide: update PKG_MIRROR_HASH to zst 2024-04-06 11:24:18 +02:00
ccache tools/ccache: update to 4.10.0 2024-06-10 16:08:19 +02:00
cmake tools/cmake: update to 3.29.5 2024-06-10 01:27:02 +02:00
coreutils tools/coreutils: update to 9.5 2024-04-25 21:33:51 +02:00
cpio tools/cpio: update to 2.15 2024-01-25 16:06:49 +01:00
dosfstools dosfstools: switch to AC_CHECK_LIB 2023-01-16 18:29:04 +01:00
dwarves tools/dwarves: update to v1.27 2024-06-13 14:16:33 +02:00
e2fsprogs tools: prefer gz or bz2 tarballs 2024-04-06 11:24:18 +02:00
elftosb tools: refresh all patches 2024-05-23 11:49:03 +02:00
elfutils tools/elfutils: add missing MIPS reloc support 2024-06-13 14:16:33 +02:00
expat tools/expat: fix PKG_CPE_ID 2024-04-27 23:37:57 +02:00
fakeroot tools/fakeroot: update to 1.33 2024-06-18 23:02:17 +02:00
findutils tools/findutils: update to 4.10.0 2024-06-10 13:02:06 +02:00
firmware-utils treewide: update PKG_MIRROR_HASH to zst 2024-04-06 11:24:18 +02:00
flex tools/flex: fix PKG_CPE_ID 2024-04-27 12:08:11 +02:00
flock tools: add Host/Uninstall where possible 2022-10-20 00:33:22 +02:00
genext2fs tools/genext2fs: update to 1.5.0 2022-10-22 22:53:24 +02:00
gengetopt gengetopt: backport patch fixing support for c++17 2024-05-01 15:45:25 +02:00
gmp tools: prefer gz or bz2 tarballs 2024-04-06 11:24:18 +02:00
gnulib tools/gnulib: allow forced exclusion of functions after configure 2024-06-19 11:22:13 +02:00
include tools: add more linux include files to fix x86 build on macos 2024-05-07 12:50:27 +02:00
isl tools: prefer gz or bz2 tarballs 2024-04-06 11:24:18 +02:00
libdeflate tools: libdeflate: backport fix for AVX-VNNI 2024-04-15 13:52:37 +02:00
liblzo tools: refresh all patches 2024-05-23 11:49:03 +02:00
libressl tools/libressl: update to version 3.7.3 2023-09-22 14:11:22 +02:00
libtool tools: prefer gz or bz2 tarballs 2024-04-06 11:24:18 +02:00
llvm-bpf tools: assign PKG_CPE_ID 2023-09-19 20:21:33 +02:00
lz4 tools/lz4: remove patches 2024-05-23 11:49:02 +02:00
lzma tools: refresh all patches 2024-05-23 11:49:03 +02:00
lzma-old treewide: unify OpenWrt hosted source via @OPENWRT 2021-02-05 12:00:24 -10:00
lzop tools: refresh all patches 2024-05-23 11:49:03 +02:00
m4 tools: prefer gz or bz2 tarballs 2024-04-06 11:24:18 +02:00
make-ext4fs treewide: update PKG_MIRROR_HASH to zst 2024-04-06 11:24:18 +02:00
meson tools/meson: update to 1.3.2 2024-03-29 23:42:22 +01:00
missing-macros tools/missing-macros: install files from HOST_BUILD_DIR instead of src 2024-05-22 11:53:52 +02:00
mkimage tools/mkimage: update to v2024.04 2024-05-29 10:43:50 +02:00
mklibs tools/mklibs: update to 0.1.45 2022-03-01 00:08:08 +01:00
mold tools: mold: update to 2.31.0 2024-05-09 10:45:29 +02:00
mpc tools/mpc: use STAGING_DIR_HOST instead of hardcoding default 2023-01-09 21:33:19 +01:00
mpfr tools: prefer gz or bz2 tarballs 2024-04-06 11:24:18 +02:00
mtd-utils tools/mtd-utils: update to 2.1.6 2023-10-14 08:03:06 +02:00
mtools tools/mtools: update to 4.0.43 2023-04-08 15:51:32 +02:00
ninja tools/ninja: update to 1.11.1 2023-01-24 23:13:25 +01:00
padjffs2 tools/padjffs2: use Host/Prepare/Default instead of raw commands 2024-05-22 11:56:45 +02:00
patch tools: refresh all patches 2024-05-23 11:49:03 +02:00
patch-image rb532: drop target 2020-09-02 16:29:22 +02:00
patchelf tools/patchelf: update to 0.18.0 2023-04-29 17:37:45 +02:00
pkgconf tools/pkgconf: update to 2.2.0 2024-06-14 15:27:39 +02:00
quilt tools/quilt: update to 0.68 2024-06-09 21:23:28 +02:00
sdimage treewide: update PKG_MIRROR_HASH to zst 2024-04-06 11:24:18 +02:00
sed tools: prefer gz or bz2 tarballs 2024-04-06 11:24:18 +02:00
sparse tools/sparse: fix compilation with GCC14 2024-06-16 22:40:42 +02:00
squashfs3-lzma tools: squashfs3-lzma: generate reproducible output 2023-05-12 02:27:17 +02:00
squashfs4 treewide: update PKG_MIRROR_HASH to zst 2024-04-06 11:24:18 +02:00
sstrip tools/sstrip: update to 3.2 2021-09-20 15:21:17 +02:00
tar tools: tar: update to 1.35 2024-06-18 19:49:54 +02:00
util-linux tools: prefer gz or bz2 tarballs 2024-04-06 11:24:18 +02:00
xz Revert "tools/xz: update to 5.6.1" (CVE-2024-3094) 2024-03-29 16:59:56 +00:00
yafut tools: add Yafut to enable creating Yaffs filesystem images 2024-06-05 17:03:24 +02:00
zip tools: assign PKG_CPE_ID 2023-09-19 20:21:33 +02:00
zlib tools/zlib: fix PKG_CPE_ID 2024-04-27 12:07:37 +02:00
zstd tools/zstd: enable position independent code compilation 2024-04-24 12:16:48 +02:00
Makefile tools: remove kernel2minor 2024-06-05 17:03:24 +02:00