On Fri, May 15, 2015 at 4:30 PM, H.J. Lu <hjl.to...@gmail.com> wrote: > On Fri, May 15, 2015 at 4:14 PM, H.J. Lu <hjl.to...@gmail.com> wrote: >> My relax branch proposal works even without LTO. >> > > I will borrow GOTPCREL from x86-64 and do > > [hjl@gnu-6 relax-4]$ cat b.S > call *foo@GOTPCREL(%eax)
call *foo@GOTPLT(%eax) is a better choice. > [hjl@gnu-6 relax-4]$ ./as -32 -o b.o b.S > [hjl@gnu-6 relax-4]$ ./objdump -dwr b.o > > b.o: file format elf32-i386 > > > Disassembly of section .text: > > 00000000 <.text>: > 0: ff 90 fc ff ff ff call *-0x4(%eax) 2: R_386_RELAX_GOT32 foo > [hjl@gnu-6 relax-4]$ > > And linker can turn it into > > relax call foo > > if foo is defined locally. -- H.J.