# REQUIRES: x86

## i386-got32x-baseless.elf is a file produced using GNU as v.2.27
## using following code and command line:
## (as --32 -o base.o base.s)
##
## .text
## .globl foo
## .type foo, @function
## foo:
##  nop
##
## _start:
##  movl foo@GOT, %eax
##  movl foo@GOT, %ebx
##  movl foo@GOT(%eax), %eax
##  movl foo@GOT(%ebx), %eax
##
## Result file contains four R_386_GOT32X relocations. Generated code
## is also a four mov instructions. And first two has no base register:
## <_start>:
##   1: 8b 05 00 00 00 00 mov 0x0,%eax
##   7: 8b 1d 00 00 00 00 mov 0x0,%ebx
##   d: 8b 80 00 00 00 00 mov 0x0(%eax),%eax
##  13: 8b 83 00 00 00 00 mov 0x0(%ebx),%eax
##
## R_386_GOT32X is computed as G + A - GOT, but if it used without base
## register, it should be calculated as G + A. Using without base register
## is only allowed for non-PIC code.
##
# RUN: ld.lld %S/Inputs/i386-got32x-baseless.elf -o %t1
# RUN: llvm-objdump -section-headers -d %t1 | FileCheck %s

## 73728 == 0x12000 == ADDR(.got)
# CHECK:       _start:
# CHECK-NEXT:   11001: 8b 05 {{.*}} movl 77824, %eax
# CHECK-NEXT:   11007: 8b 1d {{.*}} movl 77824, %ebx
# CHECK-NEXT:   1100d: 8b 80 {{.*}} movl -4(%eax), %eax
# CHECK-NEXT:   11013: 8b 83 {{.*}} movl -4(%ebx), %eax
# CHECK: Sections:
# CHECK:  Name Size     Address
# CHECK:  .got 00000004 0000000000013000

# RUN: not ld.lld %S/Inputs/i386-got32x-baseless.elf -o %t1 -pie 2>&1 | \
# RUN:   FileCheck %s --check-prefix=ERR
# ERR: error: can't create dynamic relocation R_386_GOT32X against symbol: foo in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow text relocations in the output
# ERR: error: can't create dynamic relocation R_386_GOT32X against symbol: foo in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow text relocations in the output
