sizeof - w/ rpmbuild

poma pomidorabelisima at gmail.com
Sat Jun 20 10:17:22 UTC 2015


On 20.06.2015 04:10, 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!?
> 
> 

An exemplary example:

$ du -h xfce4-mixer*
104K	xfce4-mixer-debug-before
432K	xfce4-mixer-debug-recent
84K	xfce4-mixer-strip-recent


eu-readelf -S xfce4-mixer-debug-before:
- *with* %debug_package %{nil}

There are 31 section headers, starting at offset 0x18d20:

Section Headers:
[Nr] Name                 Type         Addr             Off      Size     ES Flags Lk Inf Al
[ 0]                      NULL         0000000000000000 00000000 00000000  0        0   0  0
[ 1] .interp              PROGBITS     0000000000400238 00000238 0000001c  0 A      0   0  1
[ 2] .note.ABI-tag        NOTE         0000000000400254 00000254 00000020  0 A      0   0  4
[ 3] .note.gnu.build-id   NOTE         0000000000400274 00000274 00000024  0 A      0   0  4
[ 4] .gnu.hash            GNU_HASH     0000000000400298 00000298 00000080  0 A      5   0  8
[ 5] .dynsym              DYNSYM       0000000000400318 00000318 00001cc8 24 A      6   1  8
[ 6] .dynstr              STRTAB       0000000000401fe0 00001fe0 00001b6b  0 A      0   0  1
[ 7] .gnu.version         GNU_versym   0000000000403b4c 00003b4c 00000266  2 A      5   0  2
[ 8] .gnu.version_r       GNU_verneed  0000000000403db8 00003db8 00000050  0 A      6   2  8
[ 9] .rela.dyn            RELA         0000000000403e08 00003e08 00000060 24 A      5   0  8
[10] .rela.plt            RELA         0000000000403e68 00003e68 00001bc0 24 AI     5  12  8
[11] .init                PROGBITS     0000000000405a28 00005a28 0000001a  0 AX     0   0  4
[12] .plt                 PROGBITS     0000000000405a50 00005a50 00001290 16 AX     0   0 16
[13] .text                PROGBITS     0000000000406ce0 00006ce0 000078c2  0 AX     0   0 16
[14] .fini                PROGBITS     000000000040e5a4 0000e5a4 00000009  0 AX     0   0  4
[15] .rodata              PROGBITS     000000000040e5c0 0000e5c0 00001688  0 A      0   0 32
[16] .eh_frame_hdr        PROGBITS     000000000040fc48 0000fc48 000003d4  0 A      0   0  4
[17] .eh_frame            PROGBITS     0000000000410020 00010020 000016b4  0 A      0   0  8
[18] .init_array          INIT_ARRAY   0000000000611c20 00011c20 00000008  0 WA     0   0  8
[19] .fini_array          FINI_ARRAY   0000000000611c28 00011c28 00000008  0 WA     0   0  8
[20] .jcr                 PROGBITS     0000000000611c30 00011c30 00000008  0 WA     0   0  8
[21] .data.rel.ro         PROGBITS     0000000000611c40 00011c40 000000d8  0 WA     0   0 32
[22] .dynamic             DYNAMIC      0000000000611d18 00011d18 000002c0 16 WA     6   0  8
[23] .got                 PROGBITS     0000000000611fd8 00011fd8 00000020  8 WA     0   0  8
[24] .got.plt             PROGBITS     0000000000612000 00012000 00000958  8 WA     0   0  8
[25] .data                PROGBITS     0000000000612958 00012958 00000004  0 WA     0   0  1
[26] .bss                 NOBITS       0000000000612960 0001295c 00000100  0 WA     0   0  8
[27] .comment             PROGBITS     0000000000000000 0001295c 0000005b  1 MS     0   0  1
[28] .shstrtab            STRTAB       0000000000000000 000129b7 00000115  0        0   0  1
[29] .symtab              SYMTAB       0000000000000000 00012ad0 00003300 24       30 177  8
[30] .strtab              STRTAB       0000000000000000 00015dd0 00002f49  0        0   0  1


eu-readelf -S xfce4-mixer-debug-recent:
- with %debug_package %{nil}

There are 37 section headers, starting at offset 0x6ad38:

Section Headers:
[Nr] Name                 Type         Addr             Off      Size     ES Flags Lk Inf Al
[ 0]                      NULL         0000000000000000 00000000 00000000  0        0   0  0
[ 1] .interp              PROGBITS     0000000000000238 00000238 0000001c  0 A      0   0  1
[ 2] .note.ABI-tag        NOTE         0000000000000254 00000254 00000020  0 A      0   0  4
[ 3] .note.gnu.build-id   NOTE         0000000000000274 00000274 00000024  0 A      0   0  4
[ 4] .gnu.hash            GNU_HASH     0000000000000298 00000298 00000048  0 A      5   0  8
[ 5] .dynsym              DYNSYM       00000000000002e0 000002e0 00001cf8 24 A      6   2  8
[ 6] .dynstr              STRTAB       0000000000001fd8 00001fd8 00001b7a  0 A      0   0  1
[ 7] .gnu.version         GNU_versym   0000000000003b52 00003b52 0000026a  2 A      5   0  2
[ 8] .gnu.version_r       GNU_verneed  0000000000003dc0 00003dc0 00000050  0 A      6   2  8
[ 9] .rela.dyn            RELA         0000000000003e10 00003e10 00000420 24 A      5   0  8
[10] .rela.plt            RELA         0000000000004230 00004230 00001ba8 24 AI     5  12  8
[11] .init                PROGBITS     0000000000005dd8 00005dd8 0000001a  0 AX     0   0  4
[12] .plt                 PROGBITS     0000000000005e00 00005e00 00001280 16 AX     0   0 16
[13] .text                PROGBITS     0000000000007080 00007080 00007ba2  0 AX     0   0 16
[14] .fini                PROGBITS     000000000000ec24 0000ec24 00000009  0 AX     0   0  4
[15] .rodata              PROGBITS     000000000000ec40 0000ec40 000015e8  0 A      0   0 32
[16] .eh_frame_hdr        PROGBITS     0000000000010228 00010228 000003d4  0 A      0   0  4
[17] .eh_frame            PROGBITS     0000000000010600 00010600 000016f4  0 A      0   0  8
[18] .init_array          INIT_ARRAY   00000000002121f8 000121f8 00000008  0 WA     0   0  8
[19] .fini_array          FINI_ARRAY   0000000000212200 00012200 00000008  0 WA     0   0  8
[20] .jcr                 PROGBITS     0000000000212208 00012208 00000008  0 WA     0   0  8
[21] .data.rel.ro         PROGBITS     0000000000212220 00012220 00000158  0 WA     0   0 32
[22] .dynamic             DYNAMIC      0000000000212378 00012378 000002e0 16 WA     6   0  8
[23] .got                 PROGBITS     0000000000212658 00012658 000009a8  8 WA     0   0  8
[24] .data                PROGBITS     0000000000213000 00013000 00000004  0 WA     0   0  1
[25] .bss                 NOBITS       0000000000213008 00013004 00000100  0 WA     0   0  8
[26] .comment             PROGBITS     0000000000000000 00013004 00000058  1 MS     0   0  1
[27] .debug_aranges       PROGBITS     0000000000000000 0001305c 00000240  0        0   0  1
[28] .debug_info          PROGBITS     0000000000000000 0001329c 00036e7b  0        0   0  1
[29] .debug_abbrev        PROGBITS     0000000000000000 0004a117 00002c28  0        0   0  1
[30] .debug_line          PROGBITS     0000000000000000 0004cd3f 0000521c  0        0   0  1
[31] .debug_str           PROGBITS     0000000000000000 00051f5b 000089f8  1 MS     0   0  1
[32] .debug_loc           PROGBITS     0000000000000000 0005a953 000099c8  0        0   0  1
[33] .debug_ranges        PROGBITS     0000000000000000 0006431b 00000340  0        0   0  1
[34] .shstrtab            STRTAB       0000000000000000 0006465b 00000165  0        0   0  1
[35] .symtab              SYMTAB       0000000000000000 000647c0 00003510 24       36 198  8
[36] .strtab              STRTAB       0000000000000000 00067cd0 00003066  0        0   0  1


eu-readelf -S xfce4-mixer-strip-recent: 
- without %debug_package %{nil}

There are 29 section headers, starting at offset 0x139f0:

Section Headers:
[Nr] Name                 Type         Addr             Off      Size     ES Flags Lk Inf Al
[ 0]                      NULL         0000000000000000 00000000 00000000  0        0   0  0
[ 1] .interp              PROGBITS     0000000000000238 00000238 0000001c  0 A      0   0  1
[ 2] .note.ABI-tag        NOTE         0000000000000254 00000254 00000020  0 A      0   0  4
[ 3] .note.gnu.build-id   NOTE         0000000000000274 00000274 00000024  0 A      0   0  4
[ 4] .gnu.hash            GNU_HASH     0000000000000298 00000298 00000048  0 A      5   0  8
[ 5] .dynsym              DYNSYM       00000000000002e0 000002e0 00001cf8 24 A      6   2  8
[ 6] .dynstr              STRTAB       0000000000001fd8 00001fd8 00001b7a  0 A      0   0  1
[ 7] .gnu.version         GNU_versym   0000000000003b52 00003b52 0000026a  2 A      5   0  2
[ 8] .gnu.version_r       GNU_verneed  0000000000003dc0 00003dc0 00000050  0 A      6   2  8
[ 9] .rela.dyn            RELA         0000000000003e10 00003e10 00000420 24 A      5   0  8
[10] .rela.plt            RELA         0000000000004230 00004230 00001ba8 24 AI     5  12  8
[11] .init                PROGBITS     0000000000005dd8 00005dd8 0000001a  0 AX     0   0  4
[12] .plt                 PROGBITS     0000000000005e00 00005e00 00001280 16 AX     0   0 16
[13] .text                PROGBITS     0000000000007080 00007080 00007ba2  0 AX     0   0 16
[14] .fini                PROGBITS     000000000000ec24 0000ec24 00000009  0 AX     0   0  4
[15] .rodata              PROGBITS     000000000000ec40 0000ec40 000015e8  0 A      0   0 32
[16] .eh_frame_hdr        PROGBITS     0000000000010228 00010228 000003d4  0 A      0   0  4
[17] .eh_frame            PROGBITS     0000000000010600 00010600 000016f4  0 A      0   0  8
[18] .init_array          INIT_ARRAY   00000000002121f8 000121f8 00000008  0 WA     0   0  8
[19] .fini_array          FINI_ARRAY   0000000000212200 00012200 00000008  0 WA     0   0  8
[20] .jcr                 PROGBITS     0000000000212208 00012208 00000008  0 WA     0   0  8
[21] .data.rel.ro         PROGBITS     0000000000212220 00012220 00000158  0 WA     0   0 32
[22] .dynamic             DYNAMIC      0000000000212378 00012378 000002e0 16 WA     6   0  8
[23] .got                 PROGBITS     0000000000212658 00012658 000009a8  8 WA     0   0  8
[24] .data                PROGBITS     0000000000213000 00013000 00000004  0 WA     0   0  1
[25] .bss                 NOBITS       0000000000213008 00013004 00000100  0 WA     0   0  8
[26] .gnu_debuglink       PROGBITS     0000000000000000 00013004 00000018  0        0   0  4
[27] .gnu_debugdata       PROGBITS     0000000000000000 0001301c 000008bc  0        0   0  1
[28] .shstrtab            STRTAB       0000000000000000 000138d8 00000111  0        0   0  1


Something has obviously changed in the meantime.
Does anyone can explain what *exactly* is at stake?




More information about the test mailing list