* include/sys/cygwin.h (struct per_process): Add posix_memalign. Reduce

size of unused2 accordingly.
	* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
	* lib/_cygwin_crt0_common.cc (_cygwin_crt0_common): Initialize
	u->posix_memalign with address of posix_memalign.
	* malloc_wrapper.cc (posix_memalign): Call user-provided posix_memalign
	rather than just returning ENOSYS.
	* globals.cc (__cygwin_user_data): Initialize posix_memalign member.
This commit is contained in:
Corinna Vinschen 2013-08-14 11:44:23 +00:00
parent 111ced6d60
commit ef23b0a6a4
7 changed files with 34 additions and 4 deletions

View File

@ -1,3 +1,14 @@
2013-08-14 Corinna Vinschen <corinna@vinschen.de>
* include/sys/cygwin.h (struct per_process): Add posix_memalign. Reduce
size of unused2 accordingly.
* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
* lib/_cygwin_crt0_common.cc (_cygwin_crt0_common): Initialize
u->posix_memalign with address of posix_memalign.
* malloc_wrapper.cc (posix_memalign): Call user-provided posix_memalign
rather than just returning ENOSYS.
* globals.cc (__cygwin_user_data): Initialize posix_memalign member.
2013-08-09 Corinna Vinschen <corinna@vinschen.de>
* include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 24.

View File

@ -194,6 +194,7 @@ extern "C" {
/* api_major */ 0,
/* api_minor */ 0,
/* unused2 */ {},
/* posix_memalign */ posix_memalign,
/* pseudo_reloc_start */ NULL,
/* pseudo_reloc_end */ NULL,
/* image_base */ NULL,

View File

@ -438,12 +438,13 @@ details. */
arc4random_stir, arc4random_uniform.
267: Export rawmemchr.
268: Export GetCommandLineA, GetCommandLineW
269: Allow application override of posix_memalign.
*/
/* Note that we forgot to bump the api for ualarm, strtoll, strtoull */
#define CYGWIN_VERSION_API_MAJOR 0
#define CYGWIN_VERSION_API_MINOR 268
#define CYGWIN_VERSION_API_MINOR 269
/* There is also a compatibity version number associated with the
shared memory regions. It is incremented when incompatible

View File

@ -304,10 +304,13 @@ struct per_process
/* For future expansion, so apps won't have to be relinked if we
add an item. */
#ifdef __x86_64__
DWORD_PTR unused2[5];
DWORD_PTR unused2[4];
#else
DWORD_PTR unused2[3];
DWORD_PTR unused2[2];
#endif
int (*posix_memalign)(void **, size_t, size_t);
void *pseudo_reloc_start;
void *pseudo_reloc_end;
void *image_base;

View File

@ -145,6 +145,7 @@ _cygwin_crt0_common (MainFunc f, per_process *u)
u->free = &free;
u->realloc = &realloc;
u->calloc = &calloc;
u->posix_memalign = &posix_memalign;
/* Likewise for the C++ memory operators, if any, but not if we
were dlopen()'d, as we might get dlclose()'d and that would

View File

@ -115,7 +115,7 @@ posix_memalign (void **memptr, size_t alignment, size_t bytes)
void *res;
if (!use_internal)
return ENOSYS;
return user_data->posix_memalign (memptr, alignment, bytes);
if ((alignment & (alignment - 1)) != 0)
return EINVAL;
__malloc_lock ();

View File

@ -0,0 +1,13 @@
What's new:
-----------
- Allow application override of posix_memalign.
What changed:
-------------
Bug fixes:
----------