@@ -227,13 +227,13 @@ ENSUREPIP= @ENSUREPIP@
227
227
# Internal static libraries
228
228
LIBMPDEC_A= Modules/_decimal/libmpdec/libmpdec.a
229
229
LIBEXPAT_A= Modules/expat/libexpat.a
230
- LIBHACL_BLAKE2_A= Modules/_hacl/libHacl_Hash_Blake2.a
231
- LIBHACL_HMAC_A= Modules/_hacl/libHacl_HMAC.a
232
230
LIBHACL_CFLAGS=@LIBHACL_CFLAGS@
233
231
LIBHACL_SIMD128_FLAGS=@LIBHACL_SIMD128_FLAGS@
234
232
LIBHACL_SIMD256_FLAGS=@LIBHACL_SIMD256_FLAGS@
235
233
LIBHACL_SIMD128_OBJS=@LIBHACL_SIMD128_OBJS@
234
+ LIBHACL_SIMD128_SRCS=$(LIBHACL_SIMD128_OBJS:.o=.c)
236
235
LIBHACL_SIMD256_OBJS=@LIBHACL_SIMD256_OBJS@
236
+ LIBHACL_SIMD256_SRCS=$(LIBHACL_SIMD256_OBJS:.o=.c)
237
237
238
238
# Module state, compiler flags and linker flags
239
239
# Empty CFLAGS and LDFLAGS are omitted.
@@ -657,18 +657,32 @@ LIBEXPAT_HEADERS= \
657
657
##########################################################################
658
658
# hashlib's HACL* library
659
659
660
+ LIBHACL_MD5_SRCS= \
661
+ Modules/_hacl/Hacl_Hash_MD5.c
660
662
LIBHACL_MD5_OBJS= \
661
663
Modules/_hacl/Hacl_Hash_MD5.o
662
664
665
+ LIBHACL_SHA1_SRCS= \
666
+ Modules/_hacl/Hacl_Hash_SHA1.c
663
667
LIBHACL_SHA1_OBJS= \
664
668
Modules/_hacl/Hacl_Hash_SHA1.o
665
669
670
+ LIBHACL_SHA2_SRCS= \
671
+ Modules/_hacl/Hacl_Hash_SHA2.c
666
672
LIBHACL_SHA2_OBJS= \
667
673
Modules/_hacl/Hacl_Hash_SHA2.o
668
674
675
+ LIBHACL_SHA3_SRCS= \
676
+ Modules/_hacl/Hacl_Hash_SHA3.c
669
677
LIBHACL_SHA3_OBJS= \
670
678
Modules/_hacl/Hacl_Hash_SHA3.o
671
679
680
+ LIBHACL_BLAKE2_SRCS= \
681
+ Modules/_hacl/Hacl_Hash_Blake2s.c \
682
+ Modules/_hacl/Hacl_Hash_Blake2b.c \
683
+ Modules/_hacl/Lib_Memzero0.c \
684
+ $(LIBHACL_SIMD128_SRCS) \
685
+ $(LIBHACL_SIMD256_SRCS)
672
686
LIBHACL_BLAKE2_OBJS= \
673
687
Modules/_hacl/Hacl_Hash_Blake2s.o \
674
688
Modules/_hacl/Hacl_Hash_Blake2b.o \
@@ -1460,7 +1474,25 @@ $(LIBEXPAT_A): $(LIBEXPAT_OBJS)
1460
1474
# Build HACL* static libraries for hashlib and HACL* HMAC.
1461
1475
#
1462
1476
# The contents of libHacl_Blake2.a vary depending on whether we
1463
- # have the ability to compile vectorized versions
1477
+ # have the ability to compile vectorized versions.
1478
+ #
1479
+ # The HACL* modules are dynamically compiled and linked with the
1480
+ # corresponding CPython built-in modules on demand, depending on
1481
+ # whether the module is built or not. Since HMAC however requires
1482
+ # them to be built, we need rules that are always enabled and that
1483
+ # are not overwritten by those automatically deduced by makesetup.
1484
+
1485
+ Modules/_hacl/Hacl_Hash_MD5.o: $(srcdir)/Modules/_hacl/Hacl_Hash_MD5.c $(LIBHACL_MD5_HEADERS)
1486
+ $(CC) -c $(LIBHACL_CFLAGS) -o $@ $(srcdir)/Modules/_hacl/Hacl_Hash_MD5.c
1487
+
1488
+ Modules/_hacl/Hacl_Hash_SHA1.o: $(srcdir)/Modules/_hacl/Hacl_Hash_SHA1.c $(LIBHACL_SHA1_HEADERS)
1489
+ $(CC) -c $(LIBHACL_CFLAGS) -o $@ $(srcdir)/Modules/_hacl/Hacl_Hash_SHA1.c
1490
+
1491
+ Modules/_hacl/Hacl_Hash_SHA2.o: $(srcdir)/Modules/_hacl/Hacl_Hash_SHA2.c $(LIBHACL_SHA2_HEADERS)
1492
+ $(CC) -c $(LIBHACL_CFLAGS) -o $@ $(srcdir)/Modules/_hacl/Hacl_Hash_SHA2.c
1493
+
1494
+ Modules/_hacl/Hacl_Hash_SHA3.o: $(srcdir)/Modules/_hacl/Hacl_Hash_SHA3.c $(LIBHACL_SHA3_HEADERS)
1495
+ $(CC) -c $(LIBHACL_CFLAGS) -o $@ $(srcdir)/Modules/_hacl/Hacl_Hash_SHA3.c
1464
1496
1465
1497
Modules/_hacl/Hacl_Hash_Blake2s.o: $(srcdir)/Modules/_hacl/Hacl_Hash_Blake2s.c $(LIBHACL_BLAKE2_HEADERS)
1466
1498
$(CC) -c $(LIBHACL_CFLAGS) -o $@ $(srcdir)/Modules/_hacl/Hacl_Hash_Blake2s.c
@@ -1483,20 +1515,12 @@ Modules/_hacl/Hacl_Hash_Blake2b_Simd256_universal2.o: $(srcdir)/Modules/_hacl/Ha
1483
1515
Modules/_hacl/Lib_Memzero0.o: $(srcdir)/Modules/_hacl/Lib_Memzero0.c $(LIBHACL_BLAKE2_HEADERS)
1484
1516
$(CC) -c $(LIBHACL_CFLAGS) -o $@ $(srcdir)/Modules/_hacl/Lib_Memzero0.c
1485
1517
1486
- $(LIBHACL_BLAKE2_A): $(LIBHACL_BLAKE2_OBJS)
1487
- -rm -f $@
1488
- $(AR) $(ARFLAGS) $@ $(LIBHACL_BLAKE2_OBJS)
1489
-
1490
1518
Modules/_hacl/Hacl_HMAC.o: $(srcdir)/Modules/_hacl/Hacl_HMAC.c $(LIBHACL_HMAC_HEADERS)
1491
1519
$(CC) -c $(LIBHACL_CFLAGS) -o $@ $(srcdir)/Modules/_hacl/Hacl_HMAC.c
1492
1520
1493
1521
Modules/_hacl/Hacl_Streaming_HMAC.o: $(srcdir)/Modules/_hacl/Hacl_Streaming_HMAC.c $(LIBHACL_HMAC_HEADERS)
1494
1522
$(CC) -Wno-unused-variable -c $(LIBHACL_CFLAGS) -o $@ $(srcdir)/Modules/_hacl/Hacl_Streaming_HMAC.c
1495
1523
1496
- $(LIBHACL_HMAC_A): $(LIBHACL_HMAC_OBJS)
1497
- -rm -f $@
1498
- $(AR) $(ARFLAGS) $@ $(LIBHACL_HMAC_OBJS)
1499
-
1500
1524
# create relative links from build/lib.platform/egg.so to Modules/egg.so
1501
1525
# pybuilddir.txt is created too late. We cannot use it in Makefile
1502
1526
# targets. ln --relative is not portable.
@@ -3270,12 +3294,12 @@ MODULE__DECIMAL_DEPS=$(srcdir)/Modules/_decimal/docstrings.h @LIBMPDEC_INTERNAL@
3270
3294
MODULE__ELEMENTTREE_DEPS=$(srcdir)/Modules/pyexpat.c @LIBEXPAT_INTERNAL@
3271
3295
MODULE__HASHLIB_DEPS=$(srcdir)/Modules/hashlib.h
3272
3296
MODULE__IO_DEPS=$(srcdir)/Modules/_io/_iomodule.h
3273
- MODULE__MD5_DEPS=$(srcdir)/Modules/hashlib.h $(LIBHACL_MD5_HEADERS) $(srcdir)/Modules/_hacl/Hacl_Hash_MD5.c
3274
- MODULE__SHA1_DEPS=$(srcdir)/Modules/hashlib.h $(LIBHACL_SHA1_HEADERS) $(srcdir)/Modules/_hacl/Hacl_Hash_SHA1.c
3275
- MODULE__SHA2_DEPS=$(srcdir)/Modules/hashlib.h $(LIBHACL_SHA2_HEADERS) $(srcdir)/Modules/_hacl/Hacl_Hash_SHA2.c
3276
- MODULE__SHA3_DEPS=$(srcdir)/Modules/hashlib.h $(LIBHACL_SHA3_HEADERS) $(srcdir)/Modules/_hacl/Hacl_Hash_SHA3.c
3277
- MODULE__BLAKE2_DEPS=$(srcdir)/Modules/hashlib.h $(LIBHACL_BLAKE2_HEADERS) $(LIBHACL_BLAKE2_A )
3278
- MODULE__HMAC_DEPS=$(srcdir)/Modules/hashlib.h $(LIBHACL_HMAC_HEADERS) $(LIBHACL_HMAC_A )
3297
+ MODULE__MD5_DEPS=$(srcdir)/Modules/hashlib.h $(LIBHACL_MD5_HEADERS) $(LIBHACL_MD5_OBJS)
3298
+ MODULE__SHA1_DEPS= $(srcdir)/Modules/hashlib.h $(LIBHACL_SHA1_HEADERS) $(LIBHACL_SHA1_OBJS)
3299
+ MODULE__SHA2_DEPS= $(srcdir)/Modules/hashlib.h $(LIBHACL_SHA2_HEADERS) $(LIBHACL_SHA2_OBJS)
3300
+ MODULE__SHA3_DEPS= $(srcdir)/Modules/hashlib.h $(LIBHACL_SHA3_HEADERS) $(LIBHACL_SHA3_OBJS)
3301
+ MODULE__BLAKE2_DEPS= $(srcdir)/Modules/hashlib.h $(LIBHACL_BLAKE2_HEADERS) $(LIBHACL_BLAKE2_OBJS )
3302
+ MODULE__HMAC_DEPS= $(srcdir)/Modules/hashlib.h $(LIBHACL_HMAC_HEADERS) $(LIBHACL_HMAC_OBJS )
3279
3303
MODULE__SOCKET_DEPS=$(srcdir)/Modules/socketmodule.h $(srcdir)/Modules/addrinfo.h $(srcdir)/Modules/getaddrinfo.c $(srcdir)/Modules/getnameinfo.c
3280
3304
MODULE__SSL_DEPS=$(srcdir)/Modules/_ssl.h $(srcdir)/Modules/_ssl/cert.c $(srcdir)/Modules/_ssl/debughelpers.c $(srcdir)/Modules/_ssl/misc.c $(srcdir)/Modules/_ssl_data_111.h $(srcdir)/Modules/_ssl_data_300.h $(srcdir)/Modules/socketmodule.h
3281
3305
MODULE__TESTCAPI_DEPS=$(srcdir)/Modules/_testcapi/parts.h $(srcdir)/Modules/_testcapi/util.h
0 commit comments