Rebuild most of the .so's on Debian 10

Also fix up libbizhash so it builds on clang
Slight fixes to sameboy and msxhawk makefiles
Fix rcheevo submodule commit (no actual changes, just make it point to a commit upstream actually has)
SDL2 .so not yet rebuilt, need to consider how to do that
citra seems to need at least Debian 11 to build
libe_sqlite3.so seemed to have already been built with Debian 10 so not bothering touching that
libwaterboxhost.so is Rust / targets glibc 2.28 anyways, nothing needs to be done there
This commit is contained in:
CasualPokePlayer 2023-11-22 00:50:47 -08:00
parent ef90a3d63d
commit 1909950742
19 changed files with 19 additions and 17 deletions

Binary file not shown.

Binary file not shown.

BIN
Assets/dll/libbizhash.so Normal file → Executable file

Binary file not shown.

Binary file not shown.

BIN
Assets/dll/libbizswan.dll.so Normal file → Executable file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
Assets/dll/libemu83.so Normal file → Executable file

Binary file not shown.

BIN
Assets/dll/libfwunpack.so Normal file → Executable file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
Assets/dll/librcheevos.so Normal file → Executable file

Binary file not shown.

Binary file not shown.

View File

@ -32,7 +32,7 @@ extern uint64_t fold_16_vpclmulqdq(__m128i *xmm_crc0, __m128i *xmm_crc1,
extern uint64_t fold_16_vpclmulqdq_copy(__m128i *xmm_crc0, __m128i *xmm_crc1,
__m128i *xmm_crc2, __m128i *xmm_crc3, uint8_t *dst, const uint8_t *src, uint64_t len);
__attribute__((target("sse4.1", "pclmul")))
__attribute__((target("sse4.1,pclmul")))
static void fold_1(__m128i *xmm_crc0, __m128i *xmm_crc1, __m128i *xmm_crc2, __m128i *xmm_crc3) {
const __m128i xmm_fold4 = _mm_set_epi32(0x00000001, 0x54442bd4, 0x00000001, 0xc6e41596);
__m128i x_tmp3;
@ -53,7 +53,7 @@ static void fold_1(__m128i *xmm_crc0, __m128i *xmm_crc1, __m128i *xmm_crc2, __m1
*xmm_crc3 = _mm_castps_si128(ps_res);
}
__attribute__((target("sse4.1", "pclmul")))
__attribute__((target("sse4.1,pclmul")))
static void fold_2(__m128i *xmm_crc0, __m128i *xmm_crc1, __m128i *xmm_crc2, __m128i *xmm_crc3) {
const __m128i xmm_fold4 = _mm_set_epi32(0x00000001, 0x54442bd4, 0x00000001, 0xc6e41596);
__m128i x_tmp3, x_tmp2;
@ -82,7 +82,7 @@ static void fold_2(__m128i *xmm_crc0, __m128i *xmm_crc1, __m128i *xmm_crc2, __m1
*xmm_crc3 = _mm_castps_si128(ps_res31);
}
__attribute__((target("sse4.1", "pclmul")))
__attribute__((target("sse4.1,pclmul")))
static void fold_3(__m128i *xmm_crc0, __m128i *xmm_crc1, __m128i *xmm_crc2, __m128i *xmm_crc3) {
const __m128i xmm_fold4 = _mm_set_epi32(0x00000001, 0x54442bd4, 0x00000001, 0xc6e41596);
__m128i x_tmp3;
@ -117,7 +117,7 @@ static void fold_3(__m128i *xmm_crc0, __m128i *xmm_crc1, __m128i *xmm_crc2, __m1
*xmm_crc3 = _mm_castps_si128(ps_res32);
}
__attribute__((target("sse4.1", "pclmul")))
__attribute__((target("sse4.1,pclmul")))
static void fold_4(__m128i *xmm_crc0, __m128i *xmm_crc1, __m128i *xmm_crc2, __m128i *xmm_crc3) {
const __m128i xmm_fold4 = _mm_set_epi32(0x00000001, 0x54442bd4, 0x00000001, 0xc6e41596);
__m128i x_tmp0, x_tmp1, x_tmp2, x_tmp3;
@ -178,7 +178,7 @@ static const unsigned _Alignas(32) pshufb_shf_table[60] = {
0x0201008f, 0x06050403, 0x0a090807, 0x0e0d0c0b /* shl 1 (16 -15)/shr15*/
};
__attribute__((target("sse4.1", "pclmul")))
__attribute__((target("sse4.1,pclmul")))
static void partial_fold(const size_t len, __m128i *xmm_crc0, __m128i *xmm_crc1, __m128i *xmm_crc2,
__m128i *xmm_crc3, __m128i *xmm_crc_part) {
@ -224,7 +224,7 @@ static void partial_fold(const size_t len, __m128i *xmm_crc0, __m128i *xmm_crc1,
*xmm_crc3 = _mm_castps_si128(ps_res);
}
__attribute__((target("sse4.1", "pclmul")))
__attribute__((target("sse4.1,pclmul")))
static inline void crc32_fold_load(__m128i *fold, __m128i *fold0, __m128i *fold1, __m128i *fold2, __m128i *fold3) {
*fold0 = _mm_load_si128(fold + 0);
*fold1 = _mm_load_si128(fold + 1);
@ -232,7 +232,7 @@ static inline void crc32_fold_load(__m128i *fold, __m128i *fold0, __m128i *fold1
*fold3 = _mm_load_si128(fold + 3);
}
__attribute__((target("sse4.1", "pclmul")))
__attribute__((target("sse4.1,pclmul")))
static inline void crc32_fold_save(__m128i *fold, __m128i fold0, __m128i fold1, __m128i fold2, __m128i fold3) {
_mm_storeu_si128(fold + 0, fold0);
_mm_storeu_si128(fold + 1, fold1);
@ -240,7 +240,7 @@ static inline void crc32_fold_save(__m128i *fold, __m128i fold0, __m128i fold1,
_mm_storeu_si128(fold + 3, fold3);
}
__attribute__((target("sse4.1", "pclmul")))
__attribute__((target("sse4.1,pclmul")))
static uint32_t crc32_fold_pclmulqdq_reset(crc32_fold *crc) {
__m128i xmm_crc0 = _mm_cvtsi32_si128(0x9db42487);
__m128i xmm_zero = _mm_setzero_si128();
@ -251,7 +251,7 @@ static uint32_t crc32_fold_pclmulqdq_reset(crc32_fold *crc) {
#define ONCE(op) if (first) { first = 0; op; }
#define XOR_INITIAL(where) ONCE(where = _mm_xor_si128(where, xmm_initial))
__attribute__((target("sse4.1", "pclmul")))
__attribute__((target("sse4.1,pclmul")))
void crc32_fold_pclmulqdq(crc32_fold *crc, const uint8_t *src, uint64_t len, uint32_t init_crc) {
size_t algn_diff;
__m128i xmm_t0, xmm_t1, xmm_t2, xmm_t3;
@ -376,7 +376,7 @@ static const unsigned _Alignas(16) crc_mask2[4] = {
0x00000000, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF
};
__attribute__((target("sse4.1", "pclmul")))
__attribute__((target("sse4.1,pclmul")))
static uint32_t crc32_fold_pclmulqdq_final(crc32_fold *crc) {
const __m128i xmm_mask = _mm_load_si128((__m128i *)crc_mask);
const __m128i xmm_mask2 = _mm_load_si128((__m128i *)crc_mask2);
@ -436,7 +436,8 @@ static uint32_t crc32_fold_pclmulqdq_final(crc32_fold *crc) {
return crc->value;
}
__attribute__((target("sse4.1", "pclmul"))) __attribute__((visibility("hidden")))
__attribute__((target("sse4.1,pclmul")))
__attribute__((visibility("hidden")))
uint32_t crc32_pclmulqdq(uint32_t crc32, const uint8_t *buf, uint32_t len) {
// For lens < 64, crc32_braid method is faster.
if (len < 64)

View File

@ -9,7 +9,7 @@
#define ONCE(op) if (first) { first = 0; op; }
#define XOR_INITIAL(where) ONCE(where = _mm512_xor_si512(where, zmm_initial))
__attribute__((target("sse4.1", "pclmul", "avx512f", "vpclmulqdq")))
__attribute__((target("sse4.1,pclmul,avx512f,vpclmulqdq")))
uint64_t fold_16_vpclmulqdq(__m128i *xmm_crc0, __m128i *xmm_crc1,
__m128i *xmm_crc2, __m128i *xmm_crc3, const uint8_t *src, uint64_t len,
__m128i init_crc, int32_t first) {

View File

@ -6,7 +6,7 @@
#include <immintrin.h>
#include "common.h"
__attribute__((target("sha", "sse4.1")))
__attribute__((target("sha,sse4.1")))
void sha1_sha(uint32_t state[5], const uint8_t data[], uint32_t length) {
__m128i ABCD, ABCD_SAVE, E0, E0_SAVE, E1;
__m128i MSG0, MSG1, MSG2, MSG3;

@ -1 +1 @@
Subproject commit b91d539638f08c7810094e9ed8aafffd72a7af26
Subproject commit 46e1feaafb2e777ced9fbef14a22d54fd0191287

View File

@ -1,7 +1,7 @@
CXX = g++
CFLAGS = -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -Wno-unused-value -Wno-type-limits -O3 -flto -fvisibility=internal
LFLAGS = -shared
LFLAGS = -shared -s
SRCS = $(wildcard MSXHawk/*.cpp)

View File

@ -8,7 +8,7 @@ OBJ_DIR := $(OUT_DIR)/release
DOBJ_DIR := $(OUT_DIR)/debug
CC := gcc
CCFLAGS := -I$(CORE_DIR) -Wall -Wextra -std=gnu11 -fomit-frame-pointer -Wno-strict-aliasing \
CCFLAGS := -I$(CORE_DIR) -Wall -Wextra -std=gnu11 -Wno-strict-aliasing \
-Wno-multichar -Wno-implicit-fallthrough -Wno-sign-compare -Wno-unused-parameter \
-Wno-int-in-bool-context -Wno-missing-field-initializers -Wno-overflow -Wno-unused-result \
-D_GNU_SOURCE -D_USE_MATH_DEFINES -DNDEBUG -DGB_INTERNAL -DGB_DISABLE_DEBUGGER \
@ -18,6 +18,7 @@ ifeq ($(OS),Windows_NT)
TARGET := libsameboy.dll
else
TARGET := libsameboy.so
CCFLAGS := $(CCFLAGS) -fPIC
endif
SRCS := \
@ -42,7 +43,7 @@ LDFLAGS := -shared -Wno-attributes
CCFLAGS_DEBUG := -O0 -g
CCFLAGS_RELEASE := -O3 -flto
LDFLAGS_DEBUG :=
LDFLAGS_RELEASE := -s
LDFLAGS_RELEASE := -s -Wno-lto-type-mismatch
_OBJS := $(addsuffix .o,$(realpath $(SRCS)))
OBJS := $(patsubst $(ROOT_DIR)%,$(OBJ_DIR)%,$(_OBJS))