Re: nds32 build failures

From: Vincent Chen
Date: Mon May 21 2018 - 21:21:37 EST


On Fri, May 11, 2018 at 01:17:05PM +0800, Kito Cheng wrote:
> Hi Arnd:
>
> I am GCC guy from Andes, we've missed the release schedule for GCC 8,
> we didn't upstream the Linux support on time.
>
> Our plan is put our GCC 8 on github and continue commit rest patches
> to upstream.
> And we'll put our source on github after our internal testing done.
>
> Thanks.
>
Dear Arnd:

The prebuilt nds32 toochain with gcc 8 is placed here
https://github.com/vincentzwc/prebuilt-nds32-toolchain/releases

The source code of each component for this toolchain is placed here.
a. gcc:
path: https://github.com/andestech/gcc.git
branch: nds32-8.1.0-upstream
b. binutils
path: https://github.com/andestech/binutils.git
branch: nds32-binutils-2.30-branch-open
c. glibc
path: https://github.com/andestech/glibc.git
branch: nds32-glibc-2.27-v0
d. Linux
path: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
branch: master

This toolchain also can be manually generated by the following script
https://github.com/andestech/build_script/blob/master/build_toolchain.sh

We successfully generate a bootable kernel image with nds32 defconfig by this
toolchain. However, we find a new compiler warning, Wstringop-overflow, when
building arch/nds32/kernel/vdso.o. We have sent a patch to fix it.


Best regards
Vincent

> On Fri, May 11, 2018 at 10:40 AM, Arnd Bergmann <arnd@xxxxxxxx> wrote:
> > On Wed, Apr 18, 2018 at 3:19 AM, Greentime Hu <green.hu@xxxxxxxxx> wrote:
> >> 2018-04-17 20:47 GMT+08:00 Arnd Bergmann <arnd@xxxxxxxx>:
> >>> On Mon, Apr 16, 2018 at 11:06 AM, Greentime Hu <green.hu@xxxxxxxxx> wrote:
> >>>> 2018-04-16 11:58 GMT+08:00 Guenter Roeck <private@xxxxxxxxxxxx>:
> >>>>
> >>>> This built failure is because the toolchain version you used is not
> >>>> supported the latest intrinsic function/macro.
> >>>> We are sending the latest patchset now and we expect the whole new
> >>>> features will be supported in gcc8.0.0 and binutil2.31+.
> >>>>
> >>>> If you'd like to get these new features of toolchain, you may use the
> >>>> github version.
> >>>> This is the built-script repo. https://github.com/andestech/build_script.git
> >>>
> >>> I've taken the gcc-6.3 sources from there, and updated them to gcc-6.4.0
> >>> in order to build a nds32le-linux toolchain based on the same version as
> >>> the other ones.
> >>>
> >>> Unfortunately neither the usual binutils-2.29.1 nor your binutils worked
> >>> for me, but I eventually managed to get a build using the binutils-2.30
> >>> release.
> >>>
> >>> With this, I could build a mainline kernel with a couple of warnings,
> >>> but an 'allmodconfig' build still failed.
> >>>
> >>> Guenter, can you try my binary from
> >>> www.kernel.org/pub/tools/crosstool/files/bin/x86_64/6.4.0/x86_64-gcc-6.4.0-nolibc-nds32le-linux.tar.xz
> >>> ?
> >>>
> >>> If that works for you, I'll update the front-page and remove the nds32-elf
> >>> toolchains.
> >>>
> >>> Greentime, do you have a patch set for gcc-7.3 as well, or are 6.3 and 8.0 the
> >>> only working compilers for nds32le-linux?
> >>>
> >>
> >> Hi, all:
> >>
> >> I just discuss with our toolchain colleagues. We have only gcc6.3 and
> >> gcc8.0 for nds32le-linux.
> >> I have the ld segmentation fault issue too when building kernel with
> >> 'allmodconfig'. We are dealing with it.
> >
> > I've tried building the mainline gcc-8.1 sources for nds32le-linux and
> > still got a failure with those (building gcc), building a nds32le-elf gcc-8.1.0
> > worked fine, but that fails to build the vdso (no support for -fPIC), so
> > it's again unusable for building kernels. Any other ideas?
> >
> > Arnd