On Sat, 1 Oct 2022 at 18:27, Liam Wilson <cosinusoida...@gmail.com> wrote: > > On Sat, 1 Oct 2022 at 17:00, Steffen Nurpmeso <stef...@sdaoden.eu> wrote: > > > > Liam Wilson wrote in > > <cao5mfrout56vlh68eoxjfupi-60byda1bhfpngrwziedqq1...@mail.gmail.com>: > > ... > > |I've been attempting to build nodejs Node-API addons using the tiny c > > |compiler. When doing this I noticed that the addons were failing to > > |self register on load in nodejs as the constructors were failing to > > |run. gcc worked fine, but tcc failed. Node-API addons use > > |__attribute__((constructor)) in order to register themselves on load. > > > > Spoiler attack: i consider this a feature. > > I never used static constructors in C++, and i hated Stroustrup's > > "injection" idea. (There was a short time when i used it, but it > > is sick.) Anyhow on first-time-init-switches ... when i create > > a framework that uses dynamic modules, why can't i define > > a special symbol that is called when it is defined upon load? Like > > __nodejs_init() or something? We surely do not want to create too > > many specifics, it is just a loose thing, maybe. Hm. > > Yep, I'm not a fan of static contructors either. I think explcit > initialisation is a better idea. Unfortunately the API uses > __attribute__((constructor)) so currently there is no work around. I > will raise on the nodejs issue tracker though as it would be nice if > it could optionally just call an explicit init function.
Turns out there is actually an option to have nodejs call an explicit init function https://github.com/nodejs/node/issues/44853#issuecomment-1264615934 I just missed it as I was using a slightly older version of the API. Thanks Liam _______________________________________________ Tinycc-devel mailing list Tinycc-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/tinycc-devel