Previously we always handled -defsym after other commands in command line. That made impossible to overload values set by -defsym from linker script: test.script: foo = 0x22; -defsym=foo=0x11 -script t.script would always set foo to 0x11. That is inconstent with common logic which allows to override command line options. it is inconsistent with bfd behavior and seems breaks assumption that -defsym is the same as linker script assignment, as -defsyms always handled out of command line order. Patch fixes the handling order. Differential revision: https://reviews.llvm.org/D42054 llvm-svn: 322625
20 lines
785 B
ArmAsm
20 lines
785 B
ArmAsm
# REQUIRES: x86
|
|
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.o
|
|
# RUN: echo "foo = 0x22;" > %t.script
|
|
|
|
## This testcase checks that we apply -defsym and linker script
|
|
## in the same order are they specified in a command line.
|
|
|
|
## Check that linker script can override -defsym assignments.
|
|
# RUN: ld.lld %t.o -defsym=foo=0x11 -script %t.script -o %t
|
|
# RUN: llvm-readobj -t %t | FileCheck %s
|
|
# CHECK: Name: foo
|
|
# CHECK-NEXT: Value: 0x22
|
|
|
|
## Check that -defsym can override linker script. Check that multiple
|
|
## -defsym commands for the same symbol are allowed.
|
|
# RUN: ld.lld %t.o -script %t.script -defsym=foo=0x11 -defsym=foo=0x33 -o %t
|
|
# RUN: llvm-readobj -t %t | FileCheck %s --check-prefix=REORDER
|
|
# REORDER: Name: foo
|
|
# REORDER-NEXT: Value: 0x33
|