Robert Connolly schreef:
> You can use the pax-utils-0.1.15 package, and 'scanelf -qT' on libbfd.so. 
> Also 
> see http://www.gentoo.org/proj/en/hardened/pic-fix-guide.xml
> I think you'll find the textrel is from ssp_local.c, which is compiled in 
> libssp_nonshared.a and then linked to libbfd.so.
>
> I can't remember for sure, but I think it may also be caused by the non-pic 
> libiberty.a being linked to libssp_nonshared.a. The GCC build system builds 
> two libiberty's, and uses the static one for static libraries and for exe 
> programs. The build system uses the local copy of libiberty's, not the one 
> in /tools/lib or /usr/lib, but uses the installed copy of libssp_nonshared.a.
>
> When I had this problem I got distracted by installing a shared libiberty.so 
> and adding libssp to uClibc, so I don't think I ever found a fix for it.
>
> I think the fix is in adding -fpic to libssp/Makefile.in and installing the 
> new pic version of libssp_nonshared.a. libssp/ depends on libiberty/, and 
> maybe libcpp/... so for a workaround I suggest you try 
> adding -fno-stack-protector to the butterfly CFLAGS so it can build without 
> textrels, then build 'make configure-target-libssp' and 'make 
> all-target-libssp', and install libssp_nonshared.a to /tools/lib by hand. 
> Then retry building butterfly normally, with -fpic in libssp/Makefile.in. I'm 
> not sure this will be successful.
>
> The gcc fpie patch uses -fpic only if -shared, -nostdlib, or -nostartfiles 
> are 
> used, so it might be passing -fpie to libssp_nonshared.a, which is 
> causing -fpie to find its way into libbfd.so.
>
> Sorry I can't help with this better, I'm still on the Bash/headers problem.
>
> robert
>   
I tried out two patches from a similar gentoo uclibc project:

http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/binutils/2.17/

I used the following patches:
66_all_binutils-2.17.50.0.2-warn-textrel.patch
91_all_libiberty-pic.patch

These patches need some tweaking to work. Now the buildprocess stops in 
a later stadium with a similar error:

/./ld -O2 -O2 -g -O2   -DIN_GCC    -W -Wall -Wwrite-strings 
-Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition  
-isystem ./include  -I. -I. -I../../butterfly-toolchain/gcc 
-I../../butterfly-toolchain/gcc/. 
-I../../butterfly-toolchain/gcc/../include -I./../intl 
-I../../butterfly-toolchain/gcc/../libcpp/include   -g0 
-finhibit-size-directive -fno-inline-functions -fno-exceptions 
-fno-stack-protector -fno-zero-initialized-in-bss -fno-unit-at-a-time  
-fno-PIE -fPIC -fno-omit-frame-pointer \
          -c ../../butterfly-toolchain/gcc/crtstuff.c -DCRT_BEGIN \
          -o crtbegin.o
Can't modify /sources/butterfly-build/bfd/.libs/libbfd-2.17.so's text 
section. Use GCC option -fPIC for shared objects, please.
make[2]: *** [crtbegin.o] Error 1

Is this of any help?

Rob
-- 
http://linuxfromscratch.org/mailman/listinfo/hlfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to