Skip to content

Make sure the installation of libiberty.a in the binutils easyblock goes into a populated directory#2308

Merged
boegel merged 6 commits intodevelopfrom
ocaisa-patch-1
Feb 18, 2021
Merged

Make sure the installation of libiberty.a in the binutils easyblock goes into a populated directory#2308
boegel merged 6 commits intodevelopfrom
ocaisa-patch-1

Conversation

@ocaisa
Copy link
Copy Markdown
Member

@ocaisa ocaisa commented Jan 14, 2021

@ocaisa
Copy link
Copy Markdown
Member Author

ocaisa commented Jan 14, 2021

Test report by @ocaisa

Overview of tested easyconfigs (in order)

  • SUCCESS binutils-2.35-GCCcore-10.2.0.eb

Build succeeded for 1 out of 1 (1 easyconfigs in total)
generoso - Linux centos linux 8.2.2004, x86_64, Intel(R) Xeon(R) CPU E5-2667 v3 @ 3.20GHz, Python 3.6.8
See https://gist.github.com/516b9fc3a697d642d982d0be99af2e65 for a full test report.

@ocaisa
Copy link
Copy Markdown
Member Author

ocaisa commented Jan 14, 2021

This should lead to much safer behaviour when dealing with lib and lib64 and help avoid the issue in easybuilders/easybuild-easyconfigs#11976 :

[ocaisa@generoso ~]$ ls -l /users/ocaisa/.local/easybuild/software/binutils/2.35-GCCcore-10.2.0/
total 4.0K
drwxr-xr-x. 2 ocaisa ocaisa  245 Jan 14 11:48 bin
drwxr-xr-x. 3 ocaisa ocaisa  270 Jan 14 11:48 easybuild
drwxr-xr-x. 2 ocaisa ocaisa  245 Jan 14 11:48 include
drwxr-xr-x. 2 ocaisa ocaisa   36 Jan 14 11:48 info
drwxr-xr-x. 2 ocaisa ocaisa 4.0K Jan 14 11:48 lib
lrwxrwxrwx. 1 ocaisa ocaisa   72 Jan 14 11:48 lib64 -> /users/ocaisa/.local/easybuild/software/binutils/2.35-GCCcore-10.2.0/lib
drwxr-xr-x. 5 ocaisa ocaisa   59 Jan 14 11:48 share
drwxr-xr-x. 4 ocaisa ocaisa   40 Jan 14 11:48 x86_64-pc-linux-gnu

@ocaisa
Copy link
Copy Markdown
Member Author

ocaisa commented Jan 14, 2021

@zao Can you try this in your VM and see if it fixes the directory structure for binutils?

@ocaisa
Copy link
Copy Markdown
Member Author

ocaisa commented Jan 14, 2021

Test report by @ocaisa

Overview of tested easyconfigs (in order)

  • SUCCESS binutils-2.25.eb

Build succeeded for 1 out of 1 (1 easyconfigs in total)
generoso - Linux centos linux 8.2.2004, x86_64, Intel(R) Xeon(R) CPU E5-2667 v3 @ 3.20GHz, Python 3.6.8
See https://gist.github.com/9c97c232ffb01b6641a5d9ed17cdaee1 for a full test report.

@zao
Copy link
Copy Markdown
Contributor

zao commented Jan 14, 2021

Test report by @zao

Overview of tested easyconfigs (in order)

Build succeeded for 0 out of 1 (1 easyconfigs in total)
eb-suse152 - Linux UNKNOWN UNKNOWN, x86_64, Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz, Python 3.6.12
See https://gist.github.com/0d5716386d49d7bf30c0af832568398f for a full test report.

@zao
Copy link
Copy Markdown
Contributor

zao commented Jan 14, 2021

While this puts libiberty.a in lib64, the binutils sanity check still fails as RUNPATH refers to the now non-existent $ORIGIN/../lib directory.

@ocaisa
Copy link
Copy Markdown
Member Author

ocaisa commented Jan 14, 2021

Urgh, we make a symlink from lib to lib64 but not the other way around, will have to see where that happens

@ocaisa
Copy link
Copy Markdown
Member Author

ocaisa commented Jan 14, 2021

Woo hoo, there is already an option for that --lib64-lib-symlink, can you try with that, should fix it.

@ocaisa
Copy link
Copy Markdown
Member Author

ocaisa commented Jan 14, 2021

Hmm, that requires a site config though, not sure if it is just better to add both options to the rpath in the first place...

Comment thread easybuild/easyblocks/b/binutils.py Outdated
# https://github.com/easybuilders/easybuild-easyconfigs/issues/10056
# Escaping: Double $$ for Make, \$ for shell to get literal $ORIGIN in the file
libdirs = [r'\$\$ORIGIN/../lib']
libdirs = [r'\$\$ORIGIN/../lib', r'\$\$ORIGIN/../lib64']
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@boegel, is there any reason this would be problematic? With this PR one of these will not exist

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ocaisa I think it makes sense to enhance the comment above to clarify why we're linking both lib and lib64 (and including a pointer to easybuilders/easybuild-easyconfigs#11976)

@zao
Copy link
Copy Markdown
Contributor

zao commented Jan 14, 2021

Test report by @zao

Overview of tested easyconfigs (in order)

  • SUCCESS binutils-2.34.eb
  • SUCCESS binutils-2.35.eb

Build succeeded for 2 out of 2 (2 easyconfigs in total)
eb-suse152 - Linux UNKNOWN UNKNOWN, x86_64, Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz, Python 3.6.12
See https://gist.github.com/03321c7db2722bf4900e09977d32e806 for a full test report.

@ocaisa
Copy link
Copy Markdown
Member Author

ocaisa commented Jan 14, 2021

Test report by @ocaisa

Overview of tested easyconfigs (in order)

  • SUCCESS binutils-2.35-GCCcore-10.2.0.eb
  • SUCCESS binutils-2.25.eb

Build succeeded for 2 out of 2 (2 easyconfigs in total)
generoso - Linux centos linux 8.2.2004, x86_64, Intel(R) Xeon(R) CPU E5-2667 v3 @ 3.20GHz, Python 3.6.8
See https://gist.github.com/ad551e642917778dd166bf77cc958f58 for a full test report.

Comment thread easybuild/easyblocks/b/binutils.py Outdated
# https://github.com/easybuilders/easybuild-easyconfigs/issues/10056
# Escaping: Double $$ for Make, \$ for shell to get literal $ORIGIN in the file
libdirs = [r'\$\$ORIGIN/../lib']
libdirs = [r'\$\$ORIGIN/../lib', r'\$\$ORIGIN/../lib64']
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ocaisa I think it makes sense to enhance the comment above to clarify why we're linking both lib and lib64 (and including a pointer to easybuilders/easybuild-easyconfigs#11976)

Comment thread easybuild/easyblocks/b/binutils.py
@boegel
Copy link
Copy Markdown
Member

boegel commented Feb 18, 2021

Test report by @boegel

Overview of tested easyconfigs (in order)

  • SUCCESS binutils-2.28.eb
  • SUCCESS binutils-2.35.eb
  • SUCCESS binutils-2.32-GCCcore-8.3.0.eb

Build succeeded for 3 out of 3 (3 easyconfigs in total)
node3551.doduo.os - Linux RHEL 8.2, x86_64, AMD EPYC 7552 48-Core Processor (zen2), Python 3.6.8
See https://gist.github.com/f737c6b1d0aa57da9d5fc4a20323315f for a full test report.

@zao
Copy link
Copy Markdown
Contributor

zao commented Feb 18, 2021

Test report by @zao

Overview of tested easyconfigs (in order)

  • SUCCESS binutils-2.34.eb
  • SUCCESS binutils-2.35.eb

Build succeeded for 2 out of 2 (2 easyconfigs in total)
eb-suse152 - Linux UNKNOWN UNKNOWN, x86_64, Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz, Python 3.6.12
See https://gist.github.com/e3563cf2fb49664528a965f640ecfcc4 for a full test report.

@boegel
Copy link
Copy Markdown
Member

boegel commented Feb 18, 2021

Test report by @boegel

Overview of tested easyconfigs (in order)

  • SUCCESS binutils-2.25.eb
  • SUCCESS binutils-2.35.eb
  • SUCCESS binutils-2.29.eb
  • SUCCESS binutils-2.31.1-GCCcore-8.2.0.eb

Build succeeded for 4 out of 4 (4 easyconfigs in total)
node2610.swalot.os - Linux centos linux 7.9.2009, x86_64, Intel(R) Xeon(R) CPU E5-2660 v3 @ 2.60GHz (haswell), Python 3.6.8
See https://gist.github.com/cbb5eed7481bfab46c80e8794c4fe576 for a full test report.

@boegel boegel merged commit 9d7bf20 into develop Feb 18, 2021
@boegel boegel deleted the ocaisa-patch-1 branch February 18, 2021 15:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

zlib issue EasyBuild 4.3.2

3 participants