Update configure line for riscv-gnu-toolchain in readme
This commit is contained in:
		
							parent
							
								
									5a39d8b7e7
								
							
						
					
					
						commit
						9bc72cca08
					
				
							
								
								
									
										11
									
								
								Readme.md
								
								
								
								
							
							
						
						
									
										11
									
								
								Readme.md
								
								
								
								
							|  | @ -70,7 +70,7 @@ The [Yosys GitHub repo](https://github.com/YosysHQ/yosys) has instructions for b | |||
| 
 | ||||
| ## RISC-V Toolchain | ||||
| 
 | ||||
| The instructions below are for building a version of the 32-bit [RISC-V GNU toolchain](https://github.com/riscv/riscv-gnu-toolchain) with multilib support for the various combinations of RV32I/M/C ISAs: | ||||
| The instructions below are for building a version of the 32-bit [RISC-V GNU toolchain](https://github.com/riscv/riscv-gnu-toolchain) with multilib support for the various combinations of RV32I/M/A/C ISAs: | ||||
| 
 | ||||
| ```bash | ||||
| # Prerequisites for Ubuntu 20.04 | ||||
|  | @ -78,17 +78,16 @@ sudo apt install -y autoconf automake autotools-dev curl python3 libmpc-dev libm | |||
| cd /tmp | ||||
| git clone --recursive https://github.com/riscv/riscv-gnu-toolchain | ||||
| cd riscv-gnu-toolchain | ||||
| # The ./configure arguments are the most important difference | ||||
| ./configure --prefix=/opt/riscv --with-arch=rv32imc --with-abi=ilp32 --with-multilib-generator="rv32i-ilp32--;rv32ic-ilp32--;rv32im-ilp32--;rv32imc-ilp32--" | ||||
| ./configure --prefix=/opt/riscv --with-arch=rv32ia --with-abi=ilp32 --with-multilib-generator="rv32i-ilp32--;rv32ia-ilp32--;rv32iac-ilp32--;rv32ic-ilp32--;rv32im-ilp32--;rv32ima-ilp32--;rv32imac-ilp32--;rv32imc-ilp32--" | ||||
| sudo mkdir /opt/riscv | ||||
| sudo chown $(whoami) /opt/riscv | ||||
| make -j $(nproc) | ||||
| ``` | ||||
| 
 | ||||
| The multilib build is strongly recommended -- getting a RV32IMC standard library on a RV32I processor variant will ruin your day, and running soft float that does not use the multiply instructions is not much fun either. | ||||
| 
 | ||||
| This build will also install an appropriate gdb as `riscv32-unknown-elf-gdb`. | ||||
| 
 | ||||
| The `--with-multilib-generator=` flag builds multiple versions of the standard library, to match possible `-march` flags provided at link time. If there is no _exact_ match, the linker falls back to the architecture specified by the `--with-arch` flag, which in this case is the fairly conservative RV32IA. This will become worse with GCC 12, where for example the CSR instructions have moved from `I` to `Zicsr`, and the entire arch string must still be matched to get the non-fallback library. | ||||
| 
 | ||||
| 
 | ||||
| ## Actually Running Hello World | ||||
| 
 | ||||
| Make sure you have done a _recursive_ clone of the Hazard3 repository. Build the CXXRTL-based simulator: | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue