Return to BSD News archive
Xref: sserve comp.lang.tcl:4991 comp.os.386bsd.apps:284
Newsgroups: comp.lang.tcl,comp.os.386bsd.apps
Path: sserve!newshost.anu.edu.au!munnari.oz.au!constellation!osuunx.ucc.okstate.edu!moe.ksu.ksu.edu!ux1.cso.uiuc.edu!howland.reston.ans.net!noc.near.net!uunet!magrana1!rob
From: rob@magrana1.uucp (Rob Duncan)
Subject: 386bsd patches for tcl7.0b1 and tk3.3b1
Message-ID: <CA7rut.352@magrana1.uucp>
Organization: Pomegranate Technology, Inc.
X-Newsreader: Tin 1.1 PL4
Date: Thu, 15 Jul 1993 16:16:05 GMT
Lines: 98
i have successfuly built both tcl7.0b1 and tk3.3b1 on a 386bsd 0.1
machine using gcc 2.4.5 and XFree86 1.3. there were a small number of
trivial changes to the source files, and a little bit of customization
of the makefiles:
1) 386bsd has a conflicting definition of putenv() as well as setenv(),
so the same macro trickery is needed in tclEnv.c to make it work;
2) tkConfig.h needs to be modified to add a defined(__386BSD__) to the
list of architectures that require SELECT_MASK to be defined;
3) NULL is used instead of None in a couple of places in tkWm.c this
is not a 386bsd specific problem.
4) i changed the makefiles to specify the c compiler, and also to add a
library search path for my x setup. perhaps the macro for configuring
for openwindows could be generalized to configure any x related paths.
when i run the tests i find errors with some floating point operations
and some raise operations. i'm still looking into these.
here are the patches:
*** tclEnv.c.dist Wed Jul 14 15:30:02 1993
--- tclEnv.c Wed Jul 14 15:31:03 1993
***************
*** 36,44 ****
--- 36,50 ----
*/
#define putenv ignore_putenv
+ #ifdef __386BSD__
+ #define setenv ignore_setenv
+ #endif
#include "tclInt.h"
#include "tclUnix.h"
#undef putenv
+ #ifdef __386BSD__
+ #undef setenv
+ #endif
/*
* The structure below is used to keep track of all of the interpereters
*** tkConfig.h.dist Wed Jul 14 17:46:33 1993
--- tkConfig.h Wed Jul 14 17:47:16 1993
***************
*** 96,102 ****
* select:
*/
! #if (defined(sun) && !defined(sprite)) || defined(linux) || defined(SVR4)
# define SELECT_MASK fd_set
#else
# if defined(_IBMR2)
--- 96,102 ----
* select:
*/
! #if (defined(sun) && !defined(sprite)) || defined(linux) || defined(SVR4) || defined(__386BSD__)
# define SELECT_MASK fd_set
#else
# if defined(_IBMR2)
*** tkWm.c.dist Wed Jul 14 17:37:12 1993
--- tkWm.c Wed Jul 14 17:37:50 1993
***************
*** 3161,3173 ****
if (winPtr->window == None) {
Tk_MakeWindowExist((Tk_Window) winPtr);
}
! window = (winPtr->wmInfoPtr->reparent != NULL)
? winPtr->wmInfoPtr->reparent : winPtr->window;
if (otherPtr != NULL) {
if (otherPtr->window == None) {
Tk_MakeWindowExist((Tk_Window) otherPtr);
}
! changes.sibling = (otherPtr->wmInfoPtr->reparent != NULL)
? otherPtr->wmInfoPtr->reparent : otherPtr->window;
mask = CWStackMode|CWSibling;
}
--- 3161,3173 ----
if (winPtr->window == None) {
Tk_MakeWindowExist((Tk_Window) winPtr);
}
! window = (winPtr->wmInfoPtr->reparent != None)
? winPtr->wmInfoPtr->reparent : winPtr->window;
if (otherPtr != NULL) {
if (otherPtr->window == None) {
Tk_MakeWindowExist((Tk_Window) otherPtr);
}
! changes.sibling = (otherPtr->wmInfoPtr->reparent != None)
? otherPtr->wmInfoPtr->reparent : otherPtr->window;
mask = CWStackMode|CWSibling;
}
--
Rob Duncan Talk: +1-415-325-8780
Pomegranate Technology, Inc. Fax: +1-415-321-1334
235 Embarcadero Road UUCP: ...!uunet!magrana1!r.duncan
Palo Alto, CA 94301 Internet: r.duncan@pomegranate.com