sim: Fix up the selectFunc syscall to work with g++ 10.2.
authorGabe Black <gabeblack@google.com>
Wed, 26 Aug 2020 06:22:09 +0000 (23:22 -0700)
committerGabe Black <gabeblack@google.com>
Wed, 26 Aug 2020 20:16:00 +0000 (20:16 +0000)
This is no longer willing to implicitly cast between the locally defined
Linux::fd_set type and the system fd_set type. That's pretty reasonable
since those types are really independent of one another, and we
shouldn't be using them interchangeably in the first place. That's a
pre-existing condition though, and I just want to get the existing code
to compile for now.

Change-Id: I41d5f3695dfe5f0e406d074d31d13c6e3282df64
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/33415
Reviewed-by: Ciro Santilli <ciro.santilli@arm.com>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
src/sim/syscall_emul.hh

index b23e86010c04a5aca0fa76bb4fb916bbb032699f..05a29f9feb85f10dbb864971322d51712827d55f 100644 (file)
@@ -95,6 +95,7 @@
 #include "config/the_isa.hh"
 #include "cpu/base.hh"
 #include "cpu/thread_context.hh"
+#include "kern/linux/linux.hh"
 #include "mem/page_table.hh"
 #include "params/Process.hh"
 #include "sim/emul_driver.hh"
@@ -2360,9 +2361,9 @@ selectFunc(SyscallDesc *desc, ThreadContext *tc, int nfds,
     if (retval == -1)
         return -errno;
 
-    FD_ZERO(readfds);
-    FD_ZERO(writefds);
-    FD_ZERO(errorfds);
+    FD_ZERO(reinterpret_cast<fd_set *>((typename OS::fd_set *)readfds));
+    FD_ZERO(reinterpret_cast<fd_set *>((typename OS::fd_set *)writefds));
+    FD_ZERO(reinterpret_cast<fd_set *>((typename OS::fd_set *)errorfds));
 
     /**
      * We need to translate the host file descriptor set into a target file