Date: Friday, January 26, 2018 @ 23:28:42 Author: anatolik Revision: 287304
archrelease: copy trunk to community-x86_64 Added: arm-none-eabi-gcc/repos/community-x86_64/PKGBUILD (from rev 287302, arm-none-eabi-gcc/trunk/PKGBUILD) arm-none-eabi-gcc/repos/community-x86_64/enable-with-multilib-list-for-arm.patch (from rev 287302, arm-none-eabi-gcc/trunk/enable-with-multilib-list-for-arm.patch) Deleted: arm-none-eabi-gcc/repos/community-x86_64/PKGBUILD arm-none-eabi-gcc/repos/community-x86_64/enable-with-multilib-list-for-arm.patch -----------------------------------------+ PKGBUILD | 254 ++++++++--------- enable-with-multilib-list-for-arm.patch | 430 +++++++++++++++--------------- 2 files changed, 342 insertions(+), 342 deletions(-) Deleted: PKGBUILD =================================================================== --- PKGBUILD 2018-01-26 23:28:37 UTC (rev 287303) +++ PKGBUILD 2018-01-26 23:28:42 UTC (rev 287304) @@ -1,127 +0,0 @@ -# Maintainer: Anatol Pomozov <anatol.pomo...@gmail.com> -# Contributor: Martin Schmölzer <mschmoel...@gmail.com> - -_target=arm-none-eabi -pkgname=$_target-gcc -pkgver=7.2.0 -_islver=0.18 -pkgrel=2 -_snapshot=7-20170907 -pkgdesc='The GNU Compiler Collection - cross compiler for ARM EABI (bare-metal) target' -arch=(x86_64) -url='http://gcc.gnu.org/' -license=(GPL LGPL FDL) -depends=($_target-binutils zlib libmpc) -makedepends=(gmp mpfr $_target-newlib) -optdepends=('arm-none-eabi-newlib: Standard C library optimized for embedded systems') -options=(!emptydirs !strip) -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.xz - http://isl.gforge.inria.fr/isl-$_islver.tar.bz2 - enable-with-multilib-list-for-arm.patch) -sha256sums=('af37950ac7fc4996b4bdf22cbaaf5d1db52ff6490bfe3d83bcae5d5097645bc9' - '6b8b0fd7f81d0a957beb3679c81bbb34ccc7568d5682844d8924424a0dadcb1b' - '9447a8fd40d7c1e238b8e9790b739492de5feaa489d61f4ecdab863e5ea1975a') - -if [ -n "$_snapshot" ]; then - _basedir=gcc-$_snapshot -else - _basedir=gcc-$pkgver -fi - -prepare() { - cd $_basedir - - # link isl for in-tree builds - ln -s ../isl-$_islver isl - - echo $pkgver > gcc/BASE-VER - - # hack! - some configure tests for header files using "$CPP $CPPFLAGS" - sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" {libiberty,gcc}/configure - - patch -p1 < $srcdir/enable-with-multilib-list-for-arm.patch - - mkdir $srcdir/build-{gcc,gcc-nano} -} - -_build_gcc() { - $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-isl \ - --with-libelf \ - --enable-gnu-indirect-function \ - --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 INHIBIT_LIBC_CFLAGS='-DUSE_TM_CLONE_REGISTRY=0' -} - -build() { - cd $srcdir/build-gcc - export CFLAGS_FOR_TARGET='-g -Os -ffunction-sections -fdata-sections' - export CXXFLAGS_FOR_TARGET='-g -Os -ffunction-sections -fdata-sections' - _build_gcc - - # Build libstdc++ without exceptions support (the 'nano' variant) - cd $srcdir/build-gcc-nano - export CFLAGS_FOR_TARGET='-g -Os -ffunction-sections -fdata-sections -fno-exceptions' - export CXXFLAGS_FOR_TARGET='-g -Os -ffunction-sections -fdata-sections -fno-exceptions' - _build_gcc -} - -package() { - cd $srcdir/build-gcc - make DESTDIR="$pkgdir" install -j1 - - cd $srcdir/build-gcc-nano - make DESTDIR="$pkgdir.nano" install -j1 - # we need only libstdc nano files - multilibs=( $($pkgdir/usr/bin/$_target-gcc -print-multi-lib 2>/dev/null) ) - for multilib in "${multilibs[@]}"; do - dir="${multilib%%;*}" - from_dir=$pkgdir.nano/usr/$_target/lib/$dir - to_dir=$pkgdir/usr/$_target/lib/$dir - cp -f $from_dir/libstdc++.a $to_dir/libstdc++_nano.a - cp -f $from_dir/libsupc++.a $to_dir/libsupc++_nano.a - done - - # strip target binaries - find "$pkgdir"/usr/lib/gcc/$_target/$pkgver "$pkgdir"/usr/$_target/lib -type f -and \( -name \*.a -or -name \*.o \) -exec $_target-objcopy -R .comment -R .note -R .debug_info -R .debug_aranges -R .debug_pubnames -R .debug_pubtypes -R .debug_abbrev -R .debug_line -R .debug_str -R .debug_ranges -R .debug_loc '{}' \; - - # strip host binaries - find "$pkgdir"/usr/bin/ "$pkgdir"/usr/lib/gcc/$_target/$pkgver -type f -and \( -executable \) -exec strip '{}' \; - - # Remove files that conflict with host gcc package - rm -r "$pkgdir"/usr/share/man/man7 - rm -r "$pkgdir"/usr/share/info - rm "$pkgdir"/usr/lib/libcc1.* -} Copied: arm-none-eabi-gcc/repos/community-x86_64/PKGBUILD (from rev 287302, arm-none-eabi-gcc/trunk/PKGBUILD) =================================================================== --- PKGBUILD (rev 0) +++ PKGBUILD 2018-01-26 23:28:42 UTC (rev 287304) @@ -0,0 +1,127 @@ +# Maintainer: Anatol Pomozov <anatol.pomo...@gmail.com> +# Contributor: Martin Schmölzer <mschmoel...@gmail.com> + +_target=arm-none-eabi +pkgname=$_target-gcc +pkgver=7.3.0 +_islver=0.18 +pkgrel=1 +_snapshot=7-20180125 +pkgdesc='The GNU Compiler Collection - cross compiler for ARM EABI (bare-metal) target' +arch=(x86_64) +url='http://gcc.gnu.org/' +license=(GPL LGPL FDL) +depends=($_target-binutils zlib libmpc) +makedepends=(gmp mpfr $_target-newlib) +optdepends=('arm-none-eabi-newlib: Standard C library optimized for embedded systems') +options=(!emptydirs !strip) +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.xz + http://isl.gforge.inria.fr/isl-$_islver.tar.bz2 + enable-with-multilib-list-for-arm.patch) +sha256sums=('f4cad0895aa6dd237cbcb6e81750e40c3fb3eba8a5bcdf25a21c4ee5520c344b' + '6b8b0fd7f81d0a957beb3679c81bbb34ccc7568d5682844d8924424a0dadcb1b' + '9447a8fd40d7c1e238b8e9790b739492de5feaa489d61f4ecdab863e5ea1975a') + +if [ -n "$_snapshot" ]; then + _basedir=gcc-$_snapshot +else + _basedir=gcc-$pkgver +fi + +prepare() { + cd $_basedir + + # link isl for in-tree builds + ln -s ../isl-$_islver isl + + echo $pkgver > gcc/BASE-VER + + # hack! - some configure tests for header files using "$CPP $CPPFLAGS" + sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" {libiberty,gcc}/configure + + patch -p1 < $srcdir/enable-with-multilib-list-for-arm.patch + + mkdir $srcdir/build-{gcc,gcc-nano} +} + +_build_gcc() { + $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-isl \ + --with-libelf \ + --enable-gnu-indirect-function \ + --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 INHIBIT_LIBC_CFLAGS='-DUSE_TM_CLONE_REGISTRY=0' +} + +build() { + cd $srcdir/build-gcc + export CFLAGS_FOR_TARGET='-g -Os -ffunction-sections -fdata-sections' + export CXXFLAGS_FOR_TARGET='-g -Os -ffunction-sections -fdata-sections' + _build_gcc + + # Build libstdc++ without exceptions support (the 'nano' variant) + cd $srcdir/build-gcc-nano + export CFLAGS_FOR_TARGET='-g -Os -ffunction-sections -fdata-sections -fno-exceptions' + export CXXFLAGS_FOR_TARGET='-g -Os -ffunction-sections -fdata-sections -fno-exceptions' + _build_gcc +} + +package() { + cd $srcdir/build-gcc + make DESTDIR="$pkgdir" install -j1 + + cd $srcdir/build-gcc-nano + make DESTDIR="$pkgdir.nano" install -j1 + # we need only libstdc nano files + multilibs=( $($pkgdir/usr/bin/$_target-gcc -print-multi-lib 2>/dev/null) ) + for multilib in "${multilibs[@]}"; do + dir="${multilib%%;*}" + from_dir=$pkgdir.nano/usr/$_target/lib/$dir + to_dir=$pkgdir/usr/$_target/lib/$dir + cp -f $from_dir/libstdc++.a $to_dir/libstdc++_nano.a + cp -f $from_dir/libsupc++.a $to_dir/libsupc++_nano.a + done + + # strip target binaries + find "$pkgdir"/usr/lib/gcc/$_target/$pkgver "$pkgdir"/usr/$_target/lib -type f -and \( -name \*.a -or -name \*.o \) -exec $_target-objcopy -R .comment -R .note -R .debug_info -R .debug_aranges -R .debug_pubnames -R .debug_pubtypes -R .debug_abbrev -R .debug_line -R .debug_str -R .debug_ranges -R .debug_loc '{}' \; + + # strip host binaries + find "$pkgdir"/usr/bin/ "$pkgdir"/usr/lib/gcc/$_target/$pkgver -type f -and \( -executable \) -exec strip '{}' \; + + # Remove files that conflict with host gcc package + rm -r "$pkgdir"/usr/share/man/man7 + rm -r "$pkgdir"/usr/share/info + rm "$pkgdir"/usr/lib/libcc1.* +} Deleted: enable-with-multilib-list-for-arm.patch =================================================================== --- enable-with-multilib-list-for-arm.patch 2018-01-26 23:28:37 UTC (rev 287303) +++ enable-with-multilib-list-for-arm.patch 2018-01-26 23:28:42 UTC (rev 287304) @@ -1,215 +0,0 @@ -commit 71587241301d28b68bbe2f41c5eb2856053c750c -Author: Anatol Pomozov <anatol.pomo...@gmail.com> -Date: Tue May 9 21:19:27 2017 -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 f675e073ecc..cced5329b47 100644 ---- a/gcc/Makefile.in -+++ b/gcc/Makefile.in -@@ -558,6 +558,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 b8bb4d65825..713e35b62af 100644 ---- a/gcc/config.gcc -+++ b/gcc/config.gcc -@@ -1140,7 +1140,7 @@ arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*) - 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*-*-fuchsia*) -@@ -3787,56 +3787,6 @@ case "${target}" in - echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\"" 1>&2 - exit 1 - fi -- -- # Add extra multilibs -- if test "x$with_multilib_list" != x; then -- arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'` -- case ${arm_multilibs} 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. -- tmake_profile_file="arm/t-aprofile" -- ;; -- rmprofile) -- # Note that arm/t-rmprofile 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. -- tmake_profile_file="arm/t-rmprofile" -- ;; -- default) -- ;; -- *) -- echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2 -- exit 1 -- ;; -- esac -- -- if test "x${tmake_profile_file}" != x ; then -- # arm/t-aprofile and arm/t-rmprofile are 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=${with_multilib_list}" 1>&2 -- exit 1 -- fi -- -- tmake_file="${tmake_file} ${tmake_profile_file}" -- fi -- fi - ;; - - fr*-*-*linux*) -diff --git a/gcc/config/arm/t-mlibs b/gcc/config/arm/t-mlibs -new file mode 100644 -index 00000000000..5720cf7503d ---- /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 ea73b151a4e..c609f25e50c 100755 ---- a/gcc/configure -+++ b/gcc/configure -@@ -772,6 +772,7 @@ SET_MAKE - accel_dir_suffix - real_target_noncanonical - enable_as_accelerator -+with_multilib_list - REPORT_BUGS_TEXI - REPORT_BUGS_TO - PKGVERSION -@@ -7763,6 +7764,7 @@ else - fi - - -+ - # ------------------------- - # Checks for other programs - # ------------------------- -diff --git a/gcc/configure.ac b/gcc/configure.ac -index 9d4c792a33f..abd988eb113 100644 ---- a/gcc/configure.ac -+++ b/gcc/configure.ac -@@ -1007,6 +1007,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 Copied: arm-none-eabi-gcc/repos/community-x86_64/enable-with-multilib-list-for-arm.patch (from rev 287302, arm-none-eabi-gcc/trunk/enable-with-multilib-list-for-arm.patch) =================================================================== --- enable-with-multilib-list-for-arm.patch (rev 0) +++ enable-with-multilib-list-for-arm.patch 2018-01-26 23:28:42 UTC (rev 287304) @@ -0,0 +1,215 @@ +commit 71587241301d28b68bbe2f41c5eb2856053c750c +Author: Anatol Pomozov <anatol.pomo...@gmail.com> +Date: Tue May 9 21:19:27 2017 -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 f675e073ecc..cced5329b47 100644 +--- a/gcc/Makefile.in ++++ b/gcc/Makefile.in +@@ -558,6 +558,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 b8bb4d65825..713e35b62af 100644 +--- a/gcc/config.gcc ++++ b/gcc/config.gcc +@@ -1140,7 +1140,7 @@ arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*) + 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*-*-fuchsia*) +@@ -3787,56 +3787,6 @@ case "${target}" in + echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\"" 1>&2 + exit 1 + fi +- +- # Add extra multilibs +- if test "x$with_multilib_list" != x; then +- arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'` +- case ${arm_multilibs} 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. +- tmake_profile_file="arm/t-aprofile" +- ;; +- rmprofile) +- # Note that arm/t-rmprofile 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. +- tmake_profile_file="arm/t-rmprofile" +- ;; +- default) +- ;; +- *) +- echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2 +- exit 1 +- ;; +- esac +- +- if test "x${tmake_profile_file}" != x ; then +- # arm/t-aprofile and arm/t-rmprofile are 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=${with_multilib_list}" 1>&2 +- exit 1 +- fi +- +- tmake_file="${tmake_file} ${tmake_profile_file}" +- fi +- fi + ;; + + fr*-*-*linux*) +diff --git a/gcc/config/arm/t-mlibs b/gcc/config/arm/t-mlibs +new file mode 100644 +index 00000000000..5720cf7503d +--- /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 ea73b151a4e..c609f25e50c 100755 +--- a/gcc/configure ++++ b/gcc/configure +@@ -772,6 +772,7 @@ SET_MAKE + accel_dir_suffix + real_target_noncanonical + enable_as_accelerator ++with_multilib_list + REPORT_BUGS_TEXI + REPORT_BUGS_TO + PKGVERSION +@@ -7763,6 +7764,7 @@ else + fi + + ++ + # ------------------------- + # Checks for other programs + # ------------------------- +diff --git a/gcc/configure.ac b/gcc/configure.ac +index 9d4c792a33f..abd988eb113 100644 +--- a/gcc/configure.ac ++++ b/gcc/configure.ac +@@ -1007,6 +1007,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