Обсуждение: Port Bug Report: syntax errors in spinlocks (s_lock.h)
============================================================================ POSTGRESQL BUG REPORT TEMPLATE ============================================================================ Your name : Jarda Benkovsky Your email address : benkovsk@pha.pvt.cz Category : install: compile Severity : serious Summary: syntax errors in spinlocks (s_lock.h) System Configuration -------------------- Operating System : Digital Unix 4.0e PostgreSQL version : 6.4.2 Compiler used : gcc 2.8.1, DEC C V5.8-009 Hardware: --------- Alpha 2100 uname -a: OSF1 shadow.pvt.net V4.0 1091 alpha Versions of other tools: ------------------------ gnu make -------------------------------------------------------------------------- Problem Description: -------------------- On Digital Unix alphas, msemaphores are defined as a struct of two ints. Neither gcc, nor native do not like constructs like *(lock) = 0; Native cc: /usr/bin/cc -I../../../include -I../../../backend -DNOFIXADE -I../.. -c buf_init.c -o buf_init.o cc: Error: buf_init.c, line 234: In this statement, "0" is of type "int", and cannot be converted to "struct declared withouta tag". (noconvert) S_INIT_LOCK(&(buf->io_in_progress_lock)); ------------------------^ GCC: ../../../include/storage/s_lock.h: In function `tas': In file included from buf_init.c:29: ../../../include/storage/s_lock.h:102: aggregate value used where an integer was expected buf_init.c: In function `InitBufferPool': buf_init.c:234: incompatible types in assignment Especially the case of native CC is interesting, as there should not be such case and I was not able to reproduce it in controlled environment - but maybe I did some mistake during the test. -------------------------------------------------------------------------- Test Case: ---------- ./configure; make -------------------------------------------------------------------------- Solution: --------- --------------------------------------------------------------------------
Without a patch to show us how to handle, it is hard for us to fix this. > > ============================================================================ > POSTGRESQL BUG REPORT TEMPLATE > ============================================================================ > > > Your name : Jarda Benkovsky > Your email address : benkovsk@pha.pvt.cz > > Category : install: compile > Severity : serious > > Summary: syntax errors in spinlocks (s_lock.h) > > System Configuration > -------------------- > Operating System : Digital Unix 4.0e > > PostgreSQL version : 6.4.2 > > Compiler used : gcc 2.8.1, DEC C V5.8-009 > > Hardware: > --------- > Alpha 2100 > uname -a: OSF1 shadow.pvt.net V4.0 1091 alpha > > Versions of other tools: > ------------------------ > gnu make > > -------------------------------------------------------------------------- > > Problem Description: > -------------------- > On Digital Unix alphas, msemaphores are defined as a struct of two ints. > Neither gcc, nor native do not like constructs like *(lock) = 0; > > Native cc: > > /usr/bin/cc -I../../../include -I../../../backend -DNOFIXADE -I../.. -c buf_init.c -o buf_init.o > cc: Error: buf_init.c, line 234: In this statement, "0" is of type "int", and cannot be converted to "struct declared withouta tag". (noconvert) > S_INIT_LOCK(&(buf->io_in_progress_lock)); > ------------------------^ > > GCC: > ../../../include/storage/s_lock.h: In function `tas': > In file included from buf_init.c:29: > ../../../include/storage/s_lock.h:102: aggregate value used where an integer was expected > buf_init.c: In function `InitBufferPool': > buf_init.c:234: incompatible types in assignment > > > Especially the case of native CC is interesting, as there > should not be such case and I was not able to reproduce > it in controlled environment - but maybe I did some mistake > during the test. > > -------------------------------------------------------------------------- > > Test Case: > ---------- > ./configure; make > > -------------------------------------------------------------------------- > > Solution: > --------- > > > -------------------------------------------------------------------------- > > > -- Bruce Momjian | http://www.op.net/~candle maillist@candle.pha.pa.us | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026
Jarda, I have used PostgreSQL on Digital Unix for a long time, and have never seen the problem you are reporting. >> ============================================================================ >> POSTGRESQL BUG REPORT TEMPLATE >> ============================================================================ >> >> >> Your name : Jarda Benkovsky >> Your email address : benkovsk@pha.pvt.cz >> >> Category : install: compile >> Severity : serious >> >> Summary: syntax errors in spinlocks (s_lock.h) >> >> System Configuration >> -------------------- >> Operating System : Digital Unix 4.0e I am using 4.0d (patchkit 2 applied). >> PostgreSQL version : 6.4.2 I have used it since the 6.0 days. Now I am running the latest 6.4 CVS source, but have been running 6.4 and 6.4.2. >> Compiler used : gcc 2.8.1, DEC C V5.8-009 DEC C V5.6-075 here. >> Hardware: >> --------- >> Alpha 2100 >> uname -a: OSF1 shadow.pvt.net V4.0 1091 alpha DEC 2000 AXP 300, uname -a: OSF1 haddock.euitt.upm.es V4.0 878 alpha >> Versions of other tools: >> ------------------------ >> gnu make Which version? I use 3.75. >> -------------------------------------------------------------------------- >> >> Problem Description: >> -------------------- >> On Digital Unix alphas, msemaphores are defined as a struct of two ints. >> Neither gcc, nor native do not like constructs like *(lock) = 0; >> >> Native cc: >> >> /usr/bin/cc -I../../../include -I../../../backend -DNOFIXADE -I../.. -c buf_init.c -o buf_init.o >> cc: Error: buf_init.c, line 234: In this statement, "0" is of type "int", and cannot be converted to "struct declaredwithout a tag". (noconvert) >> S_INIT_LOCK(&(buf->io_in_progress_lock)); >> ------------------------^ I *never* saw this error before. I can send my the output from configure and gmake, if you want. >> GCC: >> ../../../include/storage/s_lock.h: In function `tas': >> In file included from buf_init.c:29: >> ../../../include/storage/s_lock.h:102: aggregate value used where an integer was expected >> buf_init.c: In function `InitBufferPool': >> buf_init.c:234: incompatible types in assignment I haven't tried gcc 2.8 (2.7 didn't work). >> Especially the case of native CC is interesting, as there >> should not be such case and I was not able to reproduce >> it in controlled environment - but maybe I did some mistake >> during the test. I would think so. Please repeat the build on a clean source tree. >> -------------------------------------------------------------------------- >> >> Test Case: >> ---------- >> ./configure; make You mean gmake, don't you? Or have you replaced the system's make? -- ------------------------------------------------------------------- Pedro José Lobo Perea Tel: +34 91 336 78 19 Centro de Cálculo Fax: +34 91 331 92 29 E.U.I.T. Telecomunicación e-mail: pjlobo@euitt.upm.es Universidad Politécnica de Madrid Ctra. de Valencia, Km. 7 E-28031 Madrid - España / Spain