Fix lib.h falling back to TARGET_LINUX during wasm_module and c module compilation

This commit is contained in:
2026-07-26 13:31:13 +02:00
parent 822b59d70e
commit 9baf6605ed
18 changed files with 62 additions and 36 deletions
+7 -6
View File
@@ -265,14 +265,15 @@ sub compile_wasm_module {
my ( $srcs, $inc ) = Util::find_tacle_sources($module); my ( $srcs, $inc ) = Util::find_tacle_sources($module);
Util::run( Util::run(
"$wasi_root/bin/clang", @wasi_cflags, "$wasi_root/bin/clang", @wasi_cflags,
"-Dmain=tacle_main_bullshit", "-I$inc", "-Dmain=tacle_main_bullshit", "-DTARGET_WASM",
"targets/wasm-module/$module.cpp", @$srcs, "-I$inc", "targets/wasm-module/$module.cpp",
'-o', "$bd/wasm_module.wasm" @$srcs, '-o',
"$bd/wasm_module.wasm"
); );
} }
else { else {
Util::run( "$wasi_root/bin/clang", @wasi_cflags, Util::run( "$wasi_root/bin/clang", @wasi_cflags,
"targets/wasm-module/$module.cpp", "-DTARGET_WASM", "targets/wasm-module/$module.cpp",
'-o', "$bd/wasm_module.wasm" ); '-o', "$bd/wasm_module.wasm" );
} }
@@ -372,8 +373,8 @@ sub compile_c_module {
my ( $module, $bd, $target ) = @_; my ( $module, $bd, $target ) = @_;
my ( $cc, @flags ) = my ( $cc, @flags ) =
( $target eq 'linux' ) ( $target eq 'linux' )
? ( $linux_cc, @linux_cflags ) ? ( $linux_cc, @linux_cflags, '-DTARGET_LINUX' )
: ( $cross_cc, @cross_cflags ); : ( $cross_cc, @cross_cflags, '-DTARGET_FAIL' );
if ( Util::module_is_tacle($module) ) { if ( Util::module_is_tacle($module) ) {
my ( $srcs, $inc ) = Util::find_tacle_sources($module); my ( $srcs, $inc ) = Util::find_tacle_sources($module);
+11 -6
View File
@@ -10,17 +10,23 @@
#define IMPORT(fnct) __attribute__((import_module("env"), import_name(fnct))) #define IMPORT(fnct) __attribute__((import_module("env"), import_name(fnct)))
#if !defined(TARGET_FAIL) && !defined(TARGET_LINUX_BAREMETAL) && \ #if !defined(TARGET_FAIL) && !defined(TARGET_LINUX_BAREMETAL) && \
!defined(TARGET_LINUX) !defined(TARGET_LINUX) && !defined(TARGET_WASM)
// Set to linux while editing to prevent lsp errors // Set to linux while editing to prevent lsp errors
#define TARGET_LINUX #define TARGET_LINUX
#endif #endif
// Both the wasm wrapper and the wasm module use lib.h
// TARGET_WASM is for the wasm module...
#ifdef TARGET_WASM
#define PRINT(fmt, ...) print(fmt)
#endif
// ...the rest is for the wasm wrapper
#ifdef TARGET_FAIL #ifdef TARGET_FAIL
#define MAIN void os_main(void) #define MAIN void os_main(void)
#define PRINT(fmt, ...) #define PRINT(fmt, ...)
#define PRINT_ERROR(fmt, ...) #define PRINT_ERROR(fmt, ...)
#define PRINT_SUCCESS(fmt, ...) #define PRINT_SUCCESS(fmt, ...)
#define HOST_PRINT(msg)
#define RET(val) return #define RET(val) return
#endif #endif
@@ -29,11 +35,11 @@
#define PRINT(fmt, ...) #define PRINT(fmt, ...)
#define PRINT_ERROR(fmt, ...) #define PRINT_ERROR(fmt, ...)
#define PRINT_SUCCESS(fmt, ...) #define PRINT_SUCCESS(fmt, ...)
#define HOST_PRINT(msg) #define RET(val) return val
#define RET(val) return
#endif #endif
#ifdef TARGET_LINUX #ifdef TARGET_LINUX
#include "stdio.h"
#define MAIN int main(int argc, char *argv[]) #define MAIN int main(int argc, char *argv[])
#define PRINT(fmt, ...) fprintf(stdout, fmt, ##__VA_ARGS__) #define PRINT(fmt, ...) fprintf(stdout, fmt, ##__VA_ARGS__)
#define PRINT_ERROR(fmt, ...) \ #define PRINT_ERROR(fmt, ...) \
@@ -42,8 +48,7 @@
#define PRINT_SUCCESS(fmt, ...) \ #define PRINT_SUCCESS(fmt, ...) \
fprintf(stdout, "[Success] "); \ fprintf(stdout, "[Success] "); \
fprintf(stdout, fmt, ##__VA_ARGS__) fprintf(stdout, fmt, ##__VA_ARGS__)
#define HOST_PRINT(msg) print(msg) #define RET(val) return val
#define RET(val) return val;
#endif #endif
typedef uint16_t enc_t; typedef uint16_t enc_t;
+2 -2
View File
@@ -52,11 +52,11 @@ extern "C" EXPORT("wasm_module") int wasm_module(void) {
}; };
if (cmp(Calculated, Expected)) { if (cmp(Calculated, Expected)) {
HOST_PRINT("result correct.\n"); PRINT("result correct.\n");
fail_marker_positive(); fail_marker_positive();
return 0; return 0;
} else { } else {
HOST_PRINT("result incorrect.\n"); PRINT("result incorrect.\n");
fail_marker_negative(); fail_marker_negative();
return 1; return 1;
} }
+2 -2
View File
@@ -25,11 +25,11 @@ extern "C" EXPORT("wasm_module") int wasm_module(void) {
fail_stop_trace(); fail_stop_trace();
if (X == 5) { if (X == 5) {
HOST_PRINT("result correct.\n"); PRINT("result correct.\n");
fail_marker_positive(); fail_marker_positive();
return 0; return 0;
} else { } else {
HOST_PRINT("result incorrect.\n"); PRINT("result incorrect.\n");
fail_marker_negative(); fail_marker_negative();
return 1; return 1;
} }
+3 -3
View File
@@ -17,7 +17,7 @@ static void naive_vote(void) {
} else if (YC == ZC) { } else if (YC == ZC) {
vote_res = YC; vote_res = YC;
} else { } else {
HOST_PRINT("all replicas differ.\n"); PRINT("all replicas differ.\n");
fail_marker_detected(); fail_marker_detected();
} }
} }
@@ -50,11 +50,11 @@ extern "C" EXPORT("wasm_module") int wasm_module(void) {
fail_stop_trace(); fail_stop_trace();
if (vote_res == 5) { if (vote_res == 5) {
HOST_PRINT("vote success.\n"); PRINT("vote success.\n");
fail_marker_positive(); fail_marker_positive();
return 0; return 0;
} else { } else {
HOST_PRINT("undetected error.\n"); PRINT("undetected error.\n");
fail_marker_negative(); fail_marker_negative();
return 1; return 1;
} }
+6 -6
View File
@@ -27,7 +27,7 @@ static enc_t sum_out[REPLICA_COUNT];
static INLINE enc_t apply(enc_t vc, sign_t bdyn) { static INLINE enc_t apply(enc_t vc, sign_t bdyn) {
if (bdyn > SIG_MAX) { if (bdyn > SIG_MAX) {
HOST_PRINT("signature overflow.\n"); PRINT("signature overflow.\n");
fail_marker_detected(); fail_marker_detected();
} }
return vc + bdyn; return vc + bdyn;
@@ -49,7 +49,7 @@ static sign_t cored_vote(void) {
cored_res = apply(XC, (XC - ZC)); cored_res = apply(XC, (XC - ZC));
return SIG_s_XZ; return SIG_s_XZ;
} else { } else {
HOST_PRINT("all replicas differ.\n"); PRINT("all replicas differ.\n");
fail_marker_detected(); fail_marker_detected();
return 0; return 0;
} }
@@ -93,7 +93,7 @@ extern "C" EXPORT("wasm_module") int wasm_module(void) {
vote_result_sig = SIG_Y; vote_result_sig = SIG_Y;
break; break;
default: default:
HOST_PRINT("unknown static_sig.\n"); PRINT("unknown static_sig.\n");
break; break;
} }
@@ -102,18 +102,18 @@ extern "C" EXPORT("wasm_module") int wasm_module(void) {
/* Validate Vote result */ /* Validate Vote result */
if (!check(cored_res, THE_A, vote_result_sig)) { if (!check(cored_res, THE_A, vote_result_sig)) {
HOST_PRINT("voted result invalid.\n"); PRINT("voted result invalid.\n");
fail_marker_detected(); fail_marker_detected();
return 2; return 2;
} }
plain_t res = decode(cored_res, THE_A, vote_result_sig); plain_t res = decode(cored_res, THE_A, vote_result_sig);
if (res == 5) { if (res == 5) {
HOST_PRINT("cored success.\n"); PRINT("cored success.\n");
fail_marker_positive(); fail_marker_positive();
return 0; return 0;
} else { } else {
HOST_PRINT("undetected error.\n"); PRINT("undetected error.\n");
fail_marker_negative(); fail_marker_negative();
return 1; return 1;
} }
+3 -3
View File
@@ -17,7 +17,7 @@ static void naive_vote(void) {
} else if (YC == ZC) { } else if (YC == ZC) {
vote_res = YC; vote_res = YC;
} else { } else {
HOST_PRINT("all replicas differ.\n"); PRINT("all replicas differ.\n");
fail_marker_detected(); fail_marker_detected();
} }
} }
@@ -50,11 +50,11 @@ extern "C" EXPORT("wasm_module") int wasm_module(void) {
fail_stop_trace(); fail_stop_trace();
if (vote_res == 5) { if (vote_res == 5) {
HOST_PRINT("vote success.\n"); PRINT("vote success.\n");
fail_marker_positive(); fail_marker_positive();
return 0; return 0;
} else { } else {
HOST_PRINT("undetected error.\n"); PRINT("undetected error.\n");
fail_marker_negative(); fail_marker_negative();
return 1; return 1;
} }
+6 -6
View File
@@ -27,7 +27,7 @@ static enc_t sum_out[REPLICA_COUNT];
static INLINE enc_t apply(enc_t vc, sign_t bdyn) { static INLINE enc_t apply(enc_t vc, sign_t bdyn) {
if (bdyn > SIG_MAX) { if (bdyn > SIG_MAX) {
HOST_PRINT("signature overflow.\n"); PRINT("signature overflow.\n");
fail_marker_detected(); fail_marker_detected();
} }
return vc + bdyn; return vc + bdyn;
@@ -49,7 +49,7 @@ static sign_t cored_vote(void) {
cored_res = apply(XC, (XC - ZC)); cored_res = apply(XC, (XC - ZC));
return SIG_s_XZ; return SIG_s_XZ;
} else { } else {
HOST_PRINT("all replicas differ.\n"); PRINT("all replicas differ.\n");
fail_marker_detected(); fail_marker_detected();
return 0; return 0;
} }
@@ -93,7 +93,7 @@ extern "C" EXPORT("wasm_module") int wasm_module(void) {
vote_result_sig = SIG_Y; vote_result_sig = SIG_Y;
break; break;
default: default:
HOST_PRINT("unknown static_sig.\n"); PRINT("unknown static_sig.\n");
break; break;
} }
@@ -102,18 +102,18 @@ extern "C" EXPORT("wasm_module") int wasm_module(void) {
/* Validate Vote result */ /* Validate Vote result */
if (!check(cored_res, THE_A, vote_result_sig)) { if (!check(cored_res, THE_A, vote_result_sig)) {
HOST_PRINT("voted result invalid.\n"); PRINT("voted result invalid.\n");
fail_marker_detected(); fail_marker_detected();
return 2; return 2;
} }
plain_t res = decode(cored_res, THE_A, vote_result_sig); plain_t res = decode(cored_res, THE_A, vote_result_sig);
if (res == 5) { if (res == 5) {
HOST_PRINT("cored success.\n"); PRINT("cored success.\n");
fail_marker_positive(); fail_marker_positive();
return 0; return 0;
} else { } else {
HOST_PRINT("undetected error.\n"); PRINT("undetected error.\n");
fail_marker_negative(); fail_marker_negative();
return 1; return 1;
} }
@@ -16,8 +16,10 @@ EXPORT("wasm_module") int wasm_module(void) {
int ret = binarysearch_return() - (-1); int ret = binarysearch_return() - (-1);
if (ret == 0) { if (ret == 0) {
PRINT("result correct.\n");
fail_marker_positive(); fail_marker_positive();
} else { } else {
PRINT("result incorrect.\n");
fail_marker_negative(); fail_marker_negative();
} }
return ret; return ret;
@@ -16,8 +16,10 @@ EXPORT("wasm_module") int wasm_module(void) {
int ret = bsort_return(); int ret = bsort_return();
if (ret == 0) { if (ret == 0) {
PRINT("result correct.\n");
fail_marker_positive(); fail_marker_positive();
} else { } else {
PRINT("result incorrect.\n");
fail_marker_negative(); fail_marker_negative();
} }
return ret; return ret;
@@ -16,8 +16,10 @@ EXPORT("wasm_module") int wasm_module(void) {
int ret = complex_updates_return(); int ret = complex_updates_return();
if (ret == 0) { if (ret == 0) {
PRINT("result correct.\n");
fail_marker_positive(); fail_marker_positive();
} else { } else {
PRINT("result incorrect.\n");
fail_marker_negative(); fail_marker_negative();
} }
return ret; return ret;
@@ -16,8 +16,10 @@ EXPORT("wasm_module") int wasm_module(void) {
int ret = countnegative_return(); int ret = countnegative_return();
if (ret == 0) { if (ret == 0) {
PRINT("result correct.\n");
fail_marker_positive(); fail_marker_positive();
} else { } else {
PRINT("result incorrect.\n");
fail_marker_negative(); fail_marker_negative();
} }
return ret; return ret;
+2
View File
@@ -16,8 +16,10 @@ EXPORT("wasm_module") int wasm_module(void) {
int ret = fft_return(); int ret = fft_return();
if (ret == 0) { if (ret == 0) {
PRINT("result correct.\n");
fail_marker_positive(); fail_marker_positive();
} else { } else {
PRINT("result incorrect.\n");
fail_marker_negative(); fail_marker_negative();
} }
return ret; return ret;
@@ -16,8 +16,10 @@ EXPORT("wasm_module") int wasm_module(void) {
int ret = matrix1_return(); int ret = matrix1_return();
if (ret == 0) { if (ret == 0) {
PRINT("result correct.\n");
fail_marker_positive(); fail_marker_positive();
} else { } else {
PRINT("result incorrect.\n");
fail_marker_negative(); fail_marker_negative();
} }
return ret; return ret;
+2
View File
@@ -16,8 +16,10 @@ EXPORT("wasm_module") int wasm_module(void) {
int ret = md5_return(); int ret = md5_return();
if (ret == 0) { if (ret == 0) {
PRINT("result correct.\n");
fail_marker_positive(); fail_marker_positive();
} else { } else {
PRINT("result incorrect.\n");
fail_marker_negative(); fail_marker_negative();
} }
return ret; return ret;
@@ -16,8 +16,10 @@ EXPORT("wasm_module") int wasm_module(void) {
int ret = (quicksort_return() - 1527923179 != 0); int ret = (quicksort_return() - 1527923179 != 0);
if (ret == 0) { if (ret == 0) {
PRINT("result correct.\n");
fail_marker_positive(); fail_marker_positive();
} else { } else {
PRINT("result incorrect.\n");
fail_marker_negative(); fail_marker_negative();
} }
return ret; return ret;
@@ -16,8 +16,10 @@ EXPORT("wasm_module") int wasm_module(void) {
int ret = recursion_return(); int ret = recursion_return();
if (ret == 0) { if (ret == 0) {
PRINT("result correct.\n");
fail_marker_positive(); fail_marker_positive();
} else { } else {
PRINT("result incorrect.\n");
fail_marker_negative(); fail_marker_negative();
} }
return ret; return ret;
+2
View File
@@ -16,8 +16,10 @@ EXPORT("wasm_module") int wasm_module(void) {
int ret = sha_return(); int ret = sha_return();
if (ret == 0) { if (ret == 0) {
PRINT("result correct.\n");
fail_marker_positive(); fail_marker_positive();
} else { } else {
PRINT("result incorrect.\n");
fail_marker_negative(); fail_marker_negative();
} }
return ret; return ret;