Fix build for x86_64

Some ELF-related variables differ depending on the native host, so
this patch uses conditional compilation tricks to ensure everything
works out on both 32- and 64-bit hosts.

Signed-off-by: Zachary T Welch <zwelch@codesourcery.com>
diff --git a/sysdeps/linux-gnu/proc.c b/sysdeps/linux-gnu/proc.c
index 3c17e1f..4e7733d 100644
--- a/sysdeps/linux-gnu/proc.c
+++ b/sysdeps/linux-gnu/proc.c
@@ -112,7 +112,9 @@
 		}
 
 		if (callback) {
-			debug(2, "Dispatching callback for: %s, Loaded at 0x%x\n", lib_name, rlm.l_addr);
+			debug(2, "Dispatching callback for: %s, "
+					"Loaded at 0x%" PRI_ELF_ADDR "\n",
+					lib_name, rlm.l_addr);
 			data->addr = rlm.l_addr;
 			data->lib_name = lib_name;
 			callback(data);
@@ -252,7 +254,7 @@
 
 int
 linkmap_init(Process *proc, struct ltelf *lte) {
-	void *dbg_addr = NULL, *dyn_addr = (void *)(unsigned)lte->dyn_addr;
+	void *dbg_addr = NULL, *dyn_addr = GELF_ADDR_CAST(lte->dyn_addr);
 	struct r_debug *rdbg = NULL;
 	struct cb_data data;