[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

ppc64, cross-compiling problems



Добрый день.

Задача: собрать 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



Reply to: