Add forward declarations for web stub functions to el_runtime.h #21
@@ -38,6 +38,7 @@ RUN cc -O2 -DHAVE_CURL -c el_runtime.c -I. -o el_runtime.o
|
|||||||
COPY dist/soul-demo.c dist/vessel_stubs.c ./
|
COPY dist/soul-demo.c dist/vessel_stubs.c ./
|
||||||
|
|
||||||
RUN cc -O2 -rdynamic \
|
RUN cc -O2 -rdynamic \
|
||||||
|
-DEL_SOUL_DEMO_BUILD \
|
||||||
-o soul-demo \
|
-o soul-demo \
|
||||||
soul-demo.c vessel_stubs.c el_runtime.o \
|
soul-demo.c vessel_stubs.c el_runtime.o \
|
||||||
-lcurl -lpthread -ldl -lm -lssl -lcrypto
|
-lcurl -lpthread -ldl -lm -lssl -lcrypto
|
||||||
|
|||||||
@@ -878,6 +878,32 @@ el_val_t __uuid_v4(void);
|
|||||||
/* Args */
|
/* Args */
|
||||||
el_val_t __args_json(void);
|
el_val_t __args_json(void);
|
||||||
|
|
||||||
|
/* ── neuron-web stubs (web_stubs.c) ──────────────────────────────────────────
|
||||||
|
* Forward declarations so generated C (e.g. dist/main.c) sees the correct
|
||||||
|
* el_val_t return type instead of an implicit int. Without these, the
|
||||||
|
* ci-base elb (which does not emit extern-fn forward decls for stub-only
|
||||||
|
* functions) produces truncated 32-bit returns on 64-bit Linux → segfault.
|
||||||
|
*
|
||||||
|
* Guarded by EL_SOUL_DEMO_BUILD: soul-demo.c includes this header but
|
||||||
|
* defines its own (different-arity) versions of some of these functions.
|
||||||
|
* Dockerfile.stage compiles soul-demo with -DEL_SOUL_DEMO_BUILD to skip
|
||||||
|
* this block and avoid conflicting-types errors.
|
||||||
|
*/
|
||||||
|
#ifndef EL_SOUL_DEMO_BUILD
|
||||||
|
el_val_t http_get_auth(el_val_t url, el_val_t tok);
|
||||||
|
el_val_t http_post_auth(el_val_t url, el_val_t tok, el_val_t body);
|
||||||
|
el_val_t http_post_auth_json(el_val_t url, el_val_t tok, el_val_t body);
|
||||||
|
el_val_t http_delete_auth(el_val_t url, el_val_t bearer_tok, el_val_t apikey);
|
||||||
|
el_val_t supabase_get(el_val_t project_url, el_val_t service_key, el_val_t table_and_query);
|
||||||
|
el_val_t supabase_insert(el_val_t project_url, el_val_t service_key, el_val_t table, el_val_t row_json);
|
||||||
|
el_val_t supabase_auth_user(el_val_t project_url, el_val_t anon_key, el_val_t user_jwt);
|
||||||
|
el_val_t supabase_admin_invite(el_val_t project_url, el_val_t service_key, el_val_t body_json);
|
||||||
|
el_val_t gcs_write(el_val_t bucket, el_val_t object_name, el_val_t content);
|
||||||
|
el_val_t gcs_read(el_val_t bucket, el_val_t object_name);
|
||||||
|
el_val_t cwd(void);
|
||||||
|
el_val_t color_bold(el_val_t s);
|
||||||
|
#endif /* EL_SOUL_DEMO_BUILD */
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user