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

Bug#942073: marisa: perl bindings are broken when linked with gcc-9



Control: tags -1 + help

Since I'm not quite familiar with Perl, any help or suggestions would
be highly appreciated.

Thanks,
Boyuan Yang

在 2019-10-09三的 23:45 +0300,Niko Tyni写道:
> Package: libmarisa-perl
> Version: 0.2.5-3
> Severity: grave
> Control: block 935737 with -1
> 
> As noticed by the autopkgtest checks, the marisa Perl bindings are
> totally broken in sid after the recent Perl 5.30 rebuild:
> 
>   $ perl -e 'use marisa'
>   Can't load '/usr/lib/x86_64-linux-
> gnu/perl5/5.30/auto/marisa/marisa.so' for module marisa:
> /usr/lib/x86_64-linux-gnu/perl5/5.30/auto/marisa/marisa.so: undefined
> symbol: _ZTVN10__cxxabiv120__si_class_type_infoE at /usr/lib/x86_64-
> linux-gnu/perl/5.30/DynaLoader.pm line 193.
>    at /usr/lib/x86_64-linux-gnu/perl5/5.30/marisa.pm line 11.
>   Compilation failed in require at -e line 1.
>   BEGIN failed--compilation aborted at -e line 1.
>  
> Rebuilding marisa in testing with Perl 5.28 triggers the same
> behaviour,
> so it's not a change in Perl 5.30 that broke it. The previous sid
> build
> in July is not broken.
> 
> It looks like this regressed with the gcc 8 -> 9 move. Linking the
> DSO manually with gcc-8 makes it go away, as seen below.
> 
> I have no idea what goes wrong here, but I noticed that broken
> versions
> of blib/arch/auto/marisa/marisa.so have no NEEDED entry for
> libmarisa.so.0
> (as seen with 'objdump -p').
> 
> ---- reproduce the error ----
> 
>   # apt build-dep libmarisa-perl
>   $ ./debian/rules build
>   $ cd bindings/perl
>   $ LD_LIBRARY_PATH=../../lib/marisa/.libs/ perl -I blib/arch -I
> blib/lib -e 'use marisa'
>   Can't load 'blib/arch/auto/marisa/marisa.so' for module marisa:
> blib/arch/auto/marisa/marisa.so: undefined symbol:
> _ZTVN10__cxxabiv120__si_class_type_infoE at /usr/lib/x86_64-linux-
> gnu/perl/5.30/DynaLoader.pm line 193.
>    at blib/lib/marisa.pm line 11.
>   Compilation failed in require at -e line 1.
>   BEGIN failed--compilation aborted at -e line 1.
> 
> ---- explicitly link with gcc-8, no error ---
> 
>   # apt install gcc-8
>   $ gcc-8 -shared -L/usr/local/lib -L../../lib/marisa/.libs -lmarisa
> -fstack-protector -Wl,-z,relro -Wl,-z,now -Wl,--as-needed  marisa-
> swig.o marisa-swig_wrap.o  -o blib/arch/auto/marisa/marisa.so
>   $ LD_LIBRARY_PATH=../../lib/marisa/.libs/ perl -I blib/arch -I
> blib/lib -e 'use marisa'
> 
> ---- explicitly link with gcc-9, same error again ---
> 
>   $ gcc-9 -shared -L/usr/local/lib -L../../lib/marisa/.libs -lmarisa
> -fstack-protector -Wl,-z,relro -Wl,-z,now -Wl,--as-needed  marisa-
> swig.o marisa-swig_wrap.o  -o blib/arch/auto/marisa/marisa.so
>   $ LD_LIBRARY_PATH=../../lib/marisa/.libs/ perl -I blib/arch -I
> blib/lib -e 'use marisa'
>   Can't load 'blib/arch/auto/marisa/marisa.so' for module marisa:
> blib/arch/auto/marisa/marisa.so: undefined symbol:
> _ZTVN10__cxxabiv120__si_class_type_infoE at /usr/lib/x86_64-linux-
> gnu/perl/5.30/DynaLoader.pm line 193.
>    at blib/lib/marisa.pm line 11.
>   Compilation failed in require at -e line 1.
>   BEGIN failed--compilation aborted at -e line 1.
> 

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: