[sr #111007] autoconf 2.72 warning: file 'version.m4' included several times

Румен Петров <[email protected]>
Newsgroups gmane.comp.sysutils.autoconf.bugs
Message-ID <[email protected]>
Follow-up Comment #1, sr#111007 (group autoconf):

Let me quote first feedback:
Nick Bowler wrote:> On 2024-01-13 03:26, Румен Петров wrote:
>> autoconf 2.72 is first release that prints warning:
>> configure.ac:2: warning: file 'version.m4' included several times
> 
> The warning here is erroneous and happens now because Autoconf-2.72's
> m4sugar.m4 (which is used under the hood basically everywhere) now
> includes an expansion of m4_sinclude([version.m4]).
> 
> Autoconf implements this warning with a very simplisic check for whether
> a file is actually included multiple times: it defines the m4_include
> and m4_sinclude macros which record the argument any time they are used,
> checking if either was ever called with that argument before.
> 
> Now, m4sugar does not _actually_ include your version.m4, because the
> Autoconf build/installation process generates an m4 "frozen state" file
> (m4sugar.m4f) where the file inclusion is already done using version.m4
> from Autoconf's source code, and this is what actually gets used when
> you run autoconf.  However, the frozen state *does* include the record
> that m4_sinclude was expanded previously with the version.m4 argument.
> 
> Probably we could fix this problem by changing m4sugar.m4 to not use
> the m4_sinclude.  It could use m4_builtin([sinclude], [version.m4])
> instead which would then not expose the record of internal inclusions
> to the user like this.
> 
> To work around the warning in autoconf-2.72, you can change the spelling
> of version.m4 to something functionally equivalent, for example:
> 
>    m4_include([./version.m4])
> 
> You can also just go in and delete the indication that Autoconf uses
> to produce this warning, for example:
> 
>    m4_builtin([undefine], [m4_include(version.m4)])
> 
> Incidentally, while not relevant to your example, Autoconf 2.72 also
> installs its own version.m4 file to the global m4 include search path,
> so if you were previously using M4PATH or autoconf's -I option to locate
> a file with this name then actually m4_include([version.m4]) will pick
> up the one shipped with Autoconf instead of what probably anyone would
> actually want to happen in this scenario.
> 
> Cheers,
>    Nick
> 



    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/support/?111007>

_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.