Package: src:gcc-4.9 Version: 4.9.2-1 In the past, dpkg-architecture doesn't export DEB_TARGET_* Vars,
so in rules.defs ifdef DEB_TARGET_GNU_TYPE TARGET_VARS := $(shell dpkg-architecture -f -t$(DEB_TARGET_GNU_TYPE) 2>/dev/null) else # allow debian/target to be used instead of DEB_GCC_TARGET - this was requested # by toolchain-source maintainer DEBIAN_TARGET_FILE := $(strip $(if $(wildcard debian/target),$(shell cat debian/target 2>/dev/null))) ifndef DEB_TARGET_ARCH ifneq (,$(DEBIAN_TARGET_FILE)) DEB_TARGET_ARCH := $(DEBIAN_TARGET_FILE) else ifdef DEB_GCC_TARGET DEB_TARGET_ARCH := $(DEB_GCC_TARGET) else DEB_TARGET_ARCH := $(DEB_HOST_ARCH) endif endif endif TARGET_VARS := $(shell dpkg-architecture -f -a$(DEB_TARGET_ARCH) 2>/dev/null) endif DEB_TARGET_ARCH ?= $(call vafilt,$(TARGET_VARS),DEB_HOST_ARCH) DEB_TARGET_ARCH_OS ?= $(call vafilt,$(TARGET_VARS),DEB_HOST_ARCH_OS) DEB_TARGET_ARCH_CPU ?= $(call vafilt,$(TARGET_VARS),DEB_HOST_ARCH_CPU) DEB_TARGET_GNU_CPU ?= $(call vafilt,$(TARGET_VARS),DEB_HOST_GNU_CPU) DEB_TARGET_GNU_TYPE ?= $(call vafilt,$(TARGET_VARS),DEB_HOST_GNU_TYPE) DEB_TARGET_GNU_SYSTEM ?= $(call vafilt,$(TARGET_VARS),DEB_HOST_GNU_SYSTEM) DEB_TARGET_MULTIARCH ?= $(call vafilt,$(TARGET_VARS),DEB_HOST_MULTIARCH) works But now, when DEB_TARGET_GNU_TYPE and DEB_TARGET_ARCH always define, we can not get cross complier with debian/target file or DEB_GCC_TARGET var. Modifying it to this can fix this problem # allow debian/target to be used instead of DEB_GCC_TARGET - this was requested # by toolchain-source maintainer DEBIAN_TARGET_FILE := $(strip $(if $(wildcard debian/target),$(shell cat debian/target 2>/dev/null))) ifndef DEB_TARGET_ARCH ifneq (,$(DEBIAN_TARGET_FILE)) DEB_TARGET_ARCH := $(DEBIAN_TARGET_FILE) else ifdef DEB_GCC_TARGET DEB_TARGET_ARCH := $(DEB_GCC_TARGET) else DEB_TARGET_ARCH := $(DEB_HOST_ARCH) endif endif endif TARGET_VARS := $(shell dpkg-architecture -f -a$(DEB_TARGET_ARCH) 2>/dev/null) DEB_TARGET_ARCH := $(call vafilt,$(TARGET_VARS),DEB_HOST_ARCH) DEB_TARGET_ARCH_OS := $(call vafilt,$(TARGET_VARS),DEB_HOST_ARCH_OS) DEB_TARGET_ARCH_CPU := $(call vafilt,$(TARGET_VARS),DEB_HOST_ARCH_CPU) DEB_TARGET_GNU_CPU := $(call vafilt,$(TARGET_VARS),DEB_HOST_GNU_CPU) DEB_TARGET_GNU_TYPE := $(call vafilt,$(TARGET_VARS),DEB_HOST_GNU_TYPE) DEB_TARGET_GNU_SYSTEM := $(call vafilt,$(TARGET_VARS),DEB_HOST_GNU_SYSTEM) DEB_TARGET_MULTIARCH := $(call vafilt,$(TARGET_VARS),DEB_HOST_MULTIARCH) GCC 4.8 also has the same problem. -- YunQiang Su
--- gcc-4.9-4.9.2/debian/rules.defs 2014-11-06 00:12:34.000000000 +0800 +++ gcc-4.9/debian/rules.defs 2014-11-06 00:03:38.081051557 +0800 @@ -89,33 +89,30 @@ ifdef GCC_TARGET DEB_GCC_TARGET := $(GCC_TARGET) endif -ifdef DEB_TARGET_GNU_TYPE - TARGET_VARS := $(shell dpkg-architecture -f -t$(DEB_TARGET_GNU_TYPE) 2>/dev/null) -else - # allow debian/target to be used instead of DEB_GCC_TARGET - this was requested - # by toolchain-source maintainer - DEBIAN_TARGET_FILE := $(strip $(if $(wildcard debian/target),$(shell cat debian/target 2>/dev/null))) - ifndef DEB_TARGET_ARCH - ifneq (,$(DEBIAN_TARGET_FILE)) - DEB_TARGET_ARCH := $(DEBIAN_TARGET_FILE) + +# allow debian/target to be used instead of DEB_GCC_TARGET - this was requested +# by toolchain-source maintainer +DEBIAN_TARGET_FILE := $(strip $(if $(wildcard debian/target),$(shell cat debian/target 2>/dev/null))) +ifndef DEB_TARGET_ARCH + ifneq (,$(DEBIAN_TARGET_FILE)) + DEB_TARGET_ARCH := $(DEBIAN_TARGET_FILE) + else + ifdef DEB_GCC_TARGET + DEB_TARGET_ARCH := $(DEB_GCC_TARGET) else - ifdef DEB_GCC_TARGET - DEB_TARGET_ARCH := $(DEB_GCC_TARGET) - else - DEB_TARGET_ARCH := $(DEB_HOST_ARCH) - endif + DEB_TARGET_ARCH := $(DEB_HOST_ARCH) endif endif - TARGET_VARS := $(shell dpkg-architecture -f -a$(DEB_TARGET_ARCH) 2>/dev/null) endif +TARGET_VARS := $(shell dpkg-architecture -f -a$(DEB_TARGET_ARCH) 2>/dev/null) -DEB_TARGET_ARCH ?= $(call vafilt,$(TARGET_VARS),DEB_HOST_ARCH) -DEB_TARGET_ARCH_OS ?= $(call vafilt,$(TARGET_VARS),DEB_HOST_ARCH_OS) -DEB_TARGET_ARCH_CPU ?= $(call vafilt,$(TARGET_VARS),DEB_HOST_ARCH_CPU) -DEB_TARGET_GNU_CPU ?= $(call vafilt,$(TARGET_VARS),DEB_HOST_GNU_CPU) -DEB_TARGET_GNU_TYPE ?= $(call vafilt,$(TARGET_VARS),DEB_HOST_GNU_TYPE) -DEB_TARGET_GNU_SYSTEM ?= $(call vafilt,$(TARGET_VARS),DEB_HOST_GNU_SYSTEM) -DEB_TARGET_MULTIARCH ?= $(call vafilt,$(TARGET_VARS),DEB_HOST_MULTIARCH) +DEB_TARGET_ARCH := $(call vafilt,$(TARGET_VARS),DEB_HOST_ARCH) +DEB_TARGET_ARCH_OS := $(call vafilt,$(TARGET_VARS),DEB_HOST_ARCH_OS) +DEB_TARGET_ARCH_CPU := $(call vafilt,$(TARGET_VARS),DEB_HOST_ARCH_CPU) +DEB_TARGET_GNU_CPU := $(call vafilt,$(TARGET_VARS),DEB_HOST_GNU_CPU) +DEB_TARGET_GNU_TYPE := $(call vafilt,$(TARGET_VARS),DEB_HOST_GNU_TYPE) +DEB_TARGET_GNU_SYSTEM := $(call vafilt,$(TARGET_VARS),DEB_HOST_GNU_SYSTEM) +DEB_TARGET_MULTIARCH := $(call vafilt,$(TARGET_VARS),DEB_HOST_MULTIARCH) ifeq ($(DEB_TARGET_GNU_TYPE),i486-linux-gnu) DEB_TARGET_GNU_TYPE = i586-linux-gnu