| Summary: | sys-firmware/ipxe fails to compile on hardened w/gcc-4.9 due to -no-pie vs -nopie | ||
|---|---|---|---|
| Product: | Gentoo Linux | Reporter: | Agostino Sarubbo <ago> |
| Component: | Current packages | Assignee: | Gentoo QEMU Project <qemu+disabled> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | alexander, egor-gl, hardened, kingjon3377, kroemmelbein, norman.shulman, razamatan, wbrana |
| Priority: | Normal | ||
| Version: | unspecified | ||
| Hardware: | All | ||
| OS: | Linux | ||
| See Also: | https://bugs.gentoo.org/show_bug.cgi?id=585752 | ||
| Whiteboard: | |||
| Package list: | Runtime testing required: | --- | |
| Attachments: |
build log
[thunderx] Fix compilation with older versions of gcc.patch |
||
|
Description
Agostino Sarubbo
2016-06-21 10:28:56 UTC
Broken by https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7d31cc8d1b42484b6635f8b4fe0cd8161183c337 With gcc-4.9.3: $ LANG=C gcc -fno-PIE -no-pie -x c -c /dev/null -o /dev/null 2>&1 gcc: error: unrecognized command line option '-no-pie' same here,
got today :
[BUILD] bin/clientcert.o
env CCACHE_DISABLE=1 x86_64-pc-linux-gnu-gcc -DARCH=i386 -DPLATFORM=pcbios -march=i386 -fomit-frame-pointer -fstrength-reduce -falign-jumps=1 -falign-loops=1 -falign-functions=1 -mpreferred-stack-boundary=2 -mregparm=3 -mrtd -freg-struct-return -m32 -fshort-wchar -Ui386 -Ulinux -DNVALGRIND -Iinclude -I. -Iarch/x86/include -Iarch/i386/include -Iarch/i386/include/pcbios -Os -g -ffreestanding -Wall -W -Wformat-nonliteral -fno-stack-protector -fno-dwarf2-cfi-asm -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables -Wno-address -ffunction-sections -fdata-sections -include include/compiler.h -DOBJECT=clientcert -c crypto/clientcert.c -o bin/clientcert.o
/var/tmp/portage/sys-firmware/ipxe-1.0.0_p20130925/temp/ccev8Fho.s: Assembler messages:
/var/tmp/portage/sys-firmware/ipxe-1.0.0_p20130925/temp/ccev8Fho.s:48: Error: missing or invalid displacement expression `client_certificate_len@GOTOFF'
/var/tmp/portage/sys-firmware/ipxe-1.0.0_p20130925/temp/ccev8Fho.s:73: Error: missing or invalid displacement expression `client_private_key_len@GOTOFF'
Makefile.housekeeping:801: recipe for target 'bin/clientcert.o' failed
make: *** [bin/clientcert.o] Error 1
make: *** Waiting for unfinished jobs....
but it worked in former times :
Mon Dec 8 00:10:56 2014 >>> sys-firmware/ipxe-1.0.0_p20130925
Sat Dec 13 14:31:36 2014 <<< sys-firmware/ipxe-1.0.0_p20130925
Sat Dec 13 14:31:38 2014 >>> sys-firmware/ipxe-1.0.0_p20130925
Mon Aug 31 22:04:52 2015 <<< sys-firmware/ipxe-1.0.0_p20130925
Mon Aug 31 22:04:55 2015 >>> sys-firmware/ipxe-1.0.0_p20130925
ipxe: Mon Dec 8 00:09:42 2014: 1 minute, 14 seconds
ipxe: Sat Dec 13 14:30:29 2014: 1 minute, 9 seconds
ipxe: Mon Aug 31 22:03:54 2015: 1 minute, 1 second
Package Settings
=================================================================
sys-firmware/ipxe-1.0.0_p20130925::gentoo was built with the following:
USE="qemu usb -iso -lkrn -undi -vmware" ABI_X86="64"
FWIW I rebuilt today gcc (vtv is goneand multilib was added - IIRC)
using --no-pie instead of -no-pie works for gcc 4.9.3 mike, can you do something here? I'm getting different error x86_64-pc-linux-gnu-gcc -DARCH=i386 -DPLATFORM=pcbios -march=i386 -fomit-frame-pointer -fstrength-reduce -falign-jumps=1 -falign-loops=1 -falign-functions=1 -mpreferred-stack-boundary=2 -mregparm=3 -mrtd -freg-struct-return -m32 -fshort-wchar -Ui386 -Ulinux -DNVALGRIND -Iinclude -I. -Iarch/x86/include -Iarch/i386/include -Iarch/i386/include/pcbios -Os -g -ffreestanding -Wall -W -Wformat-nonliteral -fno-stack-protector -fno-dwarf2-cfi-asm -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables -Wno-address -ffunction-sections -fdata-sections -include include/compiler.h -DASM_TCHAR='@' -DASM_TCHAR_OPS='@' -DOBJECT=x86_string -c arch/x86/core/x86_string.c -o bin/x86_string.o In file included from arch/x86/core/cpuid_settings.c:31:0: arch/x86/core/cpuid_settings.c: In function 'cpuid_settings_fetch': arch/x86/include/ipxe/cpuid.h:73:2: error: inconsistent operand constraints in an 'asm' __asm__ ( "cpuid" ^ arch/x86/include/ipxe/cpuid.h:73:2: error: inconsistent operand constraints in an 'asm' __asm__ ( "cpuid" ^ make: *** [Makefile.housekeeping:856: bin/cpuid_settings.o] Error 1 This commit happened 24 hours ago: https://git.ipxe.org/ipxe.git/commit/04186319181298083ef28695a8309028b26fe83c It just says compile fix for older versions of gcc. Is GCC 4.9.x considered and older version? Can someone try that patch as I have gcc 5.3. If it works, then ipxe just needs to be bumped to 20160622. :) Created attachment 438522 [details, diff]
[thunderx] Fix compilation with older versions of gcc.patch
Add patch that's on upstream master to here for easy access.
|