autoconf
[Top][All Lists]
Advanced

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

Re: #ifndef BIGENDIAN #undef BIGENDIAN ?


From: Eric Blake
Subject: Re: #ifndef BIGENDIAN #undef BIGENDIAN ?
Date: Mon, 27 Feb 2017 09:56:48 -0600
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0

On 02/26/2017 01:10 AM, Kai Noda wrote:
> Hi all,
> 
> I don't quite understand this piece of code:
> 
> http://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=blobdiff;f=lib/autoconf/c.m4;h=51fdfeba68fffe7f6f5638eaeef00149ed168282;hp=ffaa06e39dff758a24618a8f6504b22103caefac;hb=b0e687ef42e21b1eb7af18c4eaebcd41b0bd5632;hpb=883c8994f1efdc3c550b0d37bf95c947881b735d
> 
> #else
> # ifndef WORDS_BIGENDIAN
> #  undef WORDS_BIGENDIAN
> # endif

This is the proper way to set up a config template.  When config.status
runs, ALL it does is replace '#undef' lines with either '/* #undef */'
or '#define' lines, according to what was learned during configure.  All
other lines are left untouched.

> 
> What was it supposed to achieve? Should it not be either of these two?
> 
> #ifndef WORDS_BIGENDIAN
> **#define** WORDS_BIGENDIAN

This is what results in the final config.h based on the template on
machines where the #define is needed.

> 
> or
> 
> **#ifdef** WORDS_BIGENDIAN
> #undef WORDS_BIGENDIAN

No, this is not what is wanted.

> 
> Please disregard if I missed something elementary. I'm not literate in m4.

It's not m4, but autoconf doing this.  It's documented here:
https://www.gnu.org/software/autoconf/manual/autoconf.html#Header-Templates

> I just tried to use AC_C_BIGENDIAN for my project and was startled to
> see its output.

The output is correct.  Remember that config.h.in files have a slightly
different syntax than the final generated config.h file.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
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]