From: Phil Pennock Date: Sat, 26 Mar 2011 04:32:44 +0000 (-0400) Subject: Rely on system prototypes if we #define our os funcs. X-Git-Tag: exim-4_76_RC1~7 X-Git-Url: https://git.exim.org/users/jgh/exim.git/commitdiff_plain/b52ce0604579f50b71e7527e5030dfb3f74c618b?hp=4e7ee01264c430b044fd81cbc79a09ee0348d018 Rely on system prototypes if we #define our os funcs. The const-ness updates broke systems where `os_strsignal()` gets mapped to `strsignal()`, which does *not* return `const char *` but `char *`. If we #define away, then there should be a prototype from the system headers. --- diff --git a/src/src/osfunctions.h b/src/src/osfunctions.h index 19b580860..14111d383 100644 --- a/src/src/osfunctions.h +++ b/src/src/osfunctions.h @@ -14,10 +14,25 @@ that uses a type that isn't defined for them. */ extern ip_address_item *os_common_find_running_interfaces(void); #endif +/* If these exist as a macro, then they're overriden away from us and we +rely upon the system headers to provide prototype declarations for us. +Notably, strsignal() is not in the Single Unix Specification (v3) and +predicting constness is awkward. */ + +#ifndef os_getloadavg extern int os_getloadavg(void); +#endif +#ifndef os_restarting_signal extern void os_restarting_signal(int, void (*)(int)); +#endif +#ifndef os_non_restarting_signal extern void os_non_restarting_signal(int, void (*)(int)); +#endif +#ifndef os_strexit extern const char *os_strexit(int); /* char to match os_strsignal */ +#endif +#ifndef os_strsignal extern const char *os_strsignal(int); /* char to match strsignal in some OS */ +#endif /* End of osfunctions.h */