buildroot/package/assimp/assimp.mk
Thomas Petazzoni 275a5650a9 package/assimp: also build with -mxgot on mips64(el)
Since the bump of assimp to 5.0.1, we have build failures on mips64el,
due to relocations being truncated. The issue seems to be quite
similar to the one on m68k coldfire, as both m68k and MIPS have this
-mxgot gcc option to switch to using a GOT that has no size limit (but
causes less efficient code to be produced).

Here as well, the overall relevance of assimp on mips64(el) platforms
being probably very limited, the incentive to search for a better
solution is pretty limited.

Fixes:

  http://autobuild.buildroot.net/results/7df487d5117b2ee440a07dbff9cae1b181566748/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2020-08-25 23:25:21 +02:00

43 lines
1.4 KiB
Makefile

################################################################################
#
# assimp
#
################################################################################
ASSIMP_VERSION = 5.0.1
ASSIMP_SITE = $(call github,assimp,assimp,v$(ASSIMP_VERSION))
ASSIMP_LICENSE = BSD-3-Clause
ASSIMP_LICENSE_FILES = LICENSE
ASSIMP_INSTALL_STAGING = YES
# relocation truncated to fit: R_68K_GOT16O. We also need to disable
# optimizations to not run into "Error: value -43420 out of range"
# assembler issues.
ifeq ($(BR2_m68k),y)
ASSIMP_CXXFLAGS += -mxgot -O0
endif
# just like m68k coldfire, mips64 also has some limitations on the GOT
# size for large libraries, which can be overcome by passing
# -mxgot. Solves "relocation truncated to fit: R_MIPS_CALL16" issues.
ifeq ($(BR2_mips64)$(BR2_mips64el),y)
ASSIMP_CXXFLAGS += -mxgot
endif
# workaround SuperH compiler failure when static linking (i.e -fPIC is
# not passed) in gcc versions 5.x or older. The -Os optimization level
# causes a "unable to find a register to spill in class
# 'GENERAL_REGS'" error. -O2 works fine.
ifeq ($(BR2_sh):$(BR2_STATIC_LIBS):$(BR2_TOOLCHAIN_GCC_AT_LEAST_6),y:y:)
ASSIMP_CXXFLAGS += -O2
endif
ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85180),y)
ASSIMP_CXXFLAGS += -O0
endif
ASSIMP_CONF_OPTS += -DASSIMP_BUILD_ZLIB=ON -DASSIMP_BUILD_TESTS=OFF \
-DCMAKE_CXX_FLAGS="$(TARGET_CXXFLAGS) $(ASSIMP_CXXFLAGS)"
$(eval $(cmake-package))