Skip to content

Commit 3ba5dd3

Browse files
committed
MacOS X Intel ASM clang 15: fix asm to compile without warning
Don't use align when __APPLE__ is defined. Make minimum alignment on variables in ASM 8 bytes (.p2align 3). Fix x86 builds with ASM.
1 parent 448378c commit 3ba5dd3

6 files changed

Lines changed: 218 additions & 185 deletions

File tree

src/include.am

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,23 +79,29 @@ if BUILD_SHA
7979
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sha.c
8080
endif
8181

82+
if !BUILD_X86_ASM
8283
if BUILD_INTELASM
8384
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sha256_asm.S
8485
endif
86+
endif
8587

8688
if BUILD_SHA512
8789
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sha512.c
90+
if !BUILD_X86_ASM
8891
if BUILD_INTELASM
8992
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sha512_asm.S
9093
endif
9194
endif
95+
endif
9296

9397
if BUILD_SHA3
9498
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sha3.c
99+
if !BUILD_X86_ASM
95100
if BUILD_INTELASM
96101
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sha3_asm.S
97102
endif
98103
endif
104+
endif
99105

100106
if BUILD_DH
101107
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/dh.c
@@ -202,9 +208,11 @@ src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/thumb2-sha256-asm
202208
endif !BUILD_ARMASM_INLINE
203209
else
204210
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sha256.c
211+
if !BUILD_X86_ASM
205212
if BUILD_INTELASM
206213
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sha256_asm.S
207214
endif BUILD_INTELASM
215+
endif !BUILD_X86_ASM
208216
endif !BUILD_ARMASM
209217
endif !BUILD_ARMASM_NEON
210218

@@ -230,9 +238,11 @@ src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/thumb2-sha512-asm
230238
endif !BUILD_ARMASM_INLINE
231239
else
232240
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sha512.c
241+
if !BUILD_X86_ASM
233242
if BUILD_INTELASM
234243
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sha512_asm.S
235244
endif BUILD_INTELASM
245+
endif !BUILD_X86_ASM
236246
endif !BUILD_ARMASM
237247
endif !BUILD_ARMASM_NEON
238248
endif BUILD_SHA512
@@ -246,10 +256,12 @@ else
246256
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-sha3-asm.S
247257
endif !BUILD_ARMASM_INLINE
248258
endif BUILD_ARMASM_NEON
259+
if !BUILD_X86_ASM
249260
if BUILD_INTELASM
250261
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sha3_asm.S
251262
endif
252263
endif
264+
endif
253265

254266
if BUILD_DH
255267
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/dh.c
@@ -328,9 +340,11 @@ src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-32-sha256-a
328340
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/thumb2-sha256-asm.S
329341
endif !BUILD_ARMASM_INLINE
330342
else
343+
if !BUILD_X86_ASM
331344
if BUILD_INTELASM
332345
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sha256_asm.S
333346
endif BUILD_INTELASM
347+
endif !BUILD_X86_ASM
334348
endif !BUILD_ARMASM
335349
endif !BUILD_ARMASM_NEON
336350
endif !BUILD_FIPS_CURRENT
@@ -473,9 +487,11 @@ src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/thumb2-sha512-asm
473487
endif !BUILD_ARMASM_INLINE
474488
else
475489
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sha512.c
490+
if !BUILD_X86_ASM
476491
if BUILD_INTELASM
477492
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sha512_asm.S
478493
endif BUILD_INTELASM
494+
endif !BUILD_X86_ASM
479495
endif !BUILD_ARMASM
480496
endif !BUILD_ARMASM_NEON
481497
endif BUILD_SHA512
@@ -491,10 +507,12 @@ else
491507
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-sha3-asm.S
492508
endif !BUILD_ARMASM_INLINE
493509
endif BUILD_ARMASM_NEON
510+
if !BUILD_X86_ASM
494511
if BUILD_INTELASM
495512
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sha3_asm.S
496513
endif
497514
endif
515+
endif
498516
endif !BUILD_FIPS_CURRENT
499517

500518
if !BUILD_FIPS_CURRENT
@@ -535,9 +553,11 @@ endif !BUILD_FIPS_CURRENT
535553
if !BUILD_FIPS_CURRENT
536554
if BUILD_SM3
537555
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sm3.c
556+
if !BUILD_X86_ASM
538557
if BUILD_INTELASM
539558
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/sm3_asm.S
540559
endif
560+
endif
541561
endif BUILD_SM3
542562
endif !BUILD_FIPS_CURRENT
543563

@@ -602,10 +622,12 @@ if BUILD_ARMASM
602622
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-poly1305.c
603623
endif
604624
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/poly1305.c
625+
if !BUILD_X86_ASM
605626
if BUILD_INTELASM
606627
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/poly1305_asm.S
607628
endif
608629
endif
630+
endif
609631

610632
if BUILD_RC4
611633
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/arc4.c
@@ -664,10 +686,12 @@ if BUILD_ARMASM_NEON
664686
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/port/arm/armv8-chacha.c
665687
else
666688
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/chacha.c
689+
if !BUILD_X86_ASM
667690
if BUILD_INTELASM
668691
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/chacha_asm.S
669692
endif
670693
endif
694+
endif
671695
if BUILD_POLY1305
672696
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/chacha20_poly1305.c
673697
endif
@@ -702,11 +726,13 @@ if !BUILD_FIPS_CURRENT
702726
if BUILD_WC_KYBER
703727
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/wc_kyber.c
704728
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/wc_kyber_poly.c
729+
if !BUILD_X86_ASM
705730
if BUILD_INTELASM
706731
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/wc_kyber_asm.S
707732
endif
708733
endif
709734
endif
735+
endif
710736

711737
if BUILD_WC_LMS
712738
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/wc_lms.c
@@ -730,7 +756,9 @@ if BUILD_CURVE25519_SMALL
730756
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/fe_low_mem.c
731757
else
732758
if BUILD_INTELASM
759+
if !BUILD_X86_ASM
733760
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/fe_x25519_asm.S
761+
endif !BUILD_X86_ASM
734762
else
735763
if BUILD_ARMASM
736764
if BUILD_ARMASM_NEON
@@ -766,7 +794,9 @@ else
766794
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/ge_operations.c
767795
if !BUILD_FEMATH
768796
if BUILD_INTELASM
797+
if !BUILD_X86_ASM
769798
src_libwolfssl@LIBSUFFIX@_la_SOURCES += wolfcrypt/src/fe_x25519_asm.S
799+
endif !BUILD_X86_ASM
770800
else
771801
if BUILD_ARMASM
772802
if BUILD_ARMASM_NEON

wolfcrypt/src/aes_asm.S

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1095,12 +1095,13 @@ DECB_END_4:
10951095
void AES_128_Key_Expansion_AESNI(const unsigned char* userkey,
10961096
unsigned char* key_schedule);
10971097
*/
1098-
.align 16,0x90
10991098
#ifndef __APPLE__
11001099
.globl AES_128_Key_Expansion_AESNI
1100+
.align 16,0x90
11011101
AES_128_Key_Expansion_AESNI:
11021102
#else
11031103
.globl _AES_128_Key_Expansion_AESNI
1104+
.p2align 4
11041105
_AES_128_Key_Expansion_AESNI:
11051106
#endif
11061107
# parameter 1: %rdi
@@ -1971,12 +1972,13 @@ DECB_END_4:
19711972
void AES_128_Key_Expansion_AESNI(const unsigned char* userkey,
19721973
unsigned char* key_schedule);
19731974
*/
1974-
.align 16,0x90
19751975
#ifndef __APPLE__
19761976
.globl AES_128_Key_Expansion_AESNI
1977+
.align 16,0x90
19771978
AES_128_Key_Expansion_AESNI:
19781979
#else
19791980
.globl _AES_128_Key_Expansion_AESNI
1981+
.p2align 4
19801982
_AES_128_Key_Expansion_AESNI:
19811983
#endif
19821984
# parameter 1: stack[4] => %eax

0 commit comments

Comments
 (0)