Добрый день.

Задача: собрать binutils, gcc и libc под ppc64.

binutils собрался и поставился без проблем. Ура, имеем binutils.

Для gcc нужен libc, уже собранный под ppc64 (как его собирал тот, кто собрал
первую в жизни libc под ppc, я не знаю). Но - нашел порт libc под ppc64,
попытался перегнать в cross-пакеты с помощью dpkg-cross - в новых пакетах все
пути остаются прежними, и пакет не ставится, потому как Дебиан не дает
переписывать файлы (слава богу, иначе libc переписался бы оной под арх-ру
ppc64, и можно было бы смело идти вешаться).

 вопрос 1) как правильно пользоваться dpkg-cross, чтоб он делал правильные
           пакеты?

Я распаковал пакет отдельно, но не знаю точно, куда копировать файлы. Все,
что находится под "/usr" ("/usr/lib", "/usr/include"), нужно поместить под
"/usr/ppc64-linux". А куда девать то, что находится под "/lib"? Ничего
лучшего не придумал, как свалить все библиотеки в "/usr/ppc64-linux/lib".
gcc скомпилировался, но все равно не линкуется, линкер хочет /lib/libc.so.6.
Вот:

/usr/src/gcc-ppc64-linux-3.4.3/build/gcc/xgcc 
-B/usr/src/gcc-ppc64-linux-3.4.3/build/gcc/ -B/usr/ppc64-linux/bin/ 
-B/usr/ppc64-linux/lib/ -isystem /usr/ppc64-linux/include -isystem 
/usr/ppc64-linux/sys-include -O2  -DIN_GCC -DCROSS_COMPILE   -W -Wall 
-Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition 
 -isystem ./include  -mno-minimal-toc -fPIC -specs=bispecs -g 
-DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc 
-shared -nodefaultlibs -Wl,--soname=libgcc_s.so.1 
-Wl,--version-script=libgcc/./libgcc.map -Wl,-O1 -o libgcc_s.so.1.tmp  -fPIC 
-mstrict-align  libgcc/./_muldi3.o libgcc/./_negdi2.o libgcc/./_lshrdi3.o 
libgcc/./_ashldi3.o libgcc/./_ashrdi3.o libgcc/./_cmpdi2.o libgcc/./_ucmpdi2.o 
libgcc/./_floatdidf.o libgcc/./_floatdisf.o libgcc/./_fixunsdfsi.o 
libgcc/./_fixunssfsi.o libgcc/./_fixunsdfdi.o libgcc/./_fixdfdi.o 
libgcc/./_fixunssfdi.o libgcc/./_fixsfdi.o libgcc/./_fixxfdi.o 
libgcc/./_fixunsxfdi.o libgcc/./_floatdixf.o libgcc/./_fixunsxfsi.o 
libgcc/./_fixtfdi.o libgcc/./_fixunstfdi.o libgcc/./_floatditf.o 
libgcc/./_clear_cache.o libgcc/./_enable_execute_stack.o libgcc/./_trampoline.o 
libgcc/./__main.o libgcc/./_absvsi2.o libgcc/./_absvdi2.o libgcc/./_addvsi3.o 
libgcc/./_addvdi3.o libgcc/./_subvsi3.o libgcc/./_subvdi3.o libgcc/./_mulvsi3.o 
libgcc/./_mulvdi3.o libgcc/./_negvsi2.o libgcc/./_negvdi2.o libgcc/./_ctors.o 
libgcc/./_ffssi2.o libgcc/./_ffsdi2.o libgcc/./_clz.o libgcc/./_clzsi2.o 
libgcc/./_clzdi2.o libgcc/./_ctzsi2.o libgcc/./_ctzdi2.o 
libgcc/./_popcount_tab.o libgcc/./_popcountsi2.o libgcc/./_popcountdi2.o 
libgcc/./_paritysi2.o libgcc/./_paritydi2.o libgcc/./_divdi3.o 
libgcc/./_moddi3.o libgcc/./_udivdi3.o libgcc/./_umoddi3.o 
libgcc/./_udiv_w_sdiv.o libgcc/./_udivmoddi4.o libgcc/./_pack_sf.o 
libgcc/./_unpack_sf.o libgcc/./_addsub_sf.o libgcc/./_mul_sf.o 
libgcc/./_div_sf.o libgcc/./_fpcmp_parts_sf.o libgcc/./_compare_sf.o 
libgcc/./_eq_sf.o libgcc/./_ne_sf.o libgcc/./_gt_sf.o libgcc/./_ge_sf.o 
libgcc/./_lt_sf.o libgcc/./_le_sf.o libgcc/./_unord_sf.o libgcc/./_si_to_sf.o 
libgcc/./_sf_to_si.o libgcc/./_negate_sf.o libgcc/./_make_sf.o 
libgcc/./_sf_to_df.o libgcc/./_sf_to_tf.o libgcc/./_thenan_sf.o 
libgcc/./_sf_to_usi.o libgcc/./_usi_to_sf.o libgcc/./_pack_df.o 
libgcc/./_unpack_df.o libgcc/./_addsub_df.o libgcc/./_mul_df.o 
libgcc/./_div_df.o libgcc/./_fpcmp_parts_df.o libgcc/./_compare_df.o 
libgcc/./_eq_df.o libgcc/./_ne_df.o libgcc/./_gt_df.o libgcc/./_ge_df.o 
libgcc/./_lt_df.o libgcc/./_le_df.o libgcc/./_unord_df.o libgcc/./_si_to_df.o 
libgcc/./_df_to_si.o libgcc/./_negate_df.o libgcc/./_make_df.o 
libgcc/./_df_to_sf.o libgcc/./_df_to_tf.o libgcc/./_thenan_df.o 
libgcc/./_df_to_usi.o libgcc/./_usi_to_df.o libgcc/./tramp.o 
libgcc/./ppc64-fp.o libgcc/./darwin-ldouble.o  libgcc/./unwind-dw2.o 
libgcc/./unwind-dw2-fde-glibc.o libgcc/./unwind-sjlj.o libgcc/./gthr-gnat.o 
libgcc/./unwind-c.o -lc && rm -f libgcc_s.so && if [ -f libgcc_s.so.1 ]; then 
mv -f libgcc_s.so.1 libgcc_s.so.1.backup; else true; fi && mv libgcc_s.so.1.tmp 
libgcc_s.so.1
/usr/ppc64-linux/bin/ld: skipping incompatible /lib/libc.so.6 when searching 
for /lib/libc.so.6
/usr/ppc64-linux/bin/ld: cannot find /lib/libc.so.6
collect2: ld returned 1 exit status

 вопрос 2) что делать?? :)


Большое спасибо всем откликнувшимся.


-- 
Best regards,
Timur Elzhov
Warelex LLC

Ответить