History log of /seL4-test-master/projects/musllibc/tools/install.sh
Revision Date Author Comments
# 7cbb6f70 15-Jan-2014 Rich Felker <dalias@aerifal.cx>

fix system breakage window during make install due to permissions

install.sh was wrongly waiting until after atomically replacing the
old file to set the correct permissions on the new file. in the case
of the dynamic linker, this would cause a dynamic-linked chmod command
not to run (due to missing executable permissions on the dynamic
linker) and thus leave the system in an unusable state.

even if chmod is static-linked, the old behavior had a race window
where dynamic-linked programs could fail to run.


# ceacb6a4 03-Dec-2013 Rich Felker <dalias@aerifal.cx>

fix mv usage in install.sh to avoid bogus interactive prompting


# e678fc6f 17-Aug-2013 Rich Felker <dalias@aerifal.cx>

replace system's install command with a shell script

the historical (non-standardized) install command is really
inappropriate for installing binaries/libraries on a system that
utilizes memory-mapped executable files. rather than replacing an
existing file atomically, it overwrites the existing file. this can
cause running programs to see a partially-modified version of the
file, resulting in unpredictable behavior, or SIGBUS. a MAP_COPY mode
for mmap would get around this problem, but Linux lacks MAP_COPY.

the shell script added with this commit works around the problem by
writing temporary files and moving them into place. unlike the
historical install utility, it also support a -l option for installing
a symbolic link atomically, via the same method.