Tcl Source Code

View Ticket
Login
Ticket UUID: 1865735
Title: tclInt.h can't be linked- hidden objects
Type: Bug Version: None
Submitter: mmaslano Created on: 2008-01-07 09:07:26
Subsystem: 69. Other Assigned To: dgp
Priority: 5 Medium Severity:
Status: Closed Last Modified: 2008-03-26 09:20:35
Resolution: Invalid Closed By: sf-robot
    Closed on: 2008-03-26 02:20:35
Description:
I run into problem with linking programmes with tcl8.5.0 because of hidden objects. The shared object tclInt.h is in tcl-devel package, but when I linked it into programme  like expect, no tclInt.h object was found. I don't know if this hidden objects are really needed. I solve this problem with patch in attachment. 

The second part of patch is about paths, because shared object can't be found with previous path.
User Comments: sf-robot added on 2008-03-26 09:20:35:
Logged In: YES 
user_id=1312539
Originator: NO

This Tracker item was closed automatically by the system. It was
previously set to a Pending status, and the original submitter
did not respond within 14 days (the time period specified by
the administrator of this Tracker).

dgp added on 2008-03-12 03:05:52:
Logged In: YES 
user_id=80530
Originator: NO


Appears that the bugs reported
here are in Expect, not Tcl.

[email protected] added on 2008-01-18 06:54:33:
Logged In: NO 

re (1) Or there is also Tcl_GetCommandInfo() and pull the Tcl_ObjCmdProc* from the info struct.

dkf added on 2008-01-07 23:06:03:
Logged In: YES 
user_id=79902
Originator: NO

What's wrong with using Tcl_Eval? Direct access to Tcl command implementations is not supported.

mmaslano added on 2008-01-07 22:17:26:
Logged In: YES 
user_id=1580598
Originator: YES

Re (1) sure the expect needs access to object Tcl_CloseObjCmd() and Tcl_ReturnObjCmd(), but that's not possible because of hidden whole object. Changing MODULE_SCOPE on extern is hack to do these objects accessible. It was functional in previous version of tcl-8.4.15.

dkf added on 2008-01-07 18:37:48:
Logged In: YES 
user_id=79902
Originator: NO

Re (2) it just means that it expects the unix dir to be on the include path, which is fairly reasonable.

msofer added on 2008-01-07 17:00:07:
Logged In: YES 
user_id=148712
Originator: NO

To clarify the issues:

(1) expect seems to need access to Tcl_CloseObjCmd() and Tcl_ReturnObjCmd(), these are declared MODULE_SCOPE

(2) generic/tclPort.h has
       #include "tclUnixPort.h"
    where it should be
       #include "../unix/tclUnixPort.h"
    Does this mean we are not really using any of tclUnixPort.h on any of our tested platforms?

mmaslano added on 2008-01-07 16:07:26:

File Added - 261156: tcl-8.5.0-hidden.patch

Attachments: