Обсуждение: compile error: c_lock assembler
Hi,
from current CVS:
./configure --prefix=/usr/lib/postgresql \ --enable-multibyte \ --enable-locale \
--enable-nls \ --enable-recode \ --enable-unicode-conversion \
--with-openssl\ --enable-cassert
gcc -O2 -Wall -Wmissing-prototypes -Wmissing-declarations
-I../../../../src/include -c -o s_lock.o s_lock.c
s_lock.c:234: warning: `tas_dummy' defined but not used
/tmp/ccCLFPji.s: Assembler messages:
/tmp/ccCLFPji.s:210: Error: unknown pseudo-op: '.frame'
/tmp/ccCLFPji.s:211: Error: no such instruction: 'll $14,0($4)'
/tmp/ccCLFPji.s:212: Error: suffix or operands invalid for `or'
/tmp/ccCLFPji.s:213: Error: no such instruction: `sc $15,0($4)'
/tmp/ccCLFPji.s:214: Error: no such instruction: `beq $15,0,fail'
/tmp/ccCLFPji.s:215: Error: no such instruction: `bne $14,0,fail'
/tmp/ccCLFPji.s:216: Error: no such instruction: `li $2,0'
/tmp/ccCLFPji.s:217: Error: unknown pseudo-op: `.livereg'
/tmp/ccCLFPji.s:218: Error: no such instruction: $31'
/tmp/ccCLFPji.s:220: Error: no such instruction: `li $2,1'
/tmp/ccCLFPji.s:221: Error: no such instruction: $31'
make[2]: *** [s_lock.o] Error 1
$ gcc -v
Reading specs from /usr/lib/gcc-lib/i386-linux/2.95.4/specs
gcc version 2.95.4 20010827 (Debian prerelease)
Lates change:
date: 2001/08/28 15:04:27; author: petere; state: Exp; lines: +4 -4
Change the conditionals so the mips + gcc code here doesn't apply for Irix.
The code in s_lock.h should get used.
-- Karel Zak <zakkr@zf.jcu.cz>http://home.zf.jcu.cz/~zakkr/C, PostgreSQL, PHP, WWW, http://docs.linux.cz,
http://mape.jcu.cz
Hmm, I answer it oneself. A problem is in the file
src/backend/storage/buffer/s_lock.c at line 231:
#if defined(__mips__) || !defined(__sgi) ^^^^^
this condition is true for all __mips__ or for *everythig* what is
not __sgi__ (so i386 too). It's the typical 'OR' problem :-)
Karel
On Wed, Aug 29, 2001 at 01:03:25PM +0200, Karel Zak wrote:
>
> Hi,
>
> from current CVS:
>
> ./configure --prefix=/usr/lib/postgresql \
> --enable-multibyte \
> --enable-locale \
> --enable-nls \
> --enable-recode \
> --enable-unicode-conversion \
> --with-openssl \
> --enable-cassert
>
> gcc -O2 -Wall -Wmissing-prototypes -Wmissing-declarations
> -I../../../../src/include -c -o s_lock.o s_lock.c
> s_lock.c:234: warning: `tas_dummy' defined but not used
> /tmp/ccCLFPji.s: Assembler messages:
> /tmp/ccCLFPji.s:210: Error: unknown pseudo-op: '.frame'
> /tmp/ccCLFPji.s:211: Error: no such instruction: 'll $14,0($4)'
> /tmp/ccCLFPji.s:212: Error: suffix or operands invalid for `or'
> /tmp/ccCLFPji.s:213: Error: no such instruction: `sc $15,0($4)'
> /tmp/ccCLFPji.s:214: Error: no such instruction: `beq $15,0,fail'
> /tmp/ccCLFPji.s:215: Error: no such instruction: `bne $14,0,fail'
> /tmp/ccCLFPji.s:216: Error: no such instruction: `li $2,0'
> /tmp/ccCLFPji.s:217: Error: unknown pseudo-op: `.livereg'
> /tmp/ccCLFPji.s:218: Error: no such instruction:
> $31'
> /tmp/ccCLFPji.s:220: Error: no such instruction: `li $2,1'
> /tmp/ccCLFPji.s:221: Error: no such instruction:
> $31'
> make[2]: *** [s_lock.o] Error 1
>
> $ gcc -v
> Reading specs from /usr/lib/gcc-lib/i386-linux/2.95.4/specs
> gcc version 2.95.4 20010827 (Debian prerelease)
>
> Lates change:
> date: 2001/08/28 15:04:27; author: petere; state: Exp; lines: +4 -4
> Change the conditionals so the mips + gcc code here doesn't apply for Irix.
> The code in s_lock.h should get used.
>
> --
> Karel Zak <zakkr@zf.jcu.cz>
> http://home.zf.jcu.cz/~zakkr/
>
> C, PostgreSQL, PHP, WWW, http://docs.linux.cz, http://mape.jcu.cz
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
>
> http://www.postgresql.org/search.mpl
-- Karel Zak <zakkr@zf.jcu.cz>http://home.zf.jcu.cz/~zakkr/C, PostgreSQL, PHP, WWW, http://docs.linux.cz,
http://mape.jcu.cz
Karel Zak writes: > Hmm, I answer it oneself. A problem is in the file > src/backend/storage/buffer/s_lock.c at line 231: > > #if defined(__mips__) || !defined(__sgi) > ^^^^^ > > this condition is true for all __mips__ or for *everythig* what is > not __sgi__ (so i386 too). It's the typical 'OR' problem :-) Yup. It's already fixed. Sorry. -- Peter Eisentraut peter_e@gmx.net http://funkturm.homeip.net/~peter