This makes --specs=nosys.specs work correctly. Without this patch, libnosys is ignored because libgloss gets pulled in first. We may have to revisit this in the future when we have some proper BSPs defined for various RISC-V hardware. Meanwhile, adding libgloss by default makes things easier for inexperienced users and I don't want to break that.
This was tested with a testsuite run for a newlib target, there were no regressions. Also tested by hand to verify that --specs=nosys.specs works correctly. Committed. Jim gcc/ * config/riscv/elf.h (LIB_SPEC): Don't include -lgloss when nosys.specs specified. --- gcc/config/riscv/elf.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/config/riscv/elf.h b/gcc/config/riscv/elf.h index 43ad68bbdf2..f39e83234d2 100644 --- a/gcc/config/riscv/elf.h +++ b/gcc/config/riscv/elf.h @@ -24,7 +24,7 @@ along with GCC; see the file COPYING3. If not see /* Link against Newlib libraries, because the ELF backend assumes Newlib. Handle the circular dependence between libc and libgloss. */ #undef LIB_SPEC -#define LIB_SPEC "--start-group -lc -lgloss --end-group" +#define LIB_SPEC "--start-group -lc %{!specs=nosys.specs:-lgloss} --end-group" #undef STARTFILE_SPEC #define STARTFILE_SPEC "crt0%O%s crtbegin%O%s" -- 2.14.1