Compare commits
36 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| fdce705e55 | |||
| 81268e7064 | |||
| f502f41359 | |||
| 34c9cfb6b0 | |||
| 6da1790c46 | |||
| d333c940da | |||
| c940d2906f | |||
| ac4b51ba85 | |||
| ea7a1ad2c7 | |||
| 45ddd6a68d | |||
| acd99364e0 | |||
| 14710dea55 | |||
| 5d3be8da1d | |||
| 3026821f9f | |||
| fba51dabd0 | |||
| c4da5e81fa | |||
| bc80d81432 | |||
| 67797efead | |||
| c7cb036536 | |||
| 0ccbc5f139 | |||
| 2a6bbcaf8f | |||
| d46a8438ba | |||
| cc9d19da19 | |||
| 6e6aa6fd6d | |||
| 61652a2989 | |||
| edd7503607 | |||
| c9d6dab401 | |||
| d303038bcb | |||
| 0a0e7c3b7c | |||
| 0b4ac35bc9 | |||
| c51864ca39 | |||
| a1cabd5a68 | |||
| 9c1bc99d7a | |||
| c05fedcb76 | |||
| e11beeae4b | |||
| 4749e0d71e |
+6
-1
@@ -16,10 +16,14 @@ environment:
|
|||||||
- { C: msvc-14.0-x64, CL_VERSION: 19.00, VS_VERSION: 2015 }
|
- { C: msvc-14.0-x64, CL_VERSION: 19.00, VS_VERSION: 2015 }
|
||||||
# - { C: gcc-4.9-m32, T: SKIP }
|
# - { C: gcc-4.9-m32, T: SKIP }
|
||||||
# - { C: gcc-4.9-m64, T: SKIP }
|
# - { C: gcc-4.9-m64, T: SKIP }
|
||||||
|
UPX_AUTOMATIC_BUILDS_SSL_KEY:
|
||||||
|
secure: PZMpVeqnEYe39kK+Zu2/fnmZ6/HG6Lvls0hh9GMVU9vCWsr8xaU7kIbHBS01puUkb4bEWPILKYvSEDuhOhguDjd/P4QdXWipvV/F2GaVax0=
|
||||||
|
UPX_AUTOMATIC_BUILDS_SSL_IV:
|
||||||
|
secure: ZshjJ/78dbY60mVJjZJv9Si7rHY9VQb1tfQvFd4lqvY=
|
||||||
|
|
||||||
init:
|
init:
|
||||||
- git config --global core.autocrlf input
|
- git config --global core.autocrlf input
|
||||||
- where bash & where cat & where curl & where file & where git & where gzip & where readlink & where sed & where sha256sum & where tar
|
- where bash & where cat & where chmod & where cp & where curl & where date & where file & where git & where gzip & where mkdir & where mv & where openssl & where readlink & where rm & where rmdir & where sed & where sha256sum & where sort & where ssh & where ssh-add & where ssh-agent & where ssh-keyscan & where tar
|
||||||
# - bash --version & git --version & sed --version & tar --version
|
# - bash --version & git --version & sed --version & tar --version
|
||||||
- git --version & bash --version
|
- git --version & bash --version
|
||||||
# - dir "c:\Program Files\Git\usr\bin"
|
# - dir "c:\Program Files\Git\usr\bin"
|
||||||
@@ -96,5 +100,6 @@ test_script:
|
|||||||
# now run the UPX testsuite using bash
|
# now run the UPX testsuite using bash
|
||||||
- cd c:\projects\upx
|
- cd c:\projects\upx
|
||||||
- bash ./.github/travis_testsuite_1.sh
|
- bash ./.github/travis_testsuite_1.sh
|
||||||
|
- bash ./.github/travis_deploy.sh
|
||||||
|
|
||||||
# vim:set ts=2 sw=2 et:
|
# vim:set ts=2 sw=2 et:
|
||||||
|
|||||||
@@ -131,6 +131,7 @@ export EXTRA_CPPFLAGS EXTRA_CXXFLAGS EXTRA_LDFLAGS
|
|||||||
[[ -z $upx_exeext ]] && upx_exeext=.out
|
[[ -z $upx_exeext ]] && upx_exeext=.out
|
||||||
$make exeext=$upx_exeext
|
$make exeext=$upx_exeext
|
||||||
|
|
||||||
|
pwd
|
||||||
ls -l upx${upx_exeext}
|
ls -l upx${upx_exeext}
|
||||||
$SIZE upx${upx_exeext} || true
|
$SIZE upx${upx_exeext} || true
|
||||||
file upx${upx_exeext}
|
file upx${upx_exeext}
|
||||||
|
|||||||
@@ -0,0 +1,174 @@
|
|||||||
|
#! /bin/bash
|
||||||
|
## vim:set ts=4 sw=4 et:
|
||||||
|
set -e; set -o pipefail
|
||||||
|
|
||||||
|
# Support for Travis CI -- https://travis-ci.org/upx/upx/builds
|
||||||
|
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
|
||||||
|
|
||||||
|
if [[ $TRAVIS_OS_NAME == osx ]]; then
|
||||||
|
argv0=$0; argv0abs=$(greadlink -en -- "$0"); argv0dir=$(dirname "$argv0abs")
|
||||||
|
else
|
||||||
|
argv0=$0; argv0abs=$(readlink -en -- "$0"); argv0dir=$(dirname "$argv0abs")
|
||||||
|
fi
|
||||||
|
source "$argv0dir/travis_init.sh" || exit 1
|
||||||
|
|
||||||
|
set -x # debug
|
||||||
|
|
||||||
|
if [[ $BM_X == rebuild-stubs ]]; then exit 0; fi
|
||||||
|
# save space
|
||||||
|
if [[ $BM_B =~ (^|\+)coverage($|\+) ]]; then exit 0; fi
|
||||||
|
if [[ $BM_B =~ (^|\+)debug($|\+) ]]; then exit 0; fi
|
||||||
|
if [[ $BM_B =~ (^|\+)sanitize($|\+) ]]; then exit 0; fi
|
||||||
|
if [[ $BM_B =~ (^|\+)scan-build($|\+) ]]; then exit 0; fi
|
||||||
|
if [[ $BM_B =~ (^|\+)valgrind($|\+) ]]; then exit 0; fi
|
||||||
|
|
||||||
|
# prepare $subdir and $branch
|
||||||
|
subdir=
|
||||||
|
branch=
|
||||||
|
if [[ -n $APPVEYOR_JOB_ID ]]; then
|
||||||
|
branch=$APPVEYOR_REPO_BRANCH
|
||||||
|
if [[ -n $APPVEYOR_PULL_REQUEST_NUMBER ]]; then exit 0; fi
|
||||||
|
elif [[ -n $GITLAB_CI ]]; then
|
||||||
|
subdir=$CI_BUILD_NAME
|
||||||
|
branch=$CI_BUILD_REF_NAME
|
||||||
|
else
|
||||||
|
branch=$TRAVIS_BRANCH
|
||||||
|
if [[ "$TRAVIS_PULL_REQUEST" != "false" ]]; then exit 0; fi
|
||||||
|
fi
|
||||||
|
subdir=${subdir%%:*}; subdir=${subdir%%/*}; subdir=${subdir%%-*}
|
||||||
|
case $branch in
|
||||||
|
devel*) ;;
|
||||||
|
master*) ;;
|
||||||
|
travis*) ;;
|
||||||
|
*) exit 0;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# get $rev, $branch and $git_user
|
||||||
|
cd / && cd $upx_SRCDIR || exit 1
|
||||||
|
rev=$(git rev-parse --verify HEAD)
|
||||||
|
timestamp=$(git log -n1 --format='%at' HEAD)
|
||||||
|
date=$(TZ=UTC0 date -d "@$timestamp" '+%Y%m%d-%H%M%S')
|
||||||
|
#branch="$branch-$date-${rev:0:6}"
|
||||||
|
# make the branch name a little bit shorter so that it looks nice on GitHub
|
||||||
|
branch="$branch-${date:0:8}-${rev:0:7}"
|
||||||
|
if [[ -n $APPVEYOR_JOB_ID ]]; then
|
||||||
|
branch="$branch-appveyor"
|
||||||
|
git_user="AppVeyor CI"
|
||||||
|
elif [[ -n $GITLAB_CI ]]; then
|
||||||
|
branch="$branch-gitlab"
|
||||||
|
git_user="GitLab CI"
|
||||||
|
else
|
||||||
|
branch="$branch-travis"
|
||||||
|
git_user="Travis CI"
|
||||||
|
fi
|
||||||
|
unset timestamp date
|
||||||
|
|
||||||
|
# /***********************************************************************
|
||||||
|
# // prepare directory $d
|
||||||
|
# ************************************************************************/
|
||||||
|
|
||||||
|
cd / && cd $upx_BUILDDIR || exit 1
|
||||||
|
|
||||||
|
mkdir deploy || exit 1
|
||||||
|
chmod 700 deploy
|
||||||
|
cd deploy || exit 1
|
||||||
|
|
||||||
|
if [[ -n $BM_CROSS ]]; then
|
||||||
|
d=$BM_CROSS
|
||||||
|
else
|
||||||
|
cpu=unknown
|
||||||
|
case $BM_C in
|
||||||
|
clang*-m32 | gcc*-m32) cpu=i386;;
|
||||||
|
clang*-m64 | gcc*-m64) cpu=amd64;;
|
||||||
|
clang*-mx32 | gcc*-mx32) cpu=amd64;;
|
||||||
|
msvc*-x86) cpu=i386;;
|
||||||
|
msvc*-x64) cpu=amd64;;
|
||||||
|
esac
|
||||||
|
os=$TRAVIS_OS_NAME
|
||||||
|
if [[ $os == osx ]]; then
|
||||||
|
os=darwin
|
||||||
|
elif [[ $os == windows ]]; then
|
||||||
|
[[ $cpu == i386 ]] && os=win32
|
||||||
|
[[ $cpu == amd64 ]] && os=win64
|
||||||
|
fi
|
||||||
|
d=$cpu-$os
|
||||||
|
fi
|
||||||
|
d=$d-$BM_C-$BM_B
|
||||||
|
|
||||||
|
mkdir $d || exit 1
|
||||||
|
for exeext in .exe .out; do
|
||||||
|
f=$upx_BUILDDIR/upx$exeext
|
||||||
|
if [[ -f $f ]]; then
|
||||||
|
cp -p -i $f $d/upx-git-${rev:0:12}$exeext
|
||||||
|
sha256sum -b $d/upx-git-${rev:0:12}$exeext
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# /***********************************************************************
|
||||||
|
# // clone, add files & push
|
||||||
|
# ************************************************************************/
|
||||||
|
|
||||||
|
new_branch=0
|
||||||
|
if ! git clone -b $branch --single-branch https://github.com/upx/upx-automatic-builds.git; then
|
||||||
|
git clone -b master --single-branch https://github.com/upx/upx-automatic-builds.git
|
||||||
|
new_branch=1
|
||||||
|
fi
|
||||||
|
cd upx-automatic-builds || exit 1
|
||||||
|
chmod 700 .git
|
||||||
|
git config user.name "$git_user"
|
||||||
|
git config user.email "none@none"
|
||||||
|
if [[ $new_branch == 1 ]]; then
|
||||||
|
git checkout --orphan $branch
|
||||||
|
git reset --hard
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n $subdir ]]; then
|
||||||
|
[[ -d $subdir ]] || mkdir $subdir
|
||||||
|
mv ../$d $subdir/
|
||||||
|
git add $subdir/$d
|
||||||
|
else
|
||||||
|
mv ../$d .
|
||||||
|
git add $d
|
||||||
|
fi
|
||||||
|
|
||||||
|
if git diff --cached --exit-code --quiet >/dev/null; then
|
||||||
|
# nothing to do ???
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
now=$(date '+%s')
|
||||||
|
##date=$(TZ=UTC0 date -d "@$now" '+%Y-%m-%d %H:%M:%S')
|
||||||
|
git commit --date="$now" -m "Automatic build $d"
|
||||||
|
git ls-files
|
||||||
|
#git log --pretty=fuller
|
||||||
|
|
||||||
|
umask 077
|
||||||
|
[[ -d ~/.ssh ]] || mkdir ~/.ssh
|
||||||
|
repo=$(git config remote.origin.url)
|
||||||
|
ssh_repo=${repo/https:\/\/github.com\//git@github.com:}
|
||||||
|
eval $(ssh-agent -s)
|
||||||
|
set +x # IMPORTANT
|
||||||
|
openssl aes-256-cbc -d -a -K "$UPX_AUTOMATIC_BUILDS_SSL_KEY" -iv "$UPX_AUTOMATIC_BUILDS_SSL_IV" -in "$upx_SRCDIR/.github/upx-automatic-builds@github.com.enc" -out .git/deploy.key
|
||||||
|
set -x
|
||||||
|
chmod 600 .git/deploy.key
|
||||||
|
ssh-add .git/deploy.key
|
||||||
|
ssh-keyscan -H github.com >> ~/.ssh/known_hosts
|
||||||
|
|
||||||
|
let i=0 || true
|
||||||
|
while true; do
|
||||||
|
if [[ $i -ge 10 ]]; then
|
||||||
|
echo "ERROR: git push failed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [[ $new_branch == 1 ]]; then
|
||||||
|
if git push -u $ssh_repo $branch; then break; fi
|
||||||
|
else
|
||||||
|
if git push $ssh_repo $branch; then break; fi
|
||||||
|
fi
|
||||||
|
git fetch -v origin $branch
|
||||||
|
git rebase origin/$branch
|
||||||
|
sleep $((RANDOM % 5 + 1))
|
||||||
|
let i+=1
|
||||||
|
done
|
||||||
|
|
||||||
|
exit 0
|
||||||
+63
-14
@@ -19,10 +19,15 @@ unset CROSS C B T X
|
|||||||
|
|
||||||
# just in case, unset variable for passing extra UPX options
|
# just in case, unset variable for passing extra UPX options
|
||||||
export UPX=
|
export UPX=
|
||||||
|
# un-export some vars
|
||||||
|
declare +x UPX_AUTOMATIC_BUILDS_SSL_KEY UPX_AUTOMATIC_BUILDS_SSL_IV
|
||||||
|
|
||||||
# compatibility wrappers
|
# compatibility wrappers
|
||||||
if [[ $TRAVIS_OS_NAME == osx ]]; then
|
if [[ $TRAVIS_OS_NAME == osx ]]; then
|
||||||
# use GNU coreutils ("brew install coreutils")
|
# use GNU coreutils ("brew install coreutils")
|
||||||
|
date() {
|
||||||
|
gdate "$@"
|
||||||
|
}
|
||||||
readlink() {
|
readlink() {
|
||||||
greadlink "$@"
|
greadlink "$@"
|
||||||
}
|
}
|
||||||
@@ -31,7 +36,9 @@ sha256sum() {
|
|||||||
}
|
}
|
||||||
fi
|
fi
|
||||||
if [[ -n $APPVEYOR_JOB_ID ]]; then
|
if [[ -n $APPVEYOR_JOB_ID ]]; then
|
||||||
# for some reason this is needed for bash on AppVeyor
|
openssl() {
|
||||||
|
/usr/bin/openssl "$@"
|
||||||
|
}
|
||||||
sort() {
|
sort() {
|
||||||
/usr/bin/sort "$@"
|
/usr/bin/sort "$@"
|
||||||
}
|
}
|
||||||
@@ -43,54 +50,95 @@ CC=false CXX=false SCAN_BUILD=false
|
|||||||
AR=ar SIZE=size
|
AR=ar SIZE=size
|
||||||
if [[ -n $APPVEYOR_JOB_ID ]]; then
|
if [[ -n $APPVEYOR_JOB_ID ]]; then
|
||||||
BUILD_LOCAL_ZLIB=1
|
BUILD_LOCAL_ZLIB=1
|
||||||
|
if [[ $BM_C =~ (^|\-)(clang|gcc)($|\-) ]]; then
|
||||||
|
export upx_EXTRA_LDFLAGS="-static-libgcc -static-libstdc++"
|
||||||
|
fi
|
||||||
upx_exeext=.exe
|
upx_exeext=.exe
|
||||||
# dir c:\cygwin
|
# dir c:\cygwin
|
||||||
case $BM_C in
|
case $BM_C in
|
||||||
gcc-m32 | gcc-4.9-m32)
|
gcc-m32 | gcc-4.9-m32)
|
||||||
export upx_EXTRA_LDFLAGS="-static-libgcc -static-libstdc++"
|
|
||||||
x=i686-w64-mingw32; AR="$x-ar"; CC="$x-gcc -m32"; CXX="$x-g++ -m32" ;;
|
x=i686-w64-mingw32; AR="$x-ar"; CC="$x-gcc -m32"; CXX="$x-g++ -m32" ;;
|
||||||
gcc-m64 | gcc-4.9-m64)
|
gcc-m64 | gcc-4.9-m64)
|
||||||
export upx_EXTRA_LDFLAGS="-static-libgcc -static-libstdc++"
|
|
||||||
x=x86_64-w64-mingw32; AR="$x-ar"; CC="$x-gcc -m64"; CXX="$x-g++ -m64" ;;
|
x=x86_64-w64-mingw32; AR="$x-ar"; CC="$x-gcc -m64"; CXX="$x-g++ -m64" ;;
|
||||||
msvc | msvc-*)
|
msvc | msvc-*)
|
||||||
AR="link -lib"; CC="cl"; CXX="cl" ;; # standard system compiler
|
AR="link -lib"; CC="cl"; CXX="cl" ;; # standard system compiler
|
||||||
esac
|
esac
|
||||||
fi # APPVEYOR_JOB_ID
|
fi # APPVEYOR_JOB_ID
|
||||||
if [[ -n $TRAVIS_JOB_ID ]]; then # TODO: should check for Ubuntu and not for Travis
|
|
||||||
if [[ -n $BM_CROSS ]]; then
|
if [[ -n $BM_CROSS ]]; then
|
||||||
BUILD_LOCAL_ZLIB=1
|
BUILD_LOCAL_ZLIB=1
|
||||||
|
if [[ $BM_C =~ (^|\-)(clang|gcc)($|\-) ]]; then
|
||||||
|
export upx_EXTRA_LDFLAGS="-static-libgcc -static-libstdc++"
|
||||||
|
fi
|
||||||
|
cat /etc/os-release || true
|
||||||
|
if egrep -q '^PRETTY_NAME="?Ubuntu .*12\.04' /etc/os-release; then
|
||||||
case $BM_CROSS-$BM_C in
|
case $BM_CROSS-$BM_C in
|
||||||
arm-linux-gnueabi-gcc | arm-linux-gnueabi-gcc-4.6)
|
arm-linux-gnueabi-gcc | arm-linux-gnueabi-gcc-4.6)
|
||||||
export upx_EXTRA_LDFLAGS="-static-libgcc -static-libstdc++"
|
|
||||||
[[ -z $upx_qemu ]] && upx_qemu="qemu-arm -L /usr/arm-linux-gnueabi"
|
[[ -z $upx_qemu ]] && upx_qemu="qemu-arm -L /usr/arm-linux-gnueabi"
|
||||||
x=arm-linux-gnueabi; AR="$x-ar"; CC="$x-gcc"; CXX="$x-g++" ;;
|
x=arm-linux-gnueabi; AR="$x-ar"; CC="$x-gcc"; CXX="$x-g++" ;;
|
||||||
arm-linux-gnueabihf-gcc | arm-linux-gnueabihf-gcc-4.6)
|
arm-linux-gnueabihf-gcc | arm-linux-gnueabihf-gcc-4.6)
|
||||||
export upx_EXTRA_LDFLAGS="-static-libgcc -static-libstdc++"
|
|
||||||
[[ -z $upx_qemu ]] && upx_qemu="qemu-arm -L /usr/arm-linux-gnueabihf"
|
[[ -z $upx_qemu ]] && upx_qemu="qemu-arm -L /usr/arm-linux-gnueabihf"
|
||||||
x=arm-linux-gnueabihf; AR="$x-ar"; CC="$x-gcc"; CXX="$x-g++" ;;
|
x=arm-linux-gnueabihf; AR="$x-ar"; CC="$x-gcc"; CXX="$x-g++" ;;
|
||||||
i[36]86-w64-mingw32-gcc | i[36]86-w64-mingw32-gcc-4.6)
|
i[36]86-w64-mingw32-gcc | i[36]86-w64-mingw32-gcc-4.6)
|
||||||
export upx_EXTRA_LDFLAGS="-static-libgcc -static-libstdc++"
|
upx_exeext=.exe
|
||||||
[[ -z $upx_wine ]] && upx_wine="wine"
|
[[ -z $upx_wine ]] && upx_wine="wine"
|
||||||
x=i686-w64-mingw32; AR="$x-ar"; CC="$x-gcc -m32"; CXX="$x-g++ -m32" ;;
|
x=i686-w64-mingw32; AR="$x-ar"; CC="$x-gcc -m32"; CXX="$x-g++ -m32" ;;
|
||||||
x86_64-w64-mingw32-gcc | x86_64-w64-mingw32-gcc-4.6)
|
x86_64-w64-mingw32-gcc | x86_64-w64-mingw32-gcc-4.6)
|
||||||
export upx_EXTRA_LDFLAGS="-static-libgcc -static-libstdc++"
|
upx_exeext=.exe
|
||||||
|
[[ -z $upx_wine ]] && upx_wine="wine"
|
||||||
|
x=x86_64-w64-mingw32; AR="$x-ar"; CC="$x-gcc -m64"; CXX="$x-g++ -m64" ;;
|
||||||
|
esac
|
||||||
|
elif egrep -q '^PRETTY_NAME="?Ubuntu 16\.04' /etc/os-release; then
|
||||||
|
case $BM_CROSS-$BM_C in
|
||||||
|
aarch64-linux-gnu-gcc-5)
|
||||||
|
[[ -z $upx_qemu ]] && upx_qemu="qemu-aarch64 -L /usr/aarch64-linux-gnu"
|
||||||
|
x=aarch64-linux-gnu; AR="$x-ar"; CC="$x-gcc-5"; CXX="$x-g++-5" ;;
|
||||||
|
arm-linux-gnueabi-gcc-5)
|
||||||
|
[[ -z $upx_qemu ]] && upx_qemu="qemu-arm -L /usr/arm-linux-gnueabi"
|
||||||
|
x=arm-linux-gnueabi; AR="$x-ar"; CC="$x-gcc-5"; CXX="$x-g++-5" ;;
|
||||||
|
arm-linux-gnueabihf-gcc-5)
|
||||||
|
[[ -z $upx_qemu ]] && upx_qemu="qemu-arm -L /usr/arm-linux-gnueabihf"
|
||||||
|
x=arm-linux-gnueabihf; AR="$x-ar"; CC="$x-gcc-5"; CXX="$x-g++-5" ;;
|
||||||
|
i[36]86-w64-mingw32-gcc-5)
|
||||||
|
upx_exeext=.exe
|
||||||
|
[[ -z $upx_wine ]] && upx_wine="wine"
|
||||||
|
x=i686-w64-mingw32; AR="$x-ar"; CC="$x-gcc -m32"; CXX="$x-g++ -m32" ;;
|
||||||
|
mips-linux-gnu-gcc-5)
|
||||||
|
[[ -z $upx_qemu ]] && upx_qemu="qemu-mips -L /usr/mips-linux-gnu"
|
||||||
|
x=mips-linux-gnu; AR="$x-ar"; CC="$x-gcc-5"; CXX="$x-g++-5" ;;
|
||||||
|
mipsel-linux-gnu-gcc-5)
|
||||||
|
[[ -z $upx_qemu ]] && upx_qemu="qemu-mipsel -L /usr/mipsel-linux-gnu"
|
||||||
|
x=mipsel-linux-gnu; AR="$x-ar"; CC="$x-gcc-5"; CXX="$x-g++-5" ;;
|
||||||
|
powerpc-linux-gnu-gcc-5)
|
||||||
|
[[ -z $upx_qemu ]] && upx_qemu="qemu-ppc -L /usr/powerpc-linux-gnu"
|
||||||
|
x=powerpc-linux-gnu; AR="$x-ar"; CC="$x-gcc-5"; CXX="$x-g++-5" ;;
|
||||||
|
powerpc64-linux-gnu-gcc-5)
|
||||||
|
[[ -z $upx_qemu ]] && upx_qemu="qemu-ppc64 -L /usr/powerpc64-linux-gnu"
|
||||||
|
x=powerpc64-linux-gnu; AR="$x-ar"; CC="$x-gcc-5"; CXX="$x-g++-5" ;;
|
||||||
|
powerpc64le-linux-gnu-gcc-5)
|
||||||
|
[[ -z $upx_qemu ]] && upx_qemu="qemu-ppc64le -L /usr/powerpc64le-linux-gnu"
|
||||||
|
x=powerpc64le-linux-gnu; AR="$x-ar"; CC="$x-gcc-5"; CXX="$x-g++-5" ;;
|
||||||
|
s390x-linux-gnu-gcc-5)
|
||||||
|
[[ -z $upx_qemu ]] && upx_qemu="qemu-s390x -L /usr/s390x-linux-gnu"
|
||||||
|
x=s390x-linux-gnu; AR="$x-ar"; CC="$x-gcc-5"; CXX="$x-g++-5" ;;
|
||||||
|
x86_64-w64-mingw32-gcc-5)
|
||||||
|
upx_exeext=.exe
|
||||||
[[ -z $upx_wine ]] && upx_wine="wine"
|
[[ -z $upx_wine ]] && upx_wine="wine"
|
||||||
x=x86_64-w64-mingw32; AR="$x-ar"; CC="$x-gcc -m64"; CXX="$x-g++ -m64" ;;
|
x=x86_64-w64-mingw32; AR="$x-ar"; CC="$x-gcc -m64"; CXX="$x-g++ -m64" ;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
fi # TRAVIS_JOB_ID
|
fi # BM_CROSS
|
||||||
if [[ "$CC" == "false" ]]; then # generic
|
if [[ "$CC" == "false" ]]; then # generic
|
||||||
if [[ -z $BM_CROSS ]]; then
|
if [[ -z $BM_CROSS ]]; then
|
||||||
case $BM_C in
|
case $BM_C in
|
||||||
clang | clang-m?? | clang-3.4-m?? | clang-[678][0-9][0-9]-m??)
|
clang | clang-m?? | clang-3.4-m?? | clang-[678][0-9][0-9]-m??)
|
||||||
CC="clang"; CXX="clang++" ;; # standard system compiler
|
CC="clang"; CXX="clang++" ;; # standard system compiler
|
||||||
clang-[34].[0-9]-m??)
|
clang-[3].[0-9]-m??)
|
||||||
v=${BM_C:6:3}; CC="clang-$v"; CXX="clang++-$v"; SCAN_BUILD="scan-build-$v" ;;
|
v=${BM_C:6:3}; CC="clang-$v"; CXX="clang++-$v"; SCAN_BUILD="scan-build-$v" ;;
|
||||||
gcc | gcc-m??)
|
gcc | gcc-m?? | gcc-mx32)
|
||||||
CC="gcc"; CXX="g++" ;; # standard system compiler
|
CC="gcc"; CXX="g++" ;; # standard system compiler
|
||||||
gcc-[34].[0-9]-m??)
|
gcc-[34].[0-9]-m?? | gcc-[34].[0-9]-mx32)
|
||||||
v=${BM_C:4:3}; CC="gcc-$v"; CXX="g++-$v" ;;
|
v=${BM_C:4:3}; CC="gcc-$v"; CXX="g++-$v" ;;
|
||||||
gcc-[56]-m?? | gcc-[56].[0-9]-m??)
|
gcc-[56]-m?? | gcc-[56]-mx32)
|
||||||
v=${BM_C:4:1}; CC="gcc-$v"; CXX="g++-$v" ;;
|
v=${BM_C:4:1}; CC="gcc-$v"; CXX="g++-$v" ;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
@@ -100,6 +148,7 @@ case $BM_C in
|
|||||||
clang*-m64) CC="$CC -m64"; CXX="$CXX -m64" ;;
|
clang*-m64) CC="$CC -m64"; CXX="$CXX -m64" ;;
|
||||||
gcc*-m32) CC="$CC -m32"; CXX="$CXX -m32" ;;
|
gcc*-m32) CC="$CC -m32"; CXX="$CXX -m32" ;;
|
||||||
gcc*-m64) CC="$CC -m64"; CXX="$CXX -m64" ;;
|
gcc*-m64) CC="$CC -m64"; CXX="$CXX -m64" ;;
|
||||||
|
gcc*-mx32) CC="$CC -mx32"; CXX="$CXX -mx32" ;;
|
||||||
esac
|
esac
|
||||||
if [[ $BM_C =~ (^|\-)(clang|gcc)($|\-) ]]; then
|
if [[ $BM_C =~ (^|\-)(clang|gcc)($|\-) ]]; then
|
||||||
CC="$CC -std=gnu89"
|
CC="$CC -std=gnu89"
|
||||||
@@ -136,7 +185,7 @@ if [[ -z $toptop_builddir ]]; then
|
|||||||
unset d subdir dd
|
unset d subdir dd
|
||||||
fi
|
fi
|
||||||
[[ -z $toptop_builddir ]] && toptop_builddir=$(readlink -mn -- ./build)
|
[[ -z $toptop_builddir ]] && toptop_builddir=$(readlink -mn -- ./build)
|
||||||
[[ -z $toptop_bdir ]] && toptop_bdir=$(readlink -mn -- "$toptop_builddir/$BM_C/$BM_B")
|
[[ -z $toptop_bdir ]] && toptop_bdir=$(readlink -mn -- "$toptop_builddir/${BM_CROSS:+$BM_CROSS-}$BM_C/$BM_B")
|
||||||
[[ -z $upx_BUILDDIR ]] && upx_BUILDDIR=$(readlink -mn -- "$toptop_bdir/upx")
|
[[ -z $upx_BUILDDIR ]] && upx_BUILDDIR=$(readlink -mn -- "$toptop_bdir/upx")
|
||||||
[[ -z $ucl_BUILDDIR ]] && ucl_BUILDDIR=$(readlink -mn -- "$toptop_bdir/ucl-1.03")
|
[[ -z $ucl_BUILDDIR ]] && ucl_BUILDDIR=$(readlink -mn -- "$toptop_bdir/ucl-1.03")
|
||||||
[[ -z $upx_testsuite_BUILDDIR ]] && upx_testsuite_BUILDDIR=$(readlink -mn -- "$toptop_bdir/upx-testsuite")
|
[[ -z $upx_testsuite_BUILDDIR ]] && upx_testsuite_BUILDDIR=$(readlink -mn -- "$toptop_bdir/upx-testsuite")
|
||||||
|
|||||||
@@ -31,7 +31,6 @@ mkbuilddirs $upx_testsuite_BUILDDIR
|
|||||||
cd / && cd $upx_testsuite_BUILDDIR || exit 1
|
cd / && cd $upx_testsuite_BUILDDIR || exit 1
|
||||||
if [[ ! -d $upx_testsuite_SRCDIR/files/packed ]]; then exit 1; fi
|
if [[ ! -d $upx_testsuite_SRCDIR/files/packed ]]; then exit 1; fi
|
||||||
|
|
||||||
|
|
||||||
# /***********************************************************************
|
# /***********************************************************************
|
||||||
# // support functions
|
# // support functions
|
||||||
# ************************************************************************/
|
# ************************************************************************/
|
||||||
@@ -105,7 +104,6 @@ testsuite_run_compress() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# /***********************************************************************
|
# /***********************************************************************
|
||||||
# // expected checksums
|
# // expected checksums
|
||||||
# //
|
# //
|
||||||
@@ -152,86 +150,84 @@ c3f44b4d00a87384c03a6f9e7aec809c1addfe3e271244d38a474f296603088c *mipsel-linux.e
|
|||||||
b8c35fa2956da17ca505956e9f5017bb5f3a746322647e24ccb8ff28059cafa4 *powerpc-linux.elf/upx-3.91
|
b8c35fa2956da17ca505956e9f5017bb5f3a746322647e24ccb8ff28059cafa4 *powerpc-linux.elf/upx-3.91
|
||||||
"
|
"
|
||||||
expected_sha256sums__t110_compress_ucl_nrv2b_3_no_filter="\
|
expected_sha256sums__t110_compress_ucl_nrv2b_3_no_filter="\
|
||||||
a1f0fd57e4323eb25abf1d000569d3c7b62ceb12fb59e645d4807742baf0cd1f *amd64-linux.elf/upx-3.91
|
52d0189f9ed16162332fbe359d723753ca1b7d7374a249d6b16144e363073384 *amd64-linux.elf/upx-3.91
|
||||||
6be5bd999387712f90fde45556c9487d02306593146c8d3cd4ced89568732729 *arm-wince.pe/upx-3.91.exe
|
0af0b3df9ca5b34ebc8ed06b3bf46807e585032961f053abfeefcb60bd63907e *arm-wince.pe/upx-3.91.exe
|
||||||
9d0ccc7e39ef23845b858869bf9718c43de5fd0eee7c61edbd63565a55110032 *armeb-linux.elf/upx-3.91
|
851ea686cc1d6ef7c63978829f0bfe40c761d00e9f07c3d4f9ce59201da4409c *armeb-linux.elf/upx-3.91
|
||||||
03988f039a5372125bf90b6658516656a8582dd1c46423cb12faeb82870348bb *i386-dos32.djgpp2.coff/upx-3.91.exe
|
3345fda466927211ed3291ea1255fa09937fcfad974ffb1120deeefe6f655a9e *i386-dos32.djgpp2.coff/upx-3.91.exe
|
||||||
91a9d980788c2974448c83a84af245cf22dbbe01d33850849c8b0ebcec79aab4 *i386-linux.elf/upx-3.91
|
8631629945812b6766da0187390b4d26e830f39a79d80aacda196e678a4be10c *i386-linux.elf/upx-3.91
|
||||||
b9145c02bac9ce7f10bd65587ce35001d3e15a7a102d8f7cc51930b92f477ebf *i386-win32.pe/upx-3.91.exe
|
06794bdb9a8085ca5ef577648bf39402868a507f2a0bd02285c807929499aba4 *i386-win32.pe/upx-3.91.exe
|
||||||
08baacfa5d7e9339cd67263f41983e7c6f773fe9fce862f5daad58a2ac57ce28 *m68k-atari.tos/upx-3.91.ttp
|
6c9e164baa12c45ca8d55788b34e8fabdddb52374200444d42ff48c1d84103eb *m68k-atari.tos/upx-3.91.ttp
|
||||||
6b33a055b2c85dddd5fa6d846939d114ee24a342205f5a23aad31b8873041592 *mipsel-linux.elf/upx-3.91
|
1f3ae2bde7c72e60d3c12fccf572c5aa5dbee566d1d28029e62a8b921c6d77bd *mipsel-linux.elf/upx-3.91
|
||||||
3e97639d9b13132edd3cf5e17f18a5d3f158124b920cabe8c415b8df3e4a8d1d *powerpc-linux.elf/upx-3.91
|
181345ff1dd1c35944ec79d1197ee223913617cdd148a576cd3b9b776b8e86c2 *powerpc-linux.elf/upx-3.91
|
||||||
"
|
"
|
||||||
expected_sha256sums__t120_compress_ucl_nrv2d_3_no_filter="\
|
expected_sha256sums__t120_compress_ucl_nrv2d_3_no_filter="\
|
||||||
1e870e9e12336eaa18289efa86275822025e15feeb9168b21f8c438f2560b84e *amd64-linux.elf/upx-3.91
|
d90f1e94fb8a1d5c123e1c13b30db148870c36ff6f00fc5677bd9f05bae1fc02 *amd64-linux.elf/upx-3.91
|
||||||
23ef6083a6e678975305ceb96f78ce186973b4400d357ca643573b6dd6487512 *arm-wince.pe/upx-3.91.exe
|
e09a089e642f33502a35ab9a416142d3db4dbb67930366054e25c390678c3f7c *arm-wince.pe/upx-3.91.exe
|
||||||
5f1584a75584ef3421ba4aec8167422e78d33e2451ef9a925560d1112eacf88e *armeb-linux.elf/upx-3.91
|
b794cc520ab507887324fe04e1c36e1ed0b63ecdb29241213a3a3cf980e16cc2 *armeb-linux.elf/upx-3.91
|
||||||
8d2938aa4c2b6ee3c50a2fce1041592a766d48c26605b50129b8a14697cc9694 *i386-dos32.djgpp2.coff/upx-3.91.exe
|
ea5df377a14457fc4a4791e67859f77f8fe8b94ed81fd13666618fc690d70987 *i386-dos32.djgpp2.coff/upx-3.91.exe
|
||||||
40ecb345f3094446b5035e058b3d2351c42cc9f108333e3e4d51a64142d8950c *i386-linux.elf/upx-3.91
|
5f0876049576446707270baa651eaa724891cccbee268e18450812d5be5e9990 *i386-linux.elf/upx-3.91
|
||||||
7f4931501baa222ce54b241417f143162865de790be48ecc75846115baa2ce2f *i386-win32.pe/upx-3.91.exe
|
4a65a19b430d50b9f15786342e3de86feb3627af07743b50a9ebfedb10c59a08 *i386-win32.pe/upx-3.91.exe
|
||||||
5abbe27c76c6f12fb560e68dbf56dd0f39bb089428374c42be7585d09f7df1fd *m68k-atari.tos/upx-3.91.ttp
|
d7514121a811a36112cb2f3e42c3284e03a7807e972778229c62c075656d796f *m68k-atari.tos/upx-3.91.ttp
|
||||||
ac552f23195dfebd82558e0523eaa6ece695c711f298ed9a3cdbb571f1df4f1d *mipsel-linux.elf/upx-3.91
|
0effcd336be6dcb092e37bafc9611c99c1d19c1c53a8ca6a26834d9f5f9eb56c *mipsel-linux.elf/upx-3.91
|
||||||
d30f7e75bcfab63aa620e0c677f738395ab7c8b26ba0871e94e052849660dccb *powerpc-linux.elf/upx-3.91
|
dfe218814633aa9ed47477bf021ac0bae0b491ebf9d4ff44194f3d7195e5a200 *powerpc-linux.elf/upx-3.91
|
||||||
"
|
"
|
||||||
expected_sha256sums__t130_compress_ucl_nrv2e_3_no_filter="\
|
expected_sha256sums__t130_compress_ucl_nrv2e_3_no_filter="\
|
||||||
bc67396d280c28532b2687fe694fb5dfaef60b1d1b05881027a2a97322545f7e *amd64-linux.elf/upx-3.91
|
00b67a1cc766b13a6167e0f672cf46b62f0879b6318ed9f548f670b011b3f185 *amd64-linux.elf/upx-3.91
|
||||||
8844ace5189f90a9bf696e5fa2323be9e715d90df4ba60805a2079cb94c218f1 *arm-wince.pe/upx-3.91.exe
|
a377c263a3d981af1ec278a418fcdd09298d76cece0e7c7c9af63f20ccba769d *arm-wince.pe/upx-3.91.exe
|
||||||
ea42d52676d2698f29587e98a9e1536b96ebf523a7d8bc926f6c241a159b4116 *armeb-linux.elf/upx-3.91
|
dbf2fa9b4fa5319c52b25d34aa6f57577b2a63e7241b6d4600915de0f3400190 *armeb-linux.elf/upx-3.91
|
||||||
27f1afd1e1fec37d4dcd43163b9ec60a6af3abeab21a4adf539b7faea848eb20 *i386-dos32.djgpp2.coff/upx-3.91.exe
|
4d925cff00b8959324c0838284f4619831b8080136cef05131906149fdec5bbc *i386-dos32.djgpp2.coff/upx-3.91.exe
|
||||||
5edf3dcfd0458b0f23c19e6c44b4c54a5457bc34c3bf045b37678d4f96301e00 *i386-linux.elf/upx-3.91
|
b114b257ff5de11b75eb4489d2cb2bd3be6cf9cf141e36f02b0ab781d0f9a3ff *i386-linux.elf/upx-3.91
|
||||||
e440de3826a193a81700dd6238eab5f903826e08af120a25bc963ffb6d365087 *i386-win32.pe/upx-3.91.exe
|
ce874eafe18c0f09928992a3aa1f5fe9f0be9d89b87b39ecbcf1c460e4b8e0f7 *i386-win32.pe/upx-3.91.exe
|
||||||
510e2cd126bb8129b9076eb61e1ad3308d9af109cd42dff7252bf43e1e3552ea *m68k-atari.tos/upx-3.91.ttp
|
c60b3faccc59ff37c2e1e3c908d4fe01a2532e7ac1abd4c4ec4ecee974a0e8bd *m68k-atari.tos/upx-3.91.ttp
|
||||||
b61aa58e493b3961646e5c0bcb7f19f74b439fe8f5c934db25b00f97f51a05d0 *mipsel-linux.elf/upx-3.91
|
2b74a6a831c7f9f4df22c65f8a5748a2b6cf6fd68232b0d250737938de27efc6 *mipsel-linux.elf/upx-3.91
|
||||||
18c6b0ec20590dfbe4851ad837e2bb9bc99c6e4e1ac97b49dff2fb632e0e9d4c *powerpc-linux.elf/upx-3.91
|
47ddad5acc39e21d66e471c8af8d9b52e8dd8d7ad89631f771c2ea4d218f441e *powerpc-linux.elf/upx-3.91
|
||||||
"
|
"
|
||||||
expected_sha256sums__t140_compress_lzma_2_no_filter="\
|
expected_sha256sums__t140_compress_lzma_2_no_filter="\
|
||||||
07e31b504273082dc475f217d8418f76ca409f018d42073a387f8a886dbaa83e *amd64-linux.elf/upx-3.91
|
f67ce2b6d4d36367a249faeb802df51dbc56019754c0f4606b5a6f97b72a54d1 *amd64-linux.elf/upx-3.91
|
||||||
0eceefcc32ed25b2f1296cfa853935124aa1b7785b8a177d6e8c5804c24ca319 *arm-wince.pe/upx-3.91.exe
|
57be6aa4f1e5ee6ef6f5eb8694b22eb07c3ea5cc9b9ebfde75db4c9a04a71a5a *arm-wince.pe/upx-3.91.exe
|
||||||
3e7446d8ac6d9b442d6c8e6a3c45aec97f54aa8e90bdc554dd39976495bfa36a *armeb-linux.elf/upx-3.91
|
ef18c1ae56a037d15f0494f4b835c1336a43745edba87c783f62745488008783 *armeb-linux.elf/upx-3.91
|
||||||
1ecd559c89d3995fa0e7ecfa8e60b7746f804fc74ddce87d2c6cbeac8e372a39 *i386-dos32.djgpp2.coff/upx-3.91.exe
|
54a6158bc6bd8cc28d3abc53cc5cf9b63c3c63ae884e96fb6d6ea974c7426206 *i386-dos32.djgpp2.coff/upx-3.91.exe
|
||||||
8a9bde7a9b4a8f6c4efc4a28afe2b3cabe6c0b820dbc38c74c6abae73093b784 *i386-linux.elf/upx-3.91
|
801d1761289f94d7f51effb88e100832d14ae96398844084b9d10852886c4731 *i386-linux.elf/upx-3.91
|
||||||
02d3b09168728cace52f29c5ee5a455c71d2777ccf12f6767cf92a709ceb6640 *i386-win32.pe/upx-3.91.exe
|
f828953a66d7b3394dd2514b5972680a0cc651bd198b7607f6d3f6f6cc390a0e *i386-win32.pe/upx-3.91.exe
|
||||||
35333e53bc2f8a4a8e346f4fba0d366f024bd63d0b8bb083967193ae6466b6ff *m68k-atari.tos/upx-3.91.ttp
|
587b5f1f529da60f5820b8f811743aaad59e3fa9407930de1ab433863f7262a4 *m68k-atari.tos/upx-3.91.ttp
|
||||||
20526efe085aee06bfde1952f90e9d0e1524e0cb56d582caa720934f55562b78 *mipsel-linux.elf/upx-3.91
|
84c811f5d27bac393610bfad4180258494c43d691c13eb57394ab95d4736e621 *mipsel-linux.elf/upx-3.91
|
||||||
65990ec2ab6bceb2d5444918af797be0bdb0931abce8e7db0d2e774614faa64b *powerpc-linux.elf/upx-3.91
|
ed83830ab5e1753a742cf4981401fd8d5bdaabcfdeb385a2e8087aeb46f93512 *powerpc-linux.elf/upx-3.91
|
||||||
"
|
"
|
||||||
expected_sha256sums__t150_compress_ucl_2_all_filters="\
|
expected_sha256sums__t150_compress_ucl_2_all_filters="\
|
||||||
e773ed4ac55d5b967e4c1654f2b540899a63f7722a44d7056d424a6292274aa4 *amd64-linux.elf/upx-3.91
|
2849771c8799d7a446b54ad9914d679e315a9f0d9440f9728c6d5ab6541ed494 *amd64-linux.elf/upx-3.91
|
||||||
0bf874c45ebb90b062cd986fe10cfbd01cdc6a50e3e0b5dda035eb55ded492ff *arm-wince.pe/upx-3.91.exe
|
7ccbe7d7822cd9fed9b3c902c2bcb80f85df4f5bbb4e9e850257435ffa375a38 *arm-wince.pe/upx-3.91.exe
|
||||||
db894f24777334abb9bf8e34661d057e25c2889b46290cf83db7310c4cdd86fa *armeb-linux.elf/upx-3.91
|
c6849deffc7bb1976c18a4815bca0b8fd0b6d19e4136965108daa6382efae2d5 *armeb-linux.elf/upx-3.91
|
||||||
33bde57c3f7ed8809bec0658fe6c48d047bdec97476643f2e8e2970ab0c4eb5f *i386-dos32.djgpp2.coff/upx-3.91.exe
|
c04818c54d68c99f345ee7995634dffbe7f1c2f2db8f2b510bba461d9125f5a9 *i386-dos32.djgpp2.coff/upx-3.91.exe
|
||||||
7f4ad752cab7db426356eb5068e37d06bade2422b6012069814dcfadae7e2cca *i386-linux.elf/upx-3.91
|
a3758350a0454fb78060b6d6e48d8f000e17a628b6041e8c82e3990e0b3aabe9 *i386-linux.elf/upx-3.91
|
||||||
b00756ba6b73b937ac3b2c1222267dc44953ac69337a7ac582ba2e7a471e83a6 *i386-win32.pe/upx-3.91.exe
|
b4f27ba234a5c9b4f68e2067602a180c02f95fb044830f54a45267fe1c50bb83 *i386-win32.pe/upx-3.91.exe
|
||||||
7b09fa5b2f8d85673f3a52c3b478a8dd129ed23681de4028625b33f5f6890942 *m68k-atari.tos/upx-3.91.ttp
|
dd9fb59d57a7157af1a44559f6ebd8a293b0988c66b4d0951c949f88f814bf8f *m68k-atari.tos/upx-3.91.ttp
|
||||||
707b7f32b8b0c1a4e5c26e370b93ae6eb60ab78f7d6163b4e853eb94e69f5d14 *mipsel-linux.elf/upx-3.91
|
c0bc81487114b9d158ffe1dbd4081b9e3636695c63f11b3e204033b56fc69706 *mipsel-linux.elf/upx-3.91
|
||||||
4403a20c1951c9d42b51a175b55a4a9ee6901d626b8e3ed1e7e55a51ae098272 *powerpc-linux.elf/upx-3.91
|
0a700713f0c7ff19a534963f5ab95a63d2f185f82d0c42ce8c1a485aba4c1147 *powerpc-linux.elf/upx-3.91
|
||||||
"
|
"
|
||||||
expected_sha256sums__t160_compress_all_methods_1_no_filter="\
|
expected_sha256sums__t160_compress_all_methods_1_no_filter="\
|
||||||
db82bffefd5ec10cea93b7cc47860db0dc122fac441980b3ae320e3b9c48c7e2 *amd64-linux.elf/upx-3.91
|
831b0dd82d2c8fb058e8300bda5dd51657a709e76c45e0c372d9cf83c2e06f31 *amd64-linux.elf/upx-3.91
|
||||||
df81b2376af28989faa0e48f9cb5d5f339d94166b7e11232c8d1ff952113a669 *arm-wince.pe/upx-3.91.exe
|
057b08389af5a31a0bf4baf03d09eb07f4698f8ddec615ae35795cec62132966 *arm-wince.pe/upx-3.91.exe
|
||||||
07ca9736f1cd478bde2c8da95a6ecb95bd865dcf8ea48a396b13050ac40d196e *armeb-linux.elf/upx-3.91
|
49b6b8d4f04d9078686372a315e7768fc882ad66bebb67225fa0b2255b5dd1c9 *armeb-linux.elf/upx-3.91
|
||||||
9e852e95b38ca57319d1e911bf97226a82b60dd336e201496c30bf62943aecce *i386-dos32.djgpp2.coff/upx-3.91.exe
|
aef085cb86ef29d7aa380a3daea403f53659af1615ceeaa76e609dc793f50cfd *i386-dos32.djgpp2.coff/upx-3.91.exe
|
||||||
e408fbcbbe422c06fce0cfed5d28ea0f0ef7c1b9225bf1f5a7d789cc84fb93b8 *i386-linux.elf/upx-3.91
|
52087d4a2c17445b0e8d5238ec3abd2ca5cd909513cff76bf42232f33d93903f *i386-linux.elf/upx-3.91
|
||||||
30dbd980e85c88df62f4c13d6d0e44708f4ebfac63a4c12fa6a91b75563aead6 *i386-win32.pe/upx-3.91.exe
|
e669d7c4fec901130dd387dc8f95e3b3f5e739d6ef0bfac10080dbd257084ae6 *i386-win32.pe/upx-3.91.exe
|
||||||
dd561ff9c530711be0934db352cf40f606066c280e27b26e7f8fd6dd1a087e6a *m68k-atari.tos/upx-3.91.ttp
|
40cd5a94039a1703986a68dd404290aa7c27fd8c184fa4c651467b8c2d621a5d *m68k-atari.tos/upx-3.91.ttp
|
||||||
813536a8f1b8b8852ed52c560afce8b51612876ac5a3a9e51434d8677932ef7b *mipsel-linux.elf/upx-3.91
|
b1db1d04e350972aa06216ec43d12a451abf5c928c885b0c442f9436c804e84e *mipsel-linux.elf/upx-3.91
|
||||||
c6d010b0cdee8adc381efc424a44c14a1d110c52d7b12925265fddc4ba781a6c *powerpc-linux.elf/upx-3.91
|
65602c3e1e3e152d44d9f803281d4021bfd91aab825b72d8901faf4d7d9b593e *powerpc-linux.elf/upx-3.91
|
||||||
"
|
"
|
||||||
expected_sha256sums__t170_compress_all_methods_no_lzma_5_no_filter="\
|
expected_sha256sums__t170_compress_all_methods_no_lzma_5_no_filter="\
|
||||||
689160a438a5650a40db1193b115566b55b3caa1fbbce88b5c608dda0ebc7c43 *amd64-linux.elf/upx-3.91
|
bce397f12372437802d887d203bb2f8e4755dbe1a0e3c6bb9fa9cccd3306eef7 *amd64-linux.elf/upx-3.91
|
||||||
debd7f6b30bfcb1fef0fac558d8ae721c6a9d193c9b41126b3491c66870435ab *arm-wince.pe/upx-3.91.exe
|
84b1fe14dbff7d4e2f1bcfee9b6e3c73f68eb5b95b37cbf2c655340bd959bfa3 *arm-wince.pe/upx-3.91.exe
|
||||||
7ee87918e7473d44c3a5af014cad48298f0a99c4028880d0a87a5a1776b977c7 *armeb-linux.elf/upx-3.91
|
1b6ac9c0893b3093d47e403a14a5d346ae3a0f135ecdbe3bb04fc0542abd469b *armeb-linux.elf/upx-3.91
|
||||||
dcdcad70f1b79290022041938957dccd4daa2f2fad166864cfb55f3400d5b03b *i386-dos32.djgpp2.coff/upx-3.91.exe
|
d27237cd4b55c80d2b6c7da8d70ffc4f390290fcc550eec06c795e92d934b72a *i386-dos32.djgpp2.coff/upx-3.91.exe
|
||||||
fece6171853a531cffdf264ae0ca9a47ee3b9b9a1416adc1ba2632e5da8a5d93 *i386-linux.elf/upx-3.91
|
2032623990d22b2cf8df5f2c0b581de5fd53869869b65818ea023a6857c4eff0 *i386-linux.elf/upx-3.91
|
||||||
0a32f50fe00e6f24ab5ab0bbfdfd037819f01071e849fb486a07ccc0794105f9 *i386-win32.pe/upx-3.91.exe
|
51e91ff8226517ad8cd06d240e2c6c2f3d3e4033af1e593a5b294356d1bb5d33 *i386-win32.pe/upx-3.91.exe
|
||||||
73dc44603f0fbf3a2a9e470c1291671b2670fa7f2f0cb54a8a7cdb883d1783c9 *m68k-atari.tos/upx-3.91.ttp
|
b371684bbb2693797dd1164159de3bff9618bf6b99536542f57da07093dbb649 *m68k-atari.tos/upx-3.91.ttp
|
||||||
48877f2e614d4697e0ebc6d3f69e59328e0942e48bb5e54b4d9b9fe3cb917d9f *mipsel-linux.elf/upx-3.91
|
7c1fa54b86f3e5f3410216aa627bd32680d7bd8210776a14762566cb2ea37d52 *mipsel-linux.elf/upx-3.91
|
||||||
9df3e5bb2a641d03da582f6e5dc01e2497e616d585c8e2c07c78910ca7ac6db3 *powerpc-linux.elf/upx-3.91
|
5c60d0817feeb4dde55be90e552ccddc81591fbaecb899c3a21afc91c0ceb3b9 *powerpc-linux.elf/upx-3.91
|
||||||
"
|
"
|
||||||
########## end .sha256sums.recreate
|
########## end .sha256sums.recreate
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# /***********************************************************************
|
# /***********************************************************************
|
||||||
# // init
|
# // init
|
||||||
# ************************************************************************/
|
# ************************************************************************/
|
||||||
@@ -261,8 +257,8 @@ if [[ $BM_T =~ (^|\+)valgrind($|\+) ]]; then
|
|||||||
upx_valgrind="valgrind"
|
upx_valgrind="valgrind"
|
||||||
fi
|
fi
|
||||||
if [[ -z $upx_valgrind_flags ]]; then
|
if [[ -z $upx_valgrind_flags ]]; then
|
||||||
upx_valgrind_flags="--leak-check=full --show-reachable=yes"
|
#upx_valgrind_flags="--leak-check=full --show-reachable=yes"
|
||||||
upx_valgrind_flags="-q --leak-check=no --error-exitcode=1"
|
#upx_valgrind_flags="-q --leak-check=no --error-exitcode=1"
|
||||||
upx_valgrind_flags="--leak-check=no --error-exitcode=1"
|
upx_valgrind_flags="--leak-check=no --error-exitcode=1"
|
||||||
fi
|
fi
|
||||||
upx_run="$upx_valgrind $upx_valgrind_flags $upx_exe"
|
upx_run="$upx_valgrind $upx_valgrind_flags $upx_exe"
|
||||||
@@ -282,7 +278,6 @@ rm -rf ./testsuite_1
|
|||||||
mkbuilddirs testsuite_1
|
mkbuilddirs testsuite_1
|
||||||
cd testsuite_1 || exit 1
|
cd testsuite_1 || exit 1
|
||||||
|
|
||||||
|
|
||||||
# /***********************************************************************
|
# /***********************************************************************
|
||||||
# // decompression tests
|
# // decompression tests
|
||||||
# ************************************************************************/
|
# ************************************************************************/
|
||||||
@@ -316,7 +311,6 @@ for f in t010_decompressed/*/*; do
|
|||||||
done
|
done
|
||||||
testsuite_check_sha $testdir
|
testsuite_check_sha $testdir
|
||||||
|
|
||||||
|
|
||||||
# /***********************************************************************
|
# /***********************************************************************
|
||||||
# // compression tests
|
# // compression tests
|
||||||
# // info: we use fast compression levels because we want to
|
# // info: we use fast compression levels because we want to
|
||||||
@@ -351,7 +345,6 @@ testdir=t170_compress_all_methods_no_lzma_5_no_filter
|
|||||||
mkdir $testdir; v=expected_sha256sums__$testdir; echo -n "${!v}" >$testdir/.sha256sums.expected
|
mkdir $testdir; v=expected_sha256sums__$testdir; echo -n "${!v}" >$testdir/.sha256sums.expected
|
||||||
time testsuite_run_compress --all-methods --no-lzma -5 --no-filter
|
time testsuite_run_compress --all-methods --no-lzma -5 --no-filter
|
||||||
|
|
||||||
|
|
||||||
# /***********************************************************************
|
# /***********************************************************************
|
||||||
# // summary
|
# // summary
|
||||||
# ************************************************************************/
|
# ************************************************************************/
|
||||||
@@ -360,13 +353,16 @@ time testsuite_run_compress --all-methods --no-lzma -5 --no-filter
|
|||||||
recreate_expected_sha256sums .sha256sums.recreate
|
recreate_expected_sha256sums .sha256sums.recreate
|
||||||
|
|
||||||
testsuite_header "UPX testsuite summary"
|
testsuite_header "UPX testsuite summary"
|
||||||
$upx_run --version || echo "UPX-ERROR: upx --version FAILED"
|
if ! $upx_run --version; then
|
||||||
|
echo "UPX-ERROR: upx --version FAILED"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
echo
|
echo
|
||||||
echo "upx_exe='$upx_exe'"
|
echo "upx_exe='$upx_exe'"
|
||||||
if [[ $upx_run != $upx_exe ]]; then
|
if [[ "$upx_run" != "$upx_exe" ]]; then
|
||||||
echo "upx_run='$upx_run'"
|
echo "upx_run='$upx_run'"
|
||||||
fi
|
fi
|
||||||
if [[ -f $upx_exe ]]; then
|
if [[ -f "$upx_exe" ]]; then
|
||||||
ls -l "$upx_exe"
|
ls -l "$upx_exe"
|
||||||
file "$upx_exe" || true
|
file "$upx_exe" || true
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -0,0 +1,68 @@
|
|||||||
|
uqz4mAtKkF5Ex7Zt2tRP9mhQsAYn5+Xbupfuhee/s+2yVdBBdlXXRN2Q2AhMxF01
|
||||||
|
myhEuAtRNoQ4m7eyNgNU01pKb+dlyw2xiS+izm9+5fxuuEZfiuv76tQToQLltSdq
|
||||||
|
jP3Gt08MloJGcWraFiAXXji0S45MasJO3VOdygz09PbzIvGVp/NskGCMCU9lJlRt
|
||||||
|
2CsItWR+iHs6HNurWEKtEZz4qR8+HZ6RU5IquOnnHnI357lVUiC1w2qRcxmNVWuI
|
||||||
|
qS7GPvgisv0m4XMxe+l4L3b6a7laZr/hqHjFQqu/aO9Kmy5WmYRe3Bx4hTv5vqRi
|
||||||
|
OBDOUzwUcrdlUu2wqcvZhVxPaxxqA5u8G63Z3O30VCtWPZVU4yx9TRzcy/0lwxol
|
||||||
|
dw1b5t7Bl8uIzNyLsFMVS1MpnBspUrxBko6TqLAhv/DvUQmWGJRkP4Ar9naB4myS
|
||||||
|
vX6sim+Jn57Fr8aZMlvJbqlNindjxnX6+13u51C80GaYJBjHLkAIPaTTNLviOWpj
|
||||||
|
rbACDifaFloAsgJqz0KK/T7eohJBH2jVe2d9YxU6wZq6THDKJaeQ+nG5MWYvlkWa
|
||||||
|
K3N+jN8KI1GWqNpUtD8rbLPY1UZo05wQFZBCfdvEZoYdzJFVIS3t6kr0/gOIZu0D
|
||||||
|
AAIfIcopnpWpUk52MOEekzRRjJuF8fUMkiPX1oVs9HMKW+TU+yx/sFia+ke76w3i
|
||||||
|
1oiHKJJJNaoCjQXlAcT40rGLmSTLgL0ACCWIMGjK1QJYkpER8GCBCh9/whrJ3k1Q
|
||||||
|
0hm5hYiGty2ysRJFLIFPkYjangz7hIVzgOUSTYhVjJmIA62W2LmNKcixGX+sssCJ
|
||||||
|
/DK/Zs0uPiEX4gjkiomDksn7Dy8vAtHe7PzWpZA83mgPK+6zxoM6dgpM7FSe5q1/
|
||||||
|
tyf394l4nB7eayRUnx3NfK2/PTwrJcms5yAD9Hm2h72cp26TXh+RDVYWOgVX5/N0
|
||||||
|
dIsDRYo+/077pRTKwiCPrMxTxys53HHV7r5APd+FPmxikXvuszZvYTZ9K2MZB/1L
|
||||||
|
S2MCJ/u4GTTCwcbvfEjKVs3Fbqu7c2D/tVzakVEmMXloEAGPN/NrzOJsMMEDhWiw
|
||||||
|
g1wneAg5qF5nG+7R5WqstAeaRCYdXl46xay7iePZQ7viwHA8Zjuke18eHmh7J5jz
|
||||||
|
uzdh81rxCL3beoXb+BEr1/yKWfrJVTl33+m6c+zxdrV0B7O/ijlYxjke7Wo+ESac
|
||||||
|
WM2a4xU/WgXMi2+83XqcSZcRPdusZKA6bcTvAcYc/r8t7O1wjfPsTVj0WaM2DwL0
|
||||||
|
P1QTU4INmVn94zIV0+fGfyN0qI3YiS5iuOoPwLOVB13YECIyXnZz2/VJF7ZASOpS
|
||||||
|
701or4uF7GVEZxw19ow0AQttk6J/bEzbr7rZ5Um1yCMeQQ1TMHepJfuUbxle4W4S
|
||||||
|
8w8yC/Ytcy/e4rbiLG2/cY5b35LxtH1TCuaEtuiqa7vkmzr36qqD6fRWnXWC9QdR
|
||||||
|
0nWyJNj0xIIyMyilnBY2clAjDdT9qd2tMfpoz9hyBkTZPltzDw6Xd/IhhyL1URav
|
||||||
|
h0NCABGqXbpg8q7KCrIzIE6dJIh+7glfQuWkynmInntN4+fqk9Ked0haHkq5oGH5
|
||||||
|
vN5ZQNWPyQ67LaXQ4kW8iksgkgl7JEQsuie8oMuQZe13D4S3PWGFKchrBFGwN2xY
|
||||||
|
ut2+PCs5Al2BHU0qaCKdV7nCqv2tPC8G4uXNw081R2KwyoRlbKhowgFBYBTQIobJ
|
||||||
|
pc1GLU7HKm9tC61xIZ4u9oij/Bz1+gxx9vLxfx++EC/8UI23oMGygaYdda4gdEtm
|
||||||
|
v1wt8ldpzO4owI+9peFSolGLwKztwSPxln+5bvOsdsaZ6z5uW37N5ch/EwSwdmfo
|
||||||
|
Sm1i7fv/zQuZjmZkJXRJGvTd+sKdu7+IZUrTpu5W+jUfMAgmPc+AuYmSOn00K9dv
|
||||||
|
IJKY973ggNDaJKEw1uKzckl9uk/HRrgk+wgZPaWVRhOulj1npyFf+WmrZ2r3nTq0
|
||||||
|
koEI8UEselRuKJmojl4O0bz8fXZNgPtpLB/A0cdrj0Ist5TR+qRW9h3eSsybDYRS
|
||||||
|
GWP4UzFLAIwHflwNX0Q+9/u0uOxaXX6dKXzoddWksInBzh1pmQfrtUM3y7bHQYG5
|
||||||
|
zqnAMNMwm4WmtmF/mpjg0fKpiwFUU1geygkOwUsaK5Qcp5F0FPocdPRWVxUG0t3Y
|
||||||
|
QsmSpU5STb99YCs4TvhfUnQmdB2r+d0pZhlMte3v5lcpekSb2FxbUwdX3t9S2uGy
|
||||||
|
ho9CYmUj1+8ivUizjTLirOu/B8ohQT6kwvNqRSiQwU+YPa5DpxA1DYamIg6ehuX5
|
||||||
|
6u/dF4Eht+Cn6hasyzFviIUnV1y4ixLfSb0EGw+YoLbHgr8X4Uv4guaNQduKJyEu
|
||||||
|
g6p1v40fDhZ8AuQly+BOLL0yBlQoDrkY9+3HcIZAC5NmJFU5hle4Hz4gLzS6DwXo
|
||||||
|
2u8tqIELdtP9Zo4SKM7/yNy+rjl2RNRUEUNjidZsWuIC4bEeL3sUImP0Wt+zpdV0
|
||||||
|
y0RK1/wPW4dES5xFTCUp9xdP08dsSMtIrYJeBXbHrTZswnuOvk4MYGpmn/qy+qwc
|
||||||
|
GnkJtzJVm+uNspYuD0cW+JbJz5T+w1eNbejjZ+QVhqmE7ctSHndQUSueIyOcm79E
|
||||||
|
23jLzIoHMSHsiBJ8KeHN5bTfe66Gl8y3LIOpfchYd5XzkqxS7M01PxkWGZDWGYdl
|
||||||
|
6Gx64mg7ojPrSNaOzAu3da8oLvGi/YIf3wdJenZqiTzBnSzRsBnTpohQddHbB1Hj
|
||||||
|
uogDJSoad0ZSY0lLcvxncPB29hKpljFZ4IHO2UKOyO9+LFKsfK8/RbdSx/sHcUaH
|
||||||
|
hblVkVTSRReHmShxSw6abYZHivGNV0tXNXkY6uEzOMe+Vck9j9dTBSK0bFS/2Xdd
|
||||||
|
ZII/KFQH10+WEYyw+FurMUeVwU/FER4qpy+13r1PjxMSHfnJviEb8EjgvrcwAUDX
|
||||||
|
G9JNVtL4Vui6NMFV1u2qkbEMZK763YAIKYZC9UZYjbbhhgYTTMEfRcNvwVCix8nH
|
||||||
|
2TlWGhivuw5abE9QFduT1fHXJL+1uCn2GMhS8v3fxUrnGDQFit0YLlGEMm5/wVaM
|
||||||
|
PIZH5JDHlINUC0vbUrMXCz8Ztg3qhpOLiExlBHTD4vqYt9kniHLXOQfexegSC85C
|
||||||
|
AKiugEOdoHHYJGjNyXj6c0jTuMAe0CBwAKddUqPQztoKclNb02G2a9l5ColE29Uz
|
||||||
|
jXAb8PFANNqn4Nnm6oPPF1KxB45vLdT6+F1SRzXZunJ6p9N4E9KBtEOR+ixlcphL
|
||||||
|
InLJSg5iKTfWhXlSK6eldvVsP2GeoyjliERsKLgq1YGMiCW076dmoxR2Z5iPlD2V
|
||||||
|
G7Hz5nWjPBIoFhABEnONDxbrYB6ryeunILYcHpAaXSYq4OueRo6QGO8NRqFcNutG
|
||||||
|
WpwBfIlnu6rl9MDO053SJ1ah6D97n/D5aQa2JMMha0faZz84+MH3cnudAgpPjsG9
|
||||||
|
9G/2fEP08lQNAFiyY91wW3Mtj2No9+OJVYmwFORJm7IOu5nfuQZbzz9OFPcZLU5Y
|
||||||
|
DVo86icZgXayytW2XZtCKzVBDse+yi0xblGSNtwHlQIN8gKDVpa0I34DxUkIn1Cl
|
||||||
|
bk9S6+m6APF9ynN/kVCwMu9Nq3lwzmY6JCb/KX0d66uyVwYG3BN1UEWqJhDJjGep
|
||||||
|
a2JmHnG1aVhYaE/2EsOc+YP89Oub+KeuCj2dHJj2dH3QDCjr2xZUbLO7mw1tsATH
|
||||||
|
dPjNEBvxet9UU/RXqhhkfkv1XGr/umWrkjKbFqDNl5Tav/00+I59rboW7C/cWRxN
|
||||||
|
CVbadLPJlPNRR8+54G+VkDZgqaQprPwYih5a7d2MEzrMtZbU0uCJc839dqMgsf++
|
||||||
|
k4maampkcDLhxt8bBg43WoDgWxiQ+KVWyEBGmTOT2q4WYeLI9PZLseA9eNJbpt9J
|
||||||
|
oxtNNdqkU48YZWsq/3L1L0eXdGvv5TIMto4bH3SWuvQ2sepwMRxxwTg8qFrutk9K
|
||||||
|
OLOUbO1Z2ivh1g6+DAgs3RFmy9hPzzqPmJk8cL6F5tcd/VwGcow3UBJ1+Xn3SE5Y
|
||||||
|
UCHNrSfSrvDaA3N8jyvS/uPq0qRgp7LQRqrhh5cVPi67goDx/ku/fVbMbcrarO/e
|
||||||
|
Czv6CX7Id2QliOSMGGVId+ECXBvuIGAb2d4til+zTnfhBE2+uS5WQ7MjzH9PKZ7n
|
||||||
|
TDuV36mA1FDCX+WShPau7R0SGXSqKyeHJ8XSuFHbGwr1Zxwoq4GBYIcAxWjp9HA4
|
||||||
|
dhBE2x5WSTbnqh1sClxfOeE8MHxi+EUonCcvfvm30NOcC4zw1dCDc6SKLoMJYrFz
|
||||||
|
EdR3Kt1SJ9M0Jl3dD/gCTKG5kObJzqmo9BladIpQt6c=
|
||||||
+221
-28
@@ -4,46 +4,164 @@
|
|||||||
before_script:
|
before_script:
|
||||||
- export TRAVIS_OS_NAME=linux
|
- export TRAVIS_OS_NAME=linux
|
||||||
- unset CROSS C B T X
|
- unset CROSS C B T X
|
||||||
- uname -a; pwd; id; umask; env
|
- uname -a; pwd; id; umask
|
||||||
- cat /etc/os-release || true
|
- cat /etc/os-release || true
|
||||||
|
- |
|
||||||
|
if [[ $CI_BUILD_NAME =~ ^(CentOS|Fedora|OpenSUSE) ]]; then
|
||||||
|
time rpm -qa | LC_ALL=C sort
|
||||||
|
fi
|
||||||
|
- |
|
||||||
|
if [[ $CI_BUILD_NAME =~ ^(Debian|Ubuntu) ]]; then
|
||||||
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
|
time dpkg -l
|
||||||
|
if [[ $CI_BUILD_NAME =~ ^Ubuntu1604- ]]; then
|
||||||
|
dpkg --add-architecture i386
|
||||||
|
fi;
|
||||||
|
time apt-get -yq update
|
||||||
|
fi
|
||||||
-
|
-
|
||||||
if egrep -q '^PRETTY_NAME="?Fedora' /etc/os-release; then
|
if [[ $CI_BUILD_NAME =~ ^CentOS5- ]]; then
|
||||||
time rpm -qa | LC_ALL=C sort;
|
time rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm;
|
||||||
|
time yum install -y
|
||||||
|
coreutils curl diffutils grep gzip sed
|
||||||
|
bzip2 file findutils git openssh-clients openssl perl tar wget which xz
|
||||||
|
gcc gcc-c++ make valgrind
|
||||||
|
glibc-devel libstdc++-devel zlib-devel
|
||||||
|
glibc-devel.i386 libstdc++-devel.i386 zlib-devel.i386;
|
||||||
|
fi
|
||||||
|
-
|
||||||
|
if [[ $CI_BUILD_NAME =~ ^CentOS6- ]]; then
|
||||||
|
time yum install -y
|
||||||
|
coreutils curl diffutils grep gzip sed
|
||||||
|
bzip2 file findutils git openssh-clients openssl perl tar wget which xz
|
||||||
|
gcc gcc-c++ make valgrind
|
||||||
|
glibc-devel libstdc++-devel zlib-devel
|
||||||
|
glibc-devel.i686 libstdc++-devel.i686 zlib-devel.i686;
|
||||||
|
fi
|
||||||
|
-
|
||||||
|
if [[ $CI_BUILD_NAME =~ ^CentOS7- ]]; then
|
||||||
|
time yum install -y
|
||||||
|
coreutils curl diffutils grep gzip sed
|
||||||
|
bzip2 file findutils git openssh-clients openssl perl tar wget which xz
|
||||||
|
clang gcc gcc-c++ make valgrind
|
||||||
|
glibc-devel libasan libstdc++-devel zlib-devel
|
||||||
|
glibc-devel.i686 libasan.i686 libstdc++-devel.i686 zlib-devel.i686;
|
||||||
|
fi
|
||||||
|
-
|
||||||
|
if [[ $CI_BUILD_NAME =~ ^Fedora ]]; then
|
||||||
time dnf install -y --best --allowerasing
|
time dnf install -y --best --allowerasing
|
||||||
coreutils curl diffutils grep gzip sed
|
coreutils curl diffutils grep gzip sed
|
||||||
bzip2 file findutils git perl tar wget which xz
|
bzip2 file findutils git openssh-clients openssl perl tar wget which xz
|
||||||
clang gcc gcc-c++ lcov make valgrind
|
clang gcc gcc-c++ lcov make valgrind
|
||||||
glibc-devel libasan libstdc++-devel libubsan zlib-devel
|
glibc-devel libasan libstdc++-devel libubsan zlib-devel
|
||||||
glibc-devel.i686 libasan.i686 libstdc++-devel.i686 libubsan.i686 zlib-devel.i686;
|
glibc-devel.i686 libasan.i686 libstdc++-devel.i686 libubsan.i686 zlib-devel.i686;
|
||||||
fi
|
fi
|
||||||
-
|
-
|
||||||
if egrep -q '^PRETTY_NAME="?Ubuntu' /etc/os-release; then
|
if [[ $CI_BUILD_NAME =~ ^OpenSUSE42.2- ]]; then
|
||||||
export DEBIAN_FRONTEND=noninteractive;
|
time zypper update -y;
|
||||||
time dpkg -l;
|
time zypper install -y
|
||||||
time apt-get -yq update;
|
coreutils curl diffutils grep gzip sed
|
||||||
time apt-get -yq --no-install-suggests --no-install-recommends --force-yes upgrade;
|
bzip2 file findutils git openssh openssl perl tar wget which xz
|
||||||
time apt-get -yq --no-install-suggests --no-install-recommends --force-yes install
|
llvm-clang gcc gcc-32bit gcc-c++ gcc-c++-32bit lcov make valgrind
|
||||||
build-essential ca-certificates curl file git wget xz-utils zlib1g-dev;
|
glibc-devel libstdc++-devel libz1 zlib-devel
|
||||||
|
glibc-devel-32bit libstdc++-devel-32bit libz1-32bit zlib-devel-32bit;
|
||||||
fi
|
fi
|
||||||
-
|
-
|
||||||
if egrep -q '^PRETTY_NAME="?Ubuntu 16\.04' /etc/os-release; then
|
if [[ $CI_BUILD_NAME =~ ^(Debian|Ubuntu) ]]; then
|
||||||
dpkg --add-architecture i386;
|
time apt-get -yq --no-install-suggests --no-install-recommends --force-yes upgrade;
|
||||||
time apt-get -yq update;
|
time apt-get -yq --no-install-suggests --no-install-recommends --force-yes install
|
||||||
|
build-essential ca-certificates curl file git openssh-client openssl wget xz-utils zlib1g-dev;
|
||||||
|
fi
|
||||||
|
-
|
||||||
|
if [[ $CI_BUILD_NAME =~ ^Ubuntu1604- ]]; then
|
||||||
|
time apt-get -yq --no-install-suggests --no-install-recommends --force-yes install
|
||||||
|
g++-multilib
|
||||||
|
libstdc++-5-dev:i386 zlib1g-dev:i386
|
||||||
|
libx32stdc++-5-dev libx32z1-dev;
|
||||||
|
fi
|
||||||
|
-
|
||||||
|
if [[ $CI_BUILD_NAME =~ ^Ubuntu1604-cross ]]; then
|
||||||
time apt-get -yq --no-install-suggests --no-install-recommends --force-yes install
|
time apt-get -yq --no-install-suggests --no-install-recommends --force-yes install
|
||||||
crossbuild-essential-arm64 crossbuild-essential-armel crossbuild-essential-armhf
|
crossbuild-essential-arm64 crossbuild-essential-armel crossbuild-essential-armhf
|
||||||
crossbuild-essential-powerpc crossbuild-essential-ppc64el crossbuild-essential-s390x
|
crossbuild-essential-powerpc crossbuild-essential-ppc64el crossbuild-essential-s390x
|
||||||
qemu wine;
|
binutils-mingw-w64-i686 g++-mingw-w64-i686
|
||||||
|
binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64
|
||||||
|
binutils-mips-linux-gnu g++-mips-linux-gnu
|
||||||
|
binutils-mipsel-linux-gnu g++-mipsel-linux-gnu
|
||||||
|
binutils-powerpc-linux-gnu g++-powerpc-linux-gnu
|
||||||
|
binutils-powerpc64-linux-gnu g++-powerpc64-linux-gnu
|
||||||
|
qemu-user qemu-utils wine;
|
||||||
fi
|
fi
|
||||||
|
- git --version && bash --version
|
||||||
- umask 022; mkdir -p ../deps ../build/gitlab
|
- umask 022; mkdir -p ../deps ../build/gitlab
|
||||||
- time git submodule update --init --recursive
|
- time git submodule update --init --recursive
|
||||||
- cd ../deps && time wget -q -O - https://github.com/upx/upx/releases/download/v3.00/ucl-1.03.tar.xz | tar -xJ
|
- cd ../deps && time wget -q -O - https://github.com/upx/upx/releases/download/v3.00/ucl-1.03.tar.xz | tar -x --use-compress-program=xz
|
||||||
- cd ../deps && time wget -q -O - https://github.com/upx/upx/releases/download/v3.00/zlib-1.2.8.tar.xz | tar -xJ
|
- cd ../deps && time wget -q -O - https://github.com/upx/upx/releases/download/v3.00/zlib-1.2.8.tar.xz | tar -x --use-compress-program=xz
|
||||||
- cd ../deps && time git clone https://github.com/upx/upx-testsuite
|
- cd ../deps && time git clone https://github.com/upx/upx-testsuite
|
||||||
|
- |
|
||||||
|
if [[ $CI_BUILD_NAME =~ ^Fedora ]]; then
|
||||||
|
time dnf install -y --best --allowerasing python
|
||||||
|
cd ../deps && time wget -q -O - https://github.com/upx/upx-stubtools/releases/download/v20160918/bin-upx-20160918.tar.xz | tar -x --use-compress-program=xz
|
||||||
|
fi
|
||||||
- cd $CI_PROJECT_DIR; pwd
|
- cd $CI_PROJECT_DIR; pwd
|
||||||
|
|
||||||
Fedora23-clang+gcc-m32+m64:
|
CentOS5-gcc-m32+m64: # gcc-4.1
|
||||||
|
image: centos:5
|
||||||
|
script:
|
||||||
|
# patch src/Makefile for gcc-4.1
|
||||||
|
- perl -i -p -e 's/ -Wmissing-declarations / /; s/ -Wvla / /;' src/Makefile
|
||||||
|
- time C=gcc-m32 bash ./.github/travis_build.sh
|
||||||
|
- time C=gcc-m64 bash ./.github/travis_build.sh
|
||||||
|
- time C=gcc-m32 bash ./.github/travis_testsuite_1.sh
|
||||||
|
- time C=gcc-m64 bash ./.github/travis_testsuite_1.sh
|
||||||
|
tags: [ shared ]
|
||||||
|
except: [ tags ]
|
||||||
|
|
||||||
|
CentOS6-gcc-m32+m64: # gcc-4.4
|
||||||
|
image: centos:6
|
||||||
|
script:
|
||||||
|
- time C=gcc-m32 bash ./.github/travis_build.sh
|
||||||
|
- time C=gcc-m64 bash ./.github/travis_build.sh
|
||||||
|
- time C=gcc-m32 bash ./.github/travis_testsuite_1.sh
|
||||||
|
- time C=gcc-m64 bash ./.github/travis_testsuite_1.sh
|
||||||
|
tags: [ shared ]
|
||||||
|
except: [ tags ]
|
||||||
|
|
||||||
|
CentOS7-clang+gcc-m32+m64: # clang-3.4, gcc-4.8
|
||||||
|
image: centos:7
|
||||||
|
script:
|
||||||
|
- time C=clang-m32 bash ./.github/travis_build.sh
|
||||||
|
- time C=gcc-m32 bash ./.github/travis_build.sh
|
||||||
|
- time C=clang-m64 bash ./.github/travis_build.sh
|
||||||
|
- time C=gcc-m64 bash ./.github/travis_build.sh
|
||||||
|
- time C=clang-m32 bash ./.github/travis_testsuite_1.sh
|
||||||
|
- time C=gcc-m32 bash ./.github/travis_testsuite_1.sh
|
||||||
|
- time C=clang-m64 bash ./.github/travis_testsuite_1.sh
|
||||||
|
- time C=gcc-m64 bash ./.github/travis_testsuite_1.sh
|
||||||
|
tags: [ shared ]
|
||||||
|
except: [ tags ]
|
||||||
|
|
||||||
|
Debian7-gcc-m64: # gcc-4.7
|
||||||
|
image: debian:7
|
||||||
|
script:
|
||||||
|
- time C=gcc-4.7-m64 bash ./.github/travis_build.sh
|
||||||
|
- time C=gcc-4.7-m64 bash ./.github/travis_testsuite_1.sh
|
||||||
|
tags: [ shared ]
|
||||||
|
except: [ tags ]
|
||||||
|
|
||||||
|
Debian8-gcc-m64: # gcc-4.9
|
||||||
|
image: debian:8
|
||||||
|
script:
|
||||||
|
- time C=gcc-4.9-m64 bash ./.github/travis_build.sh
|
||||||
|
- time C=gcc-4.9-m64 bash ./.github/travis_testsuite_1.sh
|
||||||
|
- time C=gcc-4.9-m64 bash ./.github/travis_deploy.sh
|
||||||
|
tags: [ shared ]
|
||||||
|
except: [ tags ]
|
||||||
|
|
||||||
|
Fedora23-clang+gcc-m32+m64: # clang-3.7, gcc-5
|
||||||
image: fedora:23
|
image: fedora:23
|
||||||
script:
|
script:
|
||||||
|
- time X=rebuild-stubs bash ./.github/travis_build.sh
|
||||||
- time C=clang-m32 bash ./.github/travis_build.sh
|
- time C=clang-m32 bash ./.github/travis_build.sh
|
||||||
- time C=gcc-m32 bash ./.github/travis_build.sh
|
- time C=gcc-m32 bash ./.github/travis_build.sh
|
||||||
- time C=clang-m64 bash ./.github/travis_build.sh
|
- time C=clang-m64 bash ./.github/travis_build.sh
|
||||||
@@ -58,9 +176,10 @@ Fedora23-clang+gcc-m32+m64:
|
|||||||
tags: [ shared ]
|
tags: [ shared ]
|
||||||
except: [ tags ]
|
except: [ tags ]
|
||||||
|
|
||||||
Fedora24-clang+gcc-m32+m64:
|
Fedora24-clang+gcc-m32+m64: # clang-3.8, gcc-6
|
||||||
image: fedora:24
|
image: fedora:24
|
||||||
script:
|
script:
|
||||||
|
- time X=rebuild-stubs bash ./.github/travis_build.sh
|
||||||
- time C=clang-m32 bash ./.github/travis_build.sh
|
- time C=clang-m32 bash ./.github/travis_build.sh
|
||||||
- time C=gcc-m32 bash ./.github/travis_build.sh
|
- time C=gcc-m32 bash ./.github/travis_build.sh
|
||||||
- time C=clang-m64 bash ./.github/travis_build.sh
|
- time C=clang-m64 bash ./.github/travis_build.sh
|
||||||
@@ -75,27 +194,101 @@ Fedora24-clang+gcc-m32+m64:
|
|||||||
tags: [ shared ]
|
tags: [ shared ]
|
||||||
except: [ tags ]
|
except: [ tags ]
|
||||||
|
|
||||||
Ubuntu1204-gcc-m64:
|
Fedora25-clang+gcc-m32+m64: # clang-3.8, gcc-6
|
||||||
|
image: fedora:25
|
||||||
|
script:
|
||||||
|
- time X=rebuild-stubs bash ./.github/travis_build.sh
|
||||||
|
- time C=clang-m32 bash ./.github/travis_build.sh
|
||||||
|
- time C=gcc-m32 bash ./.github/travis_build.sh
|
||||||
|
- time C=clang-m64 bash ./.github/travis_build.sh
|
||||||
|
- time C=gcc-m64 bash ./.github/travis_build.sh
|
||||||
|
- time C=gcc-m64 B=sanitize bash ./.github/travis_build.sh
|
||||||
|
- time C=clang-m32 bash ./.github/travis_testsuite_1.sh
|
||||||
|
- time C=gcc-m32 bash ./.github/travis_testsuite_1.sh
|
||||||
|
- time C=clang-m64 bash ./.github/travis_testsuite_1.sh
|
||||||
|
- time C=gcc-m64 bash ./.github/travis_testsuite_1.sh
|
||||||
|
- time C=gcc-m64 B=sanitize bash ./.github/travis_testsuite_1.sh
|
||||||
|
- time C=gcc-m64 T=valgrind bash ./.github/travis_testsuite_1.sh
|
||||||
|
tags: [ shared ]
|
||||||
|
except: [ tags ]
|
||||||
|
|
||||||
|
OpenSUSE42.2-clang+gcc-m32+m64: # clang-3.8, gcc-4.8
|
||||||
|
image: opensuse:42.2
|
||||||
|
script:
|
||||||
|
- time C=clang-m64 bash ./.github/travis_build.sh
|
||||||
|
- time C=gcc-4.8-m32 bash ./.github/travis_build.sh
|
||||||
|
- time C=gcc-4.8-m64 bash ./.github/travis_build.sh
|
||||||
|
- time C=clang-m64 bash ./.github/travis_testsuite_1.sh
|
||||||
|
- time C=gcc-4.8-m32 bash ./.github/travis_testsuite_1.sh
|
||||||
|
- time C=gcc-4.8-m64 bash ./.github/travis_testsuite_1.sh
|
||||||
|
tags: [ shared ]
|
||||||
|
except: [ tags ]
|
||||||
|
|
||||||
|
Ubuntu1204-gcc-m64: # gcc-4.6
|
||||||
image: ubuntu:12.04
|
image: ubuntu:12.04
|
||||||
script:
|
script:
|
||||||
- time C=gcc-m64 bash ./.github/travis_build.sh
|
- time C=gcc-4.6-m64 bash ./.github/travis_build.sh
|
||||||
- time C=gcc-m64 bash ./.github/travis_testsuite_1.sh
|
- time C=gcc-4.6-m64 bash ./.github/travis_testsuite_1.sh
|
||||||
tags: [ shared ]
|
tags: [ shared ]
|
||||||
except: [ tags ]
|
except: [ tags ]
|
||||||
|
|
||||||
Ubuntu1404-gcc-m64:
|
Ubuntu1404-gcc-m64: # gcc-4.8
|
||||||
image: ubuntu:14.04
|
image: ubuntu:14.04
|
||||||
script:
|
script:
|
||||||
- time C=gcc-m64 bash ./.github/travis_build.sh
|
- time C=gcc-4.8-m64 bash ./.github/travis_build.sh
|
||||||
- time C=gcc-m64 bash ./.github/travis_testsuite_1.sh
|
- time C=gcc-4.8-m64 bash ./.github/travis_testsuite_1.sh
|
||||||
|
- time C=gcc-4.8-m64 bash ./.github/travis_deploy.sh
|
||||||
tags: [ shared ]
|
tags: [ shared ]
|
||||||
except: [ tags ]
|
except: [ tags ]
|
||||||
|
|
||||||
Ubuntu1604-gcc-m64:
|
Ubuntu1604-gcc-m32+m64: # gcc-5
|
||||||
image: ubuntu:16.04
|
image: ubuntu:16.04
|
||||||
script:
|
script:
|
||||||
- time C=gcc-m64 bash ./.github/travis_build.sh
|
- time C=gcc-5-m32 bash ./.github/travis_build.sh
|
||||||
- time C=gcc-m64 bash ./.github/travis_testsuite_1.sh
|
- time C=gcc-5-m64 bash ./.github/travis_build.sh
|
||||||
|
- time C=gcc-5-m32 bash ./.github/travis_testsuite_1.sh
|
||||||
|
- time C=gcc-5-m64 bash ./.github/travis_testsuite_1.sh
|
||||||
|
- time C=gcc-5-m32 bash ./.github/travis_deploy.sh
|
||||||
|
- time C=gcc-5-m64 bash ./.github/travis_deploy.sh
|
||||||
|
tags: [ shared ]
|
||||||
|
except: [ tags ]
|
||||||
|
|
||||||
|
Ubuntu1604-cross: # gcc-5
|
||||||
|
image: ubuntu:16.04
|
||||||
|
script:
|
||||||
|
- time CROSS=aarch64-linux-gnu C=gcc-5 T=qemu bash ./.github/travis_build.sh
|
||||||
|
- time CROSS=arm-linux-gnueabi C=gcc-5 T=qemu bash ./.github/travis_build.sh
|
||||||
|
- time CROSS=arm-linux-gnueabihf C=gcc-5 T=qemu bash ./.github/travis_build.sh
|
||||||
|
- time CROSS=i686-w64-mingw32 C=gcc-5 T=wine bash ./.github/travis_build.sh
|
||||||
|
- time CROSS=mips-linux-gnu C=gcc-5 T=qemu bash ./.github/travis_build.sh
|
||||||
|
- time CROSS=mipsel-linux-gnu C=gcc-5 T=qemu bash ./.github/travis_build.sh
|
||||||
|
- time CROSS=powerpc-linux-gnu C=gcc-5 T=qemu bash ./.github/travis_build.sh
|
||||||
|
- time CROSS=powerpc64-linux-gnu C=gcc-5 T=qemu bash ./.github/travis_build.sh
|
||||||
|
- time CROSS=powerpc64le-linux-gnu C=gcc-5 T=qemu bash ./.github/travis_build.sh
|
||||||
|
- time CROSS=s390x-linux-gnu C=gcc-5 T=qemu bash ./.github/travis_build.sh
|
||||||
|
- time CROSS=x86_64-w64-mingw32 C=gcc-5 T=wine bash ./.github/travis_build.sh
|
||||||
|
- time CROSS=aarch64-linux-gnu C=gcc-5 T=qemu bash ./.github/travis_testsuite_1.sh
|
||||||
|
- time CROSS=arm-linux-gnueabi C=gcc-5 T=qemu bash ./.github/travis_testsuite_1.sh
|
||||||
|
- time CROSS=arm-linux-gnueabihf C=gcc-5 T=qemu bash ./.github/travis_testsuite_1.sh
|
||||||
|
# - time CROSS=i686-w64-mingw32 C=gcc-5 T=wine bash ./.github/travis_testsuite_1.sh
|
||||||
|
# - time CROSS=mips-linux-gnu C=gcc-5 T=qemu bash ./.github/travis_testsuite_1.sh
|
||||||
|
- time CROSS=mipsel-linux-gnu C=gcc-5 T=qemu bash ./.github/travis_testsuite_1.sh
|
||||||
|
# - time CROSS=powerpc-linux-gnu C=gcc-5 T=qemu bash ./.github/travis_testsuite_1.sh
|
||||||
|
# - time CROSS=powerpc64-linux-gnu C=gcc-5 T=qemu bash ./.github/travis_testsuite_1.sh
|
||||||
|
# - time CROSS=powerpc64le-linux-gnu C=gcc-5 T=qemu bash ./.github/travis_testsuite_1.sh
|
||||||
|
# - time CROSS=s390x-linux-gnu C=gcc-5 T=qemu bash ./.github/travis_testsuite_1.sh
|
||||||
|
# - time CROSS=x86_64-w64-mingw32 C=gcc-5 T=wine bash ./.github/travis_testsuite_1.sh
|
||||||
|
- time CROSS=aarch64-linux-gnu C=gcc-5 T=qemu bash ./.github/travis_deploy.sh
|
||||||
|
- time CROSS=arm-linux-gnueabi C=gcc-5 T=qemu bash ./.github/travis_deploy.sh
|
||||||
|
- time CROSS=arm-linux-gnueabihf C=gcc-5 T=qemu bash ./.github/travis_deploy.sh
|
||||||
|
- time CROSS=i686-w64-mingw32 C=gcc-5 T=wine bash ./.github/travis_deploy.sh
|
||||||
|
- time CROSS=mips-linux-gnu C=gcc-5 T=qemu bash ./.github/travis_deploy.sh
|
||||||
|
- time CROSS=mipsel-linux-gnu C=gcc-5 T=qemu bash ./.github/travis_deploy.sh
|
||||||
|
- time CROSS=powerpc-linux-gnu C=gcc-5 T=qemu bash ./.github/travis_deploy.sh
|
||||||
|
- time CROSS=powerpc64-linux-gnu C=gcc-5 T=qemu bash ./.github/travis_deploy.sh
|
||||||
|
- time CROSS=powerpc64le-linux-gnu C=gcc-5 T=qemu bash ./.github/travis_deploy.sh
|
||||||
|
- time CROSS=s390x-linux-gnu C=gcc-5 T=qemu bash ./.github/travis_deploy.sh
|
||||||
|
- time CROSS=x86_64-w64-mingw32 C=gcc-5 T=wine bash ./.github/travis_deploy.sh
|
||||||
tags: [ shared ]
|
tags: [ shared ]
|
||||||
except: [ tags ]
|
except: [ tags ]
|
||||||
|
|
||||||
|
|||||||
+55
-8
@@ -19,6 +19,8 @@ notifications:
|
|||||||
env:
|
env:
|
||||||
global:
|
global:
|
||||||
- CROSS= C= B= T= X=
|
- CROSS= C= B= T= X=
|
||||||
|
- secure: "YXHLXK+CM5d8yELIUSSs+P0/CoefClO7/AUX1oBj5W75g+YzR5uS2doVsB8UH8S8/GdNxk4P9Jgn4EiEVnjfGgn2eAD9MVpDPIxyJs5vI+5G77asq3QNdSl6QFv3O9I/6yBoVCewgPFPqsMd7Yvs/Ea3LcQkqalVhrC8ybYtmfs6VL2w33gn2J3b3TCn/s21L0ijklM0xvP1GNMDtuUpTSish5wvGOHE/91rwtdUDbJR8u31QY7fTASDiNnL/7ihgEIZ5XxpDYXviX1GC+nemhX1fWpmVmuT8m30Ruodi0yJVGASw9i2SaKv/VX/fJ/w2vlCfspL5LMZKkVLlfpIo3mQGqmMHFxv7mNy+hRu50ptoWNSkWArcqifwveh2liHUpl4jTvWaVll5Tw5VUGJhAUdzCTnqLIbWFnKIgCedL3iRFi4+EbyWNxel8lFESMOTDZFfJG5yEiDJbgbLsUaT2GmrsOphwAG7zDcZzvYTdjg/lF4Wh0MUnQJ+0MhDpii8Ahjp49lAPdw8uRQyyY7d7ksYKXVIkbgl6dRCC5vZSPucJiFjq2BClqIoEmzZPvHveDbovzFkNhJX9tFLrHLcXbPPcegww1FGoQ3wBM6JwJ+TvSD6N4OdCmou05aDuuQeznHi3GxOScjGwxdMIU28fdJDCTDg2rOihm22kHVajo="
|
||||||
|
- secure: "JpSv3+QRmHcfN/bmT3mVkqET44NCPhM/qpcUssCVXnd2GW0qWURoyPHzVMn/gbeAkUjR6djtN3OzJ+M181QmlmTmE26pZC9Q6r1buNDWdkIH1FcpMCa67BBAjmq+yDwulDtvCMv0lbz60v57lzHBOLczF3yMxBVTjXxt1RsrzDLHzzVaDR5lEe+sQUNeRL7Vaq8crimPNTr4ZhMe59eweTO/3AWovuSPf250k1flfv7I8audZgrVZdbVKvj5C3Sziy1AGXcu8mDfET9/Ya2XBCQHWODjiKlnhSxqthhP3gQuacaLjpS2FjvQlamd+I9x6BBoLSeNbiXD9vgCydDUKvmUrU+zQs64U1hHk9WZWVC19kG7lTtTdanGDIUlIUtFZgqE4AQpJaIUWkUmHGyHi61JMvduzX21eL5c5j9DoJteX42FPb1n3xK/JSnUkLMpbFdQuy5inhzefhDfeNzaYxt8nPwHnJqrF73SW4PLDKeRyzvg/P+zqcou8nXrHfA1z9/FlnYzf7Qc9meai9Q/JARX3Q1ZKu5uyG+RuBLe2POq0192w6pflTr1ZlLJsKNSc1147PviKfmpla1lg3/6uVzMp5tgwbve/hx9SDXiRueGttKw/ymsY662+8G24NRKo4fxNklWFHaB4owM84edDzXDckPXbPgue8/HQT8BFio="
|
||||||
matrix:
|
matrix:
|
||||||
- TRAVIS_EMPTY_JOB_WORKAROUND=true
|
- TRAVIS_EMPTY_JOB_WORKAROUND=true
|
||||||
|
|
||||||
@@ -41,6 +43,14 @@ matrix:
|
|||||||
compiler: gcc
|
compiler: gcc
|
||||||
env: C=gcc-4.4-m64
|
env: C=gcc-4.4-m64
|
||||||
addons: { apt: { sources: *S, packages: [ "g++-4.4" ] } }
|
addons: { apt: { sources: *S, packages: [ "g++-4.4" ] } }
|
||||||
|
- os: linux
|
||||||
|
compiler: gcc
|
||||||
|
env: C=gcc-4.5-m32
|
||||||
|
addons: { apt: { sources: *S, packages: [ "g++-4.5-multilib", "zlib1g-dev:i386" ] } }
|
||||||
|
- os: linux
|
||||||
|
compiler: gcc
|
||||||
|
env: C=gcc-4.5-m64
|
||||||
|
addons: { apt: { sources: *S, packages: [ "g++-4.5" ] } }
|
||||||
- os: linux
|
- os: linux
|
||||||
compiler: gcc
|
compiler: gcc
|
||||||
env: C=gcc-4.6-m32
|
env: C=gcc-4.6-m32
|
||||||
@@ -48,6 +58,36 @@ matrix:
|
|||||||
- os: linux
|
- os: linux
|
||||||
compiler: gcc
|
compiler: gcc
|
||||||
env: C=gcc-4.6-m64
|
env: C=gcc-4.6-m64
|
||||||
|
- os: linux
|
||||||
|
compiler: gcc
|
||||||
|
env: C=gcc-4.7-m32
|
||||||
|
addons: { apt: { sources: *S, packages: [ "g++-4.7-multilib", "zlib1g-dev:i386" ] } }
|
||||||
|
- os: linux
|
||||||
|
compiler: gcc
|
||||||
|
env: C=gcc-4.7-m64
|
||||||
|
addons: { apt: { sources: *S, packages: [ "g++-4.7" ] } }
|
||||||
|
- os: linux
|
||||||
|
compiler: gcc
|
||||||
|
env: C=gcc-4.8-m32
|
||||||
|
addons: { apt: { sources: *S, packages: [ "g++-4.8-multilib", "zlib1g-dev:i386" ] } }
|
||||||
|
- os: linux
|
||||||
|
compiler: gcc
|
||||||
|
env: C=gcc-4.8-m64
|
||||||
|
addons: { apt: { sources: *S, packages: [ "g++-4.8" ] } }
|
||||||
|
# - os: linux
|
||||||
|
# sudo: required
|
||||||
|
# dist: trusty
|
||||||
|
# compiler: gcc
|
||||||
|
# env: C=gcc-4.8-mx32
|
||||||
|
# addons: { apt: { packages: [ "g++-multilib", "libx32stdc++-4.8-dev", "libx32z1-dev" ] } }
|
||||||
|
- os: linux
|
||||||
|
compiler: gcc
|
||||||
|
env: C=gcc-4.9-m32
|
||||||
|
addons: { apt: { sources: *S, packages: [ "g++-4.9-multilib", "zlib1g-dev:i386" ] } }
|
||||||
|
- os: linux
|
||||||
|
compiler: gcc
|
||||||
|
env: C=gcc-4.9-m64
|
||||||
|
addons: { apt: { sources: *S, packages: [ "g++-4.9" ] } }
|
||||||
- os: linux
|
- os: linux
|
||||||
compiler: gcc
|
compiler: gcc
|
||||||
env: C=gcc-5-m32
|
env: C=gcc-5-m32
|
||||||
@@ -174,20 +214,17 @@ matrix:
|
|||||||
compiler: clang
|
compiler: clang
|
||||||
env: C=clang-703-m64
|
env: C=clang-703-m64
|
||||||
- os: osx
|
- os: osx
|
||||||
osx_image: xcode8.1
|
osx_image: xcode8.2
|
||||||
compiler: clang
|
compiler: clang
|
||||||
env: C=clang-800-m32
|
env: C=clang-800-m32
|
||||||
- os: osx
|
- os: osx
|
||||||
osx_image: xcode8.1
|
osx_image: xcode8.2
|
||||||
compiler: clang
|
compiler: clang
|
||||||
env: C=clang-800-m64
|
env: C=clang-800-m64
|
||||||
|
|
||||||
install:
|
install:
|
||||||
- umask 022; cd $TRAVIS_BUILD_DIR && mkdir -p ../deps
|
- uname -a; pwd; id; umask
|
||||||
- cd ../deps && travis_retry wget -q -O - https://github.com/upx/upx/releases/download/v3.00/ucl-1.03.tar.xz | tar -xJ
|
- cat /etc/os-release || true
|
||||||
- cd ../deps && travis_retry wget -q -O - https://github.com/upx/upx/releases/download/v3.00/zlib-1.2.8.tar.xz | tar -xJ
|
|
||||||
- cd ../deps && travis_retry git clone https://github.com/upx/upx-testsuite
|
|
||||||
- if [[ $X =~ (^|\+)rebuild-stubs($|\+) ]]; then cd ../deps && travis_retry wget -q -O - https://github.com/upx/upx-stubtools/releases/download/v20160918/bin-upx-20160918.tar.xz | tar -xJ; fi
|
|
||||||
- |
|
- |
|
||||||
cd /
|
cd /
|
||||||
if [[ $TRAVIS_OS_NAME == linux ]]; then
|
if [[ $TRAVIS_OS_NAME == linux ]]; then
|
||||||
@@ -202,10 +239,20 @@ install:
|
|||||||
travis_retry pip install --user cpp-coveralls
|
travis_retry pip install --user cpp-coveralls
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
- git --version && bash --version
|
||||||
|
- umask 022; cd $TRAVIS_BUILD_DIR && mkdir -p ../deps ../build/travis
|
||||||
|
- cd ../deps && travis_retry wget -q -O - https://github.com/upx/upx/releases/download/v3.00/ucl-1.03.tar.xz | tar -xJ
|
||||||
|
- cd ../deps && travis_retry wget -q -O - https://github.com/upx/upx/releases/download/v3.00/zlib-1.2.8.tar.xz | tar -xJ
|
||||||
|
- cd ../deps && travis_retry git clone https://github.com/upx/upx-testsuite
|
||||||
|
- |
|
||||||
|
if [[ $X =~ (^|\+)rebuild-stubs($|\+) ]]; then
|
||||||
|
cd ../deps && travis_retry wget -q -O - https://github.com/upx/upx-stubtools/releases/download/v20160918/bin-upx-20160918.tar.xz | tar -xJ
|
||||||
|
fi
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- cd $TRAVIS_BUILD_DIR && mkdir -p ../build/travis
|
|
||||||
- cd $TRAVIS_BUILD_DIR && bash ./.github/travis_build.sh
|
- cd $TRAVIS_BUILD_DIR && bash ./.github/travis_build.sh
|
||||||
- cd $TRAVIS_BUILD_DIR && bash ./.github/travis_testsuite_1.sh
|
- cd $TRAVIS_BUILD_DIR && bash ./.github/travis_testsuite_1.sh
|
||||||
|
after_success:
|
||||||
|
- cd $TRAVIS_BUILD_DIR && bash ./.github/travis_deploy.sh
|
||||||
|
|
||||||
# vim:set ts=2 sw=2 et:
|
# vim:set ts=2 sw=2 et:
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
|
|
||||||
The Ultimate Packer for eXecutables
|
The Ultimate Packer for eXecutables
|
||||||
Copyright (c) 1996-2016 Markus Oberhumer, Laszlo Molnar & John Reiser
|
Copyright (c) 1996-2017 Markus Oberhumer, Laszlo Molnar & John Reiser
|
||||||
https://upx.github.io
|
https://upx.github.io
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# UPX toplevel Makefile - needs GNU make 3.81 or better
|
# UPX toplevel Makefile - needs GNU make 3.81 or better
|
||||||
#
|
#
|
||||||
# Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
# Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
#
|
#
|
||||||
|
|
||||||
MAKEFLAGS += -rR
|
MAKEFLAGS += -rR
|
||||||
|
|||||||
@@ -2,6 +2,10 @@
|
|||||||
User visible changes for UPX
|
User visible changes for UPX
|
||||||
==================================================================
|
==================================================================
|
||||||
|
|
||||||
|
Changes in 3.93 (29 Jan 2017):
|
||||||
|
* UPX has moved to GitHub - the new home page is https://upx.github.io
|
||||||
|
* fixed some win32/pe and win64/pe regressions introduced in 3.92
|
||||||
|
|
||||||
Changes in 3.92 (11 Dec 2016):
|
Changes in 3.92 (11 Dec 2016):
|
||||||
* UPX has moved to GitHub - the new home page is https://upx.github.io
|
* UPX has moved to GitHub - the new home page is https://upx.github.io
|
||||||
* IMPORTANT: all PE formats: internal changes: reunited the diverged source
|
* IMPORTANT: all PE formats: internal changes: reunited the diverged source
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
|
|
||||||
The Ultimate Packer for eXecutables
|
The Ultimate Packer for eXecutables
|
||||||
Copyright (c) 1996-2016 Markus Oberhumer, Laszlo Molnar & John Reiser
|
Copyright (c) 1996-2017 Markus Oberhumer, Laszlo Molnar & John Reiser
|
||||||
https://upx.github.io
|
https://upx.github.io
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
|
|
||||||
The Ultimate Packer for eXecutables
|
The Ultimate Packer for eXecutables
|
||||||
Copyright (c) 1996-2016 Markus Oberhumer, Laszlo Molnar & John Reiser
|
Copyright (c) 1996-2017 Markus Oberhumer, Laszlo Molnar & John Reiser
|
||||||
https://upx.github.io
|
https://upx.github.io
|
||||||
|
|
||||||
|
|
||||||
@@ -103,9 +103,9 @@ THE FUTURE
|
|||||||
COPYRIGHT
|
COPYRIGHT
|
||||||
=========
|
=========
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
Copyright (C) 2000-2016 John F. Reiser
|
Copyright (C) 2000-2017 John F. Reiser
|
||||||
|
|
||||||
This program may be used freely, and you are welcome to
|
This program may be used freely, and you are welcome to
|
||||||
redistribute it under certain conditions.
|
redistribute it under certain conditions.
|
||||||
|
|||||||
+1
-1
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
|
|
||||||
The Ultimate Packer for eXecutables
|
The Ultimate Packer for eXecutables
|
||||||
Copyright (c) 1996-2016 Markus Oberhumer, Laszlo Molnar & John Reiser
|
Copyright (c) 1996-2017 Markus Oberhumer, Laszlo Molnar & John Reiser
|
||||||
https://upx.github.io
|
https://upx.github.io
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
|
|
||||||
The Ultimate Packer for eXecutables
|
The Ultimate Packer for eXecutables
|
||||||
Copyright (c) 1996-2016 Markus Oberhumer, Laszlo Molnar & John Reiser
|
Copyright (c) 1996-2017 Markus Oberhumer, Laszlo Molnar & John Reiser
|
||||||
https://upx.github.io
|
https://upx.github.io
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+1
-9
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# UPX doc Makefile - needs GNU make 3.80 or better
|
# UPX doc Makefile - needs GNU make 3.81 or better
|
||||||
#
|
#
|
||||||
|
|
||||||
MAKEFLAGS += -rR
|
MAKEFLAGS += -rR
|
||||||
@@ -12,14 +12,6 @@ empty :=
|
|||||||
space := $(empty) $(empty)
|
space := $(empty) $(empty)
|
||||||
tab := $(empty) $(empty)
|
tab := $(empty) $(empty)
|
||||||
|
|
||||||
# update $PATH for our special stub build tools
|
|
||||||
ifneq ($(wildcard $(HOME)/local/bin/bin-upx/.),)
|
|
||||||
export PATH := $(HOME)/local/bin/bin-upx:$(PATH)
|
|
||||||
endif
|
|
||||||
ifneq ($(wildcard $(HOME)/bin/bin-upx/.),)
|
|
||||||
export PATH := $(HOME)/bin/bin-upx:$(PATH)
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
# /***********************************************************************
|
# /***********************************************************************
|
||||||
# //
|
# //
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
Decompressing ELF Directly to Memory on Linux/x86
|
Decompressing ELF Directly to Memory on Linux/x86
|
||||||
Copyright (C) 2000-2016 John F. Reiser jreiser@BitWagon.com
|
Copyright (C) 2000-2017 John F. Reiser jreiser@BitWagon.com
|
||||||
|
|
||||||
References:
|
References:
|
||||||
<elf.h> definitions for the ELF file format
|
<elf.h> definitions for the ELF file format
|
||||||
|
|||||||
+6
-5
@@ -13,7 +13,7 @@ B<upx> S<[ I<command> ]> S<[ I<options> ]> I<filename>...
|
|||||||
=head1 ABSTRACT
|
=head1 ABSTRACT
|
||||||
|
|
||||||
The Ultimate Packer for eXecutables
|
The Ultimate Packer for eXecutables
|
||||||
Copyright (c) 1996-2016 Markus Oberhumer, Laszlo Molnar & John Reiser
|
Copyright (c) 1996-2017 Markus Oberhumer, Laszlo Molnar & John Reiser
|
||||||
http://upx.sourceforge.net
|
http://upx.sourceforge.net
|
||||||
|
|
||||||
|
|
||||||
@@ -78,6 +78,7 @@ B<UPX> is a versatile executable packer with the following features:
|
|||||||
* vmlinux/386
|
* vmlinux/386
|
||||||
* watcom/le (supporting DOS4G, PMODE/W, DOS32a and CauseWay)
|
* watcom/le (supporting DOS4G, PMODE/W, DOS32a and CauseWay)
|
||||||
* win32/pe (exe and dll)
|
* win32/pe (exe and dll)
|
||||||
|
* win64/pe (exe and dll)
|
||||||
* arm/pe (exe and dll)
|
* arm/pe (exe and dll)
|
||||||
* linux/elfamd64
|
* linux/elfamd64
|
||||||
* linux/elfppc32
|
* linux/elfppc32
|
||||||
@@ -933,13 +934,13 @@ Please report all bugs immediately to the authors.
|
|||||||
|
|
||||||
=head1 COPYRIGHT
|
=head1 COPYRIGHT
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
|
|
||||||
Copyright (C) 2000-2016 John F. Reiser
|
Copyright (C) 2000-2017 John F. Reiser
|
||||||
|
|
||||||
Copyright (C) 2002-2016 Jens Medoch
|
Copyright (C) 2002-2017 Jens Medoch
|
||||||
|
|
||||||
This program may be used freely, and you are welcome to
|
This program may be used freely, and you are welcome to
|
||||||
redistribute it under certain conditions.
|
redistribute it under certain conditions.
|
||||||
|
|||||||
+1
-2
@@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# UPX Makefile - needs GNU make 3.81 or better
|
# UPX Makefile - needs GNU make 3.81 or better
|
||||||
#
|
#
|
||||||
# Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
# Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
#
|
#
|
||||||
|
|
||||||
# build configuration options for this Makefile
|
# build configuration options for this Makefile
|
||||||
@@ -53,7 +53,6 @@ endif
|
|||||||
LIBS += -lucl -lz
|
LIBS += -lucl -lz
|
||||||
# LZMA from https://github.com/upx/upx-lzma-sdk
|
# LZMA from https://github.com/upx/upx-lzma-sdk
|
||||||
include $(top_srcdir)/src/stub/src/c/Makevars.lzma
|
include $(top_srcdir)/src/stub/src/c/Makevars.lzma
|
||||||
DEFS += -DWITH_LZMA=$(UPX_LZMA_VERSION)
|
|
||||||
|
|
||||||
CPPFLAGS += $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES)
|
CPPFLAGS += $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES)
|
||||||
ifeq ($(BUILD_TYPE_DEBUG),1)
|
ifeq ($(BUILD_TYPE_DEBUG),1)
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
@@ -339,9 +339,9 @@ int upx_lzma_compress ( const upx_bytep src, unsigned src_len,
|
|||||||
};
|
};
|
||||||
PROPVARIANT pr[8];
|
PROPVARIANT pr[8];
|
||||||
const unsigned nprops = 8;
|
const unsigned nprops = 8;
|
||||||
static wchar_t matchfinder[] = L"BT4";
|
static const wchar_t matchfinder[] = L"BT4";
|
||||||
assert(NCompress::NLZMA::FindMatchFinder(matchfinder) >= 0);
|
assert(NCompress::NLZMA::FindMatchFinder(matchfinder) >= 0);
|
||||||
pr[7].vt = VT_BSTR; pr[7].bstrVal = matchfinder;
|
pr[7].vt = VT_BSTR; pr[7].bstrVal = ACC_PCAST(BSTR, ACC_UNCONST_CAST(wchar_t *, matchfinder));
|
||||||
pr[0].vt = pr[1].vt = pr[2].vt = pr[3].vt = VT_UI4;
|
pr[0].vt = pr[1].vt = pr[2].vt = pr[3].vt = VT_UI4;
|
||||||
pr[4].vt = pr[5].vt = pr[6].vt = VT_UI4;
|
pr[4].vt = pr[5].vt = pr[6].vt = VT_UI4;
|
||||||
if (prepare(res, src_len, method, level, lcconf) != 0)
|
if (prepare(res, src_len, method, level, lcconf) != 0)
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+19
-31
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
@@ -34,6 +34,7 @@
|
|||||||
#if !defined(_FILE_OFFSET_BITS)
|
#if !defined(_FILE_OFFSET_BITS)
|
||||||
# define _FILE_OFFSET_BITS 64
|
# define _FILE_OFFSET_BITS 64
|
||||||
#endif
|
#endif
|
||||||
|
#undef NDEBUG
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
@@ -43,6 +44,8 @@
|
|||||||
#ifndef ACC_CFG_USE_NEW_STYLE_CASTS
|
#ifndef ACC_CFG_USE_NEW_STYLE_CASTS
|
||||||
#define ACC_CFG_USE_NEW_STYLE_CASTS 1
|
#define ACC_CFG_USE_NEW_STYLE_CASTS 1
|
||||||
#endif
|
#endif
|
||||||
|
#define ACC_CFG_PREFER_TYPEOF_ACC_INT32E_T ACC_TYPEOF_INT
|
||||||
|
#define ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T ACC_TYPEOF_LONG_LONG
|
||||||
#include "miniacc.h"
|
#include "miniacc.h"
|
||||||
#if !(ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_MSC)
|
#if !(ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_MSC)
|
||||||
// other compilers may work, but we're NOT interested into supporting them
|
// other compilers may work, but we're NOT interested into supporting them
|
||||||
@@ -59,7 +62,13 @@ ACC_COMPILE_TIME_ASSERT_HEADER(CHAR_MAX == 255) // -funsigned-char
|
|||||||
ACC_COMPILE_TIME_ASSERT_HEADER((char)(-1) > 0) // -funsigned-char
|
ACC_COMPILE_TIME_ASSERT_HEADER((char)(-1) > 0) // -funsigned-char
|
||||||
|
|
||||||
#if (ACC_CC_MSC)
|
#if (ACC_CC_MSC)
|
||||||
|
# pragma warning(error: 4127)
|
||||||
|
# pragma warning(error: 4146)
|
||||||
# pragma warning(error: 4319)
|
# pragma warning(error: 4319)
|
||||||
|
# pragma warning(error: 4805)
|
||||||
|
# pragma warning(disable: 4244) // -Wconversion
|
||||||
|
# pragma warning(disable: 4267) // -Wconversion
|
||||||
|
# pragma warning(disable: 4820) // padding added after data member
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// FIXME - quick hack for arm-wince-gcc-3.4 (Debian pocketpc-*.deb packages)
|
// FIXME - quick hack for arm-wince-gcc-3.4 (Debian pocketpc-*.deb packages)
|
||||||
@@ -70,7 +79,6 @@ ACC_COMPILE_TIME_ASSERT_HEADER((char)(-1) > 0) // -funsigned-char
|
|||||||
# undef HAVE_UTIME
|
# undef HAVE_UTIME
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#define ACC_WANT_ACC_INCD_H 1
|
#define ACC_WANT_ACC_INCD_H 1
|
||||||
#define ACC_WANT_ACC_INCE_H 1
|
#define ACC_WANT_ACC_INCE_H 1
|
||||||
#define ACC_WANT_ACC_LIB_H 1
|
#define ACC_WANT_ACC_LIB_H 1
|
||||||
@@ -110,29 +118,20 @@ typedef unsigned char upx_byte;
|
|||||||
#undef _
|
#undef _
|
||||||
#undef __
|
#undef __
|
||||||
#undef ___
|
#undef ___
|
||||||
#undef NDEBUG
|
|
||||||
#undef dos
|
#undef dos
|
||||||
#undef linux
|
#undef linux
|
||||||
#undef small
|
#undef small
|
||||||
#undef tos
|
#undef tos
|
||||||
|
#undef unix
|
||||||
#if defined(__DJGPP__)
|
#if defined(__DJGPP__)
|
||||||
# undef sopen
|
# undef sopen
|
||||||
# undef __unix__
|
# undef __unix__
|
||||||
# undef __unix
|
# undef __unix
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define WITH_LZMA 0x443
|
||||||
#define WITH_UCL 1
|
#define WITH_UCL 1
|
||||||
#define WITH_ZLIB 1
|
#define WITH_ZLIB 1
|
||||||
#if !defined(WITH_LZMA) || (WITH_LZMA+0 == 0)
|
|
||||||
# error "WITH_LZMA is missing"
|
|
||||||
#elif (WITH_LZMA != 0x443)
|
|
||||||
# error "invalid WITH_LZMA version"
|
|
||||||
#endif
|
|
||||||
#if defined(UPX_OFFICIAL_BUILD)
|
|
||||||
# if !(WITH_LZMA && WITH_NRV && WITH_UCL && WITH_ZLIB)
|
|
||||||
# error
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
#if (WITH_UCL)
|
#if (WITH_UCL)
|
||||||
# define ucl_compress_config_t REAL_ucl_compress_config_t
|
# define ucl_compress_config_t REAL_ucl_compress_config_t
|
||||||
# include <ucl/uclconf.h>
|
# include <ucl/uclconf.h>
|
||||||
@@ -144,11 +143,6 @@ typedef unsigned char upx_byte;
|
|||||||
# undef ucl_compress_config_p
|
# undef ucl_compress_config_p
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************
|
|
||||||
// system includes
|
|
||||||
**************************************************************************/
|
|
||||||
|
|
||||||
// malloc debuggers
|
// malloc debuggers
|
||||||
#if (WITH_VALGRIND)
|
#if (WITH_VALGRIND)
|
||||||
# include <valgrind/memcheck.h>
|
# include <valgrind/memcheck.h>
|
||||||
@@ -163,7 +157,6 @@ typedef unsigned char upx_byte;
|
|||||||
# define VALGRIND_MAKE_MEM_UNDEFINED(addr,len) 0
|
# define VALGRIND_MAKE_MEM_UNDEFINED(addr,len) 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
// IMPORTANT: unconditionally enable assertions
|
// IMPORTANT: unconditionally enable assertions
|
||||||
#undef NDEBUG
|
#undef NDEBUG
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
@@ -190,7 +183,6 @@ typedef size_t upx_rsize_t;
|
|||||||
# define STDERR_FILENO (fileno(stderr))
|
# define STDERR_FILENO (fileno(stderr))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#if !(HAVE_STRCASECMP) && (HAVE_STRICMP)
|
#if !(HAVE_STRCASECMP) && (HAVE_STRICMP)
|
||||||
# define strcasecmp stricmp
|
# define strcasecmp stricmp
|
||||||
#endif
|
#endif
|
||||||
@@ -198,7 +190,6 @@ typedef size_t upx_rsize_t;
|
|||||||
# define strncasecmp strnicmp
|
# define strncasecmp strnicmp
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#if !defined(S_IWUSR) && defined(_S_IWUSR)
|
#if !defined(S_IWUSR) && defined(_S_IWUSR)
|
||||||
# define S_IWUSR _S_IWUSR
|
# define S_IWUSR _S_IWUSR
|
||||||
#elif !defined(S_IWUSR) && defined(_S_IWRITE)
|
#elif !defined(S_IWUSR) && defined(_S_IWRITE)
|
||||||
@@ -238,7 +229,6 @@ typedef size_t upx_rsize_t;
|
|||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
// avoid warnings about shadowing global functions
|
// avoid warnings about shadowing global functions
|
||||||
#undef index
|
#undef index
|
||||||
#define basename upx_basename
|
#define basename upx_basename
|
||||||
@@ -371,18 +361,18 @@ private:
|
|||||||
#define UPX_F_DOS_EXE 3
|
#define UPX_F_DOS_EXE 3
|
||||||
#define UPX_F_DJGPP2_COFF 4
|
#define UPX_F_DJGPP2_COFF 4
|
||||||
#define UPX_F_WATCOM_LE 5
|
#define UPX_F_WATCOM_LE 5
|
||||||
#define UPX_F_VXD_LE 6
|
#define UPX_F_VXD_LE 6 // NOT IMPLEMENTED
|
||||||
#define UPX_F_DOS_EXEH 7 /* OBSOLETE */
|
#define UPX_F_DOS_EXEH 7 // OBSOLETE
|
||||||
#define UPX_F_TMT_ADAM 8
|
#define UPX_F_TMT_ADAM 8
|
||||||
#define UPX_F_WIN32_PE 9
|
#define UPX_F_WIN32_PE 9
|
||||||
#define UPX_F_LINUX_i386 10
|
#define UPX_F_LINUX_i386 10
|
||||||
#define UPX_F_WIN16_NE 11
|
#define UPX_F_WIN16_NE 11 // NOT IMPLEMENTED
|
||||||
#define UPX_F_LINUX_ELF_i386 12
|
#define UPX_F_LINUX_ELF_i386 12
|
||||||
#define UPX_F_LINUX_SEP_i386 13
|
#define UPX_F_LINUX_SEP_i386 13 // NOT IMPLEMENTED
|
||||||
#define UPX_F_LINUX_SH_i386 14
|
#define UPX_F_LINUX_SH_i386 14
|
||||||
#define UPX_F_VMLINUZ_i386 15
|
#define UPX_F_VMLINUZ_i386 15
|
||||||
#define UPX_F_BVMLINUZ_i386 16
|
#define UPX_F_BVMLINUZ_i386 16
|
||||||
#define UPX_F_ELKS_8086 17
|
#define UPX_F_ELKS_8086 17 // NOT IMPLEMENTED
|
||||||
#define UPX_F_PS1_EXE 18
|
#define UPX_F_PS1_EXE 18
|
||||||
#define UPX_F_VMLINUX_i386 19
|
#define UPX_F_VMLINUX_i386 19
|
||||||
#define UPX_F_LINUX_ELFI_i386 20
|
#define UPX_F_LINUX_ELFI_i386 20
|
||||||
@@ -413,10 +403,8 @@ private:
|
|||||||
#define UPX_F_VMLINUX_PPC64LE 40
|
#define UPX_F_VMLINUX_PPC64LE 40
|
||||||
#define UPX_F_DYLIB_PPC64LE 41
|
#define UPX_F_DYLIB_PPC64LE 41
|
||||||
|
|
||||||
#define UPX_F_PLAIN_TEXT 127 // FIXME: what is this ??
|
|
||||||
|
|
||||||
#define UPX_F_ATARI_TOS 129
|
#define UPX_F_ATARI_TOS 129
|
||||||
#define UPX_F_SOLARIS_SPARC 130
|
#define UPX_F_SOLARIS_SPARC 130 // NOT IMPLEMENTED
|
||||||
#define UPX_F_MACH_PPC32 131
|
#define UPX_F_MACH_PPC32 131
|
||||||
#define UPX_F_LINUX_ELFPPC32 132
|
#define UPX_F_LINUX_ELFPPC32 132
|
||||||
#define UPX_F_LINUX_ELF32_ARMEB 133
|
#define UPX_F_LINUX_ELF32_ARMEB 133
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+3
-3
@@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
Copyright (C) 2000-2016 John F. Reiser
|
Copyright (C) 2000-2017 John F. Reiser
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+3
-3
@@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
Copyright (C) 2000-2016 John F. Reiser
|
Copyright (C) 2000-2017 John F. Reiser
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+3
-3
@@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
Copyright (C) 2000-2016 John F. Reiser
|
Copyright (C) 2000-2017 John F. Reiser
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+3
-3
@@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
Copyright (C) 2004-2016 John F. Reiser
|
Copyright (C) 2004-2017 John F. Reiser
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+9
-9
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
@@ -140,8 +140,8 @@ static void show_all_packers(FILE *f, int verbose)
|
|||||||
{
|
{
|
||||||
options_t o; o.reset();
|
options_t o; o.reset();
|
||||||
PackerNames pn; pn.o = &o;
|
PackerNames pn; pn.o = &o;
|
||||||
PackMaster::visitAllPackers(pn.visit, NULL, &o, &pn);
|
PackMaster::visitAllPackers(PackerNames::visit, NULL, &o, &pn);
|
||||||
qsort(pn.names, pn.names_count, sizeof(PackerNames::Entry), pn.cmp_fname);
|
qsort(pn.names, pn.names_count, sizeof(PackerNames::Entry), PackerNames::cmp_fname);
|
||||||
size_t pos = 0;
|
size_t pos = 0;
|
||||||
for (size_t i = 0; i < pn.names_count; ++i)
|
for (size_t i = 0; i < pn.names_count; ++i)
|
||||||
{
|
{
|
||||||
@@ -287,7 +287,7 @@ void show_help(int verbose)
|
|||||||
" --le produce LE output [default: EXE]\n"
|
" --le produce LE output [default: EXE]\n"
|
||||||
"\n");
|
"\n");
|
||||||
fg = con_fg(f,FG_YELLOW);
|
fg = con_fg(f,FG_YELLOW);
|
||||||
con_fprintf(f,"Options for win32/pe, rtm32/pe & arm/pe:\n");
|
con_fprintf(f,"Options for win32/pe, win64/pe, rtm32/pe & arm/pe:\n");
|
||||||
fg = con_fg(f,fg);
|
fg = con_fg(f,fg);
|
||||||
con_fprintf(f,
|
con_fprintf(f,
|
||||||
" --compress-exports=0 do not compress the export section\n"
|
" --compress-exports=0 do not compress the export section\n"
|
||||||
@@ -421,10 +421,10 @@ void show_version(int x)
|
|||||||
if (v != NULL && v[0])
|
if (v != NULL && v[0])
|
||||||
fprintf(fp, "LZMA SDK version %s\n", v);
|
fprintf(fp, "LZMA SDK version %s\n", v);
|
||||||
#endif
|
#endif
|
||||||
fprintf(fp, "Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer\n");
|
fprintf(fp, "Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer\n");
|
||||||
fprintf(fp, "Copyright (C) 1996-2016 Laszlo Molnar\n");
|
fprintf(fp, "Copyright (C) 1996-2017 Laszlo Molnar\n");
|
||||||
fprintf(fp, "Copyright (C) 2000-2016 John F. Reiser\n");
|
fprintf(fp, "Copyright (C) 2000-2017 John F. Reiser\n");
|
||||||
fprintf(fp, "Copyright (C) 2002-2016 Jens Medoch\n");
|
fprintf(fp, "Copyright (C) 2002-2017 Jens Medoch\n");
|
||||||
#if (WITH_ZLIB)
|
#if (WITH_ZLIB)
|
||||||
fprintf(fp, "Copyright (C) 1995" "-2005 Jean-loup Gailly and Mark Adler\n");
|
fprintf(fp, "Copyright (C) 1995" "-2005 Jean-loup Gailly and Mark Adler\n");
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
+3
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
@@ -338,6 +338,7 @@ void LeFile::countFixups(unsigned *counts) const
|
|||||||
break;
|
break;
|
||||||
case 6: // 16:32 pointer
|
case 6: // 16:32 pointer
|
||||||
counts[o] += 9;
|
counts[o] += 9;
|
||||||
|
// fall through
|
||||||
case 7: // 32-bit offset
|
case 7: // 32-bit offset
|
||||||
counts[fix[4]-1] += 4;
|
counts[fix[4]-1] += 4;
|
||||||
fix += (fix[1] & 0x10) ? 9 : 7;
|
fix += (fix[1] & 0x10) ? 9 : 7;
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+5
-34
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
@@ -84,7 +84,6 @@ static options_t global_options;
|
|||||||
options_t *opt = &global_options;
|
options_t *opt = &global_options;
|
||||||
|
|
||||||
static int done_output_name = 0;
|
static int done_output_name = 0;
|
||||||
static int done_script_name = 0;
|
|
||||||
|
|
||||||
|
|
||||||
const char *argv0 = "";
|
const char *argv0 = "";
|
||||||
@@ -366,29 +365,6 @@ static void set_output_name(const char *n, bool allow_m)
|
|||||||
done_output_name++;
|
done_output_name++;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void set_script_name(const char *n, bool allow_m)
|
|
||||||
{
|
|
||||||
#if 1
|
|
||||||
if (done_script_name > 0)
|
|
||||||
{
|
|
||||||
fprintf(stderr,"%s: option '--script' more than once given\n",argv0);
|
|
||||||
e_usage();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
if (!n || !n[0] || (!allow_m && n[0] == '-'))
|
|
||||||
{
|
|
||||||
fprintf(stderr,"%s: missing script name\n",argv0);
|
|
||||||
e_usage();
|
|
||||||
}
|
|
||||||
if (strlen(n) >= (size_t)opt->o_unix.SCRIPT_MAX - 3)
|
|
||||||
{
|
|
||||||
fprintf(stderr,"%s: script name too long\n",argv0);
|
|
||||||
e_usage();
|
|
||||||
}
|
|
||||||
opt->o_unix.script_name = n;
|
|
||||||
done_script_name++;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
// get options
|
// get options
|
||||||
@@ -850,11 +826,6 @@ static int do_option(int optc, const char *arg)
|
|||||||
case 661:
|
case 661:
|
||||||
opt->o_unix.force_execve = true;
|
opt->o_unix.force_execve = true;
|
||||||
break;
|
break;
|
||||||
case 662:
|
|
||||||
opt->o_unix.script_name = "/usr/local/lib/upx/upxX";
|
|
||||||
if (mfx_optarg && mfx_optarg[0])
|
|
||||||
set_script_name(mfx_optarg, 1);
|
|
||||||
break;
|
|
||||||
case 663:
|
case 663:
|
||||||
opt->o_unix.is_ptinterp = true;
|
opt->o_unix.is_ptinterp = true;
|
||||||
break;
|
break;
|
||||||
@@ -1032,9 +1003,6 @@ static const struct mfx_option longopts[] =
|
|||||||
// unix
|
// unix
|
||||||
{"blocksize", 0x31, 0, 660}, // --blocksize=
|
{"blocksize", 0x31, 0, 660}, // --blocksize=
|
||||||
{"force-execve", 0x10, 0, 661}, // force linux/386 execve format
|
{"force-execve", 0x10, 0, 661}, // force linux/386 execve format
|
||||||
#if 0
|
|
||||||
{"script", 0x31, 0, 662}, // --script=
|
|
||||||
#endif
|
|
||||||
{"is_ptinterp", 0x10, 0, 663}, // linux/elf386 PT_INTERP program
|
{"is_ptinterp", 0x10, 0, 663}, // linux/elf386 PT_INTERP program
|
||||||
{"use_ptinterp", 0x10, 0, 664}, // linux/elf386 PT_INTERP program
|
{"use_ptinterp", 0x10, 0, 664}, // linux/elf386 PT_INTERP program
|
||||||
{"make_ptinterp", 0x10, 0, 665}, // linux/elf386 PT_INTERP program
|
{"make_ptinterp", 0x10, 0, 665}, // linux/elf386 PT_INTERP program
|
||||||
@@ -1431,6 +1399,9 @@ __acc_static_noinline void upx_sanity_check(void)
|
|||||||
#if (ACC_ARCH_M68K && ACC_OS_TOS && ACC_CC_GNUC) && defined(__MINT__)
|
#if (ACC_ARCH_M68K && ACC_OS_TOS && ACC_CC_GNUC) && defined(__MINT__)
|
||||||
extern "C" { extern long _stksize; long _stksize = 256 * 1024L; }
|
extern "C" { extern long _stksize; long _stksize = 256 * 1024L; }
|
||||||
#endif
|
#endif
|
||||||
|
#if (ACC_OS_WIN32 || ACC_OS_WIN64) && (defined(__MINGW32__) || defined(__MINGW64__))
|
||||||
|
extern "C" { extern int _dowildcard; int _dowildcard = -1; }
|
||||||
|
#endif
|
||||||
|
|
||||||
int __acc_cdecl_main main(int argc, char *argv[])
|
int __acc_cdecl_main main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+59
-33
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
|
|
||||||
#ifndef __ACC_H_INCLUDED
|
#ifndef __ACC_H_INCLUDED
|
||||||
#define __ACC_H_INCLUDED 1
|
#define __ACC_H_INCLUDED 1
|
||||||
#define ACC_VERSION 20160919L
|
#define ACC_VERSION 20170125L
|
||||||
#if defined(__CYGWIN32__) && !defined(__CYGWIN__)
|
#if defined(__CYGWIN32__) && !defined(__CYGWIN__)
|
||||||
# define __CYGWIN__ __CYGWIN32__
|
# define __CYGWIN__ __CYGWIN32__
|
||||||
#endif
|
#endif
|
||||||
@@ -234,10 +234,12 @@
|
|||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#if defined(_MSC_VER) && defined(M_I86HM) && (UINT_MAX == ACC_0xffffL)
|
#if (UINT_MAX == ACC_0xffffL)
|
||||||
|
#if defined(_MSC_VER) && defined(M_I86HM)
|
||||||
# define ptrdiff_t long
|
# define ptrdiff_t long
|
||||||
# define _PTRDIFF_T_DEFINED 1
|
# define _PTRDIFF_T_DEFINED 1
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
#if (UINT_MAX == ACC_0xffffL)
|
#if (UINT_MAX == ACC_0xffffL)
|
||||||
# undef __ACC_RENAME_A
|
# undef __ACC_RENAME_A
|
||||||
# undef __ACC_RENAME_B
|
# undef __ACC_RENAME_B
|
||||||
@@ -386,7 +388,7 @@
|
|||||||
#define ACC_CPP_ECONCAT6(a,b,c,d,e,f) ACC_CPP_CONCAT6(a,b,c,d,e,f)
|
#define ACC_CPP_ECONCAT6(a,b,c,d,e,f) ACC_CPP_CONCAT6(a,b,c,d,e,f)
|
||||||
#define ACC_CPP_ECONCAT7(a,b,c,d,e,f,g) ACC_CPP_CONCAT7(a,b,c,d,e,f,g)
|
#define ACC_CPP_ECONCAT7(a,b,c,d,e,f,g) ACC_CPP_CONCAT7(a,b,c,d,e,f,g)
|
||||||
#endif
|
#endif
|
||||||
#define __ACC_MASK_GEN(o,b) (((((o) << ((b)-!!(b))) - (o)) << 1) + (o)*!!(b))
|
#define __ACC_MASK_GEN(o,b) (((((o) << ((b)-((b)!=0))) - (o)) << 1) + (o)*((b)!=0))
|
||||||
#if 1 && defined(__cplusplus)
|
#if 1 && defined(__cplusplus)
|
||||||
# if !defined(__STDC_CONSTANT_MACROS)
|
# if !defined(__STDC_CONSTANT_MACROS)
|
||||||
# define __STDC_CONSTANT_MACROS 1
|
# define __STDC_CONSTANT_MACROS 1
|
||||||
@@ -2139,6 +2141,7 @@ ACC_COMPILE_TIME_ASSERT_HEADER(3 == 3)
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
#define ACC_SIZEOF_CHAR 1
|
||||||
#ifndef ACC_SIZEOF_SHORT
|
#ifndef ACC_SIZEOF_SHORT
|
||||||
#if defined(SIZEOF_SHORT)
|
#if defined(SIZEOF_SHORT)
|
||||||
# define ACC_SIZEOF_SHORT (SIZEOF_SHORT)
|
# define ACC_SIZEOF_SHORT (SIZEOF_SHORT)
|
||||||
@@ -2733,7 +2736,7 @@ ACC_COMPILE_TIME_ASSERT_HEADER(ACC_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
|
|||||||
#elif (ACC_ARCH_POWERPC)
|
#elif (ACC_ARCH_POWERPC)
|
||||||
# define ACC_OPT_PREFER_PREINC 1
|
# define ACC_OPT_PREFER_PREINC 1
|
||||||
# define ACC_OPT_PREFER_PREDEC 1
|
# define ACC_OPT_PREFER_PREDEC 1
|
||||||
# if (ACC_ABI_BIG_ENDIAN)
|
# if (ACC_ABI_BIG_ENDIAN) || (ACC_WORDSIZE == 8)
|
||||||
# ifndef ACC_OPT_UNALIGNED16
|
# ifndef ACC_OPT_UNALIGNED16
|
||||||
# define ACC_OPT_UNALIGNED16 1
|
# define ACC_OPT_UNALIGNED16 1
|
||||||
# endif
|
# endif
|
||||||
@@ -2865,11 +2868,14 @@ ACC_COMPILE_TIME_ASSERT_HEADER(ACC_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#if !defined(acc_int16e_t)
|
#if !defined(acc_int16e_t)
|
||||||
#if (ACC_SIZEOF_LONG == 2)
|
#if (ACC_CFG_PREFER_TYPEOF_ACC_INT16E_T == ACC_TYPEOF_SHORT) && (ACC_SIZEOF_SHORT != 2)
|
||||||
|
# undef ACC_CFG_PREFER_TYPEOF_ACC_INT16E_T
|
||||||
|
#endif
|
||||||
|
#if (ACC_SIZEOF_LONG == 2) && !(ACC_CFG_PREFER_TYPEOF_ACC_INT16E_T == ACC_TYPEOF_SHORT)
|
||||||
# define acc_int16e_t long
|
# define acc_int16e_t long
|
||||||
# define acc_uint16e_t unsigned long
|
# define acc_uint16e_t unsigned long
|
||||||
# define ACC_TYPEOF_ACC_INT16E_T ACC_TYPEOF_LONG
|
# define ACC_TYPEOF_ACC_INT16E_T ACC_TYPEOF_LONG
|
||||||
#elif (ACC_SIZEOF_INT == 2)
|
#elif (ACC_SIZEOF_INT == 2) && !(ACC_CFG_PREFER_TYPEOF_ACC_INT16E_T == ACC_TYPEOF_SHORT)
|
||||||
# define acc_int16e_t int
|
# define acc_int16e_t int
|
||||||
# define acc_uint16e_t unsigned int
|
# define acc_uint16e_t unsigned int
|
||||||
# define ACC_TYPEOF_ACC_INT16E_T ACC_TYPEOF_INT
|
# define ACC_TYPEOF_ACC_INT16E_T ACC_TYPEOF_INT
|
||||||
@@ -2898,7 +2904,10 @@ ACC_COMPILE_TIME_ASSERT_HEADER(ACC_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
|
|||||||
ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int16e_t) == ACC_SIZEOF_ACC_INT16E_T)
|
ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int16e_t) == ACC_SIZEOF_ACC_INT16E_T)
|
||||||
#endif
|
#endif
|
||||||
#if !defined(acc_int32e_t)
|
#if !defined(acc_int32e_t)
|
||||||
#if (ACC_SIZEOF_LONG == 4)
|
#if (ACC_CFG_PREFER_TYPEOF_ACC_INT32E_T == ACC_TYPEOF_INT) && (ACC_SIZEOF_INT != 4)
|
||||||
|
# undef ACC_CFG_PREFER_TYPEOF_ACC_INT32E_T
|
||||||
|
#endif
|
||||||
|
#if (ACC_SIZEOF_LONG == 4) && !(ACC_CFG_PREFER_TYPEOF_ACC_INT32E_T == ACC_TYPEOF_INT)
|
||||||
# define acc_int32e_t long int
|
# define acc_int32e_t long int
|
||||||
# define acc_uint32e_t unsigned long int
|
# define acc_uint32e_t unsigned long int
|
||||||
# define ACC_TYPEOF_ACC_INT32E_T ACC_TYPEOF_LONG
|
# define ACC_TYPEOF_ACC_INT32E_T ACC_TYPEOF_LONG
|
||||||
@@ -2946,19 +2955,25 @@ ACC_COMPILE_TIME_ASSERT_HEADER(ACC_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
|
|||||||
#endif
|
#endif
|
||||||
#if !defined(acc_int64e_t)
|
#if !defined(acc_int64e_t)
|
||||||
#if (ACC_SIZEOF___INT64 == 8)
|
#if (ACC_SIZEOF___INT64 == 8)
|
||||||
# if (ACC_CC_BORLANDC) && !(ACC_CFG_TYPE_PREFER___INT64)
|
# if (ACC_CC_BORLANDC) && !defined(ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T)
|
||||||
# define ACC_CFG_TYPE_PREFER___INT64 1
|
# define ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T ACC_TYPEOF___INT64
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
#if (ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T == ACC_TYPEOF_LONG_LONG) && (ACC_SIZEOF_LONG_LONG != 8)
|
||||||
|
# undef ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T
|
||||||
|
#endif
|
||||||
|
#if (ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T == ACC_TYPEOF___INT64) && (ACC_SIZEOF___INT64 != 8)
|
||||||
|
# undef ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T
|
||||||
|
#endif
|
||||||
#if (ACC_SIZEOF_INT == 8) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
|
#if (ACC_SIZEOF_INT == 8) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
|
||||||
# define acc_int64e_t int
|
# define acc_int64e_t int
|
||||||
# define acc_uint64e_t unsigned int
|
# define acc_uint64e_t unsigned int
|
||||||
# define ACC_TYPEOF_ACC_INT64E_T ACC_TYPEOF_INT
|
# define ACC_TYPEOF_ACC_INT64E_T ACC_TYPEOF_INT
|
||||||
#elif (ACC_SIZEOF_LONG == 8)
|
#elif (ACC_SIZEOF_LONG == 8) && !(ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T == ACC_TYPEOF_LONG_LONG) && !(ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T == ACC_TYPEOF___INT64)
|
||||||
# define acc_int64e_t long int
|
# define acc_int64e_t long int
|
||||||
# define acc_uint64e_t unsigned long int
|
# define acc_uint64e_t unsigned long int
|
||||||
# define ACC_TYPEOF_ACC_INT64E_T ACC_TYPEOF_LONG
|
# define ACC_TYPEOF_ACC_INT64E_T ACC_TYPEOF_LONG
|
||||||
#elif (ACC_SIZEOF_LONG_LONG == 8) && !(ACC_CFG_TYPE_PREFER___INT64)
|
#elif (ACC_SIZEOF_LONG_LONG == 8) && !(ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T == ACC_TYPEOF___INT64)
|
||||||
# define acc_int64e_t acc_llong_t
|
# define acc_int64e_t acc_llong_t
|
||||||
# define acc_uint64e_t acc_ullong_t
|
# define acc_uint64e_t acc_ullong_t
|
||||||
# define ACC_TYPEOF_ACC_INT64E_T ACC_TYPEOF_LONG_LONG
|
# define ACC_TYPEOF_ACC_INT64E_T ACC_TYPEOF_LONG_LONG
|
||||||
@@ -3320,12 +3335,12 @@ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int_fast64_t) == sizeof(acc_uint_fast6
|
|||||||
#if (ACC_OS_POSIX)
|
#if (ACC_OS_POSIX)
|
||||||
# if (ACC_OS_POSIX_AIX)
|
# if (ACC_OS_POSIX_AIX)
|
||||||
# define HAVE_SYS_RESOURCE_H 1
|
# define HAVE_SYS_RESOURCE_H 1
|
||||||
# elif (ACC_OS_POSIX_FREEBSD || ACC_OS_POSIX_MACOSX || ACC_OS_POSIX_NETBSD || ACC_OS_POSIX_OPENBSD)
|
# elif (ACC_OS_POSIX_DARWIN || ACC_OS_POSIX_FREEBSD || ACC_OS_POSIX_NETBSD || ACC_OS_POSIX_OPENBSD)
|
||||||
# define HAVE_STRINGS_H 1
|
# define HAVE_STRINGS_H 1
|
||||||
# undef HAVE_MALLOC_H
|
# undef HAVE_MALLOC_H
|
||||||
# elif (ACC_OS_POSIX_HPUX || ACC_OS_POSIX_INTERIX)
|
# elif (ACC_OS_POSIX_HPUX || ACC_OS_POSIX_INTERIX)
|
||||||
# define HAVE_ALLOCA_H 1
|
# define HAVE_ALLOCA_H 1
|
||||||
# elif (ACC_OS_POSIX_MACOSX && ACC_LIBC_MSL)
|
# elif (ACC_OS_POSIX_DARWIN && ACC_LIBC_MSL)
|
||||||
# undef HAVE_SYS_TIME_H
|
# undef HAVE_SYS_TIME_H
|
||||||
# undef HAVE_SYS_TYPES_H
|
# undef HAVE_SYS_TYPES_H
|
||||||
# elif (ACC_OS_POSIX_SOLARIS || ACC_OS_POSIX_SUNOS)
|
# elif (ACC_OS_POSIX_SOLARIS || ACC_OS_POSIX_SUNOS)
|
||||||
@@ -3601,7 +3616,7 @@ ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int_fast64_t) == sizeof(acc_uint_fast6
|
|||||||
#if (ACC_OS_POSIX)
|
#if (ACC_OS_POSIX)
|
||||||
# if (ACC_OS_POSIX_AIX)
|
# if (ACC_OS_POSIX_AIX)
|
||||||
# define HAVE_GETRUSAGE 1
|
# define HAVE_GETRUSAGE 1
|
||||||
# elif (ACC_OS_POSIX_MACOSX && ACC_LIBC_MSL)
|
# elif (ACC_OS_POSIX_DARWIN && ACC_LIBC_MSL)
|
||||||
# undef HAVE_CHOWN
|
# undef HAVE_CHOWN
|
||||||
# undef HAVE_LSTAT
|
# undef HAVE_LSTAT
|
||||||
# elif (ACC_OS_POSIX_UNICOS)
|
# elif (ACC_OS_POSIX_UNICOS)
|
||||||
@@ -4093,11 +4108,14 @@ void __ACC_UA_SET_LE32(__acc_ua_volatile void* pp, unsigned long v) {
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#if !defined(acc_int16e_t)
|
#if !defined(acc_int16e_t)
|
||||||
#if (ACC_SIZEOF_LONG == 2)
|
#if (ACC_CFG_PREFER_TYPEOF_ACC_INT16E_T == ACC_TYPEOF_SHORT) && (ACC_SIZEOF_SHORT != 2)
|
||||||
|
# undef ACC_CFG_PREFER_TYPEOF_ACC_INT16E_T
|
||||||
|
#endif
|
||||||
|
#if (ACC_SIZEOF_LONG == 2) && !(ACC_CFG_PREFER_TYPEOF_ACC_INT16E_T == ACC_TYPEOF_SHORT)
|
||||||
# define acc_int16e_t long
|
# define acc_int16e_t long
|
||||||
# define acc_uint16e_t unsigned long
|
# define acc_uint16e_t unsigned long
|
||||||
# define ACC_TYPEOF_ACC_INT16E_T ACC_TYPEOF_LONG
|
# define ACC_TYPEOF_ACC_INT16E_T ACC_TYPEOF_LONG
|
||||||
#elif (ACC_SIZEOF_INT == 2)
|
#elif (ACC_SIZEOF_INT == 2) && !(ACC_CFG_PREFER_TYPEOF_ACC_INT16E_T == ACC_TYPEOF_SHORT)
|
||||||
# define acc_int16e_t int
|
# define acc_int16e_t int
|
||||||
# define acc_uint16e_t unsigned int
|
# define acc_uint16e_t unsigned int
|
||||||
# define ACC_TYPEOF_ACC_INT16E_T ACC_TYPEOF_INT
|
# define ACC_TYPEOF_ACC_INT16E_T ACC_TYPEOF_INT
|
||||||
@@ -4126,7 +4144,10 @@ void __ACC_UA_SET_LE32(__acc_ua_volatile void* pp, unsigned long v) {
|
|||||||
ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int16e_t) == ACC_SIZEOF_ACC_INT16E_T)
|
ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_int16e_t) == ACC_SIZEOF_ACC_INT16E_T)
|
||||||
#endif
|
#endif
|
||||||
#if !defined(acc_int32e_t)
|
#if !defined(acc_int32e_t)
|
||||||
#if (ACC_SIZEOF_LONG == 4)
|
#if (ACC_CFG_PREFER_TYPEOF_ACC_INT32E_T == ACC_TYPEOF_INT) && (ACC_SIZEOF_INT != 4)
|
||||||
|
# undef ACC_CFG_PREFER_TYPEOF_ACC_INT32E_T
|
||||||
|
#endif
|
||||||
|
#if (ACC_SIZEOF_LONG == 4) && !(ACC_CFG_PREFER_TYPEOF_ACC_INT32E_T == ACC_TYPEOF_INT)
|
||||||
# define acc_int32e_t long int
|
# define acc_int32e_t long int
|
||||||
# define acc_uint32e_t unsigned long int
|
# define acc_uint32e_t unsigned long int
|
||||||
# define ACC_TYPEOF_ACC_INT32E_T ACC_TYPEOF_LONG
|
# define ACC_TYPEOF_ACC_INT32E_T ACC_TYPEOF_LONG
|
||||||
@@ -4174,19 +4195,25 @@ void __ACC_UA_SET_LE32(__acc_ua_volatile void* pp, unsigned long v) {
|
|||||||
#endif
|
#endif
|
||||||
#if !defined(acc_int64e_t)
|
#if !defined(acc_int64e_t)
|
||||||
#if (ACC_SIZEOF___INT64 == 8)
|
#if (ACC_SIZEOF___INT64 == 8)
|
||||||
# if (ACC_CC_BORLANDC) && !(ACC_CFG_TYPE_PREFER___INT64)
|
# if (ACC_CC_BORLANDC) && !defined(ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T)
|
||||||
# define ACC_CFG_TYPE_PREFER___INT64 1
|
# define ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T ACC_TYPEOF___INT64
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
#if (ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T == ACC_TYPEOF_LONG_LONG) && (ACC_SIZEOF_LONG_LONG != 8)
|
||||||
|
# undef ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T
|
||||||
|
#endif
|
||||||
|
#if (ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T == ACC_TYPEOF___INT64) && (ACC_SIZEOF___INT64 != 8)
|
||||||
|
# undef ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T
|
||||||
|
#endif
|
||||||
#if (ACC_SIZEOF_INT == 8) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
|
#if (ACC_SIZEOF_INT == 8) && (ACC_SIZEOF_INT < ACC_SIZEOF_LONG)
|
||||||
# define acc_int64e_t int
|
# define acc_int64e_t int
|
||||||
# define acc_uint64e_t unsigned int
|
# define acc_uint64e_t unsigned int
|
||||||
# define ACC_TYPEOF_ACC_INT64E_T ACC_TYPEOF_INT
|
# define ACC_TYPEOF_ACC_INT64E_T ACC_TYPEOF_INT
|
||||||
#elif (ACC_SIZEOF_LONG == 8)
|
#elif (ACC_SIZEOF_LONG == 8) && !(ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T == ACC_TYPEOF_LONG_LONG) && !(ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T == ACC_TYPEOF___INT64)
|
||||||
# define acc_int64e_t long int
|
# define acc_int64e_t long int
|
||||||
# define acc_uint64e_t unsigned long int
|
# define acc_uint64e_t unsigned long int
|
||||||
# define ACC_TYPEOF_ACC_INT64E_T ACC_TYPEOF_LONG
|
# define ACC_TYPEOF_ACC_INT64E_T ACC_TYPEOF_LONG
|
||||||
#elif (ACC_SIZEOF_LONG_LONG == 8) && !(ACC_CFG_TYPE_PREFER___INT64)
|
#elif (ACC_SIZEOF_LONG_LONG == 8) && !(ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T == ACC_TYPEOF___INT64)
|
||||||
# define acc_int64e_t acc_llong_t
|
# define acc_int64e_t acc_llong_t
|
||||||
# define acc_uint64e_t acc_ullong_t
|
# define acc_uint64e_t acc_ullong_t
|
||||||
# define ACC_TYPEOF_ACC_INT64E_T ACC_TYPEOF_LONG_LONG
|
# define ACC_TYPEOF_ACC_INT64E_T ACC_TYPEOF_LONG_LONG
|
||||||
@@ -5508,18 +5535,17 @@ ACCLIB_EXTERN(int, acc_spawnve) (int mode, const char* fn, const char* const * a
|
|||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
ACCCHK_ASSERT(1 == 1)
|
ACCCHK_ASSERT(1 == 1)
|
||||||
ACCCHK_ASSERT(__ACC_MASK_GEN(1u,1) == 1)
|
ACCCHK_ASSERT(__ACC_MASK_GEN(1u,1) == 1u)
|
||||||
ACCCHK_ASSERT(__ACC_MASK_GEN(1u,2) == 3)
|
ACCCHK_ASSERT(__ACC_MASK_GEN(1u,2) == 3u)
|
||||||
ACCCHK_ASSERT(__ACC_MASK_GEN(1u,3) == 7)
|
ACCCHK_ASSERT(__ACC_MASK_GEN(1u,3) == 7u)
|
||||||
ACCCHK_ASSERT(__ACC_MASK_GEN(1u,8) == 255)
|
ACCCHK_ASSERT(__ACC_MASK_GEN(1u,8) == 255u)
|
||||||
#if (ACC_SIZEOF_INT >= 2)
|
#if (ACC_SIZEOF_INT >= 2)
|
||||||
ACCCHK_ASSERT(__ACC_MASK_GEN(1,15) == 32767)
|
ACCCHK_ASSERT(__ACC_MASK_GEN(1,15) == 32767)
|
||||||
ACCCHK_ASSERT(__ACC_MASK_GEN(1u,16) == 0xffffU)
|
ACCCHK_ASSERT(__ACC_MASK_GEN(1u,16) == 0xffffU)
|
||||||
ACCCHK_ASSERT(__ACC_MASK_GEN(0u,16) == 0u)
|
ACCCHK_ASSERT(__ACC_MASK_GEN(0u,16) == 0u)
|
||||||
#else
|
#endif
|
||||||
ACCCHK_ASSERT(__ACC_MASK_GEN(1ul,16) == 0xffffUL)
|
ACCCHK_ASSERT(__ACC_MASK_GEN(1ul,16) == 0xffffUL)
|
||||||
ACCCHK_ASSERT(__ACC_MASK_GEN(0ul,16) == 0ul)
|
ACCCHK_ASSERT(__ACC_MASK_GEN(0ul,16) == 0ul)
|
||||||
#endif
|
|
||||||
#if (ACC_SIZEOF_INT >= 4)
|
#if (ACC_SIZEOF_INT >= 4)
|
||||||
ACCCHK_ASSERT(__ACC_MASK_GEN(1,31) == 2147483647)
|
ACCCHK_ASSERT(__ACC_MASK_GEN(1,31) == 2147483647)
|
||||||
ACCCHK_ASSERT(__ACC_MASK_GEN(1u,32) == 0xffffffffU)
|
ACCCHK_ASSERT(__ACC_MASK_GEN(1u,32) == 0xffffffffU)
|
||||||
@@ -6080,7 +6106,7 @@ ACCLIB_PUBLIC(acc_uint64l_t, acc_ua_get_be64) (const acc_hvoid_p p)
|
|||||||
v1 = ACC_UA_GET_BE32(b + 0);
|
v1 = ACC_UA_GET_BE32(b + 0);
|
||||||
v0 = ACC_UA_GET_BE32(b + 4);
|
v0 = ACC_UA_GET_BE32(b + 4);
|
||||||
return ACC_ICONV(acc_uint64l_t, v0) | (ACC_ICONV(acc_uint64l_t, v1) << 32);
|
return ACC_ICONV(acc_uint64l_t, v0) | (ACC_ICONV(acc_uint64l_t, v1) << 32);
|
||||||
#elif (ACC_SIZEOF_LONG >= 8) || (ACC_SIZEOF_SIZE_T >= 8)
|
#elif (ACC_WORDSIZE >= 8)
|
||||||
const acc_hbyte_p b = ACC_CCAST(const acc_hbyte_p, p);
|
const acc_hbyte_p b = ACC_CCAST(const acc_hbyte_p, p);
|
||||||
return (ACC_ICONV(acc_uint64l_t, b[7])) | (ACC_ICONV(acc_uint64l_t, b[6]) << 8) | (ACC_ICONV(acc_uint64l_t, b[5]) << 16) | (ACC_ICONV(acc_uint64l_t, b[4]) << 24) | (ACC_ICONV(acc_uint64l_t, b[3]) << 32) | (ACC_ICONV(acc_uint64l_t, b[2]) << 40) | (ACC_ICONV(acc_uint64l_t, b[1]) << 48) | (ACC_ICONV(acc_uint64l_t, b[0]) << 56);
|
return (ACC_ICONV(acc_uint64l_t, b[7])) | (ACC_ICONV(acc_uint64l_t, b[6]) << 8) | (ACC_ICONV(acc_uint64l_t, b[5]) << 16) | (ACC_ICONV(acc_uint64l_t, b[4]) << 24) | (ACC_ICONV(acc_uint64l_t, b[3]) << 32) | (ACC_ICONV(acc_uint64l_t, b[2]) << 40) | (ACC_ICONV(acc_uint64l_t, b[1]) << 48) | (ACC_ICONV(acc_uint64l_t, b[0]) << 56);
|
||||||
#else
|
#else
|
||||||
@@ -6101,7 +6127,7 @@ ACCLIB_PUBLIC(void, acc_ua_set_be64) (acc_hvoid_p p, acc_uint64l_t v)
|
|||||||
ACC_UA_SET_BE32(b + 4, v);
|
ACC_UA_SET_BE32(b + 4, v);
|
||||||
v >>= 32;
|
v >>= 32;
|
||||||
ACC_UA_SET_BE32(b + 0, v);
|
ACC_UA_SET_BE32(b + 0, v);
|
||||||
#elif (ACC_SIZEOF_LONG >= 8) || (ACC_SIZEOF_SIZE_T >= 8)
|
#elif (ACC_WORDSIZE >= 8)
|
||||||
acc_hbyte_p b = ACC_PCAST(acc_hbyte_p, p);
|
acc_hbyte_p b = ACC_PCAST(acc_hbyte_p, p);
|
||||||
b[7] = ACC_ITRUNC(unsigned char, v); v >>= 8;
|
b[7] = ACC_ITRUNC(unsigned char, v); v >>= 8;
|
||||||
b[6] = ACC_ITRUNC(unsigned char, v); v >>= 8;
|
b[6] = ACC_ITRUNC(unsigned char, v); v >>= 8;
|
||||||
@@ -6139,7 +6165,7 @@ ACCLIB_PUBLIC(acc_uint64l_t, acc_ua_get_le64) (const acc_hvoid_p p)
|
|||||||
v0 = ACC_UA_GET_LE32(b + 0);
|
v0 = ACC_UA_GET_LE32(b + 0);
|
||||||
v1 = ACC_UA_GET_LE32(b + 4);
|
v1 = ACC_UA_GET_LE32(b + 4);
|
||||||
return ACC_ICONV(acc_uint64l_t, v0) | (ACC_ICONV(acc_uint64l_t, v1) << 32);
|
return ACC_ICONV(acc_uint64l_t, v0) | (ACC_ICONV(acc_uint64l_t, v1) << 32);
|
||||||
#elif (ACC_SIZEOF_LONG >= 8) || (ACC_SIZEOF_SIZE_T >= 8)
|
#elif (ACC_WORDSIZE >= 8)
|
||||||
const acc_hbyte_p b = ACC_CCAST(const acc_hbyte_p, p);
|
const acc_hbyte_p b = ACC_CCAST(const acc_hbyte_p, p);
|
||||||
return ACC_ICONV(acc_uint64l_t, b[0]) | (ACC_ICONV(acc_uint64l_t, b[1]) << 8) | (ACC_ICONV(acc_uint64l_t, b[2]) << 16) | (ACC_ICONV(acc_uint64l_t, b[3]) << 24) | (ACC_ICONV(acc_uint64l_t, b[4]) << 32) | (ACC_ICONV(acc_uint64l_t, b[5]) << 40) | (ACC_ICONV(acc_uint64l_t, b[6]) << 48) | (ACC_ICONV(acc_uint64l_t, b[7]) << 56);
|
return ACC_ICONV(acc_uint64l_t, b[0]) | (ACC_ICONV(acc_uint64l_t, b[1]) << 8) | (ACC_ICONV(acc_uint64l_t, b[2]) << 16) | (ACC_ICONV(acc_uint64l_t, b[3]) << 24) | (ACC_ICONV(acc_uint64l_t, b[4]) << 32) | (ACC_ICONV(acc_uint64l_t, b[5]) << 40) | (ACC_ICONV(acc_uint64l_t, b[6]) << 48) | (ACC_ICONV(acc_uint64l_t, b[7]) << 56);
|
||||||
#else
|
#else
|
||||||
@@ -6160,7 +6186,7 @@ ACCLIB_PUBLIC(void, acc_ua_set_le64) (acc_hvoid_p p, acc_uint64l_t v)
|
|||||||
ACC_UA_SET_LE32(b + 0, v);
|
ACC_UA_SET_LE32(b + 0, v);
|
||||||
v >>= 32;
|
v >>= 32;
|
||||||
ACC_UA_SET_LE32(b + 4, v);
|
ACC_UA_SET_LE32(b + 4, v);
|
||||||
#elif (ACC_SIZEOF_LONG >= 8) || (ACC_SIZEOF_SIZE_T >= 8)
|
#elif (ACC_WORDSIZE >= 8)
|
||||||
acc_hbyte_p b = ACC_PCAST(acc_hbyte_p, p);
|
acc_hbyte_p b = ACC_PCAST(acc_hbyte_p, p);
|
||||||
b[0] = ACC_ITRUNC(unsigned char, v); v >>= 8;
|
b[0] = ACC_ITRUNC(unsigned char, v); v >>= 8;
|
||||||
b[1] = ACC_ITRUNC(unsigned char, v); v >>= 8;
|
b[1] = ACC_ITRUNC(unsigned char, v); v >>= 8;
|
||||||
@@ -6888,7 +6914,7 @@ ACCLIB_PUBLIC(acc_hvoid_p, acc_halloc) (acc_hsize_t size)
|
|||||||
p = lmalloc(size);
|
p = lmalloc(size);
|
||||||
#else
|
#else
|
||||||
if (size < ACC_STATIC_CAST(size_t, -1))
|
if (size < ACC_STATIC_CAST(size_t, -1))
|
||||||
p = malloc((size_t) size);
|
p = malloc(ACC_STATIC_CAST(size_t, size));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-4
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
@@ -145,8 +145,6 @@ struct options_t {
|
|||||||
bool make_ptinterp; // make PT_INTERP [ignore current file!]
|
bool make_ptinterp; // make PT_INTERP [ignore current file!]
|
||||||
bool unmap_all_pages; // thus /proc/self/exe vanishes
|
bool unmap_all_pages; // thus /proc/self/exe vanishes
|
||||||
unsigned char osabi0; // replacement if 0==.e_ident[EI_OSABI]
|
unsigned char osabi0; // replacement if 0==.e_ident[EI_OSABI]
|
||||||
enum { SCRIPT_MAX = 32 };
|
|
||||||
const char *script_name;
|
|
||||||
bool preserve_build_id; // copy the build-id to the compressed binary
|
bool preserve_build_id; // copy the build-id to the compressed binary
|
||||||
} o_unix;
|
} o_unix;
|
||||||
struct {
|
struct {
|
||||||
|
|||||||
+3
-3
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
@@ -228,7 +228,7 @@ unsigned PackArmPe::getProcessImportParam(unsigned upxsection)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void PackArmPe::defineSymbols(unsigned ncsection, unsigned, unsigned,
|
void PackArmPe::defineSymbols(unsigned ncsection, unsigned, unsigned,
|
||||||
unsigned ic, Reloc &, unsigned s1addr)
|
unsigned ic, unsigned s1addr)
|
||||||
{
|
{
|
||||||
const unsigned onam = ncsection + soxrelocs + ih.imagebase;
|
const unsigned onam = ncsection + soxrelocs + ih.imagebase;
|
||||||
linker->defineSymbol("start_of_dll_names", onam);
|
linker->defineSymbol("start_of_dll_names", onam);
|
||||||
|
|||||||
+3
-3
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
@@ -53,7 +53,7 @@ public:
|
|||||||
unsigned ih_codebase);
|
unsigned ih_codebase);
|
||||||
virtual void defineSymbols(unsigned ncsection, unsigned upxsection,
|
virtual void defineSymbols(unsigned ncsection, unsigned upxsection,
|
||||||
unsigned sizeof_oh, unsigned isize_isplit,
|
unsigned sizeof_oh, unsigned isize_isplit,
|
||||||
Reloc &rel, unsigned s1addr);
|
unsigned s1addr);
|
||||||
virtual void addNewRelocations(Reloc &, unsigned upxsection);
|
virtual void addNewRelocations(Reloc &, unsigned upxsection);
|
||||||
virtual unsigned getProcessImportParam(unsigned upxsection);
|
virtual unsigned getProcessImportParam(unsigned upxsection);
|
||||||
virtual void setOhDataBase(const pe_section_t *osection);
|
virtual void setOhDataBase(const pe_section_t *osection);
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
-174
@@ -1,174 +0,0 @@
|
|||||||
/* p_elks.cpp --
|
|
||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
|
||||||
All Rights Reserved.
|
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
|
||||||
and/or modify them under the terms of the GNU General Public License as
|
|
||||||
published by the Free Software Foundation; either version 2 of
|
|
||||||
the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program; see the file COPYING.
|
|
||||||
If not, write to the Free Software Foundation, Inc.,
|
|
||||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
|
|
||||||
Markus F.X.J. Oberhumer Laszlo Molnar
|
|
||||||
<markus@oberhumer.com> <ezerotven+github@gmail.com>
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include "conf.h"
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
|
|
||||||
#include "file.h"
|
|
||||||
#include "filter.h"
|
|
||||||
#include "packer.h"
|
|
||||||
#include "p_vmlinz.h"
|
|
||||||
|
|
||||||
// FIXME
|
|
||||||
static const
|
|
||||||
#include "stub/l_vmlinz.h"
|
|
||||||
|
|
||||||
// from elks-0.0.83/Documentation/boot.txt
|
|
||||||
static const unsigned kernel_entry = 0x100000;
|
|
||||||
static const unsigned stack_during_uncompression = 0x90000;
|
|
||||||
static const unsigned zimage_offset = 0x1000;
|
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************
|
|
||||||
//
|
|
||||||
**************************************************************************/
|
|
||||||
|
|
||||||
const int *PackElks8086::getCompressionMethods(int method, int level) const
|
|
||||||
{
|
|
||||||
return Packer::getDefaultCompressionMethods_8(method, level);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
const int *PackElks8086::getFilters() const
|
|
||||||
{
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************
|
|
||||||
// common util routines
|
|
||||||
**************************************************************************/
|
|
||||||
|
|
||||||
int PackElks8086::decompressKernel()
|
|
||||||
{
|
|
||||||
// not used
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void PackElks8086::readKernel()
|
|
||||||
{
|
|
||||||
int klen = file_size - setup_size;
|
|
||||||
fi->seek(0, SEEK_SET);
|
|
||||||
|
|
||||||
setup_buf.alloc(setup_size);
|
|
||||||
fi->readx(setup_buf, setup_size);
|
|
||||||
|
|
||||||
ibuf.alloc(klen);
|
|
||||||
fi->readx(ibuf, klen);
|
|
||||||
|
|
||||||
obuf.allocForCompression(klen);
|
|
||||||
|
|
||||||
ph.u_len = klen;
|
|
||||||
ph.filter = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************
|
|
||||||
//
|
|
||||||
**************************************************************************/
|
|
||||||
|
|
||||||
void PackElks8086::buildLoader(const Filter *ft)
|
|
||||||
{
|
|
||||||
// prepare loader
|
|
||||||
initLoader(nrv_loader, sizeof(nrv_loader));
|
|
||||||
// FIXME
|
|
||||||
UNUSED(ft);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void PackElks8086::pack(OutputFile *fo)
|
|
||||||
{
|
|
||||||
readKernel();
|
|
||||||
|
|
||||||
// prepare filter
|
|
||||||
Filter ft(ph.level);
|
|
||||||
ft.buf_len = ph.u_len;
|
|
||||||
ft.addvalue = kernel_entry;
|
|
||||||
// compress
|
|
||||||
compressWithFilters(&ft, overlap_range, NULL_cconf);
|
|
||||||
|
|
||||||
const unsigned lsize = getLoaderSize();
|
|
||||||
MemBuffer loader(lsize);
|
|
||||||
memcpy(loader, getLoader(), lsize);
|
|
||||||
|
|
||||||
patchPackHeader(loader, lsize);
|
|
||||||
#if 0
|
|
||||||
// FIXME
|
|
||||||
defineFilterSymbols(&ft);
|
|
||||||
defineDecompressorSymbols();
|
|
||||||
//patch_le32(loader, lsize, "ESI1", zimage_offset + lsize);
|
|
||||||
//patch_le32(loader, lsize, "KEIP", kernel_entry);
|
|
||||||
//patch_le32(loader, lsize, "STAK", stack_during_uncompression);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
boot_sect_t * const bs = (boot_sect_t *) ((unsigned char *) setup_buf);
|
|
||||||
bs->sys_size = ALIGN_UP(lsize + ph.c_len, 16) / 16;
|
|
||||||
|
|
||||||
fo->write(setup_buf, setup_buf.getSize());
|
|
||||||
fo->write(loader, lsize);
|
|
||||||
fo->write(obuf, ph.c_len);
|
|
||||||
#if 0
|
|
||||||
printf("%-13s: setup : %8ld bytes\n", getName(), (long) setup_buf.getSize());
|
|
||||||
printf("%-13s: loader : %8ld bytes\n", getName(), (long) lsize);
|
|
||||||
printf("%-13s: compressed : %8ld bytes\n", getName(), (long) ph.c_len);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// finally check the compression ratio
|
|
||||||
if (!checkFinalCompressionRatio(fo))
|
|
||||||
throwNotCompressible();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************
|
|
||||||
// unpack
|
|
||||||
**************************************************************************/
|
|
||||||
|
|
||||||
int PackElks8086::canUnpack()
|
|
||||||
{
|
|
||||||
if (readFileHeader() != getFormat())
|
|
||||||
return false;
|
|
||||||
fi->seek(setup_size, SEEK_SET);
|
|
||||||
return readPackHeader(1024) ? 1 : -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void PackElks8086::unpack(OutputFile *)
|
|
||||||
{
|
|
||||||
// no uncompression support for this format yet
|
|
||||||
|
|
||||||
// FIXME: but we could write the uncompressed "Image" image
|
|
||||||
|
|
||||||
throwCantUnpack("build a new kernel instead :-)");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* if 0 */
|
|
||||||
|
|
||||||
/* vim:set ts=4 sw=4 et: */
|
|
||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+13
-13
@@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
Copyright (C) 2000-2016 John F. Reiser
|
Copyright (C) 2000-2017 John F. Reiser
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
@@ -516,7 +516,7 @@ void PackLinuxElf64::pack3(OutputFile *fo, Filter &ft)
|
|||||||
void
|
void
|
||||||
PackLinuxElf::addStubEntrySections(Filter const *)
|
PackLinuxElf::addStubEntrySections(Filter const *)
|
||||||
{
|
{
|
||||||
int all_pages = opt->o_unix.unmap_all_pages | is_big;
|
bool all_pages = opt->o_unix.unmap_all_pages | is_big;
|
||||||
addLoader("ELFMAINX", NULL);
|
addLoader("ELFMAINX", NULL);
|
||||||
if (hasLoaderSection("ELFMAINXu")) {
|
if (hasLoaderSection("ELFMAINXu")) {
|
||||||
// brk() trouble if static
|
// brk() trouble if static
|
||||||
@@ -3373,7 +3373,7 @@ void PackLinuxElf64::unpack(OutputFile *fo)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
bool const is_shlib = 0; // XXX: THIS IS BROKEN; see 32-bit ::unpack
|
bool const is_shlib = 0; // XXX: THIS IS BROKEN; see 32-bit ::unpack
|
||||||
if (is_shlib
|
if __acc_cte(is_shlib
|
||||||
|| ((unsigned)(get_te64(&ehdri.e_entry) - load_va) + up4(lsize) +
|
|| ((unsigned)(get_te64(&ehdri.e_entry) - load_va) + up4(lsize) +
|
||||||
ph.getPackHeaderSize() + sizeof(overlay_offset))
|
ph.getPackHeaderSize() + sizeof(overlay_offset))
|
||||||
< up4(file_size)) {
|
< up4(file_size)) {
|
||||||
@@ -3582,7 +3582,7 @@ Linker* PackLinuxElf32armBe::newLinker() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
unsigned
|
unsigned
|
||||||
PackLinuxElf32::elf_get_offset_from_address(unsigned const addr) const
|
PackLinuxElf32::elf_get_offset_from_address(unsigned addr) const
|
||||||
{
|
{
|
||||||
Elf32_Phdr const *phdr = phdri;
|
Elf32_Phdr const *phdr = phdri;
|
||||||
int j = e_phnum;
|
int j = e_phnum;
|
||||||
@@ -3596,7 +3596,7 @@ PackLinuxElf32::elf_get_offset_from_address(unsigned const addr) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
Elf32_Dyn const *
|
Elf32_Dyn const *
|
||||||
PackLinuxElf32::elf_has_dynamic(unsigned int const key) const
|
PackLinuxElf32::elf_has_dynamic(unsigned int key) const
|
||||||
{
|
{
|
||||||
Elf32_Dyn const *dynp= dynseg;
|
Elf32_Dyn const *dynp= dynseg;
|
||||||
if (dynp)
|
if (dynp)
|
||||||
@@ -3607,7 +3607,7 @@ PackLinuxElf32::elf_has_dynamic(unsigned int const key) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
void const *
|
void const *
|
||||||
PackLinuxElf32::elf_find_dynamic(unsigned int const key) const
|
PackLinuxElf32::elf_find_dynamic(unsigned int key) const
|
||||||
{
|
{
|
||||||
Elf32_Dyn const *dynp= dynseg;
|
Elf32_Dyn const *dynp= dynseg;
|
||||||
if (dynp)
|
if (dynp)
|
||||||
@@ -3622,7 +3622,7 @@ PackLinuxElf32::elf_find_dynamic(unsigned int const key) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
upx_uint64_t
|
upx_uint64_t
|
||||||
PackLinuxElf32::elf_unsigned_dynamic(unsigned int const key) const
|
PackLinuxElf32::elf_unsigned_dynamic(unsigned int key) const
|
||||||
{
|
{
|
||||||
Elf32_Dyn const *dynp= dynseg;
|
Elf32_Dyn const *dynp= dynseg;
|
||||||
if (dynp)
|
if (dynp)
|
||||||
@@ -3633,7 +3633,7 @@ PackLinuxElf32::elf_unsigned_dynamic(unsigned int const key) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
upx_uint64_t
|
upx_uint64_t
|
||||||
PackLinuxElf64::elf_get_offset_from_address(upx_uint64_t const addr) const
|
PackLinuxElf64::elf_get_offset_from_address(upx_uint64_t addr) const
|
||||||
{
|
{
|
||||||
Elf64_Phdr const *phdr = phdri;
|
Elf64_Phdr const *phdr = phdri;
|
||||||
int j = e_phnum;
|
int j = e_phnum;
|
||||||
@@ -3647,7 +3647,7 @@ PackLinuxElf64::elf_get_offset_from_address(upx_uint64_t const addr) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
Elf64_Dyn const *
|
Elf64_Dyn const *
|
||||||
PackLinuxElf64::elf_has_dynamic(unsigned int const key) const
|
PackLinuxElf64::elf_has_dynamic(unsigned int key) const
|
||||||
{
|
{
|
||||||
Elf64_Dyn const *dynp= dynseg;
|
Elf64_Dyn const *dynp= dynseg;
|
||||||
if (dynp)
|
if (dynp)
|
||||||
@@ -3658,7 +3658,7 @@ PackLinuxElf64::elf_has_dynamic(unsigned int const key) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
void const *
|
void const *
|
||||||
PackLinuxElf64::elf_find_dynamic(unsigned int const key) const
|
PackLinuxElf64::elf_find_dynamic(unsigned int key) const
|
||||||
{
|
{
|
||||||
Elf64_Dyn const *dynp= dynseg;
|
Elf64_Dyn const *dynp= dynseg;
|
||||||
if (dynp)
|
if (dynp)
|
||||||
@@ -3673,7 +3673,7 @@ PackLinuxElf64::elf_find_dynamic(unsigned int const key) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
upx_uint64_t
|
upx_uint64_t
|
||||||
PackLinuxElf64::elf_unsigned_dynamic(unsigned int const key) const
|
PackLinuxElf64::elf_unsigned_dynamic(unsigned int key) const
|
||||||
{
|
{
|
||||||
Elf64_Dyn const *dynp= dynseg;
|
Elf64_Dyn const *dynp= dynseg;
|
||||||
if (dynp)
|
if (dynp)
|
||||||
|
|||||||
+6
-6
@@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
Copyright (C) 2000-2016 John F. Reiser
|
Copyright (C) 2000-2017 John F. Reiser
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
@@ -81,7 +81,7 @@ protected:
|
|||||||
unsigned sz_pack2a; // after pack2() of all PT_LOAD
|
unsigned sz_pack2a; // after pack2() of all PT_LOAD
|
||||||
unsigned lg2_page; // log2(PAGE_SIZE)
|
unsigned lg2_page; // log2(PAGE_SIZE)
|
||||||
unsigned page_size; // 1u<<lg2_page
|
unsigned page_size; // 1u<<lg2_page
|
||||||
unsigned is_big; // stub style: must use area above the brk
|
bool is_big; // stub style: must use area above the brk
|
||||||
unsigned xct_off; // shared library: file offset of SHT_EXECINSTR
|
unsigned xct_off; // shared library: file offset of SHT_EXECINSTR
|
||||||
unsigned hatch_off; // file offset of escape hatch
|
unsigned hatch_off; // file offset of escape hatch
|
||||||
upx_uint64_t load_va; // PT_LOAD[0].p_vaddr
|
upx_uint64_t load_va; // PT_LOAD[0].p_vaddr
|
||||||
@@ -147,7 +147,7 @@ protected:
|
|||||||
Elf32_Shdr const *elf_find_section_type(unsigned) const;
|
Elf32_Shdr const *elf_find_section_type(unsigned) const;
|
||||||
void const *elf_find_dynamic(unsigned) const;
|
void const *elf_find_dynamic(unsigned) const;
|
||||||
Elf32_Dyn const *elf_has_dynamic(unsigned) const;
|
Elf32_Dyn const *elf_has_dynamic(unsigned) const;
|
||||||
upx_uint64_t elf_unsigned_dynamic(unsigned) const;
|
virtual upx_uint64_t elf_unsigned_dynamic(unsigned) const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
Elf32_Ehdr ehdri; // from input file
|
Elf32_Ehdr ehdri; // from input file
|
||||||
@@ -264,7 +264,7 @@ protected:
|
|||||||
Elf64_Shdr const *elf_find_section_type(unsigned) const;
|
Elf64_Shdr const *elf_find_section_type(unsigned) const;
|
||||||
void const *elf_find_dynamic(unsigned) const;
|
void const *elf_find_dynamic(unsigned) const;
|
||||||
Elf64_Dyn const *elf_has_dynamic(unsigned) const;
|
Elf64_Dyn const *elf_has_dynamic(unsigned) const;
|
||||||
upx_uint64_t elf_unsigned_dynamic(unsigned) const;
|
virtual upx_uint64_t elf_unsigned_dynamic(unsigned) const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
Elf64_Ehdr ehdri; // from input file
|
Elf64_Ehdr ehdri; // from input file
|
||||||
|
|||||||
+3
-3
@@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
Copyright (C) 2001-2016 John F. Reiser
|
Copyright (C) 2001-2017 John F. Reiser
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+3
-3
@@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
Copyright (C) 2000-2016 John F. Reiser
|
Copyright (C) 2000-2017 John F. Reiser
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+3
-3
@@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
Copyright (C) 2000-2016 John F. Reiser
|
Copyright (C) 2000-2017 John F. Reiser
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+3
-3
@@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
Copyright (C) 2000-2016 John F. Reiser
|
Copyright (C) 2000-2017 John F. Reiser
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+3
-3
@@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
Copyright (C) 2000-2016 John F. Reiser
|
Copyright (C) 2000-2017 John F. Reiser
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+8
-8
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 2004-2016 John Reiser
|
Copyright (C) 2004-2017 John Reiser
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
@@ -563,12 +563,11 @@ PackMachBase<T>::compare_segment_command(void const *const aa, void const *const
|
|||||||
template <class T>
|
template <class T>
|
||||||
void PackMachBase<T>::pack4(OutputFile *fo, Filter &ft) // append PackHeader
|
void PackMachBase<T>::pack4(OutputFile *fo, Filter &ft) // append PackHeader
|
||||||
{
|
{
|
||||||
Mach_main_command cmdMAIN;
|
|
||||||
// offset of p_info in compressed file
|
// offset of p_info in compressed file
|
||||||
overlay_offset = sizeof(mhdro) + sizeof(segZERO)
|
overlay_offset = sizeof(mhdro) + sizeof(segZERO)
|
||||||
+ sizeof(segXHDR) + sizeof(secXHDR)
|
+ sizeof(segXHDR) + sizeof(secXHDR)
|
||||||
+ sizeof(segTEXT) + sizeof(secTEXT)
|
+ sizeof(segTEXT) + sizeof(secTEXT)
|
||||||
+ sizeof(cmdUUID) + sizeof(cmdSRCVER) + sizeof(cmdVERMIN) + sizeof(cmdMAIN)
|
+ sizeof(cmdUUID) + sizeof(cmdSRCVER) + sizeof(cmdVERMIN) + sizeof(Mach_main_command)
|
||||||
+ sizeof(Mach_dyld_info_only_command) + sizeof(Mach_dysymtab_command)
|
+ sizeof(Mach_dyld_info_only_command) + sizeof(Mach_dysymtab_command)
|
||||||
+ sizeof(Mach_load_dylinker_command) + sizeof(Mach_load_dylib_command)
|
+ sizeof(Mach_load_dylinker_command) + sizeof(Mach_load_dylib_command)
|
||||||
+ sizeof(Mach_function_starts_command) + sizeof(Mach_data_in_code_command)
|
+ sizeof(Mach_function_starts_command) + sizeof(Mach_data_in_code_command)
|
||||||
@@ -1070,8 +1069,8 @@ void PackMachBase<T>::pack3(OutputFile *fo, Filter &ft) // append loader
|
|||||||
len += sizeof(disp);
|
len += sizeof(disp);
|
||||||
|
|
||||||
char page[~PAGE_MASK]; memset(page, 0, sizeof(page));
|
char page[~PAGE_MASK]; memset(page, 0, sizeof(page));
|
||||||
fo->write(page, ~PAGE_MASK & -len);
|
fo->write(page, ~PAGE_MASK & (0u - len));
|
||||||
len += ~PAGE_MASK & -len;
|
len += ~PAGE_MASK & (0u - len);
|
||||||
segLINK.fileoff = len;
|
segLINK.fileoff = len;
|
||||||
|
|
||||||
threado_setPC(len + segTEXT.vmaddr); /* entry address */
|
threado_setPC(len + segTEXT.vmaddr); /* entry address */
|
||||||
@@ -1366,7 +1365,8 @@ void PackMachBase<T>::pack1(OutputFile *const fo, Filter &/*ft*/) // generate e
|
|||||||
mhdro = mhdri;
|
mhdro = mhdri;
|
||||||
if (my_filetype==Mach_header::MH_EXECUTE) {
|
if (my_filetype==Mach_header::MH_EXECUTE) {
|
||||||
memcpy(&mhdro, stub_main, sizeof(mhdro));
|
memcpy(&mhdro, stub_main, sizeof(mhdro));
|
||||||
mhdro.flags &= ~Mach_header::MH_PIE; // we require fixed address
|
COMPILE_TIME_ASSERT(sizeof(mhdro.flags) == sizeof(unsigned))
|
||||||
|
mhdro.flags &= ~ (unsigned) Mach_header::MH_PIE; // we require fixed address
|
||||||
mhdro.flags |= Mach_header::MH_BINDATLOAD; // DT_BIND_NOW
|
mhdro.flags |= Mach_header::MH_BINDATLOAD; // DT_BIND_NOW
|
||||||
}
|
}
|
||||||
unsigned pos = sizeof(mhdro);
|
unsigned pos = sizeof(mhdro);
|
||||||
@@ -1377,7 +1377,7 @@ void PackMachBase<T>::pack1(OutputFile *const fo, Filter &/*ft*/) // generate e
|
|||||||
segZERO.cmdsize = sizeof(segZERO);
|
segZERO.cmdsize = sizeof(segZERO);
|
||||||
strncpy((char *)segZERO.segname, "__PAGEZERO", sizeof(segZERO.segname));
|
strncpy((char *)segZERO.segname, "__PAGEZERO", sizeof(segZERO.segname));
|
||||||
segZERO.vmsize = PAGE_SIZE;
|
segZERO.vmsize = PAGE_SIZE;
|
||||||
if (sizeof(segZERO.vmsize) == 8
|
if __acc_cte(sizeof(segZERO.vmsize) == 8
|
||||||
&& mhdro.filetype == Mach_header::MH_EXECUTE
|
&& mhdro.filetype == Mach_header::MH_EXECUTE
|
||||||
&& mhdro.cputype == Mach_header::CPU_TYPE_X86_64) {
|
&& mhdro.cputype == Mach_header::CPU_TYPE_X86_64) {
|
||||||
segZERO.vmsize <<= 20; // (1ul<<32)
|
segZERO.vmsize <<= 20; // (1ul<<32)
|
||||||
@@ -1716,7 +1716,7 @@ int PackMachBase<T>::canUnpack()
|
|||||||
// Emulate the code
|
// Emulate the code
|
||||||
if (0xe8==b[0] && disp < bufsize
|
if (0xe8==b[0] && disp < bufsize
|
||||||
&& 0x5d==b[5+disp] && 0xe8==b[6+disp]) {
|
&& 0x5d==b[5+disp] && 0xe8==b[6+disp]) {
|
||||||
unsigned disp2 = - *(TE32 const *)&b[7+disp];
|
unsigned disp2 = 0u - *(TE32 const *)&b[7+disp];
|
||||||
if (disp2 < (12+disp) && 0x5b==b[11+disp-disp2]) {
|
if (disp2 < (12+disp) && 0x5b==b[11+disp-disp2]) {
|
||||||
struct b_info const *bptr = (struct b_info const *)&b[11+disp];
|
struct b_info const *bptr = (struct b_info const *)&b[11+disp];
|
||||||
// This is the folded stub.
|
// This is the folded stub.
|
||||||
|
|||||||
+7
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
@@ -32,10 +32,15 @@
|
|||||||
|
|
||||||
__packed_struct(Mach_fat_header)
|
__packed_struct(Mach_fat_header)
|
||||||
BE32 magic;
|
BE32 magic;
|
||||||
|
# if 0
|
||||||
enum { // note conflict with java bytecode PackLinuxI386
|
enum { // note conflict with java bytecode PackLinuxI386
|
||||||
FAT_MAGIC = 0xcafebabe,
|
FAT_MAGIC = 0xcafebabe,
|
||||||
FAT_MAGIC_SWAB = 0xbebafeca
|
FAT_MAGIC_SWAB = 0xbebafeca
|
||||||
};
|
};
|
||||||
|
# else
|
||||||
|
static const unsigned FAT_MAGIC = 0xcafebabe;
|
||||||
|
static const unsigned FAT_MAGIC_SWAB = 0xbebafeca;
|
||||||
|
# endif
|
||||||
BE32 nfat_arch; // Number of Mach_fat_arch which follow.
|
BE32 nfat_arch; // Number of Mach_fat_arch which follow.
|
||||||
__packed_struct_end()
|
__packed_struct_end()
|
||||||
|
|
||||||
|
|||||||
+7
-2
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 2007-2016 John F. Reiser
|
Copyright (C) 2007-2017 John F. Reiser
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
@@ -35,9 +35,13 @@
|
|||||||
|
|
||||||
#ifdef WANT_MACH_HEADER_ENUM /*{*/
|
#ifdef WANT_MACH_HEADER_ENUM /*{*/
|
||||||
#undef WANT_MACH_HEADER_ENUM
|
#undef WANT_MACH_HEADER_ENUM
|
||||||
|
# if 0
|
||||||
enum { // magic
|
enum { // magic
|
||||||
MH_MAGIC = 0xfeedface
|
MH_MAGIC = 0xfeedface
|
||||||
};
|
};
|
||||||
|
# else
|
||||||
|
static const unsigned MH_MAGIC = 0xfeedface;
|
||||||
|
# endif
|
||||||
enum { // cputype
|
enum { // cputype
|
||||||
CPU_TYPE_I386 = 7,
|
CPU_TYPE_I386 = 7,
|
||||||
CPU_TYPE_X86_64 = 0x01000007,
|
CPU_TYPE_X86_64 = 0x01000007,
|
||||||
@@ -123,8 +127,9 @@
|
|||||||
S_16BYTE_LITERALS,
|
S_16BYTE_LITERALS,
|
||||||
S_DTRACE_DOF
|
S_DTRACE_DOF
|
||||||
};
|
};
|
||||||
|
static const unsigned S_ATTR_PURE_INSTRUCTIONS = 0x80000000;
|
||||||
enum { // section flags (high 24 bits)
|
enum { // section flags (high 24 bits)
|
||||||
S_ATTR_PURE_INSTRUCTIONS = 0x80000000,
|
//S_ATTR_PURE_INSTRUCTIONS = 0x80000000,
|
||||||
S_ATTR_NO_TOC = 0x40000000,
|
S_ATTR_NO_TOC = 0x40000000,
|
||||||
S_ATTR_STRIP_STATIC_SYMS = 0x20000000,
|
S_ATTR_STRIP_STATIC_SYMS = 0x20000000,
|
||||||
S_ATTR_NO_DEAD_STRIP = 0x10000000,
|
S_ATTR_NO_DEAD_STRIP = 0x10000000,
|
||||||
|
|||||||
+4
-4
@@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
Copyright (C) 2002-2016 Jens Medoch
|
Copyright (C) 2002-2017 Jens Medoch
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
@@ -709,7 +709,7 @@ void PackPs1::unpack(OutputFile *fo)
|
|||||||
{
|
{
|
||||||
// restore orig exec hdr
|
// restore orig exec hdr
|
||||||
memcpy(&oh, &ih, sizeof(ih));
|
memcpy(&oh, &ih, sizeof(ih));
|
||||||
memcpy(&oh.epc, &bh, SZ_IH_BKUP);
|
memcpy((void *) &oh.epc, &bh, SZ_IH_BKUP);
|
||||||
|
|
||||||
// check for removed sector alignment
|
// check for removed sector alignment
|
||||||
assert(oh.tx_len >= ph.u_len);
|
assert(oh.tx_len >= ph.u_len);
|
||||||
|
|||||||
+3
-3
@@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
Copyright (C) 2002-2016 Jens Medoch
|
Copyright (C) 2002-2017 Jens Medoch
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
|
|||||||
+2
-26
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
@@ -190,30 +190,6 @@ protected:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************
|
|
||||||
// solaris/sparc
|
|
||||||
**************************************************************************/
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
class PackSolarisSparc : public PackUnixBe32
|
|
||||||
{
|
|
||||||
typedef PackUnixBe32 super;
|
|
||||||
public:
|
|
||||||
PackSolarisSparc(InputFile *f) : super(f) { }
|
|
||||||
virtual int getFormat() const { return UPX_F_SOLARIS_SPARC; }
|
|
||||||
virtual const char *getName() const { return "solaris/sparc"; }
|
|
||||||
|
|
||||||
virtual bool canPack();
|
|
||||||
|
|
||||||
protected:
|
|
||||||
virtual upx_byte *getLoader() const;
|
|
||||||
virtual int getLoaderSize() const;
|
|
||||||
|
|
||||||
virtual void patchLoader();
|
|
||||||
};
|
|
||||||
#endif /* #if 0 */
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* already included */
|
#endif /* already included */
|
||||||
|
|
||||||
/* vim:set ts=4 sw=4 et: */
|
/* vim:set ts=4 sw=4 et: */
|
||||||
|
|||||||
+13
-13
@@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 2004-2016 John Reiser
|
Copyright (C) 2004-2017 John Reiser
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
@@ -957,8 +957,8 @@ static const
|
|||||||
#include "stub/powerpc-linux.kernel.vmlinux-head.h"
|
#include "stub/powerpc-linux.kernel.vmlinux-head.h"
|
||||||
|
|
||||||
unsigned PackVmlinuxI386::write_vmlinux_head(
|
unsigned PackVmlinuxI386::write_vmlinux_head(
|
||||||
OutputFile *const fo,
|
OutputFile *fo,
|
||||||
Shdr *const stxt
|
Shdr *stxt
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
// COMPRESSED_LENGTH
|
// COMPRESSED_LENGTH
|
||||||
@@ -972,8 +972,8 @@ unsigned PackVmlinuxI386::write_vmlinux_head(
|
|||||||
}
|
}
|
||||||
|
|
||||||
unsigned PackVmlinuxAMD64::write_vmlinux_head(
|
unsigned PackVmlinuxAMD64::write_vmlinux_head(
|
||||||
OutputFile *const fo,
|
OutputFile *fo,
|
||||||
Shdr *const stxt
|
Shdr *stxt
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
// COMPRESSED_LENGTH
|
// COMPRESSED_LENGTH
|
||||||
@@ -1038,8 +1038,8 @@ void PackVmlinuxAMD64::defineDecompressorSymbols()
|
|||||||
}
|
}
|
||||||
|
|
||||||
unsigned PackVmlinuxARMEL::write_vmlinux_head(
|
unsigned PackVmlinuxARMEL::write_vmlinux_head(
|
||||||
OutputFile *const fo,
|
OutputFile *fo,
|
||||||
Shdr *const stxt
|
Shdr *stxt
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
// First word from vmlinux-head.S
|
// First word from vmlinux-head.S
|
||||||
@@ -1060,8 +1060,8 @@ unsigned PackVmlinuxARMEL::write_vmlinux_head(
|
|||||||
}
|
}
|
||||||
|
|
||||||
unsigned PackVmlinuxARMEB::write_vmlinux_head(
|
unsigned PackVmlinuxARMEB::write_vmlinux_head(
|
||||||
OutputFile *const fo,
|
OutputFile *fo,
|
||||||
Shdr *const stxt
|
Shdr *stxt
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
// First word from vmlinux-head.S
|
// First word from vmlinux-head.S
|
||||||
@@ -1082,8 +1082,8 @@ unsigned PackVmlinuxARMEB::write_vmlinux_head(
|
|||||||
}
|
}
|
||||||
|
|
||||||
unsigned PackVmlinuxPPC32::write_vmlinux_head(
|
unsigned PackVmlinuxPPC32::write_vmlinux_head(
|
||||||
OutputFile * /*const fo*/,
|
OutputFile * /*fo*/,
|
||||||
Shdr * /*const stxt*/
|
Shdr * /*stxt*/
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
+16
-16
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
@@ -87,8 +87,8 @@ protected:
|
|||||||
virtual int canUnpack(); // bool, except -1: format known, but not packed
|
virtual int canUnpack(); // bool, except -1: format known, but not packed
|
||||||
virtual void unpack(OutputFile *fo);
|
virtual void unpack(OutputFile *fo);
|
||||||
virtual unsigned write_vmlinux_head(
|
virtual unsigned write_vmlinux_head(
|
||||||
OutputFile *const fo,
|
OutputFile *fo,
|
||||||
Shdr *const stxt
|
Shdr *stxt
|
||||||
) = 0;
|
) = 0;
|
||||||
static int __acc_cdecl_qsort compare_Phdr(void const *aa, void const *bb);
|
static int __acc_cdecl_qsort compare_Phdr(void const *aa, void const *bb);
|
||||||
};
|
};
|
||||||
@@ -113,8 +113,8 @@ protected:
|
|||||||
virtual bool is_valid_e_entry(Addr);
|
virtual bool is_valid_e_entry(Addr);
|
||||||
virtual bool has_valid_vmlinux_head();
|
virtual bool has_valid_vmlinux_head();
|
||||||
virtual unsigned write_vmlinux_head(
|
virtual unsigned write_vmlinux_head(
|
||||||
OutputFile *const fo,
|
OutputFile *fo,
|
||||||
Shdr *const stxt
|
Shdr *stxt
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -138,8 +138,8 @@ protected:
|
|||||||
virtual bool is_valid_e_entry(Addr);
|
virtual bool is_valid_e_entry(Addr);
|
||||||
virtual bool has_valid_vmlinux_head();
|
virtual bool has_valid_vmlinux_head();
|
||||||
virtual unsigned write_vmlinux_head(
|
virtual unsigned write_vmlinux_head(
|
||||||
OutputFile *const fo,
|
OutputFile *fo,
|
||||||
Shdr *const stxt
|
Shdr *stxt
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -162,8 +162,8 @@ protected:
|
|||||||
virtual bool is_valid_e_entry(Addr);
|
virtual bool is_valid_e_entry(Addr);
|
||||||
virtual bool has_valid_vmlinux_head();
|
virtual bool has_valid_vmlinux_head();
|
||||||
virtual unsigned write_vmlinux_head(
|
virtual unsigned write_vmlinux_head(
|
||||||
OutputFile *const fo,
|
OutputFile *fo,
|
||||||
Shdr *const stxt
|
Shdr *stxt
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -186,8 +186,8 @@ protected:
|
|||||||
virtual bool is_valid_e_entry(Addr);
|
virtual bool is_valid_e_entry(Addr);
|
||||||
virtual bool has_valid_vmlinux_head();
|
virtual bool has_valid_vmlinux_head();
|
||||||
virtual unsigned write_vmlinux_head(
|
virtual unsigned write_vmlinux_head(
|
||||||
OutputFile *const fo,
|
OutputFile *fo,
|
||||||
Shdr *const stxt
|
Shdr *stxt
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -210,8 +210,8 @@ protected:
|
|||||||
virtual bool is_valid_e_entry(Addr);
|
virtual bool is_valid_e_entry(Addr);
|
||||||
virtual bool has_valid_vmlinux_head();
|
virtual bool has_valid_vmlinux_head();
|
||||||
virtual unsigned write_vmlinux_head(
|
virtual unsigned write_vmlinux_head(
|
||||||
OutputFile *const fo,
|
OutputFile *fo,
|
||||||
Shdr *const stxt
|
Shdr *stxt
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -235,8 +235,8 @@ protected:
|
|||||||
virtual bool is_valid_e_entry(Addr);
|
virtual bool is_valid_e_entry(Addr);
|
||||||
virtual bool has_valid_vmlinux_head();
|
virtual bool has_valid_vmlinux_head();
|
||||||
virtual unsigned write_vmlinux_head(
|
virtual unsigned write_vmlinux_head(
|
||||||
OutputFile *const fo,
|
OutputFile *fo,
|
||||||
Shdr *const stxt
|
Shdr *stxt
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
@@ -964,7 +964,7 @@ void PackVmlinuzARMEL::defineDecompressorSymbols()
|
|||||||
linker->defineSymbol("METHOD", ph.method);
|
linker->defineSymbol("METHOD", ph.method);
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned PackVmlinuzARMEL::write_vmlinuz_head(OutputFile *const fo)
|
unsigned PackVmlinuzARMEL::write_vmlinuz_head(OutputFile *fo)
|
||||||
{ // First word from vmlinuz-head.S
|
{ // First word from vmlinuz-head.S
|
||||||
fo->write(&stub_arm_v5a_linux_kernel_vmlinuz_head[0], 4);
|
fo->write(&stub_arm_v5a_linux_kernel_vmlinuz_head[0], 4);
|
||||||
|
|
||||||
|
|||||||
+3
-31
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
This file is part of the UPX executable compressor.
|
This file is part of the UPX executable compressor.
|
||||||
|
|
||||||
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
|
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||||
Copyright (C) 1996-2016 Laszlo Molnar
|
Copyright (C) 1996-2017 Laszlo Molnar
|
||||||
All Rights Reserved.
|
All Rights Reserved.
|
||||||
|
|
||||||
UPX and the UCL library are free software; you can redistribute them
|
UPX and the UCL library are free software; you can redistribute them
|
||||||
@@ -121,34 +121,6 @@ protected:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************
|
|
||||||
// elks/8086 (linux-8086 uncompressed kernel image)
|
|
||||||
**************************************************************************/
|
|
||||||
|
|
||||||
class PackElks8086 : public PackVmlinuzI386
|
|
||||||
{
|
|
||||||
typedef PackVmlinuzI386 super;
|
|
||||||
public:
|
|
||||||
PackElks8086(InputFile *f) : super(f) { }
|
|
||||||
virtual int getFormat() const { return UPX_F_ELKS_8086; }
|
|
||||||
virtual const char *getName() const { return "elks/i086"; }
|
|
||||||
virtual const char *getFullName(const options_t *) const { return "i086-elks ???"; }
|
|
||||||
virtual const int *getCompressionMethods(int method, int level) const;
|
|
||||||
virtual const int *getFilters() const;
|
|
||||||
|
|
||||||
virtual void pack(OutputFile *fo);
|
|
||||||
virtual void unpack(OutputFile *fo);
|
|
||||||
|
|
||||||
virtual int canUnpack();
|
|
||||||
|
|
||||||
protected:
|
|
||||||
virtual int decompressKernel();
|
|
||||||
virtual void readKernel();
|
|
||||||
|
|
||||||
virtual void buildLoader(const Filter *ft);
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
// vmlinuz/armel (gzip compressed Linux kernel image)
|
// vmlinuz/armel (gzip compressed Linux kernel image)
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
@@ -178,7 +150,7 @@ protected:
|
|||||||
virtual void readKernel();
|
virtual void readKernel();
|
||||||
|
|
||||||
virtual void buildLoader(const Filter *ft);
|
virtual void buildLoader(const Filter *ft);
|
||||||
virtual unsigned write_vmlinuz_head(OutputFile *const fo);
|
virtual unsigned write_vmlinuz_head(OutputFile *fo);
|
||||||
virtual void defineDecompressorSymbols();
|
virtual void defineDecompressorSymbols();
|
||||||
virtual Linker* newLinker() const;
|
virtual Linker* newLinker() const;
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user