Hi Xavier,
Thank you so much for your support…
I decided to go with your second work-around (set TCL_LIBRARY in the modulefile). I prefer not to mess with the vendor tool installation (even if it is broken). I’m also figuring that other modules that may be loaded later in the same session will still be OK with the TCL_LIBRARY environment set.
Best regards,
Shaun
From: Xavier Delaruelle <xav...@gm...>
Sent: Thursday, May 14, 2026 2:07 AM
To: Shaun Deacon <Sha...@us...>
Cc: Environment Modules usage and discussion. <mod...@li...>
Subject: Re: [Modules] Conflict with Tcl libraries in LD_LIBRARY_PATH
Many thanks for these outputs.
It appears that quarantine mechanism is properly configured and modulecmd.tcl script is using the correct tclsh command (from the OS Tcl installation).
Issue comes from the Tcl sub-interpreters used to evaluate modulercs and modulefiles. Such interpreters are currently not protected by the quarantine mechanism. I have added an issue to implement such protection also for these sub-interpreters:
https://github.com/envmodules/modules/issues/623
In the mean time, to fix the issue you face I suggest you try one of the following:
* repair the broken Tcl installation (maybe just add an empty init.tcl in one of the listed directory)
* set TCL_LIBRARY environment variable in the modulefile that enables the broken Tcl installation
- and make it point to the proper directory (where a init.tcl can be found)
- or add directory relative to Tcl OS installation (/usr/share/tcl8.6)
Best regards,
Xavier
Le mer. 13 mai 2026 à 22:41, Shaun Deacon <Sha...@us...<mailto:Sha...@us...>> a écrit :
OK, output is as follows…
%> type module
module is a function
module ()
{
unset _mlshdbg;
if [ "${MODULES_SILENT_SHELL_DEBUG:-0}" = '1' ]; then
case "$-" in
*v*x*)
set +vx;
_mlshdbg='vx'
;;
*v*)
set +v;
_mlshdbg='v'
;;
*x*)
set +x;
_mlshdbg='x'
;;
*)
_mlshdbg=''
;;
esac;
fi;
unset _mlre _mlIFS;
if [ -n "${IFS+x}" ]; then
_mlIFS=$IFS;
fi;
IFS=' ';
for _mlv in ${MODULES_RUN_QUARANTINE:-};
do
if [ "${_mlv}" = "${_mlv##*[!A-Za-z0-9_]}" -a "${_mlv}" = "${_mlv#[0-9]}" ]; then
if [ -n "`eval 'echo ${'$_mlv'+x}'`" ]; then
_mlre="${_mlre:-}${_mlv}_modquar='`eval 'echo ${'$_mlv'}'`' ";
fi;
_mlrv="MODULES_RUNENV_${_mlv}";
_mlre="${_mlre:-}${_mlv}='`eval 'echo ${'$_mlrv':-}'`' ";
fi;
done;
if [ -n "${_mlre:-}" ]; then
eval `eval ${_mlre} /usr/bin/tclsh /usr/share/Modules/libexec/modulecmd.tcl bash '"$@"'`;
else
eval `/usr/bin/tclsh /usr/share/Modules/libexec/modulecmd.tcl bash "$@"`;
fi;
_mlstatus=$?;
if [ -n "${_mlIFS+x}" ]; then
IFS=$_mlIFS;
else
unset IFS;
fi;
unset _mlre _mlv _mlrv _mlIFS;
if [ -n "${_mlshdbg:-}" ]; then
set -$_mlshdbg;
fi;
unset _mlshdbg;
return $_mlstatus
}
%> type _module_raw
/bin/type: line 2: type: _module_raw: not found
%> which tclsh
/bin/tclsh
Again, for additional information, our modules installation is here :
/sw/modules
Although there is a system version (which we don’t want to use) here :
/usr/share/Modules
From: Xavier Delaruelle <xav...@gm...<mailto:xav...@gm...>>
Sent: Wednesday, May 13, 2026 1:11 PM
To: Shaun Deacon <Sha...@us...<mailto:Sha...@us...>>
Cc: Environment Modules usage and discussion. <mod...@li...<mailto:mod...@li...>>
Subject: Re: [Modules] Conflict with Tcl libraries in LD_LIBRARY_PATH
Could you provide the output of the following commands:
type module
type _module_raw
which tclsh
Best regards,
Xavier
Le mer. 13 mai 2026 à 21:54, Shaun Deacon <Sha...@us...<mailto:Sha...@us...>> a écrit :
Hi Xavier,
Thank you for the suggestion…
Unfortunately, this didn’t work – I get the same error.
Just for additional info, the offending tool module does the following :
%> module display xcelium/test
-------------------------------------------------------------------
/sw/modules/modulefiles/cad/cdn/xcelium/test :
module-whatis {Xcelium modules environment}
prereq socionext
prepend-path PATH $CADROOT/cdn/bin
prepend-path PATH $CADROOT/cdn/org/xcelium/24.03.013/tools.lnx86/bin
prepend-path PATH $CADROOT/cdn/org/xcelium/24.03.013/bin
prepend-path LD_LIBRARY_PATH $CADROOT/cdn/org/xcelium/24.03.013/tools.lnx86/lib/64bit
prepend-path LD_LIBRARY_PATH $CADROOT/cdn/org/xcelium/24.03.013/tools.lnx86/inca/lib/64bit
prepend-path LD_LIBRARY_PATH $CADROOT/cdn/org/xcelium/24.03.013/lib
-------------------------------------------------------------------
Where $CADROOT is set to “/sw” in the “socionext” module.
Best regards
Shaun
From: Xavier Delaruelle <xav...@gm...<mailto:xav...@gm...>>
Sent: Wednesday, May 13, 2026 12:38 PM
To: Shaun Deacon <Sha...@us...<mailto:Sha...@us...>>
Cc: Environment Modules usage and discussion. <mod...@li...<mailto:mod...@li...>>
Subject: Re: [Modules] Conflict with Tcl libraries in LD_LIBRARY_PATH
Hi Shaun,
I suggest you to enable the quarantine mechanism and set LD_LIBRARY_PATH in the list of env variable to protect from.
In /etc/environment-modules/initrc, add the following lines:
module config quarantine_support 1
module config run_quarantine LD_LIBRARY_PATH
Then restart a new shell session.
It should protect the module execution from this interfering Tcl installation.
Best regards,
Xavier
Le mer. 13 mai 2026 à 21:23, Shaun Deacon via lists.hpsf.io<http://lists.hpsf.io> <Sha...@li...<mailto:us....@li...>> a écrit :
Hi All,
Module version :
Modules Release 5.5.0 (2024-11-11)
Platform :
Red Hat Enterprise Linux release 8.10 (Ootpa)
I have a vendor tool which provides its own shared object libraries including a copy of the Tcl libraries but doesn’t provide a “tcl8.6” sub-directory that would contain ‘init.tcl’
The module for the vendor tool needs the LD_LIBRARY_PATH environment to be adjusted to pick up its custom libraries
Unfortunately, if the tool library directories are prepended to LD_LIBRARY_PATH, this interferes with the Tcl that modules needs.
%> module load tool-with-lib
%> module load another-tool
ERROR: Can't find a usable init.tcl in the following directories:
/vols/mmsimP4_t1b_008/ws/mmsimcm/mmsimcm_dep_0401/nsd_ext_lib/tcltk/tools.lnx86/tcltk-8.6.8/lib/tcl8.6 /usr/lib/tcl8.6 /lib/tcl8.6 /usr/library /library /tcl8.6.8/library /tcl8.6.8/library
This probably means that Tcl wasn't installed properly.
while executing
"error $msg"
(procedure "tclInit" line 61)
invoked from within
"tclInit"
invoked from within
"interp create $itrp"
(procedure "execute-modulerc" line 60)
invoked from within
"execute-modulerc $dir/$elt $elt $elt"
(procedure "getModules" line 101)
invoked from within
"getModules $dir $mod 0 [list rc_defs_included resolve]"
(procedure "getPathToModule" line 49)
invoked from within
"getPathToModule $mod $modulepath_list $notfounderr"
(procedure "cmdModuleLoad" line 30)
invoked from within
"cmdModuleLoad load 1 $tryload $loadany $tag_list {} {*}$args"
(procedure "cmdModuleIntLoad" line 17)
invoked from within
"$cmdprocname {*}$cmdopts {*}$parsed_args"
(procedure "module" line 186)
invoked from within
"{*}$execcmdlist"
What is the recommended/best way to get round this issue ?
I’m sure this issue has come up before, but I couldn’t find answers on the internet.
Best regards
Shaun
--
Shaun Deacon
Principal Software Engineer
Socionext America, Inc.
--
CONFIDENTIALITY NOTE: This electronic message (including any attachments) may contain information that is privileged, confidential, and proprietary. If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution, or use of the information contained herein (including any reliance thereon) is strictly prohibited. If you received this electronic message in error, please immediately reply to the sender that you have received this communication and destroy the material in its entirety, whether in electronic or hard copy format. Although Socionext has taken reasonable precautions to ensure no viruses are present in this email, Socionext accepts no responsibility for any loss or damage arising from the use of this email or attachments.
CONFIDENTIALITY NOTE: This electronic message (including any attachments) may contain information that is privileged, confidential, and proprietary. If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution, or use of the information contained herein (including any reliance thereon) is strictly prohibited. If you received this electronic message in error, please immediately reply to the sender that you have received this communication and destroy the material in its entirety, whether in electronic or hard copy format. Although Socionext has taken reasonable precautions to ensure no viruses are present in this email, Socionext accepts no responsibility for any loss or damage arising from the use of this email or attachments.
CONFIDENTIALITY NOTE: This electronic message (including any attachments) may contain information that is privileged, confidential, and proprietary. If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution, or use of the information contained herein (including any reliance thereon) is strictly prohibited. If you received this electronic message in error, please immediately reply to the sender that you have received this communication and destroy the material in its entirety, whether in electronic or hard copy format. Although Socionext has taken reasonable precautions to ensure no viruses are present in this email, Socionext accepts no responsibility for any loss or damage arising from the use of this email or attachments.
CONFIDENTIALITY NOTE: This electronic message (including any attachments) may contain information that is privileged, confidential, and proprietary. If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution, or use of the information contained herein (including any reliance thereon) is strictly prohibited. If you received this electronic message in error, please immediately reply to the sender that you have received this communication and destroy the material in its entirety, whether in electronic or hard copy format. Although Socionext has taken reasonable precautions to ensure no viruses are present in this email, Socionext accepts no responsibility for any loss or damage arising from the use of this email or attachments.
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#31): https://lists.hpsf.io/g/modules-interest/message/31
Mute This Topic: https://lists.hpsf.io/mt/119302881/10150481
Group Owner: mod...@li...
Unsubscribe: https://lists.hpsf.io/g/modules-interest/unsub [mod...@li...]
-=-=-=-=-=-=-=-=-=-=-=-
|