sim: erc32: fix build w/out F_{G,S}ETFL

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.
This commit is contained in:
Mike Frysinger 2021-06-14 23:25:01 -04:00
parent 4df5cdbd3a
commit 757b3c2fea
3 changed files with 13 additions and 2 deletions

View File

@ -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,

View File

@ -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)

View File

@ -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;