[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] xenpaging: remove XOPEN_SOURCE
2011/12/13 Laszlo Ersek <lersek@xxxxxxxxxx>: > On 12/13/11 11:02, Ian Campbell wrote: >> >> On Tue, 2011-12-13 at 09:30 +0000, Roger Pau Monne wrote: >>> >>> # HG changeset patch >>> # User Roger Pau Monne<roger.pau@xxxxxxxxxxxxx> >>> # Date 1323768129 -3600 >>> # Node ID 7697ee23b08b8eaca9aee4f6b79cf550a490bef7 >>> # Parent Â8a84f53376862427f254a017cb52c928dbdd3d32 >>> xenpaging: remove XOPEN_SOURCE >>> >>> The XOPEN_SOURCE define was breaking the compilation under NetBSD. >> >> >> How? If _XOPEN_SOUCE is defined, then the compiler cannot find the prototype of asprintf and it throws a warning that stops the compilation. This is because the prototype of asprintf is declared as follows under NetBSD: #if defined(_NETBSD_SOURCE) [...] int asprintf(char ** __restrict, const char * __restrict, ...) __printflike(2, 3); [...] #endif And _NETBSD_SOURCE is defined if: #if !defined(_ANSI_SOURCE) && !defined(_POSIX_C_SOURCE) && \ !defined(_XOPEN_SOURCE) && !defined(_NETBSD_SOURCE) #define _NETBSD_SOURCE 1 #endif Probably the asprintf prototype should be defined as: #if defined(_NETBSD_SOURCE) || defined(_XOPEN_SOURCE) [...] int asprintf(char ** __restrict, const char * __restrict, ...) __printflike(2, 3); > > Indeed. Both the commit that added it [1] [2] and this patch provide very > little useful info in their respective messages. It's interesting because it > could point out a SUSv3 incompatibility in in NetBSD. > > >>> I've removed it becasue it is not necessary (at least under NetBSD). >>> If it is necessary for Linux, we can add a ifdef conditional to remove >>> this only under NetBSD. >> >> >> Removing it seems to not break Linux, at least for me. > > > The stuff made visible by _GNU_SOURCE (with glibc) includes everything > _XOPEN_SOURCE makes visible [3]. [4] introduced it because of asprintf(). If it's not necessary I think it's best to remove the definition, to avoid having a lot of useless defines all over the code. > Laszlo > > [1] > http://old-list-archives.xen.org/archives/html/xen-devel/2010-08/msg01110.html > [2] http://xenbits.xensource.com/hg/xen-unstable.hg/rev/22023 > [3] > http://www.gnu.org/software/libc/manual/html_node/Feature-Test-Macros.html#index-g_t_005fGNU_005fSOURCE-51 > [4] http://xenbits.xensource.com/hg/xen-unstable.hg/rev/24223 > > > >> >>> Signed-off-by: Roger Pau Monne<roger.pau@xxxxxxxxxxxxx> >> >> >> Acked-by: Ian Campbell<ian.campbell@xxxxxxxxxx> >>> >>> >>> diff -r 8a84f5337686 -r 7697ee23b08b tools/xenpaging/xenpaging.c >>> --- a/tools/xenpaging/xenpaging.c    Tue Dec 13 09:49:55 2011 +0100 >>> +++ b/tools/xenpaging/xenpaging.c    Tue Dec 13 10:22:09 2011 +0100 >>> @@ -18,7 +18,6 @@ >>>  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA Â02111-1307 >>> ÂUSA >>>  */ >>> >>> -#define _XOPEN_SOURCE Â600 >>> Â#define _GNU_SOURCE >>> >>> Â#include<inttypes.h> > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@xxxxxxxxxxxxxxxxxxx > http://lists.xensource.com/xen-devel _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |