Source: systemtap Severity: normal Tags: patch Dear Maintainer,
systemtap fails to build from source on ia64. The attached patch should correct the problem spots. -- System Information: Debian Release: buster/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: ia64 Kernel: Linux 3.14-0.bpo.2-mckinley (SMP w/2 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: sysvinit (via /sbin/init)
--- systemtap-3.1/includes/sys/sdt.h 2017-12-10 06:50:27.000000000 -0500 +++ systemtap-3.1.orig/includes/sys/sdt.h 2017-12-10 06:32:44.722028094 -0500 @@ -84,8 +84,12 @@ # define _SDT_ARGFMT(no) %n[_SDT_S##no]@_SDT_ARGTMPL(_SDT_A##no) # ifndef STAP_SDT_ARG_CONSTRAINT +# ifdef __ia64__ +# define STAP_SDT_ARG_CONSTRAINT nr +# else # define STAP_SDT_ARG_CONSTRAINT nor # endif +# endif # define _SDT_STRINGIFY(x) #x # define _SDT_ARG_CONSTRAINT_STRING(x) _SDT_STRINGIFY(x) --- systemtap-3.1/python/HelperSDT/_HelperSDT.c 2017-02-17 12:37:01.000000000 -0500 +++ systemtap-3.1.orig/python/HelperSDT/_HelperSDT.c 2017-12-10 06:31:28.625516044 -0500 @@ -154,7 +154,11 @@ // it with the asm() statement. Otherwise we get a @GOTPCREL // reference which stap can't parse. void *fptr = &PyObject_GenericGetAttr; +#ifdef __ia64__ + asm ("nop 0" : "=r"(fptr) : "r"(fptr)); +#else asm ("nop" : "=r"(fptr) : "r"(fptr)); +#endif STAP_PROBE2(HelperSDT, Init, stap_module, fptr); } return module;