Tcl Source Code

Artifact [fbab128dac]
Login

Artifact fbab128dac510347ef2971291b5aeb58c871dca7:

Attachment "debugsuffix.txt" to ticket [1879220fff] added by eriklns 2008-01-25 03:57:14.
I experienced that Linux builds of the Tcl and Tk source distributions
generate binaries whose names do not 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