Re: Compile fails on AIX 6.1

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Lars Ewald (web(dot)de)" <l(dot)ewald-web(at)lars-ewald(dot)de>
Cc: pgsql-bugs(at)postgreSQL(dot)org
Subject: Re: Compile fails on AIX 6.1
Date: 2014-07-11 14:55:58
Message-ID: 2650.1405090558@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

[ please keep the mailing list cc'd ]

"Lars Ewald (web.de)" <l(dot)ewald-web(at)lars-ewald(dot)de> writes:
> Thank you for answering very fast.

>> PPC what exactly?

> chrp with 64-bit.
> MACHINE_ARCHITECTURE: chrp
> HARDWARE_BITMODE: 64

> Do you need further information regarding the system?

Yes, please; CHRP is pretty non-specific as regards the processor
generation. However, it's probably *old* since CHRP wasn't too
successful according to Wikipedia. If the CPU predates POWER6 or
thereabouts, then lack of LWARX hint support in the assembler
wouldn't be surprising.

Still, configure should have caught that. Does configure end up
defining HAVE_PPC_LWARX_MUTEX_HINT in src/include/pg_config.h?

Hmm ... looking at s_lock.h some more, I wonder if maybe it's
LWSYNC and not LWARX that's causing the problem. We currently
set USE_PPC_LWSYNC for any PPC64 build (see pg_config_manual.h).
IIRC we knew that there were a few machines for which that heuristic
would fail, but we didn't think anybody would be using Postgres
on them.

Assuming that HAVE_PPC_LWARX_MUTEX_HINT is *not* getting set,
I'd suggest commenting out the #define for USE_PPC_LWSYNC in
pg_config_manual.h and see if it gets better. If that is the
answer then I guess we will need a configure-time test for lwsync
support after all.

>> I think the odds are pretty high that the problem here is that we tried to
>> use the "mutex hint" option in our PPC spinlock assembly code, and the
>> system's assembler doesn't recognize that.

> Would it help to use another compiler, e.g. XL C?

It'd be worth trying if you have another one at hand, but it's
hard to say what the results would be.

Note that there's a question here not only as to whether it will
build, but whether it will run on your hardware. I'd definitely
try "make check" before believing that you have a working build.

>> However, we only try to use that option after the configure script has
>> confirmed that the syntax is
>> accepted, so it's not real clear how you got this result. Perhaps you
>> tried to change compilers without redoing the configure run?

> No. I did not change the compiler. By the way, I always run "make clean" and
> then re"configure"
> to recompile the code.

That might be good enough, but personally I always do "make distclean"
before reconfiguring.

regards, tom lane

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Merlin Moncure 2014-07-11 16:39:40 Re: Compile fails on AIX 6.1
Previous Message Noah Misch 2014-07-11 13:34:39 Re: Missing file versions for a bunch of dll/exe files in Windows builds