python / python/cpython

Compiling `--with-lto` results in `test_embed` failures on Darwin

Ouverte
#153,285 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

build OS-mac 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:

On Darwin, configure.ac:1998 sets:

LTOFLAGS="-flto=thin -Wl,-export_dynamic -Wl,-object_path_lto,\"\$@\".lto"

Which gets expanded too early in Makefile.pre.in:130 into "".lto (notice the :=):

PY_CORE_EXE_LDFLAGS:= $(if $(CONFIGURE_EXE_LDFLAGS), $(CONFIGURE_EXE_LDFLAGS) $(PY_LDFLAGS_NODIST), $(PY_CORE_LDFLAGS))

Linking results in:

gcc    -flto=thin -Wl,-export_dynamic -Wl,-object_path_lto,"".lto -g  ...

Which happens to link Programs/_testembed as the interpreter, so that launching it results in:

$ ./Programs/_testembed           
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
WARN: Could not find the standard library directory! sys.prefix is set to /usr/local, is this correct?
Python 3.16.0a0 (heads/main:4f39efc47de, Jul  7 2026, 17:34:29) [Clang 21.0.0 (clang-2100.1.1.101)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 

And related tests in the test_embed suite fail:

$ ./python.exe -m test -v test_embed
== CPython 3.16.0a0 (heads/main:4f39efc47de, Jul 7 2026, 17:34:29) [Clang 21.0.0 (clang-2100.1.1.101)]
== macOS-26.5.1-arm64-arm-64bit-Mach-O little-endian
== Python build: release ThinLTO
== cwd: ***
== CPU count: 16
== encodings: locale=UTF-8 FS=utf-8
== resources: all test resources are disabled, use -u option to unskip tests

Using random seed: 2037373937
0:00:00 load avg: 2.73 mem: 31.0 MiB Run 1 test sequentially in a single process
0:00:00 load avg: 2.73 mem: 31.0 MiB [1/1] test_embed
test_audit (test.test_embed.AuditingTests.test_audit) ... --- ['***/cpython/Programs/_testembed', 'test_audit'] failed ---
stdout:

stderr:
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
WARN: Could not find the standard library directory! sys.prefix is set to /usr/local, is this correct?
***/Programs/_testembed: can't open file '***/test_audit': [Errno 2] No such file or directory

------
FAIL

It seems to me this was introduced by 4e45c9c.

CPython versions tested on:

CPython main branch

Operating systems tested on:

macOS

Linked PRs
  • gh-153532

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

Commencez par comparer configure.ac:1998 avec Makefile.pre.in:130, en vous concentrant sur la manière dont LTOFLAGS est développé lors de la compilation Darwin. Reproduisez la compilation ThinLTO et exécutez ./python.exe -m test -v test_embed. C’est terminé lorsque _testembed se lance correctement et que la suite de tests test_embed réussit ; le PR lié gh-153532 indique que le travail est peut-être déjà en cours.

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

Évaluation

Stack technique
macos, python
Domaine
build-system, testing-qa
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 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.