Re: Should I define _GNU_SOURCE?

2018-01-22 Thread Paul Eggert

On 01/22/2018 09:19 AM, Mathieu Lirzin wrote:

Do you have an example of something failing to compile with
-D_GNU_SOURCE?


He wasn't saying -D_GNU_SOURCE would cause compiles to fail, only that 
-D_GNU_SOURCE would not enable extensions on non-GNU platforms. For what 
it's worth, some non-Linux kernels have execvpe or equivalent (though I 
don't know whether you want to use them).



___
Autoconf mailing list
Autoconf@gnu.org
https://lists.gnu.org/mailman/listinfo/autoconf


Re: Should I define _GNU_SOURCE?

2018-01-22 Thread Mathieu Lirzin
Eric Blake  writes:

> On 01/22/2018 09:55 AM, Victor Porton wrote:
>> I am writing a software for Linux/Unix which could benefit from
>> execvpe() C function.
>> 
>> But this function is defined only when -D_GNU_SOURCE.
>> 
>> Question 1: Should I ALWAYS use -D_GNU_SOURCE for compiler options no
>> matter what are user options?
>
> If you want to enable the use of a platform's extensions, the easiest
> way is to use the AC_USE_SYSTEM_EXTENSIONS macro (rather than
> -D_GNU_SOURCE, as only works for a subset of systems), prior to the
> rest of your configure.ac that probes which extensions are now available.

Do you have an example of something failing to compile with
-D_GNU_SOURCE? I trust your claim but I am just curious. :-)

Maybe the Autoconf manual should describe such possible issue in the
"Posix Variants" part?

-- 
Mathieu Lirzin
GPG: F2A3 8D7E EB2B 6640 5761  070D 0ADE E100 9460 4D37

___
Autoconf mailing list
Autoconf@gnu.org
https://lists.gnu.org/mailman/listinfo/autoconf


Re: Should I define _GNU_SOURCE?

2018-01-22 Thread Eric Blake
On 01/22/2018 09:55 AM, Victor Porton wrote:
> I am writing a software for Linux/Unix which could benefit from
> execvpe() C function.
> 
> But this function is defined only when -D_GNU_SOURCE.
> 
> Question 1: Should I ALWAYS use -D_GNU_SOURCE for compiler options no
> matter what are user options?

If you want to enable the use of a platform's extensions, the easiest
way is to use the AC_USE_SYSTEM_EXTENSIONS macro (rather than
-D_GNU_SOURCE, as that only works for a subset of systems), prior to the
rest of your configure.ac that probes which extensions are now available.

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.   +1-919-301-3266
Virtualization:  qemu.org | libvirt.org



signature.asc
Description: OpenPGP digital signature
___
Autoconf mailing list
Autoconf@gnu.org
https://lists.gnu.org/mailman/listinfo/autoconf


Re: Should I define _GNU_SOURCE?

2018-01-22 Thread Mathieu Lirzin
Victor Porton  writes:

> Question 1: Should I ALWAYS use -D_GNU_SOURCE for compiler options no
> matter what are user options?

I forgot to answer this question, which is yes.  This directive is just
a way to be explicit about the use of GNU extensions during the
compilation phase.

-- 
Mathieu Lirzin
GPG: F2A3 8D7E EB2B 6640 5761  070D 0ADE E100 9460 4D37

___
Autoconf mailing list
Autoconf@gnu.org
https://lists.gnu.org/mailman/listinfo/autoconf


Re: Should I define _GNU_SOURCE?

2018-01-22 Thread Mathieu Lirzin
Victor Porton  writes:

> I am writing a software for Linux/Unix which could benefit from
> execvpe() C function.
>
> But this function is defined only when -D_GNU_SOURCE.
>
> Question 1: Should I ALWAYS use -D_GNU_SOURCE for compiler options no
> matter what are user options?
>
> Question 2: Should I check existence of execvpe() by checking
> #if _GNU_SOURCE
> or with AC_CHECK_FUNC(execvpe)?
>
> Question 3: Other advice?

It depends what kind of portability you aim.

* If you don't care about portability just ‘AC_CHECK_FUNC(execvpe)’, and
  bail out if not found.

* If you care about portability and you have some courage
  ‘AC_CHECK_FUNC(execvpe)’ and use ‘AC_LIBOBJ’ to provide a replacement
  implementation.  If you have extra bravery send a patch to
   which is a repository for such replacement.

* If you care about portability but you don't have such courage, just
  don't use ‘execvpe’.  :-)

HTH

-- 
Mathieu Lirzin
GPG: F2A3 8D7E EB2B 6640 5761  070D 0ADE E100 9460 4D37

___
Autoconf mailing list
Autoconf@gnu.org
https://lists.gnu.org/mailman/listinfo/autoconf


Should I define _GNU_SOURCE?

2018-01-22 Thread Victor Porton
I am writing a software for Linux/Unix which could benefit from
execvpe() C function.

But this function is defined only when -D_GNU_SOURCE.

Question 1: Should I ALWAYS use -D_GNU_SOURCE for compiler options no
matter what are user options?

Question 2: Should I check existence of execvpe() by checking
#if _GNU_SOURCE
or with AC_CHECK_FUNC(execvpe)?

Question 3: Other advice?

___
Autoconf mailing list
Autoconf@gnu.org
https://lists.gnu.org/mailman/listinfo/autoconf