kumquat-buildroot/package/assimp/assimp.mk
Thomas Petazzoni 68cebedeb9 assimp: work around gcc bug on SuperH
gcc versions earlier than gcc 6.x fail to build assimp on SuperH when
static linking:

  AssxmlExporter.cpp:623:1: error: unable to find a register to spill in class 'GENERAL_REGS'

It's the combination of -Os and *not* having -fPIC that makes gcc
fail, which explains why configurations with dynamic linking work
fine.

 -Os -fPIC -> works
 -Os       -> fails
 -O2 -fPIC -> works
 -O2       -> works

Therefore, as a workaround, we are forcing the use of -O2 on SuperH
when the gcc version is older than gcc 6.x and we're statically
linking.

Fixes:

  http://autobuild.buildroot.net/results/ec88aa8118179e30e24603cc45292047dca19216/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-02-27 21:38:49 +01:00

31 lines
942 B
Makefile
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

################################################################################
#
# assimp
#
################################################################################
ASSIMP_VERSION = v3.2
ASSIMP_SITE = $(call github,assimp,assimp,$(ASSIMP_VERSION))
ASSIMP_LICENSE = BSD-3c
ASSIMP_LICENSE_FILES = LICENSE
ASSIMP_DEPENDENCIES = zlib
ASSIMP_INSTALL_STAGING = YES
# relocation truncated to fit: R_68K_GOT16O
ifeq ($(BR2_m68k),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_HOST_GCC_AT_LEAST_6),y:y:)
ASSIMP_CXXFLAGS += -O2
endif
ASSIMP_CONF_OPTS += -DASSIMP_BUILD_TESTS=OFF \
-DCMAKE_CXX_FLAGS="$(TARGET_CXXFLAGS) $(ASSIMP_CXXFLAGS)"
$(eval $(cmake-package))