* cipher/asm-common-aarch64.h: Use same macro GET_DATA_POINTER() for
linux and windows.
--
For multiple labels defined in the same consts object on Linux,
except the first label, an error result will be obtained when taking
the addresss of other labels through GET_DATA_POINTER(). The error
address is the same as the first label. An error fragment code after
compilation is as follows:
0x0000fffff7f18be4 <+12>: adrp x6, 0xfffff7fb8000
0x0000fffff7f18be8 <+16>: ldr x6, [x6, #3216]
0x0000fffff7f18bec <+20>: ld1b {z24.b}, p0/z, [x6]
0x0000fffff7f18bf0 <+24>: adrp x6, 0xfffff7fb8000
0x0000fffff7f18bf4 <+28>: ldr x6, [x6, #3216]
0x0000fffff7f18bf8 <+32>: ldr p1, [x6]
This patch fixes this problem by using the ADRP/ADD instruction.
Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
---
cipher/asm-common-aarch64.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cipher/asm-common-aarch64.h b/cipher/asm-common-aarch64.h
index d3f7801c7661..b29479a32157 100644
--- a/cipher/asm-common-aarch64.h
+++ b/cipher/asm-common-aarch64.h
@@ -33,7 +33,7 @@
#define GET_DATA_POINTER(reg, name) \
adrp reg, name@GOTPAGE ; \
add reg, reg, name@GOTPAGEOFF ;
-#elif defined(_WIN32)
+#elif defined(__linux__) || defined(_WIN32)
#define GET_DATA_POINTER(reg, name) \
adrp reg, name ; \
add reg, reg, #:lo12:name ;
--
2.24.3 (Apple Git-128)
_______________________________________________
Gcrypt-devel mailing list
Gcrypt-devel@lists.gnupg.org
https://lists.gnupg.org/mailman/listinfo/gcrypt-devel
linux and windows.
--
For multiple labels defined in the same consts object on Linux,
except the first label, an error result will be obtained when taking
the addresss of other labels through GET_DATA_POINTER(). The error
address is the same as the first label. An error fragment code after
compilation is as follows:
0x0000fffff7f18be4 <+12>: adrp x6, 0xfffff7fb8000
0x0000fffff7f18be8 <+16>: ldr x6, [x6, #3216]
0x0000fffff7f18bec <+20>: ld1b {z24.b}, p0/z, [x6]
0x0000fffff7f18bf0 <+24>: adrp x6, 0xfffff7fb8000
0x0000fffff7f18bf4 <+28>: ldr x6, [x6, #3216]
0x0000fffff7f18bf8 <+32>: ldr p1, [x6]
This patch fixes this problem by using the ADRP/ADD instruction.
Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
---
cipher/asm-common-aarch64.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cipher/asm-common-aarch64.h b/cipher/asm-common-aarch64.h
index d3f7801c7661..b29479a32157 100644
--- a/cipher/asm-common-aarch64.h
+++ b/cipher/asm-common-aarch64.h
@@ -33,7 +33,7 @@
#define GET_DATA_POINTER(reg, name) \
adrp reg, name@GOTPAGE ; \
add reg, reg, name@GOTPAGEOFF ;
-#elif defined(_WIN32)
+#elif defined(__linux__) || defined(_WIN32)
#define GET_DATA_POINTER(reg, name) \
adrp reg, name ; \
add reg, reg, #:lo12:name ;
--
2.24.3 (Apple Git-128)
_______________________________________________
Gcrypt-devel mailing list
Gcrypt-devel@lists.gnupg.org
https://lists.gnupg.org/mailman/listinfo/gcrypt-devel