Summary: | app-cdr/cdrtools-3.02_alpha06 and alpha07 do not build on ARMv7a | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | John Bowler <jbowler> |
Component: | Current packages | Assignee: | Daniel Pielmeier <billie> |
Status: | UNCONFIRMED --- | ||
Severity: | major | CC: | arm, sam |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | ARM | ||
OS: | Linux | ||
See Also: | https://bugs.gentoo.org/show_bug.cgi?id=822201 | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
/home/gentoo/build/portage/app-cdr/cdrtools-3.02_alpha06/temp/build.log
/home/gentoo/build/portage/app-cdr/cdrtools-3.02_alpha06/temp/environment RULES/rules.cnf |
Description
John Bowler
2017-04-27 17:05:12 UTC
*** Bug 616766 has been marked as a duplicate of this bug. *** *** Bug 616768 has been marked as a duplicate of this bug. *** *** Bug 616770 has been marked as a duplicate of this bug. *** Created attachment 471096 [details]
/home/gentoo/build/portage/app-cdr/cdrtools-3.02_alpha06/temp/build.log
Created attachment 471098 [details]
/home/gentoo/build/portage/app-cdr/cdrtools-3.02_alpha06/temp/environment
Created attachment 471100 [details]
RULES/rules.cnf
The bug is caused by bad quoting, this is the definition of CONFFLAGS in rules.cnf (a machine generated file):
CONFFLAGS += -cc=gcc -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard
The stuff after the '=' is the value of ${CC} from /etc/portage/make.conf; it should all be in ""
I'll test the workround of putting the options that select the C compiler into CFLAGS; this breaks on other projects.
Using: CC="gcc" CXX="g++" via package.env allows me to build and install cdrtools I am not familiar with the arm architecture but do you really need to define CC and CXX in make.conf? Isn't it sufficient to define only CHOST CFLAGS and CXXFLAGS? CHOST="armv7a-hardfloat-linux-gnueabi" CFLAGS="-march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard -Os -g -fexceptions" CXXFLAGS="-march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard -Os -g" With most packages architecture specific flags can be included in CFLAGS or CXXFLAGS, but some packages removed or objected to them or fail to build. In the end my fix was to put them in both. Note that the order is: $(CC) $(AM_CFLAGS) $(CFLAGS) So packages that insist on putting -mfpu=neon in AM_CFLAGS then assuming it is there (two big mistakes in my opinion) fail to build if the architecture flags (specifically the FPU target) are in CFLAGS. Anyway, it's moot; it looks like a straightforward quoting bug in the cdrtools build mechanism. |