So, my questions are...
1) I know that all BSD systems are derived from the one ancestor and
probably kernels have a lot of similarities.
What I interested in is are all system calls (kernel syscalls, not
libc) the same in all three bsd systems?
are kernel calling conventions the same?
If yes, then, as code generated by my compiler does not depend on libc
then binaries produced
will be executed on all platforms without necessity of using binary
compatibility tools?
I have also Unix library which directly rely on kernel calls bypassing
libc.
2) Are libc calls the same? As libc is also derived from the same
ancestor, are they different now?
Then if I usemy standard subset of Unix library which is wrapper to
libc C calls then it will supposedly work on all bsds?
3) Are all bsd systems able to run Linux binaries which do not require
Linux libc by just marking files with brandelf?
I did a try on FreeBSD, and code, which was generated for Linux just
started to work with brandelf.
Besides, code which was generated by using standard freebsd calling
conventions was slower.
I suppose this is why Linus decided to use registers not stack for
syscalls.
So, I want binaries generated with my compiler be faster.
This is why I am thinking of using the same Linux syscalls generator
and then just marking elfs with brandelf.
This will lead to a faster binaries.
In the same time, I hope my generated binaries would be able to call
native (not linux) libc calls by using my wrapper Unix libraries.
Thank you very much
Nor
---
norayr.livejournal.com