Absolute relocs in EFI stub w/ tracing options

Ard Biesheuvel ard.biesheuvel at linaro.org
Mon Dec 21 09:23:22 PST 2015


On 21 December 2015 at 18:21, Will Deacon <will.deacon at arm.com> wrote:
> Hi Ard,
>
> Just to say that I hit some ABS64 relocs in the stub today when compiling
> with all of the "tracer" options enabled (in particular, you need to
> enable CONFIG_PROFILE_ALL_BRANCHES).
>
> Looks like that code #defines if :/
>

I guess we'll need to disable it for the stub sub-directory like we
disable GCOV and KASAN

> Log below.
>
> Will
>
> --->8
>
> 0000000000000000 R_AARCH64_ABS64   .init.rodata+0x0000000000000070
> 0000000000000008 R_AARCH64_ABS64   .init.rodata.str1.8+0x0000000000000358
> 0000000000000028 R_AARCH64_ABS64   .init.rodata+0x0000000000000070
> 0000000000000030 R_AARCH64_ABS64   .init.rodata.str1.8+0x0000000000000358
> 0000000000000050 R_AARCH64_ABS64   .init.rodata+0x0000000000000060
> 0000000000000058 R_AARCH64_ABS64   .init.rodata.str1.8+0x0000000000000358
> 0000000000000078 R_AARCH64_ABS64   .init.rodata+0x0000000000000060
> 0000000000000080 R_AARCH64_ABS64   .init.rodata.str1.8+0x0000000000000358
> 00000000000000a0 R_AARCH64_ABS64   .init.rodata+0x0000000000000060
> 00000000000000a8 R_AARCH64_ABS64   .init.rodata.str1.8+0x0000000000000358
> 00000000000000c8 R_AARCH64_ABS64   .init.rodata+0x0000000000000060
> 00000000000000d0 R_AARCH64_ABS64   .init.rodata.str1.8+0x0000000000000358
> 00000000000000f0 R_AARCH64_ABS64   .init.rodata+0x0000000000000060
> 00000000000000f8 R_AARCH64_ABS64   .init.rodata.str1.8+0x0000000000000358
> 0000000000000118 R_AARCH64_ABS64   .init.rodata+0x0000000000000050
> 0000000000000120 R_AARCH64_ABS64   .init.rodata.str1.8+0x0000000000000358
> 0000000000000140 R_AARCH64_ABS64   .init.rodata+0x0000000000000050
> 0000000000000148 R_AARCH64_ABS64   .init.rodata.str1.8+0x0000000000000358
> 0000000000000168 R_AARCH64_ABS64   .init.rodata+0x0000000000000050
> 0000000000000170 R_AARCH64_ABS64   .init.rodata.str1.8+0x0000000000000358
> 0000000000000190 R_AARCH64_ABS64   .init.rodata+0x0000000000000050
> 0000000000000198 R_AARCH64_ABS64   .init.rodata.str1.8+0x0000000000000358
> 00000000000001b8 R_AARCH64_ABS64   .init.rodata+0x0000000000000050
> 00000000000001c0 R_AARCH64_ABS64   .init.rodata.str1.8+0x0000000000000358
> 00000000000001e0 R_AARCH64_ABS64   .init.rodata+0x0000000000000050
> 00000000000001e8 R_AARCH64_ABS64   .init.rodata.str1.8+0x0000000000000358
> 0000000000000208 R_AARCH64_ABS64   .init.rodata+0x0000000000000050
> 0000000000000210 R_AARCH64_ABS64   .init.rodata.str1.8+0x0000000000000358
> 0000000000000230 R_AARCH64_ABS64   .init.rodata+0x0000000000000050
> 0000000000000238 R_AARCH64_ABS64   .init.rodata.str1.8+0x0000000000000358
> 0000000000000258 R_AARCH64_ABS64   .init.rodata+0x0000000000000050
> 0000000000000260 R_AARCH64_ABS64   .init.rodata.str1.8+0x0000000000000358
> 0000000000000280 R_AARCH64_ABS64   .init.rodata+0x0000000000000050
> 0000000000000288 R_AARCH64_ABS64   .init.rodata.str1.8+0x0000000000000358
> 00000000000002a8 R_AARCH64_ABS64   .init.rodata+0x0000000000000050
> 00000000000002b0 R_AARCH64_ABS64   .init.rodata.str1.8+0x0000000000000358
> 00000000000002d0 R_AARCH64_ABS64   .init.rodata+0x0000000000000050
> 00000000000002d8 R_AARCH64_ABS64   .init.rodata.str1.8+0x0000000000000358
> 00000000000002f8 R_AARCH64_ABS64   .init.rodata+0x0000000000000050
> 0000000000000300 R_AARCH64_ABS64   .init.rodata.str1.8+0x0000000000000358
> 0000000000000320 R_AARCH64_ABS64   .init.rodata+0x0000000000000040
> 0000000000000328 R_AARCH64_ABS64   .init.rodata.str1.8+0x0000000000000358
> 0000000000000348 R_AARCH64_ABS64   .init.rodata+0x0000000000000028
> 0000000000000350 R_AARCH64_ABS64   .init.rodata.str1.8+0x0000000000000358
> 0000000000000370 R_AARCH64_ABS64   .init.rodata+0x0000000000000040
> 0000000000000378 R_AARCH64_ABS64   .init.rodata.str1.8+0x0000000000000358
> 0000000000000398 R_AARCH64_ABS64   .init.rodata+0x0000000000000040
> 00000000000003a0 R_AARCH64_ABS64   .init.rodata.str1.8+0x0000000000000358
> drivers/firmware/efi/libstub/arm-stub.stub.o: absolute symbol references not allowed in the EFI stub
> drivers/firmware/efi/libstub/Makefile:63: recipe for target 'drivers/firmware/efi/libstub/arm-stub.stub.o' failed
> make[4]: *** [drivers/firmware/efi/libstub/arm-stub.stub.o] Error 1



More information about the linux-arm-kernel mailing list