Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Sourcery G++ MIPS. Ошибка сборки библиотеки libpng 
:(
    Опции темы
AxaRu
Дата 29.9.2010, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 27.9.2010

Репутация: нет
Всего: нет



Здравствуйте.

Прошу помочь мне с решением следующей проблемы.
Я хочу откомпилирвать midnight commander для медия плеера HDX BD-1
Железка собрана на процессоре 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
Исходники проекта я загружаю в /home/akhromov/Stuff
Компилирую zlib:
Цитата
$ 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
$ export PATH=$HOME/CodeSourcery/Sourcery_G++_Lite/bin:$PATH
$ CFLAGS='-EL -march=74kc -fPIC' \
   CXXFLAGS='-EL -march=74kc -fPIC' \
   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/pn...ng-1.4.1.tar.gz
$ tar xvzf libpng-1.4.1.tar.gz
$ cd libpng-1.4.1
$ CFLAGS='-EL -march=74kc -fPIC' \
   CXXFLAGS='-EL -march=74kc -fPIC' \
   LDFLAGS="-L/home/akhromov/CodeSourcery/staging_dir/lib" \
   CPPFLAGS="-I/home/akhromov/CodeSourcery/staging_dir/include" \
   ./configure --prefix=/home/akhromov/CodeSourcery/staging_dir --host=mips-linux-gnu
$ make

Здесь получаю следующую ошибку:
Цитата
/home/akhromov/CodeSourcery/staging_dir/lib/libz.so: could not read symbols: File in wrong format
collect2: ld returned 1 exit status

Файл 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

Если я не указываю флаги компилятора '-EL -march=74kc -fPIC', то сборка проходит нормально, но работать этот код не будет, потому как у меня архитектура mipsel.
Пробовал последнюю сборку CodeSourcery - результат тот же.
Сборка последней версии libpng-1.4.4 не помогла.
Вот нашел эту статью. Вроде как по моей теме: Avoiding libtool minefields when cross-compiling
Но как применить это к моему случаю не понимаю.

Подскажите, что я не так делаю, куда копать?

С уважением, Алексей.

Это сообщение отредактировал(а) AxaRu - 29.9.2010, 13:58
PM MAIL   Вверх
smoke_man
Дата 29.9.2010, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 447
Регистрация: 25.1.2007
Где: Рязань

Репутация: нет
Всего: 17



При сборке libpng -  СС указывает на mips-linux-gnu-gcc?


--------------------
0x2b|~0x2b
PM MAIL ICQ GTalk   Вверх
AxaRu
Дата 29.9.2010, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 27.9.2010

Репутация: нет
Всего: нет



Да.
PM MAIL   Вверх
smoke_man
Дата 29.9.2010, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 447
Регистрация: 25.1.2007
Где: Рязань

Репутация: нет
Всего: 17



Только что собрал libpng под mips. Правда своим тулчейном. Все собралось без ошибок. Попробуй сделать Makefile, в котором делаешь export всех необходимых переменных и создай правила для сборки zlib и libpng.


--------------------
0x2b|~0x2b
PM MAIL ICQ GTalk   Вверх
AxaRu
Дата 29.9.2010, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 27.9.2010

Репутация: нет
Всего: нет



Вот тут и не ясно каких необходимых... Makefile генерятся configure и что туда добавить я как раз и не знаю...

Собственно заканчивается ошибкой на этой команде:
Цитата
/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  -EL -march=74kc -fPIC -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 -march=74kc   -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
make[1]: *** [libpng14.la] Error 1
make[1]: Leaving directory `/home/akhromov/Stuff/libpng-1.4.1'
make: *** [all] Error 2



Это сообщение отредактировал(а) AxaRu - 29.9.2010, 16:13
PM MAIL   Вверх
smoke_man
Дата 29.9.2010, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 447
Регистрация: 25.1.2007
Где: Рязань

Репутация: нет
Всего: 17



А при конфигурации zlib ключ --host указывал?

Это сообщение отредактировал(а) smoke_man - 29.9.2010, 16:32


--------------------
0x2b|~0x2b
PM MAIL ICQ GTalk   Вверх
AxaRu
Дата 29.9.2010, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 27.9.2010

Репутация: нет
Всего: нет



Нет. Сейчас пересоберу.
Ан-нет
Цитата
$  CFLAGS='-EL -march=74kc -fPIC' \
>    CXXFLAGS='-EL -march=74kc -fPIC' \
>    CC=mips-linux-gnu-gcc \
>    AR=mips-linux-gnu-ar \
>    LD=mips-linux-gnu-ld \
>    RANLIB=mips-linux-gnu-ranlib \
>    LDFLAGS="-L/home/akhromov/CodeSourcery/staging_dir/lib" \
>    CPPFLAGS="-I/home/akhromov/CodeSourcery/staging_dir/include" \
>    ./configure --prefix=/home/akhromov/CodeSourcery/staging_dir --host=mips-linux-gnu
unknown option: --host=mips-linux-gnu



Это сообщение отредактировал(а) AxaRu - 29.9.2010, 16:48
PM MAIL   Вверх
smoke_man
Дата 29.9.2010, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 447
Регистрация: 25.1.2007
Где: Рязань

Репутация: нет
Всего: 17



Насчет Makefile. Есть рабочая директория, в которой находятся директории с исходниками libpng и zlib, а так же дира fs, в которую происходит установка. 
Создается Makefile со следующими правилами:
Код

export BUILD_DIR=$(shell pwd)
INSTALL_DIR=$(BUILD_DIR)/fs
CROSS_COMPILE=$(TOOLCHAIN_PATH)/bin/mips-linux-gnu-
export CROSS_COMPILE
CC=$(CROSS_COMPILE)gcc
AR=$(CROSS_COMPILE)ar
LD=$(CROSS_COMPILE)ld
.......................................
export CC AR LD и т.д

APP=zlib libpng
.PHONY : $(APP)

all : $(APP)

zlib:
         cd $@; ./configure --host=mips-linux-gnu && make && make install DESTDIR=$(INSTALL_DIR);
libpng:
         cd $@; ./configure --host=mips-linux-gnu CFLAGS="-L$(INSTALL_DIR)/usr/lib -I$(INSTALL_DIR)/usr/include"&& make && make install DESTDIR=$(INCLUDE_DIR);

Т.е. при добавлении нового приложения необходимо просто добавить правило. А собирается это просто вызовом make.

Добавлено через 4 минуты и 49 секунд
Да, согласен у zlib нет опции host. В общем то, что выше как пример привел.


--------------------
0x2b|~0x2b
PM MAIL ICQ GTalk   Вверх
AxaRu
Дата 29.9.2010, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 27.9.2010

Репутация: нет
Всего: нет



За общий makefile спасибо, но что мне делать с моей сборкой?
Вот еще что не ясно. Если я не указываю:
Цитата
   LDFLAGS="-L/home/akhromov/CodeSourcery/staging_dir/lib" \
   CPPFLAGS="-I/home/akhromov/CodeSourcery/staging_dir/include" \

он начинает ругаться. Почему он не подставляет lib и include к --prefix=/home/akhromov/CodeSourcery/staging_dir?

Это сообщение отредактировал(а) AxaRu - 29.9.2010, 17:04
PM MAIL   Вверх
smoke_man
Дата 29.9.2010, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 447
Регистрация: 25.1.2007
Где: Рязань

Репутация: нет
Всего: 17



а попробуй сконфигурить таким образом:
Код

./configure --host=mips-linux-gnu CFLAGS="-Lzlib_path -I zlib_include" --prefix=you_path && make



--------------------
0x2b|~0x2b
PM MAIL ICQ GTalk   Вверх
AxaRu
Дата 29.9.2010, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 27.9.2010

Репутация: нет
Всего: нет



zlib установлена в /home/akhromov/CodeSourcery/staging_dir

Цитата
akhromov@x200s:~/CodeSourcery/staging_dir$ ls /home/akhromov/CodeSourcery/staging_dir/include
libpng14  zconf.h  zlib.h
akhromov@x200s:~/CodeSourcery/staging_dir$ ls /home/akhromov/CodeSourcery/staging_dir/lib
libz.a  libz.so  libz.so.1  libz.so.1.2.4  pkgconfig


Цитата
$  CFLAGS='-EL -march=74kc -fPIC' \
   CXXFLAGS='-EL -march=74kc -fPIC' \
   CC=mips-linux-gnu-gcc \
   AR=mips-linux-gnu-ar \
   LD=mips-linux-gnu-ld \
   RANLIB=mips-linux-gnu-ranlib \
   ./configure --prefix=/home/akhromov/CodeSourcery/staging_dir --host=mips-linux-gnu CFLAGS="-L/home/akhromov/CodeSourcery/staging_dir/lib -I/home/akhromov/CodeSourcery/staging_dir/include"


Цитата
 . . .
 . . .
 . . .
checking for memset... yes
checking for pow... (cached) no
checking for pow in -lm... (cached) yes
checking for zlibVersion in -lz... no
configure: error: zlib not installed
akhromov@x200s:~/Stuff/libpng-1.4.1$ 



Это сообщение отредактировал(а) AxaRu - 29.9.2010, 17:20
PM MAIL   Вверх
smoke_man
Дата 29.9.2010, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 447
Регистрация: 25.1.2007
Где: Рязань

Репутация: нет
Всего: 17



Тогда как домой приеду - попробую твоим тулчейном собрать и отпишусь.


--------------------
0x2b|~0x2b
PM MAIL ICQ GTalk   Вверх
AxaRu
Дата 29.9.2010, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 27.9.2010

Репутация: нет
Всего: нет



Спасибо.
PM MAIL   Вверх
smoke_man
Дата 29.9.2010, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 447
Регистрация: 25.1.2007
Где: Рязань

Репутация: нет
Всего: 17



что выдает
Код

 file zlib.so.1.2.4



--------------------
0x2b|~0x2b
PM MAIL ICQ GTalk   Вверх
AxaRu
Дата 29.9.2010, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 27.9.2010

Репутация: нет
Всего: нет



Цитата
$ file libz.so.1.2.4
libz.so.1.2.4: ELF 32-bit LSB shared object, MIPS, MIPS32 rel2 version 1 (SYSV), dynamically linked, with unknown capability 0xf41 = 0x756e6700, not stripped 

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | GNU toolchain | Следующая тема »


 




[ Время генерации скрипта: 0.1149 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.