Re: Feature Branch Windows Build Broken - lib/canonicalize.c - ELOOP lstat

2005-05-25 Thread Derek Price
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Conrad T. Pino wrote:

Hi Derek,

Here's a rough draft of a patch that allows Windows build to complete.
The draft includes edited files only and ignores generated files and
Windows build projects files are also omitted.

Briefly the plan is:

 #define stat wnt_stat
 #define lstat wnt_stat

 int wnt_stat (const char *file, struct wnt_stat *sb);

 Delete wnt_lstat definition


Are stat and lstat really equivalent on Windows?

Index: lib/system.h
===
RCS file: /cvs/ccvs/lib/system.h,v
retrieving revision 1.76
diff -u -p -r1.76 system.h
--- lib/system.h 24 May 2005 21:05:37 - 1.76
+++ lib/system.h 25 May 2005 01:20:36 -
@@ -371,7 +371,7 @@ extern int errno;
 otherwise return it unchanged. */
 #define convert_blocks(b, k) ((k) ? ((b) + 1) / 2 : (b))

-#ifndef S_ISLNK
+#if !defined(lstat)  !defined(S_ISLNK)
 # define lstat stat
 #endif


I suspect this was only relevant on Windows anyhow and the entire block
can be removed.

Index: windows-NT/config.h.in.footer
===
RCS file: /cvs/ccvs/windows-NT/config.h.in.footer,v
retrieving revision 1.4
diff -u -p -r1.4 config.h.in.footer
--- windows-NT/config.h.in.footer 1 Mar 2005 14:37:39 - 1.4
+++ windows-NT/config.h.in.footer 25 May 2005 01:20:37 -
@@ -11,11 +11,7 @@
 #define CVS_MKDIR wnt_mkdir
 int wnt_mkdir (const char *PATH, int MODE);

-#define CVS_STAT wnt_stat
-int wnt_stat ();
-
-#define CVS_LSTAT wnt_lstat
-int wnt_lstat ();
+int wnt_stat (const char *file, struct wnt_stat *sb);


This may prove unnecessary.  See below.

 #define CVS_RENAME wnt_rename
 int wnt_rename (const char *, const char *);
@@ -95,3 +91,6 @@ char *sock_strerror (int errnum);
 /* getpagesize is missing on Windows, but 4096 seems to do the right
 thing. */
 #define getpagesize() 4096
+
+/* Windows has no ELOOP value in errno.h */
+#define ELOOP 1


How about #define ELOOP EMLINK?  At least if this error ever comes up,
sterror will then produce a somewhat meaningful error message on Windows.

Index: windows-NT/config.h.in.in
===
RCS file: /cvs/ccvs/windows-NT/config.h.in.in,v
retrieving revision 1.30
diff -u -p -r1.30 config.h.in.in
--- windows-NT/config.h.in.in 2 May 2005 14:08:18 - 1.30
+++ windows-NT/config.h.in.in 25 May 2005 01:20:37 -
@@ -92,8 +92,9 @@
 message to be appended to the temp file when the editor is started. */
 #undef FORCE_USE_EDITOR

-/* Define if gettimeofday clobbers localtime's static buffer. */
-#undef GETTIMEOFDAY_CLOBBERS_LOCALTIME_BUFFER


Why are you removing these lines?

Cheers,

Derek
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.0 (Cygwin)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFClJehLD1OTBfyMaQRAghmAJ92Y1HxX1mz9Nr5N/vGtEQeu3XORQCfaFP1
5XRVx2RxZSdqN4YiqT1jrsw=
=I2jp
-END PGP SIGNATURE-




___
Bug-cvs mailing list
Bug-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-cvs


Re: Feature Branch Solaris Build Broken - lib/glob.c errors

2005-05-25 Thread Derek Price
Conrad T. Pino wrote:

Hi Derek,

  

From: Conrad T. Pino



From: Derek Price

Perhaps the problem is in your GCC installation or usage?
  


A gcc upgrade sure helps.  I installed gcc 3.4.2 binary from SunFreeWare.\
  


I brought up changes to the GNULIB stat module up on bug-gnulib and
found out that this problem has been encountered before.  GNULIB is
going to continue supporting the older gccs without the fix you found in
3.4.2, so I have updated the glob.c file to use struct_stat64 in place
of struct stat, and #defined struct_stat64 to struct stat64 or struct
stat as appropriate.  Does this work for you with whichever compiler you
choose to stick with?

Regards,

Derek



___
Bug-cvs mailing list
Bug-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-cvs


Re: [bug-gnulib] New GNULIB glob module?

2005-05-25 Thread Derek Price
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Paul Eggert wrote:

Derek Price [EMAIL PROTECTED] writes:

+# ifdef HAVE___POSIX_GETPWNAM_R
+ /* Solaris. */
+# define getpwnam_r(name, bufp, buf, len, res) \
+ __posix_getpwnam_r (name, bufp, buf, len, res)
+# endif


I don't see why this is needed. The Solaris include files already
contain the magic necessary to convert getpwnam_r to
__posix_getpwnam_r, right? Or is it because that depends on
_POSIX_PTHREAD_SEMANTICS? If so, why not define that, as follows? I
don't see why any gnulib-using application would want the nonstandard
Solaris versions of the *_r functions.

--- extensions.m4.~1.6.~ 2005-02-23 05:49:36 -0800
+++ extensions.m4 2005-05-24 12:35:48 -0700
@@ -21,6 +21,10 @@ AC_DEFUN([gl_USE_SYSTEM_EXTENSIONS], [
 [/* Enable extensions on Solaris. */
 #ifndef __EXTENSIONS__
 # undef __EXTENSIONS__
+#endif
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# undef _POSIX_PTHREAD_SEMANTICS
 #endif])
 AC_DEFINE([__EXTENSIONS__])
+ AC_DEFINE([_POSIX_PTHREAD_SEMANTICS])
 ])


I really have no idea.  Larry, can you tell us if defining
_POSIX_PTHREAD_SEMANTICS would work to get the POSIX version of
getpwnam_r on Solaris?

Regards,

Derek
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.0 (Cygwin)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFClKxWLD1OTBfyMaQRAot/AKDvKB48aoCE0kys6bB3zxx0KT06sACgijeV
z/hTtSVzW3MRjWbCzAZy7pg=
=4CER
-END PGP SIGNATURE-




___
Bug-cvs mailing list
Bug-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-cvs


Re: [bug-gnulib] New GNULIB glob module?

2005-05-25 Thread Larry Jones
Derek Price writes:
 
 Larry, can you tell us if defining
 _POSIX_PTHREAD_SEMANTICS would work to get the POSIX version of
 getpwnam_r on Solaris?

It looks like it.

-Larry Jones

I never get to do anything fun. -- Calvin


___
Bug-cvs mailing list
Bug-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-cvs


RE: Feature Branch Windows Build Broken - lib/canonicalize.c - ELOOP lstat

2005-05-25 Thread Conrad T. Pino
Hi Derek,

 From: Derek Price
 
 Actually, because of errors similar to the ones you've been seeing on
 Solaris, it sounds like GNULIB will be defining similar gl_stat and
 gl_lstat macros.  I will either make the canonicalize module use those
 and depend on the stat module or we can define both stat and gl_stat for
 the windows port.

The hard part is the stat token which is both a function name and a
structure name which the macro processor can't distinguish and both are
substituted which is the root of the problem we saw on Solaris.  It makes
the Windows function wnt_stat arguments look odd on casual inspection.
The preprocessor is a blunt instrument in a language supporting multiple
name speaces.

Using typedef struct stat struct_stat; before the #define stat ...
helps a lot with this issue.  I prefer this since functions and typedefs
occupy the same name space.

 Does GNULIB include the Windows platform in it's charter?
 
 Sometimes.  How are your arm wrestling skills?  :)

I was afraid of that sometimes part.  I've watched you get into the ring
and it's a pretty site only if you're into blood sports. :)

 If yes, what's your take on the resistance to Windows native API calls?
 
 Windows native API call resistance was pretty strong last time I came up
 against it, but GNULIB team members were willing to suggest compromises
 that at least compiled on Windows.

Sounds like pushing sand up a hill or herding cats.  I'll pass for now.

 Since our Windows support is client mode only do loops matter?
 
 Yes, to the extent that the Windows client will support a local
 repository.  It may be true that the loops are impossible on Windows
 since links are not processed in the same way.

We address this topic later in this message thread.

 Regards,

Ditto,

 Derek

Conrad



___
Bug-cvs mailing list
Bug-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-cvs


RE: Feature Branch Windows Build Broken - lib/canonicalize.c - ELOOP lstat

2005-05-25 Thread Conrad T. Pino
Hi Derek,

 From: Derek Price
 
 Are stat and lstat really equivalent on Windows?

Windows Visual C doesn't implement lstat in any fashion.

The wnt_lstat function in windows-NT/filesubr.c appears to call
lstat but that is a macro defined to stat in lib/system.h which
is included in cvs.h which is included by windows-NT/filesubr.c.

The point is easily proved by either of:

#undef lstat
or
#define lstat statxx

just before the wnt_lstat function definition.

The former produces a link error: unresolved external symbol _lstat
The latter produces a warning: lstat macro redefinition in...

 Index: lib/system.h
 ===
[snip]
 -#ifndef S_ISLNK
 +#if !defined(lstat)  !defined(S_ISLNK)
  # define lstat stat
  #endif
 
 I suspect this was only relevant on Windows anyhow and the entire block
 can be removed.

That is the macro Windows has previously relied upon for lstat.
We can drop it only if we do the same or similar somewhere else.

 Index: windows-NT/config.h.in.footer
 ===
[snip]
 -#define CVS_STAT wnt_stat
 -int wnt_stat ();
 -
 -#define CVS_LSTAT wnt_lstat
 -int wnt_lstat ();
 +int wnt_stat (const char *file, struct wnt_stat *sb);
 
 This may prove unnecessary.  See below.

I didn't see anything pertinent below.  What did I miss?

 +
 +/* Windows has no ELOOP value in errno.h */
 +#define ELOOP 1
 
 How about #define ELOOP EMLINK?  At least if this error ever comes up,
 sterror will then produce a somewhat meaningful error message on Windows.

I like it!!!

 Index: windows-NT/config.h.in.in
 ===
[snip]
 -/* Define if gettimeofday clobbers localtime's static buffer. */
 -#undef GETTIMEOFDAY_CLOBBERS_LOCALTIME_BUFFER
 
 Why are you removing these lines?

Yes, macro GETTIMEOFDAY_CLOBBERS_LOCALTIME_BUFFER is no longer used.

The mkconfig.pl script detects more than it reports.  I enable a full
check whenever working on Windows config.h and inputs.  This time it
reported this macro no longer appears in root config.h.in and a grep
of the source tree confirms it is unused.
---
We're missing part of your response regarding This may prove... from
above so I take it we're not ready to commit a patch just yet.

 Cheers,

Ditto,

 Derek

Conrad



___
Bug-cvs mailing list
Bug-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-cvs


RE: Feature Branch Solaris Build Broken - lib/glob.c errors

2005-05-25 Thread Conrad T. Pino
Hi Derek,

 From: Derek Price
 
 A gcc upgrade sure helps.  I installed gcc 3.4.2 binary from SunFreeWare.\
 
 I brought up changes to the GNULIB stat module up on bug-gnulib and
 found out that this problem has been encountered before.  GNULIB is
 going to continue supporting the older gccs without the fix you found in
 3.4.2, so I have updated the glob.c file to use struct_stat64 in place
 of struct stat, and #defined struct_stat64 to struct stat64 or struct
 stat as appropriate.  Does this work for you with whichever compiler you
 choose to stick with?

I'd like to suggest defining struct_name with a typedef instead of a
#define as the preprocessor is recursive and a struct stat macro value
will still be substituted by #define stat ... macro.

I loaded the gcc 2.95 compiler for the sole purpose of compiling CVS on
this platform since previously CVS Home didn't offer a binary for this
platform.  I loaded the gcc 3.4 compiler for the sole purpose of fixing
the CVS compile on this platform.  I assume both versions can coexist
with appropriate configuration.  I turn the questions around:

How can we use both versions to the CVS Project's advantage?
Which version should be canonical for next binary release?

 Regards,

Ditto,

 Derek

Conrad



___
Bug-cvs mailing list
Bug-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-cvs


Feature Branch Windows Build Broken - lib/glob.c WINDOWS32

2005-05-25 Thread Conrad T. Pino
Hi Derek,

The latest lib/glob.c introduced new macros not addressed
in the m4 stuff.  Of interest are WINDOWS32 and perhaps
__MSDOS__ as #define and #undef respectively.

Should I be expecting an m4 solution which means I edit
windows-NT/config.h.in.in or not which means I edit the
windows-NT/config.h.in.footer instead?

A grep for WINDOWS32 follows below.

Conrad

H:\Conrad\Projects\cvs-1.12grep -dn WINDOWS32 *.c
File lib\glob.c:
112 # if (defined POSIX || defined WINDOWS32)  !defined __GNU_LIBRARY__
134 #if (defined POSIX || defined WINDOWS32)  !defined __GNU_LIBRARY__
413 #if defined __MSDOS__ || defined WINDOWS32
420 #endif /* __MSDOS__ || WINDOWS32 */
457 #if defined __MSDOS__ || defined WINDOWS32
481 #if defined __MSDOS__ || defined WINDOWS32
527 #  ifdef WINDOWS32
592 #  endif /* WINDOWS32 */
607 # if !defined _AMIGA  !defined WINDOWS32
682 # endif /* Not Amiga  not WINDOWS32.  */
935 #if defined __MSDOS__ || defined WINDOWS32
946 #if defined __MSDOS__ || defined WINDOWS32



___
Bug-cvs mailing list
Bug-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-cvs


Re: [bug-gnulib] New GNULIB glob module?

2005-05-25 Thread Derek Price
Larry Jones wrote:

Derek Price writes:
  

Larry, can you tell us if defining
_POSIX_PTHREAD_SEMANTICS would work to get the POSIX version of
getpwnam_r on Solaris?



It looks like it.
  


I've committed Paul's patch to the CVS CVS tree, as well as removing the
associated glob.c changes, and I will install it in GNULIB if it passes
CVS nightly testing on Solaris.

Regards,

Derek



___
Bug-cvs mailing list
Bug-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-cvs


Re: Feature Branch Solaris Build Broken - lib/glob.c errors

2005-05-25 Thread Derek Price
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Conrad T. Pino wrote:

I loaded the gcc 2.95 compiler for the sole purpose of compiling CVS on
this platform since previously CVS Home didn't offer a binary for this
platform. I loaded the gcc 3.4 compiler for the sole purpose of fixing
the CVS compile on this platform. I assume both versions can coexist
with appropriate configuration. I turn the questions around:


Does what I just checked in work for you on Solaris?

How can we use both versions to the CVS Project's advantage?
Which version should be canonical for next binary release?


With luck, it doesn't matter now.

Regards,

Derek
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.0 (Cygwin)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFClNl3LD1OTBfyMaQRAuw0AKCNgFRpezLlLdiqkdB20fWAgTc+YwCeK08B
0w1T6Fqgvd+DX2ysEtKdNAQ=
=Zx0Q
-END PGP SIGNATURE-




___
Bug-cvs mailing list
Bug-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-cvs


Re: Feature Branch Windows Build Broken - lib/glob.c WINDOWS32

2005-05-25 Thread Derek Price
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Conrad T. Pino wrote:

Oops, I forgot the error message which follows.

Compiling...
glob.c
h:\conrad\projects\cvs-1.12\lib\glob.c(535) : warning C4013: 'sysconf'
undefined; assuming extern returning int
h:\conrad\projects\cvs-1.12\lib\glob.c(535) : error C2065:
'_SC_LOGIN_NAME_MAX' : undeclared identifier


I've checked in what I hope is a fix for this.

h:\conrad\projects\cvs-1.12\lib\glob.c(1171) : warning C4133: ':' :
incompatible types - from 'struct direct *' to 'struct dirent *'
h:\conrad\projects\cvs-1.12\lib\glob.c(1171) : warning C4133:
'initializing' : incompatible types - from 'struct dirent *' to
'struct direct *'


Is it too much to hope for that Windows has dirent.h and implements
the readdir() family of functions and defining HAVE_DIRENT_H would be
enough here?

Cheers,

Derek
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.0 (Cygwin)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFClN+OLD1OTBfyMaQRAi6LAJ0WECXd7eJETb52st5XbAcwTPsCyACg61oc
X0Mj+ydzrG/osYJ1DCtmIWo=
=2GBK
-END PGP SIGNATURE-




___
Bug-cvs mailing list
Bug-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-cvs


Re: Feature Branch Windows Build - lib/dup-safer.c dup

2005-05-25 Thread Derek Price
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Conrad T. Pino wrote:

Hi All,

The dup function call in lib/dup-safer.c has no
prototype included. Windows Visual C 6.0 does NOT
implement dup but does implement _dup as:

 int _dup( int handle );

I've added #define dup _dup to config.h chain
but Microsoft provides the prototype in io.h
which is NOT referenced in lib/dup-safer.c and
perhaps should be.


Are you willing to take this up on GNULIB?

I don't know the m4 stuff and can't provide the
complete solutions. Suggestions are welcome.


This won't matter since the configure stuff doesn't run on Windows
anyhow.  We just need to get the correct define, in this case probably
HAVE_IO_H, into config.h and only include it when it is present in
dup-safer.c.

The warning is below and it could be ignored since
the assumed and actual return types are the same.


Alternatively, you could just provide the prototype in
config.h.in.footer too.

Cheers,

Derek
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.0 (Cygwin)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFClOaWLD1OTBfyMaQRAgeeAKCW+h10H3ycXyKVp6x4c4zNASzlDACfZYuM
EKdxgEAkk+A4uJ95YOcxz8g=
=0WDE
-END PGP SIGNATURE-




___
Bug-cvs mailing list
Bug-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-cvs