[systemd-devel] systemd build process, stripped ELF flags (MIPS)

Manuel Lauss manuel.lauss at gmail.com
Mon Jan 19 00:47:15 PST 2015


Hello,

MIPS Linux recently introduced updates to its FPU ABI, and for that to
work correctly,
ELF binaries now have to have a ".MIPS.abiflags" section.  This is an example
binary built with binutils 2.25+:

readelf -hl /lib/libc.so.6
[...]

 Section to Segment mapping:
  Segment Sections...
   00
   01     .interp
   02     .MIPS.abiflags
[...]

Newer MIPS kernels will refuse to load binaries and libs which have mismatched
values in .MIPS.abiflags or of one of the involved binaries has .MIPS.abiflags
missing (a patch to linux has been posted to relax that though).

The systemd build process manages to create binaries without this
.MIPS.abiflags section, and this leads the 3.18 kernel to refuse to load it:


Failed to execute /usr/lib/systemd/systemd (error -84).  Attempting default


readelf -hl /usr/lib/systemd/systemd
[...]
 Section to Segment mapping:
  Segment Sections...
   00
   01     .interp
   02     .interp .note.ABI-tag .dynsym .dynstr .hash .gnu.version
.gnu.version_r .rel.dyn .init .text .fini .rodata .eh_frame
.eh_frame_hdr
   03     .tdata .data.rel.ro.local .jcr .fini_array .init_array
.data.rel.ro .dynamic .tm_clone_table .sdata .data BUS_ERROR_MAP .got
.bss
   04
   05     .dynamic
   06     .note.ABI-tag
   07     .eh_frame_hdr
   08     .tdata .tbss
   09     .tdata .data.rel.ro.local .jcr .fini_array .init_array
.data.rel.ro .dynamic


Can anyone please point out why the .MIPS.abiflags sections are
omitted entirely?
I've tried to build with STRIP=/bin/true but that didn't help, and I don't know
enough about the build process to fix it myself.

Thanks!
      Manuel


More information about the systemd-devel mailing list