FX <[email protected]> writes:
> Could you please try again with the attached patch, doing just a plain
> .../configure && make && make check?
I build with: ./configure --build=aarch64-apple-darwin20.0.0
otherwise config.guess returns arm-apple-darwin20.0.0 and it tries to build
for 32-bit.
With your patch, and the above configure line, configuration succeeds but 8
tests fail with:
dyld: Symbol not found: __gmpn_invert_limb_table
which is used in bdiv_q_1.o but not available anywhere.
I accidentally changed bdiv_q_1.asm's symbol reference in the edit
process.
Please use the patch attached here instead.
diff -Nrc2 gmp-main.9240f425c585/configure.ac gmp-main/configure.ac
*** gmp-main.9240f425c585/configure.ac Thu Jun 18 18:39:48 2020
--- gmp-main/configure.ac Fri Jul 3 11:40:46 2020
***************
*** 3700,3703 ****
--- 3700,3711 ----
32)
GMP_INCLUDE_MPN(arm/arm-defs.m4) ;;
+ 64)
+ case $host in
+ *-*-darwin*)
+ GMP_INCLUDE_MPN(arm64/darwin.m4) ;;
+ *)
+ GMP_INCLUDE_MPN(arm64/arm64-defs.m4) ;;
+ esac
+ ;;
esac
;;
diff -Nrc2 gmp-main.9240f425c585/mpn/arm64/arm64-defs.m4 gmp-main/mpn/arm64/arm64-defs.m4
*** gmp-main.9240f425c585/mpn/arm64/arm64-defs.m4 Thu Jan 1 01:00:00 1970
--- gmp-main/mpn/arm64/arm64-defs.m4 Fri Jul 3 11:40:46 2020
***************
*** 0 ****
--- 1,47 ----
+ divert(-1)
+
+ dnl m4 macros for ARM64 ELF assembler.
+
+ dnl Copyright 2020 Free Software Foundation, Inc.
+
+ dnl This file is part of the GNU MP Library.
+ dnl
+ dnl The GNU MP Library is free software; you can redistribute it and/or modify
+ dnl it under the terms of either:
+ dnl
+ dnl * the GNU Lesser General Public License as published by the Free
+ dnl Software Foundation; either version 3 of the License, or (at your
+ dnl option) any later version.
+ dnl
+ dnl or
+ dnl
+ dnl * the GNU General Public License as published by the Free Software
+ dnl Foundation; either version 2 of the License, or (at your option) any
+ dnl later version.
+ dnl
+ dnl or both in parallel, as here.
+ dnl
+ dnl The GNU MP Library is distributed in the hope that it will be useful, but
+ dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ dnl for more details.
+ dnl
+ dnl You should have received copies of the GNU General Public License and the
+ dnl GNU Lesser General Public License along with the GNU MP Library. If not,
+ dnl see https://www.gnu.org/licenses/.
+
+
+ dnl Standard commenting is with @, the default m4 # is for constants and we
+ dnl don't want to disable macro expansions in or after them.
+
+ changecom
+
+ ifdef(`PIC',`dnl
+ define(`LEA_HI', `adrp $1, :got:$2')dnl
+ define(`LEA_LO', `ldr $1, [$1, #:got_lo12:$2]')dnl
+ ',`dnl
+ define(`LEA_HI', `adrp $1, $2')dnl
+ define(`LEA_LO', `add $1, $1, :lo12:$2')dnl
+ ')dnl
+
+ divert
diff -Nrc2 gmp-main.9240f425c585/mpn/arm64/bdiv_q_1.asm gmp-main/mpn/arm64/bdiv_q_1.asm
*** gmp-main.9240f425c585/mpn/arm64/bdiv_q_1.asm Thu Jun 18 18:39:48 2020
--- gmp-main/mpn/arm64/bdiv_q_1.asm Fri Jul 3 11:40:46 2020
***************
*** 62,74 ****
lsr d, d, cnt
! ifdef(`PIC',`
! adrp x7, :got:__gmp_binvert_limb_table
ubfx x6, d, 1, 7
! ldr x7, [x7, #:got_lo12:__gmp_binvert_limb_table]
! ',`
! adrp x7, __gmp_binvert_limb_table
! ubfx x6, d, 1, 7
! add x7, x7, :lo12:__gmp_binvert_limb_table
! ')
ldrb w6, [x7, x6]
ubfiz x7, x6, 1, 8
--- 62,68 ----
lsr d, d, cnt
! LEA_HI( x7, binvert_limb_table)
ubfx x6, d, 1, 7
! LEA_LO( x7, binvert_limb_table)
ldrb w6, [x7, x6]
ubfiz x7, x6, 1, 8
diff -Nrc2 gmp-main.9240f425c585/mpn/arm64/darwin.m4 gmp-main/mpn/arm64/darwin.m4
*** gmp-main.9240f425c585/mpn/arm64/darwin.m4 Thu Jan 1 01:00:00 1970
--- gmp-main/mpn/arm64/darwin.m4 Fri Jul 3 11:40:46 2020
***************
*** 0 ****
--- 1,42 ----
+ divert(-1)
+
+ dnl m4 macros for ARM64 Darwin assembler.
+
+ dnl Copyright 2020 Free Software Foundation, Inc.
+
+ dnl This file is part of the GNU MP Library.
+ dnl
+ dnl The GNU MP Library is free software; you can redistribute it and/or modify
+ dnl it under the terms of either:
+ dnl
+ dnl * the GNU Lesser General Public License as published by the Free
+ dnl Software Foundation; either version 3 of the License, or (at your
+ dnl option) any later version.
+ dnl
+ dnl or
+ dnl
+ dnl * the GNU General Public License as published by the Free Software
+ dnl Foundation; either version 2 of the License, or (at your option) any
+ dnl later version.
+ dnl
+ dnl or both in parallel, as here.
+ dnl
+ dnl The GNU MP Library is distributed in the hope that it will be useful, but
+ dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ dnl for more details.
+ dnl
+ dnl You should have received copies of the GNU General Public License and the
+ dnl GNU Lesser General Public License along with the GNU MP Library. If not,
+ dnl see https://www.gnu.org/licenses/.
+
+
+ dnl Standard commenting is with @, the default m4 # is for constants and we
+ dnl don't want to disable macro expansions in or after them.
+
+ changecom
+
+ define(`LEA_HI',`adrp $1, $2@GOTPAGE')dnl
+ define(`LEA_LO',`ldr $1, [$1, $2@GOTPAGEOFF]')dnl
+
+ divert
diff -Nrc2 gmp-main.9240f425c585/mpn/arm64/invert_limb.asm gmp-main/mpn/arm64/invert_limb.asm
*** gmp-main.9240f425c585/mpn/arm64/invert_limb.asm Thu Jun 18 18:39:48 2020
--- gmp-main/mpn/arm64/invert_limb.asm Fri Jul 3 11:40:46 2020
***************
*** 42,48 ****
PROLOGUE(mpn_invert_limb)
lsr x2, x0, #54
! adrp x1, approx_tab
and x2, x2, #0x1fe
! add x1, x1, :lo12:approx_tab
ldrh w3, [x1,x2]
lsr x4, x0, #24
--- 42,48 ----
PROLOGUE(mpn_invert_limb)
lsr x2, x0, #54
! LEA_HI( x1, approx_tab)
and x2, x2, #0x1fe
! LEA_LO( x1, approx_tab)
ldrh w3, [x1,x2]
lsr x4, x0, #24
--
Torbjörn
Please encrypt, key id 0xC8601622
_______________________________________________
gmp-bugs mailing list
[email protected]
https://gmplib.org/mailman/listinfo/gmp-bugs