Tom Lane wrote:
>
> Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> writes:
> >> 2- configure badly guesses the type of the 3rd argument to accept(). it
> >> decided it should be size_t (unsigned int on IRIX) while accept on IRIX
> >> takes an int.
>
> > Again, a suggested change?
>
> This is something that's been bugging me for a while; the problem on
> most platforms is that int vs unsigned int parameter will only draw a
> warning from the compiler, and autoconf's TRY_COMPILE macro is only able
> to detect outright errors.
>
> I looked at the standard Autoconf macros just now, and found an example
> that may give us the right solution: instead of trying to see whether
> a call of accept with "int" or "unsigned int" parameter works, include
> <sys/socket.h> and then write an "extern" declaration for accept with
> the parameters we think it should have. This relies on the hope that
> if the compiler sees two declarations for accept with different
> parameter lists, it'll generate an error and not just a warning.
sys/socket is already included in the test program. and yet all I get
from the cc compiler is a warning!!! But here is a bit of trivia that I
found. the CC compiler (C++ on SGI) won't take it and will generate an
error. I am not sure obviously if this is to be expected of other C++
compilers. This particular warning message on my compiler has the number
1164. you can turn warning messages to error conditions using the flag
-diag_error message_number. So while cc conftest.c in this case
generates a warning. cc -diag_error 1164 conftest.c will generate an
error. Again I don't know if this feature is common in other compilers.
Murad
--
Murad Nayal M.D. Ph.D.
Department of Biochemistry and Molecular Biophysics
College of Physicians and Surgeons of Columbia University
630 West 168th Street. New York, NY 10032
Tel: 212-305-6884 Fax: 212-305-6926