[meta-xilinx] [PATCH] tune-microblaze: Pin toolchain version to 4.8.4
Nathan Rossi
nathan at nathanrossi.com
Thu Nov 12 05:47:00 PST 2015
On Thu, Nov 5, 2015 at 11:21 AM, Nathan Rossi <nathan at nathanrossi.com> wrote:
> On Thu, Nov 5, 2015 at 10:02 AM, Manjukumar Harthikote Matha
> <manjukumar.harthikote-matha at xilinx.com> wrote:
>> We are working on the GCC fix. Since we cannot have broken microblaze
>> recipe, this is a temporary patch till the fix is available upstream
>
> Ok that's good to hear, for reference this is the standalone test case
> that can be used to reproduce the insn missing issue
> (https://gist.github.com/nathanrossi/93282fa77ee05703f58c). If
> you/Xilinx find the bug or have a patch please let me know, I will do
> the same.
>
> For the moment the temporary fix is to pin the version from
> local.conf. Once the issue has been resolved the patch can be applied
> for gcc 5.2 in meta-xilinx.
Hi Manju,
So I think I have found the cause and the solution for this bug. It
appears to be caused by very specific operands of the adddi3 not
matching the instruction definition for MicroBlaze.
I have written a patch to improve 'adddi3' so that it can handle
double word immediates. I intend to send it upstream, but it would be
great to get a second pair of eyes and some additional testing done on
it. I have staged this change on my nrossi/next branch:
https://github.com/nathanrossi/meta-xilinx/blob/nrossi/next/recipes-microblaze/gcc/files/microblaze.md-Improve-adddi3-and-subdi3-insn-definit.patch
Once I do some complete build tests for the various MicroBlaze
machines I will merge it to the meta-xilinx master branch.
Thanks,
Nathan
>
> Thanks,
> Nathan
>
>>
>> Thanks
>> Manju
>>
>>
>> On 11/04/2015 03:47 PM, Nathan Rossi wrote:
>>>
>>> On Thu, Nov 5, 2015 at 8:07 AM, Manjukumar Matha
>>> <manjukumar.harthikote-matha at xilinx.com> wrote:
>>>>
>>>> This is because the GCCv5.2 toolchain currently breaks microblaze kernel
>>>> builds. This change is temporary until a GCC fix is available.
>>>
>>>
>>> I don't like this as it assumes a broken gcc 5.2 is acceptable, it was
>>> somewhat ok to do for GDB since upstream GDB barely even supports
>>> MicroBlaze (as there are a pile of patches to gdb 7.7.1). The bug you
>>> are referring to currently only affects the kernel and there are work
>>> arounds such as disabling size optimization, etc.
>>>
>>> I have a reproducible standalone test case for this issue and plan to
>>> resolve it for the jethro branch. This needs to be fixed sooner rather
>>> than later so that the fix can make it into the next GCC version or a
>>> point release so that the issue doesn't stick around for long.
>>>
>>> Regards,
>>> Nathan
>>>
>>>>
>>>> Signed-off-by: Manjukumar Matha <manjukumar.harthikote-matha at xilinx.com>
>>>> ---
>>>> conf/machine/include/tune-microblaze.inc | 3 +++
>>>> 1 file changed, 3 insertions(+)
>>>>
>>>> diff --git a/conf/machine/include/tune-microblaze.inc
>>>> b/conf/machine/include/tune-microblaze.inc
>>>> index a5b6109..1de77d7 100644
>>>> --- a/conf/machine/include/tune-microblaze.inc
>>>> +++ b/conf/machine/include/tune-microblaze.inc
>>>> @@ -25,3 +25,6 @@ PREFERRED_VERSION_gdb ?= "7.7.1"
>>>> PREFERRED_VERSION_gdb-cross ?= "7.7.1"
>>>> PREFERRED_VERSION_gdb-cross-canadian ?= "7.7.1"
>>>>
>>>> +# pin toolchain version to 4.8.4, since 5.2 breaks linux builds
>>>> +GCCVERSION = "4.8.4"
>>>> +SDKGCCVERSION = "4.8.4"
>>>> --
>>>> 2.1.4
>>>>
>>>> --
>>>> _______________________________________________
>>>> meta-xilinx mailing list
>>>> meta-xilinx at yoctoproject.org
>>>> https://lists.yoctoproject.org/listinfo/meta-xilinx
More information about the meta-xilinx
mailing list