Menu

#3335 Workaround for Cygwin timezone incompatibility

obsolete: 8.4.12
closed-duplicate
5
2005-12-21
2005-12-21
Anonymous
No

From: jmd@jmd.uklinux.net

Cygwin has an external variable called _timezone
instead of timezone, with a type of long instead of int.

To reproduce the problem, attempt to build tclsh from
source (tcl8.4.12) on Cygwin using gcc. My version of
Cygwin (according to uname -a):

CYGWIN_NT-5.1 frb3250bd1 1.5.18(0.132/4/2) 2005-07-02
20:30 i686 unknown unknown Cygwin

My version of gcc:

gcc (GCC) 3.4.4 (cygming special) (gdc 0.12, using dmd
0.125)

My configuration command was

./configure \
--prefix=$HOME \
--bindir=$HOME/bin/i386/cygwin \
--sbindir=$HOME/bin/i386/cygwin \
--libexecdir=$HOME/lib/i386/cygwin \
--libdir=$HOME/lib/i386/cygwin \
--program-suffix=.exe

but I believe the problem is independent of the
specific configuration.

gcc then fails to compile generic/tclClock.c, giving
these error messages (slightly abbreviated):

../generic/tclClock.c: In function `FormatClock':
../generic/tclClock.c:314: warning: assignment makes
integer from pointer without a cast
../generic/tclClock.c:315: error: invalid lvalue in
assignment
../generic/tclClock.c:360: error: invalid lvalue in
assignment

This is a workaround which just defines timezone as
_timezone and introduces a TIMEZONE_t type, which is
long for Cygwin and int everywhere else.

Discussion

  • Nobody/Anonymous

    Patch for Tcl 8.4.12 source

     
  • Donal K. Fellows

    • assigned_to: nobody --> kennykb
    • status: open --> closed-duplicate
     
MongoDB Logo MongoDB