|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Dmitry Fedorov 2:5020/400 24 Nov 2005 15:46:34 To : Alexander Nickulin Subject : Re: Кросс-компиляция(продолжение) -------------------------------------------------------------------------------- 2005-11-24, Alexander Nickulin <Alexander.Nickulin@p17.f312.n5025.z2.fidonet.org> > > DF> Для gcc 2.95.3 мне пришлось делать wrapper чтобы впихнуть нужные > DF> опции, в частности -mbig-endian, да еще и небольшой патч прикладывать, > DF> иначе libgcc правильно не собрать. Законными средствами этого добится > DF> невозможно. > > Ковырялся в документации. Лучше ковыряться в Makefiles. Лучший способ понять, почему то или это не работает. > Вроде бы если компилить с newlib, то полученная > библиотека libgcc сможет применятся для любого endian, или я неправильно > понял. --with-newlib --with-headers= применяются при первой сборке gcc без libc. --with-newlib здесь - просто трюк, не имеющий отношения к endianess. > gcc-4.0.2. А что за wrapper и patch? Патч применяется только для big-endian платформы: =========================================================== - --- gcc-2.95.3/Makefile.in.orig 2005-10-11 19:12:45.000000000 +0700 +++ gcc-2.95.3/Makefile.in 2005-10-11 19:13:59.000000000 +0700 @@ -234,6 +234,7 @@ # build libgcc2.a. We define it here so that it can itself be # overridden on the command line. GCC_FOR_TARGET = $$r/gcc/xgcc -B$$r/gcc/ -B$(build_tooldir)/bin/ -I$(build_tooldir)/include +GCC_FOR_TARGET += -mbig-endian CHILL_FOR_TARGET = ` \ if [ -f $$r/gcc/xgcc ] ; then \ - --- gcc-2.95.3/gcc/Makefile.in.orig 2005-10-11 19:12:54.000000000 +0700 +++ gcc-2.95.3/gcc/Makefile.in 2005-10-11 19:14:10.000000000 +0700 @@ -169,6 +169,7 @@ # Usually the one we just built. # Don't use this as a dependency--use $(GCC_PASSES) or $(GCC_PARTS). GCC_FOR_TARGET = ./xgcc -B$(build_tooldir)/bin/ -B./ -I$(build_tooldir)/include +GCC_FOR_TARGET += -mbig-endian # This is used instead of ALL_CFLAGS when compiling with GCC_FOR_TARGET. # It omits XCFLAGS, and specifies -B./. =========================================================== Законного способа впихнуть эту опцию я не нашел. TARGET=armeb | armbe - не помогает. gccwrapper - маленькая программка на C, вызывающая argv[0] с добавлением '__' (переименованный gcc или ld) и с добавлением в конец списка параметров дополнительных, определенных при компиляции wrapper'а. Это гарантирует незадавливание этих нужных мне параметров тупыми чужими мейкфайлами. Я бы так не извращался, если бы нашел более удобные способы. Hе знаю, может к 4-му gcc что-то и поменялось... > >> x86 big-endian не бывает, чтобы arm-* правильно скомпилить. > > DF> Этого я не понял. Причем тут x86? Ты же кроссом балуешся. > > Hу в смысле при попытке скомпилить arm-*-gcc пытался родному gcc-i686 указать > опцию endian, а там такого нету. глупости, не тому указываешь. --- ifmail v.2.15dev5.3 * Origin: INP (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/10175943ac461.html, оценка из 5, голосов 10
|