4520524ba0
With this commit we're starting a series of updates of ARC tools. Significantly rewritten arc-2016.03 tools introduced way too many problems highlighted by Buildroot autobuilder. Now in attempt to resolve as many issues as possible by the time final release of arc-2016.09 tools is cut we'll be executing arc-2016.09 series with engineering snapshots like this one. We decided to go this way instead of applying separate patches here and there because ongoing development introduces quite a lot of changes and separate patches are not practical in Buildroot. Moreover this will give us very clean visibility of number of issues we see (hopefully it will decrease over time). One of the important changes introduced in this engineering build is initial set of changes for proper support of PIE on ARC in terms of both building on host and running on ARC target. I expect some PIE-related build breakages to go away and new ones will be treated as the high-priority issues to be fixed ASAP. For now we only update Binutils and GCC while keeping GDB as it is of arc-2016.03 release because there're some issues we'd like to resolve before releasing it to wider audience. So again note this is one of the first engineering builds of arc-2016.09 series and it might have all kinds of breakages, please don't use it for production builds. Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Cc: arc-buildroot@synopsys.com Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Peter Korsgaard <peter@korsgaard.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
123 lines
3.8 KiB
Makefile
123 lines
3.8 KiB
Makefile
################################################################################
|
|
#
|
|
# binutils
|
|
#
|
|
################################################################################
|
|
|
|
# Version is set when using buildroot toolchain.
|
|
# If not, we do like other packages
|
|
BINUTILS_VERSION = $(call qstrip,$(BR2_BINUTILS_VERSION))
|
|
ifeq ($(BINUTILS_VERSION),)
|
|
ifeq ($(BR2_arc),y)
|
|
BINUTILS_VERSION = arc-2016.09-eng005
|
|
else
|
|
BINUTILS_VERSION = 2.25.1
|
|
endif
|
|
endif # BINUTILS_VERSION
|
|
|
|
ifeq ($(BR2_arc),y)
|
|
BINUTILS_SITE = $(call github,foss-for-synopsys-dwc-arc-processors,binutils-gdb,$(BINUTILS_VERSION))
|
|
BINUTILS_SOURCE = binutils-$(BINUTILS_VERSION).tar.gz
|
|
BINUTILS_FROM_GIT = y
|
|
endif
|
|
BINUTILS_SITE ?= $(BR2_GNU_MIRROR)/binutils
|
|
BINUTILS_SOURCE ?= binutils-$(BINUTILS_VERSION).tar.bz2
|
|
BINUTILS_EXTRA_CONFIG_OPTIONS = $(call qstrip,$(BR2_BINUTILS_EXTRA_CONFIG_OPTIONS))
|
|
BINUTILS_INSTALL_STAGING = YES
|
|
BINUTILS_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext)
|
|
HOST_BINUTILS_DEPENDENCIES =
|
|
BINUTILS_LICENSE = GPLv3+, libiberty LGPLv2.1+
|
|
BINUTILS_LICENSE_FILES = COPYING3 COPYING.LIB
|
|
|
|
ifeq ($(BINUTILS_FROM_GIT),y)
|
|
BINUTILS_DEPENDENCIES += host-flex host-bison
|
|
HOST_BINUTILS_DEPENDENCIES += host-flex host-bison
|
|
endif
|
|
|
|
# When binutils sources are fetched from the binutils-gdb repository,
|
|
# they also contain the gdb sources, but gdb shouldn't be built, so we
|
|
# disable it.
|
|
BINUTILS_DISABLE_GDB_CONF_OPTS = \
|
|
--disable-sim \
|
|
--disable-gdb
|
|
|
|
# We need to specify host & target to avoid breaking ARM EABI
|
|
BINUTILS_CONF_OPTS = \
|
|
--disable-multilib \
|
|
--disable-werror \
|
|
--host=$(GNU_TARGET_NAME) \
|
|
--target=$(GNU_TARGET_NAME) \
|
|
--enable-install-libiberty \
|
|
$(BINUTILS_DISABLE_GDB_CONF_OPTS) \
|
|
$(BINUTILS_EXTRA_CONFIG_OPTIONS)
|
|
|
|
ifeq ($(BR2_STATIC_LIBS),y)
|
|
BINUTILS_CONF_OPTS += --disable-plugins
|
|
endif
|
|
|
|
# Don't build documentation. It takes up extra space / build time,
|
|
# and sometimes needs specific makeinfo versions to work
|
|
BINUTILS_CONF_ENV += ac_cv_prog_MAKEINFO=missing
|
|
HOST_BINUTILS_CONF_ENV += ac_cv_prog_MAKEINFO=missing
|
|
|
|
# Install binutils after busybox to prefer full-blown utilities
|
|
ifeq ($(BR2_PACKAGE_BUSYBOX),y)
|
|
BINUTILS_DEPENDENCIES += busybox
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_ZLIB),y)
|
|
BINUTILS_DEPENDENCIES += zlib
|
|
endif
|
|
|
|
# "host" binutils should actually be "cross"
|
|
# We just keep the convention of "host utility" for now
|
|
HOST_BINUTILS_CONF_OPTS = \
|
|
--disable-multilib \
|
|
--disable-werror \
|
|
--target=$(GNU_TARGET_NAME) \
|
|
--disable-shared \
|
|
--enable-static \
|
|
--with-sysroot=$(STAGING_DIR) \
|
|
--enable-poison-system-directories \
|
|
$(BINUTILS_DISABLE_GDB_CONF_OPTS) \
|
|
$(BINUTILS_EXTRA_CONFIG_OPTIONS)
|
|
|
|
# binutils run configure script of subdirs at make time, so ensure
|
|
# our TARGET_CONFIGURE_ARGS are taken into consideration for those
|
|
define BINUTILS_BUILD_CMDS
|
|
$(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_ARGS) $(MAKE) -C $(@D)
|
|
endef
|
|
|
|
# We just want libbfd, libiberty and libopcodes,
|
|
# not the full-blown binutils in staging
|
|
define BINUTILS_INSTALL_STAGING_CMDS
|
|
$(MAKE) -C $(@D)/bfd DESTDIR=$(STAGING_DIR) install
|
|
$(MAKE) -C $(@D)/opcodes DESTDIR=$(STAGING_DIR) install
|
|
$(MAKE) -C $(@D)/libiberty DESTDIR=$(STAGING_DIR) install
|
|
endef
|
|
|
|
# If we don't want full binutils on target
|
|
ifneq ($(BR2_PACKAGE_BINUTILS_TARGET),y)
|
|
define BINUTILS_INSTALL_TARGET_CMDS
|
|
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/bfd DESTDIR=$(TARGET_DIR) install
|
|
$(MAKE) -C $(@D)/libiberty DESTDIR=$(STAGING_DIR) install
|
|
endef
|
|
endif
|
|
|
|
XTENSA_CORE_NAME = $(call qstrip, $(BR2_XTENSA_CORE_NAME))
|
|
ifneq ($(XTENSA_CORE_NAME),)
|
|
define BINUTILS_XTENSA_PRE_PATCH
|
|
tar xf $(BR2_XTENSA_OVERLAY_DIR)/xtensa_$(XTENSA_CORE_NAME).tar \
|
|
-C $(@D) --strip-components=1 binutils
|
|
endef
|
|
BINUTILS_PRE_PATCH_HOOKS += BINUTILS_XTENSA_PRE_PATCH
|
|
HOST_BINUTILS_PRE_PATCH_HOOKS += BINUTILS_XTENSA_PRE_PATCH
|
|
endif
|
|
|
|
ifeq ($(BR2_BINUTILS_ENABLE_LTO),y)
|
|
HOST_BINUTILS_CONF_OPTS += --enable-plugins --enable-lto
|
|
endif
|
|
|
|
$(eval $(autotools-package))
|
|
$(eval $(host-autotools-package))
|