freeze cannot find Modules/_hacl/libHacl_Hash_*.o
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- Python
- Star
- 77.2k
- Fork
- 35.9k
- Chỉ số merge pull request
- Chỉ số pull request đang chờ
Mô tả
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
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Tái hiện lỗi với freeze.py bằng ví dụ helloworld.py và hashlib, sau đó kiểm tra bản build đã đóng băng được tạo ra cùng các đường dẫn đối tượng trong Modules/_hacl được nêu trong các lỗi của linker. So sánh các dependency được tạo ra với những tệp có sẵn trong cây đã đóng băng. Được xem là hoàn tất khi make hoàn thành mà không cần tạo thủ công các tệp đối tượng HACL rỗng và executable đã đóng băng chạy thành công.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- python
- Lĩnh vực
- build-system
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100