Re: [DynInst_API:] Improving dyninst rpm packaging


Date: Wed, 13 Jun 2012 18:25:48 -0400
From: William Cohen <wcohen@xxxxxxxxxx>
Subject: Re: [DynInst_API:] Improving dyninst rpm packaging
On 06/13/2012 05:37 PM, Matthew LeGendre wrote:
> 
> Will,
> 
> Thanks for the patches.  The notests patch is trivially correct.  The versioning patch is more complicated and will need review, but the ideas are right.
> 
> -Matt

Hi Matt,

The versioning patch helps get the library names correct, but doesn't solve the problem. The ldd still show dependencies on the unversioned dyninst shared libraries:

$ rpm -qRp rpmbuild/RPMS/x86_64/dyninst-8.0-0.11.fc17git.x86_64.rpm 
/sbin/ldconfig  
/sbin/ldconfig  
config(dyninst) = 8.0-0.11.fc17git
libc.so.6  
libc.so.6()(64bit)  
libc.so.6(GLIBC_2.0)  
libc.so.6(GLIBC_2.1.3)  
libc.so.6(GLIBC_2.14)(64bit)  
libc.so.6(GLIBC_2.2.5)(64bit)  
libc.so.6(GLIBC_2.3)(64bit)  
libc.so.6(GLIBC_2.3.2)(64bit)  
libc.so.6(GLIBC_2.3.4)(64bit)  
libcommon.so()(64bit)  
libdl.so.2  
libdl.so.2()(64bit)  
libdl.so.2(GLIBC_2.0)  
libdl.so.2(GLIBC_2.1)  
libdl.so.2(GLIBC_2.2.5)(64bit)  
libdwarf.so.0()(64bit)  
libdyninstAPI.so()(64bit)  
libelf.so.1()(64bit)  
libelf.so.1(ELFUTILS_1.0)(64bit)  
libgcc_s.so.1()(64bit)  
libgcc_s.so.1(GCC_3.0)(64bit)  
libinstructionAPI.so()(64bit)  
libm.so.6()(64bit)  
libm.so.6(GLIBC_2.2.5)(64bit)  
libparseAPI.so()(64bit)  
libpcontrol.so()(64bit)  
libpthread.so.0()(64bit)  
libpthread.so.0(GLIBC_2.2.5)(64bit)  
libpthread.so.0(GLIBC_2.3.2)(64bit)  
libstackwalk.so()(64bit)  
libstdc++.so.6()(64bit)  
libstdc++.so.6(CXXABI_1.3)(64bit)  
libstdc++.so.6(GLIBCXX_3.4)(64bit)  
libstdc++.so.6(GLIBCXX_3.4.10)(64bit)  
libstdc++.so.6(GLIBCXX_3.4.11)(64bit)  
libstdc++.so.6(GLIBCXX_3.4.15)(64bit)  
libstdc++.so.6(GLIBCXX_3.4.9)(64bit)  

I need to look around at other packages and see how they do things.

-Will

> 
> On Wed, 13 Jun 2012, William Cohen wrote:
>> Hi,
>>
>> I have gotten back to the dyninst packaging for rpm.  I have been using the dyninst/dyninst_proccontrol branch. One of the things that occurred during the build was that it would attempt build all the tests. This is undesired because it requires many other packages and greatly slows the build.  I am not sure that the the attached dyninst-notest.patch is the best way to address this, but it eliminates the undesired build of the tests.
>>
>> The resulting dyninst rpms were not installable because all the linking is done with unversioned shared libaries (libcommon.so) then later the library names are changed in the install to versions names (libcommon.so.8.0). The rpmbuild process goes through and looks for implicit library dependencies using ldd (http://www.rpm.org/max-rpm/s1-rpm-depend-auto-depend.html), and finds that the libraries use the unversioned names rather than the versioned names.  The dyninst-vers.patch is an attempt to make the linker get the correct versions of the libraries. dyninst builds, but the resulting rpms do not install because of the library versioning issue.
>>
>> There is a scratch build of an proccontrol git branch and these patches at:
>>
>> http://koji.fedoraproject.org/koji/taskinfo?taskID=4159913
>>
>> -Will
>>

[← Prev in Thread] Current Thread [Next in Thread→]