On Fri, Feb 22, 2013 at 11:02:55AM +0100, Corinna Vinschen wrote: >On Feb 22 10:51, Corinna Vinschen wrote: >> On Feb 22 03:40, Yaakov wrote: >> > On Fri, 22 Feb 2013 09:49:51 +0100, Corinna Vinschen wrote: >> > > > access should go, no doubt about it. >> > > > >> > > > For get_osfhandle and setmode I would prefer maintaining backward >> > > > compatibility with existing applications. Both variations, with and >> > > > without underscore are definitely in use. >> > > > >> > > > What about exporting the underscored variants only, but define the >> > > > non-underscored ones: >> > > > >> > > > extern long _get_osfhandle(int); >> > > > #define get_osfhandle(i) _get_osfhandle(i) >> > > > >> > > > extern int _setmode (int __fd, int __mode); >> > > > #define setmode(f,m) _setmode((f),(m)) >> > > >> > > Just to be clear: On 32 bit we should keep the exported symbols, too. >> > > On 64 bit we can drop the non-underscored ones (which just requires >> > > to rebuild gawk for me) and only keep the defines for backward >> > > compatibility. >> > >> > Like this? >> >> Almost. The _setmode needs a tweak, too. I also think it makes >> sense to rename the functions inside of syscalls.cc: >> [...] > >I applied this patch to the 64 bit branch for now.
I was actually expecting that we'd break the compilation of existing applications which incorrectly referenced get_osfhandle and setmode (I have a couple of those). It's a simple fix if someone recompiles and it wouldn't be the first time that you'd have to make a source code change when upreving to a new "OS". For 32-bit we would need to keep both in cygwin.din though, of course. But, if you're going to use defines, why not just simplify them as: #define get_osfhandle _get_osfhandle #define setmode _setmode ? cgf