Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

{lib} libreadline: Fails with missing 'UP' symbol on Debian 7 #1670

Closed
wants to merge 1 commit into from

Conversation

wpoely86
Copy link
Member

@wpoely86 wpoely86 commented Jun 4, 2015

On Debian 7, software using libreadline fails with a missing symbol UP. This fixes that.

@wpoely86
Copy link
Member Author

wpoely86 commented Jun 4, 2015

The same issues as in #1315

@hpcugentbot
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
https://jenkins1.ugent.be/job/easybuild-easyconfigs-pr-builder/3411/
Easyconfigs unit test suite PASSed (see https://jenkins1.ugent.be/job/easybuild-easyconfigs-pr-builder/3411/console for more details).

This pull request is now ready for review/testing.

Please try and find someone who can tackle this; contact @boegel if you're not sure what to do.

@boegel
Copy link
Member

boegel commented Jun 4, 2015

Do you have an easy test that verifies whether this occurs (which passes with this in place, and fails without)?

@wpoely86
Copy link
Member Author

wpoely86 commented Jun 4, 2015

$ ld --trace-symbol=UP $EBROOTLIBREADLINE/lib/libreadline.so
/home/opt/easybuild/software/libreadline/6.3-intel-2015a/lib/libreadline.so: reference to UP
/lib/x86_64-linux-gnu/libtinfo.so.5: definition of UP
ld: warning: cannot find entry symbol _start; not setting start address

@wpoely86
Copy link
Member Author

wpoely86 commented Jun 4, 2015

Versus:

$ ld --trace-symbol=UP libreadline.so
libreadline.so: reference to UP
ld: warning: cannot find entry symbol _start; not setting start address
libreadline.so: undefined reference to `tputs'
libreadline.so: undefined reference to `tgoto'
libreadline.so: undefined reference to `tgetflag'
libreadline.so: undefined reference to `UP'
libreadline.so: undefined reference to `tgetent'
libreadline.so: undefined reference to `tgetnum'
libreadline.so: undefined reference to `PC'
libreadline.so: undefined reference to `tgetstr'
libreadline.so: undefined reference to `BC'

@boegel
Copy link
Member

boegel commented Jun 4, 2015

@wpoely86: does the latter exit with a non-zero exit code, i.e. can we use it as a sanity check command?

BTW, I'm seeing the same output as you on SL6:

-bash-4.1$ ld --trace-symbol=UP $EBROOTLIBREADLINE/lib/libreadline.so
/user/scratch/gent/vsc400/vsc40023/easybuild_REGTEST/SL6/sandybridge/software/libreadline/6.3-intel-2015a/lib/libreadline.so: reference to UP
ld: warning: cannot find entry symbol _start; not setting start address
/user/scratch/gent/vsc400/vsc40023/easybuild_REGTEST/SL6/sandybridge/software/libreadline/6.3-intel-2015a/lib/libreadline.so: undefined reference to `PC'
/user/scratch/gent/vsc400/vsc40023/easybuild_REGTEST/SL6/sandybridge/software/libreadline/6.3-intel-2015a/lib/libreadline.so: undefined reference to `tgetflag'
/user/scratch/gent/vsc400/vsc40023/easybuild_REGTEST/SL6/sandybridge/software/libreadline/6.3-intel-2015a/lib/libreadline.so: undefined reference to `tgetent'
/user/scratch/gent/vsc400/vsc40023/easybuild_REGTEST/SL6/sandybridge/software/libreadline/6.3-intel-2015a/lib/libreadline.so: undefined reference to `UP'
/user/scratch/gent/vsc400/vsc40023/easybuild_REGTEST/SL6/sandybridge/software/libreadline/6.3-intel-2015a/lib/libreadline.so: undefined reference to `tputs'
/user/scratch/gent/vsc400/vsc40023/easybuild_REGTEST/SL6/sandybridge/software/libreadline/6.3-intel-2015a/lib/libreadline.so: undefined reference to `tgoto'
/user/scratch/gent/vsc400/vsc40023/easybuild_REGTEST/SL6/sandybridge/software/libreadline/6.3-intel-2015a/lib/libreadline.so: undefined reference to `tgetnum'
/user/scratch/gent/vsc400/vsc40023/easybuild_REGTEST/SL6/sandybridge/software/libreadline/6.3-intel-2015a/lib/libreadline.so: undefined reference to `BC'
/user/scratch/gent/vsc400/vsc40023/easybuild_REGTEST/SL6/sandybridge/software/libreadline/6.3-intel-2015a/lib/libreadline.so: undefined reference to `tgetstr'

@wpoely86
Copy link
Member Author

wpoely86 commented Jun 4, 2015

@boegel it returns 1 when not finding the symbol.

@wpoely86
Copy link
Member Author

wpoely86 commented Jun 4, 2015

@boegel can you check that the UP symbol is in the libtinfo.so library on SL6-7?

@boegel
Copy link
Member

boegel commented Jun 4, 2015

This?

-bash-4.1$ rpm -q --whatprovides /usr/lib64/libtinfo.so
ncurses-devel-5.7-4.20090207.el6.x86_64
-bash-4.1$ nm /usr/lib64/libtinfo.so | grep UP
nm: /usr/lib64/libtinfo.so: no symbols             
-bash-4.1$ ld --trace-symbol=UP /usr/lib64/libtinfo.so 
/usr/lib64/libtinfo.so: definition of UP
ld: warning: cannot find entry symbol _start; not setting start address
-bash-4.1$ echo $?
0

@wpoely86
Copy link
Member Author

wpoely86 commented Jun 5, 2015

Okay, that's the system lib. But this is actually wrong. It should be:

$ nm $EBROOTNCURSES/lib/libncurses.so | grep UP
0000000000250820 B UP

@boegel
Copy link
Member

boegel commented Jun 5, 2015

Well, I couldn't find a libtinfo.sh in $EBROOTNCURSES...

@boegel
Copy link
Member

boegel commented Jun 24, 2015

@wpoely86: thoughts on this? I lost track...

@boegel boegel added this to the v2.2 milestone Jun 24, 2015
@boegel
Copy link
Member

boegel commented Jul 11, 2015

@wpoely86: have we already figured out whether this fix causes harm on other OSs?

@fgeorgatos
Copy link
Contributor

not sure if this is relevant, let me shoot it anyway: libreadline routinely has issues when it is not build with a corresponding ncurses; this looks alike issue, if it is you will find similar bugfixes in the past (fi. Jul'13).

@boegel
Copy link
Member

boegel commented Sep 23, 2015

Test report by @boegel
SUCCESS
Build succeeded for 1 out of 1 (1 easyconfigs in this PR)
Linux centos linux 7.1.1503, Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz, Python 2.7.5
See https://gist.github.com/be8ca7aa845947277724 for a full test report.

@boegel
Copy link
Member

boegel commented Sep 23, 2015

Test report by @boegel
SUCCESS
Build succeeded for 1 out of 1 (1 easyconfigs in this PR)
Linux SL 6.7, Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz, Python 2.6.6
See https://gist.github.com/810867d71e6722a6e089 for a full test report.

@boegel
Copy link
Member

boegel commented Sep 23, 2015

@wpoely86: what would you say is an easy way to check whether a libreadline built with this included works as expected?

@boegel boegel modified the milestones: merge sprint 2.0, v2.4.0 Nov 9, 2015
@boegel boegel modified the milestones: merge sprint 2.0, v2.4.0, v2.5.0 Nov 9, 2015
@wpoely86
Copy link
Member Author

I'm gonna close this and we follow up in #1315

@wpoely86 wpoely86 closed this Dec 10, 2015
@wpoely86 wpoely86 deleted the libreadline branch December 10, 2015 09:49
@boegel boegel mentioned this pull request Dec 10, 2015
@boegel
Copy link
Member

boegel commented Dec 12, 2015

replaced with better solution in #2206

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants