mirror of https://github.com/vitalif/e2fsprogs
ext2fs: fix undeclared posix_memalign() warning
Older distros do not define posix_memalign() by default in the headers. If ext2fs.h is included early in the headers, it is possible to "#define _XOPEN_SOURCE 600" so that the stdlib.h header will define it, but if ext2fs.h is included after stdlib.h there is no posix_memalign() declaration. Add a posix_memalign() declaration if stdlib.h didn't do it. This is a bit of a hack for GNU headers, but it works on Linux and OS/X without problems. Signed-off-by: Andreas Dilger <adilger@whamcloud.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu>bitmap-optimize
parent
cf5301d7f2
commit
1ac2aa23ef
|
@ -29,6 +29,10 @@ extern "C" {
|
|||
#define NO_INLINE_FUNCS
|
||||
#endif
|
||||
|
||||
#ifndef _XOPEN_SOURCE
|
||||
#define _XOPEN_SOURCE 600 /* for posix_memalign() */
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Where the master copy of the superblock is located, and how big
|
||||
* superblocks are supposed to be. We define SUPERBLOCK_SIZE because
|
||||
|
@ -37,7 +41,7 @@ extern "C" {
|
|||
* 1032 bytes long).
|
||||
*/
|
||||
#define SUPERBLOCK_OFFSET 1024
|
||||
#define SUPERBLOCK_SIZE 1024
|
||||
#define SUPERBLOCK_SIZE 1024
|
||||
|
||||
/*
|
||||
* The last ext2fs revision level that this version of the library is
|
||||
|
@ -54,6 +58,13 @@ extern "C" {
|
|||
#include <string.h>
|
||||
#include <errno.h>
|
||||
|
||||
#ifndef __USE_XOPEN2K
|
||||
/* If the "#define _XOPEN_SOURCE 600" didn't succeed in declaring
|
||||
* posix_memalign(), maybe due to <features.h> or <stdlib.h> included beforej
|
||||
* _XOPEN_SOURCE, declare it here to avoid compiler warnings. */
|
||||
extern int posix_memalign(void **__memptr, size_t __alignment, size_t __size);
|
||||
#endif
|
||||
|
||||
#if EXT2_FLAT_INCLUDES
|
||||
#include "e2_types.h"
|
||||
#include "ext2_fs.h"
|
||||
|
|
Loading…
Reference in New Issue