mirror of
https://github.com/upx/upx.git
synced 2024-11-23 04:39:59 +00:00
CI and build updates
This commit is contained in:
parent
891dc87064
commit
fc4dcd46db
10
.github/workflows/ci.yml
vendored
10
.github/workflows/ci.yml
vendored
@ -12,8 +12,8 @@ env:
|
||||
CMAKE_REQUIRED_QUIET: OFF
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
UPX_CMAKE_BUILD_FLAGS: --verbose
|
||||
# 2023-07-19
|
||||
ZIG_DIST_VERSION: 0.11.0-dev.4009+11695745e
|
||||
# 2023-07-20
|
||||
ZIG_DIST_VERSION: 0.11.0-dev.4059+17255bed4
|
||||
|
||||
jobs:
|
||||
job-rebuild-and-verify-stubs:
|
||||
@ -149,7 +149,7 @@ jobs:
|
||||
- name: 'Install brew packages'
|
||||
if: ${{ matrix.testsuite }}
|
||||
run: |
|
||||
# testsuite needs working "readlink -en" and "sha256sum"
|
||||
# testsuite needs working "readlink -en" and "sha256sum -b"
|
||||
if ! test -e /usr/local/opt/coreutils/libexec/gnubin/readlink; then
|
||||
echo "===== brew leaves:"; brew leaves; echo "===== brew list:"; brew list
|
||||
# only run "brew update" if needed
|
||||
@ -320,12 +320,12 @@ jobs:
|
||||
%RUN_LIB% -out:ucl.lib *.obj
|
||||
@REM ===== build zlib =====
|
||||
cd %BDIR%\zlib
|
||||
%RUN_CL% -J -O2 -W3 -WX %DEFS% -c %H%\vendor\zlib\*.c
|
||||
%RUN_CL% -J -O2 -W3 -WX %DEFS% -DHAVE_VSNPRINTF -c %H%\vendor\zlib\*.c
|
||||
%RUN_LIB% -out:zlib.lib *.obj
|
||||
@REM ===== build zstd =====
|
||||
cd %BDIR%\zstd
|
||||
set s=%H%\vendor\zstd\lib
|
||||
@rem %RUN_CL% -J -O2 -W4 -WX -DDYNAMIC_BMI2=0 -DZSTD_DISABLE_ASM %DEFS% -c %s%\common\*.c %s%\compress\*.c %s%\decompress\*.c
|
||||
@rem %RUN_CL% -J -O2 -W4 -WX %DEFS% -DDYNAMIC_BMI2=0 -DZSTD_DISABLE_ASM -c %s%\common\*.c %s%\compress\*.c %s%\decompress\*.c
|
||||
@rem %RUN_LIB% -out:zstd.lib *.obj
|
||||
@REM ===== build UPX =====
|
||||
cd %BDIR%\upx
|
||||
|
12
.github/workflows/weekly-ci-alpine-linux.yml
vendored
12
.github/workflows/weekly-ci-alpine-linux.yml
vendored
@ -15,6 +15,7 @@ on:
|
||||
env:
|
||||
CMAKE_REQUIRED_QUIET: OFF
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
UPX_TESTSUITE_LEVEL: 2
|
||||
|
||||
jobs:
|
||||
job-alpine-cmake: # uses cmake + make
|
||||
@ -141,4 +142,15 @@ jobs:
|
||||
(cd "upx with space"/build/xtarget/gcc-static/release && DESTDIR="$PWD/Install with cmake" cmake --install .)
|
||||
(cd "upx with space"/build/xtarget/gcc-static/release && DESTDIR="$PWD/Install with make" make install)
|
||||
|
||||
# test suite
|
||||
- name: ${{ format('Run test suite level {0}', env.UPX_TESTSUITE_LEVEL) }}
|
||||
run: |
|
||||
# use a directory that contains whitespace to detect possible quoting issues
|
||||
git clone --depth=1 https://github.com/upx/upx-testsuite "upx-testsuite with space"
|
||||
export upx_testsuite_SRCDIR="$(readlink -fn "upx-testsuite with space")"
|
||||
testsuite_1="$(readlink -fn "upx with space"/misc/testsuite/upx_testsuite_1.sh)"
|
||||
# testsuite needs bash and working "readlink -en" and "sha256sum -b"
|
||||
apk add bash coreutils
|
||||
(cd "upx with space"/build/xtarget/gcc-static/release && upx_exe=./upx bash "$testsuite_1")
|
||||
|
||||
# vim:set ts=2 sw=2 et:
|
||||
|
4
.github/workflows/weekly-ci-zigcc.yml
vendored
4
.github/workflows/weekly-ci-zigcc.yml
vendored
@ -8,8 +8,8 @@ on:
|
||||
env:
|
||||
CMAKE_REQUIRED_QUIET: OFF
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
# 2023-07-19
|
||||
ZIG_DIST_VERSION: 0.11.0-dev.4009+11695745e
|
||||
# 2023-07-20
|
||||
ZIG_DIST_VERSION: 0.11.0-dev.4059+17255bed4
|
||||
|
||||
jobs:
|
||||
job-linux-zigcc: # uses cmake + make
|
||||
|
@ -371,7 +371,7 @@ endif()
|
||||
set(t upx_vendor_zlib)
|
||||
upx_compile_target_debug_with_O2(${t})
|
||||
upx_sanitize_target(${t})
|
||||
target_compile_definitions(${t} PRIVATE HAVE_STDARG_H=1 HAVE_VSNPRINTF=1)
|
||||
target_compile_definitions(${t} PRIVATE HAVE_VSNPRINTF=1)
|
||||
if(MSVC_FRONTEND)
|
||||
target_compile_options(${t} PRIVATE -W3 ${warn_WX})
|
||||
else()
|
||||
|
@ -100,7 +100,7 @@ Developer quick start
|
||||
12) $ cd src # my-upx/upx/src
|
||||
12a) On MacOS: install homebrew (https:://brew.sh), then "brew install coreutils"
|
||||
and put <some_prefix>/opt/coreutils/libexec/gnubin into PATH so that
|
||||
"readlink -en" and 'sha256sum' work.
|
||||
"readlink -en" and "sha256sum -b" work.
|
||||
13) $ make run-testsuite 2>&1 | tee testsuite.log
|
||||
|
||||
|
||||
|
@ -97,7 +97,7 @@ if check_submodule ucl; then
|
||||
fi
|
||||
if check_submodule zlib; then
|
||||
for f in "$rel_top_srcdir"/vendor/zlib/*.c; do
|
||||
run "CC $f" $CC -DHAVE_STDARG_H -DHAVE_VSNPRINTF -DHAVE_UNISTD_H -c "$f"
|
||||
run "CC $f" $CC -DHAVE_UNISTD_H -DHAVE_VSNPRINTF -c "$f"
|
||||
done
|
||||
fi
|
||||
if check_submodule zstd; then
|
||||
|
@ -1,7 +1,7 @@
|
||||
#! /usr/bin/env bash
|
||||
## vim:set ts=4 sw=4 et:
|
||||
set -e; set -o pipefail
|
||||
argv0=$0; argv0abs=$(readlink -en -- "$argv0"); argv0dir=$(dirname "$argv0abs")
|
||||
argv0=$0; argv0abs=$(readlink -fn "$argv0"); argv0dir=$(dirname "$argv0abs")
|
||||
|
||||
# very first version of the upx-testsuite; requires:
|
||||
# $upx_exe (required, but with convenience fallback "./upx")
|
||||
@ -23,7 +23,8 @@ argv0=$0; argv0abs=$(readlink -en -- "$argv0"); argv0dir=$(dirname "$argv0abs")
|
||||
[[ -z $upx_exe && -f ./upx && -x ./upx ]] && upx_exe=./upx # convenience fallback
|
||||
if [[ -z $upx_exe ]]; then echo "UPX-ERROR: please set \$upx_exe"; exit 1; fi
|
||||
if [[ ! -f $upx_exe ]]; then echo "UPX-ERROR: file '$upx_exe' does not exist"; exit 1; fi
|
||||
upx_exe=$(readlink -en -- "$upx_exe") # make absolute
|
||||
upx_exe=$(readlink -fn "$upx_exe") # make absolute
|
||||
[[ -f $upx_exe ]] || exit 1
|
||||
upx_run=()
|
||||
if [[ -n $upx_exe_runner ]]; then
|
||||
# usage examples:
|
||||
@ -57,14 +58,16 @@ if [[ ! -d "$upx_testsuite_SRCDIR/files/packed" ]]; then
|
||||
echo " and set (export) the envvar upx_testsuite_SRCDIR to the local file path"
|
||||
exit 1
|
||||
fi
|
||||
upx_testsuite_SRCDIR=$(readlink -en -- "$upx_testsuite_SRCDIR") # make absolute
|
||||
upx_testsuite_SRCDIR=$(readlink -fn "$upx_testsuite_SRCDIR") # make absolute
|
||||
[[ -d $upx_testsuite_SRCDIR ]] || exit 1
|
||||
|
||||
# upx_testsuite_BUILDDIR
|
||||
if [[ -z $upx_testsuite_BUILDDIR ]]; then
|
||||
upx_testsuite_BUILDDIR="./tmp-upx-testsuite"
|
||||
fi
|
||||
mkdir -p "$upx_testsuite_BUILDDIR" || exit 1
|
||||
upx_testsuite_BUILDDIR=$(readlink -en -- "$upx_testsuite_BUILDDIR") # make absolute
|
||||
upx_testsuite_BUILDDIR=$(readlink -fn "$upx_testsuite_BUILDDIR") # make absolute
|
||||
[[ -d $upx_testsuite_BUILDDIR ]] || exit 1
|
||||
|
||||
cd / && cd "$upx_testsuite_BUILDDIR" || exit 1
|
||||
|
||||
@ -137,7 +140,7 @@ testsuite_split_f() {
|
||||
}
|
||||
|
||||
testsuite_check_sha() {
|
||||
(cd "$1" && sha256sum -b -- */* | LC_ALL=C sort -k2) > $1/.sha256sums.current
|
||||
(cd "$1" && sha256sum -b [0-9a-zA-Z]*/* | LC_ALL=C sort -k2) > $1/.sha256sums.current
|
||||
echo
|
||||
cat $1/.sha256sums.current
|
||||
if ! cmp -s $1/.sha256sums.expected $1/.sha256sums.current; then
|
||||
@ -152,7 +155,7 @@ testsuite_check_sha() {
|
||||
}
|
||||
|
||||
testsuite_check_sha_decompressed() {
|
||||
(cd "$1" && sha256sum -b -- */* | LC_ALL=C sort -k2) > $1/.sha256sums.current
|
||||
(cd "$1" && sha256sum -b [0-9a-zA-Z]*/* | LC_ALL=C sort -k2) > $1/.sha256sums.current
|
||||
if ! cmp -s $1/.sha256sums.expected $1/.sha256sums.current; then
|
||||
cat $1/.sha256sums.current
|
||||
echo "UPX-ERROR: FATAL: $1 FAILED: decompressed checksum mismatch"
|
||||
@ -301,12 +304,12 @@ fi
|
||||
# recreate checksums from current version for an easy update in case of changes
|
||||
recreate_expected_sha256sums .sha256sums.recreate
|
||||
|
||||
testsuite_header "UPX testsuite summary"
|
||||
testsuite_header "UPX testsuite summary: level $UPX_TESTSUITE_LEVEL"
|
||||
run_upx --version-short
|
||||
echo
|
||||
echo "upx_exe='$upx_exe'"
|
||||
if [[ -f $upx_exe ]]; then
|
||||
ls -l "$upx_exe"
|
||||
ls -l "$upx_exe"
|
||||
if command -v file >/dev/null; then
|
||||
file "$upx_exe" || true
|
||||
fi
|
||||
echo "upx_run='${upx_run[*]}'"
|
||||
|
@ -28,6 +28,7 @@
|
||||
#include "compress.h"
|
||||
#include "../util/membuffer.h"
|
||||
// NOLINTBEGIN(clang-analyzer-optin.performance.Padding)
|
||||
#define ZLIB_CONST 1
|
||||
#include <zlib/zlib.h>
|
||||
#include <zlib/deflate.h>
|
||||
// NOLINTEND(clang-analyzer-optin.performance.Padding)
|
||||
@ -101,7 +102,7 @@ int upx_zlib_compress(const upx_bytep src, unsigned src_len, upx_bytep dst, unsi
|
||||
z_stream s;
|
||||
s.zalloc = (alloc_func) nullptr;
|
||||
s.zfree = (free_func) nullptr;
|
||||
s.next_in = ACC_UNCONST_CAST(upx_bytep, src);
|
||||
s.next_in = src;
|
||||
s.avail_in = src_len;
|
||||
s.next_out = dst;
|
||||
s.avail_out = *dst_len;
|
||||
@ -150,7 +151,7 @@ int upx_zlib_decompress(const upx_bytep src, unsigned src_len, upx_bytep dst, un
|
||||
z_stream s;
|
||||
s.zalloc = (alloc_func) nullptr;
|
||||
s.zfree = (free_func) nullptr;
|
||||
s.next_in = ACC_UNCONST_CAST(upx_bytep, src);
|
||||
s.next_in = src;
|
||||
s.avail_in = src_len;
|
||||
s.next_out = dst;
|
||||
s.avail_out = *dst_len;
|
||||
|
Loading…
Reference in New Issue
Block a user