Size: a a a

pro.osdev - os development

2021 July 12

BV

Boris Vinogradov in pro.osdev - os development
С наименьшим оверхедом
источник
2021 July 22

BD

Berkus Decker in pro.osdev - os development
какой эээ ник
источник

Ct

Casual tears in pro.osdev - os development
Шо не так?
источник

e

e in pro.osdev - os development
Такое чувство, что сейчас начнёшь рассказывать про фриспины или 1хбет какой.
источник

Ct

Casual tears in pro.osdev - os development
Не, не начну. Могу начать про D&D рассказывать, но это тут оффтопик.

Подскажите мне лучше, с какой радости clang пытается gcc дергать?
т.е. я имею билд команду вида
$ clang -nostdlib  -ffreestanding -fuse-ld=lld --target=i686-pc-none-elf -march=i686 main.c
где в main.c просто void _start(void) {}
и ловлю
clang: error: unable to execute command: Executable "gcc" doesn't exist!
clang: error: linker (via gcc) command failed with exit code 1 (use -v to see invocation)
источник

Ct

Casual tears in pro.osdev - os development
На osdev линки нельзя постить? Окей.
источник

BD

Berkus Decker in pro.osdev - os development
чтобы слинковать таргет который он у тебя не умеет, очевидно
источник

BD

Berkus Decker in pro.osdev - os development
собери llvm с lld и поддержкой твоего таргета и всё будет
источник

X

XÆA-XII in pro.osdev - os development
Только тем, кто первый день в чате
источник

Ct

Casual tears in pro.osdev - os development
lld же вроде все таргеты по умолчанию поддерживает?

> It supports various CPUs/ABIs including AArch64, AMDGPU, ARM, Hexagon, MIPS 32/64 big/little-endian, PowerPC, PowerPC64, RISC-V, SPARC V9, x86-32 and x86-64. Among these, AArch64, ARM (>= v6), PowerPC, PowerPC64, x86-32 and x86-64 have production quality. MIPS seems decent too.

> It is always a cross-linker, meaning that it always supports all the above targets however it was built. In fact, we don’t provide a build-time option to enable/disable each target. This should make it easy to use our linker as part of a cross-compile toolchain.

^ цитата с lld (dot) llvm (dot) org
источник

BV

Boris Vinogradov in pro.osdev - os development
нет, с какими собрал с теми и будет)
источник

BD

Berkus Decker in pro.osdev - os development
You may also wish to control which targets LLVM enables, or which LLVM components are built; see the Frequently Used LLVM-related variables below.

^ цитата с llvm.org/docs/CMake.httml
источник

0

0Nera in pro.osdev - os development
Здравствуйте!
Пишу ос по статье https://subscribe.ru/catalog/comp.soft.myosdev
Не могу слинковать. Виндузятный ld не даёт. Делал как в статье, но ничего не вышло.


Мой репозиторий:
https://github.com/Synapse-OS/SynapseOS
источник

0

0Nera in pro.osdev - os development
Кому не сложно, скиньте литературы по разработке ос на си под Windows
источник

Ct

Casual tears in pro.osdev - os development
Там судя по всему только таргет архитектура конфигурится (и по дефолту параметр выставлен all), причем  lld на эту конфигурацию таки действительно абсолютно пофигу, он поддерживает все что может всегда. Проблема тут в другом. clang выбирает тулчейн по таргет ос из таргет трипла и видя там none говорит "ой всё" и берет Generic_GCC/Generic_ELF тулчейн который тупо каждый чих дергает gcc, игноря -fuse-ld полностью.
источник

Ct

Casual tears in pro.osdev - os development
Обнаружив это я полез смотреть с каким таргетом линукс собирается шлангом и увидел там трипл вида <arch>-linux-gnu, что меня несколько удивило, ведь на osdev в статье Why do I need a Cross Compiler прямо пишут, что так делать нехорошо, ведь оно не на этой ос запускаться будет и компилятор может каких-нибудь "плохих" предположений наделать и завезти нам багов. osdev не прав, получается?
источник

d

disba1ancer in pro.osdev - os development
и не должен давать, тебе нужно собрать компилятор под i686-elf таргет, можно и под x86_64-elf таргет, но там есть подводные камни
источник

d

disba1ancer in pro.osdev - os development
под виндой тоже можно пилить, единственное нету нормальных инструменов для подготовки образа оси
источник

d

disba1ancer in pro.osdev - os development
ну или я полохо искал
источник

BV

Boris Vinogradov in pro.osdev - os development
да всё там есть
источник