bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: speed up 'configure' by removing HAVE_RAW_DECL_*


From: Eric Blake
Subject: Re: speed up 'configure' by removing HAVE_RAW_DECL_*
Date: Mon, 24 Jan 2011 09:02:27 -0700
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101209 Fedora/3.1.7-0.35.b3pre.fc14 Lightning/1.0b3pre Mnenhy/0.8.3 Thunderbird/3.1.7

On 01/22/2011 07:08 PM, Paul Eggert wrote:
> To do this, one way to would be to follow the example of
> 
>    +# gl_ASSERT_NO_GNULIB_POSIXCHECK
>    +# asserts that there will never be a need to #define GNULIB_POSIXCHECK.
>    +# and thereby enables an optimization of configure and config.h.
>    +# Used by Emacs.
>    +AC_DEFUN([gl_ASSERT_NO_GNULIB_POSIXCHECK],
>    +[
>    +  dnl Override gl_WARN_ON_USE_PREPARE.
>    +  AC_DEFUN([gl_WARN_ON_USE_PREPARE], [])
>    +])

Yes, this works for me, and I actually would use it in other projects (a
developer can temporarily comment out the line, use the POSIX_CHECK
features, then recomment it so that ordinary users don't pay the penalty
for checking for declarations when they aren't going to use POSIX_CHECK).

> Another possibility would be to remove all the HAVE_RAW_DECL_*
> symbols, and remove gl_WARN_ON_USE_PREPARE entirely, and replace all
> .h code that looks like this:

No.  That would cause compilation failures.

> 
>   #elif defined GNULIB_POSIXCHECK
>   # undef chown
>   # if HAVE_RAW_DECL_CHOWN
>   _GL_WARN_ON_USE (chown, "chown fails to follow symlinks on some systems and 
> "
>                  "doesn't treat a uid or gid of -1 on some systems - "
>                  "use gnulib module chown for portability");

_GL_WARN_ON_USE _only_ works if a function is already declared (since it
uses __typeof__(function) to append the gcc warning attribute).  If the
function is not declared, life is fine without needing _GL_WARN_ON_USE
in the first place (the portability issue would have been detected by
the compilation failure when developing on a platform that lacks the
function).  But it is when the function is declared, but the gnulib
version not in use, where you want POSIX_CHECK to issue the warning.

> The above analysis suggest that the latter approach is better.
> I'd appreciate a review of it, along with any further suggestions
> for improvement.

I'm only in favor of the former approach, not the latter.

-- 
Eric Blake   address@hidden    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]