mirror of
https://github.com/rui314/mold.git
synced 2024-10-04 16:48:04 +03:00
9a3188bcf5
We used to compute a file UUID using only the hashes in the code signature section. So we computes the same UUID even if two files are differnet only in some field of the code signature section.
30 lines
641 B
Bash
Executable File
30 lines
641 B
Bash
Executable File
#!/bin/bash
|
|
export LC_ALL=C
|
|
set -e
|
|
CC="${TEST_CC:-cc}"
|
|
CXX="${TEST_CXX:-c++}"
|
|
GCC="${TEST_GCC:-gcc}"
|
|
GXX="${TEST_GXX:-g++}"
|
|
OBJDUMP="${OBJDUMP:-objdump}"
|
|
MACHINE="${MACHINE:-$(uname -m)}"
|
|
testname=$(basename "$0" .sh)
|
|
echo -n "Testing $testname ... "
|
|
cd "$(dirname "$0")"/../..
|
|
t=out/test/macho/$testname
|
|
mkdir -p $t
|
|
|
|
cat <<EOF | $CC -c -o $t/a.o -xc -
|
|
#include <stdio.h>
|
|
|
|
int main() {
|
|
printf("Hello world\n");
|
|
}
|
|
EOF
|
|
|
|
clang --ld-path=./ld64 -B. -o $t/exe1 $t/a.o -Wl,-adhoc_codesign
|
|
clang --ld-path=./ld64 -B. -o $t/exe2 $t/a.o -Wl,-adhoc_codesign
|
|
|
|
[ "$(otool -l $t/exe1 | grep 'uuid ')" != "$(otool -l $t/exe2 | grep 'uuid ')" ]
|
|
|
|
echo OK
|