[PATCH/committed,2/2] sim: erc32: fix build w/out F_{G,S}ETFL

Message ID 20210615033042.24482-2-vapier@gentoo.org
State New
Headers show
Series
  • [PATCH/committed,1/2] sim: erc32: fix build w/out termios.h
Related show

Commit Message

Eli Zaretskii via Gdb-patches June 15, 2021, 3:30 a.m.
Add conditional logic around fcntl.h F_{G,S}ETFL usage to fix builds
on systems that don't have it (e.g. Windows).  The code is only used
to save & restore limited terminal stdin state.
---
 sim/erc32/ChangeLog | 6 ++++++
 sim/erc32/interf.c  | 7 +++++--
 sim/erc32/sis.c     | 2 ++
 3 files changed, 13 insertions(+), 2 deletions(-)

-- 
2.31.1

Patch

diff --git a/sim/erc32/ChangeLog b/sim/erc32/ChangeLog
index a5035d058f15..0a82427cb5f4 100644
--- a/sim/erc32/ChangeLog
+++ b/sim/erc32/ChangeLog
@@ -1,3 +1,9 @@ 
+2021-06-14  Mike Frysinger  <vapier@gentoo.org>
+
+	* interf.c (sim_open) [F_GETFL]: Only set termsave.
+	(sim_close) [F_SETFL]: Only call fcntl.
+	* sis.c (main) [F_GETFL]: Only set termsave.
+
 2021-06-14  Mike Frysinger  <vapier@gentoo.org>
 
 	* erc32.c [HAVE_TERMIOS_H]: Include termios.h and declare ioc1,
diff --git a/sim/erc32/interf.c b/sim/erc32/interf.c
index 28c981bbb924..0cd655517630 100644
--- a/sim/erc32/interf.c
+++ b/sim/erc32/interf.c
@@ -241,7 +241,9 @@  sim_open (SIM_OPEN_KIND kind, struct host_callback_struct *callback,
     }
 
     sregs.freq = freq ? freq : 15;
+#ifdef F_GETFL
     termsave = fcntl(0, F_GETFL, 0);
+#endif
     INIT_DISASSEMBLE_INFO(dinfo, stdout,(fprintf_ftype)fprintf);
 #ifdef HOST_LITTLE_ENDIAN
     dinfo.endian = BFD_ENDIAN_LITTLE;
@@ -263,9 +265,10 @@  sim_close(SIM_DESC sd, int quitting)
 {
 
     exit_sim();
+#ifdef F_SETFL
     fcntl(0, F_SETFL, termsave);
-
-};
+#endif
+}
 
 SIM_RC
 sim_load(SIM_DESC sd, const char *prog, bfd *abfd, int from_tty)
diff --git a/sim/erc32/sis.c b/sim/erc32/sis.c
index 749d25620b44..b49e5a606098 100644
--- a/sim/erc32/sis.c
+++ b/sim/erc32/sis.c
@@ -219,7 +219,9 @@  main(int argc, char **argv)
     dinfo.endian = BFD_ENDIAN_BIG;
 #endif
 
+#ifdef F_GETFL
     termsave = fcntl(0, F_GETFL, 0);
+#endif
     using_history();
     init_signals();
     ebase.simtime = 0;