Page MenuHomePhabricator

[ELF][PPC32] Fix canonical PLTs when the order does not match the PLT order
ClosedPublic

Authored by MaskRay on Feb 28 2020, 5:32 PM.

Diff Detail

Unit TestsFailed

TimeTest
2,250 mslibc++.std/thread/thread_mutex/thread_mutex_requirements/thread_mutex_requirements_mutex/thread_mutex_recursive::Unknown Unit Message ("")
Compiled With: '/usr/bin/clang++ -o /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/projects/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.mutex.requirements.mutex/thread.mutex.recursive/Output/lock.pass.cpp.o -x c++ /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.mutex.requirements.mutex/thread.mutex.recursive/lock.pass.cpp -c -v -ftemplate-depth=270 -Werror=thread-safety -std=c++2a -include /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/libcxx/test/support/nasty_macros.h -nostdinc++ -I/mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/libcxx/include -I/mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/projects/libcxx/include/c++build -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -I/mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/libcxx/test/support -DLIBCXX_FILESYSTEM_STATIC_TEST_ROOT="/mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/libcxx/test/std/input.output/filesystems/Inputs/static_test_env" -DLIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT="/mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/projects/libcxx/test/filesystem/Output/dynamic_env" -DLIBCXX_FILESYSTEM_DYNAMIC_TEST_HELPER="/usr/bin/python /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/libcxx/test/support/filesystem_dynamic_test_helper.py" -D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -Wall -Wextra -Werror -Wuser-defined-warnings -Wshadow -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-c++11-extensions -Wno-user-defined-literals -Wno-noexcept-type -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -c && /usr/bin/clang++ -o /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/projects/libcxx/test/std/thread/thread.mutex/thread.mutex.requirements/thread.mutex.requirements.mutex/thread.mutex.recursive/Output/lock.pass.cpp.exe…
120 mslld.ELF::Unknown Unit Message ("")
Script: -- : 'RUN: at line 5'; /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/bin/llvm-mc -filetype=obj -triple=x86_64 /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/lld/test/ELF/canonical-plt-pcrel.s -o /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/tools/lld/test/ELF/Output/canonical-plt-pcrel.s.tmp.o
120 mslld.ELF::Unknown Unit Message ("")
Script: -- : 'RUN: at line 5'; /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/bin/llvm-mc -filetype=obj -triple=x86_64 /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/lld/test/ELF/canonical-plt-symbolic.s -o /mnt/disks/ssd0/agent/workspace/amd64_debian_testing_clang8/build/tools/lld/test/ELF/Output/canonical-plt-symbolic.s.tmp.o

Event Timeline

MaskRay created this revision.Feb 28 2020, 5:32 PM
Herald added a project: Restricted Project. · View Herald Transcript

This patch will be needed on FreeBSD to fix some crashes for an lld10-linked FreeBSD powerpc32 world, such as a crash running /usr/bin/objdump -D.

AWESOME, this fixed the clang crash I was seeing with lld10 as well! I think it's possible this might be the last crashing bug blocking ppc32 lld migration.

MaskRay updated this revision to Diff 247401.Feb 28 2020, 7:39 PM

Fix tests

Bdragon28 accepted this revision.Feb 28 2020, 10:18 PM

From a FreeBSD standpoint, I am very happy with this.

This revision is now accepted and ready to land.Feb 28 2020, 10:18 PM
This revision was automatically updated to reflect the committed changes.