diff options
Diffstat (limited to 'includes/sys/sdt.h')
-rw-r--r-- | includes/sys/sdt.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/includes/sys/sdt.h b/includes/sys/sdt.h index e448c90e..3b788b88 100644 --- a/includes/sys/sdt.h +++ b/includes/sys/sdt.h @@ -17,9 +17,17 @@ #define STAP_PROBE_ADDR "\t.long " #endif +/* Allocated section needs to be writable when creating pic shared objects + because we store relocatable addresses in them. */ +#ifdef __PIC__ +#define ALLOCSEC "\"aw\"" +#else +#define ALLOCSEC "\"a\"" +#endif + /* An allocated section .probes that holds the probe names and addrs. */ #define STAP_PROBE_DATA_(probe,guard,arg) \ - __asm__ volatile (".section .probes, \"a\"\n" \ + __asm__ volatile (".section .probes," ALLOCSEC "\n" \ "\t.align 8\n" \ "1:\n\t.asciz " #probe "\n" \ "\t.align 4\n" \ |