Testing the tcl8.4a4 rc1 tarballs i stumbled across the
following bug:
after doing:
mkdir build
cd build
../win/configure
make test
gcc -c -O2 -fomit-frame-pointer -Wall -Wconversion
-I"../win/../generic" -DTCL_TOMMATH -DMP_PREC=4
-I"../win/../libtommath" -I"../win" -DPACKAGE_NAME=\"\"
-DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\"
-DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\"
-DHAVE_NO_SEH=1 -DEXCEPTION_DISPOSITION=int
-DHAVE_WINNT_IGNORE_VOID=1 -DHAVE_ALLOCA_GCC_INLINE=1
-DHAVE_CAST_TO_UNION=1 -DTCL_CFGVAL_ENCODING=\"cp1252\"
-DTCL_CFG_OPTIMIZED=1 -DTCL_CFG_DEBUG=1
"../win/tclWinTest.c" -o tclWinTest.o
../win/tclWinTest.c: In function `TclplatformtestInit':
../win/tclWinTest.c:71: warning: passing arg 3 of
`Tcl_CreateCommand' from incompatible pointer type
../win/tclWinTest.c: In function `TesteventloopCmd':
../win/tclWinTest.c:148: warning: passing arg 1 of
`PostQuitMessage' as signed due to prototype
../win/tclWinTest.c: In function `TestplatformChmod':
../win/tclWinTest.c:505: warning: missing braces around
initializer
../win/tclWinTest.c:505: warning: (near initialization
for `userSidAuthority.Value')
../win/tclWinTest.c:657: warning: passing arg 3 of
pointer to function from incompatible pointer type
../win/tclWinTest.c:667: warning: passing arg 1 of
pointer to function with different width due to prototype
../win/tclWinTest.c:668: warning: passing arg 3 of
pointer to function with different width due to prototype
../win/tclWinTest.c:673: warning: passing arg 1 of
pointer to function from incompatible pointer type
../win/tclWinTest.c:703: warning: dereferencing
type-punned pointer will break strict-aliasing rules
../win/tclWinTest.c:710: error: `INHERITED_ACE'
undeclared (first use in this function)
../win/tclWinTest.c:710: error: (Each undeclared
identifier is reported only once
../win/tclWinTest.c:710: error: for each function it
appears in.)
../win/tclWinTest.c:535: warning: unused variable
`userSidLen'
../win/tclWinTest.c:537: warning: unused variable
`userDomainLen'
../win/tclWinTest.c: In function `TestchmodCmd':
../win/tclWinTest.c:803: warning: passing arg 2 of
`TestplatformChmod' as signed due to prototype
make: *** [tclWinTest.o] Error 1
System information:
Running under msys/mingw (fresh install)
$ gcc --version
gcc.exe (GCC) 3.4.2 (mingw-special)
Windows XP SP 2
Logged In: YES
user_id=202636
We need:
// MinGW 3.4.2 does not define this.
#ifndef INHERITED_ACE
#define INHERITED_ACE (0x10)
#endif // INHERITED_ACE
and the code needs some general cleaning up.
Logged In: YES
user_id=302287
Adding pats #define to tclwintest.c enables make test again.
Logged In: YES
user_id=202636
Added code to handle the missing define and cleaned up some
gcc warnings. Committed to core-8-4-branch and HEAD.
Logged In: YES
user_id=80530
thanks for the fixes.
A few suggestions:
Can the conditional
#define of INHERITED_ACE
be moved to tclWinPort.h
instead? Seems like that's
where issues of porting
among different compilers
belong.
On the HEAD, can we drop
the #define USE_COMPAT_CONST
and any use of CONST84 ?
For a file distributed as
part of the Tcl 8.5 codebase,
I don't see the point of continuing
to support source compatibility
with Tcl 8.3 header files.
Logged In: YES
user_id=79902
FWIW, I'm working to squelch VOID from all non-public files
(i.e. I'm leaving tcl.h and tcl.decls alone) and can tackle
CONST at the same time. We've certainly required full ANSI
support throughout 8.4 anyway, so we might as well make use
of it...
Logged In: YES
user_id=80530
A global CONST -> const is
something to consider; let's
chat about it, but let's
keep that separate from this
report.