Tcl Source Code

View Ticket
Login
Ticket UUID: 1879220
Title: Inconsistent naming of debug builds
Type: Bug Version: obsolete: 8.5.7
Submitter: eriklns Created on: 2008-01-24 20:48:10
Subsystem: 53. Configuration and Build Tools Assigned To: hobbs
Priority: 5 Medium Severity:
Status: Open Last Modified: 2009-08-15 16:50:26
Resolution: None Closed By:
    Closed on:
Description:
I experienced that Linux builds of the Tcl and Tk source distributions generate binaries whose names do not consistently distinguish debug and non-debug builds (using the suffix "g"). This makes that when installing them, debug builds overwrite non-debug builds (or vice versa, depending on the build order).

Remarkable in this respect is that:
- Tcl8.4.17 behaves differently from Tcl8.5.0 (see table below);
- Cross-building from Linux -> win32 behaves differently from native Linux builds: all binaries in a cross debug build carry the suffix "g".

I've been using the flags --disable-symbols and --enable-symbols to ./configure, followed by "make", to generate the different types of build.

Names of binaries in the table below as they were installed using "make install".

                    NATIVE-NON-DEBUG  NATIVE DEBUG           CROSS DEBUG
* Tcl8.4.17
library             libtcl8.4.so      libtcl8.4g.so          libtcl84g.dll
stubs library       libtclstub8.4.a   libtclstub8.4g.a       libtclstub84g.a
application         tclsh8.4          tclsh8.4 (*)           tclsh84g.exe (*)

* Tk8.4.17
library             libtk8.4.so       libtk8.4g.so           --
stubs library       libtkstub8.4.a    libtkstub8.4g.a        --
application         wish8.4           wish8.4 (*)            --

* Tcl8.5.0
library             libtcl8.5.so      libtcl8.5.so (**)      libtcl85g.dll
stubs library       libtclstub8.5.a   libtclstub8.5.a (**)   libtclstub85g.a
application         tclsh8.5          tclsh8.5 (*)           tclsh85g.exe (*)

* Tk8.5.0
library             libtk8.5.so       libtk8.5.so (**)       --
stubs library       libtkstub8.5.a    libtkstub8.5.a (**)    --
application         wish8.5           wish8.5 (*)            --


(*) means: I'm unsure whether the names are OK, and in any case don't understand why the cross and native builds behave differently.
(**) means: "I didn't expect the same names for Linux native debug and non-debug builds".
--   means: not investigated

Sincerely,

Erik Leunissen
User Comments: eriklns added on 2009-08-15 16:50:26:
Confirmed for Tcl8.5.7.
I would like to mention that I understand that the "g" suffix was deprecated since 8.5. Please disregard that part of this report.

The observed difference between win vs. unix builds is still valid though.

jenglish added on 2008-01-27 09:06:54:
Logged In: YES 
user_id=68433
Originator: NO

See also Patch #1081595 ("Die, DBGX, die").  This was removed on purpose.

eriklns added on 2008-01-25 03:57:16:

File Added - 263646: debugsuffix.txt

Logged In: YES 
user_id=113903
Originator: YES

Hmm, this tracker interface doesn't preserve the table format that I created so cautiously.
Please copy/paste the previous message into an editor, using Courier font, to restore the table outline.
You can also use the text in the attached file, which is what I pasted into the browser interface. Again use a fixed size font like Courier.

File Added: debugsuffix.txt

Attachments: