diff --git a/srcpkgs/cross-arm-linux-gnueabihf-libc-headers/template b/srcpkgs/cross-arm-linux-gnueabihf-libc-headers/template deleted file mode 100644 index e4c0fa6b4cf..00000000000 --- a/srcpkgs/cross-arm-linux-gnueabihf-libc-headers/template +++ /dev/null @@ -1,28 +0,0 @@ -# Template file for 'cross-arm-linux-gnueabihf-libc-headers' -# -pkgname=cross-arm-linux-gnueabihf-libc-headers -version=3.7.1 -revision=2 -noarch=yes -wrksrc=linux-${version} -short_desc="The Linux libc headers for arm-linux-gnueabihf target" -license="GPL-2" -homepage="http://www.kernel.org" -distfiles="http://www.kernel.org/pub/linux/kernel/v3.x/linux-${version}.tar.xz" -checksum=e1ca8b8376ebdf797357f5f1734ed6eed3cadc16c32d280a780f150372de7255 -if [ -n "$IN_CHROOT" ]; then - makedepends="perl" -fi - -do_build() { - make mrproper - make ARCH=arm headers_check -} - -do_install() { - make ARCH=arm INSTALL_HDR_PATH=${DESTDIR}/usr/arm-linux-gnueabihf/usr headers_install - # Remove unused files. - rm -f $(find ${DESTDIR}/usr/arm-linux-gnueabihf/usr/include -name .install -or -name ..install.cmd) - # Remove drm headers, use libdrm. - rm -rf ${DESTDIR}/usr/arm-linux-gnueabihf/usr/include/drm -} diff --git a/srcpkgs/cross-arm-linux-gnueabihf/cross-arm-linux-gnueabihf-libc.template b/srcpkgs/cross-arm-linux-gnueabihf/cross-arm-linux-gnueabihf-libc.template index 315f9119fa5..db09b7c4f03 100644 --- a/srcpkgs/cross-arm-linux-gnueabihf/cross-arm-linux-gnueabihf-libc.template +++ b/srcpkgs/cross-arm-linux-gnueabihf/cross-arm-linux-gnueabihf-libc.template @@ -8,4 +8,7 @@ noverifydeps=yes do_install() { vmove usr/${_CROSS_TARGET} usr + mkdir -p ${SRCPKGDESTDIR}/usr/${_CROSS_TARGET}/usr/ + mv ${DESTDIR}/usr/${_CROSS_TARGET}/usr/bin \ + ${SRCPKGDESTDIR}/usr/${_CROSS_TARGET}/usr/ } diff --git a/srcpkgs/cross-arm-linux-gnueabihf/template b/srcpkgs/cross-arm-linux-gnueabihf/template index 28afd3ddadf..c9502db034c 100644 --- a/srcpkgs/cross-arm-linux-gnueabihf/template +++ b/srcpkgs/cross-arm-linux-gnueabihf/template @@ -5,12 +5,17 @@ _gcc_version=4.7.2 _glibc_version=2.17 _gmp_version=5.0.5 _mpfr_version=3.1.1 +_linux_version=3.7.1 -pkgname=cross-arm-linux-gnueabihf -version=0.3 +_triplet=arm-linux-gnueabihf +_fpuflags="--with-float=hard" +_archflags="-march=armv6 -mfpu=vfp -mfloat-abi=hard" + +pkgname=cross-${_triplet} +version=0.4 revision=1 -short_desc="GNU Cross toolchain for the arm-linux-gnueabihf target (binutils/gcc/glibc)" -maintainer="Juan RP " +short_desc="GNU Cross toolchain for the ${_triplet} LE target (binutils/gcc/glibc)" +maintainer="pancake " homepage="http://www.voidlinux.eu" license="Public Domain" distfiles=" @@ -18,23 +23,24 @@ distfiles=" http://ftp.gnu.org/pub/gnu/gcc/gcc-${_gcc_version}/gcc-${_gcc_version}.tar.bz2 http://ftp.gnu.org/gnu/glibc/glibc-${_glibc_version}.tar.xz http://mirrors.kernel.org/gnu/gmp/gmp-${_gmp_version}.tar.bz2 - http://www.mpfr.org/mpfr-current/mpfr-${_mpfr_version}.tar.bz2" + http://www.mpfr.org/mpfr-current/mpfr-${_mpfr_version}.tar.bz2 + http://www.kernel.org/pub/linux/kernel/v3.x/linux-${_linux_version}.tar.xz" checksum=" 2ab2e5b03e086d12c6295f831adad46b3e1410a3a234933a2e8fac66cb2e7a19 8a9283d7010fb9fe5ece3ca507e0af5c19412626384f8a5e9434251ae100b084 6914e337401e0e0ade23694e1b2c52a5f09e4eda3270c67e7c3ba93a89b5b23e 1f588aaccc41bb9aed946f9fe38521c26d8b290d003c5df807f65690f2aadec9 - 7b66c3f13dc8385f08264c805853f3e1a8eedab8071d582f3e661971c9acd5fd" + 7b66c3f13dc8385f08264c805853f3e1a8eedab8071d582f3e661971c9acd5fd + e1ca8b8376ebdf797357f5f1734ed6eed3cadc16c32d280a780f150372de7255" -nostrip_files="libgcc.a libgcov.a libgcc_eh.a" create_wrksrc=yes disable_debug=yes +nostrip_files="libgcc.a libgcov.a libgcc_eh.a" subpackages="${pkgname}-libc" -makedepends="perl flex gmp-devel mpc-devel cloog-ppl-devel - cross-arm-linux-gnueabihf-libc-headers-3.7.1_2" -depends="${pkgname}-libc-headers ${pkgname}-libc-${version}_${revision}" +makedepends="perl flex gmp-devel mpc-devel cloog-ppl-devel" +depends="${pkgname}-libc-${version}_${revision}" -_CROSS_TARGET="arm-linux-gnueabihf" +_CROSS_TARGET=${_triplet} _CROSS_DIR="/usr" _CROSS_SYSROOT="${_CROSS_DIR}/${_CROSS_TARGET}" @@ -47,6 +53,20 @@ _apply_patch() { fi } +_linux_headers() { + [ -f ${wrksrc}/.linux_build_done ] && return 0 + + cd ${wrksrc} + msg_normal "Building Linux API headers for MIPS\n" + + cd linux-${_linux_version} + + make ARCH=arm headers_check + make ARCH=arm INSTALL_HDR_PATH=/usr/${_CROSS_TARGET}/usr headers_install + + touch ${wrksrc}/.linux_build_done +} + _binutils_bootstrap() { [ -f ${wrksrc}/.binutils_bootstrap_done ] && return 0 @@ -84,7 +104,7 @@ _gcc_bootstrap() { --disable-decimal-float --disable-libgomp --disable-libmudflap \ --disable-libssp --disable-threads --enable-languages=c \ --disable-sjlj-exceptions --disable-multilib \ - --with-gnu-ld --with-gnu-as --with-float=hard + --with-gnu-ld --with-gnu-as ${_fpuflags} make ${makejobs} all-gcc all-target-libgcc make install-gcc install-target-libgcc @@ -115,7 +135,7 @@ _glibc_headers() { --with-headers=/usr/${_CROSS_TARGET}/usr/include \ --config-cache --enable-add-ons=nptl,ports \ --enable-obsolete-rpc \ - --enable-kernel=2.6.27 --with-float=hard + --enable-kernel=2.6.27 ${_fpuflags} make -k install-headers cross_compiling=yes \ install_root=${_CROSS_SYSROOT} @@ -136,14 +156,14 @@ _glibc_build() { echo "libc_cv_c_cleanup=yes" >> config.cache export CC="${_CROSS_TARGET}-gcc" LD="${_CROSS_TARGET}-ld" AS="${_CROSS_TARGET}-as" - export CFLAGS="-Os -pipe $XBPS_CROSS_CFLAGS" + export CFLAGS="-Os -pipe ${_archflags}" ../glibc-${_glibc_version}/configure \ --host=${_CROSS_TARGET} --prefix=/usr \ --with-headers=/usr/${_CROSS_TARGET}/usr/include \ --config-cache --enable-add-ons=nptl,ports \ --enable-obsolete-rpc --disable-profile \ - --with-float=hard --enable-kernel=2.6.27 + --enable-kernel=2.6.27 ${_fpuflags} make ${makejobs} make install_root=${_CROSS_SYSROOT} install @@ -170,8 +190,8 @@ _gcc_static() { --target=${_CROSS_TARGET} --prefix=${_CROSS_DIR} \ --with-sysroot=${_CROSS_SYSROOT} --enable-languages=c \ --with-gnu-as --with-gnu-ld --disable-multilib \ - --with-float=hard --disable-sjlj-exceptions --disable-nls \ - --enable-threads=posix --enable-long-longx + --disable-sjlj-exceptions --disable-nls \ + --enable-threads=posix --enable-long-longx ${_fpuflags} make ${makejobs} all-gcc make install-gcc @@ -191,8 +211,12 @@ _gmp_static() { [ ! -d gmp-static ] && mkdir gmp-static cd gmp-static + # XXX + ln -sfr ${_CROSS_SYSROOT}/usr/include/gnu/stubs-soft.h \ + ${_CROSS_SYSROOT}/usr/include/gnu/stubs-hard.h + export CC="${_CROSS_TARGET}-gcc" LD="${_CROSS_TARGET}-ld" AS="${_CROSS_TARGET}-as" - export CFLAGS="-Os -pipe $XBPS_CROSS_CFLAGS -static" + export CFLAGS="-Os -pipe ${_archflags} -static" ../gmp-${_gmp_version}/configure \ --host=${_CROSS_TARGET} --prefix=${_CROSS_SYSROOT} \ @@ -214,7 +238,7 @@ _mpfr_build() { cd mpfr-build export CC="${_CROSS_TARGET}-gcc" LD="${_CROSS_TARGET}-ld" AS="${_CROSS_TARGET}-as" - export CFLAGS="-Os -pipe $XBPS_CROSS_CFLAGS" + export CFLAGS="-Os -pipe -fPIC ${_archflags}" ../mpfr-${_mpfr_version}/configure \ --host=${_CROSS_TARGET} --prefix=${_CROSS_SYSROOT} \ @@ -235,10 +259,6 @@ _gcc_final() { [ ! -d gcc-final ] && mkdir gcc-final cd gcc-final - # XXX - ln -sfr ${_CROSS_SYSROOT}/usr/include/gnu/stubs-hard.h \ - ${_CROSS_SYSROOT}/usr/include/gnu/stubs-soft.h - export CC="gcc" CFLAGS="-Os -pipe" unset LD AS @@ -253,9 +273,9 @@ _gcc_final() { --target=${_CROSS_TARGET} --prefix=/usr \ --with-sysroot=${_CROSS_SYSROOT} --enable-languages=c,c++ \ --with-gnu-as --with-gnu-ld --disable-multilib \ - --with-float=hard --disable-nls --disable-sjlj-exceptions \ + --disable-nls --disable-sjlj-exceptions \ --enable-threads=posix --enable-long-longx \ - --enable-shared + --enable-shared ${_fpuflags} make ${makejobs} make install @@ -276,20 +296,21 @@ _glibc_final() { echo "libc_cv_c_cleanup=yes" >> config.cache export CC="${_CROSS_TARGET}-gcc" LD="${_CROSS_TARGET}-ld" AS="${_CROSS_TARGET}-as" - export CFLAGS="-Os -pipe $XBPS_CROSS_CFLAGS" + export CFLAGS="-Os -pipe ${_archflags}" ../glibc-${_glibc_version}/configure \ --host=${_CROSS_TARGET} --prefix=/usr \ --with-headers=/usr/${_CROSS_TARGET}/usr/include \ --config-cache --enable-add-ons=nptl,ports \ --enable-obsolete-rpc --disable-profile \ - --with-float=hard --enable-kernel=2.6.27 + --enable-kernel=2.6.27 ${_fpuflags} make ${makejobs} touch ${wrksrc}/.glibc_final_done } + do_build() { unset LDFLAGS export CFLAGS="-Os" CXXFLAGS="-Os" @@ -303,6 +324,7 @@ do_build() { fi done + _linux_headers _binutils_bootstrap _gcc_bootstrap _glibc_headers @@ -326,20 +348,25 @@ do_install() { done # install cross binutils - cd ${wrksrc}/binutils-build && - make DESTDIR=${DESTDIR} install + cd ${wrksrc}/binutils-build && make DESTDIR=${DESTDIR} install # install cross gcc - cd ${wrksrc}/gcc-final && \ - make DESTDIR=${DESTDIR} install + cd ${wrksrc}/gcc-final && make DESTDIR=${DESTDIR} install # install glibc for target cd ${wrksrc}/glibc-final && \ make install_root=${DESTDIR}/usr/${_CROSS_TARGET} install - # hard-float only toolchain. - ln -sfr ${DESTDIR}/${_CROSS_SYSROOT}/usr/include/gnu/stubs-hard.h \ - ${DESTDIR}/${_CROSS_SYSROOT}/usr/include/gnu/stubs-soft.h + # XXX hard-float only toolchain. + ln -sfr ${DESTDIR}/${_CROSS_SYSROOT}/usr/include/gnu/stubs-soft.h \ + ${DESTDIR}/${_CROSS_SYSROOT}/usr/include/gnu/stubs-hard.h + + # install linux API headers for MIPS + cd ${wrksrc}/linux-${_linux_version} && \ + make ARCH=mips INSTALL_HDR_PATH=${DESTDIR}/usr/${_CROSS_TARGET}/usr \ + headers_install + rm -f $(find ${DESTDIR}/usr/${_CROSS_TARGET}/usr/include -name .install -or -name ..install.cmd) + rm -rf ${DESTDIR}/usr/${_CROSS_TARGET}/usr/include/drm # Remove unnecessary stuff rm -f ${DESTDIR}/usr/lib*/libiberty.a @@ -354,7 +381,9 @@ do_install() { getent ldd; do rm -f ${DESTDIR}/${_CROSS_SYSROOT}/usr/bin/${f} done +} +do_clean() { # Remove temporary stuff from masterdir rm -rf ${_CROSS_SYSROOT} rm -f /usr/bin/${_CROSS_TARGET}*