This is the mail archive of the insight@sources.redhat.com mailing list for the Insight project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: [PATCH] libgui/tcl/tix fixes for recent Cygwin


Gracias!

cgf

On Tue, Apr 10, 2001 at 11:38:06AM -0700, Syd Polk wrote:
>Approved. These look good, and will enable the eventual upgrade to a newer 
>version of tcl to go smoother.
>
>At 10:15 PM 4/6/01 -0400, Christopher Faylor wrote:
>>The changes below are meant to accomodate recent Cygwin compiler
>>changes.  Cygwin now does not default to defining WIN32 defines unless
>>used with the -mwin32 option.  This patch adds that where appropriate.
>>It also removes obsolete Cygwin usages and renames CYGWIN32 to CYGWIN.
>>
>>Basically, this patch attempts to bring these modules into the "modern
>>age" of Cygwin.
>>
>>Ok to check in?
>>
>>cgf
>>
>>
>>libgui/ChangeLog:
>>2001-04-06  Christopher Faylor <cgf@redhat.com>
>>
>>         * configure.in: Add test for -mwin32 requirement switch when 
>> building
>>         on cygwin.
>>         * configure: Regenerate.
>>
>>tcl/ChangeLog:
>>2001-04-06  Christopher Faylor <cgf@redhat.com>
>>
>>         Throughout change __CYGWIN32__ to __CYGWIN__.
>>         * cygwin/configure.in: When targeting cygwin, detect if C compiler
>>         supports -mno-win32 flag and use it if so.
>>         * cygwin/Makefile.in (EXTRA_CFLAGS): New variable.  Holds results of
>>         -mno-win32 test.
>>         (COMPILE): Add EXTRA_CFLAGS variable to options.
>>         * generic/tclEnv.c: Throughout, only compile special Cygwin code if
>>         building under Cygwin and want native windows understanding.
>>         * win/tclWin32Dll.c (DllMain): #ifdef out CYGWIN impure_ptr stuff.
>>         * win/tclWinPipe.c (Tcl_WaitPid): Eliminate old Cygwin consideration
>>         about exit values.
>>
>>tix/ChangeLog:
>>2001-04-06  Christopher Faylor <cgf@redhat.com>
>>
>>         * configure.in: Add test for -mwin32 requirement switch when building
>>         on cygwin.
>>         * configure: Regenerate.
>>         * win/Makefile.in (EXTRA_CFLAGS): Add a place to potentially put
>>         -mwin32 flag.
>>
>>Index: libgui/configure.in
>>===================================================================
>>RCS file: /cvs/uberbaum/libgui/configure.in,v
>>retrieving revision 1.2
>>diff -u -p -r1.2 configure.in
>>--- configure.in        2000/06/27 21:53:32     1.2
>>+++ configure.in        2001/04/07 00:22:26
>>@@ -46,7 +46,6 @@ if test "$GCC" = "yes"; then
>>  else
>>     LIBGUI_CFLAGS=
>>  fi
>>-AC_SUBST(LIBGUI_CFLAGS)
>>
>>  AC_CACHE_CHECK([for cygwin32], ide_cv_os_cygwin32,
>>  [AC_EGREP_CPP(lose, [
>>@@ -102,10 +101,21 @@ CYG_AC_LOAD_ITCLCONFIG
>>  dnl what is the path to itclsh?
>>  AC_CANONICAL_HOST
>>  case ${host} in
>>-*cygwin*)      ITCL_DIR=itcl/itcl/win  ;;
>>+*cygwin*)
>>+       ITCL_DIR=itcl/itcl/win
>>+        touch ac$$.c
>>+        if ${CC} -c -mwin32 ac$$.c >/dev/null 2>&1; then
>>+            case "$LIBGUI_CFLAGS" in
>>+                *-mwin32*) ;;
>>+                *) LIBGUI_CFLAGS="-mwin32 $LIBGUI_CFLAGS" ;;
>>+            esac
>>+        fi
>>+        rm -f ac$$.o ac$$.c
>>+       ;;
>>  *)             ITCL_DIR=itcl/itcl/unix ;;
>>  esac
>>
>>+AC_SUBST(LIBGUI_CFLAGS)
>>  AC_SUBST(TCL_DEFS)
>>  AC_SUBST(TK_DEFS)
>>  AC_SUBST(TCLHDIR)
>>Index: tcl/ChangeLog
>>===================================================================
>>RCS file: /cvs/uberbaum/tcl/ChangeLog,v
>>retrieving revision 1.11
>>diff -u -p -r1.11 ChangeLog
>>--- ChangeLog   2000/12/14 00:45:22     1.11
>>+++ ChangeLog   2001/04/07 00:22:40
>>@@ -1,3 +1,13 @@
>>+Wed Apr  4 22:06:13 2001  Christopher Faylor <cgf@cygnus.com>
>>+
>>+       * cygwin/configure.in: When targeting cygwin, detect if C compiler
>>+       supports -mno-win32 flag and use it if so.
>>+       * cygwin/Makefile.in (EXTRA_CFLAGS): New variable.  Holds results of
>>+       -mno-win32 test.
>>+       (COMPILE): Add EXTRA_CFLAGS variable to options.
>>+       * generic/tclEnv.c: Only compile special Cygwin code if building under
>>+       Cygwin and want native windows understanding.
>>+
>>  Sat Jun 10 22:43:00 2000  Christopher Faylor <cgf@cygnus.com>
>>
>>         * win/tclWinFile.c (TclMatchFiles): Revert Mon Jun 5 18:48:32 2000
>>Index: tcl/cygwin/Makefile.in
>>===================================================================
>>RCS file: /cvs/uberbaum/tcl/cygwin/Makefile.in,v
>>retrieving revision 1.1.1.2
>>diff -u -p -r1.1.1.2 Makefile.in
>>--- Makefile.in 1999/11/17 02:20:44     1.1.1.2
>>+++ Makefile.in 2001/04/07 00:22:40
>>@@ -112,7 +112,8 @@ tclTestObj.o tclTimer.o tclUtil.o tclVar
>>  tclUnixChan.o tclUnixEvent.o tclUnixFCmd.o tclUnixFile.o tclUnixNotfy.o \
>>  tclUnixPipe.o tclUnixSock.o tclUnixTest.o tclUnixTime.o tclUnixInit.o
>>  CFLAGS = @CFLAGS@
>>-COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) 
>>$(AM_CFLAGS) $(CFLAGS)
>>+EXTRA_CFLAGS = @EXTRA_CFLAGS@
>>+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) 
>>$(AM_CFLAGS) $(CFLAGS) $(EXTRA_CFLAGS)
>>  CCLD = $(CC)
>>  LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
>>  DIST_COMMON =  Makefile.am Makefile.in aclocal.m4 configure configure.in
>>Index: tcl/cygwin/configure.in
>>===================================================================
>>RCS file: /cvs/uberbaum/tcl/cygwin/configure.in,v
>>retrieving revision 1.1.1.3
>>diff -u -p -r1.1.1.3 configure.in
>>--- configure.in        2000/01/18 00:05:13     1.1.1.3
>>+++ configure.in        2001/04/07 00:22:40
>>@@ -47,8 +47,23 @@ fi
>>  ])
>>
>>  LIB_AC_PROG_CC
>>+
>>+case "${target}" in
>>+*-*-cygwin*)
>>+       touch ac$$.c
>>+       if ${CC} -c -mno-win32 ac$$.c >/dev/null 2>&1; then
>>+           case "$EXTRA_CFLAGS" in
>>+               *-mno-win32*) ;;
>>+               *) EXTRA_CFLAGS="-mno-win32 $EXTRA_CFLAGS" ;;
>>+           esac
>>+       fi
>>+       rm -f ac$$.o ac$$.c
>>+       ;;
>>+esac
>>+
>>  AC_CHECK_TOOL(AR, ar, ar)
>>  AC_SUBST(AR)
>>+AC_SUBST(EXTRA_CFLAGS)
>>  AC_PROG_RANLIB
>>  AC_PROG_INSTALL
>>
>>Index: tcl/generic/tclAlloc.c
>>===================================================================
>>RCS file: /cvs/uberbaum/tcl/generic/tclAlloc.c,v
>>retrieving revision 1.1.1.1
>>diff -u -p -r1.1.1.1 tclAlloc.c
>>--- tclAlloc.c  1999/11/09 01:28:43     1.1.1.1
>>+++ tclAlloc.c  2001/04/07 00:22:40
>>@@ -26,7 +26,7 @@
>>  #   define RCHECK
>>  #endif
>>
>>-#ifndef __CYGWIN32__
>>+#ifndef __CYGWIN__
>>  typedef unsigned long caddr_t;
>>  #endif
>>
>>Index: tcl/generic/tclEnv.c
>>===================================================================
>>RCS file: /cvs/uberbaum/tcl/generic/tclEnv.c,v
>>retrieving revision 1.1.1.2
>>diff -u -p -r1.1.1.2 tclEnv.c
>>--- tclEnv.c    2000/02/01 03:15:26     1.1.1.2
>>+++ tclEnv.c    2001/04/07 00:22:40
>>@@ -19,9 +19,9 @@
>>  #include "tclPort.h"
>>
>>  /* CYGNUS LOCAL */
>>-#ifdef __CYGWIN32__
>>+#if defined(__CYGWIN__) && defined(__WIN32__)
>>
>>-/* On cygwin32, the environment is imported from the cygwin32 DLL.  */
>>+/* Under cygwin, the environment is imported from the cygwin DLL.  */
>>
>>  extern char ***_imp____cygwin_environ;
>>
>>@@ -83,7 +83,7 @@ void                  TclSetEnv _ANSI_ARGS_((CONST char
>>  void                   TclUnsetEnv _ANSI_ARGS_((CONST char *name));
>>
>>  /* CYGNUS LOCAL */
>>-#ifdef __CYGWIN32__
>>+#if defined (__CYGWIN__) && defined(__WIN32__)
>>  static void            TclCygwin32Putenv _ANSI_ARGS_((CONST char *string));
>>  #endif
>>
>>@@ -745,12 +745,12 @@ TclFinalizeEnvironment()
>>  }
>>
>>  /* CYGNUS LOCAL */
>>-#ifdef __CYGWIN32__
>>+#if defined(__CYGWIN__) && defined(__WIN32__)
>>
>>  #include "windows.h"
>>
>>-/* When using cygwin32, when an environment variable changes, we need
>>-   to synch with both the cygwin32 environment (in case the
>>+/* When using cygwin, when an environment variable changes, we need
>>+   to synch with both the cygwin environment (in case the
>>     application C code calls fork) and the Windows environment (in case
>>     the application TCL code calls exec, which calls the Windows
>>     CreateProcess function).  */
>>@@ -777,7 +777,7 @@ TclCygwin32Putenv(str)
>>    if (*value == '\0')
>>      value = NULL;
>>
>>-  /* Set the cygwin32 environment variable.  */
>>+  /* Set the cygwin environment variable.  */
>>  #undef putenv
>>    if (value == NULL)
>>      unsetenv (name);
>>@@ -816,14 +816,14 @@ TclCygwin32Putenv(str)
>>         {
>>           int size;
>>
>>-         size = cygwin32_posix_to_win32_path_list_buf_size (value);
>>+         size = cygwin_posix_to_win32_path_list_buf_size (value);
>>           buf = (char *) alloca (size + 1);
>>-         cygwin32_posix_to_win32_path_list (value, buf);
>>+         cygwin_posix_to_win32_path_list (value, buf);
>>         }
>>
>>        SetEnvironmentVariable (name, buf);
>>      }
>>  }
>>
>>-#endif /* __CYGWIN32__ */
>>+#endif /* __CYGWIN__ */
>>  /* END CYGNUS LOCAL */
>>Index: tcl/win/tclWin32Dll.c
>>===================================================================
>>RCS file: /cvs/uberbaum/tcl/win/tclWin32Dll.c,v
>>retrieving revision 1.1.1.2
>>diff -u -p -r1.1.1.2 tclWin32Dll.c
>>--- tclWin32Dll.c       2000/02/01 03:15:29     1.1.1.2
>>+++ tclWin32Dll.c       2001/04/07 00:22:40
>>@@ -58,8 +58,8 @@ BOOL APIENTRY         DllMain _ANSI_ARGS_((HINS
>>  #ifndef STATIC_BUILD
>>
>>  /* CYGNUS LOCAL */
>>-#ifdef __CYGWIN32__
>>-/* cygwin32 requires an impure pointer variable, which must be
>>+#ifdef __CYGWIN__0
>>+/* CYGWIN requires an impure pointer variable, which must be
>>     explicitly initialized when the DLL starts up.  */
>>  struct _reent *_impure_ptr;
>>  extern struct _reent *_imp__reent_data;
>>@@ -119,8 +119,8 @@ DllMain(hInst, reason, reserved)
>>      OSVERSIONINFO os;
>>
>>      /* CYGNUS LOCAL */
>>-#ifdef __CYGWIN32__
>>-    /* cygwin32 requires the impure data pointer to be initialized
>>+#ifdef __CYGWIN__0
>>+    /* Cygwin requires the impure data pointer to be initialized
>>         when the DLL starts up.  */
>>      _impure_ptr = _imp__reent_data;
>>  #endif
>>Index: tcl/win/tclWinFile.c
>>===================================================================
>>RCS file: /cvs/uberbaum/tcl/win/tclWinFile.c,v
>>retrieving revision 1.3
>>diff -u -p -r1.3 tclWinFile.c
>>--- tclWinFile.c        2000/06/11 02:45:14     1.3
>>+++ tclWinFile.c        2001/04/07 00:22:41
>>@@ -16,7 +16,7 @@
>>
>>  #include "tclWinInt.h"
>>  #include <sys/stat.h>
>>-#ifndef __CYGWIN32__
>>+#ifndef __WIN32__
>>  #include <shlobj.h>
>>  #endif
>>
>>@@ -363,9 +363,9 @@ TclChdir(interp, dirName)
>>         ckfree(currentDir);
>>         currentDir = NULL;
>>      }
>>-    /* CYGNUS LOCAL: On cygwin32, we must use chdir.  Otherwise, the
>>-       cygwin32 notion of the current directory will get messed up.  */
>>-#ifdef __CYGWIN32__
>>+    /* CYGNUS LOCAL: On cygwin, we must use chdir.  Otherwise, the
>>+       cygwin notion of the current directory will get messed up.  */
>>+#ifdef __CYGWIN__
>>      if (chdir(dirName) < 0) {
>>  #else
>>      if (!SetCurrentDirectory(dirName)) {
>>@@ -567,7 +567,7 @@ TclpStat(path, buf)
>>
>>      result = stat(path, buf);
>>
>>-#if ! defined (_MSC_VER) && ! defined (__CYGWIN32__)
>>+#if ! defined (_MSC_VER) && ! defined (__CYGWIN__)
>>
>>      /*
>>       * Borland's stat doesn't take into account localtime.
>>Index: tcl/win/tclWinPipe.c
>>===================================================================
>>RCS file: /cvs/uberbaum/tcl/win/tclWinPipe.c,v
>>retrieving revision 1.1.1.1
>>diff -u -p -r1.1.1.1 tclWinPipe.c
>>--- tclWinPipe.c        1999/11/09 01:28:44     1.1.1.1
>>+++ tclWinPipe.c        2001/04/07 00:22:41
>>@@ -15,7 +15,7 @@
>>  #include "tclWinInt.h"
>>
>>  /* CYGNUS LOCAL */
>>-#ifndef __CYGWIN32__
>>+#ifndef __CYGWIN__
>>  #include <dos.h>
>>  #endif
>>  /* END CYGNUS LOCAL */
>>@@ -2639,8 +2639,8 @@ Tcl_WaitPid(pid, statPtr, options)
>>         }
>>      } else if (ret != WAIT_FAILED) {
>>         GetExitCodeProcess(infoPtr->hProcess, (DWORD*)statPtr);
>>-#ifdef __CYGWIN32__
>>-       /* A cygwin32 program that exits because of a signal will set
>>+#ifdef __OLD_CYGWIN__
>>+       /* A cygwin program that exits because of a signal will set
>>             the exit status to 0x10000 | (sig << 8).  Fix that back
>>             into a standard Unix wait status.  */
>>         if ((*statPtr & 0x10000) != 0
>>Index: tcl/win/tclWinPort.h
>>===================================================================
>>RCS file: /cvs/uberbaum/tcl/win/tclWinPort.h,v
>>retrieving revision 1.1.1.1
>>diff -u -p -r1.1.1.1 tclWinPort.h
>>--- tclWinPort.h        1999/11/09 01:28:44     1.1.1.1
>>+++ tclWinPort.h        2001/04/07 00:22:41
>>@@ -66,10 +66,10 @@
>>   * use by tclAlloc.c.
>>   */
>>
>>-/* On cygwin32, we just use the supplied malloc and free, rather than
>>+/* On cygwin, we just use the supplied malloc and free, rather than
>>     using tclAlloc.c.  The cygwin32 malloc is derived from the same
>>     sources as tclAlloc.c, anyhow.  */
>>-#ifdef __CYGWIN32__
>>+#ifdef __CYGWIN__
>>  #define TclpAlloc(size)                malloc(size)
>>  #define TclpFree(ptr)          free(ptr)
>>  #define TclpRealloc(ptr, size) realloc(ptr, size)
>>Index: tix/win/Makefile.in
>>===================================================================
>>RCS file: /cvs/uberbaum/tix/win/Makefile.in,v
>>retrieving revision 1.2
>>diff -u -p -r1.2 Makefile.in
>>--- Makefile.in 2000/06/08 03:26:03     1.2
>>+++ Makefile.in 2001/04/07 00:22:41
>>@@ -14,6 +14,8 @@ host_alias=@host_alias@
>>
>>  CC = @CC@
>>  CFLAGS = @CFLAGS@
>>+EXTRA_CFLAGS = @EXTRA_CFLAGS@
>>+TIX_CFLAGS = $(CFLAGS) $(EXTRA_CFLAGS)
>>  NM = @NM@
>>  AS = @AS@
>>  LD = @LD@
>>@@ -387,10 +389,10 @@ endif
>>  #
>>
>>  $(TMPDIR)/testMain.$(OBJEXT): $(ROOT)/win/tixWinMain.c
>>-       $(CC) -c $(TK_INCLUDES) -DSTATIC_BUILD -DTK_TEST $(CFLAGS) -o $@ $?
>>+       $(CC) -c $(TK_INCLUDES) -DSTATIC_BUILD -DTK_TEST $(TIX_CFLAGS) -o 
>>$@ $?
>>
>>  $(TMPDIR)/tixWinMain.$(OBJEXT): $(ROOT)/win/tixWinMain.c
>>-       $(CC) -c $(TK_INCLUDES) -DSTATIC_BUILD $(CFLAGS) -o $@ $?
>>+       $(CC) -c $(TK_INCLUDES) -DSTATIC_BUILD $(TIX_CFLAGS) -o $@ $?
>>
>>  ifeq ($(OBJEXT),o)
>>
>>@@ -408,10 +410,10 @@ endif
>>  #
>>
>>  .c.$(OBJEXT):
>>-       $(CC) -c $(CFLAGS) -DDLL_BUILD -DBUILD_tix $(TK_INCLUDES) -c -o $@ $<
>>+       $(CC) -c $(TIX_CFLAGS) -DDLL_BUILD -DBUILD_tix $(TK_INCLUDES) -c 
>>-o $@ $<
>>
>>  $(TMPDIR)/%.$(OBJEXT): %.c
>>-       $(CC) -c $(CFLAGS) -DDLL_BUILD -DBUILD_tix $(TK_INCLUDES) -c -o $@ $<
>>+       $(CC) -c $(TIX_CFLAGS) -DDLL_BUILD -DBUILD_tix $(TK_INCLUDES) -c 
>>-o $@ $<
>>
>>  clean:
>>         rm -f $(TMPDIR)/*.$(OBJEXT) $(TMPDIR)/*.exp $(TMPDIR)/*.def
>>Index: tix/win/configure.in
>>===================================================================
>>RCS file: /cvs/uberbaum/tix/win/configure.in,v
>>retrieving revision 1.1.1.1
>>diff -u -p -r1.1.1.1 configure.in
>>--- configure.in        2000/02/07 00:19:29     1.1.1.1
>>+++ configure.in        2001/04/07 00:22:42
>>@@ -56,6 +56,19 @@ else
>>      TIX_BUILD_LOCATION="`pwd`\\tcl${TCL_VERSION}"
>>  fi
>>
>>+case "${host}" in
>>+*-*-cygwin*)
>>+       touch ac$$.c
>>+       if ${CC} -c -mwin32 ac$$.c >/dev/null 2>&1; then
>>+           case "$EXTRA_CFLAGS" in
>>+               *-mwin32*) ;;
>>+               *) EXTRA_CFLAGS="-mwin32 $EXTRA_CFLAGS" ;;
>>+           esac
>>+       fi
>>+       rm -f ac$$.o ac$$.c
>>+       ;;
>>+esac
>>+AC_SUBST(EXTRA_CFLAGS)
>>
>>  AC_SUBST(TIX_BUILD_LIB_SPEC)
>>  AC_SUBST(TIX_LIB_FILE)
>
>Syd Polk		spolk@redhat.com
>Engineering Manager	+1 408 543 9430
>Red Hat, Inc.
>
>

-- 
cgf@cygnus.com                        Red Hat, Inc.
http://sources.redhat.com/            http://www.redhat.com/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]