From mboxrd@z Thu Jan 1 00:00:00 1970 From: jbernard@debian.org (Jon Bernard) Date: Sat, 16 Apr 2011 19:24:33 -0400 Subject: [ltt-dev] [UST] Text relocations in 0.12 Message-ID: <20110416232432.GA22197@starquasia> As I prepared the 0.12 release for Debian, I noticed that libust.so was not PIC: $ readelf -d libust/.libs/libust.so.0.0.0 | grep TEXTREL 0x0000000000000016 (TEXTREL) 0x0 Since all of the objects in libust are built with -fPIC, I thought perhaps there was some assembly added between 0.11 and 0.12 that contained text relocations. I bisected the two tags down to the offending commit: eb5d20c68aaf73661ffc02ba8fea3683c0358702 Within that commit, it seems to be a problem in include/ust/marker.h with these lines: @@ -129,7 +124,12 @@ struct marker { [...] + /*".section __markers_ptrs\n\t"*/ \ + ".section __markers_ptrs,\"a\", at progbits\n\t" \ If I make the __markers_ptrs section writable, with: ".section __markers_ptrs,\"aw\"\n\t TEXTREL goes away and everything seems okay, tests pass. Is this a correct solution? I don't understand why the section must be writable to avoid relocations, can anyone explain? Cheers Jon