[OE-core] What's up with "fontconfig"

Richard Purdie richard.purdie at linuxfoundation.org
Fri Feb 1 15:21:31 UTC 2013


On Fri, 2013-02-01 at 15:56 +0100, Mike Looijmans wrote:
> When compiling fontconfig, it fails because it is using "build" flags in 
> the host compiler. I have BUILD_OPTIMIZATIONS="-march=native ..." set, 
> and fontconfig will fail to compile because it passes the -march=native 
> flag to the ARM compiler which then fails. Which is justified.
> 
> This is the part in the recipe that worries me:
> 
> do_configure_append () {
> 	sed -i 's|LDFLAGS =.*|LDFLAGS =|' fc-case/Makefile
> 	sed -i 's|LDFLAGS =.*|LDFLAGS =|' fc-glyphname/Makefile
> 	sed -i 's|LDFLAGS =.*|LDFLAGS =|' fc-lang/Makefile
> 
> 	sed -i 's|CFLAGS =.*|CFLAGS =${BUILD_CFLAGS}|' fc-case/Makefile
> 	sed -i 's|CFLAGS =.*|CFLAGS =${BUILD_CFLAGS}|' fc-glyphname/Makefile
> 	sed -i 's|CFLAGS =.*|CFLAGS =${BUILD_CFLAGS}|' fc-lang/Makefile
> 
> 	sed -i 's|CPPFLAGS =.*|CPPFLAGS =${BUILD_CPPFLAGS}|' fc-case/Makefile
> 	sed -i 's|CPPFLAGS =.*|CPPFLAGS =${BUILD_CPPFLAGS}|' fc-glyphname/Makefile
> 	sed -i 's|CPPFLAGS =.*|CPPFLAGS =${BUILD_CPPFLAGS}|' fc-lang/Makefile
> 
> 	sed -i 's|CXXFLAGS =.*|CFLAGS =${BUILD_CXXFLAGS}|' fc-case/Makefile
> 	sed -i 's|CXXFLAGS =.*|CFLAGS =${BUILD_CXXFLAGS}|' fc-glyphname/Makefile
> 	sed -i 's|CXXFLAGS =.*|CFLAGS =${BUILD_CXXFLAGS}|' fc-lang/Makefile
> 
> }
> 
> This is not a "native" package. The above commands put the build systems 
> include patch and compiler flags into the makefile.
> 
> I've worked around the issue by creating a a bbappend that simply 
> removes "-march=native" from the build flags, which makes the build of 
> this package succeed.
> 
> I have no idea what fontconfig is supposed to do and where it is 
> supposed to run, but it looks to me as if that configure_append should 
> not be there at all.

This does look rather worrying and Ross mentioned this to me but wasn't
able to find the history. I was more successful and ironically this was
introduced by Ross:

http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=c2d22f0f36980eecc7cf2ad818a5033476614bfc

We likely need to replace this with something sane. The question is
whether we need it at all and if so, what problem dies it solve?

Cheers,

Richard





More information about the Openembedded-core mailing list