[devel] need help: perl-Text-BibTeX linking problem

Alexey Tourbin at на altlinux.ru
Пт Мар 12 11:14:28 UTC 2010


On Fri, Mar 12, 2010 at 01:10:35PM +0300, Kirill Maslinsky wrote:
> Коллеги, нужна ваша помощь и совет: 
> http://git.altlinux.org/people/kirill/packages/?p=perl-Text-BibTeX.git;a=summary
> 
> Собирается, но на стадии verify-elf обнаруживается странная проблема с линковкой с библиотекой
> libbtparse.so. На обычный случай --as-needed не похоже, т.к. в строке
> линковки все указано в нужном порядке. Но очень сильно смущает то, что
> в процессе сборки эта самая линковка происходит _трижды_. (в логе можно
> поискать по строке: '** Creating libbtparse.so')
> 
> Полный лог сборки в аттаче, для сборки требует perl-Config-AutoConf, 
> он есть у меня в гите.

> Verifying ELF objects in /usr/src/tmp/perl-Text-BibTeX-buildroot (arch=normal,fhs=normal,lint=relaxed,rpath=normal,stack=normal,textrel=normal,unresolved=normal)
> verify-elf: WARNING: ./usr/lib/perl5/vendor_perl/x86_64-linux/auto/Text/BibTeX/BibTeX.so: not found: libbtparse.so
> verify-elf: WARNING: ./usr/lib/perl5/vendor_perl/x86_64-linux/auto/Text/BibTeX/BibTeX.so: undefined symbol: bt_initialize
> verify-elf: WARNING: ./usr/lib/perl5/vendor_perl/x86_64-linux/auto/Text/BibTeX/BibTeX.so: undefined symbol: bt_next_field

> verify-elf: ERROR: ./usr/bin/bibparse: not found: libbtparse.so
> verify-elf: ERROR: ./usr/bin/bibparse: undefined symbol: bt_initialize
> verify-elf: ERROR: ./usr/bin/bibparse: undefined symbol: bt_next_field

There's a problem with hardcoded /usr/lib.

Build.PL:
    53  ## HACK  HACK  HACK  HACK
    54  my $libdir = $builder->install_destination("bin");
    55  if ($^O =~ /mswin32/i) {
    56      $libdir = $ENV{WINDIR} || 'c:\\WINDOWS\\'; ## HACK HACK HACK
    57  } else {
    58      $libdir =~ s/\bbin\b/lib/;
    59  }
    60  $builder->add_build_element('usrlib');
    61  $builder->install_path( 'usrlib' => $libdir );
    62  
    63  $builder->create_build_script;

So the $libdir is "/usr/bin" with "bin" compomnent changed to "lib"
(line 58).  On x86_64, that should be "lib64".

--- a/perl-Text-BibTeX.spec
+++ b/perl-Text-BibTeX.spec
@@ -57,6 +57,8 @@ manual pages in the library).
 
 %prep
 %setup -q -n %m_distro-%version
+perl -pi -e 's|/lib/|/%_lib/|' Build.PL
+
 %build
 %add_optflags %optflags_shared
 %perl_vendor_build
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 198 байтов
Описание: отсутствует
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20100312/73b0db6a/attachment.bin>


Подробная информация о списке рассылки Devel