which only for libbfd and not libopcodes?
On 10.09.2016 22:21, Balint Reczey wrote:
> Source: binutils
> Version: 2.27-8
> Severity: important
> User: bal...@balintreczey.hu
> Usertags: pie-bindnow-20160906
> Justification: makes ocaml FTBFS on amd64 with extra hardening
> Tags: patch
> Affects: ocaml
>
> Dear Maintainers,
>
> During a rebuild of all packages in sid, ocaml failed to build on
> amd64 with patched GCC and dpkg. The root cause seems to be that
> libbfd.a is shipped as a non-PIC library.
>
> The rebuild tested if packages are ready for a transition
> enabling PIE and bindnow for amd64.
>
> For more information about the changes to sid's dpkg and GCC please
> visit:
> https://wiki.debian.org/Hardening/PIEByDefaultTransitio
>
> Relevant part of ocaml's build log:
> ...
> gcc -o objinfo_helper -O -fno-defer-pop -Wall -D_FILE_OFFSET_BITS=64
> -D_REENTRANT \
> objinfo_helper.c -Wl,-Bstatic -lbfd -Wl,-Bdynamic -ldl -liberty -lz
> /usr/bin/ld:
> /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libbfd.a(format.o):
> relocation R_X86_64_32S against symbol `binary_vec' can not be used when
> making a shared object; recompile with -fPIC
> /usr/bin/ld:
> /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libbfd.a(hash.o):
> relocation R_X86_64_32 against `.rodata' can not be used when making a shared
> object; recompile with -fPIC
> /usr/bin/ld:
> /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/libbfd.a(libbfd.o):
> relocation R_X86_64_32 against `.rodata' can not be used when making a shared
> object; recompile with -fPIC
> ...
>
> The full build log is available from:
> https://people.debian.org/~rbalint/build-logs/pie-bindnow-20160906/ocaml_4.02.3-7_amd64.build.gz
>
> The attached patch fixed the problem.
>
> Thanks,
> Balint
>