[arch-commits] Commit in (10 files)

Anatol Pomozov anatolik at archlinux.org
Tue Nov 4 22:48:52 UTC 2014


    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 <anatol.pomozov at gmail.com>
 # Contributor: Martin Schmölzer <mschmoelzer at gmail.com>
 
 _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 <anatol.pomozov at gmail.com>
+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 <anatol.pomozov at gmail.com>
+
+_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 <tin at debian.org>
+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


More information about the arch-commits mailing list