[PATCH] D29392: [ELF] - Change value checks to checkUInt for R_386_8/R_386_PC8/R_386_16/R_386_PC16 relocations.

George Rimar via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 2 08:48:33 PST 2017


grimar added a comment.

So, I found that my minimal kernel configuration is also affected by that issue some point.

I am observing R_386_PC8 relocation which is fails with new check because has value 358 == 0x166.

BFD output for that place (so it is just truncated to 8 bits and BFD does not complain about):

  00000200 <_start>:
   200:	eb 66                	jmp    268 <start_of_setup>

If I comment out that check, we produce the same.

The code that produces this relocation is:
(http://lxr.free-electrons.com/source/arch/x86/boot/header.S#L292)

  .globl	_start
  _start:
  		# Explicitly enter this as bytes, or the assembler
  		# tries to generate a 3-byte jump here, which causes
  		# everything else to push off to the wrong offset.
  		.byte	0xeb		# short (2-byte) jump
  		.byte	start_of_setup-1f

I'll investigate that place deeper tomorrow.


https://reviews.llvm.org/D29392





More information about the llvm-commits mailing list