uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead
https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948 this can do it nicely. Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
commit
56de2bcd43
30691 changed files with 3076956 additions and 0 deletions
16
pkgs/stdenv/cygwin/all-buildinputs-as-runtimedep.sh
Normal file
16
pkgs/stdenv/cygwin/all-buildinputs-as-runtimedep.sh
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
# On cygwin, automatic runtime dependency detection does not work
|
||||
# because the binaries do not contain absolute references to store
|
||||
# locations (yet)
|
||||
postFixupHooks+=(_cygwinAllBuildInputsAsRuntimeDep)
|
||||
|
||||
_cygwinAllBuildInputsAsRuntimeDep() {
|
||||
if [ -n "$buildInputs" ]; then
|
||||
mkdir -p "$out/nix-support"
|
||||
echo "$buildInputs" >> "$out/nix-support/cygwin-buildinputs-as-runtime-deps"
|
||||
fi
|
||||
|
||||
if [ -n "$nativeBuildInputs" ]; then
|
||||
mkdir -p "$out/nix-support"
|
||||
echo "$nativeBuildInputs" >> "$out/nix-support/cygwin-buildinputs-as-runtime-deps"
|
||||
fi
|
||||
}
|
||||
24
pkgs/stdenv/cygwin/rebase-i686.sh
Normal file
24
pkgs/stdenv/cygwin/rebase-i686.sh
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
fixupOutputHooks+=(_cygwinFixAutoImageBase)
|
||||
|
||||
_cygwinFixAutoImageBase() {
|
||||
if [ "${dontRebase-}" == 1 ] || [ ! -d "$prefix" ]; then
|
||||
return
|
||||
fi
|
||||
find "$prefix" -name "*.dll" -type f | while read DLL; do
|
||||
if [ -f /etc/rebasenix.nextbase ]; then
|
||||
NEXTBASE="$(</etc/rebasenix.nextbase)"
|
||||
fi
|
||||
NEXTBASE=${NEXTBASE:-0x62000000}
|
||||
|
||||
REBASE=(`/bin/rebase -i $DLL`)
|
||||
BASE=${REBASE[2]}
|
||||
SIZE=${REBASE[4]}
|
||||
SKIP=$(((($SIZE>>16)+1)<<16))
|
||||
|
||||
echo "REBASE FIX: $DLL $BASE -> $NEXTBASE"
|
||||
/bin/rebase -b $NEXTBASE $DLL
|
||||
NEXTBASE="0x`printf %x $(($NEXTBASE+$SKIP))`"
|
||||
|
||||
echo $NEXTBASE > /etc/rebasenix.nextbase
|
||||
done
|
||||
}
|
||||
24
pkgs/stdenv/cygwin/rebase-x86_64.sh
Normal file
24
pkgs/stdenv/cygwin/rebase-x86_64.sh
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
fixupOutputHooks+=(_cygwinFixAutoImageBase)
|
||||
|
||||
_cygwinFixAutoImageBase() {
|
||||
if [ "${dontRebase-}" == 1 ] || [ ! -d "$prefix" ]; then
|
||||
return
|
||||
fi
|
||||
find "$prefix" -name "*.dll" -type f | while read DLL; do
|
||||
if [ -f /etc/rebasenix.nextbase ]; then
|
||||
NEXTBASE="$(</etc/rebasenix.nextbase)"
|
||||
fi
|
||||
NEXTBASE=${NEXTBASE:-0x200000001}
|
||||
|
||||
REBASE=(`/bin/rebase -i $DLL`)
|
||||
BASE=${REBASE[2]}
|
||||
SIZE=${REBASE[4]}
|
||||
SKIP=$(((($SIZE>>16)+1)<<16))
|
||||
|
||||
echo "REBASE FIX: $DLL $BASE -> $NEXTBASE"
|
||||
/bin/rebase -b $NEXTBASE $DLL
|
||||
NEXTBASE="0x`printf %x $(($NEXTBASE+$SKIP))`"
|
||||
|
||||
echo $NEXTBASE > /etc/rebasenix.nextbase
|
||||
done
|
||||
}
|
||||
74
pkgs/stdenv/cygwin/wrap-exes-to-find-dlls.sh
Normal file
74
pkgs/stdenv/cygwin/wrap-exes-to-find-dlls.sh
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
postFixupHooks+=(_cygwinWrapExesToFindDlls)
|
||||
|
||||
_cygwinWrapExesToFindDlls() {
|
||||
find $out -type l | while read LINK; do
|
||||
TARGET="$(readlink "${LINK}")"
|
||||
|
||||
# fix all non .exe links that link explicitly to a .exe
|
||||
if [[ ${TARGET} == *.exe ]] && [[ ${LINK} != *.exe ]]; then
|
||||
mv "${LINK}" "${LINK}.exe"
|
||||
LINK="${LINK}.exe"
|
||||
fi
|
||||
|
||||
# generate complementary filenames
|
||||
if [[ ${LINK} == *.exe ]]; then
|
||||
_LINK="${LINK%.exe}"
|
||||
_TARGET="${TARGET%.exe}"
|
||||
else
|
||||
_LINK="${LINK}.exe"
|
||||
_TARGET="${TARGET}.exe"
|
||||
fi
|
||||
|
||||
# check if sould create complementary link
|
||||
DOLINK=1
|
||||
if [[ ${_TARGET} == *.exe ]]; then
|
||||
# the canonical target has to be a .exe
|
||||
CTARGET="$(readlink -f "${LINK}")"
|
||||
if [[ ${CTARGET} != *.exe ]]; then
|
||||
CTARGET="${CTARGET}.exe"
|
||||
fi
|
||||
|
||||
if [ ! -e "${CTARGET}" ]; then
|
||||
unset DOLINK
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -e "${_LINK}" ]; then
|
||||
# complementary link seems to exist
|
||||
# but could be cygwin smoke and mirrors
|
||||
INO=$(stat -c%i "${LINK}")
|
||||
_INO=$(stat -c%i "${_LINK}")
|
||||
if [ "${INO}" -ne "${_INO}" ]; then
|
||||
unset DOLINK
|
||||
fi
|
||||
fi
|
||||
|
||||
# create complementary link
|
||||
if [ -n "${DOLINK}" ]; then
|
||||
ln -s "${_TARGET}" "${_LINK}.tmp"
|
||||
mv "${_LINK}.tmp" "${_LINK}"
|
||||
fi
|
||||
done
|
||||
|
||||
find $out -type f -name "*.exe" | while read EXE; do
|
||||
WRAPPER="${EXE%.exe}"
|
||||
if [ -e "${WRAPPER}" ]; then
|
||||
# check if really exists or cygwin smoke and mirrors
|
||||
INO=$(stat -c%i "${EXE}")
|
||||
_INO=$(stat -c%i "${WRAPPER}")
|
||||
if [ "${INO}" -ne "${_INO}" ]; then
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
|
||||
mv "${EXE}" "${EXE}.tmp"
|
||||
|
||||
cat >"${WRAPPER}" <<EOF
|
||||
#!/bin/sh
|
||||
export PATH=$_PATH${_PATH:+:}\${PATH}
|
||||
exec "\$0.exe" "\$@"
|
||||
EOF
|
||||
chmod +x "${WRAPPER}"
|
||||
mv "${EXE}.tmp" "${EXE}"
|
||||
done
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue