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