Summary: | sci-physics/root with --as-needed => runtime freeze | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Andrew Savchenko <bircoph> |
Component: | Current packages | Assignee: | Gentoo Science Physics related packages <sci-physics> |
Status: | RESOLVED FIXED | ||
Severity: | normal | ||
Priority: | High | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
test sample
strace output of freeze |
Description
Andrew Savchenko
2009-09-30 23:02:07 UTC
I will wrangle your bug but please be sure it's valid! Did you test it with more _sane_ C{XX}FLAGS? (In reply to comment #1) > I will wrangle your bug but please be sure it's valid! Did you test it with > more _sane_ C{XX}FLAGS? OK, I tested it with CFLAGS="-O2 -march=core2" and CXXFLAGS=${CFLAGS} (root will not compile with -march=i386). And of course, nothing changed: it freezes with --as-needed and works OK without it. On my first posting I thought provided arguments are more than enough to convince that this is --as-needed triggered issue. (In reply to comment #0) > Hello, > > for both 5.22.00-r2 and 5.24.00 with the latest --as-needed from bug 280925 > compiled with -Wl,--as-needed at LDFLAGS I encounter runtime freeze after the > following actions: > > 1) ran root as usual without any macro or data files on CLI: > $ root -l > 2) Create TBrowser object: > new TBrowser > 3) Open a root file with TTree in it. > ...and root freezes, both TBrowser and CINT interpreter. Sorry I haven't use root for a while. Could you provide the exact test you did and with the file and the use flags, so I can reproduce? Thanks. I fail to see how -as-needed can be the root cause for this since it only affects the linker (unless it is a linker bug). Could you provide the strace output so we can see what root is doing. Thanks, Markus Created attachment 206577 [details] test sample Hello, (In reply to comment #3) > Sorry I haven't use root for a while. Could you provide the exact test you did > and with the file and the use flags, so I can reproduce? > Thanks. Test file is attached. Steps to reproduce: 1) root -l root [0] new TBrowser 2) Open test.root via TBrowser interface, then root freezes in my case. Here are my use flags for root: cern clarens doc examples fftw geant4 math mysql pythia6 pythia8 python qt4 reflex ssl xml xrootd -afs -cint7 -debug -emacs -kerberos -ldap -odbc -openmp -oracle -postgres -ruby -xinetd Created attachment 206579 [details] strace output of freeze Hi, (In reply to comment #4) > I fail to see how -as-needed can be the root cause > for this since it only affects the linker (unless it > is a linker bug). Could you provide the strace output > so we can see what root is doing. ROOT is not just an app, it contains its own interpreter with dynamic library loading, that's why --as-needed affect it. Another test: in my previous message I pointed out a way to reproduce a bug, but if you'll call gSystem->Load("libTree"); in interpreter prior to creation of TBrowser object it will open sample file without a problem. strace output is attached. One can see infinite loop in library access. I have disabled as-needed in the just committed 5.24.00-r1. Leaving this bug open for now. hi it seems that root-5.26.00-r2 does fine with as-needed. could you check on your side too, by removing the no-as-needed from the ebuild and adding it to your LDFLAGS? thanks Hello, with --as-needed it is not even possible to compile root-5.26.00-r2 with the following flags: USE="afs clarens doc examples fftw geant4 kerberos math mysql opengl pythia6 pythia8 qt4 reflex ssl xft xml xrootd -cint7 -emacs -ldap -odbc -openmp -oracle -postgres -python -ruby -xinetd" It fails here: g++ -m32 -march=athlon-xp -m32 --param l1-cache-line-size=64 --param l1-cache-size=64 --param l2-cache-size=512 -O2 -funswitch-loops -fpredicti ve-commoning -fgcse-after-reload -fomit-frame-pointer -ftree-loop-linear -floop-interchange -floop-strip-mine -mfpmath=sse -pipe -Wl,-O1 -Wl,-- as-needed ../../obj/XrdFrmAdminMain.o ../../obj/XrdFrmAdmin.o ../../obj/XrdFrmAdminAudit.o ../../obj/XrdFrmAdminFiles.o ../../obj/XrdFrmAdminFi nd.o ../../obj/XrdFrmAdminQuery.o ../../obj/XrdFrmAdminUnlink.o ../../obj/XrdXrootdMonitor.o ../../obj/XrdScheduler.o -lreadline -lncurses -ln sl -lpthread -lrt -ldl -lc -L../../lib -lXrdFrm -lXrdCms -lXrdOss -lXrdNet -lXrdOuc -lXrdSys -o ../../bin/frm_admin ../../lib/libXrdOss.a(XrdOssAio.o): In function `XrdOssFile::Fsync(XrdSfsAio*)': XrdOssAio.cc:(.text+0x5e): undefined reference to `aio_fsync64' ../../lib/libXrdOss.a(XrdOssAio.o): In function `XrdOssFile::Read(XrdSfsAio*)': XrdOssAio.cc:(.text+0x29c): undefined reference to `aio_read64' ../../lib/libXrdOss.a(XrdOssAio.o): In function `XrdOssFile::Write(XrdSfsAio*)': XrdOssAio.cc:(.text+0x4d8): undefined reference to `aio_write64' ../../lib/libXrdOss.a(XrdOssAio.o): In function `XrdOssAioWait(void*)': XrdOssAio.cc:(.text+0x93f): undefined reference to `aio_error64' XrdOssAio.cc:(.text+0x95b): undefined reference to `aio_return64' collect2: ld returned 1 exit status Unresolved symbols belong to librt: $ symlookup -qr "aio_.*64" /lib/librt-2.11.1.so: aio_return64 /lib/librt-2.11.1.so: aio_cancel64 /lib/librt-2.11.1.so: aio_fsync64 /lib/librt-2.11.1.so: aio_error64 /lib/librt-2.11.1.so: aio_read64 /lib/librt-2.11.1.so: aio_suspend64 /lib/librt-2.11.1.so: aio_write64 and -lrt is before -lXrdOss, so failure is predictable. Without --as-needed it compiles normally. Alright, I bumped a new revision: root-5.26.00-r3 with a big patch from upstream, more LDFLAGS propagation and as-needed fixes. Right now the ebuild allows as-needed, so please test. Thanks. (In reply to comment #10) After some base tests r3 works still fine for me (with --as-needed).
>
> After some base tests r3 works still fine for me (with --as-needed).
>
Good. Let's close this one for now.
|