Skip to content

GCC multilib support#379

Merged
boegel merged 6 commits intoeasybuilders:developfrom
wpoely86:gcc
Mar 28, 2014
Merged

GCC multilib support#379
boegel merged 6 commits intoeasybuilders:developfrom
wpoely86:gcc

Conversation

@wpoely86
Copy link
Copy Markdown
Member

No description provided.

@boegel
Copy link
Copy Markdown
Member

boegel commented Mar 26, 2014

@wpoely86: same here, sync with develop please

* develop:
  fix typo
  don't hardcode default values for extra options
  refactor to make all extra_options return a list of tuples rather than a dict, conform the framework v1.x API
  enhance unit tests to verify type of return value of extra_options() static method
  refactor extra_options in existing easyblocks
  fix unit tests after changes in framework
  fix unit tests after changes in framework
  fix defining tmp_logdir config setting
  imkl: small remark in sanity check
  imkl: updated sanity check
  imkl: make version check more correct
  Reworked after remarks
  imkl: some cleanup and added some libs to the sanity check
  imkl: install everything with version 11.1.1
  IntelBase: allow to add lines to silent.cfg
  fix ordering in import line
  fix typo
  fix readline module specs in Modules/Setup.dist
  add sanity check for readline

Conflicts:
	easybuild/easyblocks/g/gcc.py
@wpoely86
Copy link
Copy Markdown
Member Author

Jenkins fails here because it needs easybuilders/easybuild-framework#895

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.

why not generalise this further, and allow passing a list:

'multilib': [None, "Build multilib gcc with specified targets", CUSTOM],

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.

Because you need a glibc of every arch that you wanna build...

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.

So? Those may be provided as dependencies in the GCC easyconfig, how can you tell?

As long as the default doesn't change it's OK, imho...

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.

If we stick to x86-64-*-linux*, the only options are m64, m32 and mx32 (the last one is not being used to the best of my knowledge?).

Of course, if EB goes the for ARM, POWERPC, etc, then this list becomes quite long 😉

@wpoely86
Copy link
Copy Markdown
Member Author

Jenkins please retest

@wpoely86
Copy link
Copy Markdown
Member Author

retest this please

Comment thread easybuild/easyblocks/g/gcc.py Outdated
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.

and then make this error message:

msg = "Using multilib requires 32-bit glibc (install one of %s, depending on your OS)" % ', '.join(glibc_32bit)
self.log.error(msg)

@wpoely86
Copy link
Copy Markdown
Member Author

@boegel good to go

Comment thread easybuild/easyblocks/g/gcc.py Outdated
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.

s/glibc-32bit/glibc-devel-32bit/

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.

hmm, hold, that's not enough to make the build work. diving deeper...

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.

@wpoely86: replace the last entry with gcc-c++-32, it seems like that's doing the trick
maybe add some documentation there too:

glibc_32bit = [
    "glibc.i686",  # RedHat-based
    "libc6-dev-i386",  # Debian, Ubuntu
    "gcc-c++-32",  # OpenSuSE, SLES
]

also, note the version number in libc6-dev-i386, not sure how worried we should be about that...

solving that would require regex support in check_os_dependency...

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.

libc6 is not a problem. If they ever go to libc7 (not going to happen IMHO), this will be the least of our worries 😉

@boegel
Copy link
Copy Markdown
Member

boegel commented Mar 28, 2014

Merging in, tested on OpenSuSE, works like a charm. Thanks @wpoely86!

boegel added a commit that referenced this pull request Mar 28, 2014
@boegel boegel merged commit d850c82 into easybuilders:develop Mar 28, 2014
@wpoely86 wpoely86 deleted the gcc branch March 28, 2014 13:41
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.

2 participants