Re: Re: [UnixOS2] libc
Ilya Zakharevich <[email protected]> Fri, 20 Jun 2003 06:20:19 -0700
| Newsgroups | gmane.comp.ide.emx.devel |
|---|---|
| Message-ID | <[email protected]> |
On Fri, Jun 20, 2003 at 02:13:34PM +0200, Holger Veit wrote: > On Fri, Jun 20, 2003 at 02:15:34AM -0700, Ilya Zakharevich wrote: > > On Thu, Jun 19, 2003 at 01:43:39PM +0200, Holger Veit wrote: > > > Do we really want an improvement of the free OS/2 libc (call it EMX or > > > different)? > > > > > > If the answer is yes, then we *must* break something in order to > > > build something better, faster,more powerful (whatever the design goal > > > is). This is the unavoidable price to pay. > > > > Now try to prove this. AFAIU, your argument looks very much like bullying. > > Proof by example: It is by example, it is not a proof. [Not mentioning that the example is flawed.] > If we set off_t to longlong, structures like struct stat will change. > We could get around with a specific distinction of struct stat and > struct stat64, forcing each one to explicitly request the 64 bit APIs. Correct, without this backward compatibility breaks. > It is unlikely to happen What is "it"? People putting -DEMX_LARGE_FILES into GCCOPT? > so "old" code will still not be able to take > advantage of JFS or other modern WSEB filesystems. To take advantage of large files, one needs to use DosOpenL(). Using L-version of seek()/tell() is secondary; moreover, no EMX_LARGE_FILES is needed to support applications which do not need to seek far. > There are some more incompatibilities to occur; let's assume setuid() > and chown()/chmod() would get implemented I cannot comment on this, since I do not know the semantic of ownership API on OS/2. But I see all the reason for these arguments to be as flawed as your arguments above. > thus an awful lot of software would suddenly underlie file > protection effects, including the effect that former NO OPs (like > setuid()) that simply returned 0 for success, will now fail. Is setuid() implemented by EMX? Do you say it did not return -1 when uid != 0? > Not only that, some eager porters have used > #define setuid() (0) > or similar to get code work; suddenly such software would subtly fail, > because the process does not get the appropriate privilege and the > original check whether the process gained setuid privilege from the > Unix code which would fail on a real Unix is disabled due to that > (0) return. Consequence: if you want to avoid subtle breaking of the > code, just avoid putting such code in. Stay with the bugs and problems > of EMX. I do not follow your arguments. Did you say: There are some broken ports lying around. Recompiling such a port with new, more correct, headers/libraries will require some work. If yes, I do not consider this as a valid argument against correcting headers/libraries. > If this is not sufficient as a proof, I cannot help you. Well, I did not ask for your help. I already know your any-backward-compatibilities stand; many people on this list understand how wrong and destructive such a stand may be. I just wanted to inform *other* people on this list that there is "one more" people who does not share this stand. > Besides: > I don't think anyone needs backward compatibility at all for a DLL which > is then not even named EMX*.DLL even if it stemmed from EMX and maybe > shared 90% of the code. Absolutely. But my point is that a backward-compatible DLL which *does* share the name will be many many times more useful - and will require only minimal work to set up. > Do you want Unix or EM(i)X? Sorry, I do not know what is meant by any one of these terms here. IMO, one of the most devastating point of views of EM's is the opposition of "OS/2 applications" and "Unix applications" as two targets for use of EMX. For me these terms do not mean anything. We are discussing APIs. The targets are: a) Have APIs conform to the documentation as much as possible; b) Have the documentation conform to standards as much as possible; c) Have support for as many APIs' entry points as possible. I just do not see where the opposition of Unix/OS2/EMX comes into this picture. Hope this helps, Ilya