10.12.2010 23:52, Zachary T Welch wrote:
Some ELF-related variables differ depending on the native host, so
this patch uses conditional compilation tricks to ensure everything
works out on each host.

So how about sticking this to some .h:

#if __ELF_NATIVE_CLASS == 32
# define PRI_ELF_size PRIx32
#else
# define PRI_ELF_size PRIx64
#endif

... and then using that?

@@ -252,7 +258,13 @@ hook_libdl_cb(void *data) {

  int
  linkmap_init(Process *proc, struct ltelf *lte) {
-       void *dbg_addr = NULL, *dyn_addr = (void *)(unsigned)lte->dyn_addr;
+       void *dbg_addr = NULL;
+       void *dyn_addr =
+#if __ELF_NATIVE_CLASS == 32
+               (void *)(uint32_t)lte->dyn_addr;
+#else
+               (void *)(uint64_t)lte->dyn_addr;
+#endif

It's interesting that this one should be necessary. Isn't unsigned on 32-bit architecture exactly uint32_t and on 64-bit architecture uint64_t? Or are there conditions where ELF_NATIVE_CLASS is different that the architecture of the build?

PM

_______________________________________________
Ltrace-devel mailing list
[email protected]
http://lists.alioth.debian.org/mailman/listinfo/ltrace-devel

Reply via email to