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

Config changes needed to build on CentOS 6 with newer GCC #13

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from

Conversation

minddrive
Copy link

These changes will probably need to be handled in a better way, but wanted
to start with what I have now to determine the proper fix moving forward.

Due to a newer-than-standard GCC being installed on our system (6.3.1),
some additional changes (mostly pulled from the Ubuntu 16.04 config) were
needed to get a full build.

The 'url' additions to device-mapper and libvirt were needed to allow
the tarballs to be extracted.

The '--with-user'/'--with-group' additions to device-mapper were needed
to build as non-root (otherwise installation of certain files failed as
it tried to chown them).

As it stands, not everyone should be building with a newer GCC on CentOS 6,
so probably finding a way to conditionalize on the version of GCC would be
a better solution, but I'm unsure of how to do this, being a bit new to buildout.
Suggestions greatly appreciated.

Due to a newer-than-standard GCC being installed on our system (6.3.1),
some additional changes (mostly pulled from the Ubuntu 16.04 config) were
needed to get a full build.

The 'url' additions to device-mapper and libvirt were needed to allow
the tarballs to be extracted.

The '--with-user'/'--with-group' additions to device-mapper were needed
to build as non-root (otherwise installation of certain files failed as
it tried to chown them).
@@ -7,11 +7,23 @@ parts = zlib ncurses readline openssl openssh libgpg-error libgcrypt gettext lib
gnu
recipe = hexagonit.recipe.cmmi
version = 1.02.28
configure-options = --prefix=${options:prefix} --disable-rpath --libdir=${options:prefix}/lib64 --disable-selinux
configure-options = --prefix=${options:prefix} --disable-rpath --libdir=${options:prefix}/lib64 --disable-selinux --with-user=$USER --with-group=$GROUP
url = ${urls:source}/${:name}-${:version}.tgz
Copy link
Contributor

Choose a reason for hiding this comment

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

The correct url should be with .tar.gz. There was a sync problem between our external and internal source repositories. Our internal repository contained .tar.gz archives while the external incorrectly had only tgz archives for libvirt and device-mapper. I fixed this now, and the files now use tar.gz, so you should remove the url definitions.

Copy link
Author

Choose a reason for hiding this comment

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

Good to know about this one, thanks!

@wiggin15
Copy link
Contributor

Unfortunately this change breaks our local setup. The patches for libgcrypt seem to cause redefinition errors for the patched functions, like this:

../mpi/.libs/libmpi.a(ec.o): In function `_gcry_mpih_cmp':
ec.c:(.text+0x2dd): multiple definition of `_gcry_mpih_cmp'
../mpi/.libs/libmpi.a(mpi-add.o):mpi-add.c:(.text+0x2dd): first defined here

@minddrive
Copy link
Author

Yeah, I suspect it's breaking the local setup since you're using the usual GCC. I'm unsure how to conditionalize for when there's a newer GCC installed; any suggestions would be greatly welcome.

@wiggin15
Copy link
Contributor

I think that we can try to bump libgcrypt to 1.7.3 and libgpg-error to 1.22 in all configurations. These versions should work for both gcc's. This way we can eliminate the need for patches for libgcrypt and we'll need less explicit options in ubuntu-16.04 and in redhat-64-bit-with-libvirt. I'll need to run this on our full matrix of supported platform to see if that will work.

jenkins-infinidat pushed a commit that referenced this pull request Mar 13, 2018
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