Help compiling TCL 8.0.3 with GCC-2.95.2 Upgrade

Allan S Iverson allaniverson@sprynet.com
Wed Nov 17 20:04:00 GMT 1999


I am trying to compile TCL 8.0.4 using Cygwin 
b20 with GCC-2.95.2 downloaded from www.xraylith.wisc.edu/~khan/software/gnu-win32/ .
 
I also downloaded a patch Tcl 8.0.4 diffs from 
Mumit Khan at the same site and applied it.  I also had earlier 
downloaded and installed Munit's binary build for Tcl/Tk 8.0.4, Tix, and BLT 
2.4g for Cygwin b20 from the same web page. However I now need a complete 
source tree for another project that depends on being able to access the 
tclusing more then just tclConfig.sh.   I then attempted to build 
tcl8.0.4 from the patched sources. Note: Complied with -U_WIN32 added to 
Makefile after running configure I think this is necessary otherwise 
generic/tclPort.h includes  "../win/tclWinPort.h" instead of 
"../unix/tclUnixPort.h"
 
I received the following warnings and 
errors. The library appeared to build but is unusable because of the many 
undefined references. 
 
Been working on this with only a couple hours 
sleep in the last two days and could use some suggestions.
 
Hope somebody can help.  TIA Allan 
Iverson
 
  ./../generic/tclCmdIL.c: In 
function `Tcl_LsearchObjCmd': ./../generic/tclCmdIL.c:2379: warning: passing 
arg 3 of `strncasecmp' 
                                                       
as unsigned due to prototype  // Probably OK
 
./../generic/tclEnv.c: In function 
`TclCygwin32Putenv': ./../generic/tclEnv.c:779: warning: implicit declaration 
of function 
                                                 
`SetEnvironmentVariable'
 
 // This is really a problem. 
`SetEnvironmentVariable' defined in  // Functions.h??  If I 
expressly include Functions.h all hell breaks  // loose because of 
-U_WIN32
 
./../generic/tclEnv.c:799: warning: implicit 
declaration of function 
                                                 
`cygwin32_posix_to_win32_path_list_buf_size'
 
 // This is really a problem. 
'cygwin32_posix_to_win32_path_list_buf_size'  // defined in cygwin.h 
??/ I wouldn't even try to expressly include  // cygwin.h after seeing 
the problems above.
 
./../generic/tclEnv.c:800: warning: passing arg 
1 of `alloca' as 
                                                 
unsigned due to prototype
 
 // Probably OK
 
./../generic/tclEnv.c:801: warning: implicit 
declaration of function 
                                                 
`cygwin32_posix_to_win32_path_list'
 
 // This is really a problem. 
'cygwin32_posix_to_win32_path_list' defined  // in cygwin.h 
??
 
./../generic/tclEnv.c: At top 
level: ./../generic/tclEnv.c:740: warning: `TclCygwin32Putenv' defined but 
not used
 
 // This causes link problems later 
on
 
./../generic/tclIOSock.c: In function 
`TclSockGetPort': ./../generic/tclIOSock.c:48: warning: passing arg 1 of 
`__ntohs' 
                                                    
with different width due to prototype
 
 // Why does Cygwin define __ntohs 
differently then POSIX
 
./../generic/tclProc.c: In function 
`TclCreateProc': ./../generic/tclProc.c:192: warning: `localPtr' might be 
used 
                                                   
uninitialized in this function
 
 // This sound like a disaster waiting to 
happen
 
./tclUnixChan.c: In function 
`TcpGetOptionProc': ./tclUnixChan.c:1679: warning: passing arg 1 of `__ntohs' 
                                             
with different width due to prototype ./tclUnixChan.c:1722: warning: passing 
arg 1 of `__ntohs' 
                                             
with different width due to prototype  // See above
 
./tclUnixChan.c: In function 
`CreateSocketAddress': ./tclUnixChan.c:2011: warning: passing arg 1 of 
`__ntohs' 
                                             
with different width due to prototype  // See above
 
./tclUnixChan.c: In function 
`TcpAccept': ./tclUnixChan.c:2258: warning: passing arg 1 of `__ntohs' 
                                             
with different width due to prototype  // See above
 
./tclUnixChan.c: At top 
level: ./tclUnixChan.c:760: warning: `TtyGetSpeed' defined but not 
used ./tclUnixChan.c:805: warning: `TtyGetBaud' defined but not 
used
 
 // Both probably ok but as I didn't get 
very far in the link  // step who knows
 
./tclUnixFCmd.c: In function 
`TclpCopyFile': ./tclUnixFCmd.c:309: warning: implicit declaration of 
function `mknod'
 
 // This used to be a sub under Windows NT 
- Now I can't even find where  // is it defined  Most 
Importantly  what can I do about it
 
./tclUnixFCmd.c: In function 
`GetGroupAttribute': ./tclUnixFCmd.c:943: warning: passing arg 1 of 
`getgrgid' 
                                             
with different width due to prototype
 // I would think these might get 
through OK
 
./tclUnixFCmd.c: In function 
`GetOwnerAttribute': ./tclUnixFCmd.c:987: warning: passing arg 1 of 
`getpwuid' 
                                            
with different width due to prototype
 // I would think these might get 
through OK
 
./tclUnixFCmd.c: In function 
`GetPermissionsAttribute': ./tclUnixFCmd.c:1031: warning: long unsigned int 
format, mode_t arg (arg 3)
 // I would think these my get through 
OK
 
./tclUnixFCmd.c: In function 
`SetGroupAttribute': ./tclUnixFCmd.c:1083: warning: passing arg 2 of `chown' 
                                              
with different width due to prototype ./tclUnixFCmd.c:1083: warning: negative 
integer 
                                               
implicitly converted to unsigned type    // I though -1 was OK 
to use as the second argument in chown
 
./tclUnixFCmd.c:1083: warning: passing arg 3 of 
`chown' 
                                              
with different width due to prototype
 
 // should be OK
 
./tclUnixFCmd.c: In function 
`SetOwnerAttribute': ./tclUnixFCmd.c:1138: warning: passing arg 2 of `chown' 
with 
                                              
different width due to prototype ./tclUnixFCmd.c:1138: warning: passing arg 3 
of `chown' 
                                               
with different width due to prototype ./tclUnixFCmd.c:1138: warning: negative 
integer implicitly converted to unsigned type
 // Same story different 
location
 
./tclUnixPipe.c: In function 
`TclpCreateProcess': ./tclUnixPipe.c:358: warning: implicit declaration of 
function `vfork'
 
i586-cygwin32/lib/libcygwin.a(libccrt0.o)(.data+0x4):libccrt0.cc: 
multiple 
                 
definition of 
                                                                  
`environ' i586-cygwin32/lib/libc.a(environ.o)(.data+0x4):environ.c: first 
defined here
 
i586-cygwin32/lib/libcygwin.a(libccrt0.o)(.data+0x0):libccrt0.cc: 
multiple 
                        
definition of 
                                                                  
`_impure_ptr' i586-cygwin32/lib/libc.a(impure.o)(.data+0x2ec):impure.c: first 
defined here
 
 // I Haven't a clue where these multiple 
definitions are coming from  // I'm worried it might be because of the 
complier upgrade I did at the  // startof all this
 
/usr/tcl8.0.4/unix/libtcl8.0.a(tclEnv.o): In 
function `TclCygwin32Putenv': /usr/tcl8.0.4/unix/./../generic/tclEnv.c:779: 
undefined reference to 
`SetEnvironmentVariable' /usr/tcl8.0.4/unix/./../generic/tclEnv.c:783: 
undefined reference to 
`SetEnvironmentVariable' /usr/tcl8.0.4/unix/./../generic/tclEnv.c:790: 
undefined reference to 
`SetEnvironmentVariable' /usr/tcl8.0.4/unix/./../generic/tclEnv.c:804: 
undefined reference to `SetEnvironmentVariable'
 
/usr/tcl8.0.4/unix/libtcl8.0.a(tclUnixFCmd.o): 
In function `TclpCopyFile': /usr/tcl8.0.4/unix/./tclUnixFCmd.c:315: undefined 
reference to `mkfifo'  // What lib is `mkfifo'  in obviously if got 
past the complier without an   // implicit declaration so 
something must be missing from my lib path
 
i586-cygwin32/lib/libc.a(execvp.o): In function 
`execvp': /home/noer/src/b20/comp-tools/devo/newlib/libc/posix/execvp.c:69: 
undefined reference to `posix_path_list_p'
 
collect2: ld returned 1 exit status make: *** 
[tclsh] Error 1



More information about the Cygwin mailing list