Re: "errno" not set in case of "libm" functions (HPUX) - Mailing list pgsql-hackers

From Tom Lane
Subject Re: "errno" not set in case of "libm" functions (HPUX)
Date
Msg-id 12327.1306260820@sss.pgh.pa.us
Whole thread Raw
In response to Re: "errno" not set in case of "libm" functions (HPUX)  (Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>)
Responses Re: "errno" not set in case of "libm" functions (HPUX)  (Ibrar Ahmed <ibrar.ahmad@gmail.com>)
List pgsql-hackers
Heikki Linnakangas <heikki.linnakangas@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
thefollowing letters:
 
                      c    (Default) Compile in a mode compatible with                           HP-UX releases prior
to7.0.  (See The C                           Programming Language, First Edition by                           Kernighan
andRitchie).  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
defineonly 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
bythe HPUX                           Operating System, define the symbol                           _HPUX_SOURCE; or use
theextension option                           described below.
 
                      e    Extended ANSI mode.  Same as -Aa -D_HPUX_SOURCE                           +e.  This would
definethe 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.
Additionalextensions                           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


pgsql-hackers by date:

Previous
From: Robert Haas
Date:
Subject: Re: [GENERAL] Error compiling sepgsql in PG9.1
Next
From: Robert Haas
Date:
Subject: Re: Alignment padding bytes in arrays vs the planner