Fix cross compilation of src/x86_64.
Signed-off-by: Arun Sharma
diff --git a/src/Makefile.am b/src/Makefile.am
index abe4b96..ac20d7b 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -298,11 +298,6 @@ endif
$(libunwind_setjmp_la_SOURCES_x86)
else
if ARCH_X86_64
- x86_64_gen_offsets_SOURCES = x86_64/gen-offsets.c
- noinst_PROGRAMS = x86_64/gen-offsets
- BUILT_SOURCES = _ucontext_i.h
-_ucontext_i.h: x86_64/gen-offsets
- x86_64/gen-offsets > $@
lib_LTLIBRARIES_arch = libunwind-x86_64.la
libunwind_la_SOURCES = $(libunwind_la_SOURCES_x86_64)
libunwind_x86_64_la_SOURCES = $(libunwind_x86_64_la_SOURCES_x86_64)
diff --git a/src/x86_64/gen-offsets.c b/src/x86_64/gen-offsets.c
deleted file mode 100644
index 72383b6..0000000
--- a/src/x86_64/gen-offsets.c
+++ /dev/null
@@ -1,59 +0,0 @@
-#include
-#include
-#include
-
-#define REG_OFFSET(reg) (offsetof(struct ucontext, uc_mcontext.gregs[REG_##reg]))
-
-
-char *regs[] = { "RAX",
- "RBX",
- "RCX",
- "RDX",
- "RDI",
- "RSI",
- "RSP",
- "RBP",
- "R8",
- "R9",
- "R10",
- "R11",
- "R12",
- "R13",
- "R14",
- "R15",
- "RIP",
- };
-
-main()
-{
- printf("#ifndef UCONTEXT_I_H\n#define UCONTEXT_I_H\n");
- printf("#define REG_OFFSET_%s\t%ld\n" , regs[0], REG_OFFSET(RAX));
- printf("#define REG_OFFSET_%s\t%ld\n" , regs[1], REG_OFFSET(RBX));
- printf("#define REG_OFFSET_%s\t%ld\n" , regs[2], REG_OFFSET(RCX));
- printf("#define REG_OFFSET_%s\t%ld\n" , regs[3], REG_OFFSET(RDX));
-
- printf("#define REG_OFFSET_%s\t%ld\n" , regs[4], REG_OFFSET(RDI));
- printf("#define REG_OFFSET_%s\t%ld\n" , regs[5], REG_OFFSET(RSI));
- printf("#define REG_OFFSET_%s\t%ld\n" , regs[6], REG_OFFSET(RSP));
- printf("#define REG_OFFSET_%s\t%ld\n" , regs[7], REG_OFFSET(RBP));
-
- printf("#define REG_OFFSET_%s\t%ld\n" , regs[8], REG_OFFSET(R8));
- printf("#define REG_OFFSET_%s\t%ld\n" , regs[9], REG_OFFSET(R9));
- printf("#define REG_OFFSET_%s\t%ld\n" , regs[10], REG_OFFSET(R10));
- printf("#define REG_OFFSET_%s\t%ld\n" , regs[11], REG_OFFSET(R11));
-
- printf("#define REG_OFFSET_%s\t%ld\n" , regs[12], REG_OFFSET(R12));
- printf("#define REG_OFFSET_%s\t%ld\n" , regs[13], REG_OFFSET(R13));
- printf("#define REG_OFFSET_%s\t%ld\n" , regs[14], REG_OFFSET(R14));
- printf("#define REG_OFFSET_%s\t%ld\n" , regs[15], REG_OFFSET(R15));
- printf("#define REG_OFFSET_%s\t%ld\n" , regs[15], REG_OFFSET(R15));
- printf("#define REG_OFFSET_%s\t%ld\n" , regs[15], REG_OFFSET(R15));
- printf("#define REG_OFFSET_%s\t%ld\n" , regs[16], REG_OFFSET(RIP));
-
- printf("#define REG_OFFSET_FPREGS_PTR\t%ld\n" , offsetof(struct ucontext, uc_mcontext.fpregs));
- printf("#define FPREG_OFFSET_MXCR\t%ld\n" , offsetof(struct _libc_fpstate, mxcsr));
- printf("#endif /* UCONTEXT_I_H */\n");
- return 0;
-}
-
-
diff --git a/src/x86_64/offsets.h b/src/x86_64/offsets.h
new file mode 100644
index 0000000..56ead69
--- /dev/null
+++ b/src/x86_64/offsets.h
@@ -0,0 +1,29 @@
+/* This used to be a generated file. But then it breaks cross compilation.
+ * So use the method used by other architectures.
+ */
+#ifndef OFFSETS_H
+#define OFFSETS_H
+
+#define REG_OFFSET_RAX 144
+#define REG_OFFSET_RBX 128
+#define REG_OFFSET_RCX 152
+#define REG_OFFSET_RDX 136
+#define REG_OFFSET_RDI 104
+#define REG_OFFSET_RSI 112
+#define REG_OFFSET_RSP 160
+#define REG_OFFSET_RBP 120
+#define REG_OFFSET_R8 40
+#define REG_OFFSET_R9 48
+#define REG_OFFSET_R10 56
+#define REG_OFFSET_R11 64
+#define REG_OFFSET_R12 72
+#define REG_OFFSET_R13 80
+#define REG_OFFSET_R14 88
+#define REG_OFFSET_R15 96
+#define REG_OFFSET_R15 96
+#define REG_OFFSET_R15 96
+#define REG_OFFSET_RIP 168
+#define REG_OFFSET_FPREGS_PTR 224
+#define FPREG_OFFSET_MXCR 24
+
+#endif /* OFFSETS_H */
diff --git a/src/x86_64/setcontext.S b/src/x86_64/setcontext.S
index f5fd552..894b967 100644
--- a/src/x86_64/setcontext.S
+++ b/src/x86_64/setcontext.S
@@ -23,7 +23,7 @@ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER L
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-#include "_ucontext_i.h"
+#include "offsets.h"
.global _x86_64_setcontext