summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile1
-rw-r--r--libgcompat/misc.c33
2 files changed, 34 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index 2ff1495..5e6406d 100644
--- a/Makefile
+++ b/Makefile
@@ -8,6 +8,7 @@ LIBGCOMPAT_SRC = \
libgcompat/grp.c \
libgcompat/malloc.c \
libgcompat/math.c \
+ libgcompat/misc.c \
libgcompat/pthread.c \
libgcompat/pwd.c \
libgcompat/resolv.c \
diff --git a/libgcompat/misc.c b/libgcompat/misc.c
new file mode 100644
index 0000000..aee490f
--- /dev/null
+++ b/libgcompat/misc.c
@@ -0,0 +1,33 @@
+#include <stdlib.h> /* abort, at_quick_exit */
+#include <sys/stat.h> /* dev_t */
+#include <sys/sysmacros.h> /* major, makedev, minor */
+
+/**
+ * Terminate a function in case of buffer overflow.
+ *
+ * LSB 5.0: LSB-Core-generic/baselib---chk-fail-1.html
+ */
+void __chk_fail(void)
+{
+ abort();
+}
+
+int __cxa_at_quick_exit(void (*func)(void), void *__dso_handle)
+{
+ return at_quick_exit(func);
+}
+
+unsigned int gnu_dev_major(dev_t dev)
+{
+ return major(dev);
+}
+
+dev_t gnu_dev_makedev(unsigned int maj, unsigned int min)
+{
+ return makedev(maj, min);
+}
+
+unsigned int gnu_dev_minor(dev_t dev)
+{
+ return minor(dev);
+}