PERFORCE change 95194 for review

John Birrell jb at FreeBSD.org
Fri Apr 14 00:00:07 UTC 2006


http://perforce.freebsd.org/chv.cgi?CH=95194

Change 95194 by jb at jb_freebsd2 on 2006/04/13 23:59:51

	This is a hack to handle things that Sun has added to their ELF
	implementation which don't seem to be implemented in any BSD
	licensed headers. Is there a standard somewhere which refers to
	Elf64_Move, Elf64_Cap, Elf64_Lvalue and Elf64_Syminfo?
	
	I'd prefer make sure that the OpenSolaris code uses out ELF and
	link headers.

Affected files ...

.. //depot/projects/dtrace/src/contrib/opensolaris/head/gelf.h#4 edit

Differences ...

==== //depot/projects/dtrace/src/contrib/opensolaris/head/gelf.h#4 (text) ====

@@ -29,13 +29,40 @@
 
 #pragma ident	"@(#)gelf.h	1.14	05/06/08 SMI"
 
-#if !defined(sun)
-#include <opensolaris/compat/sys/types.h>
-#endif
 #include <sys/feature_tests.h>
 
 #include <libelf.h>
+#if defined(sun)
 #include <sys/link.h>
+#else
+#include <opensolaris/compat/sys/types.h>
+#include <sys/elf64.h>
+#include <link.h>
+
+/*
+ * Non Sun ELF implementations don't have these.
+ * Where is the standard that defines them?
+ */
+typedef   unsigned long long      Elf64_Lword;
+typedef struct {
+    Elf64_Lword m_value;    /* symbol value */
+    Elf64_Xword     m_info;     /* size + index */
+    Elf64_Xword m_poffset;  /* symbol offset */
+    Elf64_Half  m_repeat;   /* repeat count */
+    Elf64_Half  m_stride;   /* stride info */
+} Elf64_Move;
+typedef struct {
+    Elf64_Xword c_tag;      /* how to interpret value */
+    union {
+        Elf64_Xword c_val;
+        Elf64_Addr  c_ptr;
+    } c_un;
+} Elf64_Cap;
+typedef struct {
+    Elf64_Half  si_boundto; /* direct bindings - symbol bound to */
+    Elf64_Half  si_flags;   /* per symbol flags */
+} Elf64_Syminfo;
+#endif
 
 /*
  * FreeBSD always supports 64-bit types.


More information about the p4-projects mailing list