in a sense this implementation is incomplete since it doesn't provide the HWCAP_* macros for use with AT_HWCAP, which is perhaps the most important intended usage case for getauxval. they will be added at a later time.
@@ -0,0 +1,16 @@
+#ifndef _SYS_AUXV_H
+#define _SYS_AUXV_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#include <elf.h>
+unsigned long getauxval(unsigned long);
+}
@@ -0,0 +1,12 @@
+#include <sys/auxv.h>
+#include <errno.h>
+#include "libc.h"
+unsigned long getauxval(unsigned long item)
+{
+ size_t *auxv = libc.auxv;
+ for (; *auxv; auxv+=2)
+ if (*auxv==item) return auxv[1];
+ errno = ENOENT;
+ return 0;