sizeof - w/ rpmbuild

Sérgio Basto sergio at serjux.com
Sat Jun 20 13:46:01 UTC 2015


On Sáb, 2015-06-20 at 04:10 +0200, poma wrote:
> On 20.06.2015 04:00, Josh Stone wrote:
> > On 06/19/2015 06:47 PM, poma wrote:
> >> On 20.06.2015 03:30, Josh Stone wrote:
> >>> On 06/19/2015 05:51 PM, Josh Stone wrote:
> >>>> On 06/19/2015 05:16 PM, poma wrote:
> >>>>>
> >>>>> This is exactly the opposite of the case with the kernel
> >>>>> https://bugzilla.redhat.com/show_bug.cgi?id=1232206
> >>>>>
> >>>>>
> >>>>> - Local rpmbuild builds:
> >>>>>
> >>>>> binutils-2.25-11 - elfutils-0.163-1
> >>>>> 4.9M	NetworkManager-1.0.4-0.1.git20150618.8cffaf3bf5.fc23.x86_64.rpm
> >>>>>
> >>>>> binutils-2.25-10 - elfutils-0.163-1
> >>>>> 4.9M	NetworkManager-1.0.4-0.1.git20150618.8cffaf3bf5.fc23.x86_64.rpm
> >>>>>
> >>>>> binutils-2.25-10 - elfutils-0.162-2
> >>>>> 4.9M	NetworkManager-1.0.4-0.1.git20150618.8cffaf3bf5.fc23.x86_64.rpm
> >>>>>
> >>>>> binutils-2.25-10 - elfutils-0.162-1
> >>>>> 4.9M	NetworkManager-1.0.4-0.1.git20150618.8cffaf3bf5.fc23.x86_64.rpm
> >>>>>
> >>>>> binutils-2.25-10 - elfutils-0.161-8
> >>>>> 4.9M	NetworkManager-1.0.4-0.1.git20150618.8cffaf3bf5.fc23.x86_64.rpm
> >>>>>
> >>>>> binutils-2.25-9 - elfutils-0.161-8
> >>>>> 4.9M	NetworkManager-1.0.4-0.1.git20150618.8cffaf3bf5.fc23.x86_64.rpm
> >>>>>
> >>>>>
> >>>>> - Local mock build:
> >>>>>
> >>>>> /var/lib/mock/fedora-rawhide-x86_64/result/
> >>>>> 2.0M	NetworkManager-1.0.4-0.1.git20150618.8cffaf3bf5.fc23.x86_64.rpm
> >>>>>
> >>>>>
> >>>>> - Koji:
> >>>>>
> >>>>> https://kojipkgs.fedoraproject.org/packages/NetworkManager/1.0.4/0.1.git20150618.8cffaf3bf5.fc23/x86_64/
> >>>>> 2.0M	NetworkManager-1.0.4-0.1.git20150618.8cffaf3bf5.fc23.x86_64.rpm
> >>>>>
> >>>>>
> >>>>> Any idea why this multiplying size is happening with the rpmbuild?
> >>>>>
> >>>>> NetworkManager is just an example of a general issue.
> >>>>
> >>>> I'd start with "rpm -qvlp foo.rpm" to see what exactly is bigger.
> >>>> If it's an ELF file, compare "eu-readelf -S" or even "-a".
> >>>
> >>> FWIW, my "fedpkg local" produced 2.0M too.
> >>>
> >>> Perhaps you have devel packages for some optional NetworkManager
> >>> features that aren't normally enabled?  Or maybe you have the bad
> >>> libelf.so in your path somewhere from testing the strip issue?
> >>>
> >>
> >> - rpmbuild runs as:
> >>
> >> $ cat ~/.rpmmacros
> >> %debug_package %{nil}
> > 
> > Doesn't this prevent stripping?
> > 
> > The normal %debug_package sets %global __debug_package 1, which causes
> > __spec_install_post to run __debug_install_post, which runs
> > find-debuginfo.sh, which is what runs eu-strip to extract debuginfo.
> > 
> > Without that, the debug sections will be left in your files, as readelf
> > shows below, so of course they will be bigger!
> > 
> 
> But why is this happening only recently?
> 
> I use "%debug_package %{nil}" to exclude the construction of *debuginfo* packages.
> 
> Eeeeeeeeeeeeeeeeeeeeeeeeeee
> Am I really doing it the wrong way, so far!?

Hi, 
AFAIK , We, in package, enable build with debug (./configure
--enable-debug) to create good debuginfo packages. 
I think when rpmbuild begins do debuginfo packages strips the
binaries . 

For example pngquant.spec

./configure --prefix=%{_prefix} --enable-debug

file /usr/bin/pngquant

/usr/bin/pngquant: ELF 64-bit LSB executable, x86-64, version 1 (SYSV),
dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for
GNU/Linux 2.6.32,
BuildID[sha1]=ef857b7ad50d1791a17a46d2a02c6a502bebdaa0, stripped


> >> $ rpmbuild -ba NetworkManager.spec
> >>
> >>
> >> - mock runs as:
> >>
> >> $ mock --verbose --root=fedora-rawhide-x86_64 --with=baseonly --without=debuginfo --rebuild NM.src.rpm
> >>
> >>
> >> Significant differences:
> >>
> >> - rpm-qvlp-NM-rpmbuild-vs-mock.rpm.diff:
> >>
> >>  <   31392 Jun 19 23:54 /usr/bin/nm-online
> >>  < 1729192 Jun 19 23:54 /usr/bin/nmcli
> >>  ---
> >>  >   15344 Jun 19 23:54 /usr/bin/nm-online
> >>  >  563256 Jun 19 23:54 /usr/bin/nmcli
> >>  ---
> >>  <   83280 Jun 19 23:54 /usr/lib64/NetworkManager/libnm-settings-plugin-ibft.so
> >>  <    2696 Jun 19 23:54 /usr/lib64/NetworkManager/libnm-settings-plugin-ifcfg-rh.so
> >>  <   38800 Jun 19 23:54 /usr/lib64/pppd/2.4.7/nm-pppd-plugin.so
> >>  <   18808 Jun 19 23:54 /usr/libexec/nm-avahi-autoipd.action
> >>  <   19736 Jun 19 23:54 /usr/libexec/nm-dhcp-helper
> >>  <  152336 Jun 19 23:54 /usr/libexec/nm-dispatcher
> >>  < 4090448 Jun 19 23:54 /usr/libexec/nm-iface-helper
> >>  < 7846824 Jun 19 23:54 /usr/sbin/NetworkManager
> >>  ---
> >>  >   27456 Jun 19 23:54 /usr/lib64/NetworkManager/libnm-settings-plugin-ibft.so
> >>  >  185104 Jun 19 23:54 /usr/lib64/NetworkManager/libnm-settings-plugin-ifcfg-rh.so
> >>  >   15184 Jun 19 23:54 /usr/lib64/pppd/2.4.7/nm-pppd-plugin.so
> >>  >   11240 Jun 19 23:54 /usr/libexec/nm-avahi-autoipd.action
> >>  >   11304 Jun 19 23:54 /usr/libexec/nm-dhcp-helper
> >>  >   48640 Jun 19 23:54 /usr/libexec/nm-dispatcher
> >>  > 1006808 Jun 19 23:54 /usr/libexec/nm-iface-helper
> >>  > 1875056 Jun 19 23:54 /usr/sbin/NetworkManager
> >>
> >>
> >> - eu-readelf-S-NM-rpmbuild-vs-mock.diff:
> >>
> >>  < There are 38 section headers, starting at offset 0x77b228:
> >>  ---
> >>  > There are 30 section headers, starting at offset 0x1c94f0:
> >>  ---
> >>  < [27] .comment             PROGBITS     0000000000000000 001c50e0 00000058  1 MS     0   0  1
> >>  < [28] .debug_aranges       PROGBITS     0000000000000000 001c5138 00001d80  0        0   0  1
> >>  < [29] .debug_info          PROGBITS     0000000000000000 001c6eb8 0027f59a  0        0   0  1
> >>  < [30] .debug_abbrev        PROGBITS     0000000000000000 00446452 000240c8  0        0   0  1
> >>  < [31] .debug_line          PROGBITS     0000000000000000 0046a51a 0004ee66  0        0   0  1
> >>  < [32] .debug_str           PROGBITS     0000000000000000 004b9380 0003616d  1 MS     0   0  1
> >>  < [33] .debug_loc           PROGBITS     0000000000000000 004ef4ed 00214fcb  0        0   0  1
> >>  < [34] .debug_ranges        PROGBITS     0000000000000000 007044b8 00023e30  0        0   0  1
> >>  < [35] .shstrtab            STRTAB       0000000000000000 007282e8 00000177  0        0   0  1
> >>  < [36] .symtab              SYMTAB       0000000000000000 00728460 0002baa0 24       37 4551  8
> >>  < [37] .strtab              STRTAB       0000000000000000 00753f00 00027326  0        0   0  1
> >>  ---
> >>  > [27] .gnu_debuglink       PROGBITS     0000000000000000 001c50e0 0000001c  0        0   0  4
> >>  > [28] .gnu_debugdata       PROGBITS     0000000000000000 001c50fc 000042d0  0        0   0  1
> >>  > [29] .shstrtab            STRTAB       0000000000000000 001c93cc 00000123  0        0   0  1
> >>
> >>
> > 
> 

-- 
Sérgio M. B.



More information about the test mailing list