Только что заметил, что clang использует gnu linker. Добавил параметр -fuse-ld=lld :
cc -fuse-ld=lld -v -target armv6-freebsd-eabi --sysroot /mnt 1.c :-) On Fri, 6 Sep 2019 08:11:19 +0700 Eugene Grosbein <[email protected]> wrote: > 06.09.2019 0:49, Nick Kostirya пишет: > > > Привет. > > Подскажите, пожалуйста, как на FreeBSD 11.2 amd64 скомпилировать бинарник > > для FreeBSD-11.2-RELEASE-arm-armv6-BANANAPI.img.xz ? > > > > Пробую при помощи clang так: > > mdconfig -a -t vnode -u 0 -f FreeBSD-11.2-RELEASE-arm-armv6-BANANAPI.img > > mount /dev/md0s2a /mnt/ > > cc -target armv6-freebsd-eabi 1.c --sysroot /mnt -v > > > > И получаю следующую ошибку: > > > > FreeBSD clang version 6.0.0 (tags/RELEASE_600/final 326565) (based on LLVM > > 6.0.0) > > Target: armv6--freebsd-eabi > > Thread model: posix > > InstalledDir: /usr/bin > > "/usr/bin/cc" -cc1 -triple armv6kz--freebsd-eabi -emit-obj -mrelax-all > > -disable-free -disable-llvm-verifier -discard-value-names -main-file-name > > 1.c -mrelocation-model static -mthread-model posix -mdisable-fp-elim > > -masm-verbose -mconstructor-aliases -target-cpu arm1176jzf-s > > -target-feature +soft-float -target-feature +soft-float-abi -target-feature > > -neon -target-feature -crypto -target-feature +strict-align -target-abi > > aapcs -msoft-float -mfloat-abi soft -fallow-half-arguments-and-returns > > -dwarf-column-info -debugger-tuning=gdb -v -resource-dir > > /usr/lib/clang/6.0.0 -isysroot /mnt -fdebug-compilation-dir > > /home/nick/FreeBSD/arm -ferror-limit 19 -fmessage-length 144 > > -fno-signed-char -fobjc-runtime=gnustep -fdiagnostics-show-option > > -fcolor-diagnostics -o /tmp/1-bc2ddd.o -x c 1.c > > clang -cc1 version 6.0.0 based upon LLVM 6.0.0 default target > > x86_64-unknown-freebsd11.2 > > #include "..." search starts here: > > #include <...> search starts here: > > /usr/lib/clang/6.0.0/include > > /mnt/usr/include > > End of search list. > > "/usr/bin/ld" --sysroot=/mnt --eh-frame-hdr -dynamic-linker > > /libexec/ld-elf.so.1 --enable-new-dtags -o a.out /mnt/usr/lib/crt1.o > > /mnt/usr/lib/crti.o /mnt/usr/lib/crtbegin.o -L/mnt/usr/lib /tmp/1-bc2ddd.o > > -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s > > --no-as-needed /mnt/usr/lib/crtend.o /mnt/usr/lib/crtn.o > > /mnt/usr/lib/crt1.o: file not recognized: File format not recognized > > cc: error: linker command failed with exit code 1 (use -v to see > > invocation) > > Чтобы не бороться с ветряными мельницами, лучше всего развернуть скажем в > /home/arm6 > готовый мир для FreeBSD/arm6 (взять из образа) и использовать > qemu-user-static из портов: > > mount -t devfs devfs /home/arm6/dev > # если нужны порты > mount -t nullfs /usr/ports /home/arm6/usr/ports > chroot /home/arm6 /usr/local/bin/qemu-arm-static /bin/sh -E > > Получаешь обычный шелл, который работает с ядром amd64, > но он сам и исполняемые им бинари от ARM, включая компилятор. > > Я так порты собирал, правда для MIPS32, но суть та же. Потом результат > запускал на реальном железе. > > > _______________________________________________ freebsd mailing list [email protected] http://mailman.uafug.org.ua/mailman/listinfo/freebsd
