Were the hardened patches dropped in Firefox 3 ? Firefox 2.0.0.18 (before the upgrade) did not have any text relocations. Reproducible: Always Steps to Reproduce: 1. emerge >=www-client/mozilla-firefox-3.0 2. As root (th search everywhere), scanelf -aq -lpR | grep TEXTREL 3. Watch the scanelf output Actual Results: 0755 LE TEXTREL $ORIGIN:$ORIGIN/..:/usr/lib/nspr /usr/lib/mozilla-firefox/components/libbrowserdirprovider.so 0755 LE TEXTREL $ORIGIN:$ORIGIN/..:/usr/lib/nspr /usr/lib/mozilla-firefox/components/libbrowsercomps.so 0755 LE TEXTREL $ORIGIN /usr/lib/mozilla-firefox/firefox 0755 LE TEXTREL $ORIGIN /usr/lib/mozilla-firefox/libjemalloc.so 0755 LE TEXTREL $ORIGIN:/usr/lib/nspr /usr/lib/xulrunner-1.9/libmozjs.so 0755 LE TEXTREL $ORIGIN:/usr/lib/nspr /usr/lib/xulrunner-1.9/xulrunner-bin 0755 LE TEXTREL $ORIGIN /usr/lib/xulrunner-1.9/xpidl 0755 LE TEXTREL $ORIGIN:/usr/lib/nspr /usr/lib/xulrunner-1.9/sdk/lib/libmozjs.so 0755 LE TEXTREL $ORIGIN:/usr/lib/nss:/usr/lib/nspr /usr/lib/xulrunner-1.9/sdk/lib/libxul.so 0755 LE TEXTREL $ORIGIN:/usr/lib/nspr /usr/lib/xulrunner-1.9/sdk/lib/libxpcom.so 0755 LE TEXTREL $ORIGIN:$ORIGIN/..:/usr/lib/nspr /usr/lib/xulrunner-1.9/components/libxpctools.so 0755 LE TEXTREL $ORIGIN:$ORIGIN/..:/usr/lib/nspr /usr/lib/xulrunner-1.9/components/libimgicon.so 0755 LE TEXTREL $ORIGIN /usr/lib/xulrunner-1.9/xulrunner-stub 0755 LE TEXTREL $ORIGIN /usr/lib/xulrunner-1.9/libjemalloc.so 0755 LE TEXTREL $ORIGIN:/usr/lib/nss:/usr/lib/nspr /usr/lib/xulrunner-1.9/libxul.so 0755 LE TEXTREL $ORIGIN:/usr/lib/nspr /usr/lib/xulrunner-1.9/plugins/libnullplugin.so 0755 LE TEXTREL $ORIGIN:/usr/lib/nspr /usr/lib/xulrunner-1.9/plugins/libunixprintplugin.so 0755 LE TEXTREL $ORIGIN:/usr/lib/nspr /usr/lib/xulrunner-1.9/libxpcom.so 0755 LE TEXTREL $ORIGIN /usr/lib/xulrunner-1.9/xpt_dump 0755 LE TEXTREL $ORIGIN /usr/lib/xulrunner-1.9/xpt_link Expected Results: No TEXTREL in scanelf output at least. Ideally, no output from scanelf (those annoying RPATHs)
Created attachment 177355 [details] emerge --info
Same problem here on hardened x86 (gcc 3.4.6). This seems to be related to the gcc visibility=hidden pragmas (that get included in every file through '-include $(top_srcdir)/config/gcc_hidden.h'. This pragma results in some non-PIC code even when built -fPIC. Patching configure.in to remove the whole -fvisibility=hidden check (i.e. making sure that HAVE_VISIBILITY_HIDDEN_ATTRIBUTE is not defined, and that no VISIBILITY_FLAGS are passed) before eautoreconf gives me a quick-and-dirty workaround, which builds firefox-3.0.5 without TEXTRELS. Some quick googling gave me this, which might be related : http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=331460
Fixed properly by adding "-fno-stack-protector -fno-stack-protector-all" to CXXFLAGS, see bug #253639.
Fixed in cvs, wait an hour and emerge --sync. Thanks for reporting and testing.