For testing the tcc rc, i tried https://github.com/sabotage-linux/netbsd-curses:
CC="tcc" make

Build breaks with tcc for "libpanel/libpanel.so" (gcc works):

tcc -v  -shared -o libpanel/libpanel.so libpanel/_deck.lo libpanel/above.lo 
libpanel/below.lo libpanel/bottom.lo libpanel/del.lo libpanel/getuser.lo 
libpanel/hidden.lo libpanel/hide.lo libpanel/move.lo libpanel/new.lo 
libpanel/replace.lo libpanel/setuser.lo libpanel/show.lo libpanel/top.lo 
libpanel/update.lo libpanel/window.lo libcurses/libcurses.so 
-Wl,-soname=libpanel.so
tcc version 0.9.28rc 2023-09-09 mob@7f39b4f (x86_64 Linux)
-> libpanel/_deck.lo
-> libpanel/above.lo
-> libpanel/below.lo
-> libpanel/bottom.lo
-> libpanel/del.lo
-> libpanel/getuser.lo
-> libpanel/hidden.lo
-> libpanel/hide.lo
-> libpanel/move.lo
-> libpanel/new.lo
-> libpanel/replace.lo
-> libpanel/setuser.lo
-> libpanel/show.lo
-> libpanel/top.lo
-> libpanel/update.lo
-> libpanel/window.lo
-> libcurses/libcurses.so
libcurses/libcurses.so: error: referenced dll 'libterminfo.so' not found
make: *** [GNUmakefile:529: libpanel/libpanel.so] Fehler 1
Command exited with non-zero status 2


Analyse results so far:
* libpanel/libpanel.so depends on libcurses/libcurses.so
* libcurses/libcurses.so depends on libterminfo/libterminfo.so
* tcc searches for libterminfo.so, but fails
* from the failure message, the code is in tccelf.c:3659


$ CC="tcc -v -v -v "   make  libpanel/libpanel.so
tcc -v -v -v  -shared -o libpanel/libpanel.so libpanel/_deck.lo 
libpanel/above.lo libpanel/below.lo libpanel/bottom.lo libpanel/del.lo 
libpanel/getuser.lo libpanel/hidden.lo libpanel/hide.lo libpanel/move.lo 
libpanel/new.lo libpanel/replace.lo libpanel/setuser.lo libpanel/show.lo 
libpanel/top.lo libpanel/update.lo libpanel/window.lo libcurses/libcurses.so 
-Wl,-soname=libpanel.so
tcc version 0.9.28rc 2023-09-09 mob@7f39b4f (x86_64 Linux)
-> /usr/lib/x86_64-linux-gnu/crti.o
-> libpanel/_deck.lo
-> libpanel/above.lo
-> libpanel/below.lo
-> libpanel/bottom.lo
-> libpanel/del.lo
-> libpanel/getuser.lo
-> libpanel/hidden.lo
-> libpanel/hide.lo
-> libpanel/move.lo
-> libpanel/new.lo
-> libpanel/replace.lo
-> libpanel/setuser.lo
-> libpanel/show.lo
-> libpanel/top.lo
-> libpanel/update.lo
-> libpanel/window.lo
-> libcurses/libcurses.so
nf /usr/lib/x86_64-linux-gnu/tcc/libterminfo.so
nf /usr/lib/x86_64-linux-gnu/libterminfo.so
nf /usr/lib/libterminfo.so
nf /lib/x86_64-linux-gnu/libterminfo.so
nf /lib/libterminfo.so
nf /usr/local/lib/x86_64-linux-gnu/libterminfo.so
nf /usr/local/lib/libterminfo.so
libcurses/libcurses.so: error: referenced dll 'libterminfo.so' not found
make: *** [GNUmakefile:529: libpanel/libpanel.so] Fehler 1
Command exited with non-zero status 2
0.01user 0.00system 0:00.02elapsed 100%CPU (0avgtext+0avgdata 3328maxresident)k

Any ideas, how to stop recurse loading of a referenced library?

I already tried a patch for netbsd-curses, but that is only a workaround:
https://github.com/sabotage-linux/netbsd-curses/pull/55


--
Bye bye ... Detlef


_______________________________________________
Tinycc-devel mailing list
Tinycc-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/tinycc-devel

Reply via email to