Date: Tuesday, November 4, 2014 @ 23:48:52 Author: anatolik Revision: 121890
Make arm embedded toolchain multilib aware, now it contains packages for several arm* platforms Move newlib off gcc package Update gcc to 4.9.2 Use in-tree isl for gcc Added: arm-none-eabi-gcc/trunk/enable-with-multilib-list-for-arm.patch arm-none-eabi-newlib/ arm-none-eabi-newlib/repos/ arm-none-eabi-newlib/trunk/ arm-none-eabi-newlib/trunk/PKGBUILD arm-none-eabi-newlib/trunk/fix_libgloss_compile.patch Modified: arm-none-eabi-gcc/trunk/PKGBUILD Deleted: arm-none-eabi-gcc/trunk/gcc-multilib.patch arm-none-eabi-gcc/trunk/gcc-no-exceptions.patch arm-none-eabi-gcc/trunk/libgloss-configure-fix.patch -----------------------------------------------------------------+ arm-none-eabi-gcc/trunk/PKGBUILD | 123 +++--- arm-none-eabi-gcc/trunk/enable-with-multilib-list-for-arm.patch | 201 ++++++++++ arm-none-eabi-gcc/trunk/gcc-multilib.patch | 95 ---- arm-none-eabi-gcc/trunk/gcc-no-exceptions.patch | 20 arm-none-eabi-gcc/trunk/libgloss-configure-fix.patch | 11 arm-none-eabi-newlib/trunk/PKGBUILD | 63 +++ arm-none-eabi-newlib/trunk/fix_libgloss_compile.patch | 31 + 7 files changed, 356 insertions(+), 188 deletions(-) Modified: arm-none-eabi-gcc/trunk/PKGBUILD =================================================================== --- arm-none-eabi-gcc/trunk/PKGBUILD 2014-11-04 21:35:10 UTC (rev 121889) +++ arm-none-eabi-gcc/trunk/PKGBUILD 2014-11-04 22:48:52 UTC (rev 121890) @@ -1,32 +1,29 @@ -# $Id$ # Maintainer: Anatol Pomozov <[email protected]> # Contributor: Martin Schmölzer <[email protected]> _target=arm-none-eabi pkgname=$_target-gcc -pkgver=4.9.1 +pkgver=4.9.2 +_islver=0.12.2 +_cloogver=0.18.1 pkgrel=1 -#_snapshot=4.9-20140604 -_newlibver=2.1.0 +#_snapshot=4.9-20140903 pkgdesc='The GNU Compiler Collection - cross compiler for ARM EABI (bare-metal) target' arch=(i686 x86_64) url='http://gcc.gnu.org/' license=(GPL LGPL FDL) -depends=($_target-binutils cloog libmpc zlib) +depends=($_target-binutils $_target-newlib zlib libmpc) makedepends=(gmp mpfr) -#checkdepends=(dejagnu) options=(!emptydirs !strip staticlibs) source=(ftp://gcc.gnu.org/pub/gcc/releases/gcc-$pkgver/gcc-$pkgver.tar.bz2 #ftp://gcc.gnu.org/pub/gcc/snapshots/$_snapshot/gcc-$_snapshot.tar.bz2 - ftp://sourceware.org/pub/newlib/newlib-$_newlibver.tar.gz - gcc-multilib.patch - gcc-no-exceptions.patch - libgloss-configure-fix.patch) -sha256sums=('d334781a124ada6f38e63b545e2a3b8c2183049515a1abab6d513f109f1d717e' - '3e4d5ab9f0508942b6231b8ade4f8e5048cf92c96ed574c2bd6bd3320a599a48' - '998d1face674cc8d1af5bf28ded15caaaa18936a28f278123448f29555a07775' - '7f59b28475aa2018a7edfb81ea81444a6eb098fd3847d8e605809ae6fbeabde5' - 'eac96c034d3d7d16080d9aef4749e4eda493563a3348e6a06f08e8a330b027ba') + http://isl.gforge.inria.fr/isl-$_islver.tar.bz2 + http://www.bastoul.net/cloog/pages/download/cloog-$_cloogver.tar.gz + enable-with-multilib-list-for-arm.patch) +sha256sums=('2020c98295856aa13fda0f2f3a4794490757fc24bcca918d52cc8b4917b972dd' + 'f4b3dbee9712850006e44f0db2103441ab3d13b406f77996d1df19ee89d11fb4' + '02500a4edd14875f94fe84cbeda4290425cb0c1c2474c6f75d75a303d64b4196' + '95a1ae356a6a4f25577bbaa6a83e00cc1ddcebd99e9d3b2bf2c81c5e3d495a77') if [ -n "$_snapshot" ]; then _basedir=gcc-$_snapshot @@ -35,75 +32,77 @@ fi prepare() { - # Apply configure fix from newlib CVS - cd "$srcdir/newlib-$_newlibver/libgloss/arm" - patch -Np0 -i "$srcdir/libgloss-configure-fix.patch" - autoreconf + cd $_basedir - cd "$srcdir/$_basedir" + # link isl/cloog for in-tree builds + ln -s ../isl-$_islver isl + ln -s ../cloog-$_cloogver cloog + echo $pkgver > gcc/BASE-VER - patch -Np0 -i "$srcdir"/gcc-multilib.patch - patch -Np0 -i "$srcdir"/gcc-no-exceptions.patch + # hack! - some configure tests for header files using "$CPP $CPPFLAGS" + sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" {libiberty,gcc}/configure - # Move newlib and libgloss to gcc source directory - mv "$srcdir"/newlib-$_newlibver/newlib "$srcdir/$_basedir" - mv "$srcdir"/newlib-$_newlibver/libgloss "$srcdir/$_basedir" + patch -p1 < $srcdir/enable-with-multilib-list-for-arm.patch - # hack! - some configure tests for header files using "$CPP $CPPFLAGS" - sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" "$srcdir"/$_basedir/{libiberty,gcc}/configure + mkdir $srcdir/gcc-build } build() { - cd $_basedir - mkdir build - cd build + cd gcc-build export CFLAGS_FOR_TARGET='-O2 -g -pipe' export CXXFLAGS_FOR_TARGET='-O2 -g -pipe' - ../configure --target=$_target \ - --prefix=/usr \ - --libexecdir=/usr/lib \ - --with-pkgversion='Arch Repository' \ - --with-bugurl='https://bugs.archlinux.org/' \ - --enable-multilib \ - --enable-interwork \ - --enable-languages=c,c++ \ - --with-newlib \ - --with-gnu-as \ - --with-gnu-ld \ - --disable-nls \ - --disable-shared \ - --disable-threads \ - --with-headers=newlib/libc/include \ - --disable-libssp \ - --disable-libstdcxx-pch \ - --disable-libmudflap \ - --disable-libgomp \ - --with-system-zlib \ - --disable-newlib-supplied-syscalls + $srcdir/$_basedir/configure \ + --target=$_target \ + --prefix=/usr \ + --with-sysroot=/usr/$_target \ + --with-native-system-header-dir=/include \ + --libexecdir=/usr/lib \ + --enable-languages=c,c++ \ + --enable-plugins \ + --disable-decimal-float \ + --disable-libffi \ + --disable-libgomp \ + --disable-libmudflap \ + --disable-libquadmath \ + --disable-libssp \ + --disable-libstdcxx-pch \ + --disable-nls \ + --disable-shared \ + --disable-threads \ + --disable-tls \ + --with-gnu-as \ + --with-gnu-ld \ + --with-system-zlib \ + --with-newlib \ + --with-headers=/usr/$_target/include \ + --with-python-dir=share/gcc-arm-none-eabi \ + --with-gmp \ + --with-mpfr \ + --with-mpc \ + --with-cloog \ + --with-isl \ + --enable-cloog-backend=isl \ + --with-libelf \ + "--with-host-libstdcxx=-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm" \ + --with-pkgversion='Arch Repository' \ + --with-bugurl='https://bugs.archlinux.org/' \ + --with-multilib-list=armv6-m,armv7-m,armv7e-m,armv7-r - make + make INHIBIT_LIBC_CFLAGS="-DUSE_TM_CLONE_REGISTRY=0" } -check() { - cd $_basedir/build -# TODO: enable gcc tests for arm target -# make check RUNTESTFLAGS="--target_board=arm-sim\{-mhard-float,-msoft-float\}\{-O2,\}" -# ../contrib/test_summary -} - package() { - cd $_basedir/build + cd gcc-build make DESTDIR="$pkgdir" install -j1 # Strip host objects but do not touch target one - find "$pkgdir" -executable -type f -exec /usr/bin/strip --strip-debug '{}' \; + find "$pkgdir"/usr/{bin,lib} -executable -type f -exec /usr/bin/strip --strip-debug '{}' \; # Remove files that conflict with host gcc package rm -r "$pkgdir"/usr/share/man/man7 rm -r "$pkgdir"/usr/share/info - rm -r "$pkgdir"/usr/share/gcc-$pkgver } Added: arm-none-eabi-gcc/trunk/enable-with-multilib-list-for-arm.patch =================================================================== --- arm-none-eabi-gcc/trunk/enable-with-multilib-list-for-arm.patch (rev 0) +++ arm-none-eabi-gcc/trunk/enable-with-multilib-list-for-arm.patch 2014-11-04 22:48:52 UTC (rev 121890) @@ -0,0 +1,201 @@ +commit f93e01ad27a03452914f69eb64df8d3b423d3ee9 +Author: Anatol Pomozov <[email protected]> +Date: Thu Oct 30 14:29:08 2014 -0700 + + ARM patch https://gcc.gnu.org/ml/gcc-patches/2012-05/msg00083/enable-with-multilib-list-for-arm.patch + +diff --git a/gcc/Makefile.in b/gcc/Makefile.in +index 9c67fe2..e791a6b 100644 +--- a/gcc/Makefile.in ++++ b/gcc/Makefile.in +@@ -527,6 +527,7 @@ lang_opt_files=@lang_opt_files@ $(srcdir)/c-family/c.opt $(srcdir)/common.opt + lang_specs_files=@lang_specs_files@ + lang_tree_files=@lang_tree_files@ + target_cpu_default=@target_cpu_default@ ++with_multilib_list=@with_multilib_list@ + OBJC_BOEHM_GC=@objc_boehm_gc@ + extra_modes_file=@extra_modes_file@ + extra_opt_files=@extra_opt_files@ +diff --git a/gcc/config.gcc b/gcc/config.gcc +index 10b0a6e..9022aa4 100644 +--- a/gcc/config.gcc ++++ b/gcc/config.gcc +@@ -1043,7 +1043,7 @@ arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*) + case ${target} in + arm*-*-eabi*) + tm_file="$tm_file newlib-stdint.h" +- tmake_file="${tmake_file} arm/t-bpabi" ++ tmake_file="${tmake_file} arm/t-bpabi arm/t-mlibs" + use_gcc_stdint=wrap + ;; + arm*-*-rtems*) +@@ -3578,42 +3578,6 @@ case "${target}" in + exit 1 + fi + +- # Add extra multilibs +- if test "x$with_multilib_list" != x; then +- arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'` +- for arm_multilib in ${arm_multilibs}; do +- case ${arm_multilib} in +- aprofile) +- # Note that arm/t-aprofile is a +- # stand-alone make file fragment to be +- # used only with itself. We do not +- # specifically use the +- # TM_MULTILIB_OPTION framework because +- # this shorthand is more +- # pragmatic. Additionally it is only +- # designed to work without any +- # with-cpu, with-arch with-mode +- # with-fpu or with-float options. +- if test "x$with_arch" != x \ +- || test "x$with_cpu" != x \ +- || test "x$with_float" != x \ +- || test "x$with_fpu" != x \ +- || test "x$with_mode" != x ; then +- echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=aprofile" 1>&2 +- exit 1 +- fi +- tmake_file="${tmake_file} arm/t-aprofile" +- break +- ;; +- default) +- ;; +- *) +- echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2 +- exit 1 +- ;; +- esac +- done +- fi + ;; + + fr*-*-*linux*) +diff --git a/gcc/config/arm/t-mlibs b/gcc/config/arm/t-mlibs +new file mode 100644 +index 0000000..5720cf7 +--- /dev/null ++++ b/gcc/config/arm/t-mlibs +@@ -0,0 +1,89 @@ ++# A set of predefined MULTILIB which can be used for different ARM targets. ++# Via the configure option --with-multilib-list, user can customize the ++# final MULTILIB implementation. ++ ++comma := , ++space := ++space += ++ ++MULTILIB_OPTIONS = mthumb/marm ++MULTILIB_DIRNAMES = thumb arm ++MULTILIB_OPTIONS += march=armv6s-m/march=armv7-m/march=armv7e-m/march=armv7 ++MULTILIB_DIRNAMES += armv6-m armv7-m armv7e-m armv7-ar ++MULTILIB_OPTIONS += mfloat-abi=softfp/mfloat-abi=hard ++MULTILIB_DIRNAMES += softfp fpu ++MULTILIB_OPTIONS += mfpu=fpv4-sp-d16/mfpu=vfpv3-d16 ++MULTILIB_DIRNAMES += fpv4-sp-d16 vfpv3-d16 ++ ++MULTILIB_MATCHES = march?armv6s-m=mcpu?cortex-m0 ++MULTILIB_MATCHES += march?armv6s-m=mcpu?cortex-m0plus ++MULTILIB_MATCHES += march?armv6s-m=mcpu?cortex-m1 ++MULTILIB_MATCHES += march?armv6s-m=march?armv6-m ++MULTILIB_MATCHES += march?armv7-m=mcpu?cortex-m3 ++MULTILIB_MATCHES += march?armv7e-m=mcpu?cortex-m4 ++MULTILIB_MATCHES += march?armv7e-m=mcpu?cortex-m7 ++MULTILIB_MATCHES += march?armv7=march?armv7-r ++MULTILIB_MATCHES += march?armv7=march?armv7-a ++MULTILIB_MATCHES += march?armv7=mcpu?cortex-r4 ++MULTILIB_MATCHES += march?armv7=mcpu?cortex-r4f ++MULTILIB_MATCHES += march?armv7=mcpu?cortex-r5 ++MULTILIB_MATCHES += march?armv7=mcpu?cortex-r7 ++MULTILIB_MATCHES += march?armv7=mcpu?cortex-a5 ++MULTILIB_MATCHES += march?armv7=mcpu?cortex-a7 ++MULTILIB_MATCHES += march?armv7=mcpu?cortex-a8 ++MULTILIB_MATCHES += march?armv7=mcpu?cortex-a9 ++MULTILIB_MATCHES += march?armv7=mcpu?cortex-a15 ++MULTILIB_MATCHES += mfpu?fpv4-sp-d16=mfpu?fpv5-sp-d16 ++MULTILIB_MATCHES += mfpu?fpv4-sp-d16=mfpu?fpv5-d16 ++MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?vfpv3 ++MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?vfpv3-fp16 ++MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?vfpv3-d16-fp16 ++MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?vfpv3xd ++MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?vfpv3xd-fp16 ++MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?vfpv4 ++MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?vfpv4-d16 ++MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?neon ++MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?neon-fp16 ++MULTILIB_MATCHES += mfpu?vfpv3-d16=mfpu?neon-vfpv4 ++ ++MULTILIB_EXCEPTIONS = ++MULTILIB_REUSE = ++ ++MULTILIB_REQUIRED = mthumb ++MULTILIB_REQUIRED += marm ++MULTILIB_REQUIRED += mfloat-abi=hard ++ ++MULTILIB_OSDIRNAMES = mthumb=!thumb ++MULTILIB_OSDIRNAMES += marm=!arm ++MULTILIB_OSDIRNAMES += mfloat-abi.hard=!fpu ++ ++ifneq (,$(findstring armv6-m,$(subst $(comma),$(space),$(with_multilib_list)))) ++MULTILIB_REQUIRED += mthumb/march=armv6s-m ++MULTILIB_OSDIRNAMES += mthumb/march.armv6s-m=!armv6-m ++endif ++ ++ifneq (,$(findstring armv7-m,$(subst $(comma),$(space),$(with_multilib_list)))) ++MULTILIB_REQUIRED += mthumb/march=armv7-m ++MULTILIB_OSDIRNAMES += mthumb/march.armv7-m=!armv7-m ++endif ++ ++ifneq (,$(findstring armv7e-m,$(subst $(comma),$(space),$(with_multilib_list)))) ++MULTILIB_REQUIRED += mthumb/march=armv7e-m ++MULTILIB_REQUIRED += mthumb/march=armv7e-m/mfloat-abi=softfp/mfpu=fpv4-sp-d16 ++MULTILIB_REQUIRED += mthumb/march=armv7e-m/mfloat-abi=hard/mfpu=fpv4-sp-d16 ++MULTILIB_OSDIRNAMES += mthumb/march.armv7e-m=!armv7e-m ++MULTILIB_OSDIRNAMES += mthumb/march.armv7e-m/mfloat-abi.hard/mfpu.fpv4-sp-d16=!armv7e-m/fpu ++MULTILIB_OSDIRNAMES += mthumb/march.armv7e-m/mfloat-abi.softfp/mfpu.fpv4-sp-d16=!armv7e-m/softfp ++endif ++ ++ifneq (,$(filter armv7 armv7-r armv7-a,$(subst $(comma),$(space),$(with_multilib_list)))) ++MULTILIB_REQUIRED += mthumb/march=armv7 ++MULTILIB_REQUIRED += mthumb/march=armv7/mfloat-abi=softfp/mfpu=vfpv3-d16 ++MULTILIB_REQUIRED += mthumb/march=armv7/mfloat-abi=hard/mfpu=vfpv3-d16 ++MULTILIB_OSDIRNAMES += mthumb/march.armv7=!armv7-ar/thumb ++MULTILIB_OSDIRNAMES += mthumb/march.armv7/mfloat-abi.hard/mfpu.vfpv3-d16=!armv7-ar/thumb/fpu ++MULTILIB_OSDIRNAMES += mthumb/march.armv7/mfloat-abi.softfp/mfpu.vfpv3-d16=!armv7-ar/thumb/softfp ++MULTILIB_REUSE += mthumb/march.armv7=marm/march.armv7 ++MULTILIB_REUSE += mthumb/march.armv7/mfloat-abi.softfp/mfpu.vfpv3-d16=marm/march.armv7/mfloat-abi.softfp/mfpu.vfpv3-d16 ++MULTILIB_REUSE += mthumb/march.armv7/mfloat-abi.hard/mfpu.vfpv3-d16=marm/march.armv7/mfloat-abi.hard/mfpu.vfpv3-d16 ++endif +diff --git a/gcc/configure b/gcc/configure +index 4022332..e8a1bed 100755 +--- a/gcc/configure ++++ b/gcc/configure +@@ -761,6 +761,7 @@ LN + LN_S + AWK + SET_MAKE ++with_multilib_list + REPORT_BUGS_TEXI + REPORT_BUGS_TO + PKGVERSION +@@ -7409,6 +7410,7 @@ else + fi + + ++ + # ------------------------- + # Checks for other programs + # ------------------------- +diff --git a/gcc/configure.ac b/gcc/configure.ac +index 02bb306..772515d 100644 +--- a/gcc/configure.ac ++++ b/gcc/configure.ac +@@ -887,6 +887,7 @@ AC_ARG_WITH(multilib-list, + [AS_HELP_STRING([--with-multilib-list], [select multilibs (AArch64, SH and x86-64 only)])], + :, + with_multilib_list=default) ++AC_SUBST(with_multilib_list) + + # ------------------------- + # Checks for other programs Deleted: arm-none-eabi-gcc/trunk/gcc-multilib.patch =================================================================== --- arm-none-eabi-gcc/trunk/gcc-multilib.patch 2014-11-04 21:35:10 UTC (rev 121889) +++ arm-none-eabi-gcc/trunk/gcc-multilib.patch 2014-11-04 22:48:52 UTC (rev 121890) @@ -1,95 +0,0 @@ ---- gcc/config/arm/t-arm-elf.orig 2013-01-10 21:38:27.000000000 +0100 -+++ gcc/config/arm/t-arm-elf 2013-10-17 08:14:29.237001796 +0200 -@@ -18,73 +18,26 @@ - - MULTILIB_OPTIONS = marm/mthumb - MULTILIB_DIRNAMES = arm thumb --MULTILIB_EXCEPTIONS = --MULTILIB_MATCHES = - --#MULTILIB_OPTIONS += mcpu=fa526/mcpu=fa626/mcpu=fa606te/mcpu=fa626te/mcpu=fmp626/mcpu=fa726te --#MULTILIB_DIRNAMES += fa526 fa626 fa606te fa626te fmp626 fa726te --#MULTILIB_EXCEPTIONS += *mthumb*/*mcpu=fa526 *mthumb*/*mcpu=fa626 -+# We do not want any ARM or Thumb libraries -+MULTILIB_EXCEPTIONS = marm* mthumb - --#MULTILIB_OPTIONS += march=armv7 --#MULTILIB_DIRNAMES += thumb2 --#MULTILIB_EXCEPTIONS += march=armv7* marm/*march=armv7* --#MULTILIB_MATCHES += march?armv7=march?armv7-a --#MULTILIB_MATCHES += march?armv7=march?armv7-r --#MULTILIB_MATCHES += march?armv7=march?armv7-m --#MULTILIB_MATCHES += march?armv7=mcpu?cortex-a8 --#MULTILIB_MATCHES += march?armv7=mcpu?cortex-r4 --#MULTILIB_MATCHES += march?armv7=mcpu?cortex-m3 -+# Build with any one of arm7tdmi, M0, M3 or M4 support -+MULTILIB_OPTIONS += mcpu=arm7tdmi-s/mcpu=cortex-m0/mcpu=cortex-m3/mcpu=cortex-m4 -+MULTILIB_DIRNAMES += arm7tdmi-s cortex-m0 cortex-m3 cortex-m4 - --# Not quite true. We can support hard-vfp calling in Thumb2, but how do we --# express that here? Also, we really need architecture v5e or later --# (mcrr etc). --MULTILIB_OPTIONS += mfloat-abi=hard --MULTILIB_DIRNAMES += fpu --MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=hard* --#MULTILIB_EXCEPTIONS += *mcpu=fa526/*mfloat-abi=hard* --#MULTILIB_EXCEPTIONS += *mcpu=fa626/*mfloat-abi=hard* -+# These don't make any sense without thumb, because GCC likes to -+# tell you that you have to supply another commandline argument -+# rather than just setting it itself. -+MULTILIB_EXCEPTIONS += mcpu=arm7tdmi-s* mcpu=cortex-m0* mcpu=cortex-m3* mcpu=cortex-m4* - --# MULTILIB_OPTIONS += mcpu=ep9312 --# MULTILIB_DIRNAMES += ep9312 --# MULTILIB_EXCEPTIONS += *mthumb/*mcpu=ep9312* --# --# MULTILIB_OPTIONS += mlittle-endian/mbig-endian --# MULTILIB_DIRNAMES += le be --# MULTILIB_MATCHES += mbig-endian=mbe mlittle-endian=mle --# --# MULTILIB_OPTIONS += mfloat-abi=hard/mfloat-abi=soft --# MULTILIB_DIRNAMES += fpu soft --# MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=hard* --# --# MULTILIB_OPTIONS += mno-thumb-interwork/mthumb-interwork --# MULTILIB_DIRNAMES += normal interwork --# --# MULTILIB_OPTIONS += fno-leading-underscore/fleading-underscore --# MULTILIB_DIRNAMES += elf under --# --# MULTILIB_OPTIONS += mcpu=arm7 --# MULTILIB_DIRNAMES += nofmult --# MULTILIB_EXCEPTIONS += *mthumb*/*mcpu=arm7* --# # Note: the multilib_exceptions matches both -mthumb and --# # -mthumb-interwork --# # --# # We have to match all the arm cpu variants which do not have the --# # multiply instruction and treat them as if the user had specified --# # -mcpu=arm7. Note that in the following the ? is interpreted as --# # an = for the purposes of matching command line options. --# # FIXME: There ought to be a better way to do this. --# MULTILIB_MATCHES += mcpu?arm7=mcpu?arm7d --# MULTILIB_MATCHES += mcpu?arm7=mcpu?arm7di --# MULTILIB_MATCHES += mcpu?arm7=mcpu?arm70 --# MULTILIB_MATCHES += mcpu?arm7=mcpu?arm700 --# MULTILIB_MATCHES += mcpu?arm7=mcpu?arm700i --# MULTILIB_MATCHES += mcpu?arm7=mcpu?arm710 --# MULTILIB_MATCHES += mcpu?arm7=mcpu?arm710c --# MULTILIB_MATCHES += mcpu?arm7=mcpu?arm7100 --# MULTILIB_MATCHES += mcpu?arm7=mcpu?arm7500 --# MULTILIB_MATCHES += mcpu?arm7=mcpu?arm7500fe --# MULTILIB_MATCHES += mcpu?arm7=mcpu?arm6 --# MULTILIB_MATCHES += mcpu?arm7=mcpu?arm60 --# MULTILIB_MATCHES += mcpu?arm7=mcpu?arm600 --# MULTILIB_MATCHES += mcpu?arm7=mcpu?arm610 --# MULTILIB_MATCHES += mcpu?arm7=mcpu?arm620 -+# Specify mfloat-abi=hard mfpu=fpv4-sp-d16 only for Cortex-M4 -+MULTILIB_OPTIONS += mfloat-abi=hard mfpu=fpv4-sp-d16 -+MULTILIB_DIRNAMES += float-abi-hard fpuv4-sp-d16 -+MULTILIB_EXCEPTIONS += mfloat* mthumb/mfloat* -+MULTILIB_EXCEPTIONS += mfpu* mthumb/mfpu* -+MULTILIB_EXCEPTIONS += mthumb/mcpu=cortex-m4/mfloat-abi=hard -+MULTILIB_EXCEPTIONS += mthumb/mcpu=cortex-m4/mfpu=fpv4-sp-d16 -+MULTILIB_EXCEPTIONS += *arm7tdmi-s*mfloat-abi* *arm7tdmi-s*mfpu* -+MULTILIB_EXCEPTIONS += *cortex-m3*mfloat-abi* *cortex-m3*mfpu* -+MULTILIB_EXCEPTIONS += *cortex-m0*mfloat-abi* *cortex-m0*mfpu* Deleted: arm-none-eabi-gcc/trunk/gcc-no-exceptions.patch =================================================================== --- arm-none-eabi-gcc/trunk/gcc-no-exceptions.patch 2014-11-04 21:35:10 UTC (rev 121889) +++ arm-none-eabi-gcc/trunk/gcc-no-exceptions.patch 2014-11-04 22:48:52 UTC (rev 121890) @@ -1,20 +0,0 @@ ---- libgcc/Makefile.in.orig 2013-02-04 20:06:20.000000000 +0100 -+++ libgcc/Makefile.in 2013-10-17 08:05:38.314091932 +0200 -@@ -492,7 +492,7 @@ - ifeq ($(LIB2_DIVMOD_EXCEPTION_FLAGS),) - # Provide default flags for compiling divmod functions, if they haven't been - # set already by a target-specific Makefile fragment. --LIB2_DIVMOD_EXCEPTION_FLAGS := -fexceptions -fnon-call-exceptions -+LIB2_DIVMOD_EXCEPTION_FLAGS := -fno-exceptions -fnon-call-exceptions - endif - - # Build LIB2_DIVMOD_FUNCS. -@@ -813,7 +813,7 @@ - # libgcc_eh.a, only LIB2ADDEH matters. If we do, only LIB2ADDEHSTATIC and - # LIB2ADDEHSHARED matter. (Usually all three are identical.) - --c_flags := -fexceptions -+c_flags := -fno-exceptions - - ifeq ($(enable_shared),yes) - Deleted: arm-none-eabi-gcc/trunk/libgloss-configure-fix.patch =================================================================== --- arm-none-eabi-gcc/trunk/libgloss-configure-fix.patch 2014-11-04 21:35:10 UTC (rev 121889) +++ arm-none-eabi-gcc/trunk/libgloss-configure-fix.patch 2014-11-04 22:48:52 UTC (rev 121890) @@ -1,11 +0,0 @@ ---- configure.in 2013-09-20 16:23:41.000000000 +0200 -+++ /home/mschmoelzer/Projects/newlib/libgloss/arm/configure.in 2014-01-11 00:04:01.000000000 +0100 -@@ -59,7 +59,7 @@ - - AC_SUBST(objtype) - --host_makefile_frag=${srcdir}/../config/default.mh -+host_makefile_frag=`cd $srcdir/../config;pwd`/default.mh - - dnl We have to assign the same value to other variables because autoconf - dnl doesn't provide a mechanism to substitute a replacement keyword with Added: arm-none-eabi-newlib/trunk/PKGBUILD =================================================================== --- arm-none-eabi-newlib/trunk/PKGBUILD (rev 0) +++ arm-none-eabi-newlib/trunk/PKGBUILD 2014-11-04 22:48:52 UTC (rev 121890) @@ -0,0 +1,63 @@ +# $Id$ +# Maintainer: Anatol Pomozov <[email protected]> + +_target=arm-none-eabi +pkgname=$_target-newlib +pkgver=2.1.0 +pkgrel=1 +pkgdesc='A C standard library implementation intended for use on embedded systems (ARM bare metal)' +arch=(any) +url='http://www.sourceware.org/newlib/' +license=(BSD) +makedepends=($_target-gcc git) +options=(!emptydirs !strip staticlibs !buildflags) +# newlib 2.1.0 does not have newlib-nano integrated yet. Let's use the latest HEAD until 2.1.1 release. +source=(git://sourceware.org/git/newlib.git#commit=9b9f839addfe16ab0fd11f09a30a28139bfae6d5) +sha1sums=('SKIP') + +build() { + export CFLAGS_FOR_TARGET='-g -O2 -ffunction-sections -fdata-sections' + + rm -rf build-{newlib,nano} + mkdir build-{newlib,nano} + + cd "$srcdir"/build-newlib + ../newlib/configure \ + --target=$_target \ + --prefix=/usr \ + --disable-newlib-supplied-syscalls \ + --disable-nls \ + --enable-newlib-io-long-long\ + --enable-newlib-register-fini + make + + cd "$srcdir"/build-nano + ../newlib/configure \ + --target=$_target \ + --prefix=/usr \ + --disable-newlib-supplied-syscalls \ + --disable-nls \ + --enable-newlib-reent-small \ + --disable-newlib-fvwrite-in-streamio \ + --disable-newlib-fseek-optimization \ + --disable-newlib-wide-orient \ + --enable-newlib-nano-malloc \ + --disable-newlib-unbuf-stream-opt \ + --enable-lite-exit \ + --enable-newlib-global-atexit + make +} + +package() { + cd "$srcdir"/build-nano + make DESTDIR="$pkgdir" install -j1 + find "$pkgdir" -regex ".*/lib\(c\|g\|rdimon\)\.a" -exec rename .a _nano.a '{}' \; + + cd "$srcdir"/build-newlib + make DESTDIR="$pkgdir" install -j1 + + rm "$pkgdir"/usr/share/info/*.info + + install -d "$pkgdir"/usr/share/licenses/$pkgname/ + install -m644 -t "$pkgdir"/usr/share/licenses/$pkgname/ "$srcdir"/newlib/COPYING* +} Property changes on: arm-none-eabi-newlib/trunk/PKGBUILD ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Added: arm-none-eabi-newlib/trunk/fix_libgloss_compile.patch =================================================================== --- arm-none-eabi-newlib/trunk/fix_libgloss_compile.patch (rev 0) +++ arm-none-eabi-newlib/trunk/fix_libgloss_compile.patch 2014-11-04 22:48:52 UTC (rev 121890) @@ -0,0 +1,31 @@ +From: Agustin Henze <[email protected]> +Date: Fri, 3 Jan 2014 11:29:55 -0300 +Subject: [PATCH] Fix wrong path to libgloss/config/default.mh + +--- + libgloss/arm/cpu-init/Makefile.in | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/libgloss/arm/cpu-init/Makefile.in b/libgloss/arm/cpu-init/Makefile.in +index 547c58d..d63149f 100644 +--- a/libgloss/arm/cpu-init/Makefile.in ++++ b/libgloss/arm/cpu-init/Makefile.in +@@ -18,6 +18,7 @@ libdir = @libdir@ + tooldir = $(exec_prefix)/$(target_alias) + + objtype = @objtype@ ++host_makefile_frag = $(srcdir)/../../config/default.mh + + INSTALL = @INSTALL@ + INSTALL_PROGRAM = @INSTALL_PROGRAM@ +@@ -80,7 +81,7 @@ info: + install-info: + clean-info: + +-Makefile: Makefile.in ../config.status @host_makefile_frag_path@ ++Makefile: Makefile.in ../config.status ${host_makefile_frag_path} + $(SHELL) ../config.status --file cpu-init/Makefile + + ../config.status: ../configure +-- +1.8.5.2
