emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Bootstrap failed during compile of process.c


From: Lennart Borgman
Subject: Re: Bootstrap failed during compile of process.c
Date: Wed, 04 Jan 2006 19:43:17 +0100
User-agent: Mozilla Thunderbird 1.0.7 (Windows/20050923)

Eli Zaretskii wrote:

I don't know, and I have no time to look into the intricacies of using
winsock in the w32 port (in particular, src/s/ms-w32.h makes a point
of forcing windows.h not to include winsock.h, for some undisclosed
reason, and the build uses winsock.h, which is incompatible with
ws2tcpip.h, instead of winsock2.h).

So I simply disabled IPv6 support for the w32 build, for now.  (FWIW,
I think it was a mistake to introduce it so close to a release for
other platforms as well, but that's history now.)

Please resync with CVS and try building again.  It should build now.
I wonder if the changes above have something to do with that emacsserver/client still does not work on w32? I do not know much about it but somewhere in my head is something about compatibility and winsock2.h.

I guess Juanma has not had time to look into emacsserver/client now and no one else has either as far as I know. Actually when I tested now again to run server-start I saw that things are worse now than before on w32. There are at least two new non crossplatform changes (if I understand this correctly):

   (defvar server-socket-dir
    (format "/tmp/emacs%d" (user-uid)))

Should not this use `temporary-file-directory'?

Then in

   (defun server-ensure-safe-dir (dir)
     "Make sure DIR is a directory with no race-condition issues.
   Creates the directory if necessary and makes sure:
   - there's no symlink involved
   - it's owned by us
   - it's not readable/writable by anybody else."
     (setq dir (directory-file-name dir))
     (let ((attrs (file-attributes dir)))
       (unless attrs
         (letf (((default-file-modes) ?\700)) (make-directory dir))
         (setq attrs (file-attributes dir)))
       ;; Check that it's safe for use.
       (unless (and (eq t (car attrs)) (eq (nth 2 attrs) (user-uid))
            (zerop (logand ?\077 (file-modes dir))))
         (error "The directory %s is unsafe" dir))))

there are several tests that are not cross platforms.

Why does this happen? It would be very good if new code where cross platform. (On the elisp level I guess that care must be taken for all operations handling files. Is there anything else? Maybe networking?)

I welcome more cross platform knowledge. It is in my opinion very important that we have knowledge from different platforms to keep things together. Currently it would IMO be very good if someone with knowledge in network programming on w32 and other platforms could help solve the problem with emacsserver/client on w32!





reply via email to

[Prev in Thread] Current Thread [Next in Thread]