public inbox for insight@sourceware.org
 help / color / mirror / Atom feed
From: Christopher Faylor <cgf@redhat.com>
To: insight@sources.redhat.com
Subject: [PATCH] libgui/tcl/tix fixes for recent Cygwin
Date: Fri, 06 Apr 2001 19:15:00 -0000	[thread overview]
Message-ID: <20010406221540.A14956@redhat.com> (raw)

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
 \f
@@ -745,12 +745,12 @@ TclFinalizeEnvironment()
 }
 \f
 /* 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)

             reply	other threads:[~2001-04-06 19:15 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-04-06 19:15 Christopher Faylor [this message]
2001-04-10 11:38 ` Syd Polk
2001-04-10 12:41   ` Christopher Faylor

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20010406221540.A14956@redhat.com \
    --to=cgf@redhat.com \
    --cc=insight@sources.redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).