[sisyphus] компиляция программы и файлы *.a
Шенцев Алексей Владимирович
=?iso-8859-1?q?ashen_=CE=C1_nsrz=2Eru?=
Ср Окт 18 17:23:27 MSD 2006
В сообщении от Среда 18 октября 2006 12:50 Damir Shayhutdinov написал(a):
> > > > Что то не доставил, или не так пересобирал directfb со статикой?
> > > Ага, надо добавить -lm к строке линковки. И еще -lsysfs.
> > Я в спеке directfb изменил следующие строки:
> > %configure \
> > --enable-shared \
> > --enable-static=yes \
> > и
> > %_libdir/lib*.*
> > А как нужно было сделать с учётом выше вами сказанного?
> Да так и надо было делать скорее всего.
Может мантейнер directfb в дополнение к libdirectfb-devel сделает и
libdirectfb-devel-static? Эх, мячты ... :)
> Просто для .so файлов их зависимости хранятся в самом файле (NEEDED в
> ELF), а для .a файлов их негде хранить, поэтому приходится всякие -lm
> и -lsysfs добавлять не к строчке линковки библиотеки, а к строчке
> линковки исполняемых файлов, линкуемых со статическими библиотеками.
> Что вы линкуете с libdirectfb_fbdev.a ? Вот туда и надо добавлять.
> Вообще для этих целей и создавался формат libtool library (.la). В
> него как раз заносятся все зависимости как для статических, так и для
> динамических либ. Но в Альте .la не используются, так как все
> динамикой собирается.
> Поэтому всем кто собирает статикой приходится закрывать unresolved
> symbols собственноручно, добавляя нужные -lчто-то там в список того, с
> чем линкуется исполняемый файл.
Спасибо за разъяснения. Делал снчала в ручную:
autoreconf -fisv
./configure --prefix=/
make
вроде всё без ошибок прошло. Но вот при сборке пакета вылезло такое:
-(ashen на oasu3)-(~/RPM/SPECS)-> rpmbuild -ba splashy.spec
Выполняется(%prep): /bin/sh -e /home/ashen/tmp/rpm-tmp.84808
+ umask 022
+ /bin/mkdir -p /home/ashen/RPM/BUILD
+ cd /home/ashen/RPM/BUILD
+ cd /home/ashen/RPM/BUILD
+ rm -rf splashy-0.1.8.1
+ echo 'Source #0 (splashy-0.1.8.1.tar.bz2):'
Source #0 (splashy-0.1.8.1.tar.bz2):
+ /bin/bzip2 -dc /home/ashen/RPM/SOURCES/splashy-0.1.8.1.tar.bz2
+ /bin/tar -xf -
+ cd splashy-0.1.8.1
+ /bin/chmod -Rf u+rwX,go-w .
+ echo 'Patch #0 (splashy-path.patch):'
Patch #0 (splashy-path.patch):
+ /usr/bin/patch -p0 -s
1 out of 1 hunk FAILED -- saving rejects to file Makefile.am.rej
ошибка: Неверный код возврата из /home/ashen/tmp/rpm-tmp.84808 (%prep)
Т.е. возникла ошибка с наложением первого патча?
Хотя в спеке указано так:
-(ashen на oasu3)-(~/RPM/SPECS)-> cat splashy.spec
Name: splashy
Version: 0.1.8.1
Release: alt1
Summary: A complete user-mode, POSIX, boot splashing system
Group: System Environment/Base
License: GPL
URL: http://splashy.alioth.debian.org
Source0: splashy-%{version}.tar.bz2
Source1: splashy-fedora.tar.bz2
Patch0: splashy-path.patch
Patch1: splashy-directfb.patch
Patch2: splashy-scripts.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
BuildRequires: glib2-devel-static
BuildRequires: directfb-devel
BuildRequires: zlib-devel-static
Requires: kbd
Requires(preun): /sbin/chkconfig
Requires(post): /sbin/chkconfig
%description
Splashy is a next generation boot splashing system for Linux systems. It needs
no patches to the kernel and itБ─≥s installed like a normal package. Make your
boot process eye-candy with Splashy!
%prep
%setup -q
%patch0
%patch1
%patch2
В чём косяк то получился?
--
С уважением Шенцев Алексей Владимирович.
E-mail: ashen на nsrz.ru
ICQ: 271053845
Подробная информация о списке рассылки Sisyphus