Mailing List Archive

[PATCH] xenpaging: remove XOPEN_SOURCE
# HG changeset patch
# User Roger Pau Monne <roger.pau@entel.upc.edu>
# Date 1323768129 -3600
# Node ID 7697ee23b08b8eaca9aee4f6b79cf550a490bef7
# Parent 8a84f53376862427f254a017cb52c928dbdd3d32
xenpaging: remove XOPEN_SOURCE

The XOPEN_SOURCE define was breaking the compilation under 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.

Signed-off-by: Roger Pau Monne <roger.pau@entel.upc.edu>

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@lists.xensource.com
http://lists.xensource.com/xen-devel
Re: [PATCH] xenpaging: remove XOPEN_SOURCE [ In reply to ]
On Tue, 2011-12-13 at 09:30 +0000, Roger Pau Monne wrote:
> # HG changeset patch
> # User Roger Pau Monne <roger.pau@entel.upc.edu>
> # Date 1323768129 -3600
> # Node ID 7697ee23b08b8eaca9aee4f6b79cf550a490bef7
> # Parent 8a84f53376862427f254a017cb52c928dbdd3d32
> xenpaging: remove XOPEN_SOURCE
>
> The XOPEN_SOURCE define was breaking the compilation under NetBSD.

How?

> 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.

> Signed-off-by: Roger Pau Monne <roger.pau@entel.upc.edu>

Acked-by: Ian Campbell <ian.campbell@citrix.com>
>
> 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@lists.xensource.com
> http://lists.xensource.com/xen-devel



_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
Re: [PATCH] xenpaging: remove XOPEN_SOURCE [ In reply to ]
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@entel.upc.edu>
>> # Date 1323768129 -3600
>> # Node ID 7697ee23b08b8eaca9aee4f6b79cf550a490bef7
>> # Parent 8a84f53376862427f254a017cb52c928dbdd3d32
>> xenpaging: remove XOPEN_SOURCE
>>
>> The XOPEN_SOURCE define was breaking the compilation under NetBSD.
>
> How?

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().

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@entel.upc.edu>
>
> Acked-by: Ian Campbell<ian.campbell@citrix.com>
>>
>> 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@lists.xensource.com
http://lists.xensource.com/xen-devel
Re: [PATCH] xenpaging: remove XOPEN_SOURCE [ In reply to ]
2011/12/13 Laszlo Ersek <lersek@redhat.com>:
> 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@entel.upc.edu>
>>> # 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@entel.upc.edu>
>>
>>
>> Acked-by: Ian Campbell<ian.campbell@citrix.com>
>>>
>>>
>>> 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@lists.xensource.com
> http://lists.xensource.com/xen-devel

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
Re: [PATCH] xenpaging: remove XOPEN_SOURCE [ In reply to ]
Roger Pau Monné writes ("Re: [Xen-devel] [PATCH] xenpaging: remove XOPEN_SOURCE"):
> 2011/12/13 Laszlo Ersek <lersek@redhat.com>:
> > 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.

I disagree. The purpose of these kind of macros is purely to allow
systems to claim standards-compliance and absence of namespace
pollution, by default.

The logical conclusion is that these kind of problems should be fixed
by adding more requests for platform-specific features, not removing
them.

In this case that would mean adding:
#define _NETBSD_SOURCE

If the prevalance of these kind of macros is getting irritating they
can easily be moved into a common header file somewhere.

Ian.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
Re: [PATCH] xenpaging: remove XOPEN_SOURCE [ In reply to ]
2011/12/13 Ian Jackson <Ian.Jackson@eu.citrix.com>:
> I disagree.  The purpose of these kind of macros is purely to allow
> systems to claim standards-compliance and absence of namespace
> pollution, by default.
>
> The logical conclusion is that these kind of problems should be fixed
> by adding more requests for platform-specific features, not removing
> them.
>
> In this case that would mean adding:
>  #define _NETBSD_SOURCE
>
> If the prevalance of these kind of macros is getting irritating they
> can easily be moved into a common header file somewhere.

Ok, I will resend the patch adding _NETBSD_SOURCE instead of removing
_XOPEN_SOURCE.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
Re: [PATCH] xenpaging: remove XOPEN_SOURCE [ In reply to ]
On Wed, Dec 14, Roger Pau Monné wrote:

> Ok, I will resend the patch adding _NETBSD_SOURCE instead of removing
> _XOPEN_SOURCE.

How do other source files with asprintf() calls compile for you? (libxl)
Why is xenpaging special?

Olaf

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
Re: [PATCH] xenpaging: remove XOPEN_SOURCE [ In reply to ]
2011/12/14 Olaf Hering <olaf@aepfle.de>:
> On Wed, Dec 14, Roger Pau Monné wrote:
>
>> Ok, I will resend the patch adding _NETBSD_SOURCE instead of removing
>> _XOPEN_SOURCE.
>
> How do other source files with asprintf() calls compile for you? (libxl)
> Why is xenpaging special?

libxl doesn't define _XOPEN_SOURCE although it uses asprintf, and
other places that define _XOPEN_SOURCE don't use asprintf, that's why
I didn't have problems with that before.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
Re: [PATCH] xenpaging: remove XOPEN_SOURCE [ In reply to ]
On Tue, Dec 13, Roger Pau Monne wrote:

> # HG changeset patch
> # User Roger Pau Monne <roger.pau@entel.upc.edu>
> # Date 1323768129 -3600
> # Node ID 7697ee23b08b8eaca9aee4f6b79cf550a490bef7
> # Parent 8a84f53376862427f254a017cb52c928dbdd3d32
> xenpaging: remove XOPEN_SOURCE
>
> The XOPEN_SOURCE define was breaking the compilation under 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.

Please resend with the exact error message in NetBSD.

24223:9e3c2ef70c8a should have removed _XOPEN_SOURCE, and
22023:af6799abc6e9 should have added _GNU_SOURCE in the first place
(and give the exact error message as well).

Other than that:

Acked-by: Olaf Hering <olaf@aepfle.de>

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel