[Top][All Lists]

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

Re: [6/7] Proposed patches to remove several inttypes-related dependenci

From: Eric Blake
Subject: Re: [6/7] Proposed patches to remove several inttypes-related dependencies
Date: Fri, 22 Apr 2011 04:31:04 -0600
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv: Gecko/20110307 Fedora/3.1.9-0.39.b3pre.fc14 Lightning/1.0b3pre Mnenhy/0.8.3 Thunderbird/3.1.9

On 04/22/2011 03:54 AM, Paul Eggert wrote:
> diff --git a/ChangeLog b/ChangeLog
> index 1ed5995..babb259 100644
> --- a/ChangeLog
> +++ b/ChangeLog
> @@ -1,5 +1,29 @@
>  2011-04-22  Paul Eggert  <address@hidden>
> +     inttypes: migrate 'configure' checks to modules that need it
> +     This module was quite heavyweight, and contained 'configure'-time
> +     checks that often were not needed.  Migrate the checks for
> +     PRI* and SCN* macros, which are often not needed, into a new
> +     inttypes-pri-scn module.

Would it help for transition purposes to intentionally do #undef PRI*
and SCN* in the remaining shell inttypes.in.h if GNULIB_POSIXCHECK is
defined but the inttypes-pri-scn module is not in use?  That way,
someone that _was_ relying on the PRI macros (and I know libvirt does)
will get a compile error on Linux if they update gnulib without
consulting NEWS to realize that they need a new module, rather than
silently having compilation work on Linux only to break elsewhere where
the PRI macro was actually missing.  Then again, we documented it in
NEWS so I don't know if we need to do anything further.

> +2011-04-22  inttypes        This module no longer arranges for <inttypes.h>
> +                            to declare imaxabs; that has been moved to the
> +                            imaxabs module.  Similarly for imaxdiv, 
> strtoimax,
> +                            and strtoumax.  Also, this module no longer
> +                            arranges for <inttypes.h> to define the PRI* and
> +                            SCN* macros correctly; that has been moved to the
> +                            new module inttypes-pri-scn.

An alternative might be to have a new module, inttypes-h, which provides
the shell replacement header, and keep inttypes as the module that pulls
in everything C99 related (that is, inttypes-pri-scn changes to depend
on inttypes-h not inttypes, and inttypes depends on inttypes-h,
inttypes-pri-scn, ...), so that there is no backwards incompatibility
(all existing clients of inttypes still get everything) but so that
newer clients (both internal to gnulib and emacs) can use the
lighter-weight inttypes-h for just what needs replacing.

> diff --git a/modules/inttypes b/modules/inttypes
> index f85939c..09442d8 100644
> --- a/modules/inttypes
> +++ b/modules/inttypes
> @@ -3,7 +3,6 @@ An <inttypes.h> that nearly conforms to C99.

Perhaps this comment needs updating; to nearly conform to C99, you now
need multiple modules.  Unless you like the inttypes-h module idea.

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]