Обсуждение: Port Bug Report: syntax errors in spinlocks (s_lock.h)

Поиск
Список
Период
Сортировка

Port Bug Report: syntax errors in spinlocks (s_lock.h)

От
Unprivileged user
Дата:
============================================================================
                        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:
---------


--------------------------------------------------------------------------


Re: [PORTS] Port Bug Report: syntax errors in spinlocks (s_lock.h)

От
Bruce Momjian
Дата:
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

Re: [PORTS] Port Bug Report: syntax errors in spinlocks (s_lock.h)

От
"Pedro J. Lobo"
Дата:
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