summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2011-02-20 15:06:26 -0500
committerRich Felker <dalias@aerifal.cx>2011-02-20 15:06:26 -0500
commiteee150f39c294883841d4f3ad9ce290ea1529a9e (patch)
treed8eb77f9d76adedabd5072beb57dd7b36eab2db4
parentd6a1e0c79e84e6f13cd567b6401e0de1f9b5d4bb (diff)
downloadmusl-eee150f39c294883841d4f3ad9ce290ea1529a9e.tar.gz
musl-eee150f39c294883841d4f3ad9ce290ea1529a9e.tar.bz2
musl-eee150f39c294883841d4f3ad9ce290ea1529a9e.tar.xz
musl-eee150f39c294883841d4f3ad9ce290ea1529a9e.zip
make real symbols for the legacy (nonstandardized) utmp functions
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.
-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);