From: oscar Date: Mon, 23 Sep 2024 21:04:36 +0000 (+0200) Subject: Fix redirection of read when _FORTIFY_SOURCE is defined X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=ede18b78eae07c20dccaf7c0f76620e35864ff70;p=emacs.git Fix redirection of read when _FORTIFY_SOURCE is defined When _FORTIFY_SOURCE is defined mingw-w64 provides an inline definition of read in io.h. This makes our previous redirection to sys_read ineffective. The prototype of sys_read is now required because we don't touch the prototype of read. * nt/inc/ms-w32.h (read): Move the redirection after io.h. Add prototype for sys_read (Bug#73444) (cherry picked from commit e376a27cf27d453f3b1c2728626950d4c4478f48) --- diff --git a/nt/inc/ms-w32.h b/nt/inc/ms-w32.h index 7212e4d2984..4d721244afe 100644 --- a/nt/inc/ms-w32.h +++ b/nt/inc/ms-w32.h @@ -256,8 +256,7 @@ extern void w32_reset_stack_overflow_guard (void); #define fopen sys_fopen #define link sys_link #define localtime sys_localtime -#undef read -#define read sys_read +/* we override read after including io.h, see #73444 */ #define rename sys_rename #define rmdir sys_rmdir #define select sys_select @@ -380,6 +379,11 @@ extern struct tm *localtime_r (time_t const * restrict, struct tm * restrict); #define fileno _fileno #endif +/* Here we override CRT read with our own, see #73444 */ +#undef read +#define read sys_read +int sys_read (int, char *, unsigned int); + /* Defines that we need that aren't in the standard signal.h. */ #define SIGHUP 1 /* Hang up */ #define SIGQUIT 3 /* Quit process */