summaryrefslogtreecommitdiff
path: root/pcr
diff options
context:
space:
mode:
Diffstat (limited to 'pcr')
-rw-r--r--pcr/crosstool-ng/PKGBUILD35
-rw-r--r--pcr/crosstool-ng/ctng-libre.patch19
-rw-r--r--pcr/crosstool-ng/libc_ports_short_name.patch102
3 files changed, 156 insertions, 0 deletions
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 <jwwolf+arch@gmail.com>
+# Maintainer: fauno <fauno@kiwwwi.com.ar>
+# Contributor: Márcio Silva <coadde@parabola.nu>
+# Contributor: André Silva <emulatorman@parabola.nu>
+
+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" <fauno@kiwwwi.com.ar>
+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
+