# If building on Solaris, then do the following:
# 1. #include <sys/auxv.h> - which will bring in all the
# necessary AT_SUN_* macros.
# 2. #ifndef guard all the AT_SUN_* macros. The definitions from
# /usr/include/sys/auxv.h will be used.
#
# If not building on Solaris - i.e. cross-compiling, then
# the AT_SUN_* macro definitions present here will be used.
#
# This patch has been submitted to the community.
--- include/elf/common.h 2014-10-14 00:32:04.000000000 -0700
+++ include/elf/common.h 2015-08-04 12:32:32.098574442 -0700
@@ -30,6 +30,10 @@
#ifndef _ELF_COMMON_H
#define _ELF_COMMON_H
+#if defined(sun) || defined(__sun) || defined(__sun__)
+#include <sys/auxv.h>
+#endif
+
/* Fields in e_ident[]. */
#define EI_MAG0 0 /* File identification byte 0 index */
@@ -975,25 +979,77 @@
#define AT_L2_CACHESHAPE 36
#define AT_L3_CACHESHAPE 37
+#ifndef AT_SUN_UID
#define AT_SUN_UID 2000 /* Effective user ID. */
+#endif
+
+#ifndef AT_SUN_RUID
#define AT_SUN_RUID 2001 /* Real user ID. */
+#endif
+
+#ifndef AT_SUN_GID
#define AT_SUN_GID 2002 /* Effective group ID. */
+#endif
+
+#ifndef AT_SUN_RGID
#define AT_SUN_RGID 2003 /* Real group ID. */
+#endif
+
+#ifndef AT_SUN_LDELF
#define AT_SUN_LDELF 2004 /* Dynamic linker's ELF header. */
+#endif
+
+#ifndef AT_SUN_LDSHDR
#define AT_SUN_LDSHDR 2005 /* Dynamic linker's section headers. */
+#endif
+
+#ifndef AT_SUN_LDNAME
#define AT_SUN_LDNAME 2006 /* String giving name of dynamic linker. */
+#endif
+
+#ifndef AT_SUN_LPAGESZ
#define AT_SUN_LPAGESZ 2007 /* Large pagesize. */
+#endif
+
+#ifndef AT_SUN_PLATFORM
#define AT_SUN_PLATFORM 2008 /* Platform name string. */
+#endif
+
+#ifndef AT_SUN_HWCAP
#define AT_SUN_HWCAP 2009 /* Machine dependent hints about
processor capabilities. */
+#endif
+
+#ifndef AT_SUN_IFLUSH
#define AT_SUN_IFLUSH 2010 /* Should flush icache? */
+#endif
+
+#ifndef AT_SUN_CPU
#define AT_SUN_CPU 2011 /* CPU name string. */
+#endif
+
+#ifndef AT_SUN_EMUL_ENTRY
#define AT_SUN_EMUL_ENTRY 2012 /* COFF entry point address. */
+#endif
+
+#ifndef AT_SUN_EMUL_EXECFD
#define AT_SUN_EMUL_EXECFD 2013 /* COFF executable file descriptor. */
+#endif
+
+#ifndef AT_SUN_EXECNAME
#define AT_SUN_EXECNAME 2014 /* Canonicalized file name given to execve. */
+#endif
+
+#ifndef AT_SUN_MMU
#define AT_SUN_MMU 2015 /* String for name of MMU module. */
+#endif
+
+#ifndef AT_SUN_LDDATA
#define AT_SUN_LDDATA 2016 /* Dynamic linker's data segment address. */
-#define AT_SUN_AUXFLAGS 2017 /* AF_SUN_ flags passed from the kernel. */
+#endif
+#ifndef AT_SUN_AUXFLAGS
+#define AT_SUN_AUXFLAGS 2017 /* AF_SUN_ flags passed from the kernel. */
+#endif
#endif /* _ELF_COMMON_H */