Re: [PATCH] libselinux, libsepol: Add CFLAGS and LDFLAGS to Makefile checks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Mar 13, 2024 at 6:48 PM James Carter <jwcart2@xxxxxxxxx> 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>

This patch has been merged.
Jim

> ---
>  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
>
> --
> 2.44.0
>





[Index of Archives]     [Selinux Refpolicy]     [Linux SGX]     [Fedora Users]     [Fedora Desktop]     [Yosemite Photos]     [Yosemite Camping]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux