main/gcc6: first changes for gcc6 cross compilers
* remove everything that causes conflicts when installing gcc6 and gcc6-armhf side by side * fix up the existing "if cross compiling" code path to use the /usr/gcc6 prefix * link binutils binaries to the locations they are expected to be by gcc (this took me hours to figure out....) as well as by the linux build system with CROSS_COMPILE * link all gcc binaries to /usr/bin/gcc6-*
This commit is contained in:
parent
479055e896
commit
4101340742
1 changed files with 38 additions and 9 deletions
|
@ -1,6 +1,6 @@
|
||||||
pkgname=gcc6
|
pkgname=gcc6
|
||||||
pkgver=6.4.0
|
pkgver=6.4.0
|
||||||
pkgrel=0
|
pkgrel=1
|
||||||
pkgdesc="Old GCC for old vendor kernels (C compiler only)"
|
pkgdesc="Old GCC for old vendor kernels (C compiler only)"
|
||||||
url="http://gcc.gnu.org"
|
url="http://gcc.gnu.org"
|
||||||
arch="all"
|
arch="all"
|
||||||
|
@ -337,12 +337,12 @@ package() {
|
||||||
cd "$_builddir"
|
cd "$_builddir"
|
||||||
make -j1 DESTDIR="${pkgdir}" install
|
make -j1 DESTDIR="${pkgdir}" install
|
||||||
|
|
||||||
# gcc symlinks
|
|
||||||
local prefix=/usr/gcc6
|
local prefix=/usr/gcc6
|
||||||
mkdir -p "$pkgdir"/usr/bin
|
if [ "$CHOST" = "$CTARGET" ]; then
|
||||||
ln -s "$prefix"/bin/gcc "$pkgdir"/usr/bin/gcc6
|
# gcc symlinks
|
||||||
ln -s gcc "$pkgdir$prefix"/bin/cc
|
ln -s gcc "$pkgdir$prefix"/bin/cc
|
||||||
ln -s gcc "$pkgdir$prefix"/bin/gcc6
|
ln -s gcc "$pkgdir$prefix"/bin/gcc6
|
||||||
|
fi
|
||||||
|
|
||||||
# remove docs
|
# remove docs
|
||||||
rm -r "$pkgdir/usr/share/"
|
rm -r "$pkgdir/usr/share/"
|
||||||
|
@ -371,20 +371,49 @@ package() {
|
||||||
if [ "$CHOST" != "$CTARGET" ]; then
|
if [ "$CHOST" != "$CTARGET" ]; then
|
||||||
# cross-gcc: remove any files that would conflict with the
|
# cross-gcc: remove any files that would conflict with the
|
||||||
# native gcc package
|
# native gcc package
|
||||||
rm -rf "$pkgdir"/usr/bin/cc "$pkgdir"/usr/include "$pkgdir"/usr/share
|
rm -rf "$pkgdir$prefix"/bin/cc \
|
||||||
|
"$pkgdir$prefix"/include \
|
||||||
|
"$pkgdir$prefix"/share
|
||||||
# libcc1 does not depend on target, don't ship it
|
# libcc1 does not depend on target, don't ship it
|
||||||
rm -rf "$pkgdir"/usr/lib/libcc1.so*
|
rm -rf "$pkgdir$prefix"/lib/libcc1.so*
|
||||||
|
|
||||||
# fixup gcc library symlinks to be linker scripts so
|
# fixup gcc library symlinks to be linker scripts so
|
||||||
# linker finds the libs from relocated sysroot
|
# linker finds the libs from relocated sysroot
|
||||||
for so in "$pkgdir"/usr/$CTARGET/lib/*.so; do
|
for so in "$pkgdir$prefix"/$CTARGET/lib/*.so; do
|
||||||
if [ -h "$so" ]; then
|
if [ -h "$so" ]; then
|
||||||
local _real=$(basename $(readlink "$so"))
|
local _real=$(basename $(readlink "$so"))
|
||||||
rm -f "$so"
|
rm -f "$so"
|
||||||
echo "GROUP ($_real)" > "$so"
|
echo "GROUP ($_real)" > "$so"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Link binutils binaries to /usr/gcc6
|
||||||
|
# This is the path GCC6 will look for them, if we don't create these
|
||||||
|
# symlinks, it will use the native binutils instead (which is of course
|
||||||
|
# failing and causes many headaches). See also: '-B' in 'man gcc'.
|
||||||
|
echo "Link binutils binaries to /usr/gcc6"
|
||||||
|
mkdir -p "$pkgdir$prefix/$CTARGET/bin"
|
||||||
|
for i in "as" "ld"; do
|
||||||
|
ln -sv "/usr/$CTARGET/bin/$i" \
|
||||||
|
"$pkgdir$prefix/$CTARGET/bin/$i"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Link binutils to gcc6-* (so 'CROSS_COMPILE=gcc6-...' works)
|
||||||
|
echo "Link binutils to gcc6-*"
|
||||||
|
mkdir -p "$pkgdir/usr/bin"
|
||||||
|
for i in "ld" "ar" "nm"; do
|
||||||
|
ln -sv "/usr/bin/$CTARGET-$i" \
|
||||||
|
"$pkgdir/usr/bin/gcc6-$CTARGET-$i"
|
||||||
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Link all binaries from /usr/gcc6/bin/* to /usr/bin/gcc6-*
|
||||||
|
echo "Link all gcc binaries to /usr/bin/gcc6-*"
|
||||||
|
mkdir -p "$pkgdir"/usr/bin
|
||||||
|
cd "$pkgdir$prefix/bin/"
|
||||||
|
for i in *; do
|
||||||
|
ln -sv "$prefix/bin/$i" "$pkgdir/usr/bin/gcc6-$i"
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
sha512sums="02c60e54527c7adf584798d5251f8a0b80c93d5deafce82501b2c28e6692e0bd783927bbfc4bc527a863c0cccc025150a34740a9e29badb02d4b48e56a8aba90 gcc-6.4.0.tar.xz
|
sha512sums="02c60e54527c7adf584798d5251f8a0b80c93d5deafce82501b2c28e6692e0bd783927bbfc4bc527a863c0cccc025150a34740a9e29badb02d4b48e56a8aba90 gcc-6.4.0.tar.xz
|
||||||
|
|
Loading…
Reference in a new issue