Skip to content

Commit 1342cd7

Browse files
authored
Merge pull request #1073 from palmer-dabbelt/qemu-system
Allow users to build QEMU with system-mode emulation
2 parents 9249802 + 925ee4d commit 1342cd7

File tree

3 files changed

+40
-8
lines changed

3 files changed

+40
-8
lines changed

Makefile.in

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ WITH_TUNE ?= @WITH_TUNE@
3636
WITH_ISA_SPEC ?= @WITH_ISA_SPEC@
3737
SYSROOT := $(INSTALL_DIR)/sysroot
3838
ENABLE_LIBSANITIZER ?= @enable_libsanitizer@
39+
QEMU_TARGETS ?= @qemu_targets@
3940

4041
SHELL := /bin/sh
4142
AWK := @GAWK@
@@ -848,7 +849,7 @@ stamps/build-qemu: $(QEMU_SRCDIR) $(QEMU_SRC_GIT)
848849
mkdir $(notdir $@)
849850
cd $(notdir $@) && $</configure \
850851
--prefix=$(INSTALL_DIR) \
851-
--target-list=riscv64-linux-user,riscv32-linux-user \
852+
--target-list=$(QEMU_TARGETS) \
852853
--interp-prefix=$(INSTALL_DIR)/sysroot \
853854
--python=python3
854855
$(MAKE) -C $(notdir $@)

configure

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -584,8 +584,9 @@ PACKAGE_URL=''
584584

585585
ac_subst_vars='LTLIBOBJS
586586
LIBOBJS
587-
with_linux_headers_src
587+
qemu_targets
588588
enable_libsanitizer
589+
with_linux_headers_src
589590
with_qemu_src
590591
with_gdb_src
591592
with_musl_src
@@ -694,6 +695,7 @@ with_gdb_src
694695
with_qemu_src
695696
with_linux_headers_src
696697
enable_libsanitizer
698+
enable_qemu_system
697699
'
698700
ac_precious_vars='build_alias
699701
host_alias
@@ -1332,6 +1334,7 @@ Optional Features:
13321334
[--disable-gcc-checking]
13331335
--disable-gdb Don't build GDB, as it's not upstream
13341336
--enable-libsanitizer Build libsanitizer, which only supports rv64
1337+
--enable-qemu-system Build qemu with system-mode emulation
13351338
13361339
Optional Packages:
13371340
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
@@ -3678,6 +3681,14 @@ else
36783681
fi
36793682
36803683
3684+
if test "x$with_linux_headers_src" != xdefault; then :
3685+
with_linux_headers_src=$with_linux_headers_src
3686+
3687+
else
3688+
with_linux_headers_src="\$(srcdir)/linux-headers/include"
3689+
3690+
fi
3691+
36813692
# Check whether --enable-libsanitizer was given.
36823693
if test "${enable_libsanitizer+set}" = set; then :
36833694
enableval=$enable_libsanitizer;
@@ -3695,11 +3706,20 @@ else
36953706
36963707
fi
36973708
3698-
if test "x$with_linux_headers_src" != xdefault; then :
3699-
with_linux_headers_src=$with_linux_headers_src
3709+
# Check whether --enable-qemu_system was given.
3710+
if test "${enable_qemu_system+set}" = set; then :
3711+
enableval=$enable_qemu_system;
3712+
else
3713+
enable_qemu_system=no
3714+
3715+
fi
3716+
3717+
3718+
if test "x$enable_qemu_system" != xno; then :
3719+
qemu_targets=riscv64-linux-user,riscv32-linux-user,riscv64-softmmu,riscv32-softmmu
37003720
37013721
else
3702-
with_linux_headers_src="\$(srcdir)/linux-headers/include"
3722+
qemu_targets=riscv64-linux-user,riscv32-linux-user
37033723
37043724
fi
37053725

configure.ac

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,10 @@ AC_ARG_WITH(linux-headers-src,
242242
[with_linux_headers_src=default]
243243
)
244244

245+
AS_IF([test "x$with_linux_headers_src" != xdefault],
246+
[AC_SUBST(with_linux_headers_src,$with_linux_headers_src)],
247+
[AC_SUBST(with_linux_headers_src,"\$(srcdir)/linux-headers/include")])
248+
245249
AC_ARG_ENABLE(libsanitizer,
246250
[AS_HELP_STRING([--enable-libsanitizer],
247251
[Build libsanitizer, which only supports rv64])],
@@ -253,8 +257,15 @@ AS_IF([test "x$enable_libsanitizer" != xno],
253257
[AC_SUBST(enable_libsanitizer, --enable-libsanitizer)],
254258
[AC_SUBST(enable_libsanitizer, --disable-libsanitizer)])
255259

256-
AS_IF([test "x$with_linux_headers_src" != xdefault],
257-
[AC_SUBST(with_linux_headers_src,$with_linux_headers_src)],
258-
[AC_SUBST(with_linux_headers_src,"\$(srcdir)/linux-headers/include")])
260+
AC_ARG_ENABLE(qemu_system,
261+
[AS_HELP_STRING([--enable-qemu-system],
262+
[Build qemu with system-mode emulation])],
263+
[],
264+
[enable_qemu_system=no]
265+
)
266+
267+
AS_IF([test "x$enable_qemu_system" != xno],
268+
[AC_SUBST(qemu_targets, [riscv64-linux-user,riscv32-linux-user,riscv64-softmmu,riscv32-softmmu])],
269+
[AC_SUBST(qemu_targets, [riscv64-linux-user,riscv32-linux-user])])
259270

260271
AC_OUTPUT

0 commit comments

Comments
 (0)