1# REQUIRES: x86 2# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t 3 4# RUN: echo "SECTIONS { \ 5# RUN: symbol = CONSTANT(MAXPAGESIZE); \ 6# RUN: symbol2 = symbol + 0x1234; \ 7# RUN: symbol3 = symbol2; \ 8# RUN: symbol4 = symbol + -4; \ 9# RUN: symbol5 = symbol - ~ 0xfffb; \ 10# RUN: symbol6 = symbol - ~(0xfff0 + 0xb); \ 11# RUN: symbol7 = symbol - ~ 0xfffb + 4; \ 12# RUN: symbol8 = ~ 0xffff + 4; \ 13# RUN: symbol9 = - 4; \ 14# RUN: symbol10 = 0xfedcba9876543210; \ 15# RUN: symbol11 = ((0x28000 + 0x1fff) & ~(0x1000 + -1)); \ 16# RUN: symbol12 = 0x1234; \ 17# RUN: symbol12 += 1; \ 18# RUN: bar = 0x5678; \ 19# RUN: baz = 0x9abc; \ 20# RUN: }" > %t.script 21# RUN: ld.lld -o %t1 --script %t.script %t 22# RUN: llvm-objdump -t %t1 | FileCheck %s 23 24# CHECK: SYMBOL TABLE: 25# CHECK-NEXT: 0000000000000000 *UND* 00000000 26# CHECK-NEXT: 0000000000000000 .text 00000000 _start 27# CHECK-NEXT: 0000000000005678 *ABS* 00000000 bar 28# CHECK-NEXT: 0000000000009abc *ABS* 00000000 baz 29# CHECK-NEXT: 0000000000000001 .text 00000000 foo 30# CHECK-NEXT: 0000000000001000 *ABS* 00000000 symbol 31# CHECK-NEXT: 0000000000002234 *ABS* 00000000 symbol2 32# CHECK-NEXT: 0000000000002234 *ABS* 00000000 symbol3 33# CHECK-NEXT: 0000000000000ffc *ABS* 00000000 symbol4 34# CHECK-NEXT: 0000000000010ffc *ABS* 00000000 symbol5 35# CHECK-NEXT: 0000000000010ffc *ABS* 00000000 symbol6 36# CHECK-NEXT: 0000000000011000 *ABS* 00000000 symbol7 37# CHECK-NEXT: ffffffffffff0004 *ABS* 00000000 symbol8 38# CHECK-NEXT: fffffffffffffffc *ABS* 00000000 symbol9 39# CHECK-NEXT: fedcba9876543210 *ABS* 00000000 symbol10 40# CHECK-NEXT: 0000000000029000 *ABS* 00000000 symbol11 41# CHECK-NEXT: 0000000000001235 *ABS* 00000000 symbol12 42 43# RUN: echo "SECTIONS { symbol2 = symbol; }" > %t2.script 44# RUN: not ld.lld -o %t2 --script %t2.script %t 2>&1 \ 45# RUN: | FileCheck -check-prefix=ERR %s 46# ERR: {{.*}}.script:1: symbol not found: symbol 47 48.global _start 49_start: 50 nop 51 52.global foo 53foo: 54 nop 55 56.global bar 57bar = 0x1234 58 59.comm baz,8,8 60