about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--include/utmp.h21
-rw-r--r--src/stub/utmpx.c8
2 files changed, 23 insertions, 6 deletions
diff --git a/include/utmp.h b/include/utmp.h
index f60ff883..ff3e45e1 100644
--- a/include/utmp.h
+++ b/include/utmp.h
@@ -1,6 +1,10 @@
 #ifndef _UTMP_H
 #define _UTMP_H
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #include <utmpx.h>
 
 #define ut_time ut_tv.tv_sec
@@ -9,15 +13,20 @@
 #define e_termination __e_termination
 #define e_exit __e_exit
 #define utmp utmpx
-#define endutent endutxent
-#define getutent getutxent
-#define setutent setutxent
-#define getutid getutxid
-#define getutline getutxline
-#define pututline pututxline
 #define utmpname(x) (-1)
 
+void         endutent(void);
+struct utmp *getutent(void);
+struct utmp *getutid(const struct utmp *);
+struct utmp *getutline(const struct utmp *);
+struct utmp *pututline(const struct utmp *);
+void         setutent(void);
+
 #define _PATH_UTMP "/dev/null"
 #define _PATH_WTMP "/dev/null"
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif
diff --git a/src/stub/utmpx.c b/src/stub/utmpx.c
index 32003969..42190ec2 100644
--- a/src/stub/utmpx.c
+++ b/src/stub/utmpx.c
@@ -1,5 +1,6 @@
 #include <utmpx.h>
 #include <stddef.h>
+#include "libc.h"
 
 void endutxent(void)
 {
@@ -28,3 +29,10 @@ struct utmpx *pututxline(const struct utmpx *ut)
 {
 	return NULL;
 }
+
+weak_alias(endutxent, endutent);
+weak_alias(setutxent, setutent);
+weak_alias(getutxent, getutent);
+weak_alias(getutxid, getutid);
+weak_alias(getutxline, getutline);
+weak_alias(pututxline, pututline);