Description: |
From: [email protected]
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.
|