Gitweb:
http://git.exim.org/exim.git/commitdiff/b52ce0604579f50b71e7527e5030dfb3f74c618b
Commit: b52ce0604579f50b71e7527e5030dfb3f74c618b
Parent: 4e7ee01264c430b044fd81cbc79a09ee0348d018
Author: Phil Pennock <pdp@???>
AuthorDate: Sat Mar 26 00:32:44 2011 -0400
Committer: Phil Pennock <pdp@???>
CommitDate: Sat Mar 26 00:32:44 2011 -0400
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.
---
src/src/osfunctions.h | 15 +++++++++++++++
1 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/src/src/osfunctions.h b/src/src/osfunctions.h
index 19b5808..14111d3 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 */