unfortunately, I have to admit to my disgrace, that I'm still no C programmer
after all these decades of dabbling in writing code. I just used the flags
because someone at some point told me that it was a good idea, turns out, it's
not [always]. I shall rebuild 9.5.1 without the -fno-common flag and see if
that fixes things.
Thanks Tom for spending part of your weekend on this.
> On Mar 12, 2016, at 17:58, Tom Lane <t...@sss.pgh.pa.us> wrote:
> I wrote:
>> That's confusing because it implies that -fno-common is the default,
>> which it evidently is not. But anyway, my diagnosis is that you're
>> breaking something about the linker's behavior with that switch.
> Oh! Looking closer, the core dump happens here:
> const printTextFormat pg_utf8format;
> printTextFormat *popt = (printTextFormat *) &pg_utf8format;
> --> popt->name = "unicode";
> So apparently, the relevant property of "-fno-common" is that it
> causes "const" variables to actually get placed in read-only data.
> I think this code is new in 9.5, which'd explain why you didn't see
> the failure with older PG versions. It's surely busted though.
> I shall get rid of the const-ness, as well as the lame casting away
> of it, and I think I will also go make buildfarm member longfin use
> "-fno-common". It is truly sad that we apparently have no test
> machine that enforces that const means const ...
> regards, tom lane
Sent via pgsql-hackers mailing list (firstname.lastname@example.org)
To make changes to your subscription: