Add a "--with-xlen" configure argument (#16)
authorPalmer Dabbelt <palmer@dabbelt.com>
Tue, 12 Jul 2016 18:17:10 +0000 (11:17 -0700)
committerAndrew Waterman <waterman@eecs.berkeley.edu>
Tue, 12 Jul 2016 18:17:10 +0000 (11:17 -0700)
The tools had riscv64-unknown-elf-gcc hard-coded all over the place.
This lets users override that if they have a 32-bit toolchain.

Makefile.in
benchmarks/Makefile
configure
configure.ac
isa/Makefile
mt/Makefile

index 9129d56b469cf9850681ec6a5101c21c0063f86c..62a95b24bab9bdbdba5099b9206bc19d0d6130fb 100644 (file)
@@ -1,5 +1,6 @@
 prefix          := @prefix@
 abs_top_src_dir := @abs_top_srcdir@
+XLEN            := @XLEN@
 instbasedir     := $(DESTDIR)$(prefix)
 bmarkdir        := $(abs_top_src_dir)/benchmarks
 isa_src_dir     := $(abs_top_src_dir)/isa
@@ -14,11 +15,11 @@ install: all
 
 benchmarks:
        mkdir -p benchmarks
-       $(MAKE) -C benchmarks -f $(bmarkdir)/Makefile src_dir=$(bmarkdir)
+       $(MAKE) -C benchmarks -f $(bmarkdir)/Makefile src_dir=$(bmarkdir) XLEN=$(XLEN)
 
 isa:
        mkdir -p isa
-       $(MAKE) -C isa -f $(isa_src_dir)/Makefile src_dir=$(isa_src_dir)
+       $(MAKE) -C isa -f $(isa_src_dir)/Makefile src_dir=$(isa_src_dir) XLEN=$(XLEN)
 
 clean:
        $(MAKE) -C isa -f $(isa_src_dir)/Makefile src_dir=$(isa_src_dir) clean
index e294f720df287fc392a60a66cf01f0288bb19493..965246e6ab01ff02576e8bc9e475c3a76520e472 100644 (file)
@@ -46,7 +46,7 @@ bmarks_host = \
 HOST_OPTS = -std=gnu99 -DPREALLOCATE=0 -DHOST_DEBUG=1
 HOST_COMP = gcc $(HOST_OPTS)
 
-RISCV_PREFIX ?= riscv64-unknown-elf-
+RISCV_PREFIX ?= riscv$(XLEN)-unknown-elf-
 RISCV_GCC ?= $(RISCV_PREFIX)gcc
 RISCV_GCC_OPTS ?= -mcmodel=medany -static -std=gnu99 -O2 -ffast-math -fno-common -fno-builtin-printf
 RISCV_LINK ?= $(RISCV_GCC) -T $(src_dir)/common/test.ld $(incs)
index d0b558bfc2905c5e6522cc0fa9a5f80cf0027603..db0969e934f207736ddc08387717ca6b39a71dc2 100755 (executable)
--- a/configure
+++ b/configure
@@ -583,6 +583,7 @@ PACKAGE_URL=''
 
 ac_subst_vars='LTLIBOBJS
 LIBOBJS
+XLEN
 OBJEXT
 EXEEXT
 ac_ct_CC
@@ -631,6 +632,7 @@ SHELL'
 ac_subst_files=''
 ac_user_opts='
 enable_option_checking
+with_xlen
 '
       ac_precious_vars='build_alias
 host_alias
@@ -1245,6 +1247,11 @@ if test -n "$ac_init_help"; then
    esac
   cat <<\_ACEOF
 
+Optional Packages:
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --with-xlen=XLEN        Set XLEN, the X-register bit width (default is 64)
+
 Some influential environment variables:
   CC          C compiler command
   CFLAGS      C compiler flags
@@ -2515,6 +2522,19 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
+
+# Check whether --with-xlen was given.
+if test "${with_xlen+set}" = set; then :
+  withval=$with_xlen; XLEN=$withval
+
+else
+  XLEN=64
+
+
+fi
+
+
+
 ac_config_files="$ac_config_files Makefile"
 
 cat >confcache <<\_ACEOF
index d85ddd6ef1b3247c89a3ce594e5fb04ec14084c1..ebfd649795a37a5c2098efee103cc817abeff602 100644 (file)
@@ -3,6 +3,14 @@ AC_INIT(riscv-tests, 1.0)
 cross_compiling=yes
 AC_PROG_CC
 
+AC_ARG_WITH(xlen,
+        [AS_HELP_STRING([--with-xlen=XLEN],
+                [Set XLEN, the X-register bit width (default is 64)])],
+        AC_SUBST(XLEN, $withval),
+        AC_SUBST(XLEN, 64)
+        )
+
+
 AC_OUTPUT(
     Makefile
 )
index 4e1af6c943c48e0ea66036a9f2fcc15d0a1162c5..facc61191e389327b5e0811388092dc07b20ca2d 100644 (file)
@@ -23,13 +23,12 @@ default: all
 # Build rules
 #--------------------------------------------------------------------
 
-RISCV_PREFIX ?= riscv64-unknown-elf-
+RISCV_PREFIX ?= riscv$(XLEN)-unknown-elf-
 RISCV_GCC ?= $(RISCV_PREFIX)gcc
 ENTROPY ?= -DENTROPY=$(shell echo $$$$)
 RISCV_GCC_OPTS ?= $(ENTROPY) -static -mcmodel=medany -fvisibility=hidden -nostdlib -nostartfiles
 RISCV_OBJDUMP ?= $(RISCV_PREFIX)objdump --disassemble-all --disassemble-zeroes --section=.text --section=.text.startup --section=.text.init --section=.data
 RISCV_SIM ?= spike
-XLEN ?= 64
 
 vpath %.S $(src_dir)
 
index e4a8bfd0fdb253a3370bf80c4d27a90fdfbc1689..b45e55182877d2bb1e5ca7d45611a22287567a55 100644 (file)
@@ -75,7 +75,7 @@ bmarks = $(bmarks_vvadd) $(bmarks_matmul)
 # Build rules
 #--------------------------------------------------------------------
 
-RISCV_PREFIX=riscv64-unknown-elf-
+RISCV_PREFIX=riscv$(XLEN)-unknown-elf-
 RISCV_GCC = $(RISCV_PREFIX)gcc
 RISCV_GCC_OPTS = -std=gnu99 -O2 -ffast-math
 RISCV_LINK = $(RISCV_GCC) -T $(common)/test.ld $(incs)