Здравствуйте.
Прошу помочь мне с решением следующей проблемы.
Я хочу откомпилирвать midnight commander для медия плеера hdx bd-1 : http://www.hdx1080.com
Железка собрана на процессоре Sigma Designs SMP8642.
Внутри установлен linux
sh-3.00# uname -a
Linux tango3 2.6.22.19-27-sigma #11 PREEMPT Wed Aug 25 13:46:30 CST 2010 mips GNU/Linux
На Ubuntu 10.04 в каталог /home/akhromov/CodeSourcery я установил Sourcery G++ Lite 4.3-51 for MIPS GNU/Linux отсюда: http://www.codesourcery.com
Исходники я загружаю в /home/akhromov/Stuff
Компилирую zlib.
# Установил окружение
$ export PATH=$HOME/CodeSourcery/Sourcery_G++_Lite/bin:$PATH
$ export CFLAGS='-EL -march=74kc -fPIC'
$ export CXXFLAGS='-EL -march=74kc -fPIC'
cd ~/Stuff
wget http://zlib.net/zlib-1.2.4.tar.gz
tar xvzf zlib-1.2.4.tar.gz
cd zlib-1.2.4
CC=mips-linux-gnu-gcc AR=mips-linux-gnu-ar RANLIB=mips-linux-gnu-ranlib ./configure --prefix=/home/akhromov/CodeSourcery/staging_dir
make
make install
Затем компилирую libpng-1.4.1
$ cd ~/Stuff
$ wget ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.4.1.tar.gz
$ tar xvzf libpng-1.4.1.tar.gz
$ cd libpng-1.4.1
$ export LDFLAGS="-L /home/akhromov/CodeSourcery/staging_dir/lib"
$ export CPPFLAGS="-I /home/akhromov/CodeSourcery/staging_dir/include"
$ ./configure --prefix=/home/akhromov/CodeSourcery/staging_dir --host=mips-linux-gnu
$ make
Вот здесь и начинаются первые проблемы:
. . .
. . .
. . .
/bin/sh ./libtool --tag=CC --mode=link mips-linux-gnu-gcc -EL -march=74kc -fPIC -no-undefined -export-dynamic -version-number 14:1:0 -Wl,--version-script=libpng.vers -L /home/akhromov/CodeSourcery/staging_dir/lib -o libpng14.la -rpath /home/akhromov/CodeSourcery/staging_dir/lib libpng14_la-png.lo libpng14_la-pngset.lo libpng14_la-pngget.lo libpng14_la-pngrutil.lo libpng14_la-pngtrans.lo libpng14_la-pngwutil.lo libpng14_la-pngread.lo libpng14_la-pngrio.lo libpng14_la-pngwio.lo libpng14_la-pngwrite.lo libpng14_la-pngrtran.lo libpng14_la-pngwtran.lo libpng14_la-pngmem.lo libpng14_la-pngerror.lo libpng14_la-pngpread.lo -lz -lm
libtool: link: require no space between `-L' and `/home/akhromov/CodeSourcery/staging_dir/lib'
make[1]: *** [libpng14.la] Error 1
Я вручную запустил libtool, убрав пробел после `-L`
akhromov@x200s:~/Stuff/libpng-1.4.1$ /bin/sh ./libtool --tag=CC --mode=link mips-linux-gnu-gcc -EL -march=74kc -fPIC -no-undefined -export-dynamic -version-number 14:1:0 -Wl,--version-script=libpng.vers -L/home/akhromov/CodeSourcery/staging_dir/lib -o libpng14.la -rpath /home/akhromov/CodeSourcery/staging_dir/lib libpng14_la-png.lo libpng14_la-pngset.lo libpng14_la-pngget.lo libpng14_la-pngrutil.lo libpng14_la-pngtrans.lo libpng14_la-pngwutil.lo libpng14_la-pngread.lo libpng14_la-pngrio.lo libpng14_la-pngwio.lo libpng14_la-pngwrite.lo libpng14_la-pngrtran.lo libpng14_la-pngwtran.lo libpng14_la-pngmem.lo libpng14_la-pngerror.lo libpng14_la-pngpread.lo -lz -lm
libtool: link: mips-linux-gnu-gcc -shared .libs/libpng14_la-png.o .libs/libpng14_la-pngset.o .libs/libpng14_la-pngget.o .libs/libpng14_la-pngrutil.o .libs/libpng14_la-pngtrans.o .libs/libpng14_la-pngwutil.o .libs/libpng14_la-pngread.o .libs/libpng14_la-pngrio.o .libs/libpng14_la-pngwio.o .libs/libpng14_la-pngwrite.o .libs/libpng14_la-pngrtran.o .libs/libpng14_la-pngwtran.o .libs/libpng14_la-pngmem.o .libs/libpng14_la-pngerror.o .libs/libpng14_la-pngpread.o -L/home/akhromov/CodeSourcery/staging_dir/lib -lz -lm -march=74kc -Wl,--version-script=libpng.vers -Wl,-soname -Wl,libpng14.so.14 -o .libs/libpng14.so.14.1.0
/home/akhromov/CodeSourcery/staging_dir/lib/libz.so: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
Но получаю странную ошибку:
/home/akhromov/CodeSourcery/staging_dir/lib/libz.so: could not read symbols: File in wrong format
Файл libz.so ссылается правильно:
akhromov@x200s:~$ ls -la /home/akhromov/CodeSourcery/staging_dir/lib
total 320
drwxr-xr-x 3 akhromov akhromov 4096 2010-09-26 13:16 .
drwxr-xr-x 5 akhromov akhromov 4096 2010-09-26 13:16 ..
-rw-r--r-- 1 akhromov akhromov 166250 2010-09-26 13:16 libz.a
lrwxrwxrwx 1 akhromov akhromov 13 2010-09-26 13:16 libz.so -> libz.so.1.2.4
lrwxrwxrwx 1 akhromov akhromov 13 2010-09-26 13:16 libz.so.1 -> libz.so.1.2.4
-rwxr-xr-x 1 akhromov akhromov 147068 2010-09-26 13:16 libz.so.1.2.4
drwxr-xr-x 2 akhromov akhromov 4096 2010-09-26 13:16 pkgconfig
libz.so.1.2.4, имеет вроде, как правильный формат:
akhromov@x200s:~/Stuff$ mips-linux-gnu-objdump -af ~/CodeSourcery/staging_dir/lib/libz.so.1.2.4
/home/akhromov/CodeSourcery/staging_dir/lib/libz.so.1.2.4: file format elf32-tradlittlemips
/home/akhromov/CodeSourcery/staging_dir/lib/libz.so.1.2.4
architecture: mips:isa32r2, flags 0x00000150:
HAS_SYMS, DYNAMIC, D_PAGED
start address 0x000013c0
На сайте Sourcery кто-то постил такой же вопрос, но остался без ответа.
В чем может быть проблема?
С уважением, Алексей.