[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH v2 0/4] lbuilds: Rust



Moinsen,

Wie schon v1 bringt diese Serie rust-libc und Rust selbst in die
Crosstools, und im Anschluss ein kleines Testprogramm.

Kleiner geworden ist die v2 nicht, also hier wieder nur der Coverletter,
und der Branch ist hier:

  https://git.xanclic.moe/XanClic/lbuilds.git rust-v2


In v2 gehen jetzt auch endlich Panics.  Wichtiges Feature.


git-backport-diff gegen v1:

Key:
[----] : patches are identical
[####] : number of functional differences between upstream/downstream patch
[down] : patch is downstream-only
The flags [FC] indicate (F)unctional and (C)ontextual differences, respectively

001/4:[0010] [FC] 'crosstools: rust-libc'
002/4:[0233] [FC] 'crosstools: Rust'
003/4:[0002] [FC] 'toolchain.sh: tc-cargo-run'
004/4:[----] [--] 'simple_rust_test: Einfacher Rust-Test'

Änderungen:
- Patch 1:
  Nur Änderungen an tyndur.rs:
  - uid_t und gid_t gefixt (sollte uint sein, nicht u32)
  - tid_t hinzugefügt
  - pthread_{,attr}_t gefixt (sollten uint sein, nicht int)
  - pthread-Keys als extern deklariert (müssen also von der týndur-libc
    bereitgestellt werden)
  - pthread-RW-Locks als extern deklariert (müssen also von der
    týndur-libc bereitgestellt werden)
  - __atomic_load_8() gedroppt: War erstens falsch und zweitens eh
    FIXME.  Brauchen wir nicht, wenn wir im týndur-Target angeben, dass
    die maximale Atomicgröße 32 Bit ist (und nicht 64).

- Patch 2:
  Einerseits wurde das týndur-Target von i686-* auf i486-* umbenannt.
  Sonst versucht serde nämlich, 64-Bit-Atomics zu unterstützen, die es
  nicht gibt.
  Andererseits Änderungen an den Patches, hier ist ein backport-diff
  gegen v1:

  Key:
  [----] : patches are identical
  [####] : number of functional differences between upstream/downstream patch
  [down] : patch is downstream-only
  The flags [FC] indicate (F)unctional and (C)ontextual differences, respectively

  001/24:[----] [--] 'errno() und set_errno() implementieren'
  002/24:[----] [--] 'Umgebungsvariablen'
  003/24:[----] [--] 'Benutze den normalen Argumentparser für týndur'
  004/24:[----] [--] 'os: linux-Modul exportieren'
  005/24:[----] [--] 'libc::off_t ist nicht unbedingt u64'
  006/24:[----] [--] 'stat-Änderungen für týndur'
  007/24:[----] [--] 'linkat() gibt es nicht, nur link()'
  008/24:[----] [--] 'dirent.d_name ist ein C-String'
  009/24:[----] [--] 'unix/fs.rs: Zeitstempel haben keine Nanosekunden'
  010/24:[----] [--] 'dirent hat kaum Informationen'
  011/24:[----] [--] 'Implementiere CLOEXEC-Flag über fcntl()'
  012/24:[----] [--] 'register_dtor(): Fallback benutzen'
  013/24:[----] [--] 'Deaktivere unix::net, genau wie L4Re'
  014/24:[----] [--] 'Unwinding-Sachen für týndur deaktivieren'
  015/24:[----] [--] 'Weak-Symbole für týndur deaktivieren'
  016/24:[----] [--] 'Thread::set_name() unimplementiert lassen'
  017/24:[----] [--] 'Kompliziertes in Command::do_exec() weglassen'
  018/24:[----] [--] 'read2() unimplementiert lassen'
  019/24:[----] [--] 'home_dir() hat keinen Fallback'
  020/24:[----] [--] 'current_exe() gibt es nicht'
  021/24:[----] [--] 'sanitize_standard_fds() leer lassen'
  022/24:[----] [--] 'Markiere std unter týndur als stabil'
  023/24:[----] [--] 'Füge týndur-Abschnitt zu env.rs hinzu'
  024/24:[0004] [FC] 'Neues Target: i486-unknown-tyndur'

  - Ex-Patch 22 („Keinen Main-Thread erstellen“): Gelöscht, weil das
        wunderbar funktioniert, wenn man nur Thread-Keys implementiert

  - Patch 24: Von i686-* nach i486-* umbenannt, außerdem maximale
        Atomicgröße von 64 Bit auf 32 Bit reduziert

- Patch 3: Umbenennung von i686-* auf i486-*


Hanna Reitz (4):
  crosstools: rust-libc
  crosstools: Rust
  toolchain.sh: tc-cargo-run
  simple_rust_test: Einfacher Rust-Test

 .../0/simple_rust_test-0.lbuild               |  36 +
 lclasses/toolchain.sh                         |  13 +
 .../0001-Ein-bisschen-t-ndur-Support.patch    | 806 ++++++++++++++++++
 .../rust/backtrace/0001-t-ndur-Support.patch  |  42 +
 patches/rust/backtrace/path                   |   1 +
 ...1-errno-und-set_errno-implementieren.patch |  67 ++
 .../rust/rust/0002-Umgebungsvariablen.patch   |  67 ++
 ...n-normalen-Argumentparser-f-r-t-ndur.patch |  31 +
 .../0004-os-linux-Modul-exportieren.patch     |  45 +
 ...5-libc-off_t-ist-nicht-unbedingt-u64.patch |  54 ++
 .../rust/0006-stat-nderungen-f-r-t-ndur.patch | 151 ++++
 .../0007-linkat-gibt-es-nicht-nur-link.patch  |  26 +
 .../0008-dirent.d_name-ist-ein-C-String.patch |  33 +
 ...Zeitstempel-haben-keine-Nanosekunden.patch |  53 ++
 .../0010-dirent-hat-kaum-Informationen.patch  |  59 ++
 ...Implementiere-CLOEXEC-Flag-ber-fcntl.patch |  43 +
 ...0012-register_dtor-Fallback-benutzen.patch |  33 +
 ...3-Deaktivere-unix-net-genau-wie-L4Re.patch | 119 +++
 ...nding-Sachen-f-r-t-ndur-deaktivieren.patch |  76 ++
 ...Weak-Symbole-f-r-t-ndur-deaktivieren.patch |  32 +
 ...read-set_name-unimplementiert-lassen.patch |  27 +
 ...ziertes-in-Command-do_exec-weglassen.patch | 100 +++
 .../0018-read2-unimplementiert-lassen.patch   |  48 ++
 .../0019-home_dir-hat-keinen-Fallback.patch   |  39 +
 .../rust/0020-current_exe-gibt-es-nicht.patch |  26 +
 ...21-sanitize_standard_fds-leer-lassen.patch |  32 +
 ...Markiere-std-unter-t-ndur-als-stabil.patch |  31 +
 ...-ge-t-ndur-Abschnitt-zu-env.rs-hinzu.patch |  36 +
 ...024-Neues-Target-i486-unknown-tyndur.patch | 143 ++++
 scripts/build_crosstools                      | 164 ++++
 30 files changed, 2433 insertions(+)
 create mode 100644 lbuilds/simple_rust_test/0/simple_rust_test-0.lbuild
 create mode 100644 patches/rust-libc/0001-Ein-bisschen-t-ndur-Support.patch
 create mode 100644 patches/rust/backtrace/0001-t-ndur-Support.patch
 create mode 100644 patches/rust/backtrace/path
 create mode 100644 patches/rust/rust/0001-errno-und-set_errno-implementieren.patch
 create mode 100644 patches/rust/rust/0002-Umgebungsvariablen.patch
 create mode 100644 patches/rust/rust/0003-Benutze-den-normalen-Argumentparser-f-r-t-ndur.patch
 create mode 100644 patches/rust/rust/0004-os-linux-Modul-exportieren.patch
 create mode 100644 patches/rust/rust/0005-libc-off_t-ist-nicht-unbedingt-u64.patch
 create mode 100644 patches/rust/rust/0006-stat-nderungen-f-r-t-ndur.patch
 create mode 100644 patches/rust/rust/0007-linkat-gibt-es-nicht-nur-link.patch
 create mode 100644 patches/rust/rust/0008-dirent.d_name-ist-ein-C-String.patch
 create mode 100644 patches/rust/rust/0009-unix-fs.rs-Zeitstempel-haben-keine-Nanosekunden.patch
 create mode 100644 patches/rust/rust/0010-dirent-hat-kaum-Informationen.patch
 create mode 100644 patches/rust/rust/0011-Implementiere-CLOEXEC-Flag-ber-fcntl.patch
 create mode 100644 patches/rust/rust/0012-register_dtor-Fallback-benutzen.patch
 create mode 100644 patches/rust/rust/0013-Deaktivere-unix-net-genau-wie-L4Re.patch
 create mode 100644 patches/rust/rust/0014-Unwinding-Sachen-f-r-t-ndur-deaktivieren.patch
 create mode 100644 patches/rust/rust/0015-Weak-Symbole-f-r-t-ndur-deaktivieren.patch
 create mode 100644 patches/rust/rust/0016-Thread-set_name-unimplementiert-lassen.patch
 create mode 100644 patches/rust/rust/0017-Kompliziertes-in-Command-do_exec-weglassen.patch
 create mode 100644 patches/rust/rust/0018-read2-unimplementiert-lassen.patch
 create mode 100644 patches/rust/rust/0019-home_dir-hat-keinen-Fallback.patch
 create mode 100644 patches/rust/rust/0020-current_exe-gibt-es-nicht.patch
 create mode 100644 patches/rust/rust/0021-sanitize_standard_fds-leer-lassen.patch
 create mode 100644 patches/rust/rust/0022-Markiere-std-unter-t-ndur-als-stabil.patch
 create mode 100644 patches/rust/rust/0023-F-ge-t-ndur-Abschnitt-zu-env.rs-hinzu.patch
 create mode 100644 patches/rust/rust/0024-Neues-Target-i486-unknown-tyndur.patch

-- 
2.31.0