Lists: | pgsql-hackers |
---|
From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Andres Freund <andres(at)2ndquadrant(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com> |
Cc: | pgsql-hackers(at)postgreSQL(dot)org |
Subject: | s_lock.h default definitions are rather confused |
Date: | 2015-01-10 21:09:42 |
Message-ID: | 25643.1420924182@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-hackers |
I've not tried to build HEAD on my HPPA dinosaur for awhile, but I did
just now, and I am presented with boatloads of this:
../../../src/include/storage/s_lock.h:759: warning: `S_UNLOCK' redefined
../../../src/include/storage/s_lock.h:679: warning: this is the location of the previous definition
which is not too surprising because the "default" definition at line 679
precedes the HPPA-specific one at line 759.
I'm not particularly interested in untangling the effects of the recent
hackery in s_lock.h enough to figure out how the overall structure got
broken, but I trust one of you will clean up the mess.
regards, tom lane
From: | Andres Freund <andres(at)2ndquadrant(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, pgsql-hackers(at)postgreSQL(dot)org |
Subject: | Re: s_lock.h default definitions are rather confused |
Date: | 2015-01-10 22:03:36 |
Message-ID: | 20150110220336.GB27519@awork2.anarazel.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-hackers |
On 2015-01-10 16:09:42 -0500, Tom Lane wrote:
> I've not tried to build HEAD on my HPPA dinosaur for awhile, but I did
> just now, and I am presented with boatloads of this:
>
> ../../../src/include/storage/s_lock.h:759: warning: `S_UNLOCK' redefined
> ../../../src/include/storage/s_lock.h:679: warning: this is the location of the previous definition
>
> which is not too surprising because the "default" definition at line 679
> precedes the HPPA-specific one at line 759.
That's 0709b7ee72e4bc71ad07b7120acd117265ab51d0.
Not too surprising that it broke and wasn't noticed without access to
hppa - the hppa code uses gcc inline assembly outside of the big
defined(__GNUC__) and inside the section headed "Platforms that use
non-gcc inline assembly".
> I'm not particularly interested in untangling the effects of the recent
> hackery in s_lock.h enough to figure out how the overall structure got
> broken, but I trust one of you will clean up the mess.
I think it's easiest solved by moving the gcc inline assembly up to the
rest of the gcc inline assembly. That'll require duplicating a couple
lines, but seems easier to understand nonetheless. Not pretty.
Given you got the error above, you used gcc. Have you used non-gcc
compiler on hppa recently? I seem to recall you mentioning that that
doesn't work sanely anymore? If so, perhaps we can just remove the !gcc
variant?
Greetings,
Andres Freund
--
Andres Freund http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services
From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Andres Freund <andres(at)2ndquadrant(dot)com> |
Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, pgsql-hackers(at)postgreSQL(dot)org |
Subject: | Re: s_lock.h default definitions are rather confused |
Date: | 2015-01-10 22:17:05 |
Message-ID: | 26906.1420928225@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-hackers |
Andres Freund <andres(at)2ndquadrant(dot)com> writes:
> Given you got the error above, you used gcc.
Right.
> Have you used non-gcc
> compiler on hppa recently? I seem to recall you mentioning that that
> doesn't work sanely anymore? If so, perhaps we can just remove the !gcc
> variant?
I'll try that shortly ...
regards, tom lane
From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Andres Freund <andres(at)2ndquadrant(dot)com> |
Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: s_lock.h default definitions are rather confused |
Date: | 2015-01-10 22:58:10 |
Message-ID: | 27746.1420930690@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-hackers |
Andres Freund <andres(at)2ndquadrant(dot)com> writes:
> Given you got the error above, you used gcc. Have you used non-gcc
> compiler on hppa recently? I seem to recall you mentioning that that
> doesn't work sanely anymore? If so, perhaps we can just remove the !gcc
> variant?
It still compiles, modulo some old and uninteresting warnings, but linking
the postgres executable fails with
usr/ccs/bin/ld: Unsatisfied symbols:
pg_compiler_barrier_impl (code)
make[2]: *** [postgres] Error 1
Curiously, there are no compiler warnings about "reference to undeclared
function", which is odd because I see nothing that would declare that name
as a function or macro for non-gcc HPPA. But in any case, the fallback
logic for compiler barriers evidently still needs work.
... further on ... Looks like somebody has recently broken pg_dump, too:
cc: "pg_dump.c", line 319: error 1521: Incorrect initialization.
cc: "pg_dump.c", line 320: error 1521: Incorrect initialization.
cc: "pg_dump.c", line 321: error 1521: Incorrect initialization.
cc: "pg_dump.c", line 322: error 1521: Incorrect initialization.
cc: "pg_dump.c", line 323: error 1521: Incorrect initialization.
cc: "pg_dump.c", line 324: error 1521: Incorrect initialization.
cc: "pg_dump.c", line 326: error 1521: Incorrect initialization.
cc: "pg_dump.c", line 327: error 1521: Incorrect initialization.
cc: "pg_dump.c", line 329: error 1521: Incorrect initialization.
cc: "pg_dump.c", line 333: error 1521: Incorrect initialization.
cc: "pg_dump.c", line 335: error 1521: Incorrect initialization.
cc: "pg_dump.c", line 336: error 1521: Incorrect initialization.
cc: "pg_dump.c", line 337: error 1521: Incorrect initialization.
cc: "pg_dump.c", line 338: error 1521: Incorrect initialization.
make[3]: *** [pg_dump.o] Error 1
This one looks like overoptimistic assumptions about what's legal
in an initializer. We could probably fix that by reverting the
option variables to statics; I see no benefit to be had from
having them as dynamic variables in main().
regards, tom lane
From: | Andres Freund <andres(at)2ndquadrant(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: s_lock.h default definitions are rather confused |
Date: | 2015-01-10 23:06:41 |
Message-ID: | 20150110230641.GC27519@awork2.anarazel.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-hackers |
On 2015-01-10 17:58:10 -0500, Tom Lane wrote:
> Andres Freund <andres(at)2ndquadrant(dot)com> writes:
> > Given you got the error above, you used gcc. Have you used non-gcc
> > compiler on hppa recently? I seem to recall you mentioning that that
> > doesn't work sanely anymore? If so, perhaps we can just remove the !gcc
> > variant?
>
> It still compiles, modulo some old and uninteresting warnings, but linking
> the postgres executable fails with
>
> usr/ccs/bin/ld: Unsatisfied symbols:
> pg_compiler_barrier_impl (code)
> make[2]: *** [postgres] Error 1
Ick, that one is my failure.
> Curiously, there are no compiler warnings about "reference to undeclared
> function", which is odd because I see nothing that would declare that name
> as a function or macro for non-gcc HPPA.
Yea, that's odd.
> But in any case, the fallback logic for compiler barriers evidently
> still needs work.
Will fix (or well, try). It broke due to the atomics patch.
Greetings,
Andres Freund
--
Andres Freund http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services
From: | Andres Freund <andres(at)2ndquadrant(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: s_lock.h default definitions are rather confused |
Date: | 2015-01-10 23:34:16 |
Message-ID: | 20150110233416.GD27519@awork2.anarazel.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-hackers |
On 2015-01-11 00:06:41 +0100, Andres Freund wrote:
> On 2015-01-10 17:58:10 -0500, Tom Lane wrote:
> > Andres Freund <andres(at)2ndquadrant(dot)com> writes:
> > > Given you got the error above, you used gcc. Have you used non-gcc
> > > compiler on hppa recently? I seem to recall you mentioning that that
> > > doesn't work sanely anymore? If so, perhaps we can just remove the !gcc
> > > variant?
> >
> > It still compiles, modulo some old and uninteresting warnings, but linking
> > the postgres executable fails with
> >
> > usr/ccs/bin/ld: Unsatisfied symbols:
> > pg_compiler_barrier_impl (code)
> > make[2]: *** [postgres] Error 1
>
> Ick, that one is my failure.
Actually. It looks like I only translated the logic from barrier.h 1:1
and it already was broken there. Hm, it looks like the current code
essentially is from 89779bf2c8f9aa480e0ceb8883f93e9d65c43a6e. That
introduced:
+#elif defined(__hppa) || defined(__hppa__) /* HP PA-RISC */
+
+/* HPPA doesn't do either read or write reordering */
+#define pg_memory_barrier() pg_compiler_barrier()
That works well enough for hppa on gcc because there's generic compiler
barrier for the latter. But for HPUX on own compiler no compiler barrier
is defined, because:
/*
* If read or write barriers are undefined, we upgrade them to full memory
* barriers.
*
* If a compiler barrier is unavailable, you probably don't want a full
* memory barrier instead, so if you have a use case for a compiler barrier,
* you'd better use #ifdef.
*/
#if !defined(pg_read_barrier)
#define pg_read_barrier() pg_memory_barrier()
#endif
#if !defined(pg_write_barrier)
#define pg_write_barrier() pg_memory_barrier()
#endif
Unless somebody protests I'm going to introduce a generic fallback
compiler barrier that's just a extern function.
Greetings,
Andres Freund
--
Andres Freund http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services
From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Andres Freund <andres(at)2ndquadrant(dot)com> |
Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: s_lock.h default definitions are rather confused |
Date: | 2015-01-10 23:40:58 |
Message-ID: | 28657.1420933258@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-hackers |
Andres Freund <andres(at)2ndquadrant(dot)com> writes:
> On 2015-01-11 00:06:41 +0100, Andres Freund wrote:
>> Ick, that one is my failure.
> Actually. It looks like I only translated the logic from barrier.h 1:1
> and it already was broken there. Hm, it looks like the current code
> essentially is from 89779bf2c8f9aa480e0ceb8883f93e9d65c43a6e.
There's a small difference, which is that the code actually worked as
of that commit. I suspect this got broken by Robert's barrier-hacking
of a few months ago. I don't think I've tried the non-gcc build since
committing 89779bf2c8f9aa48 :-(
> Unless somebody protests I'm going to introduce a generic fallback
> compiler barrier that's just a extern function.
Seems reasonable to me. An empty external function should do the job
for any compiler that isn't doing cross-procedural analysis.
regards, tom lane
From: | Andres Freund <andres(at)2ndquadrant(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: s_lock.h default definitions are rather confused |
Date: | 2015-01-11 00:22:01 |
Message-ID: | 20150111002201.GE27519@awork2.anarazel.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-hackers |
On 2015-01-10 18:40:58 -0500, Tom Lane wrote:
> Andres Freund <andres(at)2ndquadrant(dot)com> writes:
> > On 2015-01-11 00:06:41 +0100, Andres Freund wrote:
> >> Ick, that one is my failure.
>
> > Actually. It looks like I only translated the logic from barrier.h 1:1
> > and it already was broken there. Hm, it looks like the current code
> > essentially is from 89779bf2c8f9aa480e0ceb8883f93e9d65c43a6e.
>
> There's a small difference, which is that the code actually worked as
> of that commit.
Are you sure it actually worked on hppa && !gcc? Sure, the s_lock.h gcc
breakage is caused by Robert's s_lock.h commit (making spinlock proper
barriers), but I don't see how the tree as of 89779bf2c8f9aa48 could
work on !gcc hppa?
At least bgworker.c already used read and write barriers back
then. Those were redefined to a compiler barrier by
/* HPPA doesn't do either read or write reordering */
#define pg_memory_barrier() pg_compiler_barrier()
but barrier.h only provided (back then) compiler barriers for icc, gcc,
ia64 (without a compiler restriction?) and win32. So I don't see how
that could have worked.
On a reread, you even noted "But note this patch only fixes things for
gcc, not for builds with HP's compiler." in the commit message..
Anyway, i've pushed a fix for that to master. For one I'm not yet sure
if it's actually broken in the backbranches (and if we care), for
another the <= 9.4 fix will not have a single file in common anyway.
Any opinion on that?
Could you check whether that heals that problem? I've verified that it
allows me to build with gcc, even if I remove its compiler barrier
definition.
> > Unless somebody protests I'm going to introduce a generic fallback
> > compiler barrier that's just a extern function.
>
> Seems reasonable to me. An empty external function should do the job
> for any compiler that isn't doing cross-procedural analysis.
And I really doubt any of those that do fail to provide a compiler
barrier...
Greetings,
Andres Freund
--
Andres Freund http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services
From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Andres Freund <andres(at)2ndquadrant(dot)com> |
Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: s_lock.h default definitions are rather confused |
Date: | 2015-01-11 20:04:02 |
Message-ID: | 16916.1421006642@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-hackers |
Andres Freund <andres(at)2ndquadrant(dot)com> writes:
> On 2015-01-10 18:40:58 -0500, Tom Lane wrote:
>> Andres Freund <andres(at)2ndquadrant(dot)com> writes:
>>> Actually. It looks like I only translated the logic from barrier.h 1:1
>>> and it already was broken there. Hm, it looks like the current code
>>> essentially is from 89779bf2c8f9aa480e0ceb8883f93e9d65c43a6e.
>> There's a small difference, which is that the code actually worked as
>> of that commit.
> Are you sure it actually worked on hppa && !gcc? Sure, the s_lock.h gcc
> breakage is caused by Robert's s_lock.h commit (making spinlock proper
> barriers), but I don't see how the tree as of 89779bf2c8f9aa48 could
> work on !gcc hppa?
Ah, sorry, I mixed up commit hashes. I can say that the !gcc HPPA build
worked as of commit 44cd47c1d49655c5dd9648bde8e267617c3735b4, instead.
I don't think I'd tried it since then, until yesterday.
> Could you check whether that heals that problem? I've verified that it
> allows me to build with gcc, even if I remove its compiler barrier
> definition.
As of HEAD right now, the !gcc build is fine (well, there are a few
warnings that have been there for awhile, but they're uninteresting).
The gcc build is still spewing lots of
../../../../src/include/storage/s_lock.h:759: warning: `S_UNLOCK' redefined
../../../../src/include/storage/s_lock.h:679: warning: this is the location of the previous definition
regards, tom lane
From: | Andres Freund <andres(at)2ndquadrant(dot)com> |
---|---|
To: | Robert Haas <robertmhaas(at)gmail(dot)com> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-hackers(at)postgreSQL(dot)org |
Subject: | Re: s_lock.h default definitions are rather confused |
Date: | 2015-01-12 17:57:25 |
Message-ID: | 20150112175725.GF2092@awork2.anarazel.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-hackers |
On 2015-01-10 23:03:36 +0100, Andres Freund wrote:
> On 2015-01-10 16:09:42 -0500, Tom Lane wrote:
> > I've not tried to build HEAD on my HPPA dinosaur for awhile, but I did
> > just now, and I am presented with boatloads of this:
> >
> > ../../../src/include/storage/s_lock.h:759: warning: `S_UNLOCK' redefined
> > ../../../src/include/storage/s_lock.h:679: warning: this is the location of the previous definition
> >
> > which is not too surprising because the "default" definition at line 679
> > precedes the HPPA-specific one at line 759.
>
> That's 0709b7ee72e4bc71ad07b7120acd117265ab51d0.
>
> Not too surprising that it broke and wasn't noticed without access to
> hppa - the hppa code uses gcc inline assembly outside of the big
> defined(__GNUC__) and inside the section headed "Platforms that use
> non-gcc inline assembly".
>
> > I'm not particularly interested in untangling the effects of the recent
> > hackery in s_lock.h enough to figure out how the overall structure got
> > broken, but I trust one of you will clean up the mess.
>
> I think it's easiest solved by moving the gcc inline assembly up to the
> rest of the gcc inline assembly. That'll require duplicating a couple
> lines, but seems easier to understand nonetheless. Not pretty.
Robert, do you have a better idea?
Alternatively we could just add a #undef in the hppa gcc section and
live with the uglyness.
Greetings,
Andres Freund
--
Andres Freund http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services
From: | Robert Haas <robertmhaas(at)gmail(dot)com> |
---|---|
To: | Andres Freund <andres(at)2ndquadrant(dot)com> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: s_lock.h default definitions are rather confused |
Date: | 2015-01-14 17:27:42 |
Message-ID: | CA+TgmoZ=gqw5LzOxb3r6_ZrfR_Y_2HUskkfUyKrVuEUM5pg6Rw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-hackers |
On Mon, Jan 12, 2015 at 12:57 PM, Andres Freund <andres(at)2ndquadrant(dot)com> wrote:
> On 2015-01-10 23:03:36 +0100, Andres Freund wrote:
>> On 2015-01-10 16:09:42 -0500, Tom Lane wrote:
>> > I've not tried to build HEAD on my HPPA dinosaur for awhile, but I did
>> > just now, and I am presented with boatloads of this:
>> >
>> > ../../../src/include/storage/s_lock.h:759: warning: `S_UNLOCK' redefined
>> > ../../../src/include/storage/s_lock.h:679: warning: this is the location of the previous definition
>> >
>> > which is not too surprising because the "default" definition at line 679
>> > precedes the HPPA-specific one at line 759.
>>
>> That's 0709b7ee72e4bc71ad07b7120acd117265ab51d0.
>>
>> Not too surprising that it broke and wasn't noticed without access to
>> hppa - the hppa code uses gcc inline assembly outside of the big
>> defined(__GNUC__) and inside the section headed "Platforms that use
>> non-gcc inline assembly".
>>
>> > I'm not particularly interested in untangling the effects of the recent
>> > hackery in s_lock.h enough to figure out how the overall structure got
>> > broken, but I trust one of you will clean up the mess.
>>
>> I think it's easiest solved by moving the gcc inline assembly up to the
>> rest of the gcc inline assembly. That'll require duplicating a couple
>> lines, but seems easier to understand nonetheless. Not pretty.
>
> Robert, do you have a better idea?
How about hoisting the entire hppa section up to the top of the file,
before the __GNUC__ || __INTEL_COMPILER section?
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
From: | Andres Freund <andres(at)2ndquadrant(dot)com> |
---|---|
To: | Robert Haas <robertmhaas(at)gmail(dot)com> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: s_lock.h default definitions are rather confused |
Date: | 2015-01-14 22:59:19 |
Message-ID: | 20150114225919.GY5245@awork2.anarazel.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-hackers |
On 2015-01-14 12:27:42 -0500, Robert Haas wrote:
> On Mon, Jan 12, 2015 at 12:57 PM, Andres Freund <andres(at)2ndquadrant(dot)com> wrote:
> > On 2015-01-10 23:03:36 +0100, Andres Freund wrote:
> >> On 2015-01-10 16:09:42 -0500, Tom Lane wrote:
> >> > I've not tried to build HEAD on my HPPA dinosaur for awhile, but I did
> >> > just now, and I am presented with boatloads of this:
> >> >
> >> > ../../../src/include/storage/s_lock.h:759: warning: `S_UNLOCK' redefined
> >> > ../../../src/include/storage/s_lock.h:679: warning: this is the location of the previous definition
> >> >
> >> > which is not too surprising because the "default" definition at line 679
> >> > precedes the HPPA-specific one at line 759.
> >>
> >> That's 0709b7ee72e4bc71ad07b7120acd117265ab51d0.
> >>
> >> Not too surprising that it broke and wasn't noticed without access to
> >> hppa - the hppa code uses gcc inline assembly outside of the big
> >> defined(__GNUC__) and inside the section headed "Platforms that use
> >> non-gcc inline assembly".
> >>
> >> > I'm not particularly interested in untangling the effects of the recent
> >> > hackery in s_lock.h enough to figure out how the overall structure got
> >> > broken, but I trust one of you will clean up the mess.
> >>
> >> I think it's easiest solved by moving the gcc inline assembly up to the
> >> rest of the gcc inline assembly. That'll require duplicating a couple
> >> lines, but seems easier to understand nonetheless. Not pretty.
> >
> > Robert, do you have a better idea?
>
> How about hoisting the entire hppa section up to the top of the file,
> before the __GNUC__ || __INTEL_COMPILER section?
We could do that, but I'd rather not see that uglyness at the top
everytime I open the file :P
Right now I think a #ifdef/undef S_UNLOCK in the relevant gcc section
sufficient and acceptable. It's after all the HPPA section that doesn't
really play by the rules.
Greetings,
Andres Freund
--
Andres Freund http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services
From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Andres Freund <andres(at)2ndquadrant(dot)com> |
Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: s_lock.h default definitions are rather confused |
Date: | 2015-01-15 00:31:18 |
Message-ID: | 18635.1421281878@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-hackers |
Andres Freund <andres(at)2ndquadrant(dot)com> writes:
> Right now I think a #ifdef/undef S_UNLOCK in the relevant gcc section
> sufficient and acceptable. It's after all the HPPA section that doesn't
> really play by the rules.
Works for me.
regards, tom lane
From: | andres(at)anarazel(dot)de (Andres Freund) |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: s_lock.h default definitions are rather confused |
Date: | 2015-01-15 12:34:11 |
Message-ID: | 20150115123411.GD5245@awork2.anarazel.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-hackers |
On 2015-01-14 19:31:18 -0500, Tom Lane wrote:
> Andres Freund <andres(at)2ndquadrant(dot)com> writes:
> > Right now I think a #ifdef/undef S_UNLOCK in the relevant gcc section
> > sufficient and acceptable. It's after all the HPPA section that doesn't
> > really play by the rules.
>
> Works for me.
Pushed something like that. Gaur has the note 'Runs infrequently' - I'm
not sure whether that means we'll see the results anytime soon...
Greetings,
Andres Freund
--
Andres Freund http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services
From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | andres(at)anarazel(dot)de (Andres Freund) |
Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: s_lock.h default definitions are rather confused |
Date: | 2015-01-15 14:17:20 |
Message-ID: | 3025.1421331440@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-hackers |
andres(at)anarazel(dot)de (Andres Freund) writes:
> On 2015-01-14 19:31:18 -0500, Tom Lane wrote:
>> Andres Freund <andres(at)2ndquadrant(dot)com> writes:
>>> Right now I think a #ifdef/undef S_UNLOCK in the relevant gcc section
>>> sufficient and acceptable. It's after all the HPPA section that doesn't
>>> really play by the rules.
>> Works for me.
> Pushed something like that. Gaur has the note 'Runs infrequently' - I'm
> not sure whether that means we'll see the results anytime soon...
That means it runs when I boot it up and launch a run ;-) ... the
machine's old enough (and noisy enough) that I don't want to leave
it turned on 24x7.
I've launched a run now, expect results from gcc HEAD in an hour and
a half or so.
regards, tom lane
From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | andres(at)anarazel(dot)de (Andres Freund) |
Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: s_lock.h default definitions are rather confused |
Date: | 2015-01-15 15:57:10 |
Message-ID: | 5074.1421337430@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-hackers |
I wrote:
> I've launched a run now, expect results from gcc HEAD in an hour and
> a half or so.
... and it's happy. Thanks!
BTW, the reason I went to the trouble of cranking up the buildfarm scripts
on that machine (and it was painful :-() is that I don't believe any other
buildfarm members are running compilers old enough to complain about some
of the things these will. In particular:
* I've got gaur configured so it will throw "array subscript of type char"
complaints whenever somebody forgets to cast a <ctype.h> function argument
to unsigned char.
* pademelon will complain about // comments, variable-sized local arrays,
flexible array syntax, non-static function definition after static
declaration, and probably some other C89 violations that I am not
remembering right now.
While I'll not cry too hard when we decide to break C89 compatibility,
I don't want it to happen accidentally; so having a pretty old-school
compiler in the farm seems important to me.
regards, tom lane
From: | Andres Freund <andres(at)anarazel(dot)de> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: s_lock.h default definitions are rather confused |
Date: | 2015-01-15 16:07:05 |
Message-ID: | 20150115160705.GA14782@awork2.anarazel.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-hackers |
On 2015-01-15 10:57:10 -0500, Tom Lane wrote:
> * I've got gaur configured so it will throw "array subscript of type char"
> complaints whenever somebody forgets to cast a <ctype.h> function argument
> to unsigned char.
But, but. That would never happen to anyone (hides).
> While I'll not cry too hard when we decide to break C89 compatibility,
> I don't want it to happen accidentally; so having a pretty old-school
> compiler in the farm seems important to me.
Yea, agreed. I also don't think we want to adopt all of C99 at once, but
rather do it piecemal. Feature by feature.
I'd worked on setting up a modern gcc (or was it clang?) with the
appropriate flags to warn about !C89 stuff some time back, but failed
because of configure bugs. I think Robert has committed most of the
fixes since, and I now actually could do the rest one of these days...
Greetings,
Andres Freund
--
Andres Freund http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services
From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Andres Freund <andres(at)anarazel(dot)de> |
Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: s_lock.h default definitions are rather confused |
Date: | 2015-01-15 16:56:24 |
Message-ID: | 6223.1421340984@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-hackers |
Andres Freund <andres(at)anarazel(dot)de> writes:
> On 2015-01-15 10:57:10 -0500, Tom Lane wrote:
>> While I'll not cry too hard when we decide to break C89 compatibility,
>> I don't want it to happen accidentally; so having a pretty old-school
>> compiler in the farm seems important to me.
> I'd worked on setting up a modern gcc (or was it clang?) with the
> appropriate flags to warn about !C89 stuff some time back, but failed
> because of configure bugs.
My recollection is that there isn't any reasonable way to get gcc to
warn about C89 violations as such. -ansi -pedantic is not very fit
for the purpose.
regards, tom lane
From: | Andres Freund <andres(at)anarazel(dot)de> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: s_lock.h default definitions are rather confused |
Date: | 2015-01-15 16:59:40 |
Message-ID: | 20150115165940.GC18191@awork2.anarazel.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-hackers |
On 2015-01-15 11:56:24 -0500, Tom Lane wrote:
> Andres Freund <andres(at)anarazel(dot)de> writes:
> > On 2015-01-15 10:57:10 -0500, Tom Lane wrote:
> >> While I'll not cry too hard when we decide to break C89 compatibility,
> >> I don't want it to happen accidentally; so having a pretty old-school
> >> compiler in the farm seems important to me.
>
> > I'd worked on setting up a modern gcc (or was it clang?) with the
> > appropriate flags to warn about !C89 stuff some time back, but failed
> > because of configure bugs.
>
> My recollection is that there isn't any reasonable way to get gcc to
> warn about C89 violations as such. -ansi -pedantic is not very fit
> for the purpose.
It was clang, which has -Wc99-extensions/-Wc11-extensions.
Greetings,
Andres Freund
--
Andres Freund http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services
From: | Andres Freund <andres(at)anarazel(dot)de> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: s_lock.h default definitions are rather confused |
Date: | 2015-02-05 19:41:56 |
Message-ID: | 20150205194156.GA24534@awork2.anarazel.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-hackers |
On 2015-01-15 17:59:40 +0100, Andres Freund wrote:
> On 2015-01-15 11:56:24 -0500, Tom Lane wrote:
> > Andres Freund <andres(at)anarazel(dot)de> writes:
> > > On 2015-01-15 10:57:10 -0500, Tom Lane wrote:
> > >> While I'll not cry too hard when we decide to break C89 compatibility,
> > >> I don't want it to happen accidentally; so having a pretty old-school
> > >> compiler in the farm seems important to me.
> >
> > > I'd worked on setting up a modern gcc (or was it clang?) with the
> > > appropriate flags to warn about !C89 stuff some time back, but failed
> > > because of configure bugs.
> >
> > My recollection is that there isn't any reasonable way to get gcc to
> > warn about C89 violations as such. -ansi -pedantic is not very fit
> > for the purpose.
>
> It was clang, which has -Wc99-extensions/-Wc11-extensions.
gcc-5 now has:
* A new command-line option -Wc90-c99-compat has been added to warn about
features not present in ISO C90, but present in ISO C99.
* A new command-line option -Wc99-c11-compat has been added to warn about
features not present in ISO C99, but present in ISO C11.
Greetings,
Andres Freund
--
Andres Freund http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services