On Fri, Apr 23, 2021 at 11:35 AM Brian Cain <bcain@xxxxxxxxxxxxxx> wrote: > > > -----Original Message----- > > From: Arnd Bergmann <arnd@xxxxxxxxxx> > > Sent: Friday, April 23, 2021 4:37 AM > > To: Nick Desaulniers <ndesaulniers@xxxxxxxxxx> > > Cc: open list:QUALCOMM HEXAGON... <linux-hexagon@xxxxxxxxxxxxxxx>; > > clang-built-linux <clang-built-linux@xxxxxxxxxxxxxxxx>; Brian Cain > > <bcain@xxxxxxxxxxxxxx>; linux-arch <linux-arch@xxxxxxxxxxxxxxx>; Guenter > > Roeck <linux@xxxxxxxxxxxx> > > Subject: Re: ARCH=hexagon unsupported? > > > > On Fri, Apr 23, 2021 at 12:12 AM 'Nick Desaulniers' via Clang Built Linux > > <clang-built-linux@xxxxxxxxxxxxxxxx> wrote: > > > > > > Arnd, > > > No one can build ARCH=hexagon and > > > https://github.com/ClangBuiltLinux/linux/issues/759 has been open for > > > 2 years. > > > > > > Trying to build > > > $ ARCH=hexagon CROSS_COMPILE=hexagon-linux-gnu make LLVM=1 > > LLVM_IAS=1 > > > -j71 > > > > > > shows numerous issues, the latest of which commit 8320514c91bea > > > ("hexagon: switch to ->regset_get()") has a very obvious typo which > > > misspells the `struct` keyword and has been in the tree for almost 1 > > > year. > > > > Thank you for looking into it. > > > > > Why is arch/hexagon/ in the tree if no one can build it? > > > > Removing it sounds reasonable to me, it's been broken for too long, and we > > did the same thing for unicore32 that was in the same situation where the > > gcc port was too old to build the kernel and the clang port never quite work > > in mainline. > > > > Guenter also brought up the issue a year ago, and nothing happened. > > I see Brian still occasionally sends an Ack to a patch that gets merged through > > another tree, but he has not send any patches or pull requests himself after > > taking over maintainership from Richard Kuo in 2019, and the four hexagon > > pull requests after 2014 only contained build fixes from developers that don't > > have access to the hardware (Randy Dunlap, Viresh Kumar, Mike Frysinger > > and me). > > Nick, Arnd, > > I can appreciate your frustration, I can see that I have let the community down here. I would like to keep hexagon in-tree and I am committed to making the changes necessary to do so. I'm very happy to hear that. > I have a patch under internal review to address the cited build issues and libgcc/compiler-rt content. We'd be first in line to help build test such a patch. Please consider cc'ing myself and clang-built-linux@xxxxxxxxxxxxxxxx when such a patch is available externally. Further, we have the CI ready and waiting to add new architectures, even if it's just build testing. That would have caught regressions like 8320514c91bea; we were down to 1 build failure with https://github.com/ClangBuiltLinux/linux/issues/759 last I looked which was preventing us from adding Hexagon to any CI, but we must now dig ourselves out of a slightly deeper hole now. Is this patch something you suspect will take quite some time to work through internal review? > In addition, my team has been focusing on developing QEMU system mode support that would mitigate some of the need for having hardware access. We have landed support for userspace hexagon-linux in upstream QEMU. That's also great to hear. QEMU is a critical part of our CI for boot testing; if there's more info on timelines or what's involved with booting a hexagon kernel in QEMU, we'd be very happy to know how or when that's available. > My team and I want to make hexagon's open source footprint larger, not smaller. I realize that not being a good steward of the hexagon kernel has not helped, and we will do what we can to fix it. A worthwhile and appreciated sentiment. I believe you. Hexagon could be an interesting case for LLVM support in general for the Linux kernel; a case where each target or driver need not necessarily have a GCC backend to be acceptable. But barring anyone from being able to actually build it (let alone run it), it's not that; it's less than that. It's dead code that bit rots further and burdens maintainers who are maintaining something that's already broken. I'm not sure who derives any benefit. I think it's in everyone's best interest to see Linux support more targets than fewer, and 2020 has been a hard year, but I'm curious how long something has to be broken before folks say "enough." Please let's support this properly or recognize the situation for what it is. -- Thanks, ~Nick Desaulniers