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

slot conflict dev-libs/mpfr::0 when building 8.2.beta4 #497

Closed
strogdon opened this issue Jan 28, 2018 · 15 comments
Closed

slot conflict dev-libs/mpfr::0 when building 8.2.beta4 #497

strogdon opened this issue Jan 28, 2018 · 15 comments

Comments

@strogdon
Copy link
Contributor

strogdon commented Jan 28, 2018

I'm sure everyone will see this

!!! Multiple package instances within a single package slot have been pulled
!!! into the dependency graph, resulting in a slot conflict:

dev-libs/mpfr:0

  (dev-libs/mpfr-4.0.0-r1:0/6::gentoo, ebuild scheduled for merge) pulled in by
    >=dev-libs/mpfr-4.0.0 required by (sci-mathematics/sage-9999:0/0::sage-on-gentoo, ebuild scheduled for merge)
    ^^              ^^^^^                                                                                                                                               

  (dev-libs/mpfr-3.1.6:0/4::gentoo, installed) pulled in by
    dev-libs/mpfr:0/4= required by (sci-libs/linbox-1.5.2:0/0::sage-on-gentoo, installed)
                 ^^^^^

when building the subject beta4. But what to do, unmask dev-libs/mpfr-4.0.0-r1? If so won't this require rebuilding gcc? And can now gcc rebuild itself?

@kiwifb
Copy link
Collaborator

kiwifb commented Jan 28, 2018

I am planning to do a post on gentoo-science at some point. Note that the fun has already started on sage-release and sage-devel because of mpfr-4.
So mpfr-4 is masked in package.mask

# Matthias Maier <tamiko@gentoo.org> (26 Dec 2017)
# gcc depends on mpfr and this version changes soname. Spare users with
# FEATURES=-preserve-libs from completely frying their system.
>=dev-libs/mpfr-4.0.0

So most users will be just fine. The mpfr upgrade will trigger multiple package recompilation but gcc still has to be done manually (probably listed under revdep-rebuild). The fun bit is the rebuild of packages will break at the next to last one: giac with an ICE. The last package to rebuild is sage. Rebuilding gcc gets rid of the ICE - the debug message associated with the ICE clearly point to mpfr-3 in gcc being involved. I think something in giac could be done to fix the ICE without recompiling gcc but it is hard to figure out.
Vanilla sage user using sage's gcc get hit by the ICE too since mpfr is upgraded before giac and gcc is not rebuilt by the upgrade of mpfr.

@strogdon
Copy link
Contributor Author

So do you plan on sage-on-gentoo users doing their own unmask of mpfr or will you supply a sage-on-gentoo explicit unmask?

@kiwifb
Copy link
Collaborator

kiwifb commented Jan 28, 2018

I don't know yet. We only have a unmask file for some funtoo users and it is probably obsolete. As far as I am concerned definite action will only be required when 8.2 is released - people on 9999 should know about unmasking things sometimes, it's fair game. There are two timelines I don't have any control on:

  • release of sage-8.2
  • unmasking of mpfr-4 in Gentoo

So it will really depend on what's happening when sage reach the "rc" stage.

@strogdon
Copy link
Contributor Author

No ICE failures here in Prefix after unmasking mpfr-4.0.0-r1 when building giac in an attempt to build Sage. But giac cannot be rebuilt and neither can gcc. I feared this. Good thing it was Prefix. So beware!

@kiwifb
Copy link
Collaborator

kiwifb commented Jan 28, 2018

Was your libmpfr.so.3 file preserved? Is gcc even working?

@strogdon
Copy link
Contributor Author

Apparently not. The emerge @preserved-rebuild, which was requested, only rebuilt sci-libs/fplll-5.2.0. An emerge -1 giac fails as does emerge -1 gcc with

checking whether the C compiler works... no
configure: error: in `/storage/strogdon/gentoo-rap/var/tmp/portage/sci-mathematics/giac-1.4.9.45/work/giac-1.4.9':
configure: error: C compiler cannot create executables

@kiwifb
Copy link
Collaborator

kiwifb commented Jan 28, 2018

OK, you are just in the situation that the mask was supposed to prevent. It looks like your prefix must have FEATURES=-preserve-libs. If it is the default, that's something we'll have to bring to gentoo-alt mailing list.
To recover you may be able to link the system libmpfr.so.3 inside the prefix until you fix the compiler.
Note that the affected executables are the real compilers: cc1, cc1plus, f951 and so on in usr/libexec/gcc/$host_triplet/$gcc_version/ not gcc, g++ and gfortran which are front end compiler drivers.

@strogdon
Copy link
Contributor Author

FEATURES=-preserve-libs is not something I set and I don't recall any recent problems with preserving libs. The linking to system mpfr will probably not work. The host is debian.

@kiwifb
Copy link
Collaborator

kiwifb commented Jan 28, 2018

OK, forensic:

  • is there a libmpfr.so.3 inside the prefix?
  • if there is, does it link to an existing libmpfr.so.3.xx?
  • output of emerge --info gcc
  • send me /storage/strogdon/gentoo-rap/var/tmp/portage/sci-mathematics/giac-1.4.9.45/work/giac-1.4.9/config.log privately for further diagnostics.

@strogdon
Copy link
Contributor Author

OK linking to the debian mpfr seems to have done the trick. I now have a compiler and giac was successfully rebuild.

ls /storage/strogdon/gentoo-rap/usr/lib/libmpfr*
/storage/strogdon/gentoo-rap/usr/lib/libmpfr.so
/storage/strogdon/gentoo-rap/usr/lib/libmpfr.so.4
/storage/strogdon/gentoo-rap/usr/lib/libmpfr.so.4.1.6

@kiwifb
Copy link
Collaborator

kiwifb commented Jan 29, 2018

I think you may want to do some kind of report to gentoo-alt, this is suspicious behavior in prefix.

@strogdon
Copy link
Contributor Author

Bug https://bugs.gentoo.org/646090. I'm not exactly sure how to refer to 'old preserved libs`, by soname or by package version name? Feel free to comment to correct any inaccuracies.

@strogdon
Copy link
Contributor Author

strogdon commented Feb 1, 2018

It's interesting that in Prefix I didn't get an ICE when building giac. But I do get that on Gentoo.

@kiwifb
Copy link
Collaborator

kiwifb commented Feb 2, 2018

To be honest, it smells funny. That implies something is not linked to the right version in the right place (TM).

@kiwifb
Copy link
Collaborator

kiwifb commented Jul 12, 2018

mpfr-4 is out of mask. Hopefully everything is right here.

@kiwifb kiwifb closed this as completed Jul 12, 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

No branches or pull requests

2 participants