OSDev.org
https://forum.osdev.org/

Linux ELF semi-compatibility
https://forum.osdev.org/viewtopic.php?f=15&t=57128
Page 2 of 2

Author:  kerravon [ Fri Mar 22, 2024 6:58 pm ]
Post subject:  Re: Linux ELF semi-compatibility

AndrewAPrice wrote:
kerravon wrote:
AndrewAPrice wrote:
If you ported your own libc you implement the compatibility layer via functions in a vtable. Then once at program startup (in your crt0) detect the OS and fill in the vtable with pointers to the OS-specific functions.


I agree that it would work, I just don't like the different code paths.

So with regard to the one place that has a different code path:

/* user pressing ESC will always be 1 character on MSDOS,
but not PDOS */


So in this case, you'd have a binary that uses libc, but there will still be things that function a little differently on different operating systems (especially if you deal with external processess - such as how the terminal emulator feeds characters into your program). Perhaps it would be best to build upon a higher level library such as SDL that hides many of these platform differences.


For starters - I am aiming for public domain code - I just checked and that is under a license.

Secondly - I'm not sure what I want to "build upon" anything at all - PDPCLIB is already built. My question was more refinement or a feature within that already-built product.

And it is the C library's job to hide platform differences - and that has already been done (over the last 3 decades).

BTW, in the last 24 hours, pdld has started producing 64-bit ELFs. And I can thus produce them purely on PDOS/386. But the compiler I am using (a fork of gcc 3.2.3) is using Win64 function call convention. Because I have no external dependencies other than the syscalls, that is the point where I translate from Win64 to Linux syscall register convention (which is slightly different from Linux function call convention).

Page 2 of 2 All times are UTC - 6 hours
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/