mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-29 19:30:36 +02:00
Add replacement for missing getpagesize() on MINGW
* libguile/posix-w32.c (getpagesize_w32): new procedure * libguile/posix-w32.h: declaration of getpagesize_w32 * libguile/loader.c [__MINGW32__](scm_bootstrap_loader): use new procedure * libguile/vm.c [__MINGW32__](scm_i_vm_prepare_stack): use new procedure
This commit is contained in:
parent
0b9f58c339
commit
0e20c0c8c6
4 changed files with 21 additions and 0 deletions
|
@ -52,6 +52,9 @@
|
|||
|
||||
#include "loader.h"
|
||||
|
||||
#ifdef __MINGW32__
|
||||
#include "posix-w32.h"
|
||||
#endif
|
||||
|
||||
/* This file contains the loader for Guile's on-disk format: ELF with
|
||||
some custom tags in the dynamic segment. */
|
||||
|
@ -822,7 +825,11 @@ scm_find_slot_map_unlocked (const uint32_t *ip)
|
|||
void
|
||||
scm_bootstrap_loader (void)
|
||||
{
|
||||
#ifndef __MINGW32__
|
||||
page_size = getpagesize ();
|
||||
#else
|
||||
page_size = getpagesize_w32 ();
|
||||
#endif
|
||||
/* page_size should be a power of two. */
|
||||
if (page_size & (page_size - 1))
|
||||
abort ();
|
||||
|
|
|
@ -1256,3 +1256,8 @@ dlerror_w32 ()
|
|||
snprintf (dlerror_str, DLERROR_LEN, "error %ld: %s", (long) dw, msg_buf);
|
||||
return dlerror_str;
|
||||
}
|
||||
int
|
||||
getpagesize_w32 (void)
|
||||
{
|
||||
return 4 * 1024;
|
||||
}
|
||||
|
|
|
@ -95,6 +95,7 @@ SCM_INTERNAL void *dlopen_w32 (const char *name, int flags);
|
|||
SCM_INTERNAL void *dlsym_w32 (void *handle, const char *name);
|
||||
SCM_INTERNAL int dlclose_w32 (void *handle);
|
||||
SCM_INTERNAL char *dlerror_w32 (void);
|
||||
SCM_INTERNAL int getpagesize_w32 (void);
|
||||
|
||||
#define HAVE_UNAME 1
|
||||
#define HAVE_WAITPID 1
|
||||
|
|
|
@ -72,6 +72,10 @@
|
|||
#include "version.h"
|
||||
#include "vm-builtins.h"
|
||||
|
||||
#ifdef __MINGW32__
|
||||
#include "posix-w32.h"
|
||||
#endif
|
||||
|
||||
#include "vm.h"
|
||||
|
||||
#include <gc/gc_mark.h>
|
||||
|
@ -604,7 +608,11 @@ scm_i_vm_prepare_stack (struct scm_vm *vp)
|
|||
Guile. */
|
||||
if (page_size == 0)
|
||||
{
|
||||
#ifndef __MINGW32__
|
||||
page_size = getpagesize ();
|
||||
#else
|
||||
page_size = getpagesize_w32 ();
|
||||
#endif
|
||||
/* page_size should be a power of two. */
|
||||
if (page_size & (page_size - 1))
|
||||
abort ();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue