Skip to content

Support for ARM64 #3

@GoogleCodeExporter

Description

@GoogleCodeExporter
What steps will reproduce the problem?

1. From within a crash utility source tree, enter "make extensions"

What is the expected output? What do you see instead?

[root@apm-mustang-ev2-01 crash.git]# make extensions
...
cd eppic/libeppic && make
bison -peppic -v -t -d eppic.y
eppic.y: conflicts: 253 shift/reduce, 20 reduce/reduce
cc -O0 -g -fPIC   -c -o eppic_util.o eppic_util.c
cc -O0 -g -fPIC   -c -o eppic_node.o eppic_node.c
cc -O0 -g -fPIC   -c -o eppic_var.o eppic_var.c
cc -O0 -g -fPIC   -c -o eppic_func.o eppic_func.c
cc -O0 -g -fPIC   -c -o eppic_str.o eppic_str.c
cc -O0 -g -fPIC   -c -o eppic_op.o eppic_op.c
cc -O0 -g -fPIC   -c -o eppic_num.o eppic_num.c
cc -O0 -g -fPIC   -c -o eppic_stat.o eppic_stat.c
cc -O0 -g -fPIC   -c -o eppic_builtin.o eppic_builtin.c
cc -O0 -g -fPIC   -c -o eppic_type.o eppic_type.c
cc -O0 -g -fPIC   -c -o eppic_case.o eppic_case.c
cc -O0 -g -fPIC   -c -o eppic_api.o eppic_api.c
cc -O0 -g -fPIC   -c -o eppic_member.o eppic_member.c
cc -O0 -g -fPIC   -c -o eppic_alloc.o eppic_alloc.c
cc -O0 -g -fPIC   -c -o eppic_define.o eppic_define.c
cc -O0 -g -fPIC   -c -o eppic_input.o eppic_input.c
cc -O0 -g -fPIC   -c -o eppic_print.o eppic_print.c
bison -peppicpp -v -t -d eppicpp.y
eppicpp.y: conflicts: 23 shift/reduce
cc -O0 -g -fPIC -c eppicpp.tab.c
cc -O0 -g -fPIC -c eppic.tab.c
flex -L -Peppic -t eppic.l > lex.eppic.c
cc -O0 -g -fPIC -c lex.eppic.c
flex -Peppicpp -t eppicpp.l  > lex.eppicpp.c
cc -O0 -g -fPIC -c lex.eppicpp.c
cc -O0 -g -fPIC -o mkbaseop mkbaseop.c
./mkbaseop > baseops.c
cc -O0 -g -fPIC -c baseops.c
ar ccurl libeppic.a eppic_util.o eppic_node.o eppic_var.o eppic_func.o 
eppic_str.o eppic_op.o eppic_num.o eppic_stat.o eppic_builtin.o eppic_type.o 
eppic_case.o eppic_api.o eppic_member.o eppic_alloc.o eppic_define.o 
eppic_input.o eppic_print.o eppicpp.tab.o eppic.tab.o lex.eppic.o lex.eppicpp.o 
baseops.o
gcc -g -Ieppic/libeppic -I../gdb-7.6/gdb -I../gdb-7.6/bfd -I../gdb-7.6/include 
-I../gdb-7.6/gdb/config -I../gdb-7.6/gdb/common -I../gdb-7.6 -nostartfiles 
-shared -rdynamic -o eppic.so eppic/applications/crash/eppic.c -fPIC -DARM64 
-DGDB_7_6 -Leppic/libeppic -leppic 
eppic/applications/crash/eppic.c: In function '_init':
eppic/applications/crash/eppic.c:1038:2: error: #error eppic: Unkown ABI
 #error eppic: Unkown ABI 
  ^
eppic/applications/crash/eppic.c:1045:24: error: 'EPPIC_ABI' undeclared (first 
use in this function)
   eppic_apiset(&icops, EPPIC_ABI, sizeof(long), 0);
                        ^
eppic/applications/crash/eppic.c:1045:24: note: each undeclared identifier is 
reported only once for each function it appears in
make[4]: [eppic.so] Error 1 (ignored)
...

What version of the product are you using? On what operating system?

This upstream version of eppic, on an ARM64 machine running a Linux 3.15.0-based
kernel.

Please provide any additional information below.

This patch allows the eppic.so module to be built and loaded into a crash
session successfully:

--- eppic/applications/crash/eppic.c.orig
+++ eppic/applications/crash/eppic.c
@@ -1035,10 +1035,14 @@ _init() /* Register the command set. */
 #ifdef PPC64
 #define EPPIC_ABI  ABI_PPC64
 #else
+#ifdef ARM64
+#define EPPIC_ABI  ABI_ARM64
+#else
 #error eppic: Unkown ABI 
 #endif
 #endif
 #endif
+#endif
 #endif
 #endif
 #endif
--- eppic/libeppic/eppic_api.h.orig
+++ eppic/libeppic/eppic_api.h
@@ -29,6 +29,7 @@
 #define ABI_S390        4
 #define ABI_S390X       5
 #define ABI_PPC64   6
+#define ABI_ARM64   7

 /* types of variables */
 #define V_BASE          1

Since the only consumer of EPPIC_ABI is the eppic_apiset() function -- which
ignores it entirely -- I'm presuming that there are no other arch-specific 
issues
that are required?


Original issue reported on code.google.com by anderson...@gmail.com on 19 Jun 2014 at 3:50

Attachments:

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions