On Sat, Jul 7, 2018 at 12:25 AM, Andreas Schwab <sch...@linux-m68k.org> wrote: > On Jul 05 2018, Jim Wilson <j...@sifive.com> wrote: > >> Tested with native riscv-linux bootstrap with Ada enabled. > > I'm getting a lot of errors from the assembler "non-constant .uleb128 is > not supported" when trying to bootstrap the compiler with the > cross-compiled ada compiler.
GCC configure assumes that if you have gas, then non-constant .uleb128 is OK. However, because RISC-V deletes instructions at link time, we cannot allow some forms of this construct. If you have a working gas available at gcc configure time, then it should do a gas run-time test and discover that this gas feature does not work. If you do not have a working gas at gcc configure time, it will assume the feature is available, try to use it, and then you get a build failure due to gas errors. The only time I've ever seen this error is if I try to use an old-style combined-tree build approach, because in this case gcc configures before gas is built. If you build and install binutils, and then build and install gcc, the build will work. I haven't tried to fix the old-style combined-tree approach, I didn't see an obvious fix, and since I don't like to do builds this way anymore it wasn't important enough to me to try to fix. JIm