ci: Fix Clang build - #336
Draft
wojiushixiaobai wants to merge 1 commit into
Draft
Conversation
Signed-off-by: 吴小白 <296015668@qq.com> (cherry picked from commit 3d9ed5a) Signed-off-by: 吴小白 <296015668@qq.com>
wojiushixiaobai
marked this pull request as draft
July 20, 2026 08:53
Contributor
Author
|
一些尚未验证的补丁,有条件的可以自行验证下。 diff --git a/accel/tcg/user-exec.c b/accel/tcg/user-exec.c
index a2c25bc..311428a 100644
--- a/accel/tcg/user-exec.c
+++ b/accel/tcg/user-exec.c
@@ -204,7 +204,7 @@ static uint64_t parse_guest_store(siginfo_t *info, ucontext_t *uc, int *size)
{
uint32_t inst = *(uint32_t *)UC_PC(uc);
int rj = (inst >> 5) & 0x1f;
- int64_t imm, real_guest_addr;
+ int64_t imm, real_guest_addr = 0;
static uint64_t unsup = 0, unsup_sc = 0;
int s = -1; /* unsupport inst */
int check_cross_host = 1;
@@ -241,6 +241,7 @@ static uint64_t parse_guest_store(siginfo_t *info, ucontext_t *uc, int *size)
/* handle unsupport inst here */
unsup += 1;
if (s == -2) unsup_sc += 1;
+ check_cross_host = 0;
if (unsup < 0x100) {
qemu_log_mask(LAT_LOG_SMC,
diff --git a/linux-user/mmap.c b/linux-user/mmap.c
index c68e7aa..35aa30f 100644
--- a/linux-user/mmap.c
+++ b/linux-user/mmap.c
@@ -1301,12 +1301,13 @@ abi_long target_mremap(abi_ulong old_addr, abi_ulong old_size,
}
}
if (prot == 0) {
- if (reserved_va && new_size > old_size && num_pages)
+ if (reserved_va && new_size > old_size && num_pages) {
if (is_shadow_page_shmm(TARGET_PAGE_ALIGN(old_addr + old_size))) {
fprintf(stderr, "%s:%d, should not happen\n", __func__, __LINE__);
}
munmap(g2h_untagged(TARGET_PAGE_ALIGN(old_addr + old_size)),
num_pages*TARGET_PAGE_SIZE);
+ }
host_addr = mremap(g2h_untagged(old_addr),
old_size, new_size, flags);
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 74d0070..dbfe506 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -17467,6 +17467,7 @@ defined(__loongarch__)
#ifdef CONFIG_LATX_TUNNEL_LIB
case TUNNEL_VIRTUAL_SYSCALL_ID:
reg_priv_plt(arg1, arg2, arg3);
+ ret = 0;
break;
#endif
#if TARGET_ABI_BITS == 32 && HOST_LONG_BITS == 64
diff --git a/target/i386/latx/latx-name-demangling.cpp b/target/i386/latx/latx-name-demangling.cpp
index 09b4349..ca6a599 100644
--- a/target/i386/latx/latx-name-demangling.cpp
+++ b/target/i386/latx/latx-name-demangling.cpp
@@ -5,8 +5,9 @@
extern "C"
const char *latx_demangling(char *symbol)
{
- size_t b_sz = 1024;
- char buff[b_sz];
+ static constexpr size_t buff_capacity = 1024;
+ char buff[buff_capacity];
+ size_t b_sz = buff_capacity;
int status;
char *ret = abi::__cxa_demangle(symbol, buff, &b_sz, &status);
return (status == 0) ? ret : symbol;
diff --git a/target/i386/latx/optimization/flag-reduction.c b/target/i386/latx/optimization/flag-reduction.c
index be6e63d..9bf8a27 100644
--- a/target/i386/latx/optimization/flag-reduction.c
+++ b/target/i386/latx/optimization/flag-reduction.c
@@ -377,7 +377,7 @@ static bool flag_reduction_pass1(void *tb)
time_t ti = profile_getclock();
#endif
TranslationBlock *ptb = (TranslationBlock *)tb;
- IR1_INST *pir1 = dt_X86_INS_INVALID;
+ IR1_INST *pir1 = NULL;
/* scanning if this insts will def ALL_EFLAGS */
for (int i = tb_ir1_num(ptb) - 1; i >= 0; --i) {
diff --git a/target/i386/latx/optimization/hbr.c b/target/i386/latx/optimization/hbr.c
index a51e731..dcf0c0d 100644
--- a/target/i386/latx/optimization/hbr.c
+++ b/target/i386/latx/optimization/hbr.c
@@ -754,7 +754,7 @@ static void tb_xmm_analyse(TranslationBlock *tb,
tb->s_data->shbr_type = SHBR_NTYPE;
tb->s_data->xmm_use = 0;
tb->s_data->xmm_def = 0;
- IR1_INST *ir1 = dt_X86_INS_INVALID;
+ IR1_INST *ir1 = NULL;
for (int i = 0; i < tb_ir1_num(tb); ++i) {
ir1 = tb_ir1_inst(tb, i);
ir1->xmm_def = 0;
@@ -844,7 +844,7 @@ static void over_tb_shbr_opt(TranslationBlock **tb_list, int tb_num_in_tu,
for (int i = 0; i < tb_num_in_tu; i++) {
TranslationBlock *tb = tb_list[i];
if (tb->s_data->shbr_type != SHBR_NTYPE) {
- IR1_INST *ir1 = dt_X86_INS_INVALID;
+ IR1_INST *ir1 = NULL;
uint32_t no_opt_xmm = tb->s_data->xmm_out & SHBR_XMM_MASK;
for (int j = tb_ir1_num(tb) - 1; j >= 0; j--) {
/* fprintf(stderr, "%x\n", tb->s_data->xmm_out); */
@@ -923,7 +923,7 @@ static void clear_ir1_flag(TranslationBlock **tb_list, int tb_num_in_tu)
for (int i = 0; i < tb_num_in_tu; i++) {
TranslationBlock *tb = tb_list[i];
if (tb->s_data->shbr_type != SHBR_NTYPE) {
- IR1_INST *ir1 = dt_X86_INS_INVALID;
+ IR1_INST *ir1 = NULL;
for (int j = 0; j < tb_ir1_num(tb); j++) {
ir1 = tb_ir1_inst(tb, j);
ir1->hbr_flag = 0;
diff --git a/target/i386/latx/optimization/imm-cache.c b/target/i386/latx/optimization/imm-cache.c
index dffefbb..deabc32 100644
--- a/target/i386/latx/optimization/imm-cache.c
+++ b/target/i386/latx/optimization/imm-cache.c
@@ -46,7 +46,7 @@ const int itemp_map[4] = {
const int itemp_reverse_map[11] = {
[0 ... 10] = -1,
#ifndef TARGET_X86_64
- [ITEMP7] = 0, [ITEMP8] 1, [ITEMP9] = 2, [ITEMP10] = 3,
+ [ITEMP7] = 0, [ITEMP8] = 1, [ITEMP9] = 2, [ITEMP10] = 3,
#else
[ITEMP3] = 0, [ITEMP4] = 1, [ITEMP5] = 2, [ITEMP6] = 3,
#endif
diff --git a/target/i386/latx/optimization/ir1-optimization.c b/target/i386/latx/optimization/ir1-optimization.c
index 1045108..99b32fc 100644
--- a/target/i386/latx/optimization/ir1-optimization.c
+++ b/target/i386/latx/optimization/ir1-optimization.c
@@ -35,7 +35,7 @@ static void ir1_optimization_over_tb(TranslationBlock *tb)
if (!tb->icount) {
return;
}
- IR1_INST *ir1 = dt_X86_INS_INVALID;
+ IR1_INST *ir1 = NULL;
/* cross scanning var defination */
DEF_FLAG_RDTN(rdtn);
DEF_INSTS_PTN(ptn);
@@ -105,7 +105,7 @@ void over_tb_rfd(TranslationBlock **tb_list, int tb_num)
{
TranslationBlock *tb;
uint8_t eflag_def[tb_num];
- IR1_INST *ir1 = dt_X86_INS_INVALID;
+ IR1_INST *ir1 = NULL;
for (int i = 0; i < tb_num; i++) {
tb = tb_list[i];
if (!tb->icount) {
@@ -152,7 +152,7 @@ void ir1_optimization(TranslationBlock *tb)
if (!tb->icount) {
return;
}
- IR1_INST *ir1 = dt_X86_INS_INVALID;
+ IR1_INST *ir1 = NULL;
/* cross scanning var defination */
DEF_FLAG_RDTN(rdtn);
DEF_INSTS_PTN(ptn);
diff --git a/target/i386/latx/optimization/ir2-optimization.c b/target/i386/latx/optimization/ir2-optimization.c
index 58288b5..154feef 100644
--- a/target/i386/latx/optimization/ir2-optimization.c
+++ b/target/i386/latx/optimization/ir2-optimization.c
@@ -561,7 +561,7 @@ void ir2_opt_push_pop_fix(TranslationBlock *tb, CPUState *cpu, int i)
tr_ir2_generate(ntb);
IR2_INST *curr;
- int curr_id, end_id, off, patch_off, last_id;
+ int curr_id, end_id, off, patch_off, last_id = -1;
bool insert;
IR2_OPCODE op;
IR2_OPND esp;
diff --git a/target/i386/latx/sbt/aot.c b/target/i386/latx/sbt/aot.c
index 2270162..cc7ed66 100644
--- a/target/i386/latx/sbt/aot.c
+++ b/target/i386/latx/sbt/aot.c
@@ -831,7 +831,7 @@ static int get_tb_num(char *lib_name, CPUState *cpu) {
/* Get file size */
fseek(pf, 0, SEEK_END); /* seek to end of file */
size_t file_sz = ftell(pf); /* get current file pointer */
- char aot_version[strlen(AOT_VERSION) + 1];
+ char aot_version[sizeof(AOT_VERSION)];
/*check aot complete.*/
if (fseek(pf, -strlen(AOT_VERSION), SEEK_END) != 0) {
qemu_log_mask(LAT_LOG_AOT, "can't fseek aot file\n");
@@ -1158,7 +1158,7 @@ lib_info *aot_load(char *lib_name, void **curr_aot_buffer)
void *buffer;
struct stat statbuf;
lib_info *curr_lib_info = NULL;
- char aot_version[strlen(AOT_VERSION) + 1];
+ char aot_version[sizeof(AOT_VERSION)];
int fd = open(aot_file_path, O_RDONLY);
FILE *pf = NULL;
if (fd < 0) {
diff --git a/target/i386/latx/sbt/aot_merge.c b/target/i386/latx/sbt/aot_merge.c
index f8f551d..9ebde32 100644
--- a/target/i386/latx/sbt/aot_merge.c
+++ b/target/i386/latx/sbt/aot_merge.c
@@ -671,7 +671,7 @@ static int aot_load_no_lock(char *lib_name)
struct stat statbuf;
int count = aot_get_file_init(aot_file_path);
size_t total_file_sz = 0;
- char aot_version[strlen(AOT_VERSION) + 1];
+ char aot_version[sizeof(AOT_VERSION)];
lsassert(count > 0);
char tmp_file_path[PATH_MAX];
if (lstat(aot_file_path, &statbuf)) {
diff --git a/target/i386/latx/sbt/aot_recover_tb.c b/target/i386/latx/sbt/aot_recover_tb.c
index 866f252..81bb6b8 100644
--- a/target/i386/latx/sbt/aot_recover_tb.c
+++ b/target/i386/latx/sbt/aot_recover_tb.c
@@ -210,7 +210,7 @@ static void recover_tb_range(target_ulong page, struct aot_tb *p_aot_tbs,
/* Reserve space for tu tbmin table. */
TBMini *tbmini_ptr= (TBMini *)
ROUND_UP((uintptr_t)tcg_ctx->code_gen_ptr, CODE_GEN_ALIGN);
- qatomic_set(&tcg_ctx->code_gen_ptr, ROUND_UP((uintptr_t)tbmini_ptr +
+ qatomic_set(&tcg_ctx->code_gen_ptr, (void *)ROUND_UP((uintptr_t)tbmini_ptr +
sizeof(struct TBMini) * (tb_num_in_tu + 1), qemu_icache_linesize));
/* First tbm save tb_num_in_tu and TB_MAGIC. */
aot_tbmini_set_pointer((uintptr_t)tbmini_ptr, tb_num_in_tu, TB_MAGIC);
diff --git a/target/i386/latx/translator/tr-lock-fast-atomic.c b/target/i386/latx/translator/tr-lock-fast-atomic.c
index fc796e5..2defdc8 100644
--- a/target/i386/latx/translator/tr-lock-fast-atomic.c
+++ b/target/i386/latx/translator/tr-lock-fast-atomic.c
@@ -387,7 +387,7 @@ bool translate_lock_cmpxchg_fast_atomic(IR1_INST *pir1)
IR1_OPND *opnd0 = ir1_get_opnd(pir1, 0);
IR1_OPND *opnd1 = ir1_get_opnd(pir1, 1);
- IR2_OPND src0, src1;
+ IR2_OPND src1;
IR1_OPND *reg_ir1 = NULL;
int opnd0_size = ir1_opnd_size(opnd0);
@@ -418,7 +418,10 @@ bool translate_lock_cmpxchg_fast_atomic(IR1_INST *pir1)
la_amcas_db_d(mem_val, src1, mem_opnd);
if (ir1_need_calculate_any_flag(pir1)) {
- generate_eflag_calculation(src0, gpr_eax_opnd, mem_val, pir1, true);
+ IR2_OPND dest = ra_alloc_itemp();
+ la_sub_d(dest, gpr_eax_opnd, mem_val);
+ generate_eflag_calculation(
+ dest, gpr_eax_opnd, mem_val, pir1, true);
}
IR2_OPND temp1 = ra_alloc_itemp();
IR2_OPND temp2 = ra_alloc_itemp();
@@ -442,7 +445,12 @@ bool translate_lock_cmpxchg_fast_atomic(IR1_INST *pir1)
/* amcas always change rd to rj (change eax_opnd to *src0_mem_addr),
* so we need to generate EFLAGS.ZF by comparing old eax and new eax(src0_mem_addr) */
la_amcas_db_w(temp1, src1, mem_opnd);
- generate_eflag_calculation(src0, old_eax_opnd, temp1, pir1, true);
+ if (ir1_need_calculate_any_flag(pir1)) {
+ IR2_OPND dest = ra_alloc_itemp();
+ la_sub_w(dest, old_eax_opnd, temp1);
+ generate_eflag_calculation(
+ dest, old_eax_opnd, temp1, pir1, true);
+ }
la_mov32_zx(zx_opnd, temp1);
@@ -465,7 +473,10 @@ bool translate_lock_cmpxchg_fast_atomic(IR1_INST *pir1)
}
la_amcas_db_w(gpr_eax_opnd, src1, mem_opnd);
if (ir1_need_calculate_any_flag(pir1)) {
- generate_eflag_calculation(src0, eax_opnd, gpr_eax_opnd, pir1, true);
+ IR2_OPND dest = ra_alloc_itemp();
+ la_sub_w(dest, eax_opnd, gpr_eax_opnd);
+ generate_eflag_calculation(
+ dest, eax_opnd, gpr_eax_opnd, pir1, true);
}
return true;
@@ -486,7 +497,12 @@ bool translate_lock_cmpxchg_fast_atomic(IR1_INST *pir1)
lsassert(0);
}
- generate_eflag_calculation(src0, old_eax_opnd, temp1, pir1, true);
+ if (ir1_need_calculate_any_flag(pir1)) {
+ IR2_OPND dest = ra_alloc_itemp();
+ la_sub_w(dest, old_eax_opnd, temp1);
+ generate_eflag_calculation(
+ dest, old_eax_opnd, temp1, pir1, true);
+ }
IR2_OPND temp2 = ra_alloc_itemp();
la_xor(temp2, temp1, old_eax_opnd);
diff --git a/target/i386/latx/translator/tr-lock.c b/target/i386/latx/translator/tr-lock.c
index 08bc86b..9e50ac8 100644
--- a/target/i386/latx/translator/tr-lock.c
+++ b/target/i386/latx/translator/tr-lock.c
@@ -631,7 +631,14 @@ bool translate_lock_inc(IR1_INST *pir1)
if (CODEIS64 && opnd0_size == 64) {
la_addi_d(tmp, zero_ir2_opnd, 1);
la_amadd_db_d(src0, tmp, mem_opnd);
+
+ dest = ra_alloc_itemp();
+ la_addi_d(dest, src0, 1);
generate_eflag_calculation(dest, src0, src0, pir1, true);
+
+ ra_free_temp(src0);
+ ra_free_temp(dest);
+ ra_free_temp(tmp);
return true;
}
#endif
@@ -768,7 +775,14 @@ bool translate_lock_dec(IR1_INST *pir1)
if (CODEIS64 && opnd0_size == 64) {
la_addi_d(tmp, zero_ir2_opnd, -1);
la_amadd_db_d(src0, tmp, mem_opnd);
+
+ dest = ra_alloc_itemp();
+ la_addi_d(dest, src0, -1);
generate_eflag_calculation(dest, src0, src0, pir1, true);
+
+ ra_free_temp(src0);
+ ra_free_temp(dest);
+ ra_free_temp(tmp);
return true;
}
#endif
diff --git a/target/i386/latx/translator/tr-opnd-process.c b/target/i386/latx/translator/tr-opnd-process.c
index 9ce7f83..0f91a69 100644
--- a/target/i386/latx/translator/tr-opnd-process.c
+++ b/target/i386/latx/translator/tr-opnd-process.c
@@ -459,6 +459,7 @@ IR2_OPND load_ireg_from_ir1(IR1_OPND *opnd1, EXTENSION_MODE em, bool is_xmm_hi)
}
else if(ir1_opnd_is_ymm(opnd1)){
lsassert(0);
+ __builtin_unreachable();
}
else if(ir1_opnd_is_seg(opnd1)){
ret_opnd = ra_alloc_itemp_internal();
@@ -468,7 +469,7 @@ IR2_OPND load_ireg_from_ir1(IR1_OPND *opnd1, EXTENSION_MODE em, bool is_xmm_hi)
break;
}
lsassert(0);
- break;
+ __builtin_unreachable();
}
case dt_X86_OP_MEM: {
@@ -478,7 +479,7 @@ IR2_OPND load_ireg_from_ir1(IR1_OPND *opnd1, EXTENSION_MODE em, bool is_xmm_hi)
}
default:
lsassert(0);
- break;
+ __builtin_unreachable();
}
return ret_opnd;
diff --git a/target/i386/latx/translator/tr-pattern.c b/target/i386/latx/translator/tr-pattern.c
index 16aa8dc..09b47ff 100644
--- a/target/i386/latx/translator/tr-pattern.c
+++ b/target/i386/latx/translator/tr-pattern.c
@@ -813,7 +813,7 @@ static bool translate_test_jcc(IR1_INST *ir1)
load_ireg_from_ir1(opnd0, SIGN_EXTENSION, false);
IR2_OPND src_opnd_1;
- IR2_OPND temp;
+ IR2_OPND temp = src_opnd_0;
int is_same_reg = ir1_opnd_is_same_reg(opnd0, opnd1);
if (!is_same_reg) {
src_opnd_1 = load_ireg_from_ir1(opnd1, SIGN_EXTENSION, false); |
Contributor
Author
|
错误日志:
[396/396] Linking target latx-i386
FAILED: latx-i386
c++ -o latx-i386 libcommon.fa.p/cpus-common.c.o libcommon.fa.p/page-vary-common.c.o libcommon.fa.p/disas_i386.c.o libcommon.fa.p/disas_loongarch.c.o libcommon.fa.p/hw_core_cpu.c.o libcommon.fa.p/accel_accel-user.c.o libqemu-i386-linux-user.fa.p/linux-user_i386_signal.c.o libqemu-i386-linux-user.fa.p/linux-user_i386_cpu_loop.c.o libqemu-i386-linux-user.fa.p/target_i386_cpu.c.o libqemu-i386-linux-user.fa.p/target_i386_gdbstub.c.o libqemu-i386-linux-user.fa.p/target_i386_helper.c.o libqemu-i386-linux-user.fa.p/target_i386_xsave_helper.c.o libqemu-i386-linux-user.fa.p/target_i386_cpu-dump.c.o libqemu-i386-linux-user.fa.p/target_i386_sev-stub.c.o libqemu-i386-linux-user.fa.p/target_i386_tcg_bpt_helper.c.o libqemu-i386-linux-user.fa.p/target_i386_tcg_cc_helper.c.o libqemu-i386-linux-user.fa.p/target_i386_tcg_excp_helper.c.o libqemu-i386-linux-user.fa.p/target_i386_tcg_fpu_helper.c.o libqemu-i386-linux-user.fa.p/target_i386_tcg_int_helper.c.o libqemu-i386-linux-user.fa.p/target_i386_tcg_mem_helper.c.o libqemu-i386-linux-user.fa.p/target_i386_tcg_misc_helper.c.o libqemu-i386-linux-user.fa.p/target_i386_tcg_mpx_helper.c.o libqemu-i386-linux-user.fa.p/target_i386_tcg_seg_helper.c.o libqemu-i386-linux-user.fa.p/target_i386_tcg_smm_helper.c.o libqemu-i386-linux-user.fa.p/target_i386_tcg_svm_helper.c.o libqemu-i386-linux-user.fa.p/target_i386_tcg_tcg-cpu.c.o libqemu-i386-linux-user.fa.p/target_i386_tcg_translate.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_error.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_mem.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_latx-config.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_latx-options.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_latx-perf.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_latx-name-demangling.cpp.o libqemu-i386-linux-user.fa.p/target_i386_latx_latx-special-args.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_latx-signal.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_latx-disassemble-trace_latx-disassemble-trace.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_ir1_ir1.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_ir2_ir2.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_ir2_ir2-assemble.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_ir2_ir2-relocate.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_ir2_la-append.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_ir2_la-decode.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_ir2_la-disasm.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_optimization_tu.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_optimization_jrra.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_optimization_flag-lbt.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_optimization_flag-reduction.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_optimization_insts-pattern.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_optimization_ir1-optimization.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_optimization_ir2-optimization.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_optimization_tunnel-lib.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_optimization_syscall-tunnel.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_optimization_profile.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_optimization_ts.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_optimization_imm-cache.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_optimization_hbr.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_reg-alloc.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_tr-arith.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_tr-eflag.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_tr-eflag-process.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_tr-farith.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_tr-fcmovcc.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_tr-fctrl.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_tr-fldst.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_tr-jcc.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_tr-logic.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_tr-misc.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_tr-mov.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_tr-opnd-process.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_tr-setcc.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_tr-btx.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_tr-lock.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_tr-lock-fast-atomic.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_tr-simd.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_tr-vpaes.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_tr-simd-cmp.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_tr-simd-cvt.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_tr-simd-mov.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_tr-simd-shift.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_tr-simd-fma.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_tr-simd-sha.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_tr-simd-f16c.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_tr-avx.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_tr-avx-cmp.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_tr-avx-cvt.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_tr-avx-mov.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_tr-avx-shift.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_tr-bmi.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_tr-adx.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_tr-softfpu.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_tr-pattern.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_translate.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_runtime-trace.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_mem-interface.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_translator_macro-helper.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_sbt_segment.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_sbt_aot.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_sbt_file_ctx.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_sbt_aot_link_seg.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_sbt_aot_merge.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_sbt_aot_recover_tb.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_sbt_aot_lib.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_sbt_aot_page.c.o libqemu-i386-linux-user.fa.p/target_i386_latx_sbt_aot_smc.c.o libqemu-i386-linux-user.fa.p/trace_control-target.c.o libqemu-i386-linux-user.fa.p/cpu.c.o libqemu-i386-linux-user.fa.p/disas.c.o libqemu-i386-linux-user.fa.p/gdbstub.c.o libqemu-i386-linux-user.fa.p/tcg_optimize.c.o libqemu-i386-linux-user.fa.p/tcg_tcg-common.c.o libqemu-i386-linux-user.fa.p/tcg_tcg-op-gvec.c.o libqemu-i386-linux-user.fa.p/tcg_tcg-op-vec.c.o libqemu-i386-linux-user.fa.p/tcg_tcg-op.c.o libqemu-i386-linux-user.fa.p/tcg_tcg.c.o libqemu-i386-linux-user.fa.p/page-vary.c.o libqemu-i386-linux-user.fa.p/fpu_softfloat.c.o libqemu-i386-linux-user.fa.p/accel_accel-common.c.o libqemu-i386-linux-user.fa.p/accel_tcg_tcg-all.c.o libqemu-i386-linux-user.fa.p/accel_tcg_cpu-exec-common.c.o libqemu-i386-linux-user.fa.p/accel_tcg_cpu-exec.c.o libqemu-i386-linux-user.fa.p/accel_tcg_tcg-runtime-gvec.c.o libqemu-i386-linux-user.fa.p/accel_tcg_tcg-runtime.c.o libqemu-i386-linux-user.fa.p/accel_tcg_translate-all.c.o libqemu-i386-linux-user.fa.p/accel_tcg_translator.c.o libqemu-i386-linux-user.fa.p/accel_tcg_user-exec.c.o libqemu-i386-linux-user.fa.p/accel_tcg_user-exec-stub.c.o libqemu-i386-linux-user.fa.p/accel_stubs_hax-stub.c.o libqemu-i386-linux-user.fa.p/accel_stubs_xen-stub.c.o libqemu-i386-linux-user.fa.p/accel_stubs_kvm-stub.c.o libqemu-i386-linux-user.fa.p/linux-user_elfload-pagesize.c.o libqemu-i386-linux-user.fa.p/linux-user_elfload.c.o libqemu-i386-linux-user.fa.p/linux-user_exit.c.o libqemu-i386-linux-user.fa.p/linux-user_fd-trans.c.o libqemu-i386-linux-user.fa.p/linux-user_linuxload.c.o libqemu-i386-linux-user.fa.p/linux-user_main.c.o libqemu-i386-linux-user.fa.p/linux-user_mmap.c.o libqemu-i386-linux-user.fa.p/linux-user_safe-syscall.S.o libqemu-i386-linux-user.fa.p/linux-user_signal.c.o libqemu-i386-linux-user.fa.p/linux-user_strace.c.o libqemu-i386-linux-user.fa.p/linux-user_syscall.c.o libqemu-i386-linux-user.fa.p/linux-user_uaccess.c.o libqemu-i386-linux-user.fa.p/linux-user_uname.c.o libqemu-i386-linux-user.fa.p/linux-user_vm86.c.o libqemu-i386-linux-user.fa.p/thunk.c.o libqemu-i386-linux-user.fa.p/meson-generated_.._trace_generated-helpers.c.o -Llib/clang/22 -L/usr/lib/gcc/loongarch64-linux-gnu/14 -L/usr/lib/gcc/loongarch64-linux-gnu/14/../../../../lib64 -L/lib/loongarch64-linux-gnu -L/lib/../lib64 -L/usr/lib/loongarch64-linux-gnu -L/usr/lib64 -L/lib -L/usr/lib -Wl,--as-needed -Wl,--no-undefined -pie -Wl,--whole-archive libhwcore.fa libqom.fa -Wl,--no-whole-archive -Wl,-z,relro -Wl,-z,now -Wl,--start-group -lcrypto -lz -Wl,--export-dynamic -fuse-ld=bfd -T/opt/lat/latx-new.lds -fstack-protector-strong target/i386/latx/liblazydis.a target/i386/latx/libcapstone_git.a libqemuutil.a libhwcore.fa libqom.fa -L/opt/lat/target/i386/latx/exlib -lZydis -lZycore -lrt -pthread -lm -lgthread-2.0 -lglib-2.0 -lstdc++ -Wl,--end-group
/usr/bin/ld.bfd: libqemu-i386-linux-user.fa.p/target_i386_cpu.c.o: in function `x86_cpu_expand_features':
/opt/lat/build32-dbg/../target/i386/cpu.c:6582:(.text+0x48b4): undefined reference to `kvm_arch_get_supported_cpuid'
/usr/bin/ld.bfd: /opt/lat/build32-dbg/../target/i386/cpu.c:6584:(.text+0x48d0): undefined reference to `kvm_arch_get_supported_cpuid'
/usr/bin/ld.bfd: /opt/lat/build32-dbg/../target/i386/cpu.c:6581:(.text+0x48ec): undefined reference to `kvm_arch_get_supported_cpuid'
/usr/bin/ld.bfd: /opt/lat/build32-dbg/../target/i386/cpu.c:6577:(.text+0x4904): undefined reference to `kvm_arch_get_supported_cpuid'
/usr/bin/ld.bfd: /opt/lat/build32-dbg/../target/i386/cpu.c:6588:(.text+0x491c): undefined reference to `kvm_arch_get_supported_cpuid'
c++: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
[469/469] Linking target latx-x86_64
FAILED: latx-x86_64
c++ -o latx-x86_64 libcommon.fa.p/cpus-common.c.o libcommon.fa.p/page-vary-common.c.o libcommon.fa.p/disas_i386.c.o libcommon.fa.p/disas_loongarch.c.o libcommon.fa.p/hw_core_cpu.c.o libcommon.fa.p/accel_accel-user.c.o libqemu-x86_64-linux-user.fa.p/linux-user_x86_64_signal.c.o libqemu-x86_64-linux-user.fa.p/linux-user_x86_64_cpu_loop.c.o libqemu-x86_64-linux-user.fa.p/target_i386_cpu.c.o libqemu-x86_64-linux-user.fa.p/target_i386_gdbstub.c.o libqemu-x86_64-linux-user.fa.p/target_i386_helper.c.o libqemu-x86_64-linux-user.fa.p/target_i386_xsave_helper.c.o libqemu-x86_64-linux-user.fa.p/target_i386_cpu-dump.c.o libqemu-x86_64-linux-user.fa.p/target_i386_sev-stub.c.o libqemu-x86_64-linux-user.fa.p/target_i386_tcg_bpt_helper.c.o libqemu-x86_64-linux-user.fa.p/target_i386_tcg_cc_helper.c.o libqemu-x86_64-linux-user.fa.p/target_i386_tcg_excp_helper.c.o libqemu-x86_64-linux-user.fa.p/target_i386_tcg_fpu_helper.c.o libqemu-x86_64-linux-user.fa.p/target_i386_tcg_int_helper.c.o libqemu-x86_64-linux-user.fa.p/target_i386_tcg_mem_helper.c.o libqemu-x86_64-linux-user.fa.p/target_i386_tcg_misc_helper.c.o libqemu-x86_64-linux-user.fa.p/target_i386_tcg_mpx_helper.c.o libqemu-x86_64-linux-user.fa.p/target_i386_tcg_seg_helper.c.o libqemu-x86_64-linux-user.fa.p/target_i386_tcg_smm_helper.c.o libqemu-x86_64-linux-user.fa.p/target_i386_tcg_svm_helper.c.o libqemu-x86_64-linux-user.fa.p/target_i386_tcg_tcg-cpu.c.o libqemu-x86_64-linux-user.fa.p/target_i386_tcg_translate.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_error.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_mem.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_latx-config.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_latx-options.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_latx-perf.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_latx-name-demangling.cpp.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_latx-special-args.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_latx-signal.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_latx-disassemble-trace_latx-disassemble-trace.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_ir1_ir1.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_ir2_ir2.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_ir2_ir2-assemble.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_ir2_ir2-relocate.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_ir2_la-append.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_ir2_la-decode.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_ir2_la-disasm.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_optimization_tu.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_optimization_jrra.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_optimization_flag-lbt.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_optimization_flag-reduction.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_optimization_insts-pattern.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_optimization_ir1-optimization.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_optimization_ir2-optimization.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_optimization_tunnel-lib.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_optimization_syscall-tunnel.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_optimization_profile.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_optimization_ts.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_optimization_imm-cache.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_optimization_hbr.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_reg-alloc.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_tr-arith.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_tr-eflag.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_tr-eflag-process.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_tr-farith.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_tr-fcmovcc.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_tr-fctrl.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_tr-fldst.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_tr-jcc.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_tr-logic.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_tr-misc.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_tr-mov.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_tr-opnd-process.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_tr-setcc.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_tr-btx.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_tr-lock.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_tr-lock-fast-atomic.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_tr-simd.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_tr-vpaes.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_tr-simd-cmp.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_tr-simd-cvt.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_tr-simd-mov.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_tr-simd-shift.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_tr-simd-fma.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_tr-simd-sha.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_tr-simd-f16c.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_tr-avx.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_tr-avx-cmp.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_tr-avx-cvt.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_tr-avx-mov.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_tr-avx-shift.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_tr-bmi.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_tr-adx.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_tr-softfpu.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_tr-pattern.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_translate.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_runtime-trace.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_mem-interface.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_translator_macro-helper.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_sbt_segment.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_sbt_aot.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_sbt_file_ctx.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_sbt_aot_link_seg.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_sbt_aot_merge.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_sbt_aot_recover_tb.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_sbt_aot_lib.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_sbt_aot_page.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_sbt_aot_smc.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedvulkan.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibc.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibvadrm.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibva.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibvax11.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibxcbxkb.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibxcb.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibxcbdri2.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibxcbdri3.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibxcbglx.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibxcbimage.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibxcbkeysyms.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibxcbrandr.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibxcbshape.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibxcbshm.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibxcbxfixes.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibxcbxtest.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibxcbcursor.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibxcbicccm.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibxcbpresent.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibxcbrender.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibxcbrenderutil.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibxcbsync.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibxcbutil.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibxcbxinerama.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibxcbxinput.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibx11xcb.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedxkbcommon.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedxkbcommonx11.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibxpm.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibxmu.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibxdamage.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibxcomposite.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibxrender.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibxft.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibxtst.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibxt.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibxss.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibxrandr.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibxi.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedxinerama.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibxcursor.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibx11.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibxext.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibgl.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibglu.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibglx.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibxxf86vm.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibxau.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibxdmcp.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedxshmfence.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibxfixes.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappedlibegl.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_box64context.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_librarian.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_dictionnary.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_symbols.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_library.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_pathcoll.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_fileutils.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_elfparser.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_elfloader.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_elfload_dump.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_mallochook.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_bridge.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrapperdebug.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrapper.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_myalign.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_obstack.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_globalsymbols.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_callback.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_context_wrappertbbridge.c.o libqemu-x86_64-linux-user.fa.p/target_i386_latx_wrapper_wrapper.c.o libqemu-x86_64-linux-user.fa.p/trace_control-target.c.o libqemu-x86_64-linux-user.fa.p/cpu.c.o libqemu-x86_64-linux-user.fa.p/disas.c.o libqemu-x86_64-linux-user.fa.p/gdbstub.c.o libqemu-x86_64-linux-user.fa.p/tcg_optimize.c.o libqemu-x86_64-linux-user.fa.p/tcg_tcg-common.c.o libqemu-x86_64-linux-user.fa.p/tcg_tcg-op-gvec.c.o libqemu-x86_64-linux-user.fa.p/tcg_tcg-op-vec.c.o libqemu-x86_64-linux-user.fa.p/tcg_tcg-op.c.o libqemu-x86_64-linux-user.fa.p/tcg_tcg.c.o libqemu-x86_64-linux-user.fa.p/page-vary.c.o libqemu-x86_64-linux-user.fa.p/fpu_softfloat.c.o libqemu-x86_64-linux-user.fa.p/accel_accel-common.c.o libqemu-x86_64-linux-user.fa.p/accel_tcg_tcg-all.c.o libqemu-x86_64-linux-user.fa.p/accel_tcg_cpu-exec-common.c.o libqemu-x86_64-linux-user.fa.p/accel_tcg_cpu-exec.c.o libqemu-x86_64-linux-user.fa.p/accel_tcg_tcg-runtime-gvec.c.o libqemu-x86_64-linux-user.fa.p/accel_tcg_tcg-runtime.c.o libqemu-x86_64-linux-user.fa.p/accel_tcg_translate-all.c.o libqemu-x86_64-linux-user.fa.p/accel_tcg_translator.c.o libqemu-x86_64-linux-user.fa.p/accel_tcg_user-exec.c.o libqemu-x86_64-linux-user.fa.p/accel_tcg_user-exec-stub.c.o libqemu-x86_64-linux-user.fa.p/accel_stubs_hax-stub.c.o libqemu-x86_64-linux-user.fa.p/accel_stubs_xen-stub.c.o libqemu-x86_64-linux-user.fa.p/accel_stubs_kvm-stub.c.o libqemu-x86_64-linux-user.fa.p/linux-user_elfload-pagesize.c.o libqemu-x86_64-linux-user.fa.p/linux-user_elfload.c.o libqemu-x86_64-linux-user.fa.p/linux-user_exit.c.o libqemu-x86_64-linux-user.fa.p/linux-user_fd-trans.c.o libqemu-x86_64-linux-user.fa.p/linux-user_linuxload.c.o libqemu-x86_64-linux-user.fa.p/linux-user_main.c.o libqemu-x86_64-linux-user.fa.p/linux-user_mmap.c.o libqemu-x86_64-linux-user.fa.p/linux-user_safe-syscall.S.o libqemu-x86_64-linux-user.fa.p/linux-user_signal.c.o libqemu-x86_64-linux-user.fa.p/linux-user_strace.c.o libqemu-x86_64-linux-user.fa.p/linux-user_syscall.c.o libqemu-x86_64-linux-user.fa.p/linux-user_uaccess.c.o libqemu-x86_64-linux-user.fa.p/linux-user_uname.c.o libqemu-x86_64-linux-user.fa.p/linux-user_vm86.c.o libqemu-x86_64-linux-user.fa.p/thunk.c.o libqemu-x86_64-linux-user.fa.p/meson-generated_.._trace_generated-helpers.c.o -Llib/clang/22 -L/usr/lib/gcc/loongarch64-linux-gnu/14 -L/usr/lib/gcc/loongarch64-linux-gnu/14/../../../../lib64 -L/lib/loongarch64-linux-gnu -L/lib/../lib64 -L/usr/lib/loongarch64-linux-gnu -L/usr/lib64 -L/lib -L/usr/lib -Wl,--as-needed -Wl,--no-undefined -pie -Wl,--whole-archive libhwcore.fa libqom.fa -Wl,--no-whole-archive -Wl,-z,relro -Wl,-z,now -Wl,--start-group -lcrypto -lz -Wl,--export-dynamic -fuse-ld=bfd -T/opt/lat/latx-x86_64-new.lds -ldl -fstack-protector-strong target/i386/latx/liblazydis.a target/i386/latx/libcapstone_git.a libqemuutil.a libhwcore.fa libqom.fa -L/opt/lat/target/i386/latx/exlib -lZydis -lZycore -lrt -pthread -lm -lgthread-2.0 -lglib-2.0 -lstdc++ -Wl,--end-group
/usr/bin/ld.bfd: libqemu-x86_64-linux-user.fa.p/target_i386_cpu.c.o: in function `x86_cpu_expand_features':
/opt/lat/build64-dbg/../target/i386/cpu.c:6582:(.text+0x48f8): undefined reference to `kvm_arch_get_supported_cpuid'
/usr/bin/ld.bfd: /opt/lat/build64-dbg/../target/i386/cpu.c:6584:(.text+0x4914): undefined reference to `kvm_arch_get_supported_cpuid'
/usr/bin/ld.bfd: /opt/lat/build64-dbg/../target/i386/cpu.c:6581:(.text+0x4930): undefined reference to `kvm_arch_get_supported_cpuid'
/usr/bin/ld.bfd: /opt/lat/build64-dbg/../target/i386/cpu.c:6577:(.text+0x4948): undefined reference to `kvm_arch_get_supported_cpuid'
/usr/bin/ld.bfd: /opt/lat/build64-dbg/../target/i386/cpu.c:6588:(.text+0x4960): undefined reference to `kvm_arch_get_supported_cpuid'
c++: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
适配 Clang 交叉编译,目前还有一些问题:
./latxbuild/build-release.sh编译通过./latxbuild/build32.sh编译失败./latxbuild/build32-dbg.sh编译失败./latxbuild/build64.sh编译失败./latxbuild/build64-dbg.sh编译失败