cs makefile: refine handling of file permissions
On a second look, 6d06086dad
unnecessarily duplicates work already don
by `copy-file` in most cases. For the case where `copy-file` was not
used, there was code to explicitly set an executable bit, but the new
approach is better and should be used just there.
This commit is contained in:
parent
b6c5515efa
commit
b7908e97a1
|
@ -82,16 +82,10 @@
|
||||||
(add-racket-section use-src-file dest-file #".rackboot"
|
(add-racket-section use-src-file dest-file #".rackboot"
|
||||||
(lambda (pos)
|
(lambda (pos)
|
||||||
(values data 'any1 'any2))))
|
(values data 'any1 'any2))))
|
||||||
(define (ensure-executable dest-file)
|
|
||||||
(let* ([perms1 (file-or-directory-permissions dest-file 'bits)]
|
|
||||||
[perms2 (bitwise-ior user-read-bit user-write-bit user-execute-bit
|
|
||||||
perms1)])
|
|
||||||
(unless (equal? perms1 perms2)
|
|
||||||
(file-or-directory-permissions dest-file perms2))))
|
|
||||||
(cond
|
(cond
|
||||||
[start-pos
|
[start-pos
|
||||||
;; Success as ELF
|
;; Success as ELF
|
||||||
(ensure-executable dest-file)
|
(file-or-directory-permissions dest-file (file-or-directory-permissions use-src-file 'bits))
|
||||||
(cond
|
(cond
|
||||||
[expect-elf?
|
[expect-elf?
|
||||||
;; Find ".rackboot" at run time:
|
;; Find ".rackboot" at run time:
|
||||||
|
@ -101,7 +95,6 @@
|
||||||
[else
|
[else
|
||||||
;; Not ELF; just append to the end
|
;; Not ELF; just append to the end
|
||||||
(copy-file use-src-file dest-file #t)
|
(copy-file use-src-file dest-file #t)
|
||||||
(ensure-executable dest-file)
|
|
||||||
(define pos (file-size dest-file))
|
(define pos (file-size dest-file))
|
||||||
(call-with-output-file*
|
(call-with-output-file*
|
||||||
dest-file
|
dest-file
|
||||||
|
@ -134,6 +127,4 @@
|
||||||
(copy-file (car alt) (cdr alt) #t)
|
(copy-file (car alt) (cdr alt) #t)
|
||||||
(write-offsets (cdr alt)))])
|
(write-offsets (cdr alt)))])
|
||||||
|
|
||||||
(file-or-directory-permissions dest-file (file-or-directory-permissions use-src-file 'bits))
|
|
||||||
|
|
||||||
(clean-src)))
|
(clean-src)))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user