Package: cln
Severity: important
Tags: patch
Hi,
I checked the compile failure and it seems to be an assembler problem,
but the constructor/desctructor hack is not completely blameless.
It seems the assembler doesn't know how to generate the GOT entry for
the duplicated jump destination.
Luckily the problem is easily avoidable by using a pc relative jump as
done in the attached patch.
bye, Roman
-- System Information:
Debian Release: testing/unstable
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: m68k
Shell: /bin/sh linked to /bin/dash
Kernel: Linux 2.4.30
Locale: LANG=de_DE.UTF-8, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
diff -ur cln-1.1.13.old/include/cln/modules.h cln-1.1.13/include/cln/modules.h
--- cln-1.1.13.old/include/cln/modules.h 2006-05-07 22:51:58.000000000
+0200
+++ cln-1.1.13/include/cln/modules.h 2006-09-16 14:56:05.000000000 +0200
@@ -136,7 +136,7 @@
#define CL_JUMP_TO(addr) ASM_VOLATILE("jmp " ASM_UNDERSCORE_PREFIX #addr)
#endif
#if defined(__m68k__)
- #define CL_JUMP_TO(addr) ASM_VOLATILE("jmp %0@" : : "a" ((void*)(addr)))
+ #define CL_JUMP_TO(addr) ASM_VOLATILE("jmp (" ASM_UNDERSCORE_PREFIX #addr
",%pc)")
#endif
#if defined(__mips__) || defined(__mipsel__)
//#define CL_JUMP_TO(addr) ASM_VOLATILE("%*j %0" : : "d" ((void*)(addr)))