[PATCH] ISL, MPC, MPFR: fix configuration issues on ARM64/Darwin host

Karel Gardas karel at functional.vision
Fri May 13 14:08:56 UTC 2022


Joel,

I agree that having support upstreamed would be the best option. Due to 
upstream lag behind apple hardware development I'm afraid we would miss 
RTEMS 6 release if we would wait on upstream here, hence apple M1 users 
would not be able to use RTEMS 6.

Hence offered short cut solution, just for RTEMS 6, is to add those 3 
patches and remove them once upstream apply fixes.

I'm just following historic way of doing things in RSB. It still holds 
three patches at least here:

rtems at silence:~/git/rtems/rtems-source-builder-ref$ find . -name '*.diff'
./source-builder/patches/texane-stlink-3494c11-1.diff
./source-builder/patches/texane-stlink-3494c11-2.diff
./source-builder/patches/gcc-4.7.2-arm-eabi-multilib-20121014.diff

The patches accompany patch submitted yesterday for elftoolchain fix 
(sync of libelf config header file with recent FreeBSD version) and make 
RSB working on M1. Tested here, although hardware is here last day then 
it'll be moved out of my reach. Also tested on x64 darwin and ubuntu 20.04.

Thanks,
Karel

On 5/13/22 15:57, Joel Sherrill wrote:
> We do not put patches in RTEMS repos. File an rtems ticket, attach them, 
> and reference them from there.
> 
> If they are needed upstream, please submit them to the appropriate projects.
> 
> Otherwise, I can't test this so don't have much to say. Looks necessary 
> based on email discussions.
> 
> --joel
> 
> On Fri, May 13, 2022 at 8:48 AM Karel Gardas <karel at functional.vision> 
> wrote:
> 
>     Sponsored-By:   Precidata
>     ---
>       rtems/config/tools/rtems-gcc-12-newlib-head.cfg |  7 +++++++
>       rtems/patches/fix-mac-arm64-isl-config.patch    | 12 ++++++++++++
>       rtems/patches/fix-mac-arm64-mpc-config.patch    | 13 +++++++++++++
>       rtems/patches/fix-mac-arm64-mpfr-config.patch   | 12 ++++++++++++
>       4 files changed, 44 insertions(+)
>       create mode 100644 rtems/patches/fix-mac-arm64-isl-config.patch
>       create mode 100644 rtems/patches/fix-mac-arm64-mpc-config.patch
>       create mode 100644 rtems/patches/fix-mac-arm64-mpfr-config.patch
> 
>     diff --git a/rtems/config/tools/rtems-gcc-12-newlib-head.cfg
>     b/rtems/config/tools/rtems-gcc-12-newlib-head.cfg
>     index 4ea99a0..95b38c6 100644
>     --- a/rtems/config/tools/rtems-gcc-12-newlib-head.cfg
>     +++ b/rtems/config/tools/rtems-gcc-12-newlib-head.cfg
>     @@ -13,6 +13,13 @@
>       %patch add newlib -p1
>     https://devel.rtems.org/raw-attachment/ticket/4510/0001-aarch64-Add-ILP32-ABI-support-in-assembly-v2.patch
>     <https://devel.rtems.org/raw-attachment/ticket/4510/0001-aarch64-Add-ILP32-ABI-support-in-assembly-v2.patch>
>       %hash sha512
>     0001-aarch64-Add-ILP32-ABI-support-in-assembly-v2.patch
>     7ca237eabfd5b382713186e1fc290dfc999a353315795ecb8dd0d22fcd1ab7f5bf31f4329954adab91ad04c100dcac0e86d406fdbce8f82cf9dc23842c88caf6
> 
>     +%patch add isl -p1 file://fix-mac-arm64-isl-config.patch
>     +%hash sha512 fix-mac-arm64-isl-config.patch
>     c07fdb605a6520d194358504731e63b540211ef680383f1ca4ec65b4ac43ae27687534fd7d8196a4dbe83a0ecf2c42a4254c71e609ee484a7614573bc499a2e8
>     +%patch add mpfr -p1 file://fix-mac-arm64-mpfr-config.patch
>     +%hash sha512 fix-mac-arm64-mpfr-config.patch
>     dc5069df870bd02b7e78ed22c6ad9e9a2bb9ca372ce1a6b7e8fa5b7635dcef35c29f251fe5195c9c2a43513116c12cab1b0e96171cf34bd7fb7d0334c2c740fb
>     +%patch add mpc -p1 file://fix-mac-arm64-mpc-config.patch
>     +%hash sha512 fix-mac-arm64-mpc-config.patch
>     2849b11e360ea98e0b4d708c67723ad2d6c7bac6d1e469673f408b0111cf0278429e8bc38fd2b7538dc2d5bb0cc430c646a0fa7f0b6b105a0482a5455fadc8b9
>     +
>       %define newlib_version 64b2081
>       %define newlib_external 1
>       %define newlib_expand_name
>     sourceware-mirror-newlib-cygwin-%{newlib_version}
>     diff --git a/rtems/patches/fix-mac-arm64-isl-config.patch
>     b/rtems/patches/fix-mac-arm64-isl-config.patch
>     new file mode 100644
>     index 0000000..6b8f07d
>     --- /dev/null
>     +++ b/rtems/patches/fix-mac-arm64-isl-config.patch
>     @@ -0,0 +1,12 @@
>     +--- isl/config.sub.orig        2022-05-11 07:19:04.000000000 +0200
>     ++++ isl/config.sub     2022-05-11 07:19:26.000000000 +0200
>     +@@ -516,6 +516,9 @@
>     +               basic_machine=m68k-apollo
>     +               os=-bsd
>     +               ;;
>     ++      arm64-*)
>     ++              basic_machine=aarch64-`echo "$basic_machine" | sed
>     's/^[^-]*-//'`
>     ++              ;;
>     +       aros)
>     +               basic_machine=i386-pc
>     +               os=-aros
>     diff --git a/rtems/patches/fix-mac-arm64-mpc-config.patch
>     b/rtems/patches/fix-mac-arm64-mpc-config.patch
>     new file mode 100644
>     index 0000000..89ea483
>     --- /dev/null
>     +++ b/rtems/patches/fix-mac-arm64-mpc-config.patch
>     @@ -0,0 +1,13 @@
>     +--- mpc/build-aux/config.sub.orig      2022-05-11
>     09:20:51.000000000 +0200
>     ++++ mpc/build-aux/config.sub   2022-05-11 09:23:47.000000000 +0200
>     +@@ -916,6 +916,10 @@
>     +               cpu=sparc
>     +               vendor=`echo "$basic_machine" | sed 's/-.*//'`
>     +               ;;
>     ++      arm64-*)
>     ++              cpu=aarch64
>     ++              vendor=`echo "$basic_machine" | sed 's/-.*//'`
>     ++              ;;
>     +
>     +       *-*)
>     +               # shellcheck disable=SC2162
>     diff --git a/rtems/patches/fix-mac-arm64-mpfr-config.patch
>     b/rtems/patches/fix-mac-arm64-mpfr-config.patch
>     new file mode 100644
>     index 0000000..37cec7e
>     --- /dev/null
>     +++ b/rtems/patches/fix-mac-arm64-mpfr-config.patch
>     @@ -0,0 +1,12 @@
>     +--- mpfr/config.sub.orig       2022-05-11 07:13:02.000000000 +0200
>     ++++ mpfr/config.sub    2022-05-11 07:14:42.000000000 +0200
>     +@@ -516,6 +516,9 @@
>     +               basic_machine=m68k-apollo
>     +               os=-bsd
>     +               ;;
>     ++      arm64-*)
>     ++              basic_machine=aarch64-`echo "$basic_machine" | sed
>     's/^[^-]*-//'`
>     ++              ;;
>     +       aros)
>     +               basic_machine=i386-pc
>     +               os=-aros
>     -- 
>     2.25.1
> 
>     _______________________________________________
>     devel mailing list
>     devel at rtems.org <mailto:devel at rtems.org>
>     http://lists.rtems.org/mailman/listinfo/devel
>     <http://lists.rtems.org/mailman/listinfo/devel>
> 



More information about the devel mailing list