CI updates and cleanups

This commit is contained in:
Markus F.X.J. Oberhumer
2023-11-03 17:52:46 +01:00
parent 2c4b1d8a8c
commit 4f0f977f04
25 changed files with 209 additions and 127 deletions
+1
View File
@@ -221,6 +221,7 @@ TEST_CASE("upx_zstd_decompress") {
d_len = 31;
r = upx_zstd_decompress(c_data, 16, d_buf, &d_len, M_ZSTD, nullptr);
CHECK(r == UPX_E_OUTPUT_OVERRUN);
UNUSED(r);
}
#endif // WITH_ZSTD
+6
View File
@@ -152,4 +152,10 @@ static_assert(sizeof(void *) == 8);
#endif
#endif
#ifdef WANT_WINDOWS_LEAN_H
#if defined(_WIN32) || defined(__CYGWIN__)
#include "util/windows_lean.h"
#endif
#endif
/* vim:set ts=4 sw=4 et: */
+39 -9
View File
@@ -25,6 +25,7 @@
<markus@oberhumer.com> <ezerotven+github@gmail.com>
*/
#define WANT_WINDOWS_LEAN_H 1 // _WIN32_WINNT
#include "conf.h"
#include "compress/compress.h" // upx_ucl_version_string()
// for list_all_packers():
@@ -449,19 +450,51 @@ void show_sysinfo(const char *options_var) {
con_fprintf(f, "UPX version: ");
fflush(f);
show_version(true);
con_fprintf(f, "UPX version internal: 0x%06x %s\n", UPX_VERSION_HEX, UPX_VERSION_STRING);
}
fflush(stdout);
// Compilation Flags
if (opt->verbose >= 2) {
{
size_t cf_count = 0;
auto cf_print = [f, &cf_count](const char *name, const char *fmt, upx_int64_t v) noexcept {
auto cf_print = [f, &cf_count](const char *name, const char *fmt, upx_int64_t v,
int need_verbose = 2) noexcept {
if (opt->verbose < need_verbose)
return;
if (cf_count++ == 0)
con_fprintf(f, "\nCompilation flags:\n");
con_fprintf(f, " %s = ", name);
con_fprintf(f, fmt, v);
con_fprintf(f, "\n");
};
// compiler
#if defined(ACC_CC_CLANG)
cf_print("ACC_CC_CLANG", "0x%06llx", ACC_CC_CLANG + 0, 3);
#endif
#if defined(ACC_CC_GNUC)
cf_print("ACC_CC_GNUC", "0x%06llx", ACC_CC_GNUC + 0, 3);
#endif
#if defined(ACC_CC_MSC)
cf_print("ACC_CC_MSC", "%lld", ACC_CC_MSC + 0, 3);
#endif
#if defined(__clang__)
cf_print("__clang__", "%lld", __clang__ + 0);
#endif
#if defined(__clang_major__)
cf_print("__clang_major__", "%lld", __clang_major__ + 0);
#endif
#if defined(__GNUC__)
cf_print("__GNUC__", "%lld", __GNUC__ + 0);
#endif
#if defined(__GNUC_MINOR__)
cf_print("__GNUC_MINOR__", "%lld", __GNUC_MINOR__ + 0);
#endif
#if defined(_MSC_VER)
cf_print("_MSC_VER", "%lld", _MSC_VER + 0);
#endif
#if defined(_MSC_FULL_VER)
cf_print("_MSC_FULL_VER", "%lld", _MSC_FULL_VER + 0);
#endif
// OS and libc
#if defined(WINVER)
cf_print("WINVER", "0x%04llx", WINVER + 0);
@@ -473,21 +506,16 @@ void show_sysinfo(const char *options_var) {
cf_print("__MSVCRT_VERSION__", "0x%04llx", __MSVCRT_VERSION__ + 0);
#endif
#if defined(_USE_MINGW_ANSI_STDIO)
cf_print("_USE_MINGW_ANSI_STDIO", "%lld", _USE_MINGW_ANSI_STDIO + 0);
cf_print("_USE_MINGW_ANSI_STDIO", "%lld", _USE_MINGW_ANSI_STDIO + 0, 3);
#endif
#if defined(__USE_MINGW_ANSI_STDIO)
cf_print("__USE_MINGW_ANSI_STDIO", "%lld", __USE_MINGW_ANSI_STDIO + 0);
cf_print("__USE_MINGW_ANSI_STDIO", "%lld", __USE_MINGW_ANSI_STDIO + 0, 3);
#endif
#if defined(__GLIBC__)
cf_print("__GLIBC__", "%lld", __GLIBC__ + 0);
#endif
#if defined(__GLIBC_MINOR__)
cf_print("__GLIBC_MINOR__", "%lld", __GLIBC_MINOR__ + 0);
#endif
// compiler
#if defined(_MSC_VER) && defined(_MSC_FULL_VER)
cf_print("_MSC_VER", "%lld", _MSC_VER + 0);
cf_print("_MSC_FULL_VER", "%lld", _MSC_FULL_VER + 0);
#endif
UNUSED(cf_count);
UNUSED(cf_print);
@@ -517,6 +545,8 @@ void show_sysinfo(const char *options_var) {
con_fprintf(f, "\n");
if (e && e[0])
con_fprintf(f, "Contents of environment variable %s: '%s'\n\n", options_var, e);
else if (e)
con_fprintf(f, "Environment variable '%s' is set but empty.\n\n", options_var);
else
con_fprintf(f, "Environment variable '%s' is not set.\n\n", options_var);
}
+3 -2
View File
@@ -39,6 +39,7 @@ std::mutex opt_lock_mutex;
**************************************************************************/
void Options::reset() noexcept {
#define opt ERROR_DO_NOT_USE_opt // protect against using the wrong variable
Options *const o = this;
mem_clear(o);
o->crp.reset();
@@ -81,6 +82,7 @@ void Options::reset() noexcept {
o->win32_pe.compress_rt[24] = false; // 24 == RT_MANIFEST
o->win32_pe.strip_relocs = -1;
o->win32_pe.keep_resource = "";
#undef opt
}
/*************************************************************************
@@ -88,7 +90,7 @@ void Options::reset() noexcept {
**************************************************************************/
TEST_CASE("Options::reset") {
#define opt DO_NOT_USE_opt
#define opt ERROR_DO_NOT_USE_opt // protect against using the wrong variable
COMPILE_TIME_ASSERT(std::is_standard_layout<Options>::value)
COMPILE_TIME_ASSERT(std::is_nothrow_default_constructible<Options>::value)
COMPILE_TIME_ASSERT(std::is_trivially_copyable<Options>::value)
@@ -97,7 +99,6 @@ TEST_CASE("Options::reset") {
Options *const o = &local_options;
o->reset();
CHECK(o->o_unix.osabi0 == 3);
//
static_assert(TABLESIZE(o->win32_pe.compress_rt) == 25); // 25 == RT_LAST
CHECK(o->win32_pe.compress_exports);
CHECK(o->win32_pe.compress_icons);
+44 -44
View File
@@ -1637,15 +1637,15 @@ PackLinuxElf64amd::defineSymbols(Filter const *ft)
PackLinuxElf64::defineSymbols(ft);
}
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/i386-linux.elf-entry.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/i386-linux.elf-so_entry.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/i386-linux.elf-fold.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/i386-linux.elf-so_fold.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/i386-linux.shlib-init.h"
void
@@ -1677,9 +1677,9 @@ PackLinuxElf32x86::buildLoader(const Filter *ft)
tmp, sizeof(stub_i386_linux_elf_fold), ft );
}
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/i386-bsd.elf-entry.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/i386-bsd.elf-fold.h"
void
@@ -1705,10 +1705,10 @@ PackBSDElf32x86::buildLoader(const Filter *ft)
tmp, sizeof(stub_i386_bsd_elf_fold), ft);
}
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/i386-netbsd.elf-entry.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/i386-netbsd.elf-fold.h"
#define WANT_NHDR_ENUM
@@ -1738,7 +1738,7 @@ PackNetBSDElf32x86::buildLoader(const Filter *ft)
tmp, sizeof(stub_i386_netbsd_elf_fold), ft);
}
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/i386-openbsd.elf-fold.h"
void
@@ -1764,33 +1764,33 @@ PackOpenBSDElf32x86::buildLoader(const Filter *ft)
tmp, sizeof(stub_i386_openbsd_elf_fold), ft);
}
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/arm.v5a-linux.elf-entry.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/arm.v5a-linux.elf-so_entry.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/arm.v5a-linux.elf-fold.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/arm.v5a-linux.elf-so_fold.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/arm.v5t-linux.shlib-init.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/arm.v4a-linux.elf-entry.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/arm.v4a-linux.elf-so_entry.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/arm.v4a-linux.elf-fold.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/arm.v4a-linux.elf-so_fold.h"
#if 0
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/arm.v4a-linux.shlib-init.h"
#endif
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/armeb.v4a-linux.elf-entry.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/armeb.v4a-linux.elf-fold.h"
void
@@ -1822,11 +1822,11 @@ PackLinuxElf32armLe::buildLoader(Filter const *ft)
}
}
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/mipsel.r3000-linux.elf-entry.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/mipsel.r3000-linux.elf-fold.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/mipsel.r3000-linux.shlib-init.h"
void
@@ -1843,11 +1843,11 @@ PackLinuxElf32mipsel::buildLoader(Filter const *ft)
stub_mipsel_r3000_linux_elf_fold, sizeof(stub_mipsel_r3000_linux_elf_fold), ft);
}
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/mips.r3000-linux.elf-entry.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/mips.r3000-linux.elf-fold.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/mips.r3000-linux.shlib-init.h"
void
@@ -1864,9 +1864,9 @@ PackLinuxElf32mipseb::buildLoader(Filter const *ft)
stub_mips_r3000_linux_elf_fold, sizeof(stub_mips_r3000_linux_elf_fold), ft);
}
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/powerpc-linux.elf-entry.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/powerpc-linux.elf-fold.h"
void
@@ -1877,9 +1877,9 @@ PackLinuxElf32ppc::buildLoader(const Filter *ft)
stub_powerpc_linux_elf_fold, sizeof(stub_powerpc_linux_elf_fold), ft);
}
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/powerpc64le-linux.elf-entry.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/powerpc64le-linux.elf-fold.h"
void
@@ -1890,9 +1890,9 @@ PackLinuxElf64ppcle::buildLoader(const Filter *ft)
stub_powerpc64le_linux_elf_fold, sizeof(stub_powerpc64le_linux_elf_fold), ft);
}
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/powerpc64-linux.elf-entry.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/powerpc64-linux.elf-fold.h"
void
@@ -1903,15 +1903,15 @@ PackLinuxElf64ppc::buildLoader(const Filter *ft)
stub_powerpc64_linux_elf_fold, sizeof(stub_powerpc64_linux_elf_fold), ft);
}
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/amd64-linux.elf-entry.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/amd64-linux.elf-fold.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/amd64-linux.elf-so_entry.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/amd64-linux.elf-so_fold.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/amd64-linux.shlib-init.h"
void
@@ -1928,15 +1928,15 @@ PackLinuxElf64amd::buildLoader(const Filter *ft)
stub_amd64_linux_elf_fold, sizeof(stub_amd64_linux_elf_fold), ft);
}
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/arm64-linux.elf-entry.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/arm64-linux.elf-so_entry.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/arm64-linux.elf-fold.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/arm64-linux.elf-so_fold.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/arm64-linux.shlib-init.h"
void
+4 -4
View File
@@ -74,14 +74,14 @@ PackBSDI386::PackBSDI386(InputFile *f) : super(f)
}
}
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/i386-linux.elf.execve-entry.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/i386-linux.elf.execve-fold.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/i386-bsd.elf.execve-entry.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/i386-bsd.elf.execve-fold.h"
+2 -2
View File
@@ -50,9 +50,9 @@
//
**************************************************************************/
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/i386-linux.elf.interp-entry.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/i386-linux.elf.interp-fold.h"
PackLinuxElf32x86interp::PackLinuxElf32x86interp(InputFile *f) :
+2 -2
View File
@@ -47,9 +47,9 @@
//
**************************************************************************/
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/i386-linux.elf.shell-entry.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/i386-linux.elf.shell-fold.h"
+19 -19
View File
@@ -45,48 +45,48 @@
# pragma GCC diagnostic ignored "-Wcast-align"
#endif
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/i386-darwin.macho-entry.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/i386-darwin.macho-fold.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/i386-darwin.macho-upxmain.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/i386-darwin.dylib-entry.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/amd64-darwin.macho-entry.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/amd64-darwin.macho-fold.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/amd64-darwin.macho-upxmain.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/amd64-darwin.dylib-entry.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/arm.v5a-darwin.macho-entry.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/arm.v5a-darwin.macho-fold.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/arm64-darwin.macho-entry.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/arm64-darwin.macho-fold.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/powerpc-darwin.macho-entry.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/powerpc-darwin.macho-fold.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/powerpc-darwin.macho-upxmain.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/powerpc-darwin.dylib-entry.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/powerpc64-darwin.macho-entry.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/powerpc64-darwin.macho-fold.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/powerpc64-darwin.dylib-entry.h"
// Packing a Darwin (Mach-o) Mac OS X dylib (dynamic shared library)
+12 -12
View File
@@ -38,15 +38,15 @@
#include "p_vmlinx.h"
#include "linker.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/i386-linux.kernel.vmlinux.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/amd64-linux.kernel.vmlinux.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/arm.v5a-linux.kernel.vmlinux.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/armeb.v5a-linux.kernel.vmlinux.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/powerpc-linux.kernel.vmlinux.h"
@@ -943,7 +943,7 @@ void PackVmlinuxPPC32::buildLoader(const Filter *ft)
addLoader("IDENTSTR,UPX1HEAD", nullptr);
}
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/powerpc64le-linux.kernel.vmlinux.h"
void PackVmlinuxPPC64LE::buildLoader(const Filter *ft)
{
@@ -971,15 +971,15 @@ void PackVmlinuxPPC64LE::buildLoader(const Filter *ft)
}
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/i386-linux.kernel.vmlinux-head.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/amd64-linux.kernel.vmlinux-head.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/arm.v5a-linux.kernel.vmlinux-head.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/armeb.v5a-linux.kernel.vmlinux-head.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/powerpc-linux.kernel.vmlinux-head.h"
unsigned PackVmlinuxI386::write_vmlinux_head(
@@ -1166,7 +1166,7 @@ bool PackVmlinuxPPC32::has_valid_vmlinux_head()
return false;
}
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/powerpc64le-linux.kernel.vmlinux-head.h"
bool PackVmlinuxPPC64LE::has_valid_vmlinux_head()
{
+3 -3
View File
@@ -37,7 +37,7 @@
#include "linker.h"
#include <zlib/zlib.h>
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/i386-linux.kernel.vmlinuz.h"
static const unsigned stack_offset_during_uncompression = 0x9000;
@@ -921,9 +921,9 @@ Linker* PackVmlinuzARMEL::newLinker() const
return new ElfLinkerArmLE;
}
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/arm.v5a-linux.kernel.vmlinux.h"
static const
static const CLANG_FORMAT_DUMMY_STATEMENT
#include "stub/arm.v5a-linux.kernel.vmlinuz-head.h"
void PackVmlinuzARMEL::buildLoader(const Filter *ft)
+1 -3
View File
@@ -30,15 +30,13 @@
// of class PackerBase which then does the actual work.
// And see p_com.cpp for a simple executable format.
#define WANT_WINDOWS_LEAN_H 1 // _get_osfhandle, GetFileTime, SetFileTime
#include "headers.h"
#if USE_UTIMENSAT
#include <sys/types.h>
#include <fcntl.h>
#include <sys/stat.h>
#endif
#if defined(_WIN32) || defined(__CYGWIN__)
#include "util/windows_lean.h" // _get_osfhandle, GetFileTime, SetFileTime
#endif
#include "conf.h"
#include "file.h"
#include "packmast.h"