[llvm-objcopy] Change handling of output file permissions
Summary: Address bug [[ https://bugs.llvm.org/show_bug.cgi?id=42082 | 42082 ]] where files were always outputted with 0775 permissions. Now, the output file is given either 0666 or 0777 if the object is executable.
Reviewers: espindola, alexshap, rupprecht, jhenderson, jakehehrlich, MaskRay
Reviewed By: rupprecht, jhenderson, jakehehrlich, MaskRay
Subscribers: emaste, arichardson, jakehehrlich, MaskRay, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D62718
llvm-svn: 365162
2019-07-04 22:45:27 +00:00
|
|
|
## Test that permissions for ouput files are mirrored
|
|
|
|
## from their input files.
|
|
|
|
|
2024-06-13 20:20:27 +01:00
|
|
|
## The Unix version of this test is separated because it needs
|
[llvm-objcopy] Change handling of output file permissions
Summary: Address bug [[ https://bugs.llvm.org/show_bug.cgi?id=42082 | 42082 ]] where files were always outputted with 0775 permissions. Now, the output file is given either 0666 or 0777 if the object is executable.
Reviewers: espindola, alexshap, rupprecht, jhenderson, jakehehrlich, MaskRay
Reviewed By: rupprecht, jhenderson, jakehehrlich, MaskRay
Subscribers: emaste, arichardson, jakehehrlich, MaskRay, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D62718
llvm-svn: 365162
2019-07-04 22:45:27 +00:00
|
|
|
## to use umask(1). Windows has no umask, so it can be considered
|
|
|
|
## to be always 0, the required behavior.
|
|
|
|
# REQUIRES: system-windows
|
|
|
|
|
|
|
|
# RUN: touch %t
|
|
|
|
# RUN: chmod 0777 %t
|
|
|
|
# RUN: ls -l %t | cut -f 1 -d ' ' > %t.0777
|
|
|
|
# RUN: chmod 0666 %t
|
|
|
|
# RUN: ls -l %t | cut -f 1 -d ' ' > %t.0666
|
|
|
|
# RUN: chmod 0640 %t
|
|
|
|
# RUN: ls -l %t | cut -f 1 -d ' ' > %t.0640
|
|
|
|
|
|
|
|
# RUN: yaml2obj %s -o %t
|
|
|
|
|
|
|
|
# RUN: chmod 0777 %t
|
|
|
|
# RUN: llvm-objcopy %t %t1
|
|
|
|
# RUN: ls -l %t1 | cut -f 1 -d ' ' > %t1.perms
|
|
|
|
# RUN: cmp %t1.perms %t.0777
|
|
|
|
|
|
|
|
# RUN: chmod 0666 %t
|
|
|
|
# RUN: llvm-objcopy %t %t1
|
|
|
|
# RUN: ls -l %t1 | cut -f 1 -d ' ' > %t1.perms
|
|
|
|
# RUN: cmp %t1.perms %t.0666
|
|
|
|
|
|
|
|
# RUN: chmod 0640 %t
|
|
|
|
# RUN: llvm-objcopy %t %t1
|
|
|
|
# RUN: ls -l %t1 | cut -f 1 -d ' ' > %t1.perms
|
|
|
|
# RUN: cmp %t1.perms %t.0640
|
|
|
|
|
|
|
|
--- !ELF
|
|
|
|
FileHeader:
|
|
|
|
Class: ELFCLASS64
|
|
|
|
Data: ELFDATA2LSB
|
|
|
|
Type: ET_EXEC
|
|
|
|
Machine: EM_X86_64
|