Bug#959116: llvm-toolchain-9: Enabling -fPIE by default like gcc?
Samuel Thibault
sthibault at debian.org
Wed Apr 29 15:54:53 BST 2020
Source: llvm-toolchain-9
Version: 1:9.0.1-8
Severity: wishlist
Hello,
A few package rebuilds with clang fail because since clang doesn't
support Fortran yet, we have a mixture of .o files from clang and
.o files from gfortran, and since gcc enables -fPIE by default, the
eventual link with gfortran fails. This shows up for instance at the
very beginning of the build of the opari2 package with clang:
https://clang.debian.net/logs/2020-02-24-9.0.1/opari2_2.0.4-3_unstable_clang9.0.1.log
gcc -DHAVE_CONFIG_H -I. -I./../src -I./../src -DFRONTEND_BUILD -DCROSS_BUILD -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -c -o foos.o `test -f '../src/opari-lib-dummy/foos.c' || echo './'`../src/opari-lib-dummy/foos.c
gfortran -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -c -o getfname.o `test -f '../src/opari-lib-dummy/getfname.f' || echo './'`../src/opari-lib-dummy/getfname.f
/bin/bash ./libtool --tag=F77 --mode=link gfortran -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wl,-z,relro -o getfname foos.o getfname.o
libtool: link: gfortran -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wl,-z -Wl,relro -o getfname foos.o getfname.o
/usr/bin/ld: foos.o: relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a PIE object; recompile with -fPIE
where gcc is clang; gfortran is thus trying to link foos.o compiled by
clang and getfname.o compiled by gfortran.
Samuel
-- System Information:
Debian Release: bullseye/sid
APT prefers testing
APT policy: (990, 'testing'), (500, 'unstable-debug'), (500, 'testing-debug'), (500, 'stable-debug'), (500, 'proposed-updates-debug'), (500, 'proposed-updates'), (500, 'oldstable-proposed-updates-debug'), (500, 'oldstable-proposed-updates'), (500, 'oldoldstable'), (500, 'buildd-unstable'), (500, 'unstable'), (500, 'stable'), (500, 'oldstable'), (1, 'experimental-debug'), (1, 'buildd-experimental'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 5.6.0 (SMP w/8 CPU cores)
Kernel taint flags: TAINT_OOT_MODULE
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8), LANGUAGE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
More information about the Pkg-llvm-team
mailing list