On 2016-10-04 08:27, Andreas Beckmann wrote:
>> +# see FEATURE AREAS in dpkg-buildflags(1)
>> +export DEB_BUILD_MAINT_OPTIONS = hardening=+all,-pie
>>
>> This explicitly disables PIE, which is enabled by default on amd64 and
>> s390x in yakkety. Why should we want to disable PIE? There's no
>> explanation in the debian changelog.
>
> PIE wasn't enabled in Debian before that change and IIRC I had some
> build problems on i386 or amd64 or ??? and therefore explicitly didn't
> turn on PIE. I'll have a look at this again within the next weeks.
if I drop ,-pie I get an FTBFS:
[...]
cc -fPIC -DPIC -g -O2 -fdebug-prefix-map=/build/libpfm4-4.7.0+git30-gd422ba2=. -fPIE -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -Wall -Werror -Wextra -Wno-unused-parameter -I. -I/build/libpfm4-4.7.0+git30-gd422ba2/include -DCONFIG_PFMLIB_DEBUG -DCONFIG_PFMLIB_OS_LINUX -g -Wall -Werror -Wextra -Wno-unused-parameter -I. -I/build/libpfm4-4.7.0+git30-gd422ba2/lib/../include -DCONFIG_PFMLIB_DEBUG -DCONFIG_PFMLIB_OS_LINUX -D_REENTRANT -I. -fvisibility=hidden -DCONFIG_PFMLIB_ARCH_X86 -DCONFIG_PFMLIB_ARCH_X86_64 -I. -c pfmlib_amd64_fam15h.c -o pfmlib_amd64_fam15h.lo
cc -g -O2 -fdebug-prefix-map=/build/libpfm4-4.7.0+git30-gd422ba2=. -fPIE -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -Wall -Werror -Wextra -Wno-unused-parameter -I. -I/build/libpfm4-4.7.0+git30-gd422ba2/include -DCONFIG_PFMLIB_DEBUG -DCONFIG_PFMLIB_OS_LINUX -g -Wall -Werror -Wextra -Wno-unused-parameter -I. -I/build/libpfm4-4.7.0+git30-gd422ba2/lib/../include -DCONFIG_PFMLIB_DEBUG -DCONFIG_PFMLIB_OS_LINUX -D_REENTRANT -I. -fvisibility=hidden -DCONFIG_PFMLIB_ARCH_X86 -DCONFIG_PFMLIB_ARCH_X86_64 -I. -fPIE -pie -Wl,-z,relro -Wl,-z,now -shared -Wl,-soname -Wl,libpfm.so.4 -o libpfm.so.4.7.0 pfmlib_common.lo pfmlib_perf_event_pmu.lo pfmlib_perf_event.lo pfmlib_perf_event_raw.lo pfmlib_intel_x86_perf_event.lo pfmlib_amd64_perf_event.lo pfmlib_intel_netburst_perf_event.lo pfmlib_intel_snbep_unc_perf_event.lo pfmlib_amd64.lo pfmlib_intel_core.lo pfmlib_intel_x86.lo pfmlib_intel_x86_arch.lo pfmlib_intel_atom.lo pfmlib_intel_nhm_unc.lo pfmlib_intel_nhm.lo pfmlib_intel_wsm.lo pfmlib_intel_snb.lo pfmlib_intel_snb_unc.lo pfmlib_intel_ivb.lo pfmlib_intel_ivb_unc.lo pfmlib_intel_hsw.lo pfmlib_intel_bdw.lo pfmlib_intel_skl.lo pfmlib_intel_rapl.lo pfmlib_intel_snbep_unc.lo pfmlib_intel_snbep_unc_cbo.lo pfmlib_intel_snbep_unc_ha.lo pfmlib_intel_snbep_unc_imc.lo pfmlib_intel_snbep_unc_pcu.lo pfmlib_intel_snbep_unc_qpi.lo pfmlib_intel_snbep_unc_ubo.lo pfmlib_intel_snbep_unc_r2pcie.lo pfmlib_intel_snbep_unc_r3qpi.lo pfmlib_intel_ivbep_unc_cbo.lo pfmlib_intel_ivbep_unc_ha.lo pfmlib_intel_ivbep_unc_imc.lo pfmlib_intel_ivbep_unc_pcu.lo pfmlib_intel_ivbep_unc_qpi.lo pfmlib_intel_ivbep_unc_ubo.lo pfmlib_intel_ivbep_unc_r2pcie.lo pfmlib_intel_ivbep_unc_r3qpi.lo pfmlib_intel_ivbep_unc_irp.lo pfmlib_intel_hswep_unc_cbo.lo pfmlib_intel_hswep_unc_ha.lo pfmlib_intel_hswep_unc_imc.lo pfmlib_intel_hswep_unc_pcu.lo pfmlib_intel_hswep_unc_qpi.lo pfmlib_intel_hswep_unc_ubo.lo pfmlib_intel_hswep_unc_r2pcie.lo pfmlib_intel_hswep_unc_r3qpi.lo pfmlib_intel_hswep_unc_irp.lo pfmlib_intel_hswep_unc_sbo.lo pfmlib_intel_knc.lo pfmlib_intel_slm.lo pfmlib_intel_knl.lo pfmlib_intel_glm.lo pfmlib_intel_netburst.lo pfmlib_amd64_k7.lo pfmlib_amd64_k8.lo pfmlib_amd64_fam10h.lo pfmlib_amd64_fam11h.lo pfmlib_amd64_fam12h.lo pfmlib_amd64_fam14h.lo pfmlib_amd64_fam15h.lo
/usr/bin/ld: pfmlib_common.lo: relocation R_X86_64_PC32 against symbol `stderr@@GLIBC_2.2.5' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
Makefile:328: recipe for target 'libpfm.so.4.7.0' failed
On 2016-10-04 08:27, Andreas Beckmann wrote: MAINT_OPTIONS = hardening=+all,-pie
>> +# see FEATURE AREAS in dpkg-buildflags(1)
>> +export DEB_BUILD_
>>
>> This explicitly disables PIE, which is enabled by default on amd64 and
>> s390x in yakkety. Why should we want to disable PIE? There's no
>> explanation in the debian changelog.
>
> PIE wasn't enabled in Debian before that change and IIRC I had some
> build problems on i386 or amd64 or ??? and therefore explicitly didn't
> turn on PIE. I'll have a look at this again within the next weeks.
if I drop ,-pie I get an FTBFS:
[...] prefix- map=/build/ libpfm4- 4.7.0+git30- gd422ba2= . -fPIE -fstack- protector- strong -Wformat -Werror= format- security -Wdate-time -D_FORTIFY_SOURCE=2 -g -Wall -Werror -Wextra -Wno-unused- parameter -I. -I/build/ libpfm4- 4.7.0+git30- gd422ba2/ include -DCONFIG_ PFMLIB_ DEBUG -DCONFIG_ PFMLIB_ OS_LINUX -g -Wall -Werror -Wextra -Wno-unused- parameter -I. -I/build/ libpfm4- 4.7.0+git30- gd422ba2/ lib/../ include -DCONFIG_ PFMLIB_ DEBUG -DCONFIG_ PFMLIB_ OS_LINUX -D_REENTRANT -I. -fvisibility=hidden -DCONFIG_ PFMLIB_ ARCH_X86 -DCONFIG_ PFMLIB_ ARCH_X86_ 64 -I. -c pfmlib_ amd64_fam15h. c -o pfmlib_ amd64_fam15h. lo prefix- map=/build/ libpfm4- 4.7.0+git30- gd422ba2= . -fPIE -fstack- protector- strong -Wformat -Werror= format- security -Wdate-time -D_FORTIFY_SOURCE=2 -g -Wall -Werror -Wextra -Wno-unused- parameter -I. -I/build/ libpfm4- 4.7.0+git30- gd422ba2/ include -DCONFIG_ PFMLIB_ DEBUG -DCONFIG_ PFMLIB_ OS_LINUX -g -Wall -Werror -Wextra -Wno-unused- parameter -I. -I/build/ libpfm4- 4.7.0+git30- gd422ba2/ lib/../ include -DCONFIG_ PFMLIB_ DEBUG -DCONFIG_ PFMLIB_ OS_LINUX -D_REENTRANT -I. -fvisibility=hidden -DCONFIG_ PFMLIB_ ARCH_X86 -DCONFIG_ PFMLIB_ ARCH_X86_ 64 -I. -fPIE -pie -Wl,-z,relro -Wl,-z,now -shared -Wl,-soname -Wl,libpfm.so.4 -o libpfm.so.4.7.0 pfmlib_common.lo pfmlib_ perf_event_ pmu.lo pfmlib_ perf_event. lo pfmlib_ perf_event_ raw.lo pfmlib_ intel_x86_ perf_event. lo pfmlib_ amd64_perf_ event.lo pfmlib_ intel_netburst_ perf_event. lo pfmlib_ intel_snbep_ unc_perf_ event.lo pfmlib_amd64.lo pfmlib_ intel_core. lo pfmlib_intel_x86.lo pfmlib_ intel_x86_ arch.lo pfmlib_ intel_atom. lo pfmlib_ intel_nhm_ unc.lo pfmlib_intel_nhm.lo pfmlib_intel_wsm.lo pfmlib_intel_snb.lo pfmlib_ intel_snb_ unc.lo pfmlib_intel_ivb.lo pfmlib_ intel_ivb_ unc.lo pfmlib_intel_hsw.lo pfmlib_intel_bdw.lo pfmlib_intel_skl.lo pfmlib_ intel_rapl. lo pfmlib_ intel_snbep_ unc.lo pfmlib_ intel_snbep_ unc_cbo. lo pfmlib_ intel_snbep_ unc_ha. lo pfmlib_ intel_snbep_ unc_imc. lo pfmlib_ intel_snbep_ unc_pcu. lo pfmlib_ intel_snbep_ unc_qpi. lo pfmlib_ intel_snbep_ unc_ubo. lo pfmlib_ intel_snbep_ unc_r2pcie. lo pfmlib_ intel_snbep_ unc_r3qpi. lo pfmlib_ intel_ivbep_ unc_cbo. lo pfmlib_ intel_ivbep_ unc_ha. lo pfmlib_ intel_ivbep_ unc_imc. lo pfmlib_ intel_ivbep_ unc_pcu. lo pfmlib_ intel_ivbep_ unc_qpi. lo pfmlib_ intel_ivbep_ unc_ubo. lo pfmlib_ intel_ivbep_ unc_r2pcie. lo pfmlib_ intel_ivbep_ unc_r3qpi. lo pfmlib_ intel_ivbep_ unc_irp. lo pfmlib_ intel_hswep_ unc_cbo. lo pfmlib_ intel_hswep_ unc_ha. lo pfmlib_ intel_hswep_ unc_imc. lo pfmlib_ intel_hswep_ unc_pcu. lo pfmlib_ intel_hswep_ unc_qpi. lo pfmlib_ intel_hswep_ unc_ubo. lo pfmlib_ intel_hswep_ unc_r2pcie. lo pfmlib_ intel_hswep_ unc_r3qpi. lo pfmlib_ intel_hswep_ unc_irp. lo pfmlib_ intel_hswep_ unc_sbo. lo pfmlib_intel_knc.lo pfmlib_intel_slm.lo pfmlib_intel_knl.lo pfmlib_intel_glm.lo pfmlib_ intel_netburst. lo pfmlib_amd64_k7.lo pfmlib_amd64_k8.lo pfmlib_ amd64_fam10h. lo pfmlib_ amd64_fam11h. lo pfmlib_ amd64_fam12h. lo pfmlib_ amd64_fam14h. lo pfmlib_ amd64_fam15h. lo @GLIBC_ 2.2.5' can not be used when making a shared object; recompile with -fPIC
cc -fPIC -DPIC -g -O2 -fdebug-
cc -g -O2 -fdebug-
/usr/bin/ld: pfmlib_common.lo: relocation R_X86_64_PC32 against symbol `stderr@
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
Makefile:328: recipe for target 'libpfm.so.4.7.0' failed
Suggestions welcome!
Andreas