[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