Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gh-99108: Import SHA2-384/512 from HACL* #101707

Merged
merged 3 commits into from
Feb 14, 2023
Merged

Conversation

msprotz
Copy link
Contributor

@msprotz msprotz commented Feb 8, 2023

@msprotz
Copy link
Contributor Author

msprotz commented Feb 8, 2023

(I pulled the wrong revision of HACL*, hence the build breakage -- I'll fix this shortly.)

Copy link
Contributor

@erlend-aasland erlend-aasland left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Build system changes look good to me.

@gpshead gpshead merged commit e5da9ab into python:main Feb 14, 2023
@bedevere-bot
Copy link

⚠️⚠️⚠️ Buildbot failure ⚠️⚠️⚠️

Hi! The buildbot wasm32-emscripten browser (dynamic linking, no tests) 3.x has failed when building commit e5da9ab.

What do you need to do:

  1. Don't panic.
  2. Check the buildbot page in the devguide if you don't know what the buildbots are or how they work.
  3. Go to the page of the buildbot that failed (https://buildbot.python.org/all/#builders/1051/builds/1357) and take a look at the build logs.
  4. Check if the failure is related to this commit (e5da9ab) or if it is a false positive.
  5. If the failure is related to this commit, please, reflect that on the issue and make a new Pull Request with a fix.

You can take a look at the buildbot page here:

https://buildbot.python.org/all/#builders/1051/builds/1357

Summary of the results of the build (if available):

Click to see traceback logs
remote: Enumerating objects: 49, done.        
remote: Counting objects:   2% (1/49)        
remote: Counting objects:   4% (2/49)        
remote: Counting objects:   6% (3/49)        
remote: Counting objects:   8% (4/49)        
remote: Counting objects:  10% (5/49)        
remote: Counting objects:  12% (6/49)        
remote: Counting objects:  14% (7/49)        
remote: Counting objects:  16% (8/49)        
remote: Counting objects:  18% (9/49)        
remote: Counting objects:  20% (10/49)        
remote: Counting objects:  22% (11/49)        
remote: Counting objects:  24% (12/49)        
remote: Counting objects:  26% (13/49)        
remote: Counting objects:  28% (14/49)        
remote: Counting objects:  30% (15/49)        
remote: Counting objects:  32% (16/49)        
remote: Counting objects:  34% (17/49)        
remote: Counting objects:  36% (18/49)        
remote: Counting objects:  38% (19/49)        
remote: Counting objects:  40% (20/49)        
remote: Counting objects:  42% (21/49)        
remote: Counting objects:  44% (22/49)        
remote: Counting objects:  46% (23/49)        
remote: Counting objects:  48% (24/49)        
remote: Counting objects:  51% (25/49)        
remote: Counting objects:  53% (26/49)        
remote: Counting objects:  55% (27/49)        
remote: Counting objects:  57% (28/49)        
remote: Counting objects:  59% (29/49)        
remote: Counting objects:  61% (30/49)        
remote: Counting objects:  63% (31/49)        
remote: Counting objects:  65% (32/49)        
remote: Counting objects:  67% (33/49)        
remote: Counting objects:  69% (34/49)        
remote: Counting objects:  71% (35/49)        
remote: Counting objects:  73% (36/49)        
remote: Counting objects:  75% (37/49)        
remote: Counting objects:  77% (38/49)        
remote: Counting objects:  79% (39/49)        
remote: Counting objects:  81% (40/49)        
remote: Counting objects:  83% (41/49)        
remote: Counting objects:  85% (42/49)        
remote: Counting objects:  87% (43/49)        
remote: Counting objects:  89% (44/49)        
remote: Counting objects:  91% (45/49)        
remote: Counting objects:  93% (46/49)        
remote: Counting objects:  95% (47/49)        
remote: Counting objects:  97% (48/49)        
remote: Counting objects: 100% (49/49)        
remote: Counting objects: 100% (49/49), done.        
remote: Compressing objects:   4% (1/24)        
remote: Compressing objects:   8% (2/24)        
remote: Compressing objects:  12% (3/24)        
remote: Compressing objects:  16% (4/24)        
remote: Compressing objects:  20% (5/24)        
remote: Compressing objects:  25% (6/24)        
remote: Compressing objects:  29% (7/24)        
remote: Compressing objects:  33% (8/24)        
remote: Compressing objects:  37% (9/24)        
remote: Compressing objects:  41% (10/24)        
remote: Compressing objects:  45% (11/24)        
remote: Compressing objects:  50% (12/24)        
remote: Compressing objects:  54% (13/24)        
remote: Compressing objects:  58% (14/24)        
remote: Compressing objects:  62% (15/24)        
remote: Compressing objects:  66% (16/24)        
remote: Compressing objects:  70% (17/24)        
remote: Compressing objects:  75% (18/24)        
remote: Compressing objects:  79% (19/24)        
remote: Compressing objects:  83% (20/24)        
remote: Compressing objects:  87% (21/24)        
remote: Compressing objects:  91% (22/24)        
remote: Compressing objects:  95% (23/24)        
remote: Compressing objects: 100% (24/24)        
remote: Compressing objects: 100% (24/24), done.        
remote: Total 27 (delta 18), reused 7 (delta 2), pack-reused 0        
From https://github.com/python/cpython
 * branch                  main       -> FETCH_HEAD
Note: switching to 'e5da9ab2c82c6b4e4f8ffa699a9a609ea1bea255'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at e5da9ab2c8 gh-99108: Import SHA2-384/512 from HACL* (#101707)
Switched to and reset branch 'main'

Makefile:2849: warning: overriding recipe for target 'Modules/_hacl/Hacl_Streaming_SHA2.o'
Makefile:2846: warning: ignoring old recipe for target 'Modules/_hacl/Hacl_Streaming_SHA2.o'
../../Objects/obmalloc.c:776:1: warning: always_inline function might not be inlinable [-Wattributes]
  776 | arena_map_get(pymem_block *p, int create)
      | ^~~~~~~~~~~~~

configure: ../../configure --prefix $(PWD)/target/host --with-pydebug --without-pydebug --with-emscripten-target=browser --enable-wasm-dynamic-linking --disable-wasm-pthreads --build=x86_64-pc-linux-gnu --host=wasm32-unknown-emscripten --with-build-python=../build/python
configure: WARNING: using cross tools not prefixed with host triplet
mcc: error: no input files

make: make -j2 all
Makefile:2805: warning: overriding recipe for target 'Modules/_hacl/Hacl_Streaming_SHA2.o'
Makefile:2802: warning: ignoring old recipe for target 'Modules/_hacl/Hacl_Streaming_SHA2.o'
../../Python/initconfig.c:2360:27: warning: format specifies type 'wint_t' (aka 'int') but the argument has type 'wint_t' (aka 'unsigned int') [-Wformat]
    printf(usage_envvars, (wint_t)DELIM, (wint_t)DELIM, PYTHONHOMEHELP);
           ~~~~~~~~~~~~~  ^~~~~~~~~~~~~
../../Python/initconfig.c:145:18: note: format string is defined here
"PYTHONPATH   : '%lc'-separated list of directories prefixed to the\n"
                 ^~~
                 %c
../../Python/initconfig.c:2360:42: warning: format specifies type 'wint_t' (aka 'int') but the argument has type 'wint_t' (aka 'unsigned int') [-Wformat]
    printf(usage_envvars, (wint_t)DELIM, (wint_t)DELIM, PYTHONHOMEHELP);
           ~~~~~~~~~~~~~                 ^~~~~~~~~~~~~
../../Python/initconfig.c:148:58: note: format string is defined here
"PYTHONHOME   : alternate <prefix> directory (or <prefix>%lc<exec_prefix>).\n"
                                                         ^~~
                                                         %c
2 warnings generated.
../../Python/pystate.c:1148:1: warning: unused function 'tstate_is_alive' [-Wunused-function]
tstate_is_alive(PyThreadState *tstate)
^
../../Python/pystate.c:203:1: warning: unused function 'tstate_is_bound' [-Wunused-function]
tstate_is_bound(PyThreadState *tstate)
^
2 warnings generated.
../../Python/pytime.c:297:10: warning: implicit conversion from 'long long' to 'double' changes value from 9223372036854775807 to 9223372036854775808 [-Wimplicit-const-int-float-conversion]
    if (!_Py_InIntegralTypeRange(time_t, intpart)) {
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../Include/internal/pycore_pymath.h:72:45: note: expanded from macro '_Py_InIntegralTypeRange'
    (_Py_IntegralTypeMin(type) <= v && v <= _Py_IntegralTypeMax(type))
                                         ~~ ^~~~~~~~~~~~~~~~~~~~~~~~~
../../Include/internal/pycore_pymath.h:61:88: note: expanded from macro '_Py_IntegralTypeMax'
    (_Py_IS_TYPE_SIGNED(type) ? (((((type)1 << (sizeof(type)*CHAR_BIT - 2)) - 1) << 1) + 1) : ~(type)0)
                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../../Python/pytime.c:352:14: warning: implicit conversion from 'long long' to 'double' changes value from 9223372036854775807 to 9223372036854775808 [-Wimplicit-const-int-float-conversion]
        if (!_Py_InIntegralTypeRange(time_t, intpart)) {
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../Include/internal/pycore_pymath.h:72:45: note: expanded from macro '_Py_InIntegralTypeRange'
    (_Py_IntegralTypeMin(type) <= v && v <= _Py_IntegralTypeMax(type))
                                         ~~ ^~~~~~~~~~~~~~~~~~~~~~~~~
../../Include/internal/pycore_pymath.h:61:88: note: expanded from macro '_Py_IntegralTypeMax'
    (_Py_IS_TYPE_SIGNED(type) ? (((((type)1 << (sizeof(type)*CHAR_BIT - 2)) - 1) << 1) + 1) : ~(type)0)
                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../../Python/pytime.c:518:10: warning: implicit conversion from 'long long' to 'double' changes value from 9223372036854775807 to 9223372036854775808 [-Wimplicit-const-int-float-conversion]
    if (!_Py_InIntegralTypeRange(_PyTime_t, d)) {
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../Include/internal/pycore_pymath.h:72:45: note: expanded from macro '_Py_InIntegralTypeRange'
    (_Py_IntegralTypeMin(type) <= v && v <= _Py_IntegralTypeMax(type))
                                         ~~ ^~~~~~~~~~~~~~~~~~~~~~~~~
../../Include/internal/pycore_pymath.h:61:88: note: expanded from macro '_Py_IntegralTypeMax'
    (_Py_IS_TYPE_SIGNED(type) ? (((((type)1 << (sizeof(type)*CHAR_BIT - 2)) - 1) << 1) + 1) : ~(type)0)
                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
3 warnings generated.
../../Modules/sha256module.c:123:14: warning: comparison of integers of different signs: 'Py_ssize_t' (aka 'long') and 'unsigned int' [-Wsign-compare]
  while (len > UINT32_MAX) {
         ~~~ ^ ~~~~~~~~~~
1 warning generated.
../../Modules/sha512module.c:114:14: warning: comparison of integers of different signs: 'Py_ssize_t' (aka 'long') and 'unsigned int' [-Wsign-compare]
  while (len > UINT32_MAX) {
         ~~~ ^ ~~~~~~~~~~
1 warning generated.
../../Modules/expat/xmlparse.c:3116:9: warning: code will never be executed [-Wunreachable-code]
        parser->m_characterDataHandler(parser->m_handlerArg, parser->m_dataBuf,
        ^~~~~~
../../Modules/expat/xmlparse.c:3115:16: note: silence by adding parentheses to mark code as explicitly dead
      else if (0 && parser->m_characterDataHandler)
               ^
               /* DISABLES CODE */ ( )
../../Modules/expat/xmlparse.c:4059:9: warning: code will never be executed [-Wunreachable-code]
        parser->m_characterDataHandler(parser->m_handlerArg, parser->m_dataBuf,
        ^~~~~~
../../Modules/expat/xmlparse.c:4058:16: note: silence by adding parentheses to mark code as explicitly dead
      else if (0 && parser->m_characterDataHandler)
               ^
               /* DISABLES CODE */ ( )
../../Modules/expat/xmlparse.c:7703:11: warning: format specifies type 'int' but the argument has type 'ptrdiff_t' (aka 'long') [-Wformat]
          bytesMore, (account == XML_ACCOUNT_DIRECT) ? "DIR" : "EXP",
          ^~~~~~~~~
3 warnings generated.
../../Modules/socketmodule.c:4033:33: warning: comparison of integers of different signs: 'unsigned long' and 'long' [-Wsign-compare]
         cmsgh != NULL; cmsgh = CMSG_NXTHDR(&msg, cmsgh)) {
                                ^~~~~~~~~~~~~~~~~~~~~~~~
/opt/buildbot/.emscripten_cache/sysroot/include/sys/socket.h:356:44: note: expanded from macro 'CMSG_NXTHDR'
        __CMSG_LEN(cmsg) + sizeof(struct cmsghdr) >= __MHDR_END(mhdr) - (unsigned char *)(cmsg) \
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../Modules/socketmodule.c:4086:33: warning: comparison of integers of different signs: 'unsigned long' and 'long' [-Wsign-compare]
         cmsgh != NULL; cmsgh = CMSG_NXTHDR(&msg, cmsgh)) {
                                ^~~~~~~~~~~~~~~~~~~~~~~~
/opt/buildbot/.emscripten_cache/sysroot/include/sys/socket.h:356:44: note: expanded from macro 'CMSG_NXTHDR'
        __CMSG_LEN(cmsg) + sizeof(struct cmsghdr) >= __MHDR_END(mhdr) - (unsigned char *)(cmsg) \
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../Modules/socketmodule.c:4710:54: warning: comparison of integers of different signs: 'unsigned long' and 'long' [-Wsign-compare]
            cmsgh = (i == 0) ? CMSG_FIRSTHDR(&msg) : CMSG_NXTHDR(&msg, cmsgh);
                                                     ^~~~~~~~~~~~~~~~~~~~~~~~
/opt/buildbot/.emscripten_cache/sysroot/include/sys/socket.h:356:44: note: expanded from macro 'CMSG_NXTHDR'
        __CMSG_LEN(cmsg) + sizeof(struct cmsghdr) >= __MHDR_END(mhdr) - (unsigned char *)(cmsg) \
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3 warnings generated.
../../Modules/_sqlite/connection.c:2198:19: warning: result of comparison of constant 9223372036854775807 with expression of type 'Py_ssize_t' (aka 'long') is always false [-Wtautological-constant-out-of-range-compare]
    if (data->len > 9223372036854775807) {  // (1 << 63) - 1
        ~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~
1 warning generated.
Created /opt/buildbot/bcannon-wasm/3.x.bcannon-wasm.emscripten-browser/build/build_oot/host/opt/buildbot/bcannon-wasm/3.x.bcannon-wasm.emscripten-browser/build/build_oot/host/target/host/lib/python312.zip (2.9 MiB)
wasm-ld: error: duplicate symbol: Hacl_SHA2_Scalar32_sha512_init
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_create_in_256
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_copy_256
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_init_256
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_update_256
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_finish_256
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_free_256
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_sha256
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_create_in_224
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_init_224
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_update_224
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_finish_224
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_free_224
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_sha224
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_create_in_512
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_copy_512
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_init_512
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_update_512
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_finish_512
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_free_512
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: too many errors emitted, stopping now (use -error-limit=0 to see all errors)
mcc: error: '/opt/emsdk/upstream/bin/wasm-ld -o python.wasm --whole-archive Programs/python.o Modules/getbuildinfo.o Parser/token.o Parser/pegen.o Parser/pegen_errors.o Parser/action_helpers.o Parser/parser.o Parser/string_parser.o Parser/peg_api.o Parser/myreadline.o Parser/tokenizer.o Objects/abstract.o Objects/boolobject.o Objects/bytes_methods.o Objects/bytearrayobject.o Objects/bytesobject.o Objects/call.o Objects/capsule.o Objects/cellobject.o Objects/classobject.o Objects/codeobject.o Objects/complexobject.o Objects/descrobject.o Objects/enumobject.o Objects/exceptions.o Objects/genericaliasobject.o Objects/genobject.o Objects/fileobject.o Objects/floatobject.o Objects/frameobject.o Objects/funcobject.o Objects/interpreteridobject.o Objects/iterobject.o Objects/listobject.o Objects/longobject.o Objects/dictobject.o Objects/odictobject.o Objects/memoryobject.o Objects/methodobject.o Objects/moduleobject.o Objects/namespaceobject.o Objects/object.o Objects/obmalloc.o Objects/picklebufobject.o Objects/rangeobject.o Objects/setobject.o Objects/sliceobject.o Objects/structseq.o Objects/tupleobject.o Objects/typeobject.o Objects/unicodeobject.o Objects/unicodectype.o Objects/unionobject.o Objects/weakrefobject.o Python/_warnings.o Python/Python-ast.o Python/Python-tokenize.o Python/asdl.o Python/ast.o Python/ast_opt.o Python/ast_unparse.o Python/bltinmodule.o Python/ceval.o Python/codecs.o Python/compile.o Python/context.o Python/dynamic_annotations.o Python/errors.o Python/frame.o Python/frozenmain.o Python/future.o Python/getargs.o Python/getcompiler.o Python/getcopyright.o Python/getplatform.o Python/getversion.o Python/ceval_gil.o Python/hamt.o Python/hashtable.o Python/import.o Python/importdl.o Python/initconfig.o Python/intrinsics.o Python/marshal.o Python/modsupport.o Python/mysnprintf.o Python/mystrtoul.o Python/pathconfig.o Python/preconfig.o Python/pyarena.o Python/pyctype.o Python/pyfpe.o Python/pyhash.o Python/pylifecycle.o Python/pymath.o Python/pystate.o Python/pythonrun.o Python/pytime.o Python/bootstrap_hash.o Python/specialize.o Python/structmember.o Python/symtable.o Python/sysmodule.o Python/thread.o Python/traceback.o Python/getopt.o Python/pystrcmp.o Python/pystrtod.o Python/pystrhex.o Python/dtoa.o Python/formatter_unicode.o Python/fileutils.o Python/suggestions.o Python/perf_trampoline.o Python/dynload_shlib.o Python/emscripten_signal.o Modules/config.o Modules/main.o Modules/gcmodule.o Modules/arraymodule.o Modules/_asynciomodule.o Modules/_bisectmodule.o Modules/_contextvarsmodule.o Modules/_csv.o Modules/_heapqmodule.o Modules/_json.o Modules/_lsprof.o Modules/rotatingtree.o Modules/_opcode.o Modules/_pickle.o Modules/_queuemodule.o Modules/_randommodule.o Modules/_struct.o Modules/_typingmodule.o Modules/_zoneinfo.o Modules/audioop.o Modules/mathmodule.o Modules/cmathmodule.o Modules/_statisticsmodule.o Modules/_datetimemodule.o Modules/_decimal/_decimal.o Modules/binascii.o Modules/_bz2module.o Modules/zlibmodule.o Modules/md5module.o Modules/sha1module.o Modules/sha256module.o Modules/_hacl/Hacl_Streaming_SHA2.o Modules/sha512module.o Modules/_hacl/Hacl_Streaming_SHA2.o Modules/_sha3/sha3module.o Modules/_blake2/blake2module.o Modules/_blake2/blake2b_impl.o Modules/_blake2/blake2s_impl.o Modules/pyexpat.o Modules/_elementtree.o Modules/cjkcodecs/_codecs_cn.o Modules/cjkcodecs/_codecs_hk.o Modules/cjkcodecs/_codecs_iso2022.o Modules/cjkcodecs/_codecs_jp.o Modules/cjkcodecs/_codecs_kr.o Modules/cjkcodecs/_codecs_tw.o Modules/cjkcodecs/multibytecodec.o Modules/unicodedata.o Modules/_cryptmodule.o Modules/mmapmodule.o Modules/selectmodule.o Modules/socketmodule.o Modules/_sqlite/blob.o Modules/_sqlite/connection.o Modules/_sqlite/cursor.o Modules/_sqlite/microprotocols.o Modules/_sqlite/module.o Modules/_sqlite/prepare_protocol.o Modules/_sqlite/row.o Modules/_sqlite/statement.o Modules/_sqlite/util.o Modules/atexitmodule.o Modules/faulthandler.o Modules/posixmodule.o Modules/signalmodule.o Modules/_tracemalloc.o Modules/_codecsmodule.o Modules/_collectionsmodule.o Modules/errnomodule.o Modul
s/_io/_iomodule.o Modules/_io/iobase.o Modules/_io/fileio.o Modules/_io/bytesio.o Modules/_io/bufferedio.o Modules/_io/textio.o Modules/_io/stringio.o Modules/itertoolsmodule.o Modules/_sre/sre.o Modules/_threadmodule.o Modules/timemodule.o Modules/_weakref.o Modules/_abc.o Modules/_functoolsmodule.o Modules/_localemodule.o Modules/_operator.o Modules/_stat.o Modules/symtablemodule.o Python/deepfreeze/deepfreeze.o Modules/getpath.o Python/frozen.o Modules/_decimal/libmpdec/libmpdec.a Modules/expat/libexpat.a -L/opt/buildbot/.emscripten_cache/sysroot/lib/wasm32-emscripten/pic /opt/buildbot/.emscripten_cache/sysroot/lib/wasm32-emscripten/pic/libz.a /opt/buildbot/.emscripten_cache/sysroot/lib/wasm32-emscripten/pic/libbz2.a /opt/buildbot/.emscripten_cache/sysroot/lib/wasm32-emscripten/pic/libsqlite3.a -lGL -lal -lhtml5 -lstubs -lnoexit -lc -ldlmalloc -lcompiler_rt -lc++-noexcept -lc++abi-noexcept -lsockets --no-whole-archive -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr --import-undefined --import-memory --strip-debug --export-dynamic --export-if-defined=main --export-if-defined=__start_em_asm --export-if-defined=__stop_em_asm --export-if-defined=__start_em_js --export-if-defined=__stop_em_js --export-if-defined=__main_argc_argv --export-if-defined=__wasm_apply_data_relocs --export=setThrew --export=stackSave --export=stackRestore --export=stackAlloc --export=__wasm_call_ctors --export=__errno_location --export=getTempRet0 --export=setTempRet0 --export=malloc --export=free --export=raise --export=fileno --export=memcpy --export=ntohs --export=htons --export=__dl_seterr --export=saveSetjmp --export=htonl --export=sleep --export=memcmp --export=__cxa_is_pointer_type --export=__cxa_can_catch --export=emscripten_builtin_memalign --experimental-pic -pie -z stack-size=5242880 --initial-memory=20971520 --no-entry --max-memory=2147483648' failed (returned 1)
make: *** [Makefile:833: python.js] Error 1
mmake: error: 'make -j2 all' failed (returned 2)

Makefile:2849: warning: overriding recipe for target 'Modules/_hacl/Hacl_Streaming_SHA2.o'
Makefile:2846: warning: ignoring old recipe for target 'Modules/_hacl/Hacl_Streaming_SHA2.o'

Makefile:2805: warning: overriding recipe for target 'Modules/_hacl/Hacl_Streaming_SHA2.o'
Makefile:2802: warning: ignoring old recipe for target 'Modules/_hacl/Hacl_Streaming_SHA2.o'

@bedevere-bot
Copy link

⚠️⚠️⚠️ Buildbot failure ⚠️⚠️⚠️

Hi! The buildbot wasm32-emscripten node (dynamic linking) 3.x has failed when building commit e5da9ab.

What do you need to do:

  1. Don't panic.
  2. Check the buildbot page in the devguide if you don't know what the buildbots are or how they work.
  3. Go to the page of the buildbot that failed (https://buildbot.python.org/all/#builders/1056/builds/1363) and take a look at the build logs.
  4. Check if the failure is related to this commit (e5da9ab) or if it is a false positive.
  5. If the failure is related to this commit, please, reflect that on the issue and make a new Pull Request with a fix.

You can take a look at the buildbot page here:

https://buildbot.python.org/all/#builders/1056/builds/1363

Summary of the results of the build (if available):

Click to see traceback logs
remote: Enumerating objects: 49, done.        
remote: Counting objects:   2% (1/49)        
remote: Counting objects:   4% (2/49)        
remote: Counting objects:   6% (3/49)        
remote: Counting objects:   8% (4/49)        
remote: Counting objects:  10% (5/49)        
remote: Counting objects:  12% (6/49)        
remote: Counting objects:  14% (7/49)        
remote: Counting objects:  16% (8/49)        
remote: Counting objects:  18% (9/49)        
remote: Counting objects:  20% (10/49)        
remote: Counting objects:  22% (11/49)        
remote: Counting objects:  24% (12/49)        
remote: Counting objects:  26% (13/49)        
remote: Counting objects:  28% (14/49)        
remote: Counting objects:  30% (15/49)        
remote: Counting objects:  32% (16/49)        
remote: Counting objects:  34% (17/49)        
remote: Counting objects:  36% (18/49)        
remote: Counting objects:  38% (19/49)        
remote: Counting objects:  40% (20/49)        
remote: Counting objects:  42% (21/49)        
remote: Counting objects:  44% (22/49)        
remote: Counting objects:  46% (23/49)        
remote: Counting objects:  48% (24/49)        
remote: Counting objects:  51% (25/49)        
remote: Counting objects:  53% (26/49)        
remote: Counting objects:  55% (27/49)        
remote: Counting objects:  57% (28/49)        
remote: Counting objects:  59% (29/49)        
remote: Counting objects:  61% (30/49)        
remote: Counting objects:  63% (31/49)        
remote: Counting objects:  65% (32/49)        
remote: Counting objects:  67% (33/49)        
remote: Counting objects:  69% (34/49)        
remote: Counting objects:  71% (35/49)        
remote: Counting objects:  73% (36/49)        
remote: Counting objects:  75% (37/49)        
remote: Counting objects:  77% (38/49)        
remote: Counting objects:  79% (39/49)        
remote: Counting objects:  81% (40/49)        
remote: Counting objects:  83% (41/49)        
remote: Counting objects:  85% (42/49)        
remote: Counting objects:  87% (43/49)        
remote: Counting objects:  89% (44/49)        
remote: Counting objects:  91% (45/49)        
remote: Counting objects:  93% (46/49)        
remote: Counting objects:  95% (47/49)        
remote: Counting objects:  97% (48/49)        
remote: Counting objects: 100% (49/49)        
remote: Counting objects: 100% (49/49), done.        
remote: Compressing objects:   4% (1/24)        
remote: Compressing objects:   8% (2/24)        
remote: Compressing objects:  12% (3/24)        
remote: Compressing objects:  16% (4/24)        
remote: Compressing objects:  20% (5/24)        
remote: Compressing objects:  25% (6/24)        
remote: Compressing objects:  29% (7/24)        
remote: Compressing objects:  33% (8/24)        
remote: Compressing objects:  37% (9/24)        
remote: Compressing objects:  41% (10/24)        
remote: Compressing objects:  45% (11/24)        
remote: Compressing objects:  50% (12/24)        
remote: Compressing objects:  54% (13/24)        
remote: Compressing objects:  58% (14/24)        
remote: Compressing objects:  62% (15/24)        
remote: Compressing objects:  66% (16/24)        
remote: Compressing objects:  70% (17/24)        
remote: Compressing objects:  75% (18/24)        
remote: Compressing objects:  79% (19/24)        
remote: Compressing objects:  83% (20/24)        
remote: Compressing objects:  87% (21/24)        
remote: Compressing objects:  91% (22/24)        
remote: Compressing objects:  95% (23/24)        
remote: Compressing objects: 100% (24/24)        
remote: Compressing objects: 100% (24/24), done.        
remote: Total 27 (delta 18), reused 7 (delta 2), pack-reused 0        
From https://github.com/python/cpython
 * branch                  main       -> FETCH_HEAD
Note: switching to 'e5da9ab2c82c6b4e4f8ffa699a9a609ea1bea255'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at e5da9ab2c8 gh-99108: Import SHA2-384/512 from HACL* (#101707)
Switched to and reset branch 'main'

Makefile:2849: warning: overriding recipe for target 'Modules/_hacl/Hacl_Streaming_SHA2.o'
Makefile:2846: warning: ignoring old recipe for target 'Modules/_hacl/Hacl_Streaming_SHA2.o'
../../Objects/obmalloc.c:776:1: warning: always_inline function might not be inlinable [-Wattributes]
  776 | arena_map_get(pymem_block *p, int create)
      | ^~~~~~~~~~~~~

configure: ../../configure --prefix $(PWD)/target/host --with-pydebug --without-pydebug --with-emscripten-target=node --enable-wasm-dynamic-linking --disable-wasm-pthreads --build=x86_64-pc-linux-gnu --host=wasm32-unknown-emscripten --with-build-python=../build/python
configure: WARNING: using cross tools not prefixed with host triplet
mcc: error: no input files

make: make -j2 all
Makefile:2805: warning: overriding recipe for target 'Modules/_hacl/Hacl_Streaming_SHA2.o'
Makefile:2802: warning: ignoring old recipe for target 'Modules/_hacl/Hacl_Streaming_SHA2.o'
../../Python/initconfig.c:2360:27: warning: format specifies type 'wint_t' (aka 'int') but the argument has type 'wint_t' (aka 'unsigned int') [-Wformat]
    printf(usage_envvars, (wint_t)DELIM, (wint_t)DELIM, PYTHONHOMEHELP);
           ~~~~~~~~~~~~~  ^~~~~~~~~~~~~
../../Python/initconfig.c:145:18: note: format string is defined here
"PYTHONPATH   : '%lc'-separated list of directories prefixed to the\n"
                 ^~~
                 %c
../../Python/initconfig.c:2360:42: warning: format specifies type 'wint_t' (aka 'int') but the argument has type 'wint_t' (aka 'unsigned int') [-Wformat]
    printf(usage_envvars, (wint_t)DELIM, (wint_t)DELIM, PYTHONHOMEHELP);
           ~~~~~~~~~~~~~                 ^~~~~~~~~~~~~
../../Python/initconfig.c:148:58: note: format string is defined here
"PYTHONHOME   : alternate <prefix> directory (or <prefix>%lc<exec_prefix>).\n"
                                                         ^~~
                                                         %c
2 warnings generated.
../../Python/pystate.c:1148:1: warning: unused function 'tstate_is_alive' [-Wunused-function]
tstate_is_alive(PyThreadState *tstate)
^
../../Python/pystate.c:203:1: warning: unused function 'tstate_is_bound' [-Wunused-function]
tstate_is_bound(PyThreadState *tstate)
^
2 warnings generated.
../../Python/pytime.c:297:10: warning: implicit conversion from 'long long' to 'double' changes value from 9223372036854775807 to 9223372036854775808 [-Wimplicit-const-int-float-conversion]
    if (!_Py_InIntegralTypeRange(time_t, intpart)) {
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../Include/internal/pycore_pymath.h:72:45: note: expanded from macro '_Py_InIntegralTypeRange'
    (_Py_IntegralTypeMin(type) <= v && v <= _Py_IntegralTypeMax(type))
                                         ~~ ^~~~~~~~~~~~~~~~~~~~~~~~~
../../Include/internal/pycore_pymath.h:61:88: note: expanded from macro '_Py_IntegralTypeMax'
    (_Py_IS_TYPE_SIGNED(type) ? (((((type)1 << (sizeof(type)*CHAR_BIT - 2)) - 1) << 1) + 1) : ~(type)0)
                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../../Python/pytime.c:352:14: warning: implicit conversion from 'long long' to 'double' changes value from 9223372036854775807 to 9223372036854775808 [-Wimplicit-const-int-float-conversion]
        if (!_Py_InIntegralTypeRange(time_t, intpart)) {
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../Include/internal/pycore_pymath.h:72:45: note: expanded from macro '_Py_InIntegralTypeRange'
    (_Py_IntegralTypeMin(type) <= v && v <= _Py_IntegralTypeMax(type))
                                         ~~ ^~~~~~~~~~~~~~~~~~~~~~~~~
../../Include/internal/pycore_pymath.h:61:88: note: expanded from macro '_Py_IntegralTypeMax'
    (_Py_IS_TYPE_SIGNED(type) ? (((((type)1 << (sizeof(type)*CHAR_BIT - 2)) - 1) << 1) + 1) : ~(type)0)
                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../../Python/pytime.c:518:10: warning: implicit conversion from 'long long' to 'double' changes value from 9223372036854775807 to 9223372036854775808 [-Wimplicit-const-int-float-conversion]
    if (!_Py_InIntegralTypeRange(_PyTime_t, d)) {
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../Include/internal/pycore_pymath.h:72:45: note: expanded from macro '_Py_InIntegralTypeRange'
    (_Py_IntegralTypeMin(type) <= v && v <= _Py_IntegralTypeMax(type))
                                         ~~ ^~~~~~~~~~~~~~~~~~~~~~~~~
../../Include/internal/pycore_pymath.h:61:88: note: expanded from macro '_Py_IntegralTypeMax'
    (_Py_IS_TYPE_SIGNED(type) ? (((((type)1 << (sizeof(type)*CHAR_BIT - 2)) - 1) << 1) + 1) : ~(type)0)
                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
3 warnings generated.
../../Modules/sha256module.c:123:14: warning: comparison of integers of different signs: 'Py_ssize_t' (aka 'long') and 'unsigned int' [-Wsign-compare]
  while (len > UINT32_MAX) {
         ~~~ ^ ~~~~~~~~~~
1 warning generated.
../../Modules/sha512module.c:114:14: warning: comparison of integers of different signs: 'Py_ssize_t' (aka 'long') and 'unsigned int' [-Wsign-compare]
  while (len > UINT32_MAX) {
         ~~~ ^ ~~~~~~~~~~
1 warning generated.
../../Modules/expat/xmlparse.c:3116:9: warning: code will never be executed [-Wunreachable-code]
        parser->m_characterDataHandler(parser->m_handlerArg, parser->m_dataBuf,
        ^~~~~~
../../Modules/expat/xmlparse.c:3115:16: note: silence by adding parentheses to mark code as explicitly dead
      else if (0 && parser->m_characterDataHandler)
               ^
               /* DISABLES CODE */ ( )
../../Modules/expat/xmlparse.c:4059:9: warning: code will never be executed [-Wunreachable-code]
        parser->m_characterDataHandler(parser->m_handlerArg, parser->m_dataBuf,
        ^~~~~~
../../Modules/expat/xmlparse.c:4058:16: note: silence by adding parentheses to mark code as explicitly dead
      else if (0 && parser->m_characterDataHandler)
               ^
               /* DISABLES CODE */ ( )
../../Modules/expat/xmlparse.c:7703:11: warning: format specifies type 'int' but the argument has type 'ptrdiff_t' (aka 'long') [-Wformat]
          bytesMore, (account == XML_ACCOUNT_DIRECT) ? "DIR" : "EXP",
          ^~~~~~~~~
3 warnings generated.
../../Modules/socketmodule.c:4033:33: warning: comparison of integers of different signs: 'unsigned long' and 'long' [-Wsign-compare]
         cmsgh != NULL; cmsgh = CMSG_NXTHDR(&msg, cmsgh)) {
                                ^~~~~~~~~~~~~~~~~~~~~~~~
/opt/buildbot/.emscripten_cache/sysroot/include/sys/socket.h:356:44: note: expanded from macro 'CMSG_NXTHDR'
        __CMSG_LEN(cmsg) + sizeof(struct cmsghdr) >= __MHDR_END(mhdr) - (unsigned char *)(cmsg) \
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../Modules/socketmodule.c:4086:33: warning: comparison of integers of different signs: 'unsigned long' and 'long' [-Wsign-compare]
         cmsgh != NULL; cmsgh = CMSG_NXTHDR(&msg, cmsgh)) {
                                ^~~~~~~~~~~~~~~~~~~~~~~~
/opt/buildbot/.emscripten_cache/sysroot/include/sys/socket.h:356:44: note: expanded from macro 'CMSG_NXTHDR'
        __CMSG_LEN(cmsg) + sizeof(struct cmsghdr) >= __MHDR_END(mhdr) - (unsigned char *)(cmsg) \
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../Modules/socketmodule.c:4710:54: warning: comparison of integers of different signs: 'unsigned long' and 'long' [-Wsign-compare]
            cmsgh = (i == 0) ? CMSG_FIRSTHDR(&msg) : CMSG_NXTHDR(&msg, cmsgh);
                                                     ^~~~~~~~~~~~~~~~~~~~~~~~
/opt/buildbot/.emscripten_cache/sysroot/include/sys/socket.h:356:44: note: expanded from macro 'CMSG_NXTHDR'
        __CMSG_LEN(cmsg) + sizeof(struct cmsghdr) >= __MHDR_END(mhdr) - (unsigned char *)(cmsg) \
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3 warnings generated.
../../Modules/_sqlite/connection.c:2198:19: warning: result of comparison of constant 9223372036854775807 with expression of type 'Py_ssize_t' (aka 'long') is always false [-Wtautological-constant-out-of-range-compare]
    if (data->len > 9223372036854775807) {  // (1 << 63) - 1
        ~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~
1 warning generated.
wasm-ld: error: duplicate symbol: Hacl_SHA2_Scalar32_sha512_init
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_create_in_256
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_copy_256
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_init_256
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_update_256
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_finish_256
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_free_256
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_sha256
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_create_in_224
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_init_224
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_update_224
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_finish_224
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_free_224
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_sha224
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_create_in_512
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_copy_512
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_init_512
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_update_512
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_finish_512
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_free_512
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: too many errors emitted, stopping now (use -error-limit=0 to see all errors)
mcc: error: '/opt/emsdk/upstream/bin/wasm-ld -o python.wasm --whole-archive Programs/python.o Modules/getbuildinfo.o Parser/token.o Parser/pegen.o Parser/pegen_errors.o Parser/action_helpers.o Parser/parser.o Parser/string_parser.o Parser/peg_api.o Parser/myreadline.o Parser/tokenizer.o Objects/abstract.o Objects/boolobject.o Objects/bytes_methods.o Objects/bytearrayobject.o Objects/bytesobject.o Objects/call.o Objects/capsule.o Objects/cellobject.o Objects/classobject.o Objects/codeobject.o Objects/complexobject.o Objects/descrobject.o Objects/enumobject.o Objects/exceptions.o Objects/genericaliasobject.o Objects/genobject.o Objects/fileobject.o Objects/floatobject.o Objects/frameobject.o Objects/funcobject.o Objects/interpreteridobject.o Objects/iterobject.o Objects/listobject.o Objects/longobject.o Objects/dictobject.o Objects/odictobject.o Objects/memoryobject.o Objects/methodobject.o Objects/moduleobject.o Objects/namespaceobject.o Objects/object.o Objects/obmalloc.o Objects/picklebufobject.o Objects/rangeobject.o Objects/setobject.o Objects/sliceobject.o Objects/structseq.o Objects/tupleobject.o Objects/typeobject.o Objects/unicodeobject.o Objects/unicodectype.o Objects/unionobject.o Objects/weakrefobject.o Python/_warnings.o Python/Python-ast.o Python/Python-tokenize.o Python/asdl.o Python/ast.o Python/ast_opt.o Python/ast_unparse.o Python/bltinmodule.o Python/ceval.o Python/codecs.o Python/compile.o Python/context.o Python/dynamic_annotations.o Python/errors.o Python/frame.o Python/frozenmain.o Python/future.o Python/getargs.o Python/getcompiler.o Python/getcopyright.o Python/getplatform.o Python/getversion.o Python/ceval_gil.o Python/hamt.o Python/hashtable.o Python/import.o Python/importdl.o Python/initconfig.o Python/intrinsics.o Python/marshal.o Python/modsupport.o Python/mysnprintf.o Python/mystrtoul.o Python/pathconfig.o Python/preconfig.o Python/pyarena.o Python/pyctype.o Python/pyfpe.o Python/pyhash.o Python/pylifecycle.o Python/pymath.o Python/pystate.o Python/pythonrun.o Python/pytime.o Python/bootstrap_hash.o Python/specialize.o Python/structmember.o Python/symtable.o Python/sysmodule.o Python/thread.o Python/traceback.o Python/getopt.o Python/pystrcmp.o Python/pystrtod.o Python/pystrhex.o Python/dtoa.o Python/formatter_unicode.o Python/fileutils.o Python/suggestions.o Python/perf_trampoline.o Python/dynload_shlib.o Python/emscripten_signal.o Modules/config.o Modules/main.o Modules/gcmodule.o Modules/arraymodule.o Modules/_asynciomodule.o Modules/_bisectmodule.o Modules/_contextvarsmodule.o Modules/_csv.o Modules/_heapqmodule.o Modules/_json.o Modules/_lsprof.o Modules/rotatingtree.o Modules/_opcode.o Modules/_pickle.o Modules/_queuemodule.o Modules/_randommodule.o Modules/_struct.o Modules/_typingmodule.o Modules/_zoneinfo.o Modules/audioop.o Modules/mathmodule.o Modules/cmathmodule.o Modules/_statisticsmodule.o Modules/_datetimemodule.o Modules/_decimal/_decimal.o Modules/binascii.o Modules/_bz2module.o Modules/zlibmodule.o Modules/md5module.o Modules/sha1module.o Modules/sha256module.o Modules/_hacl/Hacl_Streaming_SHA2.o Modules/sha512module.o Modules/_hacl/Hacl_Streaming_SHA2.o Modules/_sha3/sha3module.o Modules/_blake2/blake2module.o Modules/_blake2/blake2b_impl.o Modules/_blake2/blake2s_impl.o Modules/pyexpat.o Modules/_elementtree.o Modules/cjkcodecs/_codecs_cn.o Modules/cjkcodecs/_codecs_hk.o Modules/cjkcodecs/_codecs_iso2022.o Modules/cjkcodecs/_codecs_jp.o Modules/cjkcodecs/_codecs_kr.o Modules/cjkcodecs/_codecs_tw.o Modules/cjkcodecs/multibytecodec.o Modules/unicodedata.o Modules/_cryptmodule.o Modules/mmapmodule.o Modules/selectmodule.o Modules/socketmodule.o Modules/termios.o Modules/_sqlite/blob.o Modules/_sqlite/connection.o Modules/_sqlite/cursor.o Modules/_sqlite/microprotocols.o Modules/_sqlite/module.o Modules/_sqlite/prepare_protocol.o Modules/_sqlite/row.o Modules/_sqlite/statement.o Modules/_sqlite/util.o Modules/xxsubtype.o Modules/_xxtestfuzz/_xxtestfuzz.o Modules/_xxtestfuzz/fuzzer.o Modules/_testbuffer.o Modules/_testinternalcapi.o Modules/_testcapimodule.o Modules/_testcapi
vectorcall.o Modules/_testcapi/vectorcall_limited.o Modules/_testcapi/heaptype.o Modules/_testcapi/unicode.o Modules/_testcapi/getargs.o Modules/_testcapi/pytime.o Modules/_testcapi/datetime.o Modules/_testcapi/docstring.o Modules/_testcapi/mem.o Modules/_testcapi/watchers.o Modules/_testcapi/long.o Modules/_testcapi/float.o Modules/_testcapi/structmember.o Modules/_testclinic.o Modules/atexitmodule.o Modules/faulthandler.o Modules/posixmodule.o Modules/signalmodule.o Modules/_tracemalloc.o Modules/_codecsmodule.o Modules/_collectionsmodule.o Modules/errnomodule.o Modules/_io/_iomodule.o Modules/_io/iobase.o Modules/_io/fileio.o Modules/_io/bytesio.o Modules/_io/bufferedio.o Modules/_io/textio.o Modules/_io/stringio.o Modules/itertoolsmodule.o Modules/_sre/sre.o Modules/_threadmodule.o Modules/timemodule.o Modules/_weakref.o Modules/_abc.o Modules/_functoolsmodule.o Modules/_localemodule.o Modules/_operator.o Modules/_stat.o Modules/symtablemodule.o Python/deepfreeze/deepfreeze.o Modules/getpath.o Python/frozen.o Modules/_decimal/libmpdec/libmpdec.a Modules/expat/libexpat.a -L/opt/buildbot/.emscripten_cache/sysroot/lib/wasm32-emscripten/pic /opt/buildbot/.emscripten_cache/sysroot/lib/wasm32-emscripten/pic/libsqlite3.a /opt/buildbot/.emscripten_cache/sysroot/lib/wasm32-emscripten/pic/libz.a /opt/buildbot/.emscripten_cache/sysroot/lib/wasm32-emscripten/pic/libbz2.a -lGL -lal -lhtml5 -lstubs -lc -ldlmalloc -lcompiler_rt -lc++-noexcept -lc++abi-noexcept -lsockets --no-whole-archive -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr --import-undefined --import-memory --strip-debug --export-dynamic --export-if-defined=main --export-if-defined=__start_em_asm --export-if-defined=__stop_em_asm --export-if-defined=__start_em_js --export-if-defined=__stop_em_js --export-if-defined=__main_argc_argv --export-if-defined=__wasm_apply_data_relocs --export-if-defined=fflush --export=setThrew --export=stackSave --export=stackRestore --export=stackAlloc --export=__wasm_call_ctors --export=__errno_location --export=getTempRet0 --export=setTempRet0 --export=__funcs_on_exit --export=malloc --export=free --export=raise --export=fileno --export=memcpy --export=ntohs --export=htons --export=__dl_seterr --export=saveSetjmp --export=htonl --export=sleep --export=memcmp --export=__cxa_is_pointer_type --export=__cxa_can_catch --export=emscripten_builtin_memalign --experimental-pic -pie -z stack-size=5242880 --initial-memory=20971520 --no-entry --max-memory=2147483648' failed (returned 1)
make: *** [Makefile:833: python.js] Error 1
mmake: error: 'make -j2 all' failed (returned 2)

Makefile:2849: warning: overriding recipe for target 'Modules/_hacl/Hacl_Streaming_SHA2.o'
Makefile:2846: warning: ignoring old recipe for target 'Modules/_hacl/Hacl_Streaming_SHA2.o'

Makefile:2805: warning: overriding recipe for target 'Modules/_hacl/Hacl_Streaming_SHA2.o'
Makefile:2802: warning: ignoring old recipe for target 'Modules/_hacl/Hacl_Streaming_SHA2.o'

@bedevere-bot
Copy link

⚠️⚠️⚠️ Buildbot failure ⚠️⚠️⚠️

Hi! The buildbot wasm32-wasi 3.x has failed when building commit e5da9ab.

What do you need to do:

  1. Don't panic.
  2. Check the buildbot page in the devguide if you don't know what the buildbots are or how they work.
  3. Go to the page of the buildbot that failed (https://buildbot.python.org/all/#builders/1046/builds/1401) and take a look at the build logs.
  4. Check if the failure is related to this commit (e5da9ab) or if it is a false positive.
  5. If the failure is related to this commit, please, reflect that on the issue and make a new Pull Request with a fix.

You can take a look at the buildbot page here:

https://buildbot.python.org/all/#builders/1046/builds/1401

Summary of the results of the build (if available):

Click to see traceback logs
remote: Enumerating objects: 49, done.        
remote: Counting objects:   2% (1/49)        
remote: Counting objects:   4% (2/49)        
remote: Counting objects:   6% (3/49)        
remote: Counting objects:   8% (4/49)        
remote: Counting objects:  10% (5/49)        
remote: Counting objects:  12% (6/49)        
remote: Counting objects:  14% (7/49)        
remote: Counting objects:  16% (8/49)        
remote: Counting objects:  18% (9/49)        
remote: Counting objects:  20% (10/49)        
remote: Counting objects:  22% (11/49)        
remote: Counting objects:  24% (12/49)        
remote: Counting objects:  26% (13/49)        
remote: Counting objects:  28% (14/49)        
remote: Counting objects:  30% (15/49)        
remote: Counting objects:  32% (16/49)        
remote: Counting objects:  34% (17/49)        
remote: Counting objects:  36% (18/49)        
remote: Counting objects:  38% (19/49)        
remote: Counting objects:  40% (20/49)        
remote: Counting objects:  42% (21/49)        
remote: Counting objects:  44% (22/49)        
remote: Counting objects:  46% (23/49)        
remote: Counting objects:  48% (24/49)        
remote: Counting objects:  51% (25/49)        
remote: Counting objects:  53% (26/49)        
remote: Counting objects:  55% (27/49)        
remote: Counting objects:  57% (28/49)        
remote: Counting objects:  59% (29/49)        
remote: Counting objects:  61% (30/49)        
remote: Counting objects:  63% (31/49)        
remote: Counting objects:  65% (32/49)        
remote: Counting objects:  67% (33/49)        
remote: Counting objects:  69% (34/49)        
remote: Counting objects:  71% (35/49)        
remote: Counting objects:  73% (36/49)        
remote: Counting objects:  75% (37/49)        
remote: Counting objects:  77% (38/49)        
remote: Counting objects:  79% (39/49)        
remote: Counting objects:  81% (40/49)        
remote: Counting objects:  83% (41/49)        
remote: Counting objects:  85% (42/49)        
remote: Counting objects:  87% (43/49)        
remote: Counting objects:  89% (44/49)        
remote: Counting objects:  91% (45/49)        
remote: Counting objects:  93% (46/49)        
remote: Counting objects:  95% (47/49)        
remote: Counting objects:  97% (48/49)        
remote: Counting objects: 100% (49/49)        
remote: Counting objects: 100% (49/49), done.        
remote: Compressing objects:   4% (1/24)        
remote: Compressing objects:   8% (2/24)        
remote: Compressing objects:  12% (3/24)        
remote: Compressing objects:  16% (4/24)        
remote: Compressing objects:  20% (5/24)        
remote: Compressing objects:  25% (6/24)        
remote: Compressing objects:  29% (7/24)        
remote: Compressing objects:  33% (8/24)        
remote: Compressing objects:  37% (9/24)        
remote: Compressing objects:  41% (10/24)        
remote: Compressing objects:  45% (11/24)        
remote: Compressing objects:  50% (12/24)        
remote: Compressing objects:  54% (13/24)        
remote: Compressing objects:  58% (14/24)        
remote: Compressing objects:  62% (15/24)        
remote: Compressing objects:  66% (16/24)        
remote: Compressing objects:  70% (17/24)        
remote: Compressing objects:  75% (18/24)        
remote: Compressing objects:  79% (19/24)        
remote: Compressing objects:  83% (20/24)        
remote: Compressing objects:  87% (21/24)        
remote: Compressing objects:  91% (22/24)        
remote: Compressing objects:  95% (23/24)        
remote: Compressing objects: 100% (24/24)        
remote: Compressing objects: 100% (24/24), done.        
remote: Total 27 (delta 19), reused 6 (delta 2), pack-reused 0        
From https://github.com/python/cpython
 * branch                  main       -> FETCH_HEAD
Note: switching to 'e5da9ab2c82c6b4e4f8ffa699a9a609ea1bea255'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at e5da9ab2c8 gh-99108: Import SHA2-384/512 from HACL* (#101707)
Switched to and reset branch 'main'

Makefile:2849: warning: overriding recipe for target 'Modules/_hacl/Hacl_Streaming_SHA2.o'
Makefile:2846: warning: ignoring old recipe for target 'Modules/_hacl/Hacl_Streaming_SHA2.o'
../../Objects/obmalloc.c:776:1: warning: always_inline function might not be inlinable [-Wattributes]
  776 | arena_map_get(pymem_block *p, int create)
      | ^~~~~~~~~~~~~

configure: WARNING: using cross tools not prefixed with host triplet

Makefile:2794: warning: overriding recipe for target 'Modules/_hacl/Hacl_Streaming_SHA2.o'
Makefile:2791: warning: ignoring old recipe for target 'Modules/_hacl/Hacl_Streaming_SHA2.o'
../../Python/pystate.c:1148:1: warning: unused function 'tstate_is_alive' [-Wunused-function]
tstate_is_alive(PyThreadState *tstate)
^
../../Python/pystate.c:203:1: warning: unused function 'tstate_is_bound' [-Wunused-function]
tstate_is_bound(PyThreadState *tstate)
^
2 warnings generated.
../../Python/pytime.c:297:10: warning: implicit conversion from 'long long' to 'double' changes value from 9223372036854775807 to 9223372036854775808 [-Wimplicit-const-int-float-conversion]
    if (!_Py_InIntegralTypeRange(time_t, intpart)) {
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../Include/internal/pycore_pymath.h:72:45: note: expanded from macro '_Py_InIntegralTypeRange'
    (_Py_IntegralTypeMin(type) <= v && v <= _Py_IntegralTypeMax(type))
                                         ~~ ^~~~~~~~~~~~~~~~~~~~~~~~~
../../Include/internal/pycore_pymath.h:61:88: note: expanded from macro '_Py_IntegralTypeMax'
    (_Py_IS_TYPE_SIGNED(type) ? (((((type)1 << (sizeof(type)*CHAR_BIT - 2)) - 1) << 1) + 1) : ~(type)0)
                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../../Python/pytime.c:352:14: warning: implicit conversion from 'long long' to 'double' changes value from 9223372036854775807 to 9223372036854775808 [-Wimplicit-const-int-float-conversion]
        if (!_Py_InIntegralTypeRange(time_t, intpart)) {
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../Include/internal/pycore_pymath.h:72:45: note: expanded from macro '_Py_InIntegralTypeRange'
    (_Py_IntegralTypeMin(type) <= v && v <= _Py_IntegralTypeMax(type))
                                         ~~ ^~~~~~~~~~~~~~~~~~~~~~~~~
../../Include/internal/pycore_pymath.h:61:88: note: expanded from macro '_Py_IntegralTypeMax'
    (_Py_IS_TYPE_SIGNED(type) ? (((((type)1 << (sizeof(type)*CHAR_BIT - 2)) - 1) << 1) + 1) : ~(type)0)
                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../../Python/pytime.c:518:10: warning: implicit conversion from 'long long' to 'double' changes value from 9223372036854775807 to 9223372036854775808 [-Wimplicit-const-int-float-conversion]
    if (!_Py_InIntegralTypeRange(_PyTime_t, d)) {
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../Include/internal/pycore_pymath.h:72:45: note: expanded from macro '_Py_InIntegralTypeRange'
    (_Py_IntegralTypeMin(type) <= v && v <= _Py_IntegralTypeMax(type))
                                         ~~ ^~~~~~~~~~~~~~~~~~~~~~~~~
../../Include/internal/pycore_pymath.h:61:88: note: expanded from macro '_Py_IntegralTypeMax'
    (_Py_IS_TYPE_SIGNED(type) ? (((((type)1 << (sizeof(type)*CHAR_BIT - 2)) - 1) << 1) + 1) : ~(type)0)
                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
3 warnings generated.
../../Modules/sha256module.c:123:14: warning: comparison of integers of different signs: 'Py_ssize_t' (aka 'long') and 'unsigned int' [-Wsign-compare]
  while (len > UINT32_MAX) {
         ~~~ ^ ~~~~~~~~~~
1 warning generated.
../../Modules/sha512module.c:114:14: warning: comparison of integers of different signs: 'Py_ssize_t' (aka 'long') and 'unsigned int' [-Wsign-compare]
  while (len > UINT32_MAX) {
         ~~~ ^ ~~~~~~~~~~
1 warning generated.
../../Modules/expat/xmlparse.c:3116:9: warning: code will never be executed [-Wunreachable-code]
        parser->m_characterDataHandler(parser->m_handlerArg, parser->m_dataBuf,
        ^~~~~~
../../Modules/expat/xmlparse.c:3115:16: note: silence by adding parentheses to mark code as explicitly dead
      else if (0 && parser->m_characterDataHandler)
               ^
               /* DISABLES CODE */ ( )
../../Modules/expat/xmlparse.c:4059:9: warning: code will never be executed [-Wunreachable-code]
        parser->m_characterDataHandler(parser->m_handlerArg, parser->m_dataBuf,
        ^~~~~~
../../Modules/expat/xmlparse.c:4058:16: note: silence by adding parentheses to mark code as explicitly dead
      else if (0 && parser->m_characterDataHandler)
               ^
               /* DISABLES CODE */ ( )
../../Modules/expat/xmlparse.c:7703:11: warning: format specifies type 'int' but the argument has type 'ptrdiff_t' (aka 'long') [-Wformat]
          bytesMore, (account == XML_ACCOUNT_DIRECT) ? "DIR" : "EXP",
          ^~~~~~~~~
3 warnings generated.
../../Modules/posixmodule.c:7062:13: warning: unused function 'warn_about_fork_with_threads' [-Wunused-function]
static void warn_about_fork_with_threads(const char* name) {
            ^
1 warning generated.
cat: pybuilddir.txt: No such file or directory
wasm-ld: error: duplicate symbol: Hacl_SHA2_Scalar32_sha512_init
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_create_in_256
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_copy_256
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_init_256
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_update_256
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_finish_256
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_free_256
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_sha256
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_create_in_224
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_init_224
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_update_224
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_finish_224
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_free_224
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_sha224
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_create_in_512
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_copy_512
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_init_512
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_update_512
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_finish_512
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_free_512
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: too many errors emitted, stopping now (use -error-limit=0 to see all errors)
clang-14: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [Makefile:826: python.wasm] Error 1

Makefile:2849: warning: overriding recipe for target 'Modules/_hacl/Hacl_Streaming_SHA2.o'
Makefile:2846: warning: ignoring old recipe for target 'Modules/_hacl/Hacl_Streaming_SHA2.o'

Makefile:2794: warning: overriding recipe for target 'Modules/_hacl/Hacl_Streaming_SHA2.o'
Makefile:2791: warning: ignoring old recipe for target 'Modules/_hacl/Hacl_Streaming_SHA2.o'

@bedevere-bot
Copy link

⚠️⚠️⚠️ Buildbot failure ⚠️⚠️⚠️

Hi! The buildbot wasm32-emscripten node (pthreads) 3.x has failed when building commit e5da9ab.

What do you need to do:

  1. Don't panic.
  2. Check the buildbot page in the devguide if you don't know what the buildbots are or how they work.
  3. Go to the page of the buildbot that failed (https://buildbot.python.org/all/#builders/1050/builds/1360) and take a look at the build logs.
  4. Check if the failure is related to this commit (e5da9ab) or if it is a false positive.
  5. If the failure is related to this commit, please, reflect that on the issue and make a new Pull Request with a fix.

You can take a look at the buildbot page here:

https://buildbot.python.org/all/#builders/1050/builds/1360

Summary of the results of the build (if available):

Click to see traceback logs
remote: Enumerating objects: 49, done.        
remote: Counting objects:   2% (1/49)        
remote: Counting objects:   4% (2/49)        
remote: Counting objects:   6% (3/49)        
remote: Counting objects:   8% (4/49)        
remote: Counting objects:  10% (5/49)        
remote: Counting objects:  12% (6/49)        
remote: Counting objects:  14% (7/49)        
remote: Counting objects:  16% (8/49)        
remote: Counting objects:  18% (9/49)        
remote: Counting objects:  20% (10/49)        
remote: Counting objects:  22% (11/49)        
remote: Counting objects:  24% (12/49)        
remote: Counting objects:  26% (13/49)        
remote: Counting objects:  28% (14/49)        
remote: Counting objects:  30% (15/49)        
remote: Counting objects:  32% (16/49)        
remote: Counting objects:  34% (17/49)        
remote: Counting objects:  36% (18/49)        
remote: Counting objects:  38% (19/49)        
remote: Counting objects:  40% (20/49)        
remote: Counting objects:  42% (21/49)        
remote: Counting objects:  44% (22/49)        
remote: Counting objects:  46% (23/49)        
remote: Counting objects:  48% (24/49)        
remote: Counting objects:  51% (25/49)        
remote: Counting objects:  53% (26/49)        
remote: Counting objects:  55% (27/49)        
remote: Counting objects:  57% (28/49)        
remote: Counting objects:  59% (29/49)        
remote: Counting objects:  61% (30/49)        
remote: Counting objects:  63% (31/49)        
remote: Counting objects:  65% (32/49)        
remote: Counting objects:  67% (33/49)        
remote: Counting objects:  69% (34/49)        
remote: Counting objects:  71% (35/49)        
remote: Counting objects:  73% (36/49)        
remote: Counting objects:  75% (37/49)        
remote: Counting objects:  77% (38/49)        
remote: Counting objects:  79% (39/49)        
remote: Counting objects:  81% (40/49)        
remote: Counting objects:  83% (41/49)        
remote: Counting objects:  85% (42/49)        
remote: Counting objects:  87% (43/49)        
remote: Counting objects:  89% (44/49)        
remote: Counting objects:  91% (45/49)        
remote: Counting objects:  93% (46/49)        
remote: Counting objects:  95% (47/49)        
remote: Counting objects:  97% (48/49)        
remote: Counting objects: 100% (49/49)        
remote: Counting objects: 100% (49/49), done.        
remote: Compressing objects:   4% (1/24)        
remote: Compressing objects:   8% (2/24)        
remote: Compressing objects:  12% (3/24)        
remote: Compressing objects:  16% (4/24)        
remote: Compressing objects:  20% (5/24)        
remote: Compressing objects:  25% (6/24)        
remote: Compressing objects:  29% (7/24)        
remote: Compressing objects:  33% (8/24)        
remote: Compressing objects:  37% (9/24)        
remote: Compressing objects:  41% (10/24)        
remote: Compressing objects:  45% (11/24)        
remote: Compressing objects:  50% (12/24)        
remote: Compressing objects:  54% (13/24)        
remote: Compressing objects:  58% (14/24)        
remote: Compressing objects:  62% (15/24)        
remote: Compressing objects:  66% (16/24)        
remote: Compressing objects:  70% (17/24)        
remote: Compressing objects:  75% (18/24)        
remote: Compressing objects:  79% (19/24)        
remote: Compressing objects:  83% (20/24)        
remote: Compressing objects:  87% (21/24)        
remote: Compressing objects:  91% (22/24)        
remote: Compressing objects:  95% (23/24)        
remote: Compressing objects: 100% (24/24)        
remote: Compressing objects: 100% (24/24), done.        
remote: Total 27 (delta 19), reused 6 (delta 2), pack-reused 0        
From https://github.com/python/cpython
 * branch                  main       -> FETCH_HEAD
Note: switching to 'e5da9ab2c82c6b4e4f8ffa699a9a609ea1bea255'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at e5da9ab2c8 gh-99108: Import SHA2-384/512 from HACL* (#101707)
Switched to and reset branch 'main'

Makefile:2849: warning: overriding recipe for target 'Modules/_hacl/Hacl_Streaming_SHA2.o'
Makefile:2846: warning: ignoring old recipe for target 'Modules/_hacl/Hacl_Streaming_SHA2.o'
../../Objects/obmalloc.c:776:1: warning: always_inline function might not be inlinable [-Wattributes]
  776 | arena_map_get(pymem_block *p, int create)
      | ^~~~~~~~~~~~~

configure: ../../configure --prefix $(PWD)/target/host --with-pydebug --without-pydebug --with-emscripten-target=node --disable-wasm-dynamic-linking --enable-wasm-pthreads --build=x86_64-pc-linux-gnu --host=wasm32-unknown-emscripten --with-build-python=../build/python
configure: WARNING: using cross tools not prefixed with host triplet
mcc: error: no input files

make: make -j2 all
Makefile:2804: warning: overriding recipe for target 'Modules/_hacl/Hacl_Streaming_SHA2.o'
Makefile:2801: warning: ignoring old recipe for target 'Modules/_hacl/Hacl_Streaming_SHA2.o'
../../Python/initconfig.c:2360:27: warning: format specifies type 'wint_t' (aka 'int') but the argument has type 'wint_t' (aka 'unsigned int') [-Wformat]
    printf(usage_envvars, (wint_t)DELIM, (wint_t)DELIM, PYTHONHOMEHELP);
           ~~~~~~~~~~~~~  ^~~~~~~~~~~~~
../../Python/initconfig.c:145:18: note: format string is defined here
"PYTHONPATH   : '%lc'-separated list of directories prefixed to the\n"
                 ^~~
                 %c
../../Python/initconfig.c:2360:42: warning: format specifies type 'wint_t' (aka 'int') but the argument has type 'wint_t' (aka 'unsigned int') [-Wformat]
    printf(usage_envvars, (wint_t)DELIM, (wint_t)DELIM, PYTHONHOMEHELP);
           ~~~~~~~~~~~~~                 ^~~~~~~~~~~~~
../../Python/initconfig.c:148:58: note: format string is defined here
"PYTHONHOME   : alternate <prefix> directory (or <prefix>%lc<exec_prefix>).\n"
                                                         ^~~
                                                         %c
2 warnings generated.
../../Python/pystate.c:1148:1: warning: unused function 'tstate_is_alive' [-Wunused-function]
tstate_is_alive(PyThreadState *tstate)
^
../../Python/pystate.c:203:1: warning: unused function 'tstate_is_bound' [-Wunused-function]
tstate_is_bound(PyThreadState *tstate)
^
2 warnings generated.
../../Python/pytime.c:297:10: warning: implicit conversion from 'long long' to 'double' changes value from 9223372036854775807 to 9223372036854775808 [-Wimplicit-const-int-float-conversion]
    if (!_Py_InIntegralTypeRange(time_t, intpart)) {
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../Include/internal/pycore_pymath.h:72:45: note: expanded from macro '_Py_InIntegralTypeRange'
    (_Py_IntegralTypeMin(type) <= v && v <= _Py_IntegralTypeMax(type))
                                         ~~ ^~~~~~~~~~~~~~~~~~~~~~~~~
../../Include/internal/pycore_pymath.h:61:88: note: expanded from macro '_Py_IntegralTypeMax'
    (_Py_IS_TYPE_SIGNED(type) ? (((((type)1 << (sizeof(type)*CHAR_BIT - 2)) - 1) << 1) + 1) : ~(type)0)
                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../../Python/pytime.c:352:14: warning: implicit conversion from 'long long' to 'double' changes value from 9223372036854775807 to 9223372036854775808 [-Wimplicit-const-int-float-conversion]
        if (!_Py_InIntegralTypeRange(time_t, intpart)) {
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../Include/internal/pycore_pymath.h:72:45: note: expanded from macro '_Py_InIntegralTypeRange'
    (_Py_IntegralTypeMin(type) <= v && v <= _Py_IntegralTypeMax(type))
                                         ~~ ^~~~~~~~~~~~~~~~~~~~~~~~~
../../Include/internal/pycore_pymath.h:61:88: note: expanded from macro '_Py_IntegralTypeMax'
    (_Py_IS_TYPE_SIGNED(type) ? (((((type)1 << (sizeof(type)*CHAR_BIT - 2)) - 1) << 1) + 1) : ~(type)0)
                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
../../Python/pytime.c:518:10: warning: implicit conversion from 'long long' to 'double' changes value from 9223372036854775807 to 9223372036854775808 [-Wimplicit-const-int-float-conversion]
    if (!_Py_InIntegralTypeRange(_PyTime_t, d)) {
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../Include/internal/pycore_pymath.h:72:45: note: expanded from macro '_Py_InIntegralTypeRange'
    (_Py_IntegralTypeMin(type) <= v && v <= _Py_IntegralTypeMax(type))
                                         ~~ ^~~~~~~~~~~~~~~~~~~~~~~~~
../../Include/internal/pycore_pymath.h:61:88: note: expanded from macro '_Py_IntegralTypeMax'
    (_Py_IS_TYPE_SIGNED(type) ? (((((type)1 << (sizeof(type)*CHAR_BIT - 2)) - 1) << 1) + 1) : ~(type)0)
                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
3 warnings generated.
../../Modules/sha256module.c:123:14: warning: comparison of integers of different signs: 'Py_ssize_t' (aka 'long') and 'unsigned int' [-Wsign-compare]
  while (len > UINT32_MAX) {
         ~~~ ^ ~~~~~~~~~~
1 warning generated.
../../Modules/sha512module.c:114:14: warning: comparison of integers of different signs: 'Py_ssize_t' (aka 'long') and 'unsigned int' [-Wsign-compare]
  while (len > UINT32_MAX) {
         ~~~ ^ ~~~~~~~~~~
1 warning generated.
../../Modules/expat/xmlparse.c:3116:9: warning: code will never be executed [-Wunreachable-code]
        parser->m_characterDataHandler(parser->m_handlerArg, parser->m_dataBuf,
        ^~~~~~
../../Modules/expat/xmlparse.c:3115:16: note: silence by adding parentheses to mark code as explicitly dead
      else if (0 && parser->m_characterDataHandler)
               ^
               /* DISABLES CODE */ ( )
../../Modules/expat/xmlparse.c:4059:9: warning: code will never be executed [-Wunreachable-code]
        parser->m_characterDataHandler(parser->m_handlerArg, parser->m_dataBuf,
        ^~~~~~
../../Modules/expat/xmlparse.c:4058:16: note: silence by adding parentheses to mark code as explicitly dead
      else if (0 && parser->m_characterDataHandler)
               ^
               /* DISABLES CODE */ ( )
../../Modules/expat/xmlparse.c:7703:11: warning: format specifies type 'int' but the argument has type 'ptrdiff_t' (aka 'long') [-Wformat]
          bytesMore, (account == XML_ACCOUNT_DIRECT) ? "DIR" : "EXP",
          ^~~~~~~~~
3 warnings generated.
../../Modules/socketmodule.c:4033:33: warning: comparison of integers of different signs: 'unsigned long' and 'long' [-Wsign-compare]
         cmsgh != NULL; cmsgh = CMSG_NXTHDR(&msg, cmsgh)) {
                                ^~~~~~~~~~~~~~~~~~~~~~~~
/opt/buildbot/.emscripten_cache/sysroot/include/sys/socket.h:356:44: note: expanded from macro 'CMSG_NXTHDR'
        __CMSG_LEN(cmsg) + sizeof(struct cmsghdr) >= __MHDR_END(mhdr) - (unsigned char *)(cmsg) \
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../Modules/socketmodule.c:4086:33: warning: comparison of integers of different signs: 'unsigned long' and 'long' [-Wsign-compare]
         cmsgh != NULL; cmsgh = CMSG_NXTHDR(&msg, cmsgh)) {
                                ^~~~~~~~~~~~~~~~~~~~~~~~
/opt/buildbot/.emscripten_cache/sysroot/include/sys/socket.h:356:44: note: expanded from macro 'CMSG_NXTHDR'
        __CMSG_LEN(cmsg) + sizeof(struct cmsghdr) >= __MHDR_END(mhdr) - (unsigned char *)(cmsg) \
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../Modules/socketmodule.c:4710:54: warning: comparison of integers of different signs: 'unsigned long' and 'long' [-Wsign-compare]
            cmsgh = (i == 0) ? CMSG_FIRSTHDR(&msg) : CMSG_NXTHDR(&msg, cmsgh);
                                                     ^~~~~~~~~~~~~~~~~~~~~~~~
/opt/buildbot/.emscripten_cache/sysroot/include/sys/socket.h:356:44: note: expanded from macro 'CMSG_NXTHDR'
        __CMSG_LEN(cmsg) + sizeof(struct cmsghdr) >= __MHDR_END(mhdr) - (unsigned char *)(cmsg) \
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3 warnings generated.
../../Modules/_sqlite/connection.c:2198:19: warning: result of comparison of constant 9223372036854775807 with expression of type 'Py_ssize_t' (aka 'long') is always false [-Wtautological-constant-out-of-range-compare]
    if (data->len > 9223372036854775807) {  // (1 << 63) - 1
        ~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~
1 warning generated.
mcc: warning: USE_PTHREADS + ALLOW_MEMORY_GROWTH may run non-wasm code slowly, see https://github.com/WebAssembly/design/issues/1271 [-Wpthreads-mem-growth]
wasm-ld: error: duplicate symbol: Hacl_SHA2_Scalar32_sha512_init
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_create_in_256
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_copy_256
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_init_256
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_update_256
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_finish_256
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_free_256
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_sha256
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_create_in_224
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_init_224
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_update_224
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_finish_224
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_free_224
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_sha224
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_create_in_512
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_copy_512
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_init_512
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_update_512
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_finish_512
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: duplicate symbol: python_hashlib_Hacl_Streaming_SHA2_free_512
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o
>>> defined in Modules/_hacl/Hacl_Streaming_SHA2.o

wasm-ld: error: too many errors emitted, stopping now (use -error-limit=0 to see all errors)
mcc: error: '/opt/emsdk/upstream/bin/wasm-ld -o python.wasm Programs/python.o Modules/getbuildinfo.o Parser/token.o Parser/pegen.o Parser/pegen_errors.o Parser/action_helpers.o Parser/parser.o Parser/string_parser.o Parser/peg_api.o Parser/myreadline.o Parser/tokenizer.o Objects/abstract.o Objects/boolobject.o Objects/bytes_methods.o Objects/bytearrayobject.o Objects/bytesobject.o Objects/call.o Objects/capsule.o Objects/cellobject.o Objects/classobject.o Objects/codeobject.o Objects/complexobject.o Objects/descrobject.o Objects/enumobject.o Objects/exceptions.o Objects/genericaliasobject.o Objects/genobject.o Objects/fileobject.o Objects/floatobject.o Objects/frameobject.o Objects/funcobject.o Objects/interpreteridobject.o Objects/iterobject.o Objects/listobject.o Objects/longobject.o Objects/dictobject.o Objects/odictobject.o Objects/memoryobject.o Objects/methodobject.o Objects/moduleobject.o Objects/namespaceobject.o Objects/object.o Objects/obmalloc.o Objects/picklebufobject.o Objects/rangeobject.o Objects/setobject.o Objects/sliceobject.o Objects/structseq.o Objects/tupleobject.o Objects/typeobject.o Objects/unicodeobject.o Objects/unicodectype.o Objects/unionobject.o Objects/weakrefobject.o Python/_warnings.o Python/Python-ast.o Python/Python-tokenize.o Python/asdl.o Python/ast.o Python/ast_opt.o Python/ast_unparse.o Python/bltinmodule.o Python/ceval.o Python/codecs.o Python/compile.o Python/context.o Python/dynamic_annotations.o Python/errors.o Python/frame.o Python/frozenmain.o Python/future.o Python/getargs.o Python/getcompiler.o Python/getcopyright.o Python/getplatform.o Python/getversion.o Python/ceval_gil.o Python/hamt.o Python/hashtable.o Python/import.o Python/importdl.o Python/initconfig.o Python/intrinsics.o Python/marshal.o Python/modsupport.o Python/mysnprintf.o Python/mystrtoul.o Python/pathconfig.o Python/preconfig.o Python/pyarena.o Python/pyctype.o Python/pyfpe.o Python/pyhash.o Python/pylifecycle.o Python/pymath.o Python/pystate.o Python/pythonrun.o Python/pytime.o Python/bootstrap_hash.o Python/specialize.o Python/structmember.o Python/symtable.o Python/sysmodule.o Python/thread.o Python/traceback.o Python/getopt.o Python/pystrcmp.o Python/pystrtod.o Python/pystrhex.o Python/dtoa.o Python/formatter_unicode.o Python/fileutils.o Python/suggestions.o Python/perf_trampoline.o Python/dynload_stub.o Python/emscripten_signal.o Modules/config.o Modules/main.o Modules/gcmodule.o Modules/arraymodule.o Modules/_asynciomodule.o Modules/_bisectmodule.o Modules/_contextvarsmodule.o Modules/_csv.o Modules/_heapqmodule.o Modules/_json.o Modules/_lsprof.o Modules/rotatingtree.o Modules/_opcode.o Modules/_pickle.o Modules/_queuemodule.o Modules/_randommodule.o Modules/_struct.o Modules/_typingmodule.o Modules/_zoneinfo.o Modules/audioop.o Modules/mathmodule.o Modules/cmathmodule.o Modules/_statisticsmodule.o Modules/_datetimemodule.o Modules/_decimal/_decimal.o Modules/binascii.o Modules/_bz2module.o Modules/zlibmodule.o Modules/md5module.o Modules/sha1module.o Modules/sha256module.o Modules/_hacl/Hacl_Streaming_SHA2.o Modules/sha512module.o Modules/_hacl/Hacl_Streaming_SHA2.o Modules/_sha3/sha3module.o Modules/_blake2/blake2module.o Modules/_blake2/blake2b_impl.o Modules/_blake2/blake2s_impl.o Modules/pyexpat.o Modules/_elementtree.o Modules/cjkcodecs/_codecs_cn.o Modules/cjkcodecs/_codecs_hk.o Modules/cjkcodecs/_codecs_iso2022.o Modules/cjkcodecs/_codecs_jp.o Modules/cjkcodecs/_codecs_kr.o Modules/cjkcodecs/_codecs_tw.o Modules/cjkcodecs/multibytecodec.o Modules/unicodedata.o Modules/_cryptmodule.o Modules/mmapmodule.o Modules/selectmodule.o Modules/socketmodule.o Modules/termios.o Modules/_sqlite/blob.o Modules/_sqlite/connection.o Modules/_sqlite/cursor.o Modules/_sqlite/microprotocols.o Modules/_sqlite/module.o Modules/_sqlite/prepare_protocol.o Modules/_sqlite/row.o Modules/_sqlite/statement.o Modules/_sqlite/util.o Modules/xxsubtype.o Modules/_xxtestfuzz/_xxtestfuzz.o Modules/_xxtestfuzz/fuzzer.o Modules/_testbuffer.o Modules/_testinternalcapi.o Modules/_testcapimodule.o Modules/_testcapi/vectorcall.o Mod
les/_testcapi/vectorcall_limited.o Modules/_testcapi/heaptype.o Modules/_testcapi/unicode.o Modules/_testcapi/getargs.o Modules/_testcapi/pytime.o Modules/_testcapi/datetime.o Modules/_testcapi/docstring.o Modules/_testcapi/mem.o Modules/_testcapi/watchers.o Modules/_testcapi/long.o Modules/_testcapi/float.o Modules/_testcapi/structmember.o Modules/_testclinic.o Modules/atexitmodule.o Modules/faulthandler.o Modules/posixmodule.o Modules/signalmodule.o Modules/_tracemalloc.o Modules/_codecsmodule.o Modules/_collectionsmodule.o Modules/errnomodule.o Modules/_io/_iomodule.o Modules/_io/iobase.o Modules/_io/fileio.o Modules/_io/bytesio.o Modules/_io/bufferedio.o Modules/_io/textio.o Modules/_io/stringio.o Modules/itertoolsmodule.o Modules/_sre/sre.o Modules/_threadmodule.o Modules/timemodule.o Modules/_weakref.o Modules/_abc.o Modules/_functoolsmodule.o Modules/_localemodule.o Modules/_operator.o Modules/_stat.o Modules/symtablemodule.o Python/deepfreeze/deepfreeze.o Modules/getpath.o Python/frozen.o Modules/_decimal/libmpdec/libmpdec.a Modules/expat/libexpat.a -L/opt/buildbot/.emscripten_cache/sysroot/lib/wasm32-emscripten /opt/buildbot/.emscripten_cache/sysroot/lib/wasm32-emscripten/libsqlite3-mt.a /opt/buildbot/.emscripten_cache/sysroot/lib/wasm32-emscripten/libbz2.a /opt/buildbot/.emscripten_cache/sysroot/lib/wasm32-emscripten/libz.a /opt/buildbot/.emscripten_cache/sysroot/lib/wasm32-emscripten/crtbegin.o /opt/buildbot/.emscripten_cache/sysroot/lib/wasm32-emscripten/crt1_proxy_main.o -lGL-mt -lal -lhtml5 -lstubs -lc-mt -ldlmalloc-mt -lcompiler_rt-mt -lc++-mt-noexcept -lc++abi-mt-noexcept -lsockets-mt -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr --import-undefined --import-memory --shared-memory --strip-debug --export-if-defined=main --export-if-defined=_emscripten_thread_init --export-if-defined=_emscripten_thread_exit --export-if-defined=_emscripten_thread_crashed --export-if-defined=_emscripten_tls_init --export-if-defined=pthread_self --export-if-defined=__start_em_asm --export-if-defined=__stop_em_asm --export-if-defined=__start_em_js --export-if-defined=__stop_em_js --export-if-defined=__main_argc_argv --export-if-defined=fflush --export=stackSave --export=stackRestore --export=stackAlloc --export=__wasm_call_ctors --export=__errno_location --export=emscripten_dispatch_to_thread_ --export=_emscripten_thread_free_data --export=emscripten_main_browser_thread_id --export=emscripten_main_thread_process_queued_calls --export=emscripten_run_in_main_runtime_thread_js --export=emscripten_stack_set_limits --export=__funcs_on_exit --export=malloc --export=free --export=emscripten_builtin_memalign --export=ntohs --export=htons --export=htonl --export-table -z stack-size=5242880 --initial-memory=20971520 --entry=_emscripten_proxy_main --max-memory=2147483648 --global-base=1024' failed (returned 1)
make: *** [Makefile:832: python.js] Error 1
mmake: error: 'make -j2 all' failed (returned 2)

Makefile:2849: warning: overriding recipe for target 'Modules/_hacl/Hacl_Streaming_SHA2.o'
Makefile:2846: warning: ignoring old recipe for target 'Modules/_hacl/Hacl_Streaming_SHA2.o'

Makefile:2804: warning: overriding recipe for target 'Modules/_hacl/Hacl_Streaming_SHA2.o'
Makefile:2801: warning: ignoring old recipe for target 'Modules/_hacl/Hacl_Streaming_SHA2.o'

@msprotz
Copy link
Contributor Author

msprotz commented Feb 14, 2023

Thanks for merging, @gpshead. It looks like this broke the wasm build because there are now duplicate symbols. If I had to guess, I would say that the use-case where two C files in Modules/ depend on the same C file did not show up before in the build.

Would it be enough to remove one of the two references to Hacl_Streaming_SHA2.c in Modules/Setup.stdlib.in?

@gpshead
Copy link
Member

gpshead commented Feb 14, 2023

I doubt just removing one reference is enough? Looking at things I suspect what we want is for the _hacl/ stuff to be built into a single .a library and the sha256module.c and sha512module.c to both link against that. so that they pull only the symbols they use in, instead of what appears to be happening today where both extension module libraries wind up with all of the symbols from the Modules/_hacl/Hacl_Streaming_SHA2.c present and exported.

This should require some Makefile.pre.in work. similar to how _decimal uses libmpdec and expat uses libexpat.a.

I'm untangling this.

gpshead added a commit that referenced this pull request Feb 14, 2023
This builds HACL* as a library in one place.

A followup to #101707 which broke some WASM builds. This fixes 2/4 of them, but the enscripten toolchain in the others don't deduplicate linker arguments and error out. A follow-on PR will address those.
@gpshead
Copy link
Member

gpshead commented Feb 15, 2023

That fixes 2/4 of the build bot failures. the remaining wasm32-enscripten dynamic failures are because that uses --whole-archive linking so the duplicates (duplicate as in the .a file is listed twice on the wasm-ld command line at this point) cause trouble. I'm going to follow up with a refactoring PR that merges _sha256 and _sha512 into a single _sha2 module. Those two don't need to be separate modules, that is a historical oddity.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants