![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
|
The following bug has been logged online: Bug reference: 2401 Logged by: Theo Schlossnagle Email address: jesus (AT) omniti (DOT) com PostgreSQL version: 8.1.3 Operating system: Solaris 10 Description: spinlocks not available on amd64 Details: Compiling 8.1.3 on solaris 10 x86 with Sun Studio 11 for amd64 target architecture leads us to an error resulting from no available "tas" assembly. The tas.s file doesn't look like valid assembly for the shipped Sun assembler. |
#2
| |||
| |||
|
|
OK, this is a great help. If you think it should be just one file we can do that, but since the are separate instructions sets, separate files I think still makes sense. |
#3
| |||
| |||
|
#4
| |||
| |||
|
|
Robert, Is there someone on the Solaris build team who should be seeing this thread? Josh Berkus PostgreSQL @ Sun San Francisco ---------------------------(end of broadcast)--------------------------- TIP 2: Don't 'kill -9' the postmaster |
#5
| |||
| |||
|
|
Theo Schlossnagle wrote: Tom Lane wrote: There is no reason for the i386 or AMD64 code to be different from what's already tested on Linux --- the hardware's the same and the OS surely doesn't make a difference at this level. On linux you use gcc, which allows for inline assembly. So, the code is already very different. How does this interact with binary builds such as rpms? If someone installs an amd64 binary on an x86 machine or vice versa does this assembly do the right thing at all? Does it perform slowly? Ideally we would compile both and pick the right one at run-time but that might have annoying overhead if there's a branch before every pg_atomic_cas call. Perhaps a minimal thing to do would be to detect a mismatch on startup and log a message about it. -- Gregory Stark http://mit.edu/~gsstark/resume.pdf |
#6
| |||
| |||
|
|
Tom Lane wrote: There is no reason for the i386 or AMD64 code to be different from what's already tested on Linux --- the hardware's the same and the OS surely doesn't make a difference at this level. On linux you use gcc, which allows for inline assembly. So, the code is already very different. |
![]() |
| Thread Tools | |
| Display Modes | |
| |