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

From Ibrar Ahmed
Subject Re: "errno" not set in case of "libm" functions (HPUX)
Date
Msg-id BANLkTimppphfYppwDKx_ut0CokDjA6bggg@mail.gmail.com
Whole thread Raw
In response to Re: "errno" not set in case of "libm" functions (HPUX)  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: "errno" not set in case of "libm" functions (HPUX)  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers

Please find the updated patch. I have added this "+Olibmerrno" compile flag check in configure/configure.in file.


OS
----
HP-UX B.11.31 U ia64

without patch
---------------
postgres=# select acos(2);
 acos 
------
  NaN
(1 row)


with patch
-----------
postgres=# select acos(2);
ERROR:  input is out of range



On Tue, May 24, 2011 at 11:13 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
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 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



--
   Ibrar Ahmed


Attachment

pgsql-hackers by date:

Previous
From: Vaibhav Kaushal
Date:
Subject: Re: Expression Evaluator used for creating the plan tree / stmt ?
Next
From: Robert Haas
Date:
Subject: Re: New/Revised TODO? Gathering actual read performance data for use by planner