Track elf class in struct Process

Technically only s390 needs this at the moment, but it seems general enough
that it should be alongside the e_machine flag.  Eventually it is desirable
to replace both fields with either a backend-provided ABI enum, or with
an ABI object that would implement the interesting back end calls.
diff --git a/ltrace-elf.c b/ltrace-elf.c
index 76ba3ae..c8667a7 100644
--- a/ltrace-elf.c
+++ b/ltrace-elf.c
@@ -736,6 +736,7 @@
 	}
 
 	proc->e_machine = lte.ehdr.e_machine;
+	proc->e_class = lte.ehdr.e_ident[EI_CLASS];
 
 	int status = 0;
 	if (lib == NULL)
diff --git a/proc.c b/proc.c
index b280df8..bf26180 100644
--- a/proc.c
+++ b/proc.c
@@ -270,6 +270,7 @@
 
 	retp->tracesysgood = proc->tracesysgood;
 	retp->e_machine = proc->e_machine;
+	retp->e_class = proc->e_class;
 
 	/* For non-leader processes, that's all we need to do.  */
 	if (retp->leader != retp)
diff --git a/proc.h b/proc.h
index 03ef044..64c37a9 100644
--- a/proc.h
+++ b/proc.h
@@ -121,7 +121,15 @@
 	void * stack_pointer;      /* To get return addr, args... */
 	void * return_addr;
 	void * arch_ptr;
+
+	/* XXX We would like to replace this with a pointer to ABI
+	 * object that would provide the relevant services, instead of
+	 * checking the necessary flags in the back end ad
+	 * nauseam.  */
 	short e_machine;
+	char e_class;
+
+	/* XXX this shoudl go to ARM's arch_process_data.  */
 #ifdef __arm__
 	int thumb_mode;           /* ARM execution mode: 0: ARM, 1: Thumb */
 #endif