kumquat-buildroot/package/efivar/efivar.mk
Erico Nunes 0cf4e05832 efivar: force shared libgcc for Nios II
efivar for Nios II also has to be linked with shared libgcc to avoid an
error due to FDE encoding in static libgcc when linking libefiboot.so.

Fixes:
http://autobuild.buildroot.net/results/0c9/0c90e3e7ad41d21dd832f6f266af35fc19185170/

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-07-01 16:19:27 +02:00

58 lines
1.7 KiB
Makefile

################################################################################
#
# efivar
#
################################################################################
EFIVAR_VERSION = 0.23
EFIVAR_SITE = $(call github,rhinstaller,efivar,$(EFIVAR_VERSION))
EFIVAR_LICENSE = LGPLv2.1
EFIVAR_LICENSE_FILES = COPYING
EFIVAR_DEPENDENCIES = popt
EFIVAR_INSTALL_STAGING = YES
# BINTARGETS is set to skip efivar-static which requires static popt,
# and since we depend on glibc, we will never be built in a
# static-only environment.
# -fPIC is needed at least on MIPS, otherwise fails to build shared
# -library.
EFIVAR_MAKE_OPTS = \
libdir=/usr/lib \
BINTARGETS=efivar \
LDFLAGS="$(TARGET_LDFLAGS) -fPIC"
# Explicitly linking with shared libgcc is required on MicroBlaze and
# Nios II, otherwise it fails due to FDE encoding in static libgcc.
ifeq ($(BR2_microblaze)$(BR2_nios2),y)
EFIVAR_MAKE_OPTS += SOFLAGS="-shared -shared-libgcc"
endif
define EFIVAR_BUILD_CMDS
# makeguids is an internal host tool and must be built separately with
# $(HOST_CC), otherwise it gets cross-built.
$(HOST_MAKE_ENV) $(HOST_CONFIGURE_OPTS) \
CFLAGS="$(HOST_CFLAGS) -std=gnu99" \
$(MAKE) -C $(@D)/src gcc_cflags= makeguids
$(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE1) -C $(@D) \
AR=$(TARGET_AR) NM=$(TARGET_NM) RANLIB=$(TARGET_RANLIB) \
$(EFIVAR_MAKE_OPTS) \
all
endef
define EFIVAR_INSTALL_STAGING_CMDS
$(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE1) -C $(@D) \
$(EFIVAR_MAKE_OPTS) \
DESTDIR="$(STAGING_DIR)" \
install
endef
define EFIVAR_INSTALL_TARGET_CMDS
$(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE1) -C $(@D) \
$(EFIVAR_MAKE_OPTS) \
DESTDIR="$(TARGET_DIR)" \
install
endef
$(eval $(generic-package))