os-path causes build conflict with unix_ffi os

Aperta Adatta ai principianti
#795 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
1/5
Tempo stimato
Meno di un'ora
Idoneità per principianti
62/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Ferma
Stack tecnologico
python
Ambito
build-system

Direzione di ricerca

Inizia da lib/micropython-lib/python-stdlib/os-path/manifest.py e confronta il suo requisito per os con i requisiti della porta unix mostrati nell’issue. Riproduci la build unix con glob nel manifest della variante e verifica che il contenuto congelato non contenga più definizioni duplicate di os.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Building fails for the unix port when adding the glob package to the variant manifest with:

require("glob", unix_ffi=True)

glob's manifest requires os-path, without unix_ffi, and that in turns requires os also without unix_ffi:

require("os", unix_ffi=True)
require("os-path")

os-path's manifest requires os:

require("os")
package("os")

This causes a conflict with the os that has already been required with unix_ffi:

build-standard/frozen_content.c:20526:27: error: redefinition of ‘const_qstr_table_data_os___init__’
20526 | static const qstr_short_t const_qstr_table_data_os___init__[158] = {
      |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
build-standard/frozen_content.c:17919:27: note: previous definition of ‘const_qstr_table_data_os___init__’ was here
17919 | static const qstr_short_t const_qstr_table_data_os___init__[158] = {
      |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
....

If I add unix_ffi=True to lib/micropython-lib/python-stdlib/os-path/manifest.py, then it is able to compile the frozen content.

Lingua principale
Python
Stelle
2.9k
Fork
1.1k
Merge medio
7g 6h
PR unite (30g)
3

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di micropython/micropython-lib

Tutte le issue di micropython/micropython-lib

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.