2022-02-21 07:56 UTC-0500 ~ Mauricio Vásquez <mauricio@xxxxxxxxxx> > This commit fixes a compilation error on systems with glibc < 2.26 [0]: > > ``` > In file included from main.h:14:0, > from gen.c:24: > linux/tools/include/tools/libc_compat.h:11:21: error: attempt to use poisoned "reallocarray" > static inline void *reallocarray(void *ptr, size_t nmemb, size_t size) > ``` > > This happens because gen.c pulls <bpf/libbpf_internal.h>, and then > <tools/libc_compat.h> (through main.h). When > COMPAT_NEED_REALLOCARRAY is set, libc_compat.h defines reallocarray() > which libbpf_internal.h poisons with a GCC pragma. > > This commit reuses libbpf_reallocarray() implemented in commit > 029258d7b228 ("libbpf: Remove any use of reallocarray() in libbpf"). > > v1 -> v2: > - reuse libbpf_reallocarray() instead of reimplementing it > > Reported-by: Quentin Monnet <quentin@xxxxxxxxxxxxx> > Signed-off-by: Mauricio Vásquez <mauricio@xxxxxxxxxx> > > [0]: https://lore.kernel.org/bpf/3bf2bd49-9f2d-a2df-5536-bc0dde70a83b@xxxxxxxxxxxxx/ Fixes: a9caaba399f9 ("bpftool: Implement "gen min_core_btf" logic") Reviewed-by: Quentin Monnet <quentin@xxxxxxxxxxxxx> Thanks!