View previous topic :: View next topic |
Author |
Message |
NTICompass Apprentice
Joined: 11 Jun 2008 Posts: 171 Location: /home/nticompass/
|
Posted: Fri Sep 06, 2013 2:34 pm Post subject: What is this ABI_X86 thing I keep hearing about? |
|
|
For one reason or another (I've been busy, I guess), it's been months since I've updated my Gentoo system. And, as you can imagine, this means there's a lot of packages (and USE changes) I need to go over. My system is "amd64" (multilib), but I have a lot of (manually keyworded) packages from "~amd64".
Anyway, in this update, I keep seeing "ABI_X86" USE flags. What is this? This is new. There's nothing in "eselect news list" about it.
Being the Gentooer I am, I did my research, and found this topic: https://forums.gentoo.org/viewtopic-t-953900-start-0.html. That seemed to show how to use it, but, are there any "real" docs for this? What does it do? What am I supposed to set "ABI_X86" to? I have a multilib system. I assume I want "64", but then what are "32" and "x32"? I'm confused at what I need to do here.
Emerge is yelling a lot about slot conflicts, and they seem to be related to "ABI_X86" (I forget the errors exactly, but I remember one was zlib).
So, is there any "official" docs about what "ABI_X86" is and how to use it? I'm surprised there isn't a sticky for this!
From the thread I linked, I found this page: http://kicherer.org/joomla/index.php/en/blog/liste/29-transition-of-emul-packages-to-true-multilib, but I want to know what I'm doing before I go keyword a bunch of stuff and edit my make.conf.
P.S. I have most of the "app-emulation/emul-linux-x86" packages (the ones I seemed to need at the time) in my "package.keywords" file. |
|
Back to top |
|
|
ascendant n00b
Joined: 13 Nov 2008 Posts: 60 Location: / (USA)
|
Posted: Fri Sep 06, 2013 11:50 pm Post subject: |
|
|
I won't pretend to be an expert on this, but I can share my similar experience.
As you've noticed, the multilib migration is in a sorry state of affairs where it comes to documentation.
The most obvious reason why there's no announcement or sticky is because all of the multilib stuff is ~. If you pull in some ~ packages because you decided to, I don't think the portage devs can or even should try to account for your specific combination of ~ and non-~ packages. The problem here is that one or more of your ~ packages now depend on a multilib package which means you have to migrate to multilib or un-~ that package. To complete the migration, you're probably going to have to keep adding ~ packages to your keywords file and probably some packages to package.mask to help portage resolve the slot conflicts.
As far as syntax for ABI_X86, x32 is 32-bit architecture, 64 is 64-bit and 32 is 32-bit-on-64-bit. I have ABI_X86=32 however since I'm on amd64, ABI_X86=64 is selected as well automatically, I can't turn it off. You can verify this with emerge --info. Which ones are selected in ABI_X86 makes portage decide whether or not to compile libraries for that ABI and install them. For clarity, those libraries were previously supplied by emul-linux-x86-* ebuilds as precompiled binaries. That would be why everything is blocking everything else. _________________ This post brought to you by a cheap router. |
|
Back to top |
|
|
Jaglover Watchman
Joined: 29 May 2005 Posts: 8291 Location: Saint Amant, Acadiana
|
|
Back to top |
|
|
ascendant n00b
Joined: 13 Nov 2008 Posts: 60 Location: / (USA)
|
Posted: Sat Sep 07, 2013 12:26 am Post subject: |
|
|
https://en.wikipedia.org/wiki/X32_ABI
Yeah, it's something else. This is might be incompatible with ABI=32 and I haven't seen any ebuilds using it. Probably still safe to ignore though, at least for now. _________________ This post brought to you by a cheap router. |
|
Back to top |
|
|
NTICompass Apprentice
Joined: 11 Jun 2008 Posts: 171 Location: /home/nticompass/
|
Posted: Sat Sep 07, 2013 5:12 pm Post subject: |
|
|
ascendant, I think you hit the nail on the head here. I think certain packages (including emul-linux-x86-*) are trying to install newer versions that contain the ABI_X86 USE flags. Guess I gotta edit those package.* files to stop them from being updated or update the right ones.
Thanks
P.S. Is there a quick way to see which packages have the ABI_X86 USE flag? |
|
Back to top |
|
|
broken_chaos Guru
Joined: 18 Jan 2006 Posts: 370 Location: Ontario, Canada
|
Posted: Sat Sep 07, 2013 6:13 pm Post subject: |
|
|
NTICompass wrote: | P.S. Is there a quick way to see which packages have the ABI_X86 USE flag? |
`quse` or `equery hasuse` should do it -- check their manpages for more detail. The USE flags to look for are abi_x86_32, abi_x86_64, and abi_x86_x32.
As far as what to do with ABI_X86 in general (more once it's in arch, or if you're using ~arch, as mixing arch/~arch gets messy with transitions like this), it should be safe to ignore it and let your profile and package dependencies handle it (changing USE-flags as portage asks, at most). Everything should work properly, and any packages that explicitly require 32/64/x32 libraries will be depending on the correct USE flag on those packages. The only system-wide defaults you can change are on multilib (enable/disable 32-bit libraries by default) or on x32 (enable/disable 32-bit or 64-bit libraries by default) by setting ABI_X86 (to some appropriate combination of 64 or 32) in make.conf.
To comment on x32, if you're happily using multilib or no-multilib, don't worry about x32 at all. It's a completely separate profile, ABI_X86=x32 only works on that profile, and I believe the profile may still be considered experimental (or at least unstable). |
|
Back to top |
|
|
steveL Watchman
Joined: 13 Sep 2006 Posts: 5153 Location: The Peanut Gallery
|
Posted: Sat Sep 07, 2013 10:27 pm Post subject: |
|
|
NTICompass wrote: | ascendant, I think you hit the nail on the head here. I think certain packages (including emul-linux-x86-*) are trying to install newer versions that contain the ABI_X86 USE flags. Guess I gotta edit those package.* files to stop them from being updated or update the right ones.
Thanks :)
P.S. Is there a quick way..? |
You can use '--autounmask-write y' for the specific emerge run.
I use update to handle it; there's output of an example unmasking texlive-2011 here (scroll past the portage output to see where hitting P unmasks everything needed. The display in the next post is very old: it uses --jobs now.) It means I can choose which packages to unmask (and it does the dependencies automatically), and i don't need to run dispatch-conf.
You can also use --recover if, for instance, you have lost your keywords file: that skips downgrades, and unmasks installed packages without asking. It was written for a friend who'd messed up his system: istr he'd lost his world file as well. In his honour, it's marked 'rehab' in the code. ;)
Disclaimer: I maintain it, for my sins. |
|
Back to top |
|
|
mv Watchman
Joined: 20 Apr 2005 Posts: 6747
|
Posted: Sun Sep 08, 2013 6:09 am Post subject: |
|
|
broken_chaos wrote: | NTICompass wrote: | P.S. Is there a quick way to see which packages have the ABI_X86 USE flag? |
`quse` or `equery hasuse` should do it -- check their manpages for more detail. The USE flags to look for are abi_x86_32, abi_x86_64, and abi_x86_x32. |
Quicker: Code: | eix -cU "abi_x86_*" | To find out for a particular package which versions do have it, look at the output of and look for ABI_X86=. Or a one-liner which gives you all versions:
Code: | DEFAULT_FORMAT=normal FORMAT='<availableversions:A>' A='<category>/<name>-<version>#<use*>\n' eix | sed -ne 's/#.*ABI_X86=.*//p' |
|
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|