DynamoRIO / dynamorio

Dynamic Instrumentation Tool Platform
Other
2.59k stars 552 forks source link

i#6627: Fix multiply defined label in linux/clone.c #6638

Closed xdje42 closed 5 months ago

xdje42 commented 5 months ago

Fix having label "parent" multiply defined by replacing it with a "local label": Ref: https://sourceware.org/binutils/docs-2.42/as/Symbol-Names.html

The multiple definition is caused by make_clone3_syscall being inlined into create_thread_clone3.

Tested by running the following before/after the patch:

cd build && \ clang \ -I../dynamorio/core/drlibc \ -I../dynamorio/core/lib \ -I../dynamorio/suite/tests \ -I. \ -Iinclude \ -O1 \ -c ../dynamorio/suite/tests/linux/clone.c \ -o clone.o

This reapplies commit 984e33548cde2b9869d16a60b15383c494470386 (#6628) that was reverted in commit 79e3c58a2ba545c5635d23f1d8060e2a9aa4c8f5 (#6633).

This also reapplies commit ef572627cab469b830d08d7be22f1de9d581e8da (#6629) that was reverted in commit c244df14f1695b4e171b594cf58a3f47dff91f8a (6634). This reformatting patch (#6629) was added to this patch to simplify integration with google source base.

Fixes #6627