|
From: | Ken Brown |
Subject: | bug#22522: Commit b88e9cded7ae3756e3a2ec4a23e8df352a0239f9 breaks emacs dumping for me |
Date: | Tue, 2 Feb 2016 17:08:25 -0500 |
User-agent: | Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 |
On 2/2/2016 3:25 PM, Ken Brown wrote:
On 2/2/2016 9:20 AM, Wolfgang Jenkner wrote:On Mon, Feb 01 2016, Ken Brown wrote:../../master/src/alloc.c: In function ‘lisp_align_malloc’: ../../master/src/alloc.c:1247:7: warning: implicit declaration of function ‘hybrid_aligned_alloc’ [-Wimplicit-function-declaration]Before Paul's 7fdc3cf, src/alloc.c used to contain a declaration for aligned_alloc(), which a preprocessor definition turned into a declaration for hybrid_aligned_alloc(). The preprocessor definition was redundant as it is contained in src/conf_post.h as well, but the declaration has to be supplied by some other include file. (For FreeBSD, stdlib.h, which alloc.c includes, supplies the declaration, guarded by #if __ISO_C_VISIBLE >= 2011 || __cplusplus >= 201103L, which is true by default, at least on FreeBSD 10).Cygwin's stdlib.h also has the declaration with the same guard. But for some reason, alloc.c is still not getting the declaration. I'll have to figure out what's going on.
OK, here's what's happening. config.h defines _GNU_SOURCE. The following excerpt from /usr/include/sys/cdefs.h then causes __ISO_C_VISIBLE to be defined as 1999, thereby hiding the declaration of aligned_alloc:
#ifdef _GNU_SOURCE [...] #define _XOPEN_SOURCE 700 [...] #endif [...] #if _XOPEN_SOURCE - 0 >= 700 [...] #define _POSIX_C_SOURCE 200809 [...] #endif [...] #if _POSIX_C_SOURCE >= 200809 [...] #define __ISO_C_VISIBLE 1999 [...] #endif /* _POSIX_C_SOURCE */Paul, I can ask on the Cygwin list whether this should be changed to be more in line with other platforms. In the meantime, what's the best way to deal with this?
Ken
[Prev in Thread] | Current Thread | [Next in Thread] |