Module Name: src Committed By: dennis Date: Mon Dec 22 21:15:48 UTC 2014
Modified Files: src/external/gpl3/gcc/dist/gcc/config/riscv: sync.md src/external/gpl3/gcc/lib/libasan: Makefile Log Message: Apply a fix, extracted from the UCB RISC-V gcc sources, for the (known) problems with compiling atomics for the riscv64 target with gcc. Remove the now-unneeded workarounds for the 2 files in libasan that were formerly failing to compile with the optimizer turned on. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/external/gpl3/gcc/dist/gcc/config/riscv/sync.md cvs rdiff -u -r1.8 -r1.9 src/external/gpl3/gcc/lib/libasan/Makefile Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/external/gpl3/gcc/dist/gcc/config/riscv/sync.md diff -u src/external/gpl3/gcc/dist/gcc/config/riscv/sync.md:1.1 src/external/gpl3/gcc/dist/gcc/config/riscv/sync.md:1.2 --- src/external/gpl3/gcc/dist/gcc/config/riscv/sync.md:1.1 Fri Sep 19 17:20:29 2014 +++ src/external/gpl3/gcc/dist/gcc/config/riscv/sync.md Mon Dec 22 21:15:48 2014 @@ -166,7 +166,7 @@ rtx result = operands[0]; rtx mem = operands[1]; rtx model = operands[2]; - rtx addr = XEXP (mem, 0); + rtx addr = force_reg (Pmode, XEXP (mem, 0)); rtx aligned_addr = gen_reg_rtx (Pmode); emit_move_insn (aligned_addr, gen_rtx_AND (Pmode, addr, GEN_INT (-4))); Index: src/external/gpl3/gcc/lib/libasan/Makefile diff -u src/external/gpl3/gcc/lib/libasan/Makefile:1.8 src/external/gpl3/gcc/lib/libasan/Makefile:1.9 --- src/external/gpl3/gcc/lib/libasan/Makefile:1.8 Tue Dec 2 03:20:39 2014 +++ src/external/gpl3/gcc/lib/libasan/Makefile Mon Dec 22 21:15:48 2014 @@ -56,10 +56,4 @@ CPPFLAGS.sanitizer_netbsd.cc+=-I${GCCDIS LIBDPLIBS+= stdc++ ${.CURDIR}/../libstdc++-v3 LIBDPLIBS+= pthread ${.CURDIR}/../../../../../lib/libpthread -# Work around riscv compiler bugs in (at least) gcc 4.8.3 -.if ${MACHINE_ARCH} == "riscv64" -COPTS.asan_allocator2.cc += -O0 -COPTS.sanitizer_netbsd.cc += -O0 -.endif - .include <bsd.lib.mk>