Compare commits

..

36 Commits

Author SHA1 Message Date
Markus F.X.J. Oberhumer fdce705e55 Bump release date. 2017-01-29 12:07:00 +01:00
Markus F.X.J. Oberhumer 81268e7064 Update Travis. 2017-01-28 23:29:12 +01:00
Markus F.X.J. Oberhumer f502f41359 Update conf.h. 2017-01-28 22:39:42 +01:00
Markus F.X.J. Oberhumer 34c9cfb6b0 Don't use "long". 2017-01-28 22:39:42 +01:00
Markus F.X.J. Oberhumer 6da1790c46 New ACC version. 2017-01-28 22:39:42 +01:00
Markus F.X.J. Oberhumer d333c940da Update Travis. 2017-01-17 01:59:13 +01:00
Markus F.X.J. Oberhumer c940d2906f Mention win64/pe in help usage text. 2017-01-17 01:56:58 +01:00
Markus F.X.J. Oberhumer ac4b51ba85 Update Travis. 2017-01-15 23:25:39 +01:00
Markus F.X.J. Oberhumer ea7a1ad2c7 Bump version date. 2017-01-15 15:51:33 +01:00
Markus F.X.J. Oberhumer 45ddd6a68d Enable wildcard expansion on newer mingw versions. 2017-01-15 15:47:53 +01:00
Markus F.X.J. Oberhumer acd99364e0 Update Travis. 2017-01-15 11:10:59 +01:00
Markus F.X.J. Oberhumer 14710dea55 Replace some negative enum constants with "static const unsigned" vars. 2017-01-03 12:57:10 +01:00
Markus F.X.J. Oberhumer 5d3be8da1d Silence a MSVC warning. 2017-01-03 12:37:35 +01:00
Markus F.X.J. Oberhumer 3026821f9f Update testsuite checksums caused by version bump. 2017-01-03 12:16:51 +01:00
Markus F.X.J. Oberhumer fba51dabd0 Bump UPX_VERSION_DATE. 2017-01-03 12:06:17 +01:00
Markus F.X.J. Oberhumer c4da5e81fa Welcome 2017. 2017-01-03 12:02:07 +01:00
Markus F.X.J. Oberhumer bc80d81432 Silence a bogus scan-build warning. 2016-12-30 23:59:31 +01:00
László Molnár 67797efead fixed relocation handling regression in win32/pe (issue #38) 2016-12-30 23:18:32 +01:00
László Molnár c7cb036536 fixed data corruption in import handling (issue #32,#34) 2016-12-30 21:31:50 +01:00
Markus F.X.J. Oberhumer 0ccbc5f139 Silence some bogus coverity warnings. 2016-12-21 19:03:01 +01:00
Markus F.X.J. Oberhumer 2a6bbcaf8f Fix a p_w64pep.cpp issue detected by coverity. 2016-12-21 19:01:55 +01:00
Markus F.X.J. Oberhumer d46a8438ba Remove unused option "--script=". 2016-12-19 23:44:10 +01:00
Markus F.X.J. Oberhumer cc9d19da19 Remove unused PackLinuxI386sep. 2016-12-19 23:29:42 +01:00
Markus F.X.J. Oberhumer 6e6aa6fd6d Update doc/Makefile. 2016-12-19 23:23:59 +01:00
Markus F.X.J. Oberhumer 61652a2989 Remove unused PackSolarisSparc. 2016-12-19 23:23:25 +01:00
Markus F.X.J. Oberhumer edd7503607 Update executable format constants. 2016-12-19 23:18:38 +01:00
Markus F.X.J. Oberhumer c9d6dab401 Remove unused p_elks.cpp. 2016-12-19 23:14:08 +01:00
Markus F.X.J. Oberhumer d303038bcb Remove unused p_vxd.h. 2016-12-19 23:12:05 +01:00
Markus F.X.J. Oberhumer 0a0e7c3b7c Remove unused p_w16ne.cpp. 2016-12-19 23:11:00 +01:00
Markus F.X.J. Oberhumer 0b4ac35bc9 Tune some MSVC warnings. 2016-12-19 22:57:43 +01:00
László Molnár c51864ca39 fixed TLS callback handling for PE64 2016-12-18 23:34:27 +01:00
John Reiser a1cabd5a68 Avoid warning C4805: '|': unsafe mix of type 'bool' and type 'unsigned int' in operation
modified:   p_lx_elf.cpp
	modified:   p_lx_elf.h
2016-12-18 11:32:47 -08:00
John Reiser 9c1bc99d7a Avoid warning C4146: unary minus operator applied to unsigned type, result still unsigned
modified:   p_mach.cpp
2016-12-16 10:59:51 -08:00
Markus F.X.J. Oberhumer c05fedcb76 Update Travis. 2016-12-14 16:27:51 +01:00
Markus F.X.J. Oberhumer e11beeae4b Update testsuite checksums caused by version bump. 2016-12-11 18:31:01 +01:00
Markus F.X.J. Oberhumer 4749e0d71e Post-release version bump. 2016-12-11 17:50:03 +01:00
397 changed files with 1744 additions and 1733 deletions
+6 -1
View File
@@ -16,10 +16,14 @@ environment:
- { C: msvc-14.0-x64, CL_VERSION: 19.00, VS_VERSION: 2015 }
# - { C: gcc-4.9-m32, 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:
- 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
- git --version & bash --version
# - dir "c:\Program Files\Git\usr\bin"
@@ -96,5 +100,6 @@ test_script:
# now run the UPX testsuite using bash
- cd c:\projects\upx
- bash ./.github/travis_testsuite_1.sh
- bash ./.github/travis_deploy.sh
# vim:set ts=2 sw=2 et:
+1
View File
@@ -131,6 +131,7 @@ export EXTRA_CPPFLAGS EXTRA_CXXFLAGS EXTRA_LDFLAGS
[[ -z $upx_exeext ]] && upx_exeext=.out
$make exeext=$upx_exeext
pwd
ls -l upx${upx_exeext}
$SIZE upx${upx_exeext} || true
file upx${upx_exeext}
+174
View File
@@ -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
View File
@@ -19,10 +19,15 @@ unset CROSS C B T X
# just in case, unset variable for passing extra UPX options
export UPX=
# un-export some vars
declare +x UPX_AUTOMATIC_BUILDS_SSL_KEY UPX_AUTOMATIC_BUILDS_SSL_IV
# compatibility wrappers
if [[ $TRAVIS_OS_NAME == osx ]]; then
# use GNU coreutils ("brew install coreutils")
date() {
gdate "$@"
}
readlink() {
greadlink "$@"
}
@@ -31,7 +36,9 @@ sha256sum() {
}
fi
if [[ -n $APPVEYOR_JOB_ID ]]; then
# for some reason this is needed for bash on AppVeyor
openssl() {
/usr/bin/openssl "$@"
}
sort() {
/usr/bin/sort "$@"
}
@@ -43,54 +50,95 @@ CC=false CXX=false SCAN_BUILD=false
AR=ar SIZE=size
if [[ -n $APPVEYOR_JOB_ID ]]; then
BUILD_LOCAL_ZLIB=1
if [[ $BM_C =~ (^|\-)(clang|gcc)($|\-) ]]; then
export upx_EXTRA_LDFLAGS="-static-libgcc -static-libstdc++"
fi
upx_exeext=.exe
# dir c:\cygwin
case $BM_C in
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" ;;
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" ;;
msvc | msvc-*)
AR="link -lib"; CC="cl"; CXX="cl" ;; # standard system compiler
esac
fi # APPVEYOR_JOB_ID
if [[ -n $TRAVIS_JOB_ID ]]; then # TODO: should check for Ubuntu and not for Travis
if [[ -n $BM_CROSS ]]; then
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
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"
x=arm-linux-gnueabi; AR="$x-ar"; CC="$x-gcc"; CXX="$x-g++" ;;
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"
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)
export upx_EXTRA_LDFLAGS="-static-libgcc -static-libstdc++"
upx_exeext=.exe
[[ -z $upx_wine ]] && upx_wine="wine"
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)
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"
x=x86_64-w64-mingw32; AR="$x-ar"; CC="$x-gcc -m64"; CXX="$x-g++ -m64" ;;
esac
fi
fi # TRAVIS_JOB_ID
fi # BM_CROSS
if [[ "$CC" == "false" ]]; then # generic
if [[ -z $BM_CROSS ]]; then
case $BM_C in
clang | clang-m?? | clang-3.4-m?? | clang-[678][0-9][0-9]-m??)
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" ;;
gcc | gcc-m??)
gcc | gcc-m?? | gcc-mx32)
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" ;;
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" ;;
esac
fi
@@ -100,6 +148,7 @@ case $BM_C in
clang*-m64) CC="$CC -m64"; CXX="$CXX -m64" ;;
gcc*-m32) CC="$CC -m32"; CXX="$CXX -m32" ;;
gcc*-m64) CC="$CC -m64"; CXX="$CXX -m64" ;;
gcc*-mx32) CC="$CC -mx32"; CXX="$CXX -mx32" ;;
esac
if [[ $BM_C =~ (^|\-)(clang|gcc)($|\-) ]]; then
CC="$CC -std=gnu89"
@@ -136,7 +185,7 @@ if [[ -z $toptop_builddir ]]; then
unset d subdir dd
fi
[[ -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 $ucl_BUILDDIR ]] && ucl_BUILDDIR=$(readlink -mn -- "$toptop_bdir/ucl-1.03")
[[ -z $upx_testsuite_BUILDDIR ]] && upx_testsuite_BUILDDIR=$(readlink -mn -- "$toptop_bdir/upx-testsuite")
+71 -75
View File
@@ -31,7 +31,6 @@ mkbuilddirs $upx_testsuite_BUILDDIR
cd / && cd $upx_testsuite_BUILDDIR || exit 1
if [[ ! -d $upx_testsuite_SRCDIR/files/packed ]]; then exit 1; fi
# /***********************************************************************
# // support functions
# ************************************************************************/
@@ -105,7 +104,6 @@ testsuite_run_compress() {
fi
}
# /***********************************************************************
# // expected checksums
# //
@@ -152,86 +150,84 @@ c3f44b4d00a87384c03a6f9e7aec809c1addfe3e271244d38a474f296603088c *mipsel-linux.e
b8c35fa2956da17ca505956e9f5017bb5f3a746322647e24ccb8ff28059cafa4 *powerpc-linux.elf/upx-3.91
"
expected_sha256sums__t110_compress_ucl_nrv2b_3_no_filter="\
a1f0fd57e4323eb25abf1d000569d3c7b62ceb12fb59e645d4807742baf0cd1f *amd64-linux.elf/upx-3.91
6be5bd999387712f90fde45556c9487d02306593146c8d3cd4ced89568732729 *arm-wince.pe/upx-3.91.exe
9d0ccc7e39ef23845b858869bf9718c43de5fd0eee7c61edbd63565a55110032 *armeb-linux.elf/upx-3.91
03988f039a5372125bf90b6658516656a8582dd1c46423cb12faeb82870348bb *i386-dos32.djgpp2.coff/upx-3.91.exe
91a9d980788c2974448c83a84af245cf22dbbe01d33850849c8b0ebcec79aab4 *i386-linux.elf/upx-3.91
b9145c02bac9ce7f10bd65587ce35001d3e15a7a102d8f7cc51930b92f477ebf *i386-win32.pe/upx-3.91.exe
08baacfa5d7e9339cd67263f41983e7c6f773fe9fce862f5daad58a2ac57ce28 *m68k-atari.tos/upx-3.91.ttp
6b33a055b2c85dddd5fa6d846939d114ee24a342205f5a23aad31b8873041592 *mipsel-linux.elf/upx-3.91
3e97639d9b13132edd3cf5e17f18a5d3f158124b920cabe8c415b8df3e4a8d1d *powerpc-linux.elf/upx-3.91
52d0189f9ed16162332fbe359d723753ca1b7d7374a249d6b16144e363073384 *amd64-linux.elf/upx-3.91
0af0b3df9ca5b34ebc8ed06b3bf46807e585032961f053abfeefcb60bd63907e *arm-wince.pe/upx-3.91.exe
851ea686cc1d6ef7c63978829f0bfe40c761d00e9f07c3d4f9ce59201da4409c *armeb-linux.elf/upx-3.91
3345fda466927211ed3291ea1255fa09937fcfad974ffb1120deeefe6f655a9e *i386-dos32.djgpp2.coff/upx-3.91.exe
8631629945812b6766da0187390b4d26e830f39a79d80aacda196e678a4be10c *i386-linux.elf/upx-3.91
06794bdb9a8085ca5ef577648bf39402868a507f2a0bd02285c807929499aba4 *i386-win32.pe/upx-3.91.exe
6c9e164baa12c45ca8d55788b34e8fabdddb52374200444d42ff48c1d84103eb *m68k-atari.tos/upx-3.91.ttp
1f3ae2bde7c72e60d3c12fccf572c5aa5dbee566d1d28029e62a8b921c6d77bd *mipsel-linux.elf/upx-3.91
181345ff1dd1c35944ec79d1197ee223913617cdd148a576cd3b9b776b8e86c2 *powerpc-linux.elf/upx-3.91
"
expected_sha256sums__t120_compress_ucl_nrv2d_3_no_filter="\
1e870e9e12336eaa18289efa86275822025e15feeb9168b21f8c438f2560b84e *amd64-linux.elf/upx-3.91
23ef6083a6e678975305ceb96f78ce186973b4400d357ca643573b6dd6487512 *arm-wince.pe/upx-3.91.exe
5f1584a75584ef3421ba4aec8167422e78d33e2451ef9a925560d1112eacf88e *armeb-linux.elf/upx-3.91
8d2938aa4c2b6ee3c50a2fce1041592a766d48c26605b50129b8a14697cc9694 *i386-dos32.djgpp2.coff/upx-3.91.exe
40ecb345f3094446b5035e058b3d2351c42cc9f108333e3e4d51a64142d8950c *i386-linux.elf/upx-3.91
7f4931501baa222ce54b241417f143162865de790be48ecc75846115baa2ce2f *i386-win32.pe/upx-3.91.exe
5abbe27c76c6f12fb560e68dbf56dd0f39bb089428374c42be7585d09f7df1fd *m68k-atari.tos/upx-3.91.ttp
ac552f23195dfebd82558e0523eaa6ece695c711f298ed9a3cdbb571f1df4f1d *mipsel-linux.elf/upx-3.91
d30f7e75bcfab63aa620e0c677f738395ab7c8b26ba0871e94e052849660dccb *powerpc-linux.elf/upx-3.91
d90f1e94fb8a1d5c123e1c13b30db148870c36ff6f00fc5677bd9f05bae1fc02 *amd64-linux.elf/upx-3.91
e09a089e642f33502a35ab9a416142d3db4dbb67930366054e25c390678c3f7c *arm-wince.pe/upx-3.91.exe
b794cc520ab507887324fe04e1c36e1ed0b63ecdb29241213a3a3cf980e16cc2 *armeb-linux.elf/upx-3.91
ea5df377a14457fc4a4791e67859f77f8fe8b94ed81fd13666618fc690d70987 *i386-dos32.djgpp2.coff/upx-3.91.exe
5f0876049576446707270baa651eaa724891cccbee268e18450812d5be5e9990 *i386-linux.elf/upx-3.91
4a65a19b430d50b9f15786342e3de86feb3627af07743b50a9ebfedb10c59a08 *i386-win32.pe/upx-3.91.exe
d7514121a811a36112cb2f3e42c3284e03a7807e972778229c62c075656d796f *m68k-atari.tos/upx-3.91.ttp
0effcd336be6dcb092e37bafc9611c99c1d19c1c53a8ca6a26834d9f5f9eb56c *mipsel-linux.elf/upx-3.91
dfe218814633aa9ed47477bf021ac0bae0b491ebf9d4ff44194f3d7195e5a200 *powerpc-linux.elf/upx-3.91
"
expected_sha256sums__t130_compress_ucl_nrv2e_3_no_filter="\
bc67396d280c28532b2687fe694fb5dfaef60b1d1b05881027a2a97322545f7e *amd64-linux.elf/upx-3.91
8844ace5189f90a9bf696e5fa2323be9e715d90df4ba60805a2079cb94c218f1 *arm-wince.pe/upx-3.91.exe
ea42d52676d2698f29587e98a9e1536b96ebf523a7d8bc926f6c241a159b4116 *armeb-linux.elf/upx-3.91
27f1afd1e1fec37d4dcd43163b9ec60a6af3abeab21a4adf539b7faea848eb20 *i386-dos32.djgpp2.coff/upx-3.91.exe
5edf3dcfd0458b0f23c19e6c44b4c54a5457bc34c3bf045b37678d4f96301e00 *i386-linux.elf/upx-3.91
e440de3826a193a81700dd6238eab5f903826e08af120a25bc963ffb6d365087 *i386-win32.pe/upx-3.91.exe
510e2cd126bb8129b9076eb61e1ad3308d9af109cd42dff7252bf43e1e3552ea *m68k-atari.tos/upx-3.91.ttp
b61aa58e493b3961646e5c0bcb7f19f74b439fe8f5c934db25b00f97f51a05d0 *mipsel-linux.elf/upx-3.91
18c6b0ec20590dfbe4851ad837e2bb9bc99c6e4e1ac97b49dff2fb632e0e9d4c *powerpc-linux.elf/upx-3.91
00b67a1cc766b13a6167e0f672cf46b62f0879b6318ed9f548f670b011b3f185 *amd64-linux.elf/upx-3.91
a377c263a3d981af1ec278a418fcdd09298d76cece0e7c7c9af63f20ccba769d *arm-wince.pe/upx-3.91.exe
dbf2fa9b4fa5319c52b25d34aa6f57577b2a63e7241b6d4600915de0f3400190 *armeb-linux.elf/upx-3.91
4d925cff00b8959324c0838284f4619831b8080136cef05131906149fdec5bbc *i386-dos32.djgpp2.coff/upx-3.91.exe
b114b257ff5de11b75eb4489d2cb2bd3be6cf9cf141e36f02b0ab781d0f9a3ff *i386-linux.elf/upx-3.91
ce874eafe18c0f09928992a3aa1f5fe9f0be9d89b87b39ecbcf1c460e4b8e0f7 *i386-win32.pe/upx-3.91.exe
c60b3faccc59ff37c2e1e3c908d4fe01a2532e7ac1abd4c4ec4ecee974a0e8bd *m68k-atari.tos/upx-3.91.ttp
2b74a6a831c7f9f4df22c65f8a5748a2b6cf6fd68232b0d250737938de27efc6 *mipsel-linux.elf/upx-3.91
47ddad5acc39e21d66e471c8af8d9b52e8dd8d7ad89631f771c2ea4d218f441e *powerpc-linux.elf/upx-3.91
"
expected_sha256sums__t140_compress_lzma_2_no_filter="\
07e31b504273082dc475f217d8418f76ca409f018d42073a387f8a886dbaa83e *amd64-linux.elf/upx-3.91
0eceefcc32ed25b2f1296cfa853935124aa1b7785b8a177d6e8c5804c24ca319 *arm-wince.pe/upx-3.91.exe
3e7446d8ac6d9b442d6c8e6a3c45aec97f54aa8e90bdc554dd39976495bfa36a *armeb-linux.elf/upx-3.91
1ecd559c89d3995fa0e7ecfa8e60b7746f804fc74ddce87d2c6cbeac8e372a39 *i386-dos32.djgpp2.coff/upx-3.91.exe
8a9bde7a9b4a8f6c4efc4a28afe2b3cabe6c0b820dbc38c74c6abae73093b784 *i386-linux.elf/upx-3.91
02d3b09168728cace52f29c5ee5a455c71d2777ccf12f6767cf92a709ceb6640 *i386-win32.pe/upx-3.91.exe
35333e53bc2f8a4a8e346f4fba0d366f024bd63d0b8bb083967193ae6466b6ff *m68k-atari.tos/upx-3.91.ttp
20526efe085aee06bfde1952f90e9d0e1524e0cb56d582caa720934f55562b78 *mipsel-linux.elf/upx-3.91
65990ec2ab6bceb2d5444918af797be0bdb0931abce8e7db0d2e774614faa64b *powerpc-linux.elf/upx-3.91
f67ce2b6d4d36367a249faeb802df51dbc56019754c0f4606b5a6f97b72a54d1 *amd64-linux.elf/upx-3.91
57be6aa4f1e5ee6ef6f5eb8694b22eb07c3ea5cc9b9ebfde75db4c9a04a71a5a *arm-wince.pe/upx-3.91.exe
ef18c1ae56a037d15f0494f4b835c1336a43745edba87c783f62745488008783 *armeb-linux.elf/upx-3.91
54a6158bc6bd8cc28d3abc53cc5cf9b63c3c63ae884e96fb6d6ea974c7426206 *i386-dos32.djgpp2.coff/upx-3.91.exe
801d1761289f94d7f51effb88e100832d14ae96398844084b9d10852886c4731 *i386-linux.elf/upx-3.91
f828953a66d7b3394dd2514b5972680a0cc651bd198b7607f6d3f6f6cc390a0e *i386-win32.pe/upx-3.91.exe
587b5f1f529da60f5820b8f811743aaad59e3fa9407930de1ab433863f7262a4 *m68k-atari.tos/upx-3.91.ttp
84c811f5d27bac393610bfad4180258494c43d691c13eb57394ab95d4736e621 *mipsel-linux.elf/upx-3.91
ed83830ab5e1753a742cf4981401fd8d5bdaabcfdeb385a2e8087aeb46f93512 *powerpc-linux.elf/upx-3.91
"
expected_sha256sums__t150_compress_ucl_2_all_filters="\
e773ed4ac55d5b967e4c1654f2b540899a63f7722a44d7056d424a6292274aa4 *amd64-linux.elf/upx-3.91
0bf874c45ebb90b062cd986fe10cfbd01cdc6a50e3e0b5dda035eb55ded492ff *arm-wince.pe/upx-3.91.exe
db894f24777334abb9bf8e34661d057e25c2889b46290cf83db7310c4cdd86fa *armeb-linux.elf/upx-3.91
33bde57c3f7ed8809bec0658fe6c48d047bdec97476643f2e8e2970ab0c4eb5f *i386-dos32.djgpp2.coff/upx-3.91.exe
7f4ad752cab7db426356eb5068e37d06bade2422b6012069814dcfadae7e2cca *i386-linux.elf/upx-3.91
b00756ba6b73b937ac3b2c1222267dc44953ac69337a7ac582ba2e7a471e83a6 *i386-win32.pe/upx-3.91.exe
7b09fa5b2f8d85673f3a52c3b478a8dd129ed23681de4028625b33f5f6890942 *m68k-atari.tos/upx-3.91.ttp
707b7f32b8b0c1a4e5c26e370b93ae6eb60ab78f7d6163b4e853eb94e69f5d14 *mipsel-linux.elf/upx-3.91
4403a20c1951c9d42b51a175b55a4a9ee6901d626b8e3ed1e7e55a51ae098272 *powerpc-linux.elf/upx-3.91
2849771c8799d7a446b54ad9914d679e315a9f0d9440f9728c6d5ab6541ed494 *amd64-linux.elf/upx-3.91
7ccbe7d7822cd9fed9b3c902c2bcb80f85df4f5bbb4e9e850257435ffa375a38 *arm-wince.pe/upx-3.91.exe
c6849deffc7bb1976c18a4815bca0b8fd0b6d19e4136965108daa6382efae2d5 *armeb-linux.elf/upx-3.91
c04818c54d68c99f345ee7995634dffbe7f1c2f2db8f2b510bba461d9125f5a9 *i386-dos32.djgpp2.coff/upx-3.91.exe
a3758350a0454fb78060b6d6e48d8f000e17a628b6041e8c82e3990e0b3aabe9 *i386-linux.elf/upx-3.91
b4f27ba234a5c9b4f68e2067602a180c02f95fb044830f54a45267fe1c50bb83 *i386-win32.pe/upx-3.91.exe
dd9fb59d57a7157af1a44559f6ebd8a293b0988c66b4d0951c949f88f814bf8f *m68k-atari.tos/upx-3.91.ttp
c0bc81487114b9d158ffe1dbd4081b9e3636695c63f11b3e204033b56fc69706 *mipsel-linux.elf/upx-3.91
0a700713f0c7ff19a534963f5ab95a63d2f185f82d0c42ce8c1a485aba4c1147 *powerpc-linux.elf/upx-3.91
"
expected_sha256sums__t160_compress_all_methods_1_no_filter="\
db82bffefd5ec10cea93b7cc47860db0dc122fac441980b3ae320e3b9c48c7e2 *amd64-linux.elf/upx-3.91
df81b2376af28989faa0e48f9cb5d5f339d94166b7e11232c8d1ff952113a669 *arm-wince.pe/upx-3.91.exe
07ca9736f1cd478bde2c8da95a6ecb95bd865dcf8ea48a396b13050ac40d196e *armeb-linux.elf/upx-3.91
9e852e95b38ca57319d1e911bf97226a82b60dd336e201496c30bf62943aecce *i386-dos32.djgpp2.coff/upx-3.91.exe
e408fbcbbe422c06fce0cfed5d28ea0f0ef7c1b9225bf1f5a7d789cc84fb93b8 *i386-linux.elf/upx-3.91
30dbd980e85c88df62f4c13d6d0e44708f4ebfac63a4c12fa6a91b75563aead6 *i386-win32.pe/upx-3.91.exe
dd561ff9c530711be0934db352cf40f606066c280e27b26e7f8fd6dd1a087e6a *m68k-atari.tos/upx-3.91.ttp
813536a8f1b8b8852ed52c560afce8b51612876ac5a3a9e51434d8677932ef7b *mipsel-linux.elf/upx-3.91
c6d010b0cdee8adc381efc424a44c14a1d110c52d7b12925265fddc4ba781a6c *powerpc-linux.elf/upx-3.91
831b0dd82d2c8fb058e8300bda5dd51657a709e76c45e0c372d9cf83c2e06f31 *amd64-linux.elf/upx-3.91
057b08389af5a31a0bf4baf03d09eb07f4698f8ddec615ae35795cec62132966 *arm-wince.pe/upx-3.91.exe
49b6b8d4f04d9078686372a315e7768fc882ad66bebb67225fa0b2255b5dd1c9 *armeb-linux.elf/upx-3.91
aef085cb86ef29d7aa380a3daea403f53659af1615ceeaa76e609dc793f50cfd *i386-dos32.djgpp2.coff/upx-3.91.exe
52087d4a2c17445b0e8d5238ec3abd2ca5cd909513cff76bf42232f33d93903f *i386-linux.elf/upx-3.91
e669d7c4fec901130dd387dc8f95e3b3f5e739d6ef0bfac10080dbd257084ae6 *i386-win32.pe/upx-3.91.exe
40cd5a94039a1703986a68dd404290aa7c27fd8c184fa4c651467b8c2d621a5d *m68k-atari.tos/upx-3.91.ttp
b1db1d04e350972aa06216ec43d12a451abf5c928c885b0c442f9436c804e84e *mipsel-linux.elf/upx-3.91
65602c3e1e3e152d44d9f803281d4021bfd91aab825b72d8901faf4d7d9b593e *powerpc-linux.elf/upx-3.91
"
expected_sha256sums__t170_compress_all_methods_no_lzma_5_no_filter="\
689160a438a5650a40db1193b115566b55b3caa1fbbce88b5c608dda0ebc7c43 *amd64-linux.elf/upx-3.91
debd7f6b30bfcb1fef0fac558d8ae721c6a9d193c9b41126b3491c66870435ab *arm-wince.pe/upx-3.91.exe
7ee87918e7473d44c3a5af014cad48298f0a99c4028880d0a87a5a1776b977c7 *armeb-linux.elf/upx-3.91
dcdcad70f1b79290022041938957dccd4daa2f2fad166864cfb55f3400d5b03b *i386-dos32.djgpp2.coff/upx-3.91.exe
fece6171853a531cffdf264ae0ca9a47ee3b9b9a1416adc1ba2632e5da8a5d93 *i386-linux.elf/upx-3.91
0a32f50fe00e6f24ab5ab0bbfdfd037819f01071e849fb486a07ccc0794105f9 *i386-win32.pe/upx-3.91.exe
73dc44603f0fbf3a2a9e470c1291671b2670fa7f2f0cb54a8a7cdb883d1783c9 *m68k-atari.tos/upx-3.91.ttp
48877f2e614d4697e0ebc6d3f69e59328e0942e48bb5e54b4d9b9fe3cb917d9f *mipsel-linux.elf/upx-3.91
9df3e5bb2a641d03da582f6e5dc01e2497e616d585c8e2c07c78910ca7ac6db3 *powerpc-linux.elf/upx-3.91
bce397f12372437802d887d203bb2f8e4755dbe1a0e3c6bb9fa9cccd3306eef7 *amd64-linux.elf/upx-3.91
84b1fe14dbff7d4e2f1bcfee9b6e3c73f68eb5b95b37cbf2c655340bd959bfa3 *arm-wince.pe/upx-3.91.exe
1b6ac9c0893b3093d47e403a14a5d346ae3a0f135ecdbe3bb04fc0542abd469b *armeb-linux.elf/upx-3.91
d27237cd4b55c80d2b6c7da8d70ffc4f390290fcc550eec06c795e92d934b72a *i386-dos32.djgpp2.coff/upx-3.91.exe
2032623990d22b2cf8df5f2c0b581de5fd53869869b65818ea023a6857c4eff0 *i386-linux.elf/upx-3.91
51e91ff8226517ad8cd06d240e2c6c2f3d3e4033af1e593a5b294356d1bb5d33 *i386-win32.pe/upx-3.91.exe
b371684bbb2693797dd1164159de3bff9618bf6b99536542f57da07093dbb649 *m68k-atari.tos/upx-3.91.ttp
7c1fa54b86f3e5f3410216aa627bd32680d7bd8210776a14762566cb2ea37d52 *mipsel-linux.elf/upx-3.91
5c60d0817feeb4dde55be90e552ccddc81591fbaecb899c3a21afc91c0ceb3b9 *powerpc-linux.elf/upx-3.91
"
########## end .sha256sums.recreate
# /***********************************************************************
# // init
# ************************************************************************/
@@ -261,8 +257,8 @@ if [[ $BM_T =~ (^|\+)valgrind($|\+) ]]; then
upx_valgrind="valgrind"
fi
if [[ -z $upx_valgrind_flags ]]; then
upx_valgrind_flags="--leak-check=full --show-reachable=yes"
upx_valgrind_flags="-q --leak-check=no --error-exitcode=1"
#upx_valgrind_flags="--leak-check=full --show-reachable=yes"
#upx_valgrind_flags="-q --leak-check=no --error-exitcode=1"
upx_valgrind_flags="--leak-check=no --error-exitcode=1"
fi
upx_run="$upx_valgrind $upx_valgrind_flags $upx_exe"
@@ -282,7 +278,6 @@ rm -rf ./testsuite_1
mkbuilddirs testsuite_1
cd testsuite_1 || exit 1
# /***********************************************************************
# // decompression tests
# ************************************************************************/
@@ -316,7 +311,6 @@ for f in t010_decompressed/*/*; do
done
testsuite_check_sha $testdir
# /***********************************************************************
# // compression tests
# // 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
time testsuite_run_compress --all-methods --no-lzma -5 --no-filter
# /***********************************************************************
# // summary
# ************************************************************************/
@@ -360,13 +353,16 @@ time testsuite_run_compress --all-methods --no-lzma -5 --no-filter
recreate_expected_sha256sums .sha256sums.recreate
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 "upx_exe='$upx_exe'"
if [[ $upx_run != $upx_exe ]]; then
if [[ "$upx_run" != "$upx_exe" ]]; then
echo "upx_run='$upx_run'"
fi
if [[ -f $upx_exe ]]; then
if [[ -f "$upx_exe" ]]; then
ls -l "$upx_exe"
file "$upx_exe" || true
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
View File
@@ -4,46 +4,164 @@
before_script:
- export TRAVIS_OS_NAME=linux
- unset CROSS C B T X
- uname -a; pwd; id; umask; env
- uname -a; pwd; id; umask
- 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
time rpm -qa | LC_ALL=C sort;
if [[ $CI_BUILD_NAME =~ ^CentOS5- ]]; then
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
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
glibc-devel libasan libstdc++-devel libubsan zlib-devel
glibc-devel.i686 libasan.i686 libstdc++-devel.i686 libubsan.i686 zlib-devel.i686;
fi
-
if egrep -q '^PRETTY_NAME="?Ubuntu' /etc/os-release; then
export DEBIAN_FRONTEND=noninteractive;
time dpkg -l;
time apt-get -yq update;
time apt-get -yq --no-install-suggests --no-install-recommends --force-yes upgrade;
time apt-get -yq --no-install-suggests --no-install-recommends --force-yes install
build-essential ca-certificates curl file git wget xz-utils zlib1g-dev;
if [[ $CI_BUILD_NAME =~ ^OpenSUSE42.2- ]]; then
time zypper update -y;
time zypper install -y
coreutils curl diffutils grep gzip sed
bzip2 file findutils git openssh openssl perl tar wget which xz
llvm-clang gcc gcc-32bit gcc-c++ gcc-c++-32bit lcov make valgrind
glibc-devel libstdc++-devel libz1 zlib-devel
glibc-devel-32bit libstdc++-devel-32bit libz1-32bit zlib-devel-32bit;
fi
-
if egrep -q '^PRETTY_NAME="?Ubuntu 16\.04' /etc/os-release; then
dpkg --add-architecture i386;
time apt-get -yq update;
if [[ $CI_BUILD_NAME =~ ^(Debian|Ubuntu) ]]; then
time apt-get -yq --no-install-suggests --no-install-recommends --force-yes upgrade;
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
crossbuild-essential-arm64 crossbuild-essential-armel crossbuild-essential-armhf
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
- git --version && bash --version
- umask 022; mkdir -p ../deps ../build/gitlab
- 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/zlib-1.2.8.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 -x --use-compress-program=xz
- 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
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
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
@@ -58,9 +176,10 @@ Fedora23-clang+gcc-m32+m64:
tags: [ shared ]
except: [ tags ]
Fedora24-clang+gcc-m32+m64:
Fedora24-clang+gcc-m32+m64: # clang-3.8, gcc-6
image: fedora:24
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
@@ -75,27 +194,101 @@ Fedora24-clang+gcc-m32+m64:
tags: [ shared ]
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
script:
- time C=gcc-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_build.sh
- time C=gcc-4.6-m64 bash ./.github/travis_testsuite_1.sh
tags: [ shared ]
except: [ tags ]
Ubuntu1404-gcc-m64:
Ubuntu1404-gcc-m64: # gcc-4.8
image: ubuntu:14.04
script:
- time C=gcc-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_build.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 ]
except: [ tags ]
Ubuntu1604-gcc-m64:
Ubuntu1604-gcc-m32+m64: # gcc-5
image: ubuntu:16.04
script:
- time C=gcc-m64 bash ./.github/travis_build.sh
- time C=gcc-m64 bash ./.github/travis_testsuite_1.sh
- time C=gcc-5-m32 bash ./.github/travis_build.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 ]
except: [ tags ]
+55 -8
View File
@@ -19,6 +19,8 @@ notifications:
env:
global:
- 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:
- TRAVIS_EMPTY_JOB_WORKAROUND=true
@@ -41,6 +43,14 @@ matrix:
compiler: gcc
env: C=gcc-4.4-m64
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
compiler: gcc
env: C=gcc-4.6-m32
@@ -48,6 +58,36 @@ matrix:
- os: linux
compiler: gcc
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
compiler: gcc
env: C=gcc-5-m32
@@ -174,20 +214,17 @@ matrix:
compiler: clang
env: C=clang-703-m64
- os: osx
osx_image: xcode8.1
osx_image: xcode8.2
compiler: clang
env: C=clang-800-m32
- os: osx
osx_image: xcode8.1
osx_image: xcode8.2
compiler: clang
env: C=clang-800-m64
install:
- umask 022; cd $TRAVIS_BUILD_DIR && mkdir -p ../deps
- 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
- uname -a; pwd; id; umask
- cat /etc/os-release || true
- |
cd /
if [[ $TRAVIS_OS_NAME == linux ]]; then
@@ -202,10 +239,20 @@ install:
travis_retry pip install --user cpp-coveralls
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:
- cd $TRAVIS_BUILD_DIR && mkdir -p ../build/travis
- cd $TRAVIS_BUILD_DIR && bash ./.github/travis_build.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:
+1 -1
View File
@@ -8,7 +8,7 @@
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
+1 -1
View File
@@ -1,7 +1,7 @@
#
# 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
+4
View File
@@ -2,6 +2,10 @@
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):
* UPX has moved to GitHub - the new home page is https://upx.github.io
* IMPORTANT: all PE formats: internal changes: reunited the diverged source
+1 -1
View File
@@ -8,7 +8,7 @@
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
+4 -4
View File
@@ -8,7 +8,7 @@
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
@@ -103,9 +103,9 @@ THE FUTURE
COPYRIGHT
=========
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 2000-2016 John F. Reiser
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
Copyright (C) 2000-2017 John F. Reiser
This program may be used freely, and you are welcome to
redistribute it under certain conditions.
+1 -1
View File
@@ -8,7 +8,7 @@
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
+1 -1
View File
@@ -8,7 +8,7 @@
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
+1 -9
View File
@@ -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
@@ -12,14 +12,6 @@ empty :=
space := $(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
View File
@@ -1,5 +1,5 @@
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:
<elf.h> definitions for the ELF file format
+6 -5
View File
@@ -13,7 +13,7 @@ B<upx> S<[ I<command> ]> S<[ I<options> ]> I<filename>...
=head1 ABSTRACT
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
@@ -78,6 +78,7 @@ B<UPX> is a versatile executable packer with the following features:
* vmlinux/386
* watcom/le (supporting DOS4G, PMODE/W, DOS32a and CauseWay)
* win32/pe (exe and dll)
* win64/pe (exe and dll)
* arm/pe (exe and dll)
* linux/elfamd64
* linux/elfppc32
@@ -933,13 +934,13 @@ Please report all bugs immediately to the authors.
=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
redistribute it under certain conditions.
+1 -2
View File
@@ -1,7 +1,7 @@
#
# 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
@@ -53,7 +53,6 @@ endif
LIBS += -lucl -lz
# LZMA from https://github.com/upx/upx-lzma-sdk
include $(top_srcdir)/src/stub/src/c/Makevars.lzma
DEFS += -DWITH_LZMA=$(UPX_LZMA_VERSION)
CPPFLAGS += $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES)
ifeq ($(BUILD_TYPE_DEBUG),1)
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+4 -4
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
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];
const unsigned nprops = 8;
static wchar_t matchfinder[] = L"BT4";
static const wchar_t matchfinder[] = L"BT4";
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[4].vt = pr[5].vt = pr[6].vt = VT_UI4;
if (prepare(res, src_len, method, level, lcconf) != 0)
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+19 -31
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
@@ -34,6 +34,7 @@
#if !defined(_FILE_OFFSET_BITS)
# define _FILE_OFFSET_BITS 64
#endif
#undef NDEBUG
/*************************************************************************
@@ -43,6 +44,8 @@
#ifndef ACC_CFG_USE_NEW_STYLE_CASTS
#define ACC_CFG_USE_NEW_STYLE_CASTS 1
#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"
#if !(ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_MSC)
// 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
#if (ACC_CC_MSC)
# pragma warning(error: 4127)
# pragma warning(error: 4146)
# 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
// 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
#endif
#define ACC_WANT_ACC_INCD_H 1
#define ACC_WANT_ACC_INCE_H 1
#define ACC_WANT_ACC_LIB_H 1
@@ -110,29 +118,20 @@ typedef unsigned char upx_byte;
#undef _
#undef __
#undef ___
#undef NDEBUG
#undef dos
#undef linux
#undef small
#undef tos
#undef unix
#if defined(__DJGPP__)
# undef sopen
# undef __unix__
# undef __unix
#endif
#define WITH_LZMA 0x443
#define WITH_UCL 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)
# define ucl_compress_config_t REAL_ucl_compress_config_t
# include <ucl/uclconf.h>
@@ -144,11 +143,6 @@ typedef unsigned char upx_byte;
# undef ucl_compress_config_p
#endif
/*************************************************************************
// system includes
**************************************************************************/
// malloc debuggers
#if (WITH_VALGRIND)
# include <valgrind/memcheck.h>
@@ -163,7 +157,6 @@ typedef unsigned char upx_byte;
# define VALGRIND_MAKE_MEM_UNDEFINED(addr,len) 0
#endif
// IMPORTANT: unconditionally enable assertions
#undef NDEBUG
#include <assert.h>
@@ -190,7 +183,6 @@ typedef size_t upx_rsize_t;
# define STDERR_FILENO (fileno(stderr))
#endif
#if !(HAVE_STRCASECMP) && (HAVE_STRICMP)
# define strcasecmp stricmp
#endif
@@ -198,7 +190,6 @@ typedef size_t upx_rsize_t;
# define strncasecmp strnicmp
#endif
#if !defined(S_IWUSR) && defined(_S_IWUSR)
# define S_IWUSR _S_IWUSR
#elif !defined(S_IWUSR) && defined(_S_IWRITE)
@@ -238,7 +229,6 @@ typedef size_t upx_rsize_t;
# endif
#endif
// avoid warnings about shadowing global functions
#undef index
#define basename upx_basename
@@ -371,18 +361,18 @@ private:
#define UPX_F_DOS_EXE 3
#define UPX_F_DJGPP2_COFF 4
#define UPX_F_WATCOM_LE 5
#define UPX_F_VXD_LE 6
#define UPX_F_DOS_EXEH 7 /* OBSOLETE */
#define UPX_F_VXD_LE 6 // NOT IMPLEMENTED
#define UPX_F_DOS_EXEH 7 // OBSOLETE
#define UPX_F_TMT_ADAM 8
#define UPX_F_WIN32_PE 9
#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_SEP_i386 13
#define UPX_F_LINUX_SEP_i386 13 // NOT IMPLEMENTED
#define UPX_F_LINUX_SH_i386 14
#define UPX_F_VMLINUZ_i386 15
#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_VMLINUX_i386 19
#define UPX_F_LINUX_ELFI_i386 20
@@ -413,10 +403,8 @@ private:
#define UPX_F_VMLINUX_PPC64LE 40
#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_SOLARIS_SPARC 130
#define UPX_F_SOLARIS_SPARC 130 // NOT IMPLEMENTED
#define UPX_F_MACH_PPC32 131
#define UPX_F_LINUX_ELFPPC32 132
#define UPX_F_LINUX_ELF32_ARMEB 133
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+3 -3
View File
@@ -2,9 +2,9 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 2000-2016 John F. Reiser
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
Copyright (C) 2000-2017 John F. Reiser
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+3 -3
View File
@@ -2,9 +2,9 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 2000-2016 John F. Reiser
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
Copyright (C) 2000-2017 John F. Reiser
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+3 -3
View File
@@ -2,9 +2,9 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 2000-2016 John F. Reiser
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
Copyright (C) 2000-2017 John F. Reiser
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+3 -3
View File
@@ -2,9 +2,9 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 2004-2016 John F. Reiser
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
Copyright (C) 2004-2017 John F. Reiser
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+9 -9
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
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();
PackerNames pn; pn.o = &o;
PackMaster::visitAllPackers(pn.visit, NULL, &o, &pn);
qsort(pn.names, pn.names_count, sizeof(PackerNames::Entry), pn.cmp_fname);
PackMaster::visitAllPackers(PackerNames::visit, NULL, &o, &pn);
qsort(pn.names, pn.names_count, sizeof(PackerNames::Entry), PackerNames::cmp_fname);
size_t pos = 0;
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"
"\n");
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);
con_fprintf(f,
" --compress-exports=0 do not compress the export section\n"
@@ -421,10 +421,10 @@ void show_version(int x)
if (v != NULL && v[0])
fprintf(fp, "LZMA SDK version %s\n", v);
#endif
fprintf(fp, "Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer\n");
fprintf(fp, "Copyright (C) 1996-2016 Laszlo Molnar\n");
fprintf(fp, "Copyright (C) 2000-2016 John F. Reiser\n");
fprintf(fp, "Copyright (C) 2002-2016 Jens Medoch\n");
fprintf(fp, "Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer\n");
fprintf(fp, "Copyright (C) 1996-2017 Laszlo Molnar\n");
fprintf(fp, "Copyright (C) 2000-2017 John F. Reiser\n");
fprintf(fp, "Copyright (C) 2002-2017 Jens Medoch\n");
#if (WITH_ZLIB)
fprintf(fp, "Copyright (C) 1995" "-2005 Jean-loup Gailly and Mark Adler\n");
#endif
+3 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
@@ -338,6 +338,7 @@ void LeFile::countFixups(unsigned *counts) const
break;
case 6: // 16:32 pointer
counts[o] += 9;
// fall through
case 7: // 32-bit offset
counts[fix[4]-1] += 4;
fix += (fix[1] & 0x10) ? 9 : 7;
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+5 -34
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
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;
static int done_output_name = 0;
static int done_script_name = 0;
const char *argv0 = "";
@@ -366,29 +365,6 @@ static void set_output_name(const char *n, bool allow_m)
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
@@ -850,11 +826,6 @@ static int do_option(int optc, const char *arg)
case 661:
opt->o_unix.force_execve = true;
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:
opt->o_unix.is_ptinterp = true;
break;
@@ -1032,9 +1003,6 @@ static const struct mfx_option longopts[] =
// unix
{"blocksize", 0x31, 0, 660}, // --blocksize=
{"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
{"use_ptinterp", 0x10, 0, 664}, // 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__)
extern "C" { extern long _stksize; long _stksize = 256 * 1024L; }
#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[])
{
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+59 -33
View File
@@ -2,7 +2,7 @@
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.
UPX and the UCL library are free software; you can redistribute them
@@ -27,7 +27,7 @@
#ifndef __ACC_H_INCLUDED
#define __ACC_H_INCLUDED 1
#define ACC_VERSION 20160919L
#define ACC_VERSION 20170125L
#if defined(__CYGWIN32__) && !defined(__CYGWIN__)
# define __CYGWIN__ __CYGWIN32__
#endif
@@ -234,10 +234,12 @@
# 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_DEFINED 1
#endif
#endif
#if (UINT_MAX == ACC_0xffffL)
# undef __ACC_RENAME_A
# 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_ECONCAT7(a,b,c,d,e,f,g) ACC_CPP_CONCAT7(a,b,c,d,e,f,g)
#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 !defined(__STDC_CONSTANT_MACROS)
# define __STDC_CONSTANT_MACROS 1
@@ -2139,6 +2141,7 @@ ACC_COMPILE_TIME_ASSERT_HEADER(3 == 3)
#endif
#endif
#endif
#define ACC_SIZEOF_CHAR 1
#ifndef ACC_SIZEOF_SHORT
#if defined(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)
# define ACC_OPT_PREFER_PREINC 1
# define ACC_OPT_PREFER_PREDEC 1
# if (ACC_ABI_BIG_ENDIAN)
# if (ACC_ABI_BIG_ENDIAN) || (ACC_WORDSIZE == 8)
# ifndef ACC_OPT_UNALIGNED16
# define ACC_OPT_UNALIGNED16 1
# endif
@@ -2865,11 +2868,14 @@ ACC_COMPILE_TIME_ASSERT_HEADER(ACC_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
#endif
#endif
#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_uint16e_t unsigned 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_uint16e_t unsigned 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)
#endif
#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_uint32e_t unsigned long int
# 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
#if !defined(acc_int64e_t)
#if (ACC_SIZEOF___INT64 == 8)
# if (ACC_CC_BORLANDC) && !(ACC_CFG_TYPE_PREFER___INT64)
# define ACC_CFG_TYPE_PREFER___INT64 1
# if (ACC_CC_BORLANDC) && !defined(ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T)
# define ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T ACC_TYPEOF___INT64
# 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)
# define acc_int64e_t int
# define acc_uint64e_t unsigned 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_uint64e_t unsigned long int
# 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_uint64e_t acc_ullong_t
# 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_AIX)
# 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
# undef HAVE_MALLOC_H
# elif (ACC_OS_POSIX_HPUX || ACC_OS_POSIX_INTERIX)
# 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_TYPES_H
# 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_AIX)
# 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_LSTAT
# elif (ACC_OS_POSIX_UNICOS)
@@ -4093,11 +4108,14 @@ void __ACC_UA_SET_LE32(__acc_ua_volatile void* pp, unsigned long v) {
#endif
#endif
#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_uint16e_t unsigned 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_uint16e_t unsigned 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)
#endif
#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_uint32e_t unsigned long int
# 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
#if !defined(acc_int64e_t)
#if (ACC_SIZEOF___INT64 == 8)
# if (ACC_CC_BORLANDC) && !(ACC_CFG_TYPE_PREFER___INT64)
# define ACC_CFG_TYPE_PREFER___INT64 1
# if (ACC_CC_BORLANDC) && !defined(ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T)
# define ACC_CFG_PREFER_TYPEOF_ACC_INT64E_T ACC_TYPEOF___INT64
# 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)
# define acc_int64e_t int
# define acc_uint64e_t unsigned 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_uint64e_t unsigned long int
# 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_uint64e_t acc_ullong_t
# 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
ACCCHK_ASSERT(1 == 1)
ACCCHK_ASSERT(__ACC_MASK_GEN(1u,1) == 1)
ACCCHK_ASSERT(__ACC_MASK_GEN(1u,2) == 3)
ACCCHK_ASSERT(__ACC_MASK_GEN(1u,3) == 7)
ACCCHK_ASSERT(__ACC_MASK_GEN(1u,8) == 255)
ACCCHK_ASSERT(__ACC_MASK_GEN(1u,1) == 1u)
ACCCHK_ASSERT(__ACC_MASK_GEN(1u,2) == 3u)
ACCCHK_ASSERT(__ACC_MASK_GEN(1u,3) == 7u)
ACCCHK_ASSERT(__ACC_MASK_GEN(1u,8) == 255u)
#if (ACC_SIZEOF_INT >= 2)
ACCCHK_ASSERT(__ACC_MASK_GEN(1,15) == 32767)
ACCCHK_ASSERT(__ACC_MASK_GEN(1u,16) == 0xffffU)
ACCCHK_ASSERT(__ACC_MASK_GEN(0u,16) == 0u)
#else
#endif
ACCCHK_ASSERT(__ACC_MASK_GEN(1ul,16) == 0xffffUL)
ACCCHK_ASSERT(__ACC_MASK_GEN(0ul,16) == 0ul)
#endif
#if (ACC_SIZEOF_INT >= 4)
ACCCHK_ASSERT(__ACC_MASK_GEN(1,31) == 2147483647)
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);
v0 = ACC_UA_GET_BE32(b + 4);
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);
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
@@ -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);
v >>= 32;
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);
b[7] = 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);
v1 = ACC_UA_GET_LE32(b + 4);
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);
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
@@ -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);
v >>= 32;
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);
b[0] = 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);
#else
if (size < ACC_STATIC_CAST(size_t, -1))
p = malloc((size_t) size);
p = malloc(ACC_STATIC_CAST(size_t, size));
#endif
}
#endif
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -4
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
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 unmap_all_pages; // thus /proc/self/exe vanishes
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
} o_unix;
struct {
+3 -3
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
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,
unsigned ic, Reloc &, unsigned s1addr)
unsigned ic, unsigned s1addr)
{
const unsigned onam = ncsection + soxrelocs + ih.imagebase;
linker->defineSymbol("start_of_dll_names", onam);
+3 -3
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
@@ -53,7 +53,7 @@ public:
unsigned ih_codebase);
virtual void defineSymbols(unsigned ncsection, unsigned upxsection,
unsigned sizeof_oh, unsigned isize_isplit,
Reloc &rel, unsigned s1addr);
unsigned s1addr);
virtual void addNewRelocations(Reloc &, unsigned upxsection);
virtual unsigned getProcessImportParam(unsigned upxsection);
virtual void setOhDataBase(const pe_section_t *osection);
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
-174
View File
@@ -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
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+13 -13
View File
@@ -2,9 +2,9 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 2000-2016 John F. Reiser
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
Copyright (C) 2000-2017 John F. Reiser
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
@@ -516,7 +516,7 @@ void PackLinuxElf64::pack3(OutputFile *fo, Filter &ft)
void
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);
if (hasLoaderSection("ELFMAINXu")) {
// 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
if (is_shlib
if __acc_cte(is_shlib
|| ((unsigned)(get_te64(&ehdri.e_entry) - load_va) + up4(lsize) +
ph.getPackHeaderSize() + sizeof(overlay_offset))
< up4(file_size)) {
@@ -3582,7 +3582,7 @@ Linker* PackLinuxElf32armBe::newLinker() const
}
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;
int j = e_phnum;
@@ -3596,7 +3596,7 @@ PackLinuxElf32::elf_get_offset_from_address(unsigned const addr) 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;
if (dynp)
@@ -3607,7 +3607,7 @@ PackLinuxElf32::elf_has_dynamic(unsigned int const key) 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;
if (dynp)
@@ -3622,7 +3622,7 @@ PackLinuxElf32::elf_find_dynamic(unsigned int const key) const
}
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;
if (dynp)
@@ -3633,7 +3633,7 @@ PackLinuxElf32::elf_unsigned_dynamic(unsigned int const key) const
}
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;
int j = e_phnum;
@@ -3647,7 +3647,7 @@ PackLinuxElf64::elf_get_offset_from_address(upx_uint64_t const addr) 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;
if (dynp)
@@ -3658,7 +3658,7 @@ PackLinuxElf64::elf_has_dynamic(unsigned int const key) 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;
if (dynp)
@@ -3673,7 +3673,7 @@ PackLinuxElf64::elf_find_dynamic(unsigned int const key) const
}
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;
if (dynp)
+6 -6
View File
@@ -2,9 +2,9 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 2000-2016 John F. Reiser
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
Copyright (C) 2000-2017 John F. Reiser
All Rights Reserved.
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 lg2_page; // log2(PAGE_SIZE)
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 hatch_off; // file offset of escape hatch
upx_uint64_t load_va; // PT_LOAD[0].p_vaddr
@@ -147,7 +147,7 @@ protected:
Elf32_Shdr const *elf_find_section_type(unsigned) const;
void const *elf_find_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:
Elf32_Ehdr ehdri; // from input file
@@ -264,7 +264,7 @@ protected:
Elf64_Shdr const *elf_find_section_type(unsigned) const;
void const *elf_find_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:
Elf64_Ehdr ehdri; // from input file
+3 -3
View File
@@ -2,9 +2,9 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 2001-2016 John F. Reiser
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
Copyright (C) 2001-2017 John F. Reiser
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+3 -3
View File
@@ -2,9 +2,9 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 2000-2016 John F. Reiser
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
Copyright (C) 2000-2017 John F. Reiser
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+3 -3
View File
@@ -2,9 +2,9 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 2000-2016 John F. Reiser
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
Copyright (C) 2000-2017 John F. Reiser
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+3 -3
View File
@@ -2,9 +2,9 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 2000-2016 John F. Reiser
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
Copyright (C) 2000-2017 John F. Reiser
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+3 -3
View File
@@ -2,9 +2,9 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 2000-2016 John F. Reiser
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
Copyright (C) 2000-2017 John F. Reiser
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+8 -8
View File
@@ -2,7 +2,7 @@
This file is part of the UPX executable compressor.
Copyright (C) 2004-2016 John Reiser
Copyright (C) 2004-2017 John Reiser
All Rights Reserved.
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>
void PackMachBase<T>::pack4(OutputFile *fo, Filter &ft) // append PackHeader
{
Mach_main_command cmdMAIN;
// offset of p_info in compressed file
overlay_offset = sizeof(mhdro) + sizeof(segZERO)
+ sizeof(segXHDR) + sizeof(secXHDR)
+ 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_load_dylinker_command) + sizeof(Mach_load_dylib_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);
char page[~PAGE_MASK]; memset(page, 0, sizeof(page));
fo->write(page, ~PAGE_MASK & -len);
len += ~PAGE_MASK & -len;
fo->write(page, ~PAGE_MASK & (0u - len));
len += ~PAGE_MASK & (0u - len);
segLINK.fileoff = len;
threado_setPC(len + segTEXT.vmaddr); /* entry address */
@@ -1366,7 +1365,8 @@ void PackMachBase<T>::pack1(OutputFile *const fo, Filter &/*ft*/) // generate e
mhdro = mhdri;
if (my_filetype==Mach_header::MH_EXECUTE) {
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
}
unsigned pos = sizeof(mhdro);
@@ -1377,7 +1377,7 @@ void PackMachBase<T>::pack1(OutputFile *const fo, Filter &/*ft*/) // generate e
segZERO.cmdsize = sizeof(segZERO);
strncpy((char *)segZERO.segname, "__PAGEZERO", sizeof(segZERO.segname));
segZERO.vmsize = PAGE_SIZE;
if (sizeof(segZERO.vmsize) == 8
if __acc_cte(sizeof(segZERO.vmsize) == 8
&& mhdro.filetype == Mach_header::MH_EXECUTE
&& mhdro.cputype == Mach_header::CPU_TYPE_X86_64) {
segZERO.vmsize <<= 20; // (1ul<<32)
@@ -1716,7 +1716,7 @@ int PackMachBase<T>::canUnpack()
// Emulate the code
if (0xe8==b[0] && disp < bufsize
&& 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]) {
struct b_info const *bptr = (struct b_info const *)&b[11+disp];
// This is the folded stub.
+7 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
@@ -32,10 +32,15 @@
__packed_struct(Mach_fat_header)
BE32 magic;
# if 0
enum { // note conflict with java bytecode PackLinuxI386
FAT_MAGIC = 0xcafebabe,
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.
__packed_struct_end()
+7 -2
View File
@@ -2,7 +2,7 @@
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.
UPX and the UCL library are free software; you can redistribute them
@@ -35,9 +35,13 @@
#ifdef WANT_MACH_HEADER_ENUM /*{*/
#undef WANT_MACH_HEADER_ENUM
# if 0
enum { // magic
MH_MAGIC = 0xfeedface
};
# else
static const unsigned MH_MAGIC = 0xfeedface;
# endif
enum { // cputype
CPU_TYPE_I386 = 7,
CPU_TYPE_X86_64 = 0x01000007,
@@ -123,8 +127,9 @@
S_16BYTE_LITERALS,
S_DTRACE_DOF
};
static const unsigned S_ATTR_PURE_INSTRUCTIONS = 0x80000000;
enum { // section flags (high 24 bits)
S_ATTR_PURE_INSTRUCTIONS = 0x80000000,
//S_ATTR_PURE_INSTRUCTIONS = 0x80000000,
S_ATTR_NO_TOC = 0x40000000,
S_ATTR_STRIP_STATIC_SYMS = 0x20000000,
S_ATTR_NO_DEAD_STRIP = 0x10000000,
+4 -4
View File
@@ -2,9 +2,9 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 2002-2016 Jens Medoch
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
Copyright (C) 2002-2017 Jens Medoch
All Rights Reserved.
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
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
assert(oh.tx_len >= ph.u_len);
+3 -3
View File
@@ -2,9 +2,9 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 2002-2016 Jens Medoch
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
Copyright (C) 2002-2017 Jens Medoch
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
+2 -26
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
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 */
/* vim:set ts=4 sw=4 et: */
+13 -13
View File
@@ -2,9 +2,9 @@
This file is part of the UPX executable compressor.
Copyright (C) 2004-2016 John Reiser
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 2004-2017 John Reiser
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
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"
unsigned PackVmlinuxI386::write_vmlinux_head(
OutputFile *const fo,
Shdr *const stxt
OutputFile *fo,
Shdr *stxt
)
{
// COMPRESSED_LENGTH
@@ -972,8 +972,8 @@ unsigned PackVmlinuxI386::write_vmlinux_head(
}
unsigned PackVmlinuxAMD64::write_vmlinux_head(
OutputFile *const fo,
Shdr *const stxt
OutputFile *fo,
Shdr *stxt
)
{
// COMPRESSED_LENGTH
@@ -1038,8 +1038,8 @@ void PackVmlinuxAMD64::defineDecompressorSymbols()
}
unsigned PackVmlinuxARMEL::write_vmlinux_head(
OutputFile *const fo,
Shdr *const stxt
OutputFile *fo,
Shdr *stxt
)
{
// First word from vmlinux-head.S
@@ -1060,8 +1060,8 @@ unsigned PackVmlinuxARMEL::write_vmlinux_head(
}
unsigned PackVmlinuxARMEB::write_vmlinux_head(
OutputFile *const fo,
Shdr *const stxt
OutputFile *fo,
Shdr *stxt
)
{
// First word from vmlinux-head.S
@@ -1082,8 +1082,8 @@ unsigned PackVmlinuxARMEB::write_vmlinux_head(
}
unsigned PackVmlinuxPPC32::write_vmlinux_head(
OutputFile * /*const fo*/,
Shdr * /*const stxt*/
OutputFile * /*fo*/,
Shdr * /*stxt*/
)
{
return 0;
+16 -16
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
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 void unpack(OutputFile *fo);
virtual unsigned write_vmlinux_head(
OutputFile *const fo,
Shdr *const stxt
OutputFile *fo,
Shdr *stxt
) = 0;
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 has_valid_vmlinux_head();
virtual unsigned write_vmlinux_head(
OutputFile *const fo,
Shdr *const stxt
OutputFile *fo,
Shdr *stxt
);
};
@@ -138,8 +138,8 @@ protected:
virtual bool is_valid_e_entry(Addr);
virtual bool has_valid_vmlinux_head();
virtual unsigned write_vmlinux_head(
OutputFile *const fo,
Shdr *const stxt
OutputFile *fo,
Shdr *stxt
);
};
@@ -162,8 +162,8 @@ protected:
virtual bool is_valid_e_entry(Addr);
virtual bool has_valid_vmlinux_head();
virtual unsigned write_vmlinux_head(
OutputFile *const fo,
Shdr *const stxt
OutputFile *fo,
Shdr *stxt
);
};
@@ -186,8 +186,8 @@ protected:
virtual bool is_valid_e_entry(Addr);
virtual bool has_valid_vmlinux_head();
virtual unsigned write_vmlinux_head(
OutputFile *const fo,
Shdr *const stxt
OutputFile *fo,
Shdr *stxt
);
};
@@ -210,8 +210,8 @@ protected:
virtual bool is_valid_e_entry(Addr);
virtual bool has_valid_vmlinux_head();
virtual unsigned write_vmlinux_head(
OutputFile *const fo,
Shdr *const stxt
OutputFile *fo,
Shdr *stxt
);
};
@@ -235,8 +235,8 @@ protected:
virtual bool is_valid_e_entry(Addr);
virtual bool has_valid_vmlinux_head();
virtual unsigned write_vmlinux_head(
OutputFile *const fo,
Shdr *const stxt
OutputFile *fo,
Shdr *stxt
);
};
+3 -3
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them
@@ -964,7 +964,7 @@ void PackVmlinuzARMEL::defineDecompressorSymbols()
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
fo->write(&stub_arm_v5a_linux_kernel_vmlinuz_head[0], 4);
+3 -31
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor.
Copyright (C) 1996-2016 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2016 Laszlo Molnar
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
All Rights Reserved.
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)
**************************************************************************/
@@ -178,7 +150,7 @@ protected:
virtual void readKernel();
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 Linker* newLinker() const;

Some files were not shown because too many files have changed in this diff Show More