--- Begin Message ---
Package: gcc-6-arm-linux-gnueabihf
Version: 6.1.1-9cross1
Severity: important
Dear Maintainer,
If I cross-compile any code (even a basic hello-world) and then attempt
to link the resulting objects on the target system (stretch, armhf)
using the native gcc-6 toolchain (which is 6.2.0 in testing and has
already been for a while) I get the following failure:
/usr/bin/ld: hello.o: relocation R_ARM_THM_MOVW_ABS_NC against `a local symbol' can not be used when making a shared object; recompile with -fPIC
hello.o: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
Recompiling with -fPIC as suggested does in fact fix the problem, but
this should not be necessary and never has been. (Compiling without it
but linking with the cross-toolchain also results in a working binary.)
Note that cross-compiling + native linking is for example needed to be
able to use distcc to speed up compilation on small ARM systems by
delegating most of the work to a build server, which is how I ran into
this issue. This setup is currently completely broken due to this bug.
-- System Information:
Debian Release: stretch/sid
APT prefers unstable
APT policy: (500, 'unstable'), (100, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 4.8.0-2.1-liquorix-amd64 (SMP w/4 CPU cores; PREEMPT)
Locale: LANG=en_NL.UTF-8, LC_CTYPE=en_NL.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Init: systemd (via /run/systemd/system)
Versions of packages gcc-6-arm-linux-gnueabihf depends on:
ii binutils-arm-linux-gnueabihf 2.27.51.20161108-1
ii cpp-6-arm-linux-gnueabihf 6.1.1-9cross1
ii gcc-6-arm-linux-gnueabihf-base 6.1.1-9cross1
ii libc6 2.24-5
ii libcc1-0 6.2.0-13
ii libgcc-6-dev-armhf-cross 6.1.1-9cross1
ii libgcc1 1:6.2.0-13
ii libgmp10 2:6.1.1+dfsg-1
ii libisl15 0.17.1-1
ii libmpc3 1.0.3-1
ii libmpfr4 3.1.5-1
ii libstdc++6 6.2.0-13
ii zlib1g 1:1.2.8.dfsg-2+b3
Versions of packages gcc-6-arm-linux-gnueabihf recommends:
ii libc6-dev-armhf-cross 2.24-1cross1
Versions of packages gcc-6-arm-linux-gnueabihf suggests:
ii gcc-6-doc 6.1.0-1
pn gcc-6-locales <none>
pn libasan3-dbg-armhf-cross <none>
pn libatomic1-dbg-armhf-cross <none>
pn libcilkrts5-dbg-armhf-cross <none>
pn libgcc1-dbg-armhf-cross <none>
pn libgomp1-dbg-armhf-cross <none>
pn libitm1-dbg-armhf-cross <none>
pn liblsan0-dbg-armhf-cross <none>
pn libmpx2-dbg-armhf-cross <none>
pn libquadmath0-dbg-armhf-cross <none>
pn libtsan0-dbg-armhf-cross <none>
pn libubsan0-dbg-armhf-cross <none>
-- no debconf information
--- End Message ---