@mtothevizzah @olafurw I'm guessing shared libraries used atexit() because Linux a.out format didn't have the equivalent of ELF's DT_FINI and we had all just barely made the migration to ELF at this point.
Conversation
Notices
-
Embed this notice
Ryan C. Gordon (icculus@mastodon.gamedev.place)'s status on Tuesday, 23-Apr-2024 06:33:34 JST Ryan C. Gordon - Haelwenn /элвэн/ :triskell: likes this.
-
Embed this notice
Michael Vance (mtothevizzah@mastodon.gamedev.place)'s status on Tuesday, 23-Apr-2024 06:33:35 JST Michael Vance @icculus @olafurw there was also the dlopen() problem in gcc back then, where global objects in shared libraries registered their destructors with atexit() and then you had invoked dlclose() and their .text segment was unloaded. Good times. Although we should have had a Codesourcery patched toolchain at that point I thought.
-
Embed this notice
Ryan C. Gordon (icculus@mastodon.gamedev.place)'s status on Tuesday, 23-Apr-2024 06:33:36 JST Ryan C. Gordon @olafurw I'm both honored and deeply humiliated that a lot of these comments are from me, from the original Linux port I did at Loki Software.
The _exit() is there specifically because C++ game code back in the day was loaded with static destructors that usually only did two things: deallocate memory, and crash. Since one was unnecessary and the other disastrous, we'd clean up just the crucial pieces and _exit() at the end to kill the process without running them.
-
Embed this notice
Ólafur Waage (olafurw@mastodon.social)'s status on Tuesday, 23-Apr-2024 06:33:37 JST Ólafur Waage God, I hope so as well.
-
Embed this notice
Ólafur Waage (olafurw@mastodon.social)'s status on Tuesday, 23-Apr-2024 06:33:37 JST Ólafur Waage I'm sometimes asked, how did gamedev work before stuff like git? How did people communicate fixes and changes?
I present to you, a comment thread.
-
Embed this notice
Ólafur Waage (olafurw@mastodon.social)'s status on Tuesday, 23-Apr-2024 06:33:37 JST Ólafur Waage Just in case.
Gamedev is never perfect, you should read game source code. It's fun. Any game released is a miracle.
End of thread.
<3 -
Embed this notice
Ólafur Waage (olafurw@mastodon.social)'s status on Tuesday, 23-Apr-2024 06:33:38 JST Ólafur Waage I can relate, I also had a shitty Win95 sound card back in the day.
-
Embed this notice
Ólafur Waage (olafurw@mastodon.social)'s status on Tuesday, 23-Apr-2024 06:33:38 JST Ólafur Waage Damn, ugly code? No, I didn't work on Descent 3, I promise.
-
Embed this notice
Ólafur Waage (olafurw@mastodon.social)'s status on Tuesday, 23-Apr-2024 06:33:39 JST Ólafur Waage 1st, they had a badword list, nice. So let's ignore that one for now.
2nd, there is quite a lot, so I'm not gonna show all.
But that fucker brent? Gotta pay.
-
Embed this notice
Ólafur Waage (olafurw@mastodon.social)'s status on Tuesday, 23-Apr-2024 06:33:39 JST Ólafur Waage I also feel dirty. So very dirty.
Also, a hack in a 13.000 line ASM file? Welcome to gamedev.
-
Embed this notice
Ólafur Waage (olafurw@mastodon.social)'s status on Tuesday, 23-Apr-2024 06:33:39 JST Ólafur Waage One of these days, someone is going to rewrite this system. I hope they did for Descent 4?
-
Embed this notice
Ólafur Waage (olafurw@mastodon.social)'s status on Tuesday, 23-Apr-2024 06:33:40 JST Ólafur Waage Descent 3 source code has been released. And as a time honored tradition, let's look for curse words.