[PATCH] D102453: [CMake][ELF] Add -fno-semantic-interposition for GCC and Clang>=13

Luís Ferreira via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 12 11:15:13 PST 2022


ljmf00 added a comment.

This patch makes compilation fail when running with sanitization and debug mode, it seems. Brief log here:

  FAILED: lib/libLTO.so.14git                                                                                                                                   
  : && /usr/bin/clang++ -fPIC -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -
  Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthroug
  h -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -fn
  o-omit-frame-pointer -O1 -fsanitize=address -fsanitize=undefined -fno-sanitize=vptr,function -fno-sanitize-recover=all -fsanitize-address-use-after-scope -fsa
  nitize=fuzzer-no-link -fsanitize-blacklist=/mnt/Workspace/Repos/collab/github/llvm/llvm-project/llvm/utils/sanitizers/ubsan_ignorelist.txt -fdiagnostics-color
   -g  -Wl,-z,nodelete -fuse-ld=lld -Wl,--gdb-index -Wl,--color-diagnostics    -Wl,--version-script,"/mnt/Workspace/Repos/collab/github/llvm/llvm-project/build/
  tools/lto/LTO.exports" -shared -Wl,-soname,libLTO.so.14git -o lib/libLTO.so.14git tools/lto/CMakeFiles/LTO.dir/LTODisassembler.cpp.o tools/lto/CMakeFiles/LTO.
  dir/lto.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib"  lib/libLLVM-14git.so && :                                                                                        
  ld.lld: error: relocation R_X86_64_PC32 cannot be used against symbol lto_module_is_object_file_for_target; recompile with -fPIC                              
  >>> defined in tools/lto/CMakeFiles/LTO.dir/lto.cpp.o                                                                                                         
  >>> referenced by lto.cpp:175 (/mnt/Workspace/Repos/collab/github/llvm/llvm-project/llvm/tools/lto/lto.cpp:175)                                               
  >>>               tools/lto/CMakeFiles/LTO.dir/lto.cpp.o:(lto_module_is_object_file_for_target)                                                               
                                                                                                                                                                
  ld.lld: error: relocation R_X86_64_PC32 cannot be used against symbol lto_module_has_objc_category; recompile with -fPIC                                      
  >>> defined in tools/lto/CMakeFiles/LTO.dir/lto.cpp.o
  >>> referenced by lto.cpp:183 (/mnt/Workspace/Repos/collab/github/llvm/llvm-project/llvm/tools/lto/lto.cpp:183)
  >>>               tools/lto/CMakeFiles/LTO.dir/lto.cpp.o:(lto_module_has_objc_category)
  
  ld.lld: error: relocation R_X86_64_PC32 cannot be used against symbol lto_module_is_object_file_in_memory_for_target; recompile with -fPIC
  >>> defined in tools/lto/CMakeFiles/LTO.dir/lto.cpp.o
  >>> referenced by lto.cpp:200 (/mnt/Workspace/Repos/collab/github/llvm/llvm-project/llvm/tools/lto/lto.cpp:200)
  >>>               tools/lto/CMakeFiles/LTO.dir/lto.cpp.o:(lto_module_is_object_file_in_memory_for_target)
  
  ld.lld: error: relocation R_X86_64_PC32 cannot be used against symbol lto_module_create; recompile with -fPIC
  >>> defined in tools/lto/CMakeFiles/LTO.dir/lto.cpp.o
  >>> referenced by lto.cpp:208 (/mnt/Workspace/Repos/collab/github/llvm/llvm-project/llvm/tools/lto/lto.cpp:208)
  >>>               tools/lto/CMakeFiles/LTO.dir/lto.cpp.o:(lto_module_create)
  
  ld.lld: error: relocation R_X86_64_PC32 cannot be used against symbol lto_module_create_from_fd; recompile with -fPIC
  >>> defined in tools/lto/CMakeFiles/LTO.dir/lto.cpp.o
  >>> referenced by lto.cpp:219 (/mnt/Workspace/Repos/collab/github/llvm/llvm-project/llvm/tools/lto/lto.cpp:219)
  >>>               tools/lto/CMakeFiles/LTO.dir/lto.cpp.o:(lto_module_create_from_fd)
  
  ld.lld: error: relocation R_X86_64_PC32 cannot be used against symbol lto_module_create_from_fd_at_offset; recompile with -fPIC
  >>> defined in tools/lto/CMakeFiles/LTO.dir/lto.cpp.o
  >>> referenced by lto.cpp:233 (/mnt/Workspace/Repos/collab/github/llvm/llvm-project/llvm/tools/lto/lto.cpp:233)
  >>>               tools/lto/CMakeFiles/LTO.dir/lto.cpp.o:(lto_module_create_from_fd_at_offset)


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D102453/new/

https://reviews.llvm.org/D102453



More information about the llvm-commits mailing list