python / python/cpython

freeze cannot find Modules/_hacl/libHacl_Hash_*.o

Ouverte
#145,810 8 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

build extension-modules type-bug
Langage dominant
Python
Étoiles
77.2k
Forks
35.9k
Métriques de merge des PR
Métriques de PR en attente

Description

Bug report

Bug description:

Dear maintainers,

unfortunately, the fix of issue #116043 in Python 3.14 does not fix the problem at all. Now freeze.py adds dependencies to some Modules/_hacl/libHacl_Hash*.o files,
although their functionality is already contained in cpython. The result again ist that linking is not possible:

/usr/bin/x86_64-linux-gnu-ld.bfd: cannot find Modules/_hacl/Hacl_Hash_Blake2s.o: No such file or directory
/usr/bin/x86_64-linux-gnu-ld.bfd: cannot find Modules/_hacl/Hacl_Hash_Blake2b.o: No such file or directory
/usr/bin/x86_64-linux-gnu-ld.bfd: cannot find Modules/_hacl/Lib_Memzero0.o: No such file or directory
/usr/bin/x86_64-linux-gnu-ld.bfd: cannot find Modules/_hacl/Hacl_Hash_Blake2s_Simd128.o: No such file or directory
/usr/bin/x86_64-linux-gnu-ld.bfd: cannot find Modules/_hacl/Hacl_Hash_Blake2b_Simd256.o: No such file or directory
/usr/bin/x86_64-linux-gnu-ld.bfd: cannot find Modules/_hacl/Hacl_Hash_MD5.o: No such file or directory
/usr/bin/x86_64-linux-gnu-ld.bfd: cannot find Modules/_hacl/Hacl_Hash_SHA1.o: No such file or directory
/usr/bin/x86_64-linux-gnu-ld.bfd: cannot find Modules/_hacl/Hacl_Hash_SHA2.o: No such file or directory
/usr/bin/x86_64-linux-gnu-ld.bfd: cannot find Modules/_hacl/Hacl_Hash_SHA3.o: No such file or directory
collect2: error: ld returned 1 exit status

See attached error-log.txtfor the full compilation log. Thus, only again the crude hack creating all these files as empty files helps.

Here the steps to reproduce:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu Resolute Raccoon (development branch)
Release:        26.04
Codename:       resolute
$ python3 --version
Python 3.14.3
$ cat helloworld.py
#!/usr/bin/python3

import hashlib

print("Hello, World!")

m = hashlib.sha256()
#m = hashlib.sha3_224()
m.update(b"nobody inspects")
print(m.hexdigest())
$ /usr/share/doc/python3.14/examples/freeze/freeze.py -X setuptools -o frozen helloworld.py
$ cd frozen
$ make &> error_log.txt                              <-- see attachement to this issue
$ mkdir -p Modules/_hacl
$ touch Modules/_hacl/Hacl_Hash_Blake2s.o
$ touch Modules/_hacl/Hacl_Hash_Blake2b.o
$ touch Modules/_hacl/Lib_Memzero0.o
$ touch Modules/_hacl/Hacl_Hash_Blake2s_Simd128.o
$ touch Modules/_hacl/Hacl_Hash_Blake2b_Simd256.o
$ touch Modules/_hacl/Hacl_Hash_MD5.o
$ touch Modules/_hacl/Hacl_Hash_SHA1.o
$ touch Modules/_hacl/Hacl_Hash_SHA2.o
$ touch Modules/_hacl/Hacl_Hash_SHA3.o
$ make
$ ./helloworld
Hello, World!
5880e257e70b83842737244b412a2f282e0f230953027a22104efc615d90d3f9

Many thanks,
Chris

Attachements
error-log.txt

CPython versions tested on:

3.14

Operating systems tested on:

Linux

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Reproduisez l’échec avec freeze.py en utilisant l’exemple helloworld.py et hashlib, puis examinez le build gelé généré ainsi que les chemins des objets de Modules/_hacl mentionnés dans les erreurs de l’éditeur de liens. Comparez les dépendances générées avec les fichiers disponibles dans l’arborescence gelée. C’est terminé lorsque make s’achève sans créer manuellement de fichiers objets HACL vides et que l’exécutable gelé s’exécute correctement.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
python
Domaine
build-system
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.