First off, Hi guys!

Got a bit of a puzzler here, for my own edutainment I've written an apache
module that loads, compiles and runs C code (think php but C)

Everything is working okay, except that I can't call functions that I add
to the function table.

I did have to hack tcc to not load crtn.o as for the life of me I couldn't
get tcc to load it (but that shouldn't be an issue? - its not needed for
tcc -run)
end of tcc_add_runtime commented out tcc_add_crt(s1, "crtn.o") in tccelf.c
(I'm on void Linux btw)

I have a function

typedef void(*fp)(char*);

void foo(char* s) {
    ap_rprintf(saved_r, "foo says %s", s);
}

which I can call within the module happily with
    footest = tcc_get_symbol(s, "foo");
    footest("foo sym test<br>");

either before or after calling the tcc compiled code and it works just fine.

however if I call it in the tcc compiled code I get a seg fault
interestingly if I pass a function pointer as a parameter the function call
works fine !

here's the test code that I'm testing (the commented line is the seg
faulter)
void foo(char*);
typedef void(*fp)(char*);

int main(fp f) {
    f("*** Hello from Cscript ***<br>");
    //foo("*** Hello from Cscript ***<br>");
    return 123;
}
also if anyone can enlighten me as to why libtcc can't find crtn.o and
confirm that its not actually needed (i think in this case?) I'd appreciate
it - I did try adding the correct path for my system in tcc.h
# define CONFIG_TCC_CRTPREFIX USE_TRIPLET(CONFIG_SYSROOT "/usr/lib"
CONFIG_LDDIR)

Thanks for taking the time to read this...
All the best
Chris



-- 

blog bedroomcoders.co.uk <http://bedroomcoders.co.uk>
Free source code and tutorials!


Disclaimer:
By sending an email to ANY of my addresses you are agreeing that:

   1. I am by definition, "the intended recipient"

   2. All information in the email is mine to do with as I see fit and make
such financial profit, political mileage, or good joke as it lends itself
to. In particular, I may quote it where I please.

   3. I may take the contents as representing the views of your company.

   4. This overrides any disclaimer or statement of confidentiality that
may be included on your message.
_______________________________________________
Tinycc-devel mailing list
Tinycc-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/tinycc-devel

Reply via email to