Skip to content

Spack stage directory written into TCL install files #8151

@citibeth

Description

@citibeth

Summary

The tcl installation is buggy. This causes its dependencies (eg tk) to find system header files, instead of those from tcl. The bug was masked on newer Linuxes that come with a newer TCL.

Details

tcl provides a file called spec['tcl']/lib/tclConfig.sh, which is used by its dependencies (eg tk) to determine where TCL is installed, to set compiler flags, etc. All entries in this file should point to the Spack-installed location.

Unfortunately, SOME of the entires point to the Spack stage where TCL was built:

~> grep stage /gpfsm/dnb53/rpfische/spack6/opt/spack/linux-suse_linux11-x86_64/gcc-5.3.0/tcl-8.6.8-covlee52wjqcu77f766wp45nvrxvyqfl/lib/tclConfig.sh 
TCL_BUILD_LIB_SPEC='-L/gpfsm/dnb53/rpfische/tmp/spack-stage/spack-stage-dQSx7_/tcl8.6.8/unix -ltcl8.6'
TCL_SRC_DIR='/gpfsm/dnb53/rpfische/tmp/spack-stage/spack-stage-dQSx7_/tcl8.6.8'
TCL_BUILD_STUB_LIB_SPEC='-L/gpfsm/dnb53/rpfische/tmp/spack-stage/spack-stage-dQSx7_/tcl8.6.8/unix -ltclstub8.6'
TCL_BUILD_STUB_LIB_PATH='/gpfsm/dnb53/rpfische/tmp/spack-stage/spack-stage-dQSx7_/tcl8.6.8/unix/libtclstub8.6.a'

When building tk, this results in a build that does NOT access the TCL installation; instead, it points to (now defunct) stage directories, and the tk build instead picks up whatever system-supplied TCL header files are lying around. Here is part of a sample GCC command line issued when trying to build tk:

/usr/local/other/SLES11.3/gcc/5.3.0/bin/gcc
-c -O2 -pipe -Wall -fPIC
-DBUILD_tk
-I/gpfsm/dnb53/rpfische/tmp/spack-stage/spack-stage-CW8UJ5/tk8.6.8/unix/../unix
-I/gpfsm/dnb53/rpfische/tmp/spack-stage/spack-stage-CW8UJ5/tk8.6.8/unix/../generic
-I/gpfsm/dnb53/rpfische/tmp/spack-stage/spack-stage-CW8UJ5/tk8.6.8/unix/../bitmaps
-I/gpfsm/dnb53/rpfische/tmp/spack-stage/spack-stage-dQSx7_/tcl8.6.8/generic
-I/gpfsm/dnb53/rpfische/tmp/spack-stage/spack-stage-dQSx7_/tcl8.6.8/unix

One way or another, the tclConfig.sh file needs to contain ONLY install directories, no stage directories.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions