Skip to content

[PowerPC] emitXCOFFRefDirective not creating relocation entries in increasing address order in the relocation table #161576

@w2yehia

Description

@w2yehia
ld: 0711-548 SEVERE ERROR: Object /home/wyehia/tmp/foo-20399d.o cannot be processed.
        RLD address 0x0 for section 1 (.text) is
        out of order. RLDs must be in ascending address order.
> dump -rvX64 foo.o

foo.o:

                        ***Relocation Information***
             Vaddr      Symndx  Sign  Fixup     Len      Type  Name
.text:  
        0x00000022  0x0000001d     0      0  0x000f TOC_ILodx  x
        0x0000002e  0x0000001f     0      0  0x000f TOC_ILodx  my_foo2
        0x00000032  0x00000021     0      0  0x000f TOC_ILodx  my_foo
        0x00000000  0x00000011     0      0  0x0000   Non_Rel  ifunc_sec          <<---------------------
        0x00000000  0x00000003     0      0  0x0000   Non_Rel  .__init_ifuncs
        0x00000086  0x00000023     0      0  0x000f TOC_ILodx  foo

This problem got exposed when implementing ifuncs on AIX in the compiler, where we had to generate .ref from a function.

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions