[Buildroot] Analysis of build results for 2016-02-21
Thomas Petazzoni
thomas.petazzoni at free-electrons.com
Tue Feb 23 08:11:46 UTC 2016
Hello,
On Tue, 23 Feb 2016 09:34:31 +0200, Olivier Schonken wrote:
> The suggestion from Romain to disable -fPIE as below works for both
> architectures. Can I submit a patch for this? Or do you want to wait for a
> response from Alexey and Waldemar?
>
> # Remove -fPIE -pie from CFLAGS
> ifeq ($(BR2_STATIC_LIBS),y)
> CUPS_CONF_OPTS += LSB_BUILD=y
> endif
Unfortunately, I don't like this, for several reasons:
1/ LSB_BUILD=y will also disable stack protection support.
2/ Only uClibc in static library build is affected by the problem, not
musl for example.
3/ It is not fixing the real problem.
The real fixes are:
1/ Use AC_CACHE_VAL() in the configure.ac script to be able to force
disable PIE, and then use that to disable it on ARC. Or
alternatively, change the configure.ac to use:
++AX_CHECK_COMPILE_FLAG([-fPIE -DPIE], [PIE_CFLAGS="-fPIE -DPIE"])
++AX_CHECK_LINK_FLAG([-pie], [PIE_LDFLAGS="$PIE_LDFLAGS -pie"])
Which also provide cache variables to override their results. See
http://patchwork.ozlabs.org/patch/569556/.
2/ Fix the uClibc static case by fixing the toolchain build process or
uClibc itself (depending on which one is broken).
Of course, this requires effort than the quick hack of LSB_BUILD=y, but
those are IMO the real fixes, while LSB_BUILD=y is papering over the
real problem.
Note that there are other classes of cups-2.1.2 build failures visible
at http://autobuild.buildroot.org/?reason=cups-2.1.2.
Best regards,
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
More information about the buildroot
mailing list