Bug 113385

Summary: [icc] `make test` for expect should test local libraries
Product: Red Hat Enterprise Linux 3 Reporter: Sysoltsev Slawa <vyatcheslav.sysoltsev>
Component: tcltkAssignee: Jens Petersen <petersen>
Status: CLOSED RAWHIDE QA Contact: Bill Huang <bhuang>
Severity: medium Docs Contact:
Priority: medium    
Version: 3.0   
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2004-02-28 03:06:50 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Sysoltsev Slawa 2004-01-13 14:05:14 UTC
Description of problem:
Trying to build tcltk from source rpm by Intel compiler Iâve got such an 
error during `make test` in expect directory:
TCL_LIBRARY=/users/compiler/tc_6/WORK_DIR/BUILD/tcltk-
8.3.5/tcl8.3.5/library ; \
export TCL_LIBRARY ; \
LD_LIBRARY_PATH=.:/usr/lib:/mnt/sdb1/users/compiler/tc_6/WORK_DI
R/tmp/tcltk-8.3.5-92-build-
root/usr/lib:$LD_LIBRARY_PATH ./expect ./fixline1 /usr/bin 
< ./example/timed-run > timed-run
./expect: relocation error: ./expect: undefined symbol: 
__intel_cpu_indicator
make: *** [timed-run] Error 127
make: Leaving directory 
`/mnt/sdb1/users/compiler/tc_6/WORK_DIR/BUILD/tcltk-8.3.5/expect-
5.38'

The issue is in LD_LIBRARY_PATH declaration: if previous version of 
tcltk is already installed, libraries required for expect will be taken 
from /usr/lib during run-time link instead freshly built ones. This is an 
mistake especially if I try to build expect by another compiler. Directory 
order in LD_LIBRARY_PATH must be changed to:
LD_LIBRARY_PATH=.:/mnt/sdb1/users/compiler/tc_6/WORK_DIR/tmp/t
cltk-8.3.5-92-build-root/usr/lib:/usr/lib:$LD_LIBRARY_PATH

Iâd rather remove /usr/lib from LD_LIBRARY_PATH because system 
libraries are usually found by linker through different mechanism.


Version-Release number of selected component (if applicable):


How reproducible:
always

Steps to Reproduce:
1. Get Intel compiler
2. Try to build expect from tcltk package by Intel compiler

  
Actual results:
run-time error issued by run-time linker

Expected results:
smoothly passed `make test`

Additional info:

Comment 1 Jens Petersen 2004-02-26 08:48:53 UTC
Any better with tcl-8.4.5 in Fedora Core devel (rawhide):
it looks so to me.

Comment 2 Sysoltsev Slawa 2004-02-26 10:16:06 UTC
I didn't catch your point, but I tried tcl-8.4.5 from Fedora Core devel and 
it passed. Probably it is because tcltk package in EL3.0 has not only 
tcl but tclx, expect and other components and I've got an error in expect 
subdirectory and tclx, while there are no such in standalone tcl-8.4.5 
from Fedora. Could you point where can I get latest full tcltk to recheck ?

Comment 3 Jens Petersen 2004-02-27 00:39:33 UTC
Sorry, the above comment was intended for bug 113382.

I guess you still see this with the expect package in FC devel?
You may also want to test the separate tclx package that has
been added very recently.

(tcltk has been split up into separate src packages after FC1.)

Comment 4 Sysoltsev Slawa 2004-02-27 07:55:24 UTC
I couldn't start any expect tests from expect-5.39.0-96 because I have 
tcl-8.3 installed and tests expect tcl-8.4:
Expect_Init failed: version conflict for package "Tcl": have 8.3, need 8.4

But I suppose expect-5.39 won't have the described bug because it is 
now separated from tcl and so do not have local tcl library.


Comment 5 Jens Petersen 2004-02-28 03:06:50 UTC
Good point: so closing this now then.

[Btw I don't think expect requires tcl/tk 8.4, it should build
fine with tcl/tk 8.3 too as far as I know.]