OSDN Git Service

* Makefile.in: Use default rules when compiling cygrun.o.
authorcgf <cgf>
Tue, 28 Mar 2000 21:49:16 +0000 (21:49 +0000)
committercgf <cgf>
Tue, 28 Mar 2000 21:49:16 +0000 (21:49 +0000)
* dcrt0.cc (host_dependent_constants::init): Limit non-NT platforms to 32K
chunks when copying regions during a fork.
* path.cc (symlink_check_one): Add temporary debugging output.  Simplify
PATH_EXEC test.
* syscalls.cc (stat_suffixes): Null terminate this list.

winsup/cygwin/ChangeLog
winsup/cygwin/Makefile.in
winsup/cygwin/dcrt0.cc
winsup/cygwin/path.cc
winsup/cygwin/syscalls.cc

index e3793d1..4b334f7 100644 (file)
@@ -1,3 +1,12 @@
+Tue Mar 28 16:45:42 2000  Christopher Faylor <cgf@cygnus.com>
+
+       * Makefile.in: Use default rules when compiling cygrun.o.
+       * dcrt0.cc (host_dependent_constants::init): Limit non-NT platforms to
+       32K chunks when copying regions during a fork.
+       * path.cc (symlink_check_one): Add temporary debugging output.
+       Simplify PATH_EXEC test.
+       * syscalls.cc (stat_suffixes): Null terminate this list.
+
 Sat Mar 25 20:46:39 2000  Christopher Faylor <cgf@cygnus.com>
 
        * path.cc (symlink_check_one): Recognize symlink settings from the
index de386a9..bcfa67d 100644 (file)
@@ -193,9 +193,9 @@ winver_stamp: mkvers.sh include/cygwin/version.h winver.rc $(DLL_OFILES)
        touch $@; \
        $(COMPILE_CXX) -o version.o version.cc
 
-cygrun.exe : $(srcdir)/cygrun.c $(DLL_IMPORTS) $(w32api_lib)/libuser32.a \
+cygrun.exe : cygrun.o $(DLL_IMPORTS) $(w32api_lib)/libuser32.a \
             $(w32api_lib)/libshell32.a
-       $(CC) -o $@ -L$(w32api_lib) $(srcdir)/cygrun.c
+       $(CC) -o $@ -L$(w32api_lib) ${word 1,$^}
 
 #\f
 
index b05b215..0a5c080 100644 (file)
@@ -151,6 +151,7 @@ host_dependent_constants NO_COPY host_dependent;
 void
 host_dependent_constants::init ()
 {
+  extern DWORD chunksize;
   /* fhandler_disk_file::lock needs a platform specific upper word
      value for locking entire files.
 
@@ -169,6 +170,7 @@ host_dependent_constants::init ()
     case win32s:
       win32_upper = 0x00000000;
       shared = FILE_SHARE_READ | FILE_SHARE_WRITE;
+      chunksize = 32 * 1024 * 1024;
       break;
 
     default:
index 6a18dc1..a58a1b4 100644 (file)
@@ -2164,12 +2164,10 @@ symlink_check_one (const char *in_path, char *buf, int buflen, DWORD& fileattr,
       if (fileattr & FILE_ATTRIBUTE_DIRECTORY)
         unixattr |= S_IFDIR;
 
-      if (! get_file_attribute (TRUE, path, &unixattr))
+      if (!get_file_attribute (TRUE, path, &unixattr))
        {
          if (unixattr & STD_XBITS)
            *pflags |= PATH_EXEC;
-         if (! S_ISLNK (unixattr))
-           ;
        }
 
       /* Open the file.  */
@@ -2177,6 +2175,8 @@ symlink_check_one (const char *in_path, char *buf, int buflen, DWORD& fileattr,
       h = CreateFileA (path, GENERIC_READ, FILE_SHARE_READ, &sec_none_nih, OPEN_EXISTING,
                       FILE_ATTRIBUTE_NORMAL, 0);
 
+syscall_printf ("opened '%s'(%p)", path, h);
+
       res = -1;
       if (h == INVALID_HANDLE_VALUE)
        __seterrno ();
@@ -2185,6 +2185,7 @@ symlink_check_one (const char *in_path, char *buf, int buflen, DWORD& fileattr,
          char cookie_buf[sizeof (SYMLINK_COOKIE) - 1];
          DWORD got;
 
+syscall_printf ("ReadFile");
          if (! ReadFile (h, cookie_buf, sizeof (cookie_buf), &got, 0))
            set_errno (EIO);
          else if (got == sizeof (cookie_buf)
@@ -2215,24 +2216,24 @@ symlink_check_one (const char *in_path, char *buf, int buflen, DWORD& fileattr,
                   && memcmp (cookie_buf, SOCKET_COOKIE,
                              sizeof (cookie_buf)) == 0)
            {
-             res = 0;
              *pflags |= PATH_SOCKET;
              goto close_and_return;
            }
-         else if (*pflags & PATH_EXEC)
-           goto close_and_return;
-         else if (!(*pflags & PATH_EXEC))
+         else
            {
              /* Not a symlink, see if executable.  */
-             if (got >= 2 &&
+             if (!(*pflags & PATH_EXEC) && got >= 2 &&
                  ((cookie_buf[0] == '#' && cookie_buf[1] == '!') ||
                   (cookie_buf[0] == ':' && cookie_buf[1] == '\n')))
                *pflags |= PATH_EXEC;
-         close_and_return:
+           close_and_return:
+syscall_printf ("close_and_return");
              CloseHandle (h);
              goto file_not_symlink;
            }
        }
+
+syscall_printf ("breaking from loop");
       CloseHandle (h);
       break;
     }
@@ -2241,6 +2242,7 @@ symlink_check_one (const char *in_path, char *buf, int buflen, DWORD& fileattr,
 
 file_not_symlink:
   set_errno (EINVAL);
+  syscall_printf ("not a symlink");
   if (ext_here)
     strcpy (buf, ext_here);
   res = 0;
index dba7259..a4c7253 100644 (file)
@@ -920,7 +920,8 @@ stat_dev (DWORD devn, int unit, unsigned long ino, struct stat *buf)
 static suffix_info stat_suffixes[] = 
 {
   suffix_info ("", 1),
-  suffix_info (".exe", 1)
+  suffix_info (".exe", 1),
+  suffix_info (NULL)
 };
 
 /* Cygwin internal */