From 74634db854a2f88af351b23452c4848902703627 Mon Sep 17 00:00:00 2001 From: Nicolás Reynolds Date: Wed, 12 Aug 2015 18:12:35 -0300 Subject: crosstool-ng: resides on [pcr] --- pcr/crosstool-ng/PKGBUILD | 35 +++++++++ pcr/crosstool-ng/ctng-libre.patch | 19 +++++ pcr/crosstool-ng/libc_ports_short_name.patch | 102 +++++++++++++++++++++++++++ 3 files changed, 156 insertions(+) create mode 100644 pcr/crosstool-ng/PKGBUILD create mode 100644 pcr/crosstool-ng/ctng-libre.patch create mode 100644 pcr/crosstool-ng/libc_ports_short_name.patch (limited to 'pcr') diff --git a/pcr/crosstool-ng/PKGBUILD b/pcr/crosstool-ng/PKGBUILD new file mode 100644 index 000000000..7b77166fe --- /dev/null +++ b/pcr/crosstool-ng/PKGBUILD @@ -0,0 +1,35 @@ +# Contributor (Arch): jwwolf +# Maintainer: fauno +# Contributor: Márcio Silva +# Contributor: André Silva + +pkgname=crosstool-ng +pkgver=1.21.0 +pkgrel=1.parabola1 +pkgdesc='Versatile cross-toolchain generator, with Linux-libre kernel support' +arch=('i686' 'x86_64') +url='http://crosstool-ng.org/' +license=('GPL2') +depends=('make' 'gperf' 'wget') +options=('!makeflags') +source=(http://crosstool-ng.org/download/$pkgname/$pkgname-$pkgver.tar.bz2 + ctng-libre.patch) + +prepare() { + cd $pkgname-$pkgver + patch -Np1 -i ../ctng-libre.patch +} + +build() { + cd $pkgname-$pkgver + ./configure --prefix=/usr + make +} + +package() { + cd $pkgname-$pkgver + make DESTDIR="$pkgdir" install + install -Dm644 ct-ng.comp "$pkgdir"/usr/share/bash-completion/completions/ct-ng +} +sha256sums=('67122ba42657da258f23de4a639bc49c6ca7fe2173b5efba60ce729c6cce7a41' + '75e06ee8e4cb2629564604498796240cbe57219bd235cade6b6982b7b0836136') diff --git a/pcr/crosstool-ng/ctng-libre.patch b/pcr/crosstool-ng/ctng-libre.patch new file mode 100644 index 000000000..4c9c85435 --- /dev/null +++ b/pcr/crosstool-ng/ctng-libre.patch @@ -0,0 +1,19 @@ +diff -Nur crosstool-ng-1.21.0.orig/scripts/build/kernel/linux.sh crosstool-ng-1.21.0/scripts/build/kernel/linux.sh +--- crosstool-ng-1.21.0.orig/scripts/build/kernel/linux.sh 2015-05-25 16:47:17.000000000 -0300 ++++ crosstool-ng-1.21.0/scripts/build/kernel/linux.sh 2015-07-07 04:00:33.900903515 -0300 +@@ -45,13 +45,8 @@ + k_ver="${CT_KERNEL_VERSION}" + ;; + esac +- case "${CT_KERNEL_VERSION}" in +- 2.6.*) rel_dir=v2.6;; +- 3.*) rel_dir=v3.x;; +- 4.*) rel_dir=v4.x;; +- esac +- korg_base="http://www.kernel.org/pub/linux/kernel/${rel_dir}" +- CT_GetFile "linux-${CT_KERNEL_VERSION}" \ ++ korg_base="http://linux-libre.fsfla.org/pub/linux-libre/releases/${CT_KERNEL_VERSION}-gnu" ++ CT_GetFile "linux-libre-${CT_KERNEL_VERSION}-gnu" \ + "${korg_base}" \ + "${korg_base}/longterm/v${k_ver}" \ + "${korg_base}/longterm" diff --git a/pcr/crosstool-ng/libc_ports_short_name.patch b/pcr/crosstool-ng/libc_ports_short_name.patch new file mode 100644 index 000000000..b511fa183 --- /dev/null +++ b/pcr/crosstool-ng/libc_ports_short_name.patch @@ -0,0 +1,102 @@ +comparing with http://ymorin.is-a-geek.org/hg/crosstool-ng +real URL is http://crosstool-ng.org/hg/crosstool-ng +searching for changes +changeset: 2482:a15a7b4ba12a +tag: libc_ports_short_name +tag: qbase +tag: qtip +tag: tip +user: "Nicolás Reynolds" +date: Fri May 27 22:02:30 2011 -0300 +files: scripts/build/libc/eglibc.sh scripts/build/libc/glibc.sh +description: +Fixes the issue with {e,}libc addons having short and long names (such as +eglibc-ports-2_13 and ports), which caused configure scripts to run +through them twice and thus configuring incorrectly. + +For instance, the mips64el-n32-linux-gnu toolchain would be recognized +correctly first, but then the second pass would change it to mips32, +building a mixed MIPS-III N32 and MIPS-I libc. + + +diff -r 30644208c955 -r a15a7b4ba12a scripts/build/libc/eglibc.sh +--- a/scripts/build/libc/eglibc.sh Thu May 26 22:51:03 2011 +0200 ++++ b/scripts/build/libc/eglibc.sh Fri May 27 22:02:30 2011 -0300 +@@ -103,25 +103,36 @@ + CT_Extract "eglibc-${CT_LIBC_VERSION}" + CT_Patch "eglibc" "${CT_LIBC_VERSION}" + +- # C library addons ++ # C library addons + for addon in $(do_libc_add_ons_list " "); do + # NPTL addon is not to be extracted, in any case + [ "${addon}" = "nptl" ] && continue || true + CT_Pushd "${CT_SRC_DIR}/eglibc-${CT_LIBC_VERSION}" + CT_Extract nochdir "eglibc-${addon}-${CT_LIBC_VERSION}" ++ ++ CT_TestAndAbort "Error in add-on '${addon}': both short and long names in tarball" \ ++ -d "${addon}" -a -d "eglibc-${addon}-${CT_LIBC_VERSION}" ++ + # Some addons have the 'long' name, while others have the + # 'short' name, but patches are non-uniformly built with + # either the 'long' or 'short' name, whatever the addons name +- # so we have to make symlinks from the existing to the missing +- # Fortunately for us, [ -d foo ], when foo is a symlink to a +- # directory, returns true! +- [ -d "${addon}" ] || ln -s "eglibc-${addon}-${CT_LIBC_VERSION}" "${addon}" +- [ -d "eglibc-${addon}-${CT_LIBC_VERSION}" ] || ln -s "${addon}" "eglibc-${addon}-${CT_LIBC_VERSION}" ++ # but we prefer the 'short' name and avoid duplicates. ++ if [ -d "eglibc-${addon}-${CT_LIBC_VERSION}" ]; then ++ mv "eglibc-${addon}-${CT_LIBC_VERSION}" "${addon}" ++ fi ++ ++ ln -s "${addon}" "eglibc-${addon}-${CT_LIBC_VERSION}" ++ + CT_Patch nochdir "eglibc" "${addon}-${CT_LIBC_VERSION}" ++ ++ # Remove the long name since it can confuse configure scripts to run ++ # the same source twice. ++ rm "eglibc-${addon}-${CT_LIBC_VERSION}" ++ + CT_Popd + done + +- # The configure files may be older than the configure.in files ++ # The configure files may be older than the configure.in files + # if using a snapshot (or even some tarballs). Fake them being + # up to date. + find "${CT_SRC_DIR}/eglibc-${CT_LIBC_VERSION}" -type f -name configure -exec touch {} \; 2>&1 |CT_DoLog ALL +diff -r 30644208c955 -r a15a7b4ba12a scripts/build/libc/glibc.sh +--- a/scripts/build/libc/glibc.sh Thu May 26 22:51:03 2011 +0200 ++++ b/scripts/build/libc/glibc.sh Fri May 27 22:02:30 2011 -0300 +@@ -54,15 +54,24 @@ + [ "${addon}" = "nptl" ] && continue || true + CT_Extract nochdir "glibc-${addon}-${CT_LIBC_VERSION}" + ++ CT_TestAndAbort "Error in add-on '${addon}': both short and long names in tarball" \ ++ -d "${addon}" -a -d "glibc-${addon}-${CT_LIBC_VERSION}" ++ + # Some addons have the 'long' name, while others have the + # 'short' name, but patches are non-uniformly built with + # either the 'long' or 'short' name, whatever the addons name +- # so we have to make symlinks from the existing to the missing +- # Fortunately for us, [ -d foo ], when foo is a symlink to a +- # directory, returns true! +- [ -d "${addon}" ] || CT_DoExecLog ALL ln -s "glibc-${addon}-${CT_LIBC_VERSION}" "${addon}" +- [ -d "glibc-${addon}-${CT_LIBC_VERSION}" ] || CT_DoExecLog ALL ln -s "${addon}" "glibc-${addon}-${CT_LIBC_VERSION}" ++ # but we prefer the 'short' name and avoid duplicates. ++ if [ -d "glibc-${addon}-${CT_LIBC_VERSION}" ]; then ++ mv "glibc-${addon}-${CT_LIBC_VERSION}" "${addon}" ++ fi ++ ++ ln -s "${addon}" "glibc-${addon}-${CT_LIBC_VERSION}" ++ + CT_Patch nochdir "glibc" "${addon}-${CT_LIBC_VERSION}" ++ ++ # Remove the long name since it can confuse configure scripts to run ++ # the same source twice. ++ rm "glibc-${addon}-${CT_LIBC_VERSION}" + done + + # The configure files may be older than the configure.in files + -- cgit v1.2.3