Given that tcc_add_library() takes a TCCState it seems to me
that a call shouldn't persist to subsequent TCCStates.
This example seems to show that it does.

$ tcc -version
tcc version 0.9.28rc 2024-06-11 mob@08a4c52d (AArch64 Linux)
$ tcc tcc-add-library-bug.c -ltcc && ./a.out
tcc_add_library=0
tcc: error: undefined symbol 'atan'

tcc_add_library=1
3.14159

tcc_add_library=0
3.14159

Thanks - Eric

#include <stdio.h>#include "libtcc.h"char *C =    "#include
<math.h>\n"    "#include <stdio.h>\n"    "void pi() {
printf(\"%g\\n\", 4 * atan(1)); }\n";void test(int add_lib){
TCCState *s = tcc_new();    tcc_set_output_type(s, TCC_OUTPUT_MEMORY);
   printf("tcc_add_library=%d\n", add_lib);    if (add_lib)
tcc_add_library(s, "m");    if (!tcc_compile_string(s, C) &&
!tcc_relocate(s)) {        void (*pi)() = tcc_get_symbol(s, "pi");
   pi();    }    tcc_delete(s);    printf("\n");}int main(){
test(0);    test(1);    test(0);    return 0;}
_______________________________________________
Tinycc-devel mailing list
Tinycc-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/tinycc-devel

Reply via email to