cosmopolitan/libc/runtime
Justine Tunney fad1279c61
Make cosmo_dlopen() safer and faster
If cosmo_dlopen() is linked on AMD64 then the runtime will switch to
using %gs for thread-local storage. This eliminates the need for the
imported symbol trampoline. It's now safer to pass function pointers
back and forth with imported libraries. Your program gets recompiled
at runtime to make it happen and the overhead is a few milliseconds.
2024-01-05 20:42:19 -08:00
..
.cosmo Move zipos into runtime package 2023-08-11 23:14:02 -07:00
__sigsetjmp_tail.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
BUILD.mk more modeline errata (#1019) 2023-12-16 23:07:10 -05:00
clktck.h Reduce header complexity 2023-11-28 14:39:42 -08:00
clone-linux.S Fix more vi modelines (#1006) 2023-12-13 02:28:11 -05:00
clone-openbsd.S Fix more vi modelines (#1006) 2023-12-13 02:28:11 -05:00
clone-xnu.S Fix more vi modelines (#1006) 2023-12-13 02:28:11 -05:00
clone.c Make cosmo_dlopen() safer and faster 2024-01-05 20:42:19 -08:00
closesymboltable.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
cosmo.S Fix more vi modelines (#1006) 2023-12-13 02:28:11 -05:00
cosmo2.c Prepend getcwd to exename early in init (#1048) 2024-01-01 07:23:23 -08:00
cxaguard.c Add more fixes for new cosmocc toolchain 2023-11-11 23:28:19 -08:00
dsohandle.S Fix more vi modelines (#1006) 2023-12-13 02:28:11 -05:00
e820.internal.h Support malloc() on bare metal 2021-02-24 00:53:24 -08:00
efimain.greg.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
efipostboot.S Fix more vi modelines (#1006) 2023-12-13 02:28:11 -05:00
enable_tls.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
exit.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
fenv.h Reduce header complexity 2023-11-28 14:39:42 -08:00
fesetround.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
findcombinary.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
fltrounds.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
fpathconf.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
fpreset.S Fix more vi modelines (#1006) 2023-12-13 02:28:11 -05:00
ftrace-hook.S Fix more vi modelines (#1006) 2023-12-13 02:28:11 -05:00
ftrace_install.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
ftrace_stackdigs.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
ftraceinit.greg.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
ftracer.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
getargmax.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
getavphyspages.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
getdosargv.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
getdosenviron.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
getinterpreterexecutablename.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
getlogin.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
getlogin_r.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
getmemtracksize.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
getpagesize.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
getphyspages.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
getresourcelimit.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
getsymbol.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
getsymbolbyaddr.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
getsymbolname.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
getsymboltable.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
getsysctl.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
grow.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
hook.greg.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
inflate.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
init.S Fix more vi modelines (#1006) 2023-12-13 02:28:11 -05:00
interceptflag.greg.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
internal.h Prepend getcwd to exename early in init (#1048) 2024-01-01 07:23:23 -08:00
isheap.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
ismemtracked.greg.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
isstackoverflow.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
jit.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
login_tty.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
mapanon.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
mapshared.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
mapstack.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
memtrack.internal.h Exclude strace from MODE=tiny builds 2023-11-29 03:45:54 -08:00
memtrack64.txt Iterate more on recent changes 2023-11-11 00:28:22 -08:00
memtracknt.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
metalprintf.greg.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
metalprintf.internal.h Reduce header complexity 2023-11-28 14:39:42 -08:00
mman.internal.h Reduce header complexity 2023-11-28 14:39:42 -08:00
mmap.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
morph.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
morph_tls.c Make cosmo_dlopen() safer and faster 2024-01-05 20:42:19 -08:00
mprotect-nt.greg.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
mprotect.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
msync-nt.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
msync.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
munmap.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
openexecutable.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
opensymboltable.greg.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
pathconf.h Reduce header complexity 2023-11-28 14:39:42 -08:00
pc.internal.h flip et / noet in modelines 2023-12-07 22:17:11 -05:00
printgarbage.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
printmaps.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
progname.S flip et / noet in modelines 2023-12-07 22:17:11 -05:00
runtime.h Loader path security (#1012) 2023-12-15 12:23:58 -05:00
set_tls.c Make cosmo_dlopen() safer and faster 2024-01-05 20:42:19 -08:00
sigsetjmp.S Fix more vi modelines (#1006) 2023-12-13 02:28:11 -05:00
stack.h Reduce header complexity 2023-11-28 14:39:42 -08:00
straceinit.greg.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
symbols.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
symbols.internal.h Reduce header complexity 2023-11-28 14:39:42 -08:00
sysconf.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
sysconf.h Reduce header complexity 2023-11-28 14:39:42 -08:00
syslib.internal.h Reduce header complexity 2023-11-28 14:39:42 -08:00
untrackmemoryintervals.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
unwind.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
unwind.h Reduce header complexity 2023-11-28 14:39:42 -08:00
utmp.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
utmp.h Reduce header complexity 2023-11-28 14:39:42 -08:00
utmpx.h Reduce header complexity 2023-11-28 14:39:42 -08:00
valist.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
warnifpowersave.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
weakfree.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
winargs.internal.h Reduce header complexity 2023-11-28 14:39:42 -08:00
winmain.greg.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
zipos-access.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
zipos-close.c Rename __zipos_free -> __zipos_drop (#1043) 2023-12-26 12:08:57 -05:00
zipos-fcntl.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
zipos-find.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
zipos-fstat.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
zipos-get.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
zipos-inode.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
zipos-mmap.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
zipos-normpath.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
zipos-notat.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
zipos-open.c Rename __zipos_free -> __zipos_drop (#1043) 2023-12-26 12:08:57 -05:00
zipos-parseuri.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
zipos-read.c Save a redundant load in zipos read/seek (#1037) 2023-12-24 19:40:18 -05:00
zipos-seek.c Save a redundant load in zipos read/seek (#1037) 2023-12-24 19:40:18 -05:00
zipos-stat-impl.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
zipos-stat.c flip et / noet in modelines 2023-12-07 22:17:11 -05:00
zipos.internal.h Rename __zipos_free -> __zipos_drop (#1043) 2023-12-26 12:08:57 -05:00
zipos.S Rename __zipos_free -> __zipos_drop (#1043) 2023-12-26 12:08:57 -05:00