blob: f62b2693aad8b824d8be34c488f181968c18b314 [file] [edit]
# REQUIRES: x86
## When a common symbol is merged with a shared symbol, pick the larger st_size.
# RUN: split-file %s %t && cd %t
# RUN: llvm-mc -filetype=obj -triple=x86_64 small.s -o small.o
# RUN: llvm-mc -filetype=obj -triple=x86_64 big.s -o big.o
# RUN: ld.lld -shared big.o -o big.so
# RUN: ld.lld -shared small.o -o small.so
## Common arrives first, then larger shared.
# RUN: ld.lld small.o big.so -o out1
# RUN: llvm-readelf -s out1 | FileCheck %s
## Larger shared first, then common (overwrite path, size > this->size).
# RUN: ld.lld big.so small.o -o out2
# RUN: llvm-readelf -s out2 | FileCheck %s
## Smaller shared first, then larger common (overwrite path, size <= this->size).
# RUN: ld.lld small.so big.o -o out3
# RUN: llvm-readelf -s out3 | FileCheck %s
# CHECK: 16 OBJECT GLOBAL DEFAULT [[#]] com
#--- small.s
.globl com
.comm com,1
#--- big.s
.globl com
.comm com,16