package/apitrace: fix build failure on m68k architecture

apitrace uses very big switch statements, which causes the build to fail
on m68k, because the offsets there are only 16-bit.

We fix that by using -mlong-jump-table-offsets on m68k, to use 32-bit
offsets for switch statements. That flag is available on gcc version >= 7
but apitrace package already depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7, so
we can use it with no problem.

Fixes:
http://autobuild.buildroot.net/results/7306bf05962fec30fbe98b1eb8ee09b3162b8080/

Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Giulio Benetti 2022-01-29 19:34:26 +01:00 committed by Thomas Petazzoni
parent 14233f3f0f
commit fdee6c9f39

View File

@ -38,6 +38,11 @@ ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85180),y)
APITRACE_CXXFLAGS += -O0 APITRACE_CXXFLAGS += -O0
endif endif
# m68k needs 32-bit offsets in switch tables to build
ifeq ($(BR2_m68k),y)
APITRACE_CXXFLAGS += -mlong-jump-table-offsets
endif
APITRACE_CONF_OPTS += \ APITRACE_CONF_OPTS += \
-DCMAKE_C_FLAGS="$(APITRACE_CFLAGS)" \ -DCMAKE_C_FLAGS="$(APITRACE_CFLAGS)" \
-DCMAKE_CXX_FLAGS="$(APITRACE_CXXFLAGS)" -DCMAKE_CXX_FLAGS="$(APITRACE_CXXFLAGS)"