Re: [HACKERS] s_lock.h problem on S/Linux
От | Keith Parks |
---|---|
Тема | Re: [HACKERS] s_lock.h problem on S/Linux |
Дата | |
Msg-id | 199806211559.QAA06977@mtcc.demon.co.uk обсуждение исходный текст |
Ответы |
Re: [HACKERS] s_lock.h problem on S/Linux
|
Список | pgsql-hackers |
David, After making your suggested changes and then doing a "make s_lock_test" I get the following error messages. [postgres@sparclinux buffer]$ make s_lock_test gcc -g -I../../../include -I../../../backend -O2 -I../.. -DS_LOCK_TEST=1 s_lock.c -o s_lock_test /tmp/cca10794.s: Assembler messages: /tmp/cca10794.s:290: Error: Bad expression /tmp/cca10794.s:290: Error: Missing ')' assumed /tmp/cca10794.s:290: Error: Bad expression /tmp/cca10794.s:290: Error: Missing ')' assumed /tmp/cca10794.s:290: Error: Illegal operands /tmp/cca10794.s:440: Error: Bad expression /tmp/cca10794.s:440: Error: Missing ')' assumed /tmp/cca10794.s:440: Error: Bad expression /tmp/cca10794.s:440: Error: Missing ')' assumed /tmp/cca10794.s:440: Error: Illegal operands make: *** [s_lock_test] Error 1 If I compile with -save-temps and look at the s_lock.s file I see, on line 290:- .stabn 68,0,131,.LM9-s_lock .LM9: .LL45: ldstub [[%i0]], %o0 <------- .stabn 68,0,134,.LM10-s_lock .LM10: and %o0,0xff,%o0 The double square braces look strange to me so I removed the single braces in s_lock.h. The modified file compiles OK and in s_lock.s I can see:- .stabn 68,0,131,.LM9-s_lock .LM9: .LL45: ldstub [%i0], %o0 .stabn 68,0,134,.LM10-s_lock .LM10: and %o0,0xff,%o0 Now I know absoloutely nothing whatsoever about SPARC (or gnu) assembler so the code changes could result in nothing like a test and set function but... [postgres@sparclinux buffer]$ make s_lock_test gcc -g -I../../../include -I../../../backend -O2 -I../.. -DS_LOCK_TEST=1 s_lock.c -o s_lock_test ./s_lock_test S_LOCK_TEST: this will hang for a few minutes and then abort with a 'stuck spinlock' message if S_LOCK() and TAS() are working. FATAL: s_lock(00020be8) at s_lock.c:215, stuck spinlock. Aborting. FATAL: s_lock(00020be8) at s_lock.c:215, stuck spinlock. Aborting. make: *** [s_lock_test] IOT trap/Abort (core dumped) make: *** Deleting file `s_lock_test' Running s_lock_test does result in a hang for a few minutes and then a "stuck spinlock" message so perhaps it's not all that bad. (Not sure about the core dump though :-( ) Keith. dg@illustra.com (David Gould) > > > > > Hi hackers. > > > > I am having problems with the new spinlock code on the SPARC linux > > platform. (Latest CVSup) > > > > The compiler doesn't seem to like the "asm" part of s_lock.h for (sparc) > > > > Here's one of the compiles that fails. > > Thank you for testing and reporting this. It is my fault of course, but as > I don't have access to a sparc for testing I just did what I could. I am > guessing here, but please apply the following to your pgsql and let me know > what happens. Also, cd to src/storage/buffer and do 'make s_lock_test' as > well.
В списке pgsql-hackers по дате отправления: