Skip to content

Commit 3a3fc29

Browse files
committed
is it better now?
1 parent 08f207b commit 3a3fc29

File tree

3 files changed

+36
-32
lines changed

3 files changed

+36
-32
lines changed

Makefile.pre.in

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -728,7 +728,6 @@ LIBHACL_BLAKE2_HEADERS= \
728728
Modules/_hacl/internal/Hacl_Impl_Blake2_Constants.h \
729729
Modules/_hacl/internal/Hacl_Hash_Blake2s_Simd128.h \
730730
Modules/_hacl/internal/Hacl_Hash_Blake2b_Simd256.h \
731-
Modules/_hacl/internal/Hacl_Streaming_Types.h \
732731
$(LIBHACL_HEADERS)
733732

734733
LIBHACL_HMAC_HEADERS= \
@@ -1459,51 +1458,52 @@ $(LIBEXPAT_A): $(LIBEXPAT_OBJS)
14591458
##########################################################################
14601459
# Build HACL* static libraries for hashlib and HACL* HMAC.
14611460
#
1462-
# The contents of libHacl_Blake2.a vary depending on whether we
1463-
# have the ability to compile vectorized versions.
1464-
#
14651461
# The HACL* modules are dynamically compiled and linked with the
14661462
# corresponding CPython built-in modules on demand, depending on
1467-
# whether the module is built or not. Since HMAC however requires
1468-
# them to be built, we need rules that are always enabled and that
1469-
# are not overwritten by those automatically deduced by makesetup.
1463+
# whether the module is built or not.
1464+
#
1465+
# In particular, the HACL* objects are also dependencies of the
1466+
# corresponding C extension modules and are indicated by defining
1467+
# the MODULE_<NAME>_LIBDEPS variable.
14701468

1469+
Modules/_hacl/Lib_Memzero0.o: $(srcdir)/Modules/_hacl/Lib_Memzero0.c $(LIBHACL_HEADERS)
1470+
$(CC) -c $(LIBHACL_CFLAGS) -o $@ $(srcdir)/Modules/_hacl/Lib_Memzero0.c
1471+
1472+
MODULE__MD5_LIBDEPS=$(LIBHACL_MD5_OBJS)
14711473
Modules/_hacl/Hacl_Hash_MD5.o: $(srcdir)/Modules/_hacl/Hacl_Hash_MD5.c $(LIBHACL_MD5_HEADERS)
14721474
$(CC) -c $(LIBHACL_CFLAGS) -o $@ $(srcdir)/Modules/_hacl/Hacl_Hash_MD5.c
14731475

1476+
MODULE__SHA1_LIBDEPS=$(LIBHACL_SHA1_OBJS)
14741477
Modules/_hacl/Hacl_Hash_SHA1.o: $(srcdir)/Modules/_hacl/Hacl_Hash_SHA1.c $(LIBHACL_SHA1_HEADERS)
14751478
$(CC) -c $(LIBHACL_CFLAGS) -o $@ $(srcdir)/Modules/_hacl/Hacl_Hash_SHA1.c
14761479

1480+
MODULE__SHA2_LIBDEPS=$(LIBHACL_SHA2_OBJS)
14771481
Modules/_hacl/Hacl_Hash_SHA2.o: $(srcdir)/Modules/_hacl/Hacl_Hash_SHA2.c $(LIBHACL_SHA2_HEADERS)
14781482
$(CC) -c $(LIBHACL_CFLAGS) -o $@ $(srcdir)/Modules/_hacl/Hacl_Hash_SHA2.c
14791483

1484+
MODULE__SHA3_LIBDEPS=$(LIBHACL_SHA3_OBJS)
14801485
Modules/_hacl/Hacl_Hash_SHA3.o: $(srcdir)/Modules/_hacl/Hacl_Hash_SHA3.c $(LIBHACL_SHA3_HEADERS)
14811486
$(CC) -c $(LIBHACL_CFLAGS) -o $@ $(srcdir)/Modules/_hacl/Hacl_Hash_SHA3.c
14821487

1488+
MODULE__BLAKE2_LIBDEPS=$(LIBHACL_BLAKE2_OBJS)
14831489
Modules/_hacl/Hacl_Hash_Blake2s.o: $(srcdir)/Modules/_hacl/Hacl_Hash_Blake2s.c $(LIBHACL_BLAKE2_HEADERS)
14841490
$(CC) -c $(LIBHACL_CFLAGS) -o $@ $(srcdir)/Modules/_hacl/Hacl_Hash_Blake2s.c
1485-
14861491
Modules/_hacl/Hacl_Hash_Blake2b.o: $(srcdir)/Modules/_hacl/Hacl_Hash_Blake2b.c $(LIBHACL_BLAKE2_HEADERS)
14871492
$(CC) -c $(LIBHACL_CFLAGS) -o $@ $(srcdir)/Modules/_hacl/Hacl_Hash_Blake2b.c
1488-
14891493
Modules/_hacl/Hacl_Hash_Blake2s_Simd128.o: $(srcdir)/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c $(LIBHACL_BLAKE2_HEADERS)
14901494
$(CC) -c $(LIBHACL_CFLAGS) $(LIBHACL_SIMD128_FLAGS) -DHACL_CAN_COMPILE_VEC128 -o $@ $(srcdir)/Modules/_hacl/Hacl_Hash_Blake2s_Simd128.c
1491-
14921495
Modules/_hacl/Hacl_Hash_Blake2s_Simd128_universal2.o: $(srcdir)/Modules/_hacl/Hacl_Hash_Blake2s_Simd128_universal2.c $(LIBHACL_BLAKE2_HEADERS)
14931496
$(CC) -c $(LIBHACL_CFLAGS) $(LIBHACL_SIMD128_FLAGS) -DHACL_CAN_COMPILE_VEC128 -o $@ $(srcdir)/Modules/_hacl/Hacl_Hash_Blake2s_Simd128_universal2.c
1494-
14951497
Modules/_hacl/Hacl_Hash_Blake2b_Simd256.o: $(srcdir)/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c $(LIBHACL_BLAKE2_HEADERS)
14961498
$(CC) -c $(LIBHACL_CFLAGS) $(LIBHACL_SIMD256_FLAGS) -DHACL_CAN_COMPILE_VEC256 -o $@ $(srcdir)/Modules/_hacl/Hacl_Hash_Blake2b_Simd256.c
1497-
14981499
Modules/_hacl/Hacl_Hash_Blake2b_Simd256_universal2.o: $(srcdir)/Modules/_hacl/Hacl_Hash_Blake2b_Simd256_universal2.c $(LIBHACL_BLAKE2_HEADERS)
14991500
$(CC) -c $(LIBHACL_CFLAGS) $(LIBHACL_SIMD256_FLAGS) -DHACL_CAN_COMPILE_VEC256 -o $@ $(srcdir)/Modules/_hacl/Hacl_Hash_Blake2b_Simd256_universal2.c
15001501

1501-
Modules/_hacl/Lib_Memzero0.o: $(srcdir)/Modules/_hacl/Lib_Memzero0.c $(LIBHACL_BLAKE2_HEADERS)
1502-
$(CC) -c $(LIBHACL_CFLAGS) -o $@ $(srcdir)/Modules/_hacl/Lib_Memzero0.c
1502+
# Other cryptographic primitives
15031503

1504+
MODULE__HMAC_LIBDEPS=$(LIBHACL_HMAC_OBJS)
15041505
Modules/_hacl/Hacl_HMAC.o: $(srcdir)/Modules/_hacl/Hacl_HMAC.c $(LIBHACL_HMAC_HEADERS)
15051506
$(CC) -c $(LIBHACL_CFLAGS) -o $@ $(srcdir)/Modules/_hacl/Hacl_HMAC.c
1506-
15071507
Modules/_hacl/Hacl_Streaming_HMAC.o: $(srcdir)/Modules/_hacl/Hacl_Streaming_HMAC.c $(LIBHACL_HMAC_HEADERS)
15081508
$(CC) -Wno-unused-variable -c $(LIBHACL_CFLAGS) -o $@ $(srcdir)/Modules/_hacl/Hacl_Streaming_HMAC.c
15091509

Modules/Setup.stdlib.in

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -76,18 +76,19 @@
7676
# needs -lreadline or -ledit, sometimes termcap, termlib, or tinfo
7777
@MODULE_READLINE_TRUE@readline readline.c
7878

79-
# hashing builtins, can be disabled with --without-builtin-hashlib-hashes
80-
# HACL* dependencies are compiled separately, but they should be linked
81-
# against the module when needed. In order for the extension module to
82-
# be correctly linked, we should however specify which *.o will be used
83-
# (but for which no Makefile rule will be auto-generated).
84-
@MODULE__MD5_TRUE@_md5 md5module.c -I$(srcdir)/Modules/_hacl/include $(LIBHACL_MD5_OBJS)
85-
@MODULE__SHA1_TRUE@_sha1 sha1module.c -I$(srcdir)/Modules/_hacl/include $(LIBHACL_SHA1_OBJS)
86-
@MODULE__SHA2_TRUE@_sha2 sha2module.c -I$(srcdir)/Modules/_hacl/include $(LIBHACL_SHA2_OBJS)
87-
@MODULE__SHA3_TRUE@_sha3 sha3module.c -I$(srcdir)/Modules/_hacl/include $(LIBHACL_SHA3_OBJS)
88-
@MODULE__BLAKE2_TRUE@_blake2 blake2module.c -I$(srcdir)/Modules/_hacl/include $(LIBHACL_BLAKE2_OBJS)
89-
90-
@MODULE__HMAC_TRUE@_hmac hmacmodule.c $(LIBHACL_HMAC_OBJS)
79+
############################################################################
80+
# HACL*-based Cryptographic Primitives
81+
82+
# Hash functions can be disabled with --without-builtin-hashlib-hashes.
83+
@MODULE__MD5_TRUE@_md5 md5module.c -I$(srcdir)/Modules/_hacl/include $(MODULE__MD5_LIBDEPS)
84+
@MODULE__SHA1_TRUE@_sha1 sha1module.c -I$(srcdir)/Modules/_hacl/include $(MODULE__SHA1_LIBDEPS)
85+
@MODULE__SHA2_TRUE@_sha2 sha2module.c -I$(srcdir)/Modules/_hacl/include $(MODULE__SHA2_LIBDEPS)
86+
@MODULE__SHA3_TRUE@_sha3 sha3module.c -I$(srcdir)/Modules/_hacl/include $(MODULE__SHA3_LIBDEPS)
87+
@MODULE__BLAKE2_TRUE@_blake2 blake2module.c -I$(srcdir)/Modules/_hacl/include $(MODULE__BLAKE2_LIBDEPS)
88+
89+
# Since HMAC is always supported, the HACL* implementation modules must
90+
# be built unconditionally.
91+
@MODULE__HMAC_TRUE@_hmac hmacmodule.c -I$(srcdir)/Modules/_hacl/include $(MODULE__HMAC_LIBDEPS)
9192

9293
############################################################################
9394
# XML and text

Modules/makesetup

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -178,10 +178,10 @@ sed -e 's/[ ]*#.*//' -e '/^[ ]*$/d' |
178178
*.cpp) srcs="$srcs $arg";;
179179
\$\(*_CFLAGS\)) cpps="$cpps $arg";;
180180
\$\(*_INCLUDES\)) cpps="$cpps $arg";;
181-
\$\(*_LIBS\)) libs="$libs $arg";;
181+
\$\(*_LIBS\)) libs="$libs $arg";;
182+
\$\(*_LIBDEPS\)) libs="$libs $arg";;
182183
\$\(*_LDFLAGS\)) libs="$libs $arg";;
183184
\$\(*_RPATH\)) libs="$libs $arg";;
184-
\$\(*_OBJS\)) objs="$objs $arg";;
185185
\$*) libs="$libs $arg"
186186
cpps="$cpps $arg";;
187187
*.*) echo 1>&2 "bad word $arg in $line"
@@ -226,6 +226,7 @@ sed -e 's/[ ]*#.*//' -e '/^[ ]*$/d' |
226226
case $noobjects in
227227
yes) continue;;
228228
esac
229+
objs=''
229230
for src in $srcs
230231
do
231232
case $src in
@@ -253,11 +254,13 @@ sed -e 's/[ ]*#.*//' -e '/^[ ]*$/d' |
253254
case $doconfig in
254255
no)
255256
cc="$cc $cpps \$(PY_STDMODULE_CFLAGS) \$(CCSHARED)"
256-
rule="$obj: $src \$(MODULE_${mods_upper}_DEPS) \$(MODULE_DEPS_SHARED) \$(PYTHON_HEADERS); $cc -c $src -o $obj"
257+
rule="$obj: $src \$(MODULE_${mods_upper}_DEPS) \$(MODULE_DEPS_SHARED) \$(PYTHON_HEADERS)"
258+
rule="$rule; $cc -c $src -o $obj"
257259
;;
258260
*)
259261
cc="$cc $cpps \$(PY_BUILTIN_MODULE_CFLAGS)"
260-
rule="$obj: $src \$(MODULE_${mods_upper}_DEPS) \$(MODULE_DEPS_STATIC) \$(PYTHON_HEADERS); $cc -c $src -o $obj"
262+
rule="$obj: $src \$(MODULE_${mods_upper}_DEPS) \$(MODULE_DEPS_STATIC) \$(PYTHON_HEADERS)"
263+
rule="$rule; $cc -c $src -o $obj"
261264
;;
262265
esac
263266
echo "$rule" >>$rulesf
@@ -274,7 +277,7 @@ sed -e 's/[ ]*#.*//' -e '/^[ ]*$/d' |
274277
BUILT_SHARED="$BUILT_SHARED $mod"
275278
;;
276279
esac
277-
rule="$file: $objs"
280+
rule="$file: $objs \$(MODULE_${mods_upper}_LIBDEPS)"
278281
rule="$rule; \$(BLDSHARED) $objs $libs \$(LIBPYTHON) -o $file"
279282
echo "$rule" >>$rulesf
280283
done

0 commit comments

Comments
 (0)