gcc?(или другой какой-нибудь вариант, мне оба не нравятся)
Что такое кросскомпайлер ld и зачем пользоваться gcc когда есть нормальный кросс компилятор.
Ну я, наверное, неправильно выразился, ld в macos не гнушный, насколько я понимаю, и не умеет в elf, поэтому я взял i686-elf-ld и соотвественно весь тулкит i686-elf-*, в том числе i686-elf-gcc
Ну брать хостовый тулчейн для осдева вообще плохая идея, но например lld можно заставить любой аутпут генерить
Видел lld, но чет его как-то сложно было завести под m1 мак, поэтому пока остановился над(даже над этим долго мучался, чтоб grub нормально всем этим скомплить)
Решил сейчас перейти на clang и lld, но понял, что на macos нет lld, это я что-то не так делаю?
brew install llvm мб?
как это нет lld, а чем по твоему он код линкует)
Через системный линкер(ld), я так понимаю
а чем является этот системный ld?
Хороший вопрос, он идет с xcode, но он точно не умеет в elf
значит нужно взять тот который умеет
Угу, тут просто человек говорил, что можно взять lld от llvm, но, видимо, я не уточнил, что нужно на m1:(
так соберите llvm на м1
Чтобы перейти нормально на кланг и ллд https://github.com/metta-systems/metta/blob/develop/build_toolchain.sh
Спасибо, my bad, lld нормально работает на маке, при чем для си, практически ничего не пришлось менять, лишь немного поправить синтаксис скрипта линкера(block убрать). Теперь все работает даже с -freestanding, правда не решился пока граб заново пересобирать clang’ом(да и большой необходимости нет)
Обсуждают сегодня