mirror of
https://github.com/upx/upx.git
synced 2024-11-23 12:49:56 +00:00
all: minor cleanups
This commit is contained in:
parent
cba44c45fc
commit
ed3d7b0c45
@ -59,9 +59,9 @@ RUN cd /root \
|
||||
|
||||
# install official UPX release binaries into /usr/local/bin; not required but convenient for testing
|
||||
RUN cd /root \
|
||||
&& wget -q https://github.com/upx/upx/releases/download/v3.91/upx-3.91-amd64_linux.tar.bz2 \
|
||||
&& curl -sS -L -O https://github.com/upx/upx/releases/download/v3.91/upx-3.91-amd64_linux.tar.bz2 \
|
||||
&& xzversions="3.92 3.93 3.94 3.95 3.96 4.0.0 4.0.1 4.0.2 4.1.0 4.2.0 4.2.1 4.2.2 4.2.3 4.2.4" \
|
||||
&& for v in $xzversions; do wget -q https://github.com/upx/upx/releases/download/v${v}/upx-${v}-amd64_linux.tar.xz; done \
|
||||
&& for v in $xzversions; do curl -sS -L -O https://github.com/upx/upx/releases/download/v${v}/upx-${v}-amd64_linux.tar.xz; done \
|
||||
&& for f in ./upx-*.tar.*; do tar -xoaf $f; done \
|
||||
&& for v in 3.91 $xzversions; do d=upx-${v}-amd64_linux; ./$d/upx -qq -d $d/upx -o /usr/local/bin/upx-${v}; done \
|
||||
&& rm -r ./upx-*.tar.* ./upx-*linux \
|
||||
|
8
misc/podman/rebuild-stubs/packages.txt
generated
8
misc/podman/rebuild-stubs/packages.txt
generated
@ -144,7 +144,7 @@ ii libgcc-s1:i386 14-20240412-0ubuntu1 i386
|
||||
ii libgcrypt20:amd64 1.10.3-2build1 amd64 LGPL Crypto library - runtime library
|
||||
ii libgdbm-compat4t64:amd64 1.23-5.1build1 amd64 GNU dbm database routines (legacy support runtime version)
|
||||
ii libgdbm6t64:amd64 1.23-5.1build1 amd64 GNU dbm database routines (runtime version)
|
||||
ii libglib2.0-0t64:amd64 2.80.0-6ubuntu1 amd64 GLib library of C routines
|
||||
ii libglib2.0-0t64:amd64 2.80.0-6ubuntu3.1 amd64 GLib library of C routines
|
||||
ii libgmp10:amd64 2:6.3.0+dfsg-2ubuntu6 amd64 Multiprecision arithmetic library
|
||||
ii libgnutls30t64:amd64 3.8.3-1.1ubuntu3.1 amd64 GNU TLS library - main runtime library
|
||||
ii libgomp1:amd64 14-20240412-0ubuntu1 amd64 GCC OpenMP (GOMP) support library
|
||||
@ -186,7 +186,7 @@ ii libmspack0t64:amd64 0.11-1.1build1 amd64
|
||||
ii libncurses6:amd64 6.4+20240113-1ubuntu2 amd64 shared libraries for terminal handling
|
||||
ii libncursesw6:amd64 6.4+20240113-1ubuntu2 amd64 shared libraries for terminal handling (wide character support)
|
||||
ii libnettle8t64:amd64 3.9.1-2.2build1 amd64 low level cryptographic library (symmetric and one-way cryptos)
|
||||
ii libnghttp2-14:amd64 1.59.0-1build4 amd64 library implementing HTTP/2 protocol (shared library)
|
||||
ii libnghttp2-14:amd64 1.59.0-1ubuntu0.1 amd64 library implementing HTTP/2 protocol (shared library)
|
||||
ii libnl-3-200:amd64 3.7.0-0.3build1 amd64 library for dealing with netlink sockets
|
||||
ii libnl-genl-3-200:amd64 3.7.0-0.3build1 amd64 library for dealing with netlink sockets - generic netlink
|
||||
ii libnpth0t64:amd64 1.6-3.1build1 amd64 replacement for GNU Pth using system threads
|
||||
@ -361,7 +361,7 @@ ii zstd 1.5.5+dfsg2-2build1 amd64
|
||||
||/ Name Version Architecture Description
|
||||
|
||||
Packages sorted by Installed-Size:
|
||||
964659 ===== TOTAL (355 packages)
|
||||
964903 ===== TOTAL (355 packages)
|
||||
76943 valgrind amd64
|
||||
72249 gcc-13-x86-64-linux-gnu amd64
|
||||
37841 g++-13-x86-64-linux-gnu amd64
|
||||
@ -411,10 +411,10 @@ Packages sorted by Installed-Size:
|
||||
4879 libhwasan0 amd64
|
||||
4341 ncurses-term all
|
||||
4244 minify amd64
|
||||
4193 libglib2.0-0t64 amd64
|
||||
4103 apt amd64
|
||||
3983 gojq amd64
|
||||
3956 python3-pycryptodome amd64
|
||||
3949 libglib2.0-0t64 amd64
|
||||
3849 libgprofng0 amd64
|
||||
3806 liblsan0 amd64
|
||||
3721 groff-base amd64
|
||||
|
@ -232,6 +232,7 @@ struct CheckIntegral {
|
||||
checkU<typename std::add_const<T>::type>();
|
||||
}
|
||||
};
|
||||
|
||||
template <class T>
|
||||
struct CheckAlignment {
|
||||
static void check(void) noexcept {
|
||||
@ -256,16 +257,17 @@ struct CheckAlignment {
|
||||
UNUSED(t2);
|
||||
}
|
||||
};
|
||||
|
||||
template <class T>
|
||||
struct TestBELE {
|
||||
static noinline bool test(void) noexcept {
|
||||
CheckIntegral<T>::check();
|
||||
CheckAlignment<T>::check();
|
||||
// arithmetic checks
|
||||
T allbits = {};
|
||||
assert_noexcept(allbits == 0);
|
||||
allbits += 1;
|
||||
allbits -= 2;
|
||||
T all_bits = {};
|
||||
assert_noexcept(all_bits == 0);
|
||||
all_bits += 1;
|
||||
all_bits -= 2;
|
||||
T v1;
|
||||
v1 = 1;
|
||||
v1 *= 4;
|
||||
@ -279,7 +281,7 @@ struct TestBELE {
|
||||
assert_noexcept((v1 >= v2));
|
||||
assert_noexcept(!(v1 < v2));
|
||||
assert_noexcept(!(v1 > v2));
|
||||
v2 ^= allbits;
|
||||
v2 ^= all_bits;
|
||||
assert_noexcept(!(v1 == v2));
|
||||
assert_noexcept((v1 != v2));
|
||||
assert_noexcept((v1 <= v2));
|
||||
@ -305,6 +307,25 @@ struct TestBELE {
|
||||
}
|
||||
};
|
||||
|
||||
template <class T, bool T_is_signed>
|
||||
struct CheckSignedness {
|
||||
template <class U, bool U_is_signed>
|
||||
static inline void checkU(void) noexcept {
|
||||
COMPILE_TIME_ASSERT(sizeof(U) == sizeof(T));
|
||||
COMPILE_TIME_ASSERT(alignof(U) == alignof(T));
|
||||
COMPILE_TIME_ASSERT(U_is_signed ? ((U) 0 - 1 < 0) : ((U) 0 - 1 > 0));
|
||||
constexpr U all_bits = (U) (U(0) - U(1));
|
||||
COMPILE_TIME_ASSERT(U_is_signed ? (all_bits < 0) : (all_bits > 0));
|
||||
}
|
||||
static void check(void) noexcept {
|
||||
checkU<T, T_is_signed>();
|
||||
using signed_type = std::make_signed_t<T>;
|
||||
checkU<signed_type, true>();
|
||||
using unsigned_type = std::make_unsigned_t<T>;
|
||||
checkU<unsigned_type, false>();
|
||||
}
|
||||
};
|
||||
|
||||
template <class A, class B>
|
||||
struct TestNoAliasingStruct {
|
||||
static noinline bool test(A *a, B *b) noexcept {
|
||||
@ -501,12 +522,16 @@ void upx_compiler_sanity_check(void) noexcept {
|
||||
CheckIntegral<upx_ptraddr_t>::check();
|
||||
CheckIntegral<upx_uintptr_t>::check();
|
||||
|
||||
COMPILE_TIME_ASSERT(ptrdiff_t(0) - 1 < 0);
|
||||
COMPILE_TIME_ASSERT(intptr_t(0) - 1 < 0);
|
||||
COMPILE_TIME_ASSERT(size_t(0) - 1 > 0);
|
||||
COMPILE_TIME_ASSERT(uintptr_t(0) - 1 > 0);
|
||||
COMPILE_TIME_ASSERT(upx_ptraddr_t(0) - 1 > 0);
|
||||
COMPILE_TIME_ASSERT(upx_uintptr_t(0) - 1 > 0);
|
||||
CheckSignedness<long long, true>::check();
|
||||
CheckSignedness<ptrdiff_t, true>::check();
|
||||
CheckSignedness<intptr_t, true>::check();
|
||||
CheckSignedness<unsigned long long, false>::check();
|
||||
CheckSignedness<size_t, false>::check();
|
||||
CheckSignedness<uintptr_t, false>::check();
|
||||
CheckSignedness<upx_off_t, true>::check();
|
||||
CheckSignedness<upx_ptraddr_t, false>::check();
|
||||
CheckSignedness<upx_sptraddr_t, true>::check();
|
||||
CheckSignedness<upx_uintptr_t, false>::check();
|
||||
|
||||
COMPILE_TIME_ASSERT(sizeof(upx_charptr_unit_type) == 1)
|
||||
COMPILE_TIME_ASSERT_ALIGNED1(upx_charptr_unit_type)
|
||||
|
@ -145,7 +145,8 @@ typedef acc_int64_t upx_int64_t;
|
||||
typedef acc_uint64_t upx_uint64_t;
|
||||
typedef acc_uintptr_t upx_uintptr_t;
|
||||
// see CHERI ptraddr_t / vaddr_t
|
||||
typedef upx_uintptr_t upx_ptraddr_t;
|
||||
typedef acc_uintptr_t upx_ptraddr_t;
|
||||
typedef acc_intptr_t upx_sptraddr_t;
|
||||
|
||||
// UPX convention: use "byte" when dealing with data; use "char/uchar" when dealing
|
||||
// with strings; use "upx_uint8_t" when dealing with small integers
|
||||
|
@ -78,8 +78,7 @@ void xspan_check_range(const void *ptr, const void *base, ptrdiff_t size_in_byte
|
||||
xspan_fail_range_nullbase();
|
||||
#if defined(__SANITIZE_ADDRESS__) || 1
|
||||
// info: pointers are out of range deliberately during internal doctest checks; see dt_xspan.cpp
|
||||
ACC_COMPILE_TIME_ASSERT(sizeof(intptr_t) == sizeof(upx_ptraddr_t))
|
||||
const intptr_t off = ptr_get_address(ptr) - ptr_get_address(base);
|
||||
const upx_sptraddr_t off = ptr_get_address(ptr) - ptr_get_address(base);
|
||||
#else
|
||||
const ptrdiff_t off = (const charptr) ptr - (const charptr) base;
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user