Message ID | 20240108210314.339682-1-fontaine.fabrice@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 3e3661f602fe |
Delegated to: | Petr Lautrbach |
Headers | show |
Series | libsepol/src/Makefile: fix reallocarray detection | expand |
On Mon, Jan 8, 2024 at 4:03 PM Fabrice Fontaine <fontaine.fabrice@gmail.com> wrote: > > Pass LDFLAGS when checking for reallocarray to avoid the following > static build failure with musl raised since version 3.4 and > https://github.com/SELinuxProject/selinux/commit/f0a5f6e33084bd83d409bb7c932256139f471e71 > because -static is not passed when checking for reallocarray: > > /home/autobuild/autobuild/instance-9/output-1/host/bin/armeb-buildroot-linux-musleabi-gcc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O0 -g0 -static -I. -I../include -D_GNU_SOURCE -I../cil/include -fPIC -c -o assertion.o assertion.c > In file included from assertion.c:28: > private.h:88:21: error: static declaration of 'reallocarray' follows non-static declaration > 88 | static inline void* reallocarray(void *ptr, size_t nmemb, size_t size) { > | ^~~~~~~~~~~~ > In file included from ../include/sepol/policydb/mls_types.h:35, > from ../include/sepol/policydb/context.h:23, > from ../include/sepol/policydb/policydb.h:62, > from assertion.c:24: > /home/autobuild/autobuild/instance-9/output-1/host/armeb-buildroot-linux-musleabi/sysroot/usr/include/stdlib.h:150:7: note: previous declaration of 'reallocarray' with type 'void *(void *, size_t, size_t)' {aka 'void *(void *, unsigned int, unsigned int)'} > 150 | void *reallocarray (void *, size_t, size_t); > | ^~~~~~~~~~~~ > > Fixes: > - http://autobuild.buildroot.org/results/0170032548a38e2c991d62dc5823808458ad03b3 > > Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> Acked-by: James Carter <jwcart2@gmail.com> > --- > libsepol/src/Makefile | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/libsepol/src/Makefile b/libsepol/src/Makefile > index d80a941f..16b9bd5e 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) -x c -o /dev/null - >/dev/null 2>&1 && echo yes)) > +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)) > override CFLAGS += -DHAVE_REALLOCARRAY > endif > > -- > 2.43.0 > >
On Wed, Jan 10, 2024 at 4:34 PM James Carter <jwcart2@gmail.com> wrote: > > On Mon, Jan 8, 2024 at 4:03 PM Fabrice Fontaine > <fontaine.fabrice@gmail.com> wrote: > > > > Pass LDFLAGS when checking for reallocarray to avoid the following > > static build failure with musl raised since version 3.4 and > > https://github.com/SELinuxProject/selinux/commit/f0a5f6e33084bd83d409bb7c932256139f471e71 > > because -static is not passed when checking for reallocarray: > > > > /home/autobuild/autobuild/instance-9/output-1/host/bin/armeb-buildroot-linux-musleabi-gcc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O0 -g0 -static -I. -I../include -D_GNU_SOURCE -I../cil/include -fPIC -c -o assertion.o assertion.c > > In file included from assertion.c:28: > > private.h:88:21: error: static declaration of 'reallocarray' follows non-static declaration > > 88 | static inline void* reallocarray(void *ptr, size_t nmemb, size_t size) { > > | ^~~~~~~~~~~~ > > In file included from ../include/sepol/policydb/mls_types.h:35, > > from ../include/sepol/policydb/context.h:23, > > from ../include/sepol/policydb/policydb.h:62, > > from assertion.c:24: > > /home/autobuild/autobuild/instance-9/output-1/host/armeb-buildroot-linux-musleabi/sysroot/usr/include/stdlib.h:150:7: note: previous declaration of 'reallocarray' with type 'void *(void *, size_t, size_t)' {aka 'void *(void *, unsigned int, unsigned int)'} > > 150 | void *reallocarray (void *, size_t, size_t); > > | ^~~~~~~~~~~~ > > > > Fixes: > > - http://autobuild.buildroot.org/results/0170032548a38e2c991d62dc5823808458ad03b3 > > > > Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> > > Acked-by: James Carter <jwcart2@gmail.com> > Merged. Thanks, Jim > > --- > > libsepol/src/Makefile | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/libsepol/src/Makefile b/libsepol/src/Makefile > > index d80a941f..16b9bd5e 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) -x c -o /dev/null - >/dev/null 2>&1 && echo yes)) > > +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)) > > override CFLAGS += -DHAVE_REALLOCARRAY > > endif > > > > -- > > 2.43.0 > > > >
diff --git a/libsepol/src/Makefile b/libsepol/src/Makefile index d80a941f..16b9bd5e 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) -x c -o /dev/null - >/dev/null 2>&1 && echo yes)) +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)) override CFLAGS += -DHAVE_REALLOCARRAY endif
Pass LDFLAGS when checking for reallocarray to avoid the following static build failure with musl raised since version 3.4 and https://github.com/SELinuxProject/selinux/commit/f0a5f6e33084bd83d409bb7c932256139f471e71 because -static is not passed when checking for reallocarray: /home/autobuild/autobuild/instance-9/output-1/host/bin/armeb-buildroot-linux-musleabi-gcc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -O0 -g0 -static -I. -I../include -D_GNU_SOURCE -I../cil/include -fPIC -c -o assertion.o assertion.c In file included from assertion.c:28: private.h:88:21: error: static declaration of 'reallocarray' follows non-static declaration 88 | static inline void* reallocarray(void *ptr, size_t nmemb, size_t size) { | ^~~~~~~~~~~~ In file included from ../include/sepol/policydb/mls_types.h:35, from ../include/sepol/policydb/context.h:23, from ../include/sepol/policydb/policydb.h:62, from assertion.c:24: /home/autobuild/autobuild/instance-9/output-1/host/armeb-buildroot-linux-musleabi/sysroot/usr/include/stdlib.h:150:7: note: previous declaration of 'reallocarray' with type 'void *(void *, size_t, size_t)' {aka 'void *(void *, unsigned int, unsigned int)'} 150 | void *reallocarray (void *, size_t, size_t); | ^~~~~~~~~~~~ Fixes: - http://autobuild.buildroot.org/results/0170032548a38e2c991d62dc5823808458ad03b3 Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> --- libsepol/src/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)