make real symbols for the legacy (nonstandardized) utmp functions
authorRich Felker <dalias@aerifal.cx>
Sun, 20 Feb 2011 20:06:26 +0000 (15:06 -0500)
committerRich Felker <dalias@aerifal.cx>
Sun, 20 Feb 2011 20:06:26 +0000 (15:06 -0500)
this is needed in the long term for ABI compatibility anyway, and in
the immediate, it helps with building broken programs like GNU screen
that try to prototype the functions themselves rather than using the
header.

include/utmp.h
src/stub/utmpx.c

index f60ff883e27d8f67050c42e7b2afe1ce5919013b..ff3e45e155f9e12070c2dcf18eac98d5427b5d53 100644 (file)
@@ -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
 #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
index 32003969e4ea030532b03ac9b46eaafee8e33ad9..42190ec2e7fa6c5f0fe92ff93b4126f352977928 100644 (file)
@@ -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);