Re: [BUG v5.2-rc1] ARM build broken

From: H. Nikolaus Schaller
Date: Wed May 22 2019 - 02:05:16 EST


Hi Kees,

> Am 21.05.2019 um 22:36 schrieb Kees Cook <keescook@xxxxxxxxxxxx>:
>
> On Tue, May 21, 2019 at 01:23:36PM +0200, H. Nikolaus Schaller wrote:
>>>>> HOSTLLD -shared scripts/gcc-plugins/arm_ssp_per_task_plugin.so - due to target missing
>>>>> Undefined symbols for architecture x86_64:
>>>>> "gen_reg_rtx(machine_mode)", referenced from:
>>>>> (anonymous namespace)::arm_pertask_ssp_rtl_pass::execute() in arm_ssp_per_task_plugin.o
>
> Are you seeing this error still, even after the fix I sent?

Yes.

> Perhaps I
> misunderstood that it solves all of the build issues?

There was a compiler warning and a linker error. The patch only fixes the compiler warning.

>
>> That seems to be a significant assumption about the build infrastructure
>> which now became permanently enabled by the "default y" for GCC_PLUGINS.
>>
>> I am not sure what the right way forward is. Probably for me it is to find
>> out if I can fix my cross-toolchain. Or if the kernel should better check
>> if gcc-plugins can really be built, if they are automatically enabled.
>> Or keep all gcc-plugins disabled until explicitly configured for?
>
> Right, that seems to be the case: it seems that the gcc plugin build
> sanity detection script is not working in your environment. You can
> check it directly.
>
> Here's the bits from the Kconfig (though I added --show-error for you,
> in case that's useful):
>
> preferred-plugin-hostcc := $(if-success,[ $(gcc-version) -ge 40800 ],$(HOSTCXX),$(HOSTCC))
>
> scripts/gcc-plugin.sh --show-error "$(preferred-plugin-hostcc)" "$(HOSTCXX)" "$(CC)"
>
> I'm not sure what your kernel build picks for gcc-version, HOSTCXX
> HOSTCC and CC...

It turns out that HOSTCC and HOSTCXX are a gcc-4.9.4 installed through MacPorts.
And CC is the self-bootstrapped cross-gcc-4.9.2 toolchain for arm.

The problem is likely that they do not know of each other, i.e. the required
include and library search paths. Therefore HOSTCXX can't build plugins compatible
with CC because it does not even know its existence. Or the gcc-4.9.4 from MacPorts
is missing the gcc-plugin library to link against which would explain the HOSTLLD
error message as well.

This seems not to be found by the tests of scripts/gcc-plugin.sh. I have to check why...

BR and thanks,
Nikolaus