forked from OSchip/llvm-project
[ELF] Don't set the executable bit for relocatable files
These are not executable files so they shouldn't be marked as such. Differential Revision: https://reviews.llvm.org/D41041 llvm-svn: 320438
This commit is contained in:
parent
0ca350a92d
commit
d663de3e18
|
@ -1833,9 +1833,11 @@ template <class ELFT> void Writer<ELFT>::openFile() {
|
|||
}
|
||||
|
||||
unlinkAsync(Config->OutputFile);
|
||||
unsigned Flags = 0;
|
||||
if (!Config->Relocatable)
|
||||
Flags = FileOutputBuffer::F_executable;
|
||||
Expected<std::unique_ptr<FileOutputBuffer>> BufferOrErr =
|
||||
FileOutputBuffer::create(Config->OutputFile, FileSize,
|
||||
FileOutputBuffer::F_executable);
|
||||
FileOutputBuffer::create(Config->OutputFile, FileSize, Flags);
|
||||
|
||||
if (!BufferOrErr)
|
||||
error("failed to open " + Config->OutputFile + ": " +
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
# REQUIRES: x86, gnustat
|
||||
|
||||
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.o
|
||||
# RUN: ld.lld -r %t.o -o %t1.o
|
||||
# RUN: stat -c %%A %t1.o | FileCheck --check-prefix=CHECK-RELOC %s
|
||||
# CHECK-RELOC: -rw-r--r--
|
||||
# RUN: ld.lld -shared %t.o -o %t2.so
|
||||
# RUN: stat -c %%A %t2.so | FileCheck --check-prefix=CHECK-SHARED %s
|
||||
# CHECK-SHARED: -rwxr-xr-x
|
||||
# RUN: ld.lld %t.o -o %t3
|
||||
# RUN: stat -c %%A %t3 | FileCheck --check-prefix=CHECK-EXEC %s
|
||||
# CHECK-EXEC: -rwxr-xr-x
|
||||
|
||||
.global _start
|
||||
_start:
|
||||
nop
|
|
@ -91,3 +91,11 @@ if tar_executable:
|
|||
if 'GNU tar' in tar_version.stdout.read().decode():
|
||||
config.available_features.add('gnutar')
|
||||
tar_version.wait()
|
||||
|
||||
stat_executable = lit.util.which('stat', config.environment['PATH'])
|
||||
if stat_executable:
|
||||
stat_version = subprocess.Popen(
|
||||
[stat_executable, '--version'], stdout=subprocess.PIPE, env={'LANG': 'C'})
|
||||
if 'GNU coreutils' in stat_version.stdout.read().decode():
|
||||
config.available_features.add('gnustat')
|
||||
stat_version.wait()
|
||||
|
|
Loading…
Reference in New Issue