Skip to content

Commit

Permalink
MSVC: Add support for building with NO_MMAP
Browse files Browse the repository at this point in the history
When the NO_MMAP build variable is set, the msvc linker complains:

    error LNK2001: unresolved external symbol _getpagesize

The msvc libraries do not define the getpagesize() function,
so we move the mingw_getpagesize() implementation from the
conditionally built win32mmap.c file to mingw.c.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Ramsay Jones authored and Junio C Hamano committed Nov 9, 2009
1 parent d691d84 commit b1b9520
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 13 deletions.
12 changes: 12 additions & 0 deletions compat/mingw.c
Original file line number Diff line number Diff line change
Expand Up @@ -1000,6 +1000,18 @@ int mingw_rename(const char *pold, const char *pnew)
return -1;
}

/*
* Note that this doesn't return the actual pagesize, but
* the allocation granularity. If future Windows specific git code
* needs the real getpagesize function, we need to find another solution.
*/
int mingw_getpagesize(void)
{
SYSTEM_INFO si;
GetSystemInfo(&si);
return si.dwAllocationGranularity;
}

struct passwd *getpwuid(int uid)
{
static char user_name[100];
Expand Down
2 changes: 1 addition & 1 deletion compat/mingw.h
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ int mingw_connect(int sockfd, struct sockaddr *sa, size_t sz);
int mingw_rename(const char*, const char*);
#define rename mingw_rename

#ifdef USE_WIN32_MMAP
#if defined(USE_WIN32_MMAP) || defined(_MSC_VER)
int mingw_getpagesize(void);
#define getpagesize mingw_getpagesize
#endif
Expand Down
12 changes: 0 additions & 12 deletions compat/win32mmap.c
Original file line number Diff line number Diff line change
@@ -1,17 +1,5 @@
#include "../git-compat-util.h"

/*
* Note that this doesn't return the actual pagesize, but
* the allocation granularity. If future Windows specific git code
* needs the real getpagesize function, we need to find another solution.
*/
int mingw_getpagesize(void)
{
SYSTEM_INFO si;
GetSystemInfo(&si);
return si.dwAllocationGranularity;
}

void *git_mmap(void *start, size_t length, int prot, int flags, int fd, off_t offset)
{
HANDLE hmap;
Expand Down

0 comments on commit b1b9520

Please sign in to comment.