https://sourceware.org/bugzilla/show_bug.cgi?id=33246

Sam James <sam at gentoo dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |INVALID
             Status|UNCONFIRMED                 |RESOLVED

--- Comment #2 from Sam James <sam at gentoo dot org> ---
Arch is using -ffat-lto-objects:
https://gitlab.archlinux.org/archlinux/packaging/packages/elfutils/-/blob/main/PKGBUILD?ref_type=heads#L61

If I build elfutils-0.193 with -O2 -ffat-lto-objects -flto:
$ ls -hal ./libelf/libelf.a
-rw-r--r-- 1 sam sam 1.8M Aug  2 04:16 ./libelf/libelf.a
$ readelf -S ./libelf/libelf.a
[...]
  [ 5] .gnu.lto_.pr[...] PROGBITS         0000000000000000  000000a2
       000000000000000f  0000000000000000   E       0     0     1
  [ 6] .gnu.lto_.ic[...] PROGBITS         0000000000000000  000000b1
       000000000000001e  0000000000000000   E       0     0     1
  [ 7] .gnu.lto_.ip[...] PROGBITS         0000000000000000  000000cf
       000000000000003e  0000000000000000   E       0     0     1
  [ 8] .gnu.lto_.in[...] PROGBITS         0000000000000000  0000010d
       000000000000005f  0000000000000000   E       0     0     1
  [ 9] .gnu.lto_.jm[...] PROGBITS         0000000000000000  0000016c
       0000000000000179  0000000000000000   E       0     0     1
  [10] .gnu.lto_.pu[...] PROGBITS         0000000000000000  000002e5
       0000000000000011  0000000000000000   E       0     0     1
  [11] .gnu.lto_.ip[...] PROGBITS         0000000000000000  000002f6
       0000000000000031  0000000000000000   E       0     0     1
  [12] .gnu.lto_.lt[...] PROGBITS         0000000000000000  00000327
       0000000000000008  0000000000000000   E       0     0     1
  [13] .gnu.lto_pri[...] PROGBITS         0000000000000000  0000032f
       00000000000002dd  0000000000000000   E       0     0     1
  [14] .gnu.lto_.sy[...] PROGBITS         0000000000000000  0000060c
       0000000000000054  0000000000000000   E       0     0     1
  [15] .gnu.lto_.re[...] PROGBITS         0000000000000000  00000660
       000000000000000e  0000000000000000   E       0     0     1
  [16] .gnu.lto_.de[...] PROGBITS         0000000000000000  0000066e
       0000000000000e59  0000000000000000   E       0     0     1
  [17] .gnu.lto_.sy[...] PROGBITS         0000000000000000  000014c7
       000000000000001d  0000000000000000   E       0     0     1
  [18] .gnu.lto_.ex[...] PROGBITS         0000000000000000  000014e4
       0000000000000003  0000000000000000   E       0     0     1
  [19] .gnu.lto_.opts    PROGBITS         0000000000000000  000014e7
       000000000000008e  0000000000000000   E       0     0     1
[...]
$ strip -R .gnu.lto_* -R .gnu.debuglto_* -N __gnu_lto_v1 ./libelf/libelf.a -o
./libelf/libelf-2.a
-rw-r--r-- 1 sam sam 394K Aug  2 04:18 ./libelf/libelf-2.a
$ readelf -S ./libelf/libelf-2.a
[...]
  [ 5] .rodata.str1.1    PROGBITS         0000000000000000  000000a2
       0000000000000035  0000000000000001 AMS       0     0     1
  [ 6] .rodata.str1.8    PROGBITS         0000000000000000  000000d8
       00000000000000c7  0000000000000001 AMS       0     0     8
  [ 7] .comment          PROGBITS         0000000000000000  0000019f
       000000000000009d  0000000000000001  MS       0     0     1
  [ 8] .note.GNU-stack   PROGBITS         0000000000000000  0000023c
       0000000000000000  0000000000000000           0     0     1
  [ 9] .note.gnu.pr[...] NOTE             0000000000000000  00000240
       0000000000000030  0000000000000000   A       0     0     8
  [10] .eh_frame         PROGBITS         0000000000000000  00000270
       0000000000000038  0000000000000000   A       0     0     8
  [11] .rela.eh_frame    RELA             0000000000000000  00000550
       0000000000000018  0000000000000018   I      14    10     8
[...]

Then without -N __gnu_lto_v1:
$ strip -R .gnu.lto_* -R .gnu.debuglto_*  ./libelf/libelf.a -o
./libelf/libelf-1.a
$ ls -hal ./libelf/libelf-{1,2}.a
-rw-r--r-- 1 sam sam 254K Aug  2 04:23 ./libelf/libelf-1.a
-rw-r--r-- 1 sam sam 394K Aug  2 04:24 ./libelf/libelf-2.a

When you use `-R .gnu.lto_* -R .gnu.debuglto_* -N __gnu_lto_v1`, we interpret
it as you asking "please only strip the LTO sections to make this as-if a
-ffat-lto-object'd binary was never used with LTO". It's a feature.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Reply via email to