2021-06-18 10:33:09 +03:00
|
|
|
#!/bin/bash
|
2021-12-17 14:05:14 +03:00
|
|
|
export LANG=
|
2021-06-18 10:33:09 +03:00
|
|
|
set -e
|
2021-12-30 05:11:06 +03:00
|
|
|
testname=$(basename -s .sh "$0")
|
|
|
|
echo -n "Testing $testname ... "
|
|
|
|
cd "$(dirname "$0")"/../..
|
|
|
|
mold="$(pwd)/mold"
|
|
|
|
t="$(pwd)/out/test/elf/$testname"
|
2021-12-22 13:38:00 +03:00
|
|
|
mkdir -p "$t"
|
2021-06-18 10:33:09 +03:00
|
|
|
|
2021-12-22 13:38:00 +03:00
|
|
|
cat <<EOF | cc -c -o "$t"/a.o -x assembler -
|
2021-06-19 06:34:20 +03:00
|
|
|
.section .data.foo.1,"aw",@progbits
|
2021-06-18 10:33:09 +03:00
|
|
|
.ascii "a"
|
2021-06-19 06:34:20 +03:00
|
|
|
.section .data.foo.1,"aw",@progbits
|
2021-06-18 10:33:09 +03:00
|
|
|
.ascii "b"
|
2021-06-19 06:34:20 +03:00
|
|
|
.section .data.foo.2,"aw",@progbits
|
2021-06-18 10:33:09 +03:00
|
|
|
.ascii "c"
|
2021-06-19 06:34:20 +03:00
|
|
|
.section .data.bar.1,"aw",@progbits
|
2021-06-18 10:33:09 +03:00
|
|
|
.ascii "d"
|
2021-06-19 06:34:20 +03:00
|
|
|
.section .data.bar.2,"aw",@progbits
|
2021-06-18 10:33:09 +03:00
|
|
|
.ascii "e"
|
|
|
|
.text
|
|
|
|
.globl _start
|
|
|
|
_start:
|
|
|
|
nop
|
|
|
|
EOF
|
|
|
|
|
2021-12-22 13:38:00 +03:00
|
|
|
clang -fuse-ld="$mold" -o "$t"/exe "$t"/a.o -nostdlib -Wl,-unique='*foo*'
|
2021-06-18 10:33:09 +03:00
|
|
|
|
2021-12-22 13:38:00 +03:00
|
|
|
readelf -x .data.foo.1 "$t"/exe | grep -q ab
|
|
|
|
readelf -x .data.foo.2 "$t"/exe | grep -q c
|
|
|
|
readelf -x .data "$t"/exe | grep -q de
|
2021-06-18 10:33:09 +03:00
|
|
|
|
|
|
|
echo OK
|