pg.ddx.io  pgsql-hackers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Andrew Dunstan <andrew.dunstan@2ndquadrant.com>
To: Andres Freund <andres@anarazel.de>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Dave Page <dpage@pgadmin.org>
Cc: David Steele <david@pgmasters.net>
Cc: pgsql-hackers@lists.postgresql.org
Subject: Re: C99 compliance for src/port/snprintf.c
Date: Thu, 16 Aug 2018 16:36:39 -0400
Message-ID: <8dfab595-ce96-0290-e3d4-10392fa96b9e@2ndQuadrant.com> (raw)
In-Reply-To: <20180816160508.nd5u6fblr3jwcg6f@alap3.anarazel.de>
References: <e452e970-cf80-6e7e-17c1-24730a5c9ca9@pgmasters.net>
	<2069.1534363063@sss.pgh.pa.us>
	<20180815214931.vlwsz4s55enbppna@alap3.anarazel.de>
	<9877.1534371239@sss.pgh.pa.us>
	<20180815222401.kxsupl5zie2jgi4x@alap3.anarazel.de>
	<10675.1534372270@sss.pgh.pa.us>
	<20180816084134.sqggeatubeufpc2r@alap3.anarazel.de>
	<20180816111859.n6vtt322jpjwflij@alap3.anarazel.de>
	<20180816142220.yowdd6626c6mea5o@alap3.anarazel.de>
	<14429.1534434090@sss.pgh.pa.us>
	<20180816160508.nd5u6fblr3jwcg6f@alap3.anarazel.de>



On 08/16/2018 12:05 PM, Andres Freund wrote:
> Hi,
>
> On 2018-08-16 11:41:30 -0400, Tom Lane wrote:
>> Andres Freund <andres@anarazel.de> writes:
>>> But enabling C99 support triggered a somewhat weird failure on
>>> protosciurus (also solaris, but gcc)
>>> https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=protosciurus&dt=2018-08-16%2013%3A37%3A4...
>>> It detects C99 support successfully via -std=gnu99 but then fails
>>> somewhere during build with:
>>> ../../../../src/include/utils/float.h:71: error: `__builtin_infinity' undeclared (first use in this function)
>>> While I'd personally have no problem kicking gcc 3.4 to the curb, I'm
>>> still confused what causes this error mode.  Kinda looks like
>>> out-of-sync headers with gcc or something.
>> Yeah, this is *absolutely* unsurprising for a non-native gcc installation
>> on an old platform.  It only works to the extent that the platform's
>> library headers are up to snuff.  The gcc installation process actually
>> knows enough to do a certain amount of editing of the platform's headers,
>> and install "fixed" copies of those headers where gcc will find them
>> before the ones in /usr/include.  But it looks like the fixing didn't
>> account for __builtin_infinity on this platform.  Maybe a newer gcc
>> would get it right.
> Sure, but that still requires the headers to behave differently between
> C89 and C99 mode, as this worked before. But it turns out there's two
> different math.h implementation headers, depending on c99 being enabled
> (math_c99.h being the troublesome).  If I understand correctly the
> problem is more that the system library headers are *newer* (and assume
> a sun studio emulating/copying quite a bit of gcc) than the gcc that's
> being used, and therefore gcc fails.
>
> Gcc 3.4.3 has been released November 4, 2004, whereas solaris 10 is from
> January 31, 2005. The sun studio used for castoroides running on, I
> assume, the same hardware, is quite a bit newer in turn.
>
>
>> I just launched gaur/pademelon builds for you, though I'm quite certain
>> they'll both report "unsupported".
> Yea, that seems fairly likely.
>
>
>> If we go through with this, my plan would be to retire pademelon
>> (vendor's compiler) and see if I can install gcc 4.something to
>> replace the 2.95.3 version that gaur is using.
> K.
>
>
>> The -ansi option that dromedary is using is certainly losable, too
>> (I'd probably replace it with either --std=c99 or --std=gnu99,
>> whichever autoconf *doesn't* pick by default, just to be contrary).
> Makes sense.
>
>
>> Andrew is going to need to give us a policy decision on whether to
>> keep using the existing animal names or take out new ones for these
>> rather-significantly-modified configurations.
> CCed.
>


The usual policy is that animal names need to change if the OS or 
compiler names change, but not if just the versions of those change. 
There is a script in the suite to update those settings, and the admins 
can also help if necessary.

cheers

andrew


-- 
Andrew Dunstan                https://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services





view thread (46+ messages)  latest in thread

Message-ID: <8dfab595-ce96-0290-e3d4-10392fa96b9e@2ndQuadrant.com>
Permalink:  ../8dfab595-ce96-0290-e3d4-10392fa96b9e@2ndQuadrant.com/
Also on:    postgresql.org/message-id/8dfab595-ce96-0290-e3d4-10392fa96b9e@2ndQuadrant.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-hackers@postgresql.org
  Cc: andrew.dunstan@2ndquadrant.com, andres@anarazel.de, tgl@sss.pgh.pa.us, dpage@pgadmin.org, david@pgmasters.net, pgsql-hackers@lists.postgresql.org
  Subject: Re: C99 compliance for src/port/snprintf.c
  In-Reply-To: <8dfab595-ce96-0290-e3d4-10392fa96b9e@2ndQuadrant.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox