[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
MS-Windows build broken in Fmake_network_process
From: |
Eli Zaretskii |
Subject: |
MS-Windows build broken in Fmake_network_process |
Date: |
Fri, 26 Mar 2010 18:22:36 +0300 |
This change:
revno: 99750
author: Helmut Eller <address@hidden>
committer: YAMAMOTO Mitsuharu <address@hidden>
branch nick: trunk
timestamp: Thu 2010-03-25 17:48:52 +0900
message:
Call `select' for interrupted `connect' rather than creating new socket
(Bug#5173).
breaks the MS-Windows build:
The compiler emits a warning, and the linker errors out:
gcc -I. -c -gdwarf-2 -g3 -mtune=pentium4 -O2 -Demacs=1 -DHAVE_CONFIG_H
-I../nt/inc -DHAVE_NTGUI=1 -DUSE_CRT_DLL=1 -o oo-spd/i386/process.o process.c
process.c: In function `Fmake_network_process':
process.c:3663: warning: passing arg 4 of `getsockopt' from incompatible
pointer type
oo-spd/i386/temacs1.a(process.o)(.text+0x3297): In function
`Fmake_network_process':
D:\gnu\bzr\emacs\trunk\src/process.c:3663: undefined reference to
address@hidden'
The compiler warning is because the prototype on Windows is:
int getsockopt(SOCKET, int, int, char*, int*);
The linker error is because we would need to link against yet another
library to get this function. But I don't think we should do that.
I'm actually bewildered why this code:
int len = sizeof xerrno;
eassert (FD_ISSET (s, &fdset));
if (getsockopt (s, SOL_SOCKET, SO_ERROR, &xerrno, &len) == -1)
report_file_error ("getsockopt failed", Qnil);
was used unconditionally when a very similar code in
wait_reading_process_output is clearly marked with a comment saying
not to use it except on GNU/Linux:
#ifdef GNU_LINUX
/* getsockopt(,,SO_ERROR,,) is said to hang on some systems.
So only use it on systems where it is known to work. */
{
int xlen = sizeof(xerrno);
if (getsockopt(channel, SOL_SOCKET, SO_ERROR, &xerrno, &xlen))
xerrno = errno;
}
#else
Would you please provide an alternative code (similar to what the
#else branch does in wait_reading_process_output) that will not use
getsockopt?
- MS-Windows build broken in Fmake_network_process,
Eli Zaretskii <=
- Re: MS-Windows build broken in Fmake_network_process, Helmut Eller, 2010/03/26
- Re: MS-Windows build broken in Fmake_network_process, Eli Zaretskii, 2010/03/26
- Re: MS-Windows build broken in Fmake_network_process, Helmut Eller, 2010/03/26
- Re: MS-Windows build broken in Fmake_network_process, Eli Zaretskii, 2010/03/26
- Re: MS-Windows build broken in Fmake_network_process, Helmut Eller, 2010/03/26
- Re: MS-Windows build broken in Fmake_network_process, Eli Zaretskii, 2010/03/26
- Re: MS-Windows build broken in Fmake_network_process, Chong Yidong, 2010/03/26
- Re: MS-Windows build broken in Fmake_network_process, Eli Zaretskii, 2010/03/27
- Re: MS-Windows build broken in Fmake_network_process, Jason Rumney, 2010/03/27
- Re: MS-Windows build broken in Fmake_network_process, Eli Zaretskii, 2010/03/27