Fine with me as well. Thanks, Winfried > Op 14-03-2024 14:59 CET schreef Jordan Williams <jordan@xxxxxxxxxxxxxx>: > > > On 3/13/24 17:48, James Carter wrote: > > In libselinux there is an availability check for strlcpy() and > > in both libselinux and libsepol there are availability checks for > > reallocarray() in the src Makfiles. CFLAGS and LDFLAGS are needed > > for cross-compiling, but, unfortunately, the default CFLAGS cause > > all of these availability checks to fail to compile because of > > compilationerrors (rather than just the function not being available). > > > > Add CFLAGS and LDFLAGS to the availibility checks, update the checks > > so that a compilation error will only happen if the function being > > checked for is not available, and make checks for the same function > > the same in both libselinux and libsepol. > > > > Suggested-by: Jordan Williams <jordan@xxxxxxxxxxxxxx> > > Suggested-by: Winfried Dobbe <winfried_mb2@xxxxxxxxx> > > Signed-off-by: James Carter <jwcart2@xxxxxxxxx> > > --- > > libselinux/src/Makefile | 4 ++-- > > libsepol/src/Makefile | 2 +- > > 2 files changed, 3 insertions(+), 3 deletions(-) > > > > diff --git a/libselinux/src/Makefile b/libselinux/src/Makefile > > index d3b981fc..41cfbdca 100644 > > --- a/libselinux/src/Makefile > > +++ b/libselinux/src/Makefile > > @@ -104,13 +104,13 @@ override CFLAGS += -I../include -D_GNU_SOURCE $(DISABLE_FLAGS) $(PCRE_CFLAGS) > > > > # check for strlcpy(3) availability > > H := \# > > -ifeq (yes,$(shell printf '${H}include <string.h>\nint main(void){char*d,*s;strlcpy(d, s, 0);return 0;}' | $(CC) -x c -o /dev/null - >/dev/null 2>&1 && echo yes)) > > +ifeq (yes,$(shell printf '${H}include <string.h>\nint main(void){char d[2];const char *s="a";return (size_t)strlcpy(d,s,sizeof(d))>=sizeof(d);}' | $(CC) $(CFLAGS) $(LDFLAGS) -x c -o /dev/null - >/dev/null 2>&1 && echo yes)) > > override CFLAGS += -DHAVE_STRLCPY > > endif > > > > # check for reallocarray(3) availability > > H := \# > > -ifeq (yes,$(shell printf '${H}include <stdlib.h>\nint main(void){reallocarray(NULL, 0, 0);return 0;}' | $(CC) -x c -o /dev/null - >/dev/null 2>&1 && echo yes)) > > +ifeq (yes,$(shell printf '${H}include <stdlib.h>\nint main(void){return reallocarray(NULL,0,0)==NULL;}' | $(CC) $(CFLAGS) $(LDFLAGS) -x c -o /dev/null - >/dev/null 2>&1 && echo yes)) > > override CFLAGS += -DHAVE_REALLOCARRAY > > endif > > > > diff --git a/libsepol/src/Makefile b/libsepol/src/Makefile > > index 16b9bd5e..7b0e8446 100644 > > --- a/libsepol/src/Makefile > > +++ b/libsepol/src/Makefile > > @@ -31,7 +31,7 @@ endif > > > > # check for reallocarray(3) availability > > H := \# > > -ifeq (yes,$(shell printf '${H}define _GNU_SOURCE\n${H}include <stdlib.h>\nint main(void){void*p=reallocarray(NULL, 1, sizeof(char));return 0;}' | $(CC) $(LDFLAGS) -x c -o /dev/null - >/dev/null 2>&1 && echo yes)) > > +ifeq (yes,$(shell printf '${H}include <stdlib.h>\nint main(void){return reallocarray(NULL,0,0)==NULL;}' | $(CC) $(CFLAGS) $(LDFLAGS) -x c -o /dev/null - >/dev/null 2>&1 && echo yes)) > > override CFLAGS += -DHAVE_REALLOCARRAY > > endif > > > This works great, thanks!