Size: a a a

2020 February 13

EG

Emmanuel Goldstein in rust_offtopic
Ещё для анвиндинга нужен libgcc, потому что Rust берёт оттуда функцию _Unwind_Resume.
источник

EG

Emmanuel Goldstein in rust_offtopic
Теперь аллокация. Функции для аллокации генерирует компилятор, у нас их нет, так что их нужно написать.
источник

EG

Emmanuel Goldstein in rust_offtopic
Вот так они будут выглядеть.
.global __rust_alloc
__rust_alloc:
call __rdl_alloc
ret

.global __rust_dealloc
__rust_dealloc:
call __rdl_dealloc
ret

.global __rust_realloc
__rust_realloc:
call __rdl_realloc
ret

.global __rust_alloc_zeroed
__rust_alloc_zeroed:
call __rdl_alloc_zeroed
ret
источник

p

polunin.ai in rust_offtopic
Emmanuel Goldstein
Теперь аллокация. Функции для аллокации генерирует компилятор, у нас их нет, так что их нужно написать.
лол
источник

EG

Emmanuel Goldstein in rust_offtopic
Для работы с динамическими библиотеками нужно слинковаться с ld-linux
источник

EG

Emmanuel Goldstein in rust_offtopic
Ну и стандартные c, m, pthread, dl
источник

EG

Emmanuel Goldstein in rust_offtopic
На этом я закончил, но там всё ещё была куча ошибок.
источник

BD

Berkus Decker in rust_offtopic
Emmanuel Goldstein
Гляди, для начала, так как мы не отказались от libstd и libcore, нужно слинковать их.
а чому-бы не сказать ему !#[no_std]?
источник

EG

Emmanuel Goldstein in rust_offtopic
Berkus Decker
а чому-бы не сказать ему !#[no_std]?
Можно было, да, но в целом большую часть говна за собой тащит и core.
источник

BD

Berkus Decker in rust_offtopic
ну и panic=abort еще разгрузит
источник

BD

Berkus Decker in rust_offtopic
короче стандартный эмбеддед набор )
источник

EG

Emmanuel Goldstein in rust_offtopic
core, сцуко, тащит тяжеленный Rust'овский движок форматирования. Это жесть.
источник

EG

Emmanuel Goldstein in rust_offtopic
На это, помню, уже эмбедщики жаловались.
источник

BD

Berkus Decker in rust_offtopic
Emmanuel Goldstein
core, сцуко, тащит тяжеленный Rust'овский движок форматирования. Это жесть.
он огромный да, добавляет около 40 килобайт к моему 760 байтовому ядру )
источник

EG

Emmanuel Goldstein in rust_offtopic
Причём только ради того, чтобы panic!() был красивеньким.
источник

EG

Emmanuel Goldstein in rust_offtopic
Berkus Decker
ну и panic=abort еще разгрузит
А этого в плейграунде нет.
источник

EG

Emmanuel Goldstein in rust_offtopic
Кто-нибудь, кстати, видел код плейграунда? Хочу им пару PR прислать.
источник

BD

Berkus Decker in rust_offtopic
асм можно сгенерить и локально )
источник

EG

Emmanuel Goldstein in rust_offtopic
Berkus Decker
асм можно сгенерить и локально )
Можно, но вторая цель у меня была «получить что-нибудь вменяемое из плейграундовского асма»
источник

EG

Emmanuel Goldstein in rust_offtopic
Это не получилось
источник