diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..a036446 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,9 @@ +/.idea +/.config +/.config.old +/build +/result +/build.log +/crosstool-ng* +/*.tar.xz +/*.tar.xz.asc diff --git a/.gitignore b/.gitignore index 4dd26bc..a036446 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,9 @@ -/_build /.idea +/.config +/.config.old +/build +/result +/build.log +/crosstool-ng* +/*.tar.xz +/*.tar.xz.asc diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 3dc1bf2..0000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "abe"] - path = abe - url = git://git.linaro.org/toolchain/abe.git diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..8ed41cf --- /dev/null +++ b/Dockerfile @@ -0,0 +1,28 @@ +FROM ubuntu:eoan + +ARG CTVER=1.24.0 +ARG UID=1000 +ARG GID=1000 +ARG USER=toolchain +ARG GROUP=toolchain + +RUN apt-get update +RUN apt-get install -y gcc g++ gperf bison flex texinfo help2man make libncurses5-dev \ + python3-dev autoconf automake libtool libtool-bin gawk wget bzip2 xz-utils unzip \ + patch libstdc++6 rsync wget git + +RUN wget http://crosstool-ng.org/download/crosstool-ng/crosstool-ng-$CTVER.tar.xz && \ + tar xf crosstool-ng-$CTVER.tar.xz && \ + cd crosstool-ng-$CTVER && \ + ./configure && \ + make && make install + +RUN groupadd -g $GID $GROUP +RUN useradd -ms /bin/bash -u $UID -g $GID $USER + +USER $USER +RUN mkdir -p /home/$USER/rpi-toolchain +WORKDIR /home/$USER/rpi-toolchain +COPY --chown=toolchain:toolchain . . +RUN make + diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..98000e7 --- /dev/null +++ b/Makefile @@ -0,0 +1,57 @@ +TARGET:=arm-linux-gnueabihf +VERSION:=$(shell git describe --always --dirty) +NAME:=raspbian-$(VERSION) +TOOLCHAIN:=toolchain-$(NAME)-x86_64-$(TARGET) +SRC:=src-$(NAME) +URL:=https://github.com/ali1234/rpi-toolchain/issues/new?body=Version:%20$(VERSION) + +export DEB_TARGET_MULTIARCH=$(TARGET) + +all: $(TOOLCHAIN).tar.xz.asc $(SRC).tar.xz.asc + +%.tar.xz.asc: %.tar.xz + sha256sum $< > $@ + +.config: ct-ng-config + sed -E -e 's|^(CT_TOOLCHAIN_PKGVERSION)=.*|\1=\"$(NAME)\"|' \ + -e 's|^(CT_TOOLCHAIN_BUGURL)=.*|\1=\"$(NAME)\"|' ct-ng-config > .config + +result/success: .config + ct-ng build && touch result/success + +$(TOOLCHAIN).tar.xz: result/success + rm -rf --one-file-system result/$(TOOLCHAIN) + mkdir result/$(TOOLCHAIN) + rsync -av result/$(TARGET)/* result/$(TOOLCHAIN) + ct-ng --version > result/$(TOOLCHAIN)/ct-ng-version + cp .config result/$(TOOLCHAIN)/ct-ng-config + tar Jcf $(TOOLCHAIN).tar.xz --directory result $(TOOLCHAIN) + +$(SRC).tar.xz: result/success + ct-ng --version > src/ct-ng-version + cp .config src/ct-ng-config + tar Jcf $(SRC).tar.xz src + +saveconfig: + sed -E -e 's|^(CT_TOOLCHAIN_PKGVERSION)=.*|\1=\"\"|' \ + -e 's|^(CT_TOOLCHAIN_BUGURL)=.*|\1=\"\"|' .config > ct-ng-config + +menuconfig: .config + ct-ng menuconfig + +clean: + rm -rf build result build.log .config .config.old + rm -rf $(TOOLCHAIN).tar.xz $(TOOLCHAIN).tar.xz.asc $(SRC).tar.xz $(SRC).tar.xz.asc + +reallyclean: clean + rm -rf *.tar.xz *.tar.xz.asc + +indocker: + docker build -t rpi-toolchain . + docker create -ti --name rpi-toolchain-tmp rpi-toolchain + docker cp rpi-toolchain-tmp:/home/toolchain/rpi-toolchain/$(TOOLCHAIN).tar.xz . + docker cp rpi-toolchain-tmp:/home/toolchain/rpi-toolchain/$(TOOLCHAIN).tar.xz.asc . + docker cp rpi-toolchain-tmp:/home/toolchain/rpi-toolchain/$(SRC).tar.xz . + docker cp rpi-toolchain-tmp:/home/toolchain/rpi-toolchain/$(SRC).tar.xz.asc . + docker cp rpi-toolchain-tmp:/home/toolchain/rpi-toolchain/build.log . + docker rm -f rpi-toolchain-tmp diff --git a/README.md b/README.md index e9484b5..78011b7 100644 --- a/README.md +++ b/README.md @@ -2,21 +2,11 @@ A gcc cross toolchain for all Raspberry Pi models with multiarch support. -Linaro toolchains are built using a tool called ABE. This is similar to -crosstool-ng. After building it produces a manifest which can be used to -reproduce the build. +This toolchain is built with crosstool-ng. It includes the Debian specific +patch for multiarch support in binutils. -This toolchain is built by taking the Linaro release manifest and modifying -the compiler configuration to produce armv6 compatible binaries which can -run on all models of Raspberry Pi. +To build it, clone the repository and run `make` or `make indocker` to +run the build inside Docker. Check the Dockerfile to see the dependencies +for a local build. To build from the release source, untar them inside +the `src` directory. -The changes required for this are very small. In the manifest, only the -variables `gcc_stage1_flags` and `gcc_stage2_flags` are modified. - -The flags: - - --with-fpu=vfpv3-d16 --with-mode=thumb --with-tune=cortex-a9 --with-arch=armv7-a - -are replaced by: - - --with-fpu=vfp --with-arch=armv6 diff --git a/abe b/abe deleted file mode 160000 index bb166f7..0000000 --- a/abe +++ /dev/null @@ -1 +0,0 @@ -Subproject commit bb166f788ba4180755c8cdbc9c63078446307b85 diff --git a/build.sh b/build.sh deleted file mode 100755 index 6bc2e85..0000000 --- a/build.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh -e - -VERSION=$(git describe --always --dirty) - -rm -rf _build/builds _build/sysroots _build/Makefile _build/config.log _build/config.status _build/host.conf -rm -rf _build/snapshots/*arm-linux-gnueabihf.tar.xz* -mkdir _build -cd _build -../abe/configure - -../abe/abe.sh --manifest ../gcc-linaro-6.4.1-2018.05+rpi-linux-manifest.txt \ - --release 2018.05+rpi$VERSION --build all --tarbin diff --git a/ct-ng-config b/ct-ng-config new file mode 100644 index 0000000..3e4a2ca --- /dev/null +++ b/ct-ng-config @@ -0,0 +1,874 @@ +# +# Automatically generated file; DO NOT EDIT. +# crosstool-NG Configuration +# +CT_CONFIGURE_has_static_link=y +CT_CONFIGURE_has_cxx11=y +CT_CONFIGURE_has_wget=y +CT_CONFIGURE_has_curl=y +CT_CONFIGURE_has_make_3_81_or_newer=y +CT_CONFIGURE_has_make_4_0_or_newer=y +CT_CONFIGURE_has_libtool_2_4_or_newer=y +CT_CONFIGURE_has_libtoolize_2_4_or_newer=y +CT_CONFIGURE_has_autoconf_2_65_or_newer=y +CT_CONFIGURE_has_autoreconf_2_65_or_newer=y +CT_CONFIGURE_has_gnu_m4_1_4_12_or_newer=y +CT_CONFIGURE_has_python_3_4_or_newer=y +CT_CONFIGURE_has_bison_2_7_or_newer=y +CT_CONFIGURE_has_python=y +CT_CONFIGURE_has_git=y +CT_CONFIGURE_has_md5sum=y +CT_CONFIGURE_has_sha1sum=y +CT_CONFIGURE_has_sha256sum=y +CT_CONFIGURE_has_sha512sum=y +CT_CONFIGURE_has_install_with_strip_program=y +CT_CONFIG_VERSION_CURRENT="3" +CT_CONFIG_VERSION="3" +CT_MODULES=y + +# +# Paths and misc options +# + +# +# crosstool-NG behavior +# +# CT_OBSOLETE is not set +# CT_EXPERIMENTAL is not set +# CT_DEBUG_CT is not set + +# +# Paths +# +CT_LOCAL_TARBALLS_DIR="${CT_TOP_DIR}/src" +CT_SAVE_TARBALLS=y +# CT_TARBALLS_BUILDROOT_LAYOUT is not set +CT_WORK_DIR="${CT_TOP_DIR}/build" +CT_BUILD_TOP_DIR="${CT_WORK_DIR:-${CT_TOP_DIR}/.build}/${CT_HOST:+HOST-${CT_HOST}/}${CT_TARGET}" +CT_PREFIX_DIR="${CT_TOP_DIR}/result/${CT_HOST:+HOST-${CT_HOST}/}${CT_TARGET}" +CT_RM_RF_PREFIX_DIR=y +CT_REMOVE_DOCS=y +CT_INSTALL_LICENSES=y +# CT_PREFIX_DIR_RO is not set +CT_STRIP_HOST_TOOLCHAIN_EXECUTABLES=y +CT_STRIP_TARGET_TOOLCHAIN_EXECUTABLES=y + +# +# Downloading +# +CT_DOWNLOAD_AGENT_WGET=y +# CT_DOWNLOAD_AGENT_CURL is not set +# CT_DOWNLOAD_AGENT_NONE is not set +# CT_FORBID_DOWNLOAD is not set +# CT_FORCE_DOWNLOAD is not set +CT_CONNECT_TIMEOUT=10 +CT_DOWNLOAD_WGET_OPTIONS="--passive-ftp --tries=3 -nc --progress=dot:binary" +# CT_ONLY_DOWNLOAD is not set +# CT_USE_MIRROR is not set +CT_VERIFY_DOWNLOAD_DIGEST=y +CT_VERIFY_DOWNLOAD_DIGEST_SHA512=y +# CT_VERIFY_DOWNLOAD_DIGEST_SHA256 is not set +# CT_VERIFY_DOWNLOAD_DIGEST_SHA1 is not set +# CT_VERIFY_DOWNLOAD_DIGEST_MD5 is not set +CT_VERIFY_DOWNLOAD_DIGEST_ALG="sha512" +# CT_VERIFY_DOWNLOAD_SIGNATURE is not set + +# +# Extracting +# +# CT_FORCE_EXTRACT is not set +CT_OVERRIDE_CONFIG_GUESS_SUB=y +# CT_ONLY_EXTRACT is not set +# CT_PATCH_BUNDLED is not set +CT_PATCH_BUNDLED_LOCAL=y +CT_PATCH_ORDER="bundled,local" +CT_PATCH_USE_LOCAL=y +CT_LOCAL_PATCH_DIR="${CT_TOP_DIR}/patches" + +# +# Build behavior +# +CT_PARALLEL_JOBS=0 +CT_LOAD="" +CT_USE_PIPES=y +CT_EXTRA_CFLAGS_FOR_BUILD="" +CT_EXTRA_LDFLAGS_FOR_BUILD="" +CT_EXTRA_CFLAGS_FOR_HOST="" +CT_EXTRA_LDFLAGS_FOR_HOST="" +# CT_CONFIG_SHELL_SH is not set +# CT_CONFIG_SHELL_ASH is not set +CT_CONFIG_SHELL_BASH=y +# CT_CONFIG_SHELL_CUSTOM is not set +CT_CONFIG_SHELL="${bash}" + +# +# Logging +# +# CT_LOG_ERROR is not set +# CT_LOG_WARN is not set +# CT_LOG_INFO is not set +CT_LOG_EXTRA=y +# CT_LOG_ALL is not set +# CT_LOG_DEBUG is not set +CT_LOG_LEVEL_MAX="EXTRA" +# CT_LOG_SEE_TOOLS_WARN is not set +CT_LOG_PROGRESS_BAR=y +CT_LOG_TO_FILE=y +CT_LOG_FILE_COMPRESS=y + +# +# Target options +# +# CT_ARCH_ALPHA is not set +# CT_ARCH_ARC is not set +CT_ARCH_ARM=y +# CT_ARCH_AVR is not set +# CT_ARCH_M68K is not set +# CT_ARCH_MIPS is not set +# CT_ARCH_NIOS2 is not set +# CT_ARCH_POWERPC is not set +# CT_ARCH_S390 is not set +# CT_ARCH_SH is not set +# CT_ARCH_SPARC is not set +# CT_ARCH_X86 is not set +# CT_ARCH_XTENSA is not set +CT_ARCH="arm" +CT_ARCH_CHOICE_KSYM="ARM" +CT_ARCH_CPU="arm1176jzf-s" +CT_ARCH_ARM_SHOW=y + +# +# Options for arm +# +CT_ARCH_ARM_PKG_KSYM="" +CT_ARCH_ARM_MODE="arm" +CT_ARCH_ARM_MODE_ARM=y +# CT_ARCH_ARM_MODE_THUMB is not set +# CT_ARCH_ARM_INTERWORKING is not set +CT_ARCH_ARM_EABI_FORCE=y +CT_ARCH_ARM_EABI=y +CT_ARCH_ARM_TUPLE_USE_EABIHF=y +CT_ALL_ARCH_CHOICES="ALPHA ARC ARM AVR M68K MICROBLAZE MIPS MOXIE MSP430 NIOS2 POWERPC RISCV S390 SH SPARC X86 XTENSA" +CT_ARCH_SUFFIX="" +CT_OMIT_TARGET_VENDOR=y + +# +# Generic target options +# +# CT_MULTILIB is not set +CT_DEMULTILIB=y +CT_ARCH_SUPPORTS_BOTH_MMU=y +CT_ARCH_DEFAULT_HAS_MMU=y +CT_ARCH_USE_MMU=y +CT_ARCH_SUPPORTS_FLAT_FORMAT=y +CT_ARCH_SUPPORTS_EITHER_ENDIAN=y +CT_ARCH_DEFAULT_LE=y +# CT_ARCH_BE is not set +CT_ARCH_LE=y +CT_ARCH_ENDIAN="little" +CT_ARCH_SUPPORTS_32=y +CT_ARCH_SUPPORTS_64=y +CT_ARCH_DEFAULT_32=y +CT_ARCH_BITNESS=32 +CT_ARCH_32=y +# CT_ARCH_64 is not set + +# +# Target optimisations +# +CT_ARCH_SUPPORTS_WITH_ARCH=y +CT_ARCH_SUPPORTS_WITH_CPU=y +CT_ARCH_SUPPORTS_WITH_TUNE=y +CT_ARCH_SUPPORTS_WITH_FLOAT=y +CT_ARCH_SUPPORTS_WITH_FPU=y +CT_ARCH_SUPPORTS_SOFTFP=y +CT_ARCH_EXCLUSIVE_WITH_CPU=y +CT_ARCH_FPU="vfp" +# CT_ARCH_FLOAT_AUTO is not set +CT_ARCH_FLOAT_HW=y +# CT_ARCH_FLOAT_SOFTFP is not set +# CT_ARCH_FLOAT_SW is not set +CT_TARGET_CFLAGS="" +CT_TARGET_LDFLAGS="" +CT_ARCH_FLOAT="hard" + +# +# Toolchain options +# + +# +# General toolchain options +# +CT_FORCE_SYSROOT=y +CT_USE_SYSROOT=y +CT_SYSROOT_NAME="sysroot" +CT_SYSROOT_DIR_PREFIX="" +CT_WANTS_STATIC_LINK=y +CT_WANTS_STATIC_LINK_CXX=y +CT_STATIC_TOOLCHAIN=y +CT_SHOW_CT_VERSION=y +CT_TOOLCHAIN_PKGVERSION="" +CT_TOOLCHAIN_BUGURL="" + +# +# Tuple completion and aliasing +# +CT_TARGET_ALIAS_SED_EXPR="" +CT_TARGET_ALIAS="" + +# +# Toolchain type +# +CT_CROSS=y +# CT_CANADIAN is not set +CT_TOOLCHAIN_TYPE="cross" + +# +# Build system +# +CT_BUILD="" +CT_BUILD_PREFIX="" +CT_BUILD_SUFFIX="" + +# +# Misc options +# +# CT_TOOLCHAIN_ENABLE_NLS is not set + +# +# Operating System +# +CT_KERNEL_SUPPORTS_SHARED_LIBS=y +# CT_KERNEL_BARE_METAL is not set +CT_KERNEL_LINUX=y +CT_KERNEL="linux" +CT_KERNEL_CHOICE_KSYM="LINUX" +CT_KERNEL_LINUX_SHOW=y + +# +# Options for linux +# +CT_KERNEL_LINUX_PKG_KSYM="LINUX" +CT_LINUX_DIR_NAME="linux" +CT_LINUX_PKG_NAME="linux" +CT_LINUX_SRC_RELEASE=y +CT_LINUX_PATCH_ORDER="global" +# CT_LINUX_V_4_20 is not set +CT_LINUX_V_4_19=y +# CT_LINUX_V_4_18 is not set +# CT_LINUX_V_4_17 is not set +# CT_LINUX_V_4_16 is not set +# CT_LINUX_V_4_15 is not set +# CT_LINUX_V_4_14 is not set +# CT_LINUX_V_4_13 is not set +# CT_LINUX_V_4_12 is not set +# CT_LINUX_V_4_11 is not set +# CT_LINUX_V_4_10 is not set +# CT_LINUX_V_4_9 is not set +# CT_LINUX_V_4_4 is not set +# CT_LINUX_V_4_1 is not set +# CT_LINUX_V_3_16 is not set +# CT_LINUX_V_3_13 is not set +# CT_LINUX_V_3_12 is not set +# CT_LINUX_V_3_10 is not set +# CT_LINUX_V_3_4 is not set +# CT_LINUX_V_3_2 is not set +# CT_LINUX_NO_VERSIONS is not set +CT_LINUX_VERSION="4.19.21" +CT_LINUX_MIRRORS="$(CT_Mirrors kernel.org linux ${CT_LINUX_VERSION})" +CT_LINUX_ARCHIVE_FILENAME="@{pkg_name}-@{version}" +CT_LINUX_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" +CT_LINUX_ARCHIVE_FORMATS=".tar.xz .tar.gz" +CT_LINUX_SIGNATURE_FORMAT="unpacked/.sign" +CT_LINUX_later_than_4_8=y +CT_LINUX_4_8_or_later=y +CT_LINUX_later_than_3_7=y +CT_LINUX_3_7_or_later=y +CT_LINUX_later_than_3_2=y +CT_LINUX_3_2_or_later=y +CT_LINUX_REQUIRE_3_2_or_later=y +CT_KERNEL_LINUX_VERBOSITY_0=y +# CT_KERNEL_LINUX_VERBOSITY_1 is not set +# CT_KERNEL_LINUX_VERBOSITY_2 is not set +CT_KERNEL_LINUX_VERBOSE_LEVEL=0 +CT_KERNEL_LINUX_INSTALL_CHECK=y +CT_ALL_KERNEL_CHOICES="BARE_METAL LINUX WINDOWS" + +# +# Common kernel options +# +CT_SHARED_LIBS=y + +# +# Binary utilities +# +CT_ARCH_BINFMT_ELF=y +CT_BINUTILS_BINUTILS=y +CT_BINUTILS="binutils" +CT_BINUTILS_CHOICE_KSYM="BINUTILS" +CT_BINUTILS_BINUTILS_SHOW=y + +# +# Options for binutils +# +CT_BINUTILS_BINUTILS_PKG_KSYM="BINUTILS" +CT_BINUTILS_DIR_NAME="binutils" +CT_BINUTILS_USE_GNU=y +CT_BINUTILS_USE="BINUTILS" +CT_BINUTILS_PKG_NAME="binutils" +CT_BINUTILS_SRC_RELEASE=y +CT_BINUTILS_PATCH_ORDER="global" +# CT_BINUTILS_V_2_32 is not set +CT_BINUTILS_V_2_31=y +# CT_BINUTILS_V_2_30 is not set +# CT_BINUTILS_V_2_29 is not set +# CT_BINUTILS_V_2_28 is not set +# CT_BINUTILS_V_2_27 is not set +# CT_BINUTILS_V_2_26 is not set +# CT_BINUTILS_NO_VERSIONS is not set +CT_BINUTILS_VERSION="2.31.1" +CT_BINUTILS_MIRRORS="$(CT_Mirrors GNU binutils) $(CT_Mirrors sourceware binutils/releases)" +CT_BINUTILS_ARCHIVE_FILENAME="@{pkg_name}-@{version}" +CT_BINUTILS_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" +CT_BINUTILS_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz" +CT_BINUTILS_SIGNATURE_FORMAT="packed/.sig" +CT_BINUTILS_later_than_2_30=y +CT_BINUTILS_2_30_or_later=y +CT_BINUTILS_later_than_2_27=y +CT_BINUTILS_2_27_or_later=y +CT_BINUTILS_later_than_2_25=y +CT_BINUTILS_2_25_or_later=y +CT_BINUTILS_REQUIRE_2_25_or_later=y +CT_BINUTILS_later_than_2_23=y +CT_BINUTILS_2_23_or_later=y + +# +# GNU binutils +# +CT_BINUTILS_HAS_HASH_STYLE=y +CT_BINUTILS_HAS_GOLD=y +CT_BINUTILS_HAS_PLUGINS=y +CT_BINUTILS_HAS_PKGVERSION_BUGURL=y +CT_BINUTILS_GOLD_SUPPORTS_ARCH=y +CT_BINUTILS_FORCE_LD_BFD_DEFAULT=y +CT_BINUTILS_LINKER_LD=y +CT_BINUTILS_LINKERS_LIST="ld" +CT_BINUTILS_LINKER_DEFAULT="bfd" +CT_BINUTILS_RELRO=m +CT_BINUTILS_EXTRA_CONFIG_ARRAY="" +# CT_BINUTILS_FOR_TARGET is not set +CT_ALL_BINUTILS_CHOICES="BINUTILS" + +# +# C-library +# +CT_LIBC_GLIBC=y +# CT_LIBC_UCLIBC is not set +CT_LIBC="glibc" +CT_LIBC_CHOICE_KSYM="GLIBC" +CT_THREADS="nptl" +CT_LIBC_GLIBC_SHOW=y + +# +# Options for glibc +# +CT_LIBC_GLIBC_PKG_KSYM="GLIBC" +CT_GLIBC_DIR_NAME="glibc" +CT_GLIBC_USE_GNU=y +CT_GLIBC_USE="GLIBC" +CT_GLIBC_PKG_NAME="glibc" +CT_GLIBC_SRC_RELEASE=y +CT_GLIBC_PATCH_ORDER="global" +# CT_GLIBC_V_2_29 is not set +CT_GLIBC_V_2_28=y +# CT_GLIBC_V_2_27 is not set +# CT_GLIBC_V_2_26 is not set +# CT_GLIBC_V_2_25 is not set +# CT_GLIBC_V_2_24 is not set +# CT_GLIBC_V_2_23 is not set +# CT_GLIBC_V_2_19 is not set +# CT_GLIBC_V_2_17 is not set +# CT_GLIBC_V_2_12_1 is not set +# CT_GLIBC_NO_VERSIONS is not set +CT_GLIBC_VERSION="2.28" +CT_GLIBC_MIRRORS="$(CT_Mirrors GNU glibc)" +CT_GLIBC_ARCHIVE_FILENAME="@{pkg_name}-@{version}" +CT_GLIBC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" +CT_GLIBC_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz" +CT_GLIBC_SIGNATURE_FORMAT="packed/.sig" +CT_GLIBC_2_29_or_older=y +CT_GLIBC_older_than_2_29=y +CT_GLIBC_later_than_2_27=y +CT_GLIBC_2_27_or_later=y +CT_GLIBC_later_than_2_26=y +CT_GLIBC_2_26_or_later=y +CT_GLIBC_later_than_2_25=y +CT_GLIBC_2_25_or_later=y +CT_GLIBC_later_than_2_24=y +CT_GLIBC_2_24_or_later=y +CT_GLIBC_later_than_2_23=y +CT_GLIBC_2_23_or_later=y +CT_GLIBC_later_than_2_20=y +CT_GLIBC_2_20_or_later=y +CT_GLIBC_later_than_2_17=y +CT_GLIBC_2_17_or_later=y +CT_GLIBC_later_than_2_14=y +CT_GLIBC_2_14_or_later=y +CT_GLIBC_DEP_KERNEL_HEADERS_VERSION=y +CT_GLIBC_DEP_BINUTILS=y +CT_GLIBC_DEP_GCC=y +CT_GLIBC_DEP_PYTHON=y +CT_GLIBC_BUILD_SSP=y +CT_GLIBC_HAS_LIBIDN_ADDON=y +# CT_GLIBC_USE_LIBIDN_ADDON is not set +CT_GLIBC_NO_SPARC_V8=y +CT_GLIBC_HAS_OBSOLETE_RPC=y +CT_GLIBC_EXTRA_CONFIG_ARRAY="" +CT_GLIBC_CONFIGPARMS="" +CT_GLIBC_EXTRA_CFLAGS="" +CT_GLIBC_ENABLE_OBSOLETE_RPC=y +# CT_GLIBC_DISABLE_VERSIONING is not set +CT_GLIBC_OLDEST_ABI="" +CT_GLIBC_FORCE_UNWIND=y +# CT_GLIBC_LOCALES is not set +# CT_GLIBC_KERNEL_VERSION_NONE is not set +CT_GLIBC_KERNEL_VERSION_AS_HEADERS=y +# CT_GLIBC_KERNEL_VERSION_CHOSEN is not set +CT_GLIBC_MIN_KERNEL="4.19.21" +CT_GLIBC_SSP_DEFAULT=y +# CT_GLIBC_SSP_NO is not set +# CT_GLIBC_SSP_YES is not set +# CT_GLIBC_SSP_ALL is not set +# CT_GLIBC_SSP_STRONG is not set +# CT_GLIBC_ENABLE_WERROR is not set +CT_ALL_LIBC_CHOICES="AVR_LIBC BIONIC GLIBC MINGW_W64 MOXIEBOX MUSL NEWLIB NONE UCLIBC" +CT_LIBC_SUPPORT_THREADS_ANY=y +CT_LIBC_SUPPORT_THREADS_NATIVE=y + +# +# Common C library options +# +CT_THREADS_NATIVE=y +# CT_CREATE_LDSO_CONF is not set +CT_LIBC_XLDD=y + +# +# C compiler +# +CT_CC_CORE_PASSES_NEEDED=y +CT_CC_CORE_PASS_1_NEEDED=y +CT_CC_CORE_PASS_2_NEEDED=y +CT_CC_SUPPORT_CXX=y +CT_CC_SUPPORT_FORTRAN=y +CT_CC_SUPPORT_ADA=y +CT_CC_SUPPORT_OBJC=y +CT_CC_SUPPORT_OBJCXX=y +CT_CC_SUPPORT_GOLANG=y +CT_CC_GCC=y +CT_CC="gcc" +CT_CC_CHOICE_KSYM="GCC" +CT_CC_GCC_SHOW=y + +# +# Options for gcc +# +CT_CC_GCC_PKG_KSYM="GCC" +CT_GCC_DIR_NAME="gcc" +CT_GCC_USE_GNU=y +CT_GCC_USE="GCC" +CT_GCC_PKG_NAME="gcc" +CT_GCC_SRC_RELEASE=y +CT_GCC_PATCH_ORDER="global" +CT_GCC_V_8=y +# CT_GCC_V_7 is not set +# CT_GCC_V_6 is not set +# CT_GCC_V_5 is not set +# CT_GCC_V_4_9 is not set +# CT_GCC_NO_VERSIONS is not set +CT_GCC_VERSION="8.3.0" +CT_GCC_MIRRORS="$(CT_Mirrors GNU gcc/gcc-${CT_GCC_VERSION}) $(CT_Mirrors sourceware gcc/releases/gcc-${CT_GCC_VERSION})" +CT_GCC_ARCHIVE_FILENAME="@{pkg_name}-@{version}" +CT_GCC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" +CT_GCC_ARCHIVE_FORMATS=".tar.xz .tar.gz" +CT_GCC_SIGNATURE_FORMAT="" +CT_GCC_later_than_7=y +CT_GCC_7_or_later=y +CT_GCC_later_than_6=y +CT_GCC_6_or_later=y +CT_GCC_later_than_5=y +CT_GCC_5_or_later=y +CT_GCC_later_than_4_9=y +CT_GCC_4_9_or_later=y +CT_GCC_REQUIRE_4_9_or_later=y +CT_GCC_later_than_4_8=y +CT_GCC_4_8_or_later=y +CT_CC_GCC_HAS_LIBMPX=y +CT_CC_GCC_ENABLE_CXX_FLAGS="" +CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="" +CT_CC_GCC_EXTRA_CONFIG_ARRAY="--enable-multiarch" +CT_CC_GCC_STATIC_LIBSTDCXX=y +# CT_CC_GCC_SYSTEM_ZLIB is not set +CT_CC_GCC_CONFIG_TLS=m + +# +# Optimisation features +# +CT_CC_GCC_USE_GRAPHITE=y + +# +# Settings for libraries running on target +# +CT_CC_GCC_ENABLE_TARGET_OPTSPACE=y +# CT_CC_GCC_LIBMUDFLAP is not set +# CT_CC_GCC_LIBGOMP is not set +# CT_CC_GCC_LIBSSP is not set +# CT_CC_GCC_LIBQUADMATH is not set +# CT_CC_GCC_LIBSANITIZER is not set + +# +# Misc. obscure options. +# +CT_CC_CXA_ATEXIT=y +# CT_CC_GCC_DISABLE_PCH is not set +CT_CC_GCC_SJLJ_EXCEPTIONS=m +CT_CC_GCC_LDBL_128=m +# CT_CC_GCC_BUILD_ID is not set +CT_CC_GCC_LNK_HASH_STYLE_DEFAULT=y +# CT_CC_GCC_LNK_HASH_STYLE_SYSV is not set +# CT_CC_GCC_LNK_HASH_STYLE_GNU is not set +# CT_CC_GCC_LNK_HASH_STYLE_BOTH is not set +CT_CC_GCC_LNK_HASH_STYLE="" +CT_CC_GCC_DEC_FLOAT_AUTO=y +# CT_CC_GCC_DEC_FLOAT_BID is not set +# CT_CC_GCC_DEC_FLOAT_DPD is not set +# CT_CC_GCC_DEC_FLOATS_NO is not set +CT_ALL_CC_CHOICES="GCC" + +# +# Additional supported languages: +# +CT_CC_LANG_CXX=y +CT_CC_LANG_FORTRAN=y + +# +# Debug facilities +# +# CT_DEBUG_DUMA is not set +CT_DEBUG_GDB=y +CT_DEBUG_GDB_PKG_KSYM="GDB" +CT_GDB_DIR_NAME="gdb" +CT_GDB_USE_GNU=y +CT_GDB_USE="GDB" +CT_GDB_PKG_NAME="gdb" +CT_GDB_SRC_RELEASE=y +CT_GDB_PATCH_ORDER="global" +CT_GDB_V_8_2=y +# CT_GDB_V_8_1 is not set +# CT_GDB_V_8_0 is not set +# CT_GDB_V_7_12 is not set +# CT_GDB_V_7_11 is not set +# CT_GDB_NO_VERSIONS is not set +CT_GDB_VERSION="8.2.1" +CT_GDB_MIRRORS="$(CT_Mirrors GNU gdb) $(CT_Mirrors sourceware gdb/releases)" +CT_GDB_ARCHIVE_FILENAME="@{pkg_name}-@{version}" +CT_GDB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" +CT_GDB_ARCHIVE_FORMATS=".tar.xz .tar.gz" +CT_GDB_SIGNATURE_FORMAT="" +CT_GDB_later_than_8_0=y +CT_GDB_8_0_or_later=y +CT_GDB_later_than_7_12=y +CT_GDB_7_12_or_later=y +CT_GDB_later_than_7_2=y +CT_GDB_7_2_or_later=y +CT_GDB_later_than_7_0=y +CT_GDB_7_0_or_later=y +CT_GDB_CROSS=y +CT_GDB_CROSS_STATIC=y +# CT_GDB_CROSS_SIM is not set +CT_GDB_CROSS_EXTRA_CONFIG_ARRAY="" +# CT_GDB_NATIVE is not set +CT_GDB_GDBSERVER=y +# CT_GDB_NATIVE_BUILD_IPA_LIB is not set +# CT_GDB_NATIVE_STATIC_LIBSTDCXX is not set +CT_GDB_HAS_PKGVERSION_BUGURL=y +CT_GDB_HAS_PYTHON=y +CT_GDB_INSTALL_GDBINIT=y +CT_GDB_HAS_IPA_LIB=y +# CT_DEBUG_LTRACE is not set +# CT_DEBUG_STRACE is not set +CT_ALL_DEBUG_CHOICES="DUMA GDB LTRACE STRACE" + +# +# Companion libraries +# +# CT_COMPLIBS_CHECK is not set +# CT_COMP_LIBS_CLOOG is not set +CT_COMP_LIBS_EXPAT=y +CT_COMP_LIBS_EXPAT_PKG_KSYM="EXPAT" +CT_EXPAT_DIR_NAME="expat" +CT_EXPAT_PKG_NAME="expat" +CT_EXPAT_SRC_RELEASE=y +CT_EXPAT_PATCH_ORDER="global" +CT_EXPAT_V_2_2=y +# CT_EXPAT_NO_VERSIONS is not set +CT_EXPAT_VERSION="2.2.6" +CT_EXPAT_MIRRORS="http://downloads.sourceforge.net/project/expat/expat/${CT_EXPAT_VERSION}" +CT_EXPAT_ARCHIVE_FILENAME="@{pkg_name}-@{version}" +CT_EXPAT_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" +CT_EXPAT_ARCHIVE_FORMATS=".tar.bz2" +CT_EXPAT_SIGNATURE_FORMAT="" +CT_COMP_LIBS_GETTEXT=y +CT_COMP_LIBS_GETTEXT_PKG_KSYM="GETTEXT" +CT_GETTEXT_DIR_NAME="gettext" +CT_GETTEXT_PKG_NAME="gettext" +CT_GETTEXT_SRC_RELEASE=y +CT_GETTEXT_PATCH_ORDER="global" +CT_GETTEXT_V_0_19_8_1=y +# CT_GETTEXT_NO_VERSIONS is not set +CT_GETTEXT_VERSION="0.19.8.1" +CT_GETTEXT_MIRRORS="$(CT_Mirrors GNU gettext)" +CT_GETTEXT_ARCHIVE_FILENAME="@{pkg_name}-@{version}" +CT_GETTEXT_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" +CT_GETTEXT_ARCHIVE_FORMATS=".tar.xz .tar.lz .tar.gz" +CT_GETTEXT_SIGNATURE_FORMAT="packed/.sig" +CT_COMP_LIBS_GMP=y +CT_COMP_LIBS_GMP_PKG_KSYM="GMP" +CT_GMP_DIR_NAME="gmp" +CT_GMP_PKG_NAME="gmp" +CT_GMP_SRC_RELEASE=y +CT_GMP_PATCH_ORDER="global" +CT_GMP_V_6_1=y +# CT_GMP_NO_VERSIONS is not set +CT_GMP_VERSION="6.1.2" +CT_GMP_MIRRORS="https://gmplib.org/download/gmp https://gmplib.org/download/gmp/archive $(CT_Mirrors GNU gmp)" +CT_GMP_ARCHIVE_FILENAME="@{pkg_name}-@{version}" +CT_GMP_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" +CT_GMP_ARCHIVE_FORMATS=".tar.xz .tar.lz .tar.bz2" +CT_GMP_SIGNATURE_FORMAT="packed/.sig" +CT_GMP_later_than_5_1_0=y +CT_GMP_5_1_0_or_later=y +CT_GMP_later_than_5_0_0=y +CT_GMP_5_0_0_or_later=y +CT_GMP_REQUIRE_5_0_0_or_later=y +CT_COMP_LIBS_ISL=y +CT_COMP_LIBS_ISL_PKG_KSYM="ISL" +CT_ISL_DIR_NAME="isl" +CT_ISL_PKG_NAME="isl" +CT_ISL_SRC_RELEASE=y +CT_ISL_PATCH_ORDER="global" +CT_ISL_V_0_20=y +# CT_ISL_V_0_19 is not set +# CT_ISL_V_0_18 is not set +# CT_ISL_V_0_17 is not set +# CT_ISL_V_0_16 is not set +# CT_ISL_V_0_15 is not set +# CT_ISL_NO_VERSIONS is not set +CT_ISL_VERSION="0.20" +CT_ISL_MIRRORS="http://isl.gforge.inria.fr" +CT_ISL_ARCHIVE_FILENAME="@{pkg_name}-@{version}" +CT_ISL_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" +CT_ISL_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz" +CT_ISL_SIGNATURE_FORMAT="" +CT_ISL_later_than_0_18=y +CT_ISL_0_18_or_later=y +CT_ISL_later_than_0_15=y +CT_ISL_0_15_or_later=y +CT_ISL_REQUIRE_0_15_or_later=y +CT_ISL_later_than_0_14=y +CT_ISL_0_14_or_later=y +CT_ISL_REQUIRE_0_14_or_later=y +CT_ISL_later_than_0_13=y +CT_ISL_0_13_or_later=y +CT_ISL_later_than_0_12=y +CT_ISL_0_12_or_later=y +CT_ISL_REQUIRE_0_12_or_later=y +# CT_COMP_LIBS_LIBELF is not set +CT_COMP_LIBS_LIBICONV=y +CT_COMP_LIBS_LIBICONV_PKG_KSYM="LIBICONV" +CT_LIBICONV_DIR_NAME="libiconv" +CT_LIBICONV_PKG_NAME="libiconv" +CT_LIBICONV_SRC_RELEASE=y +CT_LIBICONV_PATCH_ORDER="global" +CT_LIBICONV_V_1_15=y +# CT_LIBICONV_NO_VERSIONS is not set +CT_LIBICONV_VERSION="1.15" +CT_LIBICONV_MIRRORS="$(CT_Mirrors GNU libiconv)" +CT_LIBICONV_ARCHIVE_FILENAME="@{pkg_name}-@{version}" +CT_LIBICONV_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" +CT_LIBICONV_ARCHIVE_FORMATS=".tar.gz" +CT_LIBICONV_SIGNATURE_FORMAT="packed/.sig" +CT_COMP_LIBS_MPC=y +CT_COMP_LIBS_MPC_PKG_KSYM="MPC" +CT_MPC_DIR_NAME="mpc" +CT_MPC_PKG_NAME="mpc" +CT_MPC_SRC_RELEASE=y +CT_MPC_PATCH_ORDER="global" +CT_MPC_V_1_1=y +# CT_MPC_V_1_0 is not set +# CT_MPC_NO_VERSIONS is not set +CT_MPC_VERSION="1.1.0" +CT_MPC_MIRRORS="http://www.multiprecision.org/downloads $(CT_Mirrors GNU mpc)" +CT_MPC_ARCHIVE_FILENAME="@{pkg_name}-@{version}" +CT_MPC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" +CT_MPC_ARCHIVE_FORMATS=".tar.gz" +CT_MPC_SIGNATURE_FORMAT="packed/.sig" +CT_MPC_1_1_0_or_later=y +CT_MPC_1_1_0_or_older=y +CT_COMP_LIBS_MPFR=y +CT_COMP_LIBS_MPFR_PKG_KSYM="MPFR" +CT_MPFR_DIR_NAME="mpfr" +CT_MPFR_PKG_NAME="mpfr" +CT_MPFR_SRC_RELEASE=y +CT_MPFR_PATCH_ORDER="global" +CT_MPFR_V_4_0=y +# CT_MPFR_V_3_1 is not set +# CT_MPFR_NO_VERSIONS is not set +CT_MPFR_VERSION="4.0.2" +CT_MPFR_MIRRORS="http://www.mpfr.org/mpfr-${CT_MPFR_VERSION} $(CT_Mirrors GNU mpfr)" +CT_MPFR_ARCHIVE_FILENAME="@{pkg_name}-@{version}" +CT_MPFR_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" +CT_MPFR_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz .zip" +CT_MPFR_SIGNATURE_FORMAT="packed/.asc" +CT_MPFR_later_than_4_0_0=y +CT_MPFR_4_0_0_or_later=y +CT_MPFR_later_than_3_0_0=y +CT_MPFR_3_0_0_or_later=y +CT_MPFR_REQUIRE_3_0_0_or_later=y +CT_COMP_LIBS_NCURSES=y +CT_COMP_LIBS_NCURSES_PKG_KSYM="NCURSES" +CT_NCURSES_DIR_NAME="ncurses" +CT_NCURSES_PKG_NAME="ncurses" +CT_NCURSES_SRC_RELEASE=y +CT_NCURSES_PATCH_ORDER="global" +CT_NCURSES_V_6_1=y +# CT_NCURSES_V_6_0 is not set +# CT_NCURSES_NO_VERSIONS is not set +CT_NCURSES_VERSION="6.1" +CT_NCURSES_MIRRORS="ftp://invisible-island.net/ncurses $(CT_Mirrors GNU ncurses)" +CT_NCURSES_ARCHIVE_FILENAME="@{pkg_name}-@{version}" +CT_NCURSES_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" +CT_NCURSES_ARCHIVE_FORMATS=".tar.gz" +CT_NCURSES_SIGNATURE_FORMAT="packed/.sig" +CT_NCURSES_HOST_CONFIG_ARGS="" +CT_NCURSES_HOST_DISABLE_DB=y +CT_NCURSES_HOST_FALLBACKS="linux,xterm,xterm-color,xterm-256color,vt100" +CT_NCURSES_TARGET_CONFIG_ARGS="" +# CT_NCURSES_TARGET_DISABLE_DB is not set +CT_NCURSES_TARGET_FALLBACKS="" +CT_COMP_LIBS_ZLIB=y +CT_COMP_LIBS_ZLIB_PKG_KSYM="ZLIB" +CT_ZLIB_DIR_NAME="zlib" +CT_ZLIB_PKG_NAME="zlib" +CT_ZLIB_SRC_RELEASE=y +CT_ZLIB_PATCH_ORDER="global" +CT_ZLIB_V_1_2_11=y +# CT_ZLIB_NO_VERSIONS is not set +CT_ZLIB_VERSION="1.2.11" +CT_ZLIB_MIRRORS="http://downloads.sourceforge.net/project/libpng/zlib/${CT_ZLIB_VERSION}" +CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}" +CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" +CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz" +CT_ZLIB_SIGNATURE_FORMAT="packed/.asc" +CT_ALL_COMP_LIBS_CHOICES="CLOOG EXPAT GETTEXT GMP ISL LIBELF LIBICONV MPC MPFR NCURSES ZLIB" +CT_LIBICONV_NEEDED=y +CT_GETTEXT_NEEDED=y +CT_GMP_NEEDED=y +CT_MPFR_NEEDED=y +CT_ISL_NEEDED=y +CT_MPC_NEEDED=y +CT_EXPAT_NEEDED=y +CT_NCURSES_NEEDED=y +CT_ZLIB_NEEDED=y +CT_LIBICONV=y +CT_GETTEXT=y +CT_GMP=y +CT_MPFR=y +CT_ISL=y +CT_MPC=y +CT_EXPAT=y +CT_NCURSES=y +CT_ZLIB=y + +# +# Companion tools +# +CT_COMP_TOOLS_FOR_HOST=y +CT_COMP_TOOLS_AUTOCONF=y +CT_COMP_TOOLS_AUTOCONF_PKG_KSYM="AUTOCONF" +CT_AUTOCONF_DIR_NAME="autoconf" +CT_AUTOCONF_PKG_NAME="autoconf" +CT_AUTOCONF_SRC_RELEASE=y +CT_AUTOCONF_PATCH_ORDER="global" +CT_AUTOCONF_V_2_69=y +# CT_AUTOCONF_V_2_65 is not set +# CT_AUTOCONF_NO_VERSIONS is not set +CT_AUTOCONF_VERSION="2.69" +CT_AUTOCONF_MIRRORS="$(CT_Mirrors GNU autoconf)" +CT_AUTOCONF_ARCHIVE_FILENAME="@{pkg_name}-@{version}" +CT_AUTOCONF_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" +CT_AUTOCONF_ARCHIVE_FORMATS=".tar.xz .tar.gz" +CT_AUTOCONF_SIGNATURE_FORMAT="packed/.sig" +CT_COMP_TOOLS_AUTOMAKE=y +CT_COMP_TOOLS_AUTOMAKE_PKG_KSYM="AUTOMAKE" +CT_AUTOMAKE_DIR_NAME="automake" +CT_AUTOMAKE_PKG_NAME="automake" +CT_AUTOMAKE_SRC_RELEASE=y +CT_AUTOMAKE_PATCH_ORDER="global" +CT_AUTOMAKE_V_1_16=y +# CT_AUTOMAKE_V_1_15 is not set +# CT_AUTOMAKE_NO_VERSIONS is not set +CT_AUTOMAKE_VERSION="1.16.1" +CT_AUTOMAKE_MIRRORS="$(CT_Mirrors GNU automake)" +CT_AUTOMAKE_ARCHIVE_FILENAME="@{pkg_name}-@{version}" +CT_AUTOMAKE_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" +CT_AUTOMAKE_ARCHIVE_FORMATS=".tar.xz .tar.gz" +CT_AUTOMAKE_SIGNATURE_FORMAT="packed/.sig" +# CT_COMP_TOOLS_BISON is not set +# CT_COMP_TOOLS_DTC is not set +CT_COMP_TOOLS_LIBTOOL=y +CT_COMP_TOOLS_LIBTOOL_PKG_KSYM="LIBTOOL" +CT_LIBTOOL_DIR_NAME="libtool" +CT_LIBTOOL_PKG_NAME="libtool" +CT_LIBTOOL_SRC_RELEASE=y +CT_LIBTOOL_PATCH_ORDER="global" +CT_LIBTOOL_V_2_4=y +# CT_LIBTOOL_NO_VERSIONS is not set +CT_LIBTOOL_VERSION="2.4.6" +CT_LIBTOOL_MIRRORS="$(CT_Mirrors GNU libtool)" +CT_LIBTOOL_ARCHIVE_FILENAME="@{pkg_name}-@{version}" +CT_LIBTOOL_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" +CT_LIBTOOL_ARCHIVE_FORMATS=".tar.xz .tar.gz" +CT_LIBTOOL_SIGNATURE_FORMAT="packed/.sig" +CT_COMP_TOOLS_M4=y +CT_COMP_TOOLS_M4_PKG_KSYM="M4" +CT_M4_DIR_NAME="m4" +CT_M4_PKG_NAME="m4" +CT_M4_SRC_RELEASE=y +CT_M4_PATCH_ORDER="global" +CT_M4_V_1_4=y +# CT_M4_NO_VERSIONS is not set +CT_M4_VERSION="1.4.18" +CT_M4_MIRRORS="$(CT_Mirrors GNU m4)" +CT_M4_ARCHIVE_FILENAME="@{pkg_name}-@{version}" +CT_M4_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" +CT_M4_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz" +CT_M4_SIGNATURE_FORMAT="packed/.sig" +CT_COMP_TOOLS_MAKE=y +CT_COMP_TOOLS_MAKE_PKG_KSYM="MAKE" +CT_MAKE_DIR_NAME="make" +CT_MAKE_PKG_NAME="make" +CT_MAKE_SRC_RELEASE=y +CT_MAKE_PATCH_ORDER="global" +CT_MAKE_V_4_2=y +# CT_MAKE_NO_VERSIONS is not set +CT_MAKE_VERSION="4.2.1" +CT_MAKE_MIRRORS="$(CT_Mirrors GNU make)" +CT_MAKE_ARCHIVE_FILENAME="@{pkg_name}-@{version}" +CT_MAKE_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" +CT_MAKE_ARCHIVE_FORMATS=".tar.bz2 .tar.gz" +CT_MAKE_SIGNATURE_FORMAT="packed/.sig" +CT_MAKE_later_than_4_0=y +CT_MAKE_4_0_or_later=y +# CT_MAKE_GMAKE_SYMLINK is not set +# CT_MAKE_GNUMAKE_SYMLINK is not set +CT_ALL_COMP_TOOLS_CHOICES="AUTOCONF AUTOMAKE BISON DTC LIBTOOL M4 MAKE" diff --git a/gcc-linaro-6.4.1-2018.05+rpi-linux-manifest.txt b/gcc-linaro-6.4.1-2018.05+rpi-linux-manifest.txt deleted file mode 100644 index 0da2a8d..0000000 --- a/gcc-linaro-6.4.1-2018.05+rpi-linux-manifest.txt +++ /dev/null @@ -1,194 +0,0 @@ -manifest_format=1.5 - -# Note that for ABE, these parameters are not used -# Component data for gmp -gmp_url=http://snapshots.linaro.org/components/toolchain/infrastructure -gmp_filespec=gmp-6.1.0.tar.xz -gmp_md5sum=a9868ef2556ad6a2909babcd1428f3c7 -gmp_mingw_only="no" -gmp_configure="--enable-cxx --enable-fft" -gmp_staticlink="yes" - -# Component data for mpfr -mpfr_url=http://snapshots.linaro.org/components/toolchain/infrastructure -mpfr_filespec=mpfr-3.1.4.tar.xz -mpfr_md5sum=064b2c18185038e404a401b830d59be8 -mpfr_mingw_only="no" -mpfr_configure="--with-gmp=${local_builds}/destdir/${host}" -mpfr_staticlink="yes" - -# Component data for mpc -mpc_url=http://snapshots.linaro.org/components/toolchain/infrastructure/ -mpc_filespec=mpc-1.0.3.tar.gz -mpc_md5sum=d6a1d5f8ddea3abd2cc3e98f58352d26 -mpc_mingw_only="no" -mpc_configure="--with-gmp=${local_builds}/destdir/${host} --with-mpfr=${local_builds}/destdir/${host}" -mpc_staticlink="yes" - -# Component data for linux -linux_url=http://snapshots.linaro.org/components/toolchain/infrastructure -linux_filespec=linux-4.6.tar.xz -linux_md5sum=d2927020e24a76da4ab482a8bc3e9ef3 -linux_mingw_only="no" -linux_staticlink="yes" - -# Component data for dejagnu -dejagnu_url=http://git-us.linaro.org/git/toolchain -dejagnu_branch=linaro-local/stable -dejagnu_revision=9c19d3d7473ef731b74f3a48fcce5a168bf701ec -dejagnu_filespec=dejagnu.git -dejagnu_mingw_only="no" -dejagnu_staticlink="yes" - -# Component data for expat -expat_url=http://snapshots.linaro.org/components/toolchain/infrastructure/ -expat_filespec=expat-2.1.0-1-mingw32-dev.tar.xz -expat_md5sum=1dae54e2670882843d496692154a0e27 -expat_mingw_only="yes" -expat_staticlink="yes" - -# Component data for python -python_url=http://snapshots.linaro.org/components/toolchain/infrastructure/ -python_filespec=python-2.7.4-mingw32.tar.xz -python_md5sum=9b3092eff5508c4802936dfe4f5225ef -python_mingw_only="yes" -python_staticlink="yes" - -# Component data for libiconv -libiconv_url=http://snapshots.linaro.org/components/toolchain/infrastructure/ -libiconv_filespec=libiconv-1.14-3-mingw32-dev.tar.xz -libiconv_md5sum=7ead614fa3a8bc266e70c6fcdf198219 -libiconv_mingw_only="yes" -libiconv_staticlink="yes" - -# Component data for binutils -binutils_url=http://git-us.linaro.org/git/toolchain -binutils_branch=users/linaro/binutils-2_27-branch -binutils_revision=f3ae7dbacf5aeb9df207f5dacd778a2f6eab24fc -binutils_filespec=binutils-gdb.git -binutils_mingw_only="no" -binutils_configure="--enable-lto --enable-plugins --enable-gold --disable-werror CPPFLAGS=-UFORTIFY_SOURCE --with-pkgversion=Linaro_Binutils-2018.05 --disable-gdb --disable-sim --disable-libdecnumber --disable-readline --with-sysroot=${sysroots}" -binutils_staticlink="yes" - -# Component data for gcc -gcc_url=http://git-us.linaro.org/git/toolchain -gcc_branch=linaro-6.4-2018.05 -gcc_revision=7b15d0869c096fe39603ad63dc19ab7cf035eb70 -gcc_filespec=gcc.git -gcc_makeflags="MAKEINFOFLAGS=--force" -gcc_mingw_only="no" -gcc_configure= -gcc_mingw_extraconf="--with-libiconv-prefix=${local_builds}/destdir/${host}/usr --with-system-zlib=no" -gcc_staticlink="no" -gcc_stage1_flags="--with-mpc=${local_builds}/destdir/${host} --with-mpfr=${local_builds}/destdir/${host} --with-gmp=${local_builds}/destdir/${host} --with-gnu-as --with-gnu-ld --disable-libmudflap --enable-lto --enable-shared --without-included-gettext --enable-nls --with-system-zlib --disable-sjlj-exceptions --enable-gnu-unique-object --enable-linker-build-id --disable-libstdcxx-pch --enable-c99 --enable-clocale=gnu --enable-libstdcxx-debug --enable-long-long --with-cloog=no --with-ppl=no --with-isl=no --disable-multilib --with-float=hard --with-fpu=vfp --with-arch=armv6 --enable-threads=posix --enable-multiarch --enable-libstdcxx-time=yes --enable-gnu-indirect-function --disable-libssp --disable-libquadmath --disable-threads --without-headers --with-newlib --disable-libmudflap --disable-bootstrap --disable-decimal-float --disable-libgomp --disable-libatomic --disable-libsanitizer --disable-plugins --disable-libitm --enable-languages=c --with-sysroot=${local_builds}/sysroot-arm-linux-gnueabihf --disable-shared --with-glibc-version=2.18" -gcc_stage2_flags="--with-mpc=${local_builds}/destdir/${host} --with-mpfr=${local_builds}/destdir/${host} --with-gmp=${local_builds}/destdir/${host} --with-gnu-as --with-gnu-ld --disable-libmudflap --enable-lto --enable-shared --without-included-gettext --enable-nls --with-system-zlib --disable-sjlj-exceptions --enable-gnu-unique-object --enable-linker-build-id --disable-libstdcxx-pch --enable-c99 --enable-clocale=gnu --enable-libstdcxx-debug --enable-long-long --with-cloog=no --with-ppl=no --with-isl=no --disable-multilib --with-float=hard --with-fpu=vfp --with-arch=armv6 --enable-threads=posix --enable-multiarch --enable-libstdcxx-time=yes --enable-gnu-indirect-function --with-build-sysroot=${sysroots} --with-sysroot=${local_builds}/destdir/${host}/arm-linux-gnueabihf/libc --enable-checking=release --disable-bootstrap --enable-languages=c,c++,fortran,lto" - -# Component data for glibc -glibc_url=http://git-us.linaro.org/git/toolchain -glibc_branch=linaro/2.23/master -glibc_revision=ceeb0740ed04c48170f9f6f15fef55637ad84e1b -glibc_filespec=glibc.git -glibc_makeflags="PARALLELMFLAGS=-j32" -glibc_mingw_only="no" -glibc_configure="--disable-profile --without-gd --enable-obsolete-rpc --with-headers=${sysroots}/usr/include libc_cv_forced_unwind=yes libc_cv_c_cleanup=yes --without-selinux --disable-werror" - -# Component data for gdb -gdb_url=http://git-us.linaro.org/git/toolchain -gdb_branch=gdb-8.1-branch -gdb_revision=0210ebc959e880ae975ca6064a2376a59cc66ca2 -gdb_filespec=binutils-gdb.git -gdb_mingw_only="no" -gdb_configure="--with-gnu-ld --enable-plugins --enable-tui --with-pkgversion=Linaro_GDB-2018.05 --disable-gas --disable-binutils --disable-ld --disable-gold --disable-gprof --with-python=yes" -gdb_mingw_extraconf="--disable-tui --with-python=${local_snapshots}/python-2.7.4-mingw32 CFLAGS=-I${local_builds}/destdir/${host}/usr/include LDFLAGS=-L${local_builds}/destdir/${host}/usr/lib" -gdb_staticlink="yes" - -# Component data for gdbserver -gdbserver_url=http://git-us.linaro.org/git/toolchain -gdbserver_branch=gdb-8.1-branch -gdbserver_revision=0210ebc959e880ae975ca6064a2376a59cc66ca2 -gdbserver_filespec=binutils-gdb.git -gdbserver_mingw_only="no" -gdbserver_configure="CPPFLAGS=--sysroot=${sysroots} CFLAGS=--sysroot=${sysroots} CXXFLAGS=--sysroot=${sysroots}" -gdbserver_staticlink="yes" - - -clibrary=glibc -target=arm-linux-gnueabihf -manifestid=efba3df69fb6b1dd239775a67a471267779ba6bd - - ############################################################################## - # Everything below this line is only for informational purposes for developers - ############################################################################## - -# Build machine data -build: linux -host: x86_64-unknown-linux-gnu -kernel: 4.4.0-45-generic -hostname: fed6e5906f6d -distribution: trusty -host_gcc: gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.4) - -# These aren't used in the repeat build. just a sanity check for developers -build directory: /home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/arm-linux-gnueabihf/_build/builds -sysroot directory: /home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/arm-linux-gnueabihf/_build/sysroots/arm-linux-gnueabihf -snapshots directory: /home/tcwg-buildslave/workspace/tcwg-make-release/builder_arch/amd64/label/tcwg-x86_64-build/target/arm-linux-gnueabihf/snapshots -git reference directory: /home/tcwg-buildslave/snapshots-ref - -abe_url=https://git-us.linaro.org/toolchain -abe_branch=branch= -abe_revision=bb166f788ba4180755c8cdbc9c63078446307b85 -abe_filespec=abe.git -abe_configure="--with-local-snapshots=${local_snapshots} --with-git-reference-dir=/home/tcwg-buildslave/snapshots-ref" - ---------------------- gcc ---------------------- -commit 7b15d0869c096fe39603ad63dc19ab7cf035eb70 -Author: TCWG Automation -Date: Wed Jun 6 10:32:36 2018 +0100 - - Make Linaro GCC Release 6.4-2018.05. - - gcc/ - * LINARO-VERSION: Update. - ---------------------- binutils ---------------------- -commit f3ae7dbacf5aeb9df207f5dacd778a2f6eab24fc -Merge: 1d72c74 b5d3ac2 -Author: Adhemerval Zanella -Date: Mon Aug 21 11:34:06 2017 -0300 - - Merge with binutils-2_27-branch rev b5d3ac20 - - Change-Id: Iaa5f379bb904c3eb5b6e041c62c24076d2838063 - ---------------------- glibc ---------------------- -commit ceeb0740ed04c48170f9f6f15fef55637ad84e1b -Author: Siddhesh Poyarekar -Date: Tue Mar 7 20:52:04 2017 +0530 - - Ignore and remove LD_HWCAP_MASK for AT_SECURE programs (bug #21209) - - The LD_HWCAP_MASK environment variable may alter the selection of - function variants for some architectures. For AT_SECURE process it - means that if an outdated routine has a bug that would otherwise not - affect newer platforms by default, LD_HWCAP_MASK will allow that bug - to be exploited. - - To be on the safe side, ignore and disable LD_HWCAP_MASK for setuid - binaries. - - [BZ #21209] - * elf/rtld.c (process_envvars): Ignore LD_HWCAP_MASK for - AT_SECURE processes. - * sysdeps/generic/unsecvars.h: Add LD_HWCAP_MASK. - - (cherry picked from commit 1c1243b6fc33c029488add276e56570a07803bfd) - ---------------------- abe ---------------------- -commit bb166f788ba4180755c8cdbc9c63078446307b85 -Author: Maxim Kuvyrkov -Date: Fri Jun 1 19:35:36 2018 +0000 - - Remove stale entries in sources.conf. - - Change-Id: I64e4be3e4c828e8296f2ffa258fc2fbe933fa0a6 - diff --git a/patches/binutils/2.31.1/129_multiarch_libpath.patch b/patches/binutils/2.31.1/129_multiarch_libpath.patch new file mode 100644 index 0000000..f885866 --- /dev/null +++ b/patches/binutils/2.31.1/129_multiarch_libpath.patch @@ -0,0 +1,353 @@ +# DP: Add multiarch directories to linker search path for ld and gold. + +Index: b/ld/genscripts.sh +=================================================================== +--- a/ld/genscripts.sh ++++ b/ld/genscripts.sh +@@ -189,6 +189,104 @@ append_to_lib_path() + fi + } + ++# set the multiarch tuples ++multiarch_name= ++multiarch_name_32= ++multiarch_name_64= ++multiarch_name_n32= ++multiarch_name_x32= ++ ++if true; then ++ # based on TOOL_LIB ++ multiarch_name=$DEB_TARGET_MULTIARCH ++ multiarch_name_32=$DEB_TARGET_MULTIARCH32 ++ multiarch_name_64=$DEB_TARGET_MULTIARCH64 ++ multiarch_name_n32=$DEB_TARGET_MULTIARCHN32 ++ multiarch_name_x32=$DEB_TARGET_MULTIARCHX32 ++else ++ # based on the emulation name; using TOOL_LIB seems to unreliable, when ++ # configuring with --enable-targets=powerpc-linux-gnu,powerpc64-linux-gnu ++ # only the first one (?) wins. ++ # FIXME: should this go into ld/emulparams/*.sh ? ++ case "$EMULATION_NAME" in ++ aarch64linux) ++ multiarch_name=aarch64-linux-gnu ++ ;; ++ aarch64linux32) ++ multiarch_name=aarch64_ilp32-linux-gnu ++ ;; ++ aarch64linux32b) ++ multiarch_name=aarch64_be_ilp32-linux-gnu ++ ;; ++ aarch64linuxb) ++ multiarch_name=aarch64_be-linux-gnu ++ ;; ++ armelf_linux_eabi) ++ # FIXME: TOOL_LIB can be arm-linux-gnueabi, arm-linux-gnueabihf, aarch64-linux-gnu ++ multiarch_name=arm-linux-gnueabi ++ ;; ++ armelfb_linux_eabi) ++ # FIXME: TOOL_LIB can be arm-linux-gnueabi, arm-linux-gnueabihf, aarch64-linux-gnu ++ multiarch_name=armeb-linux-gnueabi ++ ;; ++ elf32_sparc) ++ multiarch_name=sparc-linux-gnu ++ multiarch_name_64=sparc64-linux-gnu ++ ;; ++ elf32_x86_64) ++ multiarch_name=x86_64-linux-gnux32 ++ multiarch_name_32=i386-linux-gnu ++ multiarch_name_64=x86_64-linux-gnu ++ ;; ++ elf32btsmip) ++ ;; ++ elf32btsmipn32) ++ ;; ++ elf32ltsmip) ++ ;; ++ elf32ltsmipn32) ++ ;; ++ elf32elflppc) # necessary? ++ multiarch_name=powerpcle-linux-gnu ++ multiarch_name_64=powerpc64le-linux-gnu ++ ;; ++ elf32elflppclinux) ++ multiarch_name=powerpcle-linux-gnu ++ multiarch_name_64=powerpc64le-linux-gnu ++ ;; ++ elf32ppc) # necessary? ++ multiarch_name=powerpc-linux-gnu ++ multiarch_name_64=powerpc64-linux-gnu ++ ;; ++ elf32ppclinux) ++ multiarch_name=powerpc-linux-gnu ++ multiarch_name_64=powerpc64-linux-gnu ++ ;; ++ elf64ppc) ++ multiarch_name=powerpc64-linux-gnu ++ multiarch_name_32=powerpc-linux-gnu ++ ;; ++ esac ++fi ++ ++if [ "x${LIB_PATH}" = "x" ] && [ "x${USE_LIBPATH}" = xyes ] ; then ++ libs=${NATIVE_LIB_DIRS} ++ if [ "x${NATIVE}" = "xyes" ] ; then ++ case " ${libs} " in ++ *" ${libdir} "*) ;; ++ *) libs="${libdir} ${libs}" ;; ++ esac ++ fi ++ append_to_lib_path ${libs} ++fi ++ ++case :${lib_path1}:${lib_path2}: in ++ *:: | ::*) LIB_PATH=${lib_path1}${lib_path2} ;; ++ *) LIB_PATH=${lib_path1}:${lib_path2} ;; ++esac ++lib_path1= ++lib_path2= ++ + # Always search $(tooldir)/lib, aka /usr/local/TARGET/lib when native + # except when LIBPATH=":". + if [ "${LIB_PATH}" != ":" ] ; then +@@ -207,6 +305,13 @@ if [ "${LIB_PATH}" != ":" ] ; then + case "${NATIVE}:${libpath_suffix}:${TOOL_LIB}" in + :* | *::* | *:*:*${libpath_suffix}) ;; + *) libs="${exec_prefix}/${target_alias}/lib${libpath_suffix}" ;; ++ *) ++ # FIXME: ++ # For the binutils-multiarch build on x86_64-linux-gnu configured ++ # with --enable-targets=powerpc-linux-gnu, /usr/x86_64-linux-gnu/lib64 ++ # is added instead of /usr/powerpc64-linux-gnu/lib64. However this ++ # probably wanted for the "default" emulation. How to detect that? ++ libs="${exec_prefix}/${target_alias}/lib${libpath_suffix}" ;; + esac + done + libs="${exec_prefix}/${TOOL_LIB}/lib ${libs}" +@@ -214,24 +319,124 @@ if [ "${LIB_PATH}" != ":" ] ; then + append_to_lib_path ${libs} + fi + +-if [ "x${LIB_PATH}" = "x" ] && [ "x${USE_LIBPATH}" = xyes ] ; then +- libs=${NATIVE_LIB_DIRS} +- if [ "x${NATIVE}" = "xyes" ] ; then +- case " ${libs} " in +- *" ${libdir} "*) ;; +- *) libs="${libdir} ${libs}" ;; +- esac +- fi +- append_to_lib_path ${libs} +-fi +- + case :${lib_path1}:${lib_path2}: in +- *:: | ::*) LIB_PATH=${lib_path1}${lib_path2} ;; +- *) LIB_PATH=${lib_path1}:${lib_path2} ;; ++ *:: | ::*) LIB_PATH=${LIB_PATH}:${lib_path1}${lib_path2} ;; ++ *) LIB_PATH=${LIB_PATH}:${lib_path1}:${lib_path2} ;; + esac + ++# We use the $tool_lib variable in our multiarch mangling: ++if [ "x${TOOL_LIB}" = "x" ] ; then ++ tool_lib=${exec_prefix}/${target_alias}/lib ++else ++ tool_lib=${exec_prefix}/${TOOL_LIB}/lib ++fi ++ ++# FIXME: why again? These already should be in LIBPATH ++if [ "x${APPEND_TOOLLIBDIR}" = "xyes" ] ; then ++ LIB_PATH=${LIB_PATH}:${tool_lib} ++ # For multilib targets, search both $tool_lib dirs ++ if [ "x${LIBPATH_SUFFIX}" != "x" ] ; then ++ LIB_PATH=${LIB_PATH}:${tool_lib}${LIBPATH_SUFFIX} ++ fi ++fi ++ + LIB_SEARCH_DIRS=`echo ${LIB_PATH} | sed -e 's/:/ /g' -e 's/\([^ ][^ ]*\)/SEARCH_DIR(\\"\1\\");/g'` + ++if [ -n "$multiarch_name" ]; then ++ temp_dirs=' ' ++ ma_dirs=' ' ++ for dir in `echo ${LIB_PATH} | sed -e 's/:/ /g'`; do ++ case "$dir" in ++ *${tool_lib}*|*/${target_alias}/*) ++ ;; ++ */lib) ++ if [ -n "$multiarch_name_32" ]; then ++ case $EMULATION_NAME in ++ elf_i386|elf32*) ++ ma_dirs="${ma_dirs}${dir}/$multiarch_name_32 ";; ++ *) ++ ma_dirs="${ma_dirs}${dir}/$multiarch_name " ++ esac ++ elif [ -n "$multiarch_name_64" ]; then ++ case $EMULATION_NAME in ++ elf*_64|elf64*) ++ ma_dirs="${ma_dirs}${dir}/$multiarch_name_64 ";; ++ *) ++ ma_dirs="${ma_dirs}${dir}/$multiarch_name " ++ esac ++ else ++ ma_dirs="${ma_dirs}${dir}/$multiarch_name " ++ fi ++ ;; ++ */lib32) ++ if [ -n "$multiarch_name_32" ]; then ++ dir2=$(echo $dir | sed "s,32$,,") ++ ma_dirs="${ma_dirs}${dir2}/$multiarch_name_32 " ++ fi ++ ;; ++ */lib64) ++ case "${target}" in ++ aarch64*-*-*|powerpc64-*-*|s390x-*-*|sparc64-*-*|x86_64-*-linux-gnu|mips64-*-gnuabi64) ++ #dir=$(echo $dir | sed "s,64$,,") ++ dir2=$(echo $dir | sed "s,64$,,") ++ ma_dirs="${ma_dirs}${dir2}/$multiarch_name " ++ ;; ++ *) ++ if [ -n "$multiarch_name_64" ]; then ++ dir2=$(echo $dir | sed "s,64$,,") ++ ma_dirs="${ma_dirs}${dir2}/$multiarch_name_64 " ++ fi ++ ;; ++ esac ++ ;; ++ */libx32) ++ case "${target}" in ++ x86_64-*-linux-gnux32) ++ dir2=$(echo $dir | sed "s,x32$,,") ++ ma_dirs="${ma_dirs}${dir2}/$multiarch_name " ++ ;; ++ *) ++ if [ -n "$multiarch_name_x32" ]; then ++ dir2=$(echo $dir | sed "s,x32$,,") ++ ma_dirs="${ma_dirs}${dir2}/$multiarch_name_x32 " ++ fi ++ ;; ++ esac ++ ;; ++ */libn32) ++ case "${target}" in ++ mips64*-*-linux-gnuabin32) ++ dir2=$(echo $dir | sed "s,n32$,,") ++ ma_dirs="${ma_dirs}${dir2}/$multiarch_name " ++ ;; ++ *) ++ if [ -n "$multiarch_name_n32" ]; then ++ dir2=$(echo $dir | sed "s,n32$,,") ++ ma_dirs="${ma_dirs}${dir2}/$multiarch_name_n32 " ++ fi ++ ;; ++ esac ++ ;; ++ */libilp32) ++ if [ -n "$multiarch_name_32" ]; then ++ dir2=$(echo $dir | sed "s,ilp32$,,") ++ ma_dirs="${ma_dirs}${dir2}/$multiarch_name_32 " ++ fi ++ ;; ++ *) ++ ;; ++ esac ++ temp_dirs="${temp_dirs}${dir} " ++ done ++ LIB_SEARCH_DIRS= ++ for dir in $ma_dirs $temp_dirs; do ++ if echo "$LIB_SEARCH_DIRS" | fgrep -q "\"$dir\""; then ++ continue ++ fi ++ LIB_SEARCH_DIRS="${LIB_SEARCH_DIRS}SEARCH_DIR(\"$dir\"); " ++ done ++fi ++ + # We need it for testsuite. + set $EMULATION_LIBPATH + if [ "x$1" = "x$EMULATION_NAME" ]; then +Index: b/gold/Makefile.am +=================================================================== +--- a/gold/Makefile.am ++++ b/gold/Makefile.am +@@ -42,6 +42,7 @@ AM_CPPFLAGS = \ + -I$(srcdir) -I$(srcdir)/../include -I$(srcdir)/../elfcpp \ + -DLOCALEDIR="\"$(datadir)/locale\"" \ + -DBINDIR="\"$(bindir)\"" -DTOOLBINDIR="\"$(tooldir)/bin\"" \ ++ @MULTIARCH_DIRNAME@ $(if $(APPEND_TOOLLIBDIR),-DAPPEND_TOOLLIBDIR) \ + -DTOOLLIBDIR="\"$(tooldir)/lib\"" @INCINTL@ + + LIBIBERTY = ../libiberty/libiberty.a +Index: b/gold/configure +=================================================================== +--- a/gold/configure ++++ b/gold/configure +@@ -625,6 +625,7 @@ LTLIBOBJS + MAINT + MAINTAINER_MODE_FALSE + MAINTAINER_MODE_TRUE ++MULTIARCH_DIRNAME + DLOPEN_LIBS + CXXCPP + HAVE_NO_USE_LINKER_PLUGIN_FALSE +@@ -10170,6 +10171,14 @@ $as_echo "#define HAVE_LC_MESSAGES 1" >> + fi + + ++if test x$DEB_TARGET_MULTIARCH != x; then ++ multiarch=$DEB_TARGET_MULTIARCH ++ if test -n "$multiarch"; then ++ MULTIARCH_DIRNAME='-DMULTIARCH_DIRNAME=\"'$multiarch'\"' ++ fi ++fi ++ ++ + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 + $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } +Index: b/gold/configure.ac +=================================================================== +--- a/gold/configure.ac ++++ b/gold/configure.ac +@@ -682,6 +682,14 @@ AC_CHECK_HEADERS(locale.h) + AC_CHECK_FUNCS(setlocale) + AM_LC_MESSAGES + ++if test x$DEB_TARGET_MULTIARCH != x; then ++ multiarch=$DEB_TARGET_MULTIARCH ++ if test -n "$multiarch"; then ++ MULTIARCH_DIRNAME='-DMULTIARCH_DIRNAME=\"'$multiarch'\"' ++ fi ++fi ++AC_SUBST(MULTIARCH_DIRNAME) ++ + AM_MAINTAINER_MODE + + AC_OUTPUT(Makefile testsuite/Makefile po/Makefile.in:po/Make-in) +Index: b/gold/options.cc +=================================================================== +--- a/gold/options.cc ++++ b/gold/options.cc +@@ -1232,8 +1232,15 @@ General_options::finalize() + || this->user_set_sysroot() + || *TARGET_SYSTEM_ROOT != '\0') + { ++#ifdef MULTIARCH_DIRNAME ++ this->add_to_library_path_with_sysroot("/lib/" MULTIARCH_DIRNAME); ++ this->add_to_library_path_with_sysroot("/usr/lib/" MULTIARCH_DIRNAME); ++#endif + this->add_to_library_path_with_sysroot("/lib"); + this->add_to_library_path_with_sysroot("/usr/lib"); ++#ifdef APPEND_TOOLLIBDIR ++ this->add_to_library_path_with_sysroot(TOOLLIBDIR); ++#endif + } + else + this->add_to_library_path_with_sysroot(TOOLLIBDIR); +Index: b/gold/Makefile.in +=================================================================== +--- a/gold/Makefile.in ++++ b/gold/Makefile.in +@@ -685,6 +685,7 @@ AM_CPPFLAGS = \ + -I$(srcdir) -I$(srcdir)/../include -I$(srcdir)/../elfcpp \ + -DLOCALEDIR="\"$(datadir)/locale\"" \ + -DBINDIR="\"$(bindir)\"" -DTOOLBINDIR="\"$(tooldir)/bin\"" \ ++ @MULTIARCH_DIRNAME@ $(if $(APPEND_TOOLLIBDIR),-DAPPEND_TOOLLIBDIR) \ + -DTOOLLIBDIR="\"$(tooldir)/lib\"" @INCINTL@ + + LIBIBERTY = ../libiberty/libiberty.a