Skip to content

i386 code ends up with TEXTREL sections #5714

Closed
@thestinger

Description

@thestinger

The problem functions (this occurs in every library, with the exception of librustrt):

  librustc-c84825241471686d-0.6.so: rust_get_task [0x93E38F] in (optimized out: previous _ZN4main15_c4de63b748e03d3_06E) [0x93DFE0]
  librustc-c84825241471686d-0.6.so: upcall_new_stack [0x93E3AF] in (optimized out: previous _ZN4main15_c4de63b748e03d3_06E) [0x93DFE0]
  librustc-c84825241471686d-0.6.so: upcall_del_stack [0x93E3D1] in (optimized out: previous _ZN4main15_c4de63b748e03d3_06E) [0x93DFE0]

AFAIK this means it's not proper position independent code and uses absolute address references somewhere. I just can't figure out where/why.

This is confounding:

% scanelf -qT librustrt.so
scanelf: scanelf_file_textrels(): ELF librustrt.so has TEXTREL markings but doesnt appear to have any real TEXTREL's !?

Lots of info about this here: http://www.gentoo.org/proj/en/hardened/pic-fix-guide.xml?style=printable

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-securityArea: Security (example: address space layout randomization).O-linuxOperating system: LinuxO-x86_32Target: x86 processors, 32 bit (like i686-*) (IA-32)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions