diff --git a/winsup/doc/ChangeLog b/winsup/doc/ChangeLog index ad31920cb..98c5236aa 100644 --- a/winsup/doc/ChangeLog +++ b/winsup/doc/ChangeLog @@ -1,3 +1,11 @@ +2012-03-01 Yaakov Selkowitz + + * faq-programming.xml (faq.programming.make-execvp): Remove obsolete + information about Tcl/Tk. + (faq.programming.dll-relocatable): Ditto. + * faq-using.xml (faq.using.tcl-tk): Rewrite to reflect switch to + X11 Tcl/Tk. + 2012-02-27 Yaakov Selkowitz * faq-using.xml (faq.using.bloda): Fix missing closing parenthesis. diff --git a/winsup/doc/faq-programming.xml b/winsup/doc/faq-programming.xml index 331454735..acb92b99b 100644 --- a/winsup/doc/faq-programming.xml +++ b/winsup/doc/faq-programming.xml @@ -93,18 +93,6 @@ C:/cygwin/bin /bin ntfs binary,cygexec 0 0 C:/cygwin/bin /usr/bin ntfs binary,cygexec 0 0 -Note that if you have Tcl/Tk installed, you must additionally -exclude tclsh84 and wish84, which -are linked to the Cygwin DLL but are not actually Cygwin programs: - - - -C:/cygwin/bin/tclsh84.exe /bin/tclsh84.exe ntfs binary,notexec 0 0 -C:/cygwin/bin/tclsh84.exe /usr/bin/tclsh84.exe ntfs binary,notexec 0 0 -C:/cygwin/bin/wish84.exe /bin/wish84.exe ntfs binary,notexec 0 0 -C:/cygwin/bin/wish84.exe /usr/bin/wish84.exe ntfs binary,notexec 0 0 - - If you have added other non-Cygwin programs to a path you want to mount cygexec, you can find them with a script like this: @@ -574,8 +562,6 @@ $(LD) EXPFILE --dll -o DLLNAME OBJS LIBS -e ENTRY LIBS is the list of libraries you want to link the DLL against. For example, you may or may not want -lcygwin. You may want -lkernel32. -Tcl links against -lcygwin -ladvapi32 -luser32 -lgdi32 -lcomdlg32 --lkernel32. DEFFILE is the name of your definitions file. A simple DEFFILE would consist of ``EXPORTS'' followed by a list of all symbols which should @@ -614,9 +600,8 @@ int entry (HINSTANT hinst, DWORD reason, LPVOID reserved) } -You may put an optional `--subsystem windows' on the $(LD) lines. The -Tcl build does this, but I admit that I no longer remember whether -this is important. Note that if you specify a --subsytem <x> flag to ld, +You may put an optional `--subsystem windows' on the $(LD) lines. +Note that if you specify a --subsytem <x> flag to ld, the -e entry must come after the subsystem flag, since the subsystem flag sets a different default entry point. diff --git a/winsup/doc/faq-using.xml b/winsup/doc/faq-using.xml index d825a52fe..1675594ef 100644 --- a/winsup/doc/faq-using.xml +++ b/winsup/doc/faq-using.xml @@ -1060,16 +1060,27 @@ usually all set and you can start the sshd service via -Why doesn't Cygwin tcl/tk understand Cygwin paths? +Why do my Tk programs not work anymore? -The versions of Tcl/Tk distributed with Cygwin (e.g. cygtclsh80.exe, -cygwish80.exe) are not actually "Cygwin versions" of those tools. -They are built as native libraries, which means they do not understand -Cygwin mounts or symbolic links. - -See the entry "How do I convert between Windows and UNIX paths?" -elsewhere in this FAQ. +Previous versions of Tcl/Tk distributed with Cygwin (e.g. tclsh84.exe, +wish84.exe) were not actually "Cygwin versions" of those tools. +They were built as native libraries, which means they did not understand +Cygwin mounts or symbolic links. This lead to all sorts of problems interacting +with true Cygwin programs. + +As of February 2012, this was replaced with a version of Tcl/Tk which +uses Cygwin's POSIX APIs and X11 for GUI functionality. If you get a message +such as this when trying to start a Tk app: + + + Application initialization failed: couldn't connect to display "" + + +Then you need to start an X server, or if one is already running, set the +DISPLAY variable to the proper value. The Cygwin distribution +includes an X server; please see the Cygwin/X User Guide +for installation and startup instructions.