Heikki Linnakangas <heikki.linnakan...@enterprisedb.com> writes:
> So the default is indeed non-standard. But I wonder if we should use -Aa 
> instead?

Probably not; at least on older HPUX versions, -Aa turns off access to
assorted stuff that we do want, eg "long long".  "man cc" on my box
saith

     -Amode         Specify the compilation standard to be used by the
                    compiler.  mode can be one of the following letters:

                       c    (Default) Compile in a mode compatible with
                            HP-UX releases prior to 7.0.  (See The C
                            Programming Language, First Edition by
                            Kernighan and Ritchie).  This option also
                            defines the symbol _HPUX_SOURCE and allows the
                            user to access macros and typedefs provided by
                            the HPUX Operating System. The default
                            compilation mode may change in future releases.

                       a    Compile under ANSI mode (ANSI programming
                            language C standard ISO 9899:1990).  When
                            compiling under ANSI mode, the header files
                            would define only those names (macros and
                            typedefs) specified by the Standard. To access
                            macros and typedefs that are not defined by the
                            ANSI Standard but are provided by the HPUX
                            Operating System, define the symbol
                            _HPUX_SOURCE; or use the extension option
                            described below.

                       e    Extended ANSI mode.  Same as -Aa -D_HPUX_SOURCE
                            +e.  This would define the names (macros and
                            typedefs) provided by the HPUX Operating System
                            and, in addition, allow the following
                            extensions: $ characters in identifier names,
                            sized enums, sized bit-fields, and 64-bit
                            integral type long long.  Additional extensions
                            may be added to this option in the future.

The +e option is elsewhere stated to mean

          +e                Enables HP value-added features while compiling
                            in ANSI C mode, -Aa.  This option is ignored
                            with -Ac because these features are already
                            provided.  Features enabled:

                                 o  Long pointers
                                 o  Integral type specifiers can appear in
                                    enum declarations.
                                 o  The $ character can appear in
                                    identifier names.
                                 o  Missing parameters on intrinsic calls

which isn't 100% consistent with what it says under -Ae, so maybe some
additional experimentation is called for.  But anyway, autoconf appears
to think that -Ae is preferable to the combination -Aa -D_HPUX_SOURCE
(that choice is coming from autoconf not our own code); so I'm not
optimistic that we can get more-standard behavior by overriding that.

                        regards, tom lane

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to