OSDN Git Service

Make .file directive to have basename only
authorTaewook Oh <twoh@fb.com>
Thu, 10 Aug 2017 18:17:11 +0000 (18:17 +0000)
committerTaewook Oh <twoh@fb.com>
Thu, 10 Aug 2017 18:17:11 +0000 (18:17 +0000)
commit9f5f47d34038f103ab76c9b52688aa843ecd1603
tree8b6253e21f4c654f0a8f4beb16ce82c48d8f56d1
parent93a8a3f5b3e72c4dc9a1e614b75b08573b81544e
Make .file directive to have basename only

Summary:
Currently LLVM puts directory along with the filename in .file directive, but this behavior doesn't match gcc. There's a no clear description about which one is right (https://sourceware.org/binutils/docs/as/File.html#File), but one document (https://sourceware.org/gdb/current/onlinedocs/stabs/ELF-Linker-Relocation.html) suggests that STT_FILE symbol in elf file is expected to have basename only, which should have a same sting file .file directive according to (https://docs.oracle.com/cd/E26502_01/html/E28388/eoiyg.html).

This also affects badly on the build system that uses hashing, as the directory info could be differnt from developer to developer even when they're working on same file.

Reviewers: pcc, mehdi_amini

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D36018

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@310642 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/AsmPrinter/AsmPrinter.cpp
test/CodeGen/X86/file-directive.ll [new file with mode: 0644]