[Bug 2120661] Review Request: dnf5 - package management library

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

 



https://bugzilla.redhat.com/show_bug.cgi?id=2120661



--- Comment #7 from Petr Pisar <ppisar@xxxxxxxxxx> ---
(In reply to Petr Pisar from comment #6)
> (In reply to Miroslav Suchý from comment #5)
> > perl5-libdnf5.x86_64: W: undefined-non-weak-symbol
> > /usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so ....
> 
> We need to see which exact symbol is missing.
> 

# ldd -d -r /usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1
[...]
        libcrypt.so.2 => /lib64/libcrypt.so.2 (0x00007f8729d3e000)
undefined symbol: PL_thr_key   
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_sv_2bool_flags  
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_more_sv 
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_newRV   
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_call_method     
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_markstack_grow  
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_sv_2nv_flags    
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_croak_nocontext 
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_sv_setsv_flags  
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_sv_bless
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_free_tmps       
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_gv_init_pvn     
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_sv_2pv_flags    
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_get_sv  
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_sv_newmortal    
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_sv_setref_pv    
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_mg_get  
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_sv_2uv_flags    
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_newSVsv_flags   
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_pop_scope       
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_newSVuv 
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_newSViv 
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_sv_isobject     
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_hv_common_key_len       
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_sv_free2
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_newSV   
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_sv_magic
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_newSVpvn
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_sv_setiv
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_sv_setpvn       
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_newRV_noinc     
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_gv_add_by_type  
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_savetmps
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_stack_grow      
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_sv_setpvf_nocontext     
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_newXS   
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_sv_setpv
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_av_make 
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_hv_common       
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_av_len  
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_sv_2mortal      
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_more_bodies     
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_newSVnv 
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_sv_2iv_flags    
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_av_fetch
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_gv_stashpv      
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_mg_find 
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_push_scope      
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_sv_derived_from 
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)
undefined symbol: Perl_sv_backoff      
(/usr/lib64/perl5/vendor_perl/auto/libdnf5/repo/repo.so.1)

It's missing -lperl:

$ scanelf -n  redhat-linux-build/bindings/perl5/auto/libdnf5/repo/repo.so
 TYPE   NEEDED FILE 
ET_DYN libdnf5.so.1,libstdc++.so.6,libfmt.so.9,libgcc_s.so.1,libc.so.6
redhat-linux-build/bindings/perl5/auto/libdnf5/repo/repo.so 

>From a build log:

/usr/bin/g++ -fPIC -O2 -flto=auto -ffat-lto-objects -fexceptions -g
-grecord-gcc-switches -pipe -Wall -Werror=format-security
-Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS
-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong
-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic
-fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection
-Wl,--enable-new-dtags -Wl,-z,relro -Wl,--as-needed -Wl,-z,now
-specs=/usr/lib/rpm/redhat/redhat-hardened-ld
-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -Wl,-z,relro
-Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld
-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1
-specs=/usr/lib/rpm/redhat/redhat-package-notes -shared -Wl,-soname,repo.so.1
-o ../auto/libdnf5/repo/repo.so.1
CMakeFiles/perl5_repo.dir/CMakeFiles/perl5_repo.dir/repoPERL_wrap.cxx.o 
-Wl,-rpath,/home/test/rpmbuild/BUILD/dnf5-5.0.0/redhat-linux-build/libdnf:
../../../libdnf/libdnf5.so.1 -ldl -lstdc++fs -lstdc++ -lfmt -ljson-c -lmodulemd
-lgobject-2.0 -lglib-2.0 -lsolv -lsolvext -lrpm -lrpmio -lpopt -lxml2 -lgpgme
-lrepo -lglib-2.0 -lsolv -lsolvext -lrpm -lrpmio -lpopt -lxml2 -lgpgme -lrepo
-lsqlite3 

(Now something actually sets a dummy soname to "repo.so.1" and it breaks the
Perl loader: perl -e 'require libdnf5::repo': Can't locate loadable object for
module libdnf5::common. It searches for libdnf5/common.so.)

Upstream Perl does not link extensions to libperl. Fedora as well as some other
distributions patch Perl build systems to do it. Swig probably was missed. (The
problem is that upstream Perl does not have a configuration option to save
-lperl linker flag to.) I'd guess it's not a big deal.


-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are always notified about changes to this product and component
https://bugzilla.redhat.com/show_bug.cgi?id=2120661
_______________________________________________
package-review mailing list -- package-review@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to package-review-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/package-review@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue




[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite Conditions]     [KDE Users]

  Powered by Linux