* [PATCH] msvc: Fix compilation error due to missing mktemp() declaration @ 2010-12-23 19:05 Ramsay Jones 2010-12-24 1:00 ` Erik Faye-Lund 0 siblings, 1 reply; 5+ messages in thread From: Ramsay Jones @ 2010-12-23 19:05 UTC (permalink / raw) To: Junio C Hamano; +Cc: GIT Mailing-list, kusmabite Commit d1b6e6e (win32: use our own dirent.h, 2010-11-23) removed the compat/vcbuild/include/dirent.h compatibility header file. This file, among other things, included the <io.h> system header file which provides the declaration of the mktemp() function. In order to fix the compilation error, we add an include directive for <io.h> to the compat/vcbuild/include/unistd.h header. (The MinGW build includes <io.h> from it's <unistd.h> header too.) Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk> --- compat/vcbuild/include/unistd.h | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/compat/vcbuild/include/unistd.h b/compat/vcbuild/include/unistd.h index b14fcf9..a61160f 100644 --- a/compat/vcbuild/include/unistd.h +++ b/compat/vcbuild/include/unistd.h @@ -1,6 +1,8 @@ #ifndef _UNISTD_ #define _UNISTD_ +#include <io.h> + /* Win32 define for porting git*/ #ifndef _MODE_T_ -- 1.7.3 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] msvc: Fix compilation error due to missing mktemp() declaration 2010-12-23 19:05 [PATCH] msvc: Fix compilation error due to missing mktemp() declaration Ramsay Jones @ 2010-12-24 1:00 ` Erik Faye-Lund 2010-12-30 19:33 ` Ramsay Jones 0 siblings, 1 reply; 5+ messages in thread From: Erik Faye-Lund @ 2010-12-24 1:00 UTC (permalink / raw) To: Ramsay Jones; +Cc: Junio C Hamano, GIT Mailing-list On Thu, Dec 23, 2010 at 8:05 PM, Ramsay Jones <ramsay@ramsay1.demon.co.uk> wrote: > > Commit d1b6e6e (win32: use our own dirent.h, 2010-11-23) removed > the compat/vcbuild/include/dirent.h compatibility header file. > This file, among other things, included the <io.h> system header > file which provides the declaration of the mktemp() function. > > In order to fix the compilation error, we add an include directive > for <io.h> to the compat/vcbuild/include/unistd.h header. (The > MinGW build includes <io.h> from it's <unistd.h> header too.) > > Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk> > --- Thanks. But shouldn't this header be included in mingw.h (or perhaps msvc.h) because of _get_osfhandle and _commit? ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] msvc: Fix compilation error due to missing mktemp() declaration 2010-12-24 1:00 ` Erik Faye-Lund @ 2010-12-30 19:33 ` Ramsay Jones 2010-12-30 21:47 ` Erik Faye-Lund 0 siblings, 1 reply; 5+ messages in thread From: Ramsay Jones @ 2010-12-30 19:33 UTC (permalink / raw) To: kusmabite; +Cc: Junio C Hamano, GIT Mailing-list Erik Faye-Lund wrote: > On Thu, Dec 23, 2010 at 8:05 PM, Ramsay Jones > <ramsay@ramsay1.demon.co.uk> wrote: >> Commit d1b6e6e (win32: use our own dirent.h, 2010-11-23) removed >> the compat/vcbuild/include/dirent.h compatibility header file. >> This file, among other things, included the <io.h> system header >> file which provides the declaration of the mktemp() function. >> >> In order to fix the compilation error, we add an include directive >> for <io.h> to the compat/vcbuild/include/unistd.h header. (The >> MinGW build includes <io.h> from it's <unistd.h> header too.) >> >> Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk> >> --- > > Thanks. But shouldn't this header be included in mingw.h (or perhaps > msvc.h) because of _get_osfhandle and _commit? Er... no. ;-) All uses of _get_osfhandle() and _commit() on the msvc build (after this patch) are within the scope of an appropriate declaration, so there is no *need* to include <io.h> in either mingw.h or msvc.h. [I'm confident the same is true of the MinGW build as well, but I didn't have time to check before sending this mail...] I suspect that you already know this and I'm just being dumb in missing the import of your question... Perhaps you could clarify your concerns regarding this patch? ATB, Ramsay Jones ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] msvc: Fix compilation error due to missing mktemp() declaration 2010-12-30 19:33 ` Ramsay Jones @ 2010-12-30 21:47 ` Erik Faye-Lund 2011-01-01 20:26 ` Ramsay Jones 0 siblings, 1 reply; 5+ messages in thread From: Erik Faye-Lund @ 2010-12-30 21:47 UTC (permalink / raw) To: Ramsay Jones; +Cc: Junio C Hamano, GIT Mailing-list On Thu, Dec 30, 2010 at 8:33 PM, Ramsay Jones <ramsay@ramsay1.demon.co.uk> wrote: > Erik Faye-Lund wrote: >> On Thu, Dec 23, 2010 at 8:05 PM, Ramsay Jones >> <ramsay@ramsay1.demon.co.uk> wrote: >>> Commit d1b6e6e (win32: use our own dirent.h, 2010-11-23) removed >>> the compat/vcbuild/include/dirent.h compatibility header file. >>> This file, among other things, included the <io.h> system header >>> file which provides the declaration of the mktemp() function. >>> >>> In order to fix the compilation error, we add an include directive >>> for <io.h> to the compat/vcbuild/include/unistd.h header. (The >>> MinGW build includes <io.h> from it's <unistd.h> header too.) >>> >>> Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk> >>> --- >> >> Thanks. But shouldn't this header be included in mingw.h (or perhaps >> msvc.h) because of _get_osfhandle and _commit? > > Er... no. ;-) > > All uses of _get_osfhandle() and _commit() on the msvc build (after this > patch) are within the scope of an appropriate declaration, so there is > no *need* to include <io.h> in either mingw.h or msvc.h. > [I'm confident the same is true of the MinGW build as well, but I didn't > have time to check before sending this mail...] > > I suspect that you already know this and I'm just being dumb in missing > the import of your question... Perhaps you could clarify your concerns > regarding this patch? > Actually, I suspect that you know exactly what my concern is (based on the above), and that it's not with your patch. I have a patch in my MSVC-tree that includes io.h in mingw.h, because mingw.h already depends on facilities from io.h on MSVC. My point was simply that this dependency was already present, and as such I think mingw.h is the appropriate place to include it. Your patch might remove the warnings (perhaps it was only msvc.c that depends on io.h, I don't remember), and that's fine. But I think we should solve the problem in msvc.[ch] instread, as this is the compatibility-layer that the rest of the system includes. But it's just an opinion, deal with it as you please. The most important part is to prevent warnings/errors, how we do it is secondary. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] msvc: Fix compilation error due to missing mktemp() declaration 2010-12-30 21:47 ` Erik Faye-Lund @ 2011-01-01 20:26 ` Ramsay Jones 0 siblings, 0 replies; 5+ messages in thread From: Ramsay Jones @ 2011-01-01 20:26 UTC (permalink / raw) To: kusmabite; +Cc: Junio C Hamano, GIT Mailing-list Erik Faye-Lund wrote: > Actually, I suspect that you know exactly what my concern is (based on > the above), and that it's not with your patch. Actually no, which is why I asked! :-D > I have a patch in my MSVC-tree that includes io.h in mingw.h, because > mingw.h already depends on facilities from io.h on MSVC. My point was > simply that this dependency was already present, and as such I think > mingw.h is the appropriate place to include it. OK, v2 of patch on the way... ATB, Ramsay Jones ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2011-01-01 20:32 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2010-12-23 19:05 [PATCH] msvc: Fix compilation error due to missing mktemp() declaration Ramsay Jones 2010-12-24 1:00 ` Erik Faye-Lund 2010-12-30 19:33 ` Ramsay Jones 2010-12-30 21:47 ` Erik Faye-Lund 2011-01-01 20:26 ` Ramsay Jones
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).