Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
dropping ABI_X86="32" partially
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Portage & Programming
View previous topic :: View next topic  
Author Message
krinn
Watchman
Watchman


Joined: 02 May 2003
Posts: 7470

PostPosted: Thu Jul 05, 2018 2:16 pm    Post subject: dropping ABI_X86="32" partially Reply with quote

i'm bored by ABI_X86="64 32" and while i wish keep "some" 32, i don't want my system to keep building things in 32bits that i will just never use.

the problem is the masking:
* i can mask abi_x86_32 and unmask it per package (that's dangerous if i forget something important, but the easiest to do as i suppose the package list will be shorter)
* or leave abi_x86_32 and mask it per package (that's the top boring as the list of package will be huge and need update on any new package)

Anyone has done it? If so can you provide solution you have taken and the mask/unmask file.

edit: so i decide to take the masking per package safer path.
here's my way to get list of package to review : equery h abi_x86_32 | cut -d"]" -f2 | sed 's/-[0-9].*/ -abi_x86_32/' > /etc/portage/package.use/disable_abi_32
Back to top
View user's profile Send private message
ali3nx
l33t
l33t


Joined: 21 Sep 2003
Posts: 722
Location: Winnipeg, Canada

PostPosted: Thu Jul 05, 2018 2:47 pm    Post subject: Reply with quote

When the ABI flag was introduced i quickly discovered that using ABI_X86="64 32" on systems that required 32 bit libraries was far less effort than per package unmasking.

With that mentioned I have had to mask abi_x86_32 per package on a few rare occasions. It is entirely possible but doing this on many packages is i believe just as much effort as unmasking each package requiring abi_x86_32.

dev-lang/mono some months ago for example as a dependency for ~arch versions of wine-staging wouldn't build with abi_x86_32 so disabling it in package.use immediately fixed the issue at the time.

Code:
dev-lang/mono -abi_x86_32


I'm curious as well if there is a better way for multiple packages as well while still having all ABI_X86="64 32" available. I suspect portage is just coded to provide all, per package or nothing however but there's been no shortage of smart people around here for a decade or two that likely may know something I've missed the news update about
_________________
Compiling Gentoo since version 1.4
Thousands of Gentoo Installs Completed
Emerged on every continent but Antarctica
Compile long and Prosper!


Last edited by ali3nx on Thu Jul 05, 2018 3:08 pm; edited 1 time in total
Back to top
View user's profile Send private message
fedeliallalinea
Administrator
Administrator


Joined: 08 Mar 2003
Posts: 30917
Location: here

PostPosted: Thu Jul 05, 2018 2:58 pm    Post subject: Reply with quote

I'm in a multilib profile and I never masked abi_x86_32 and system manage that very well. I don't have ABI_x86="64 32" variable in make.conf and the only packages compiled in 32bit is for nvidia-drivers and bublebee:
Code:
# eix --installed-with-use abi_x86_32 -c
[I] dev-libs/libpthread-stubs (0.4@05/05/2018): Pthread functions stubs for platforms missing them
[I] sys-apps/sandbox (2.13@03/25/2018): sandbox'd LD_PRELOAD hack
[I] sys-libs/zlib (1.2.11-r2@07/05/2018): Standard (de)compression library
[I] x11-base/xcb-proto (1.13@06/22/2018): X C-language Bindings protocol headers
[I] x11-drivers/nvidia-drivers (396.24-r1@07/05/2018): NVIDIA Accelerated Graphics Driver
[I] x11-libs/libX11 (1.6.5-r1@05/22/2018): X.Org X11 library
[I] x11-libs/libXau (1.0.8-r1@05/22/2018): X.Org X authorization library
[I] x11-libs/libXdmcp (1.1.2-r2@05/22/2018): X.Org X Display Manager Control Protocol library
[I] x11-libs/libXext (1.3.3-r1@05/22/2018): X.Org Xext library
[I] x11-libs/libvdpau (1.1.1@07/05/2018): VDPAU wrapper and trace libraries
[I] x11-libs/libxcb (1.13@04/22/2018): X C-language Bindings library
Found 11 matches

_________________
Questions are guaranteed in life; Answers aren't.
Back to top
View user's profile Send private message
krinn
Watchman
Watchman


Joined: 02 May 2003
Posts: 7470

PostPosted: Thu Jul 05, 2018 2:58 pm    Post subject: Reply with quote

i did switch to amd64 not so far again only, so i have just use a multilib profile and let it go.
but it's boring to see 32bits version of some packages (seriously, who need 32 and 64bits version of sys-apps/file???)
i'm quickpkg my stuff before going into havoc, while waiting comments from someone that has taken the ABI="64" path.
Back to top
View user's profile Send private message
krinn
Watchman
Watchman


Joined: 02 May 2003
Posts: 7470

PostPosted: Thu Jul 05, 2018 3:03 pm    Post subject: Reply with quote

fedeliallalinea:
How you did, here's my result
Code:
eix --installed-with-use abi_x86_32 -c
Found 276 matches
Back to top
View user's profile Send private message
Jaglover
Watchman
Watchman


Joined: 29 May 2005
Posts: 8291
Location: Saint Amant, Acadiana

PostPosted: Thu Jul 05, 2018 3:03 pm    Post subject: Reply with quote

You sure you still need 32 bit? I switched all my boxes over to no-multilib a year or more ago and never looked back.
_________________
My Gentoo installation notes.
Please learn how to denote units correctly!
Back to top
View user's profile Send private message
Cuong Nguyen
Apprentice
Apprentice


Joined: 18 Jan 2018
Posts: 152

PostPosted: Thu Jul 05, 2018 3:04 pm    Post subject: Reply with quote

Calculate Linux - a Gentoo derivative binary distro - uses ABI_X86="64" and put per package USE-flags abi_x86_32 in default profile package.use https://paste.pound-python.org/show/YFAHPGqLjew4ERSGXxmT/
Back to top
View user's profile Send private message
fedeliallalinea
Administrator
Administrator


Joined: 08 Mar 2003
Posts: 30917
Location: here

PostPosted: Thu Jul 05, 2018 3:05 pm    Post subject: Reply with quote

I enable abi_x86_32 only when a package need it, I never added 32 in ABI_X86 varibale in make.conf
_________________
Questions are guaranteed in life; Answers aren't.
Back to top
View user's profile Send private message
krinn
Watchman
Watchman


Joined: 02 May 2003
Posts: 7470

PostPosted: Thu Jul 05, 2018 3:06 pm    Post subject: Reply with quote

Jaglover wrote:
You sure you still need 32 bit? I switched all my boxes over to no-multilib a year or more ago and never looked back.

maybe i should had just goes no multilib, but i'm not willing to migrate that box (again).
Back to top
View user's profile Send private message
krinn
Watchman
Watchman


Joined: 02 May 2003
Posts: 7470

PostPosted: Thu Jul 05, 2018 3:09 pm    Post subject: Reply with quote

Cuong Nguyen wrote:
Calculate Linux - a Gentoo derivative binary distro - uses ABI_X86="64" and put per package USE-flags abi_x86_32 in default profile package.use https://paste.pound-python.org/show/YFAHPGqLjew4ERSGXxmT/

many thanks for the list!!!
i might goes this way then, i'm still thinking about it, but thank you, a real good base to work on.
some in the list are not my taste : qtcore, who need that in 32bits?
Back to top
View user's profile Send private message
Ant P.
Watchman
Watchman


Joined: 18 Apr 2009
Posts: 6920

PostPosted: Thu Jul 05, 2018 3:21 pm    Post subject: Reply with quote

I've got a long list of 32-bit cruft installed (steam is the worst software I've used in 20 years...) but I enable it only when portage complains:
Code:
 ~ $ eix --installed-with-use abi_x86_32 -c
Found 129 matches
 ~ $ eix --installed -c
Found 967 matches
Back to top
View user's profile Send private message
Jaglover
Watchman
Watchman


Joined: 29 May 2005
Posts: 8291
Location: Saint Amant, Acadiana

PostPosted: Thu Jul 05, 2018 3:27 pm    Post subject: Reply with quote

32-bit with multilib is like spiderweb, the packages depend on each other 32 bit support. It takes time to break out partially as krinn wishes.
_________________
My Gentoo installation notes.
Please learn how to denote units correctly!
Back to top
View user's profile Send private message
ali3nx
l33t
l33t


Joined: 21 Sep 2003
Posts: 722
Location: Winnipeg, Canada

PostPosted: Thu Jul 05, 2018 3:27 pm    Post subject: Reply with quote

The per package unmasking is a wonderful thing but then you have to maintain all of those extra use flags.

I replied to someone on these forums last year that didn't know you could global unmask ABI_X86="64 32" in make.conf and that person's package.* files were one of the greatest examples of gentoo user tenacity i've witnessed in over ten years
_________________
Compiling Gentoo since version 1.4
Thousands of Gentoo Installs Completed
Emerged on every continent but Antarctica
Compile long and Prosper!
Back to top
View user's profile Send private message
krinn
Watchman
Watchman


Joined: 02 May 2003
Posts: 7470

PostPosted: Thu Jul 05, 2018 4:12 pm    Post subject: Reply with quote

i have taken fedeliallalinea's path, ABI="64" set and i will reenable abi_x86_32 per package ; and oh well, let's see what happen :)
i'll tell you about the result later, right now i have 276 packages to rebuild
Back to top
View user's profile Send private message
Jaglover
Watchman
Watchman


Joined: 29 May 2005
Posts: 8291
Location: Saint Amant, Acadiana

PostPosted: Thu Jul 05, 2018 4:41 pm    Post subject: Reply with quote

It is like this: package A has abi_x86_32 because package B has it. And package B has it because package C has it. And the only reason package C has it is because package A has it. You go ahead and try to break this mess.
_________________
My Gentoo installation notes.
Please learn how to denote units correctly!
Back to top
View user's profile Send private message
Ant P.
Watchman
Watchman


Joined: 18 Apr 2009
Posts: 6920

PostPosted: Thu Jul 05, 2018 4:58 pm    Post subject: Reply with quote

I wish autounmask wasn't such a dumb implementation for that reason. If I want to install things like wine and steam-runtime that have about a hundred ABI_X86 things to tweak, it could recognise all of them are coming from one package and name the package.use/$file after that. And then add the file to the package's contents, so uninstalling it removes those deps. Or better yet, why should we have to specify the obvious at all? If I have app-emulation/wine ABI_X86: 64 32 there should be a make.conf setting to tell portage to figure out the rest and not bother me.

I'd say something similar ought to be done for all the dumb packages that USE_DEPEND on PYTHON_TARGETS=python2_7 but don't p.use.mask it that way - but tautologies like that should just be a repoman violation.


Last edited by Ant P. on Thu Jul 05, 2018 5:00 pm; edited 1 time in total
Back to top
View user's profile Send private message
Cuong Nguyen
Apprentice
Apprentice


Joined: 18 Jan 2018
Posts: 152

PostPosted: Thu Jul 05, 2018 4:58 pm    Post subject: Reply with quote

Jaglover wrote:
It is like this: package A has abi_x86_32 because package B has it. And package B has it because package C has it. And the only reason package C has it is because package A has it. You go ahead and try to break this mess.

There are some Gentoo distros use ABI_X86="64 32" in the make.conf and multilib toolchain: Sabayon Redcore Pentoo. I think no-multilib toolchain is only good for servers. If you are installing desktop, you might hit an application requires 32-bit libraries and no-multilib wont allow running gcc -m32.
Back to top
View user's profile Send private message
krinn
Watchman
Watchman


Joined: 02 May 2003
Posts: 7470

PostPosted: Thu Jul 05, 2018 9:42 pm    Post subject: Reply with quote

Cuong Nguyen wrote:
no-multilib wont allow running gcc -m32.

it should, you just ask gcc to produce 32bits code, not running that code and your x86-64 cpu is able to produce that x86-32 code.
but i get what you mean ; that's just to bug you while my system is rebuilding ;)
Back to top
View user's profile Send private message
Cuong Nguyen
Apprentice
Apprentice


Joined: 18 Jan 2018
Posts: 152

PostPosted: Thu Jul 05, 2018 9:48 pm    Post subject: Reply with quote

krinn wrote:
Cuong Nguyen wrote:
no-multilib wont allow running gcc -m32.

it should, you just ask gcc to produce 32bits code, not running that code and your x86-64 cpu is able to produce that x86-32 code.


Then tons of dependencies reported missed in linking, after running nearly hour compiling :)
Back to top
View user's profile Send private message
krinn
Watchman
Watchman


Joined: 02 May 2003
Posts: 7470

PostPosted: Thu Jul 05, 2018 11:06 pm    Post subject: Reply with quote

Here's my results:
Code:
eix --installed-with-use abi_x86_32 -c
[I] sys-apps/sandbox (2.13{tbz2}@05/07/2018): sandbox'd LD_PRELOAD hack

It's force by profile, and i'm more than ok with a 32bits sandbox

my only issue so far is broken 32bits nvidia-drivers, and worst, it do install them even i have disable it!
Code:
equery f nvidia-drivers | grep lib32 | wc -l
81
emerge -pv nvidia-drivers
...
[binary   R    ] x11-drivers/nvidia-drivers-396.24-r1:0/396::gentoo  USE="X acpi driver kms multilib tools -compat -gtk3 -pax_kernel -static-libs -uvm -wayland" ABI_X86="(64) -32 (-x32)" 0 KiB
emerge -pv sandbox
[binary   R    ] sys-apps/sandbox-2.13::gentoo  ABI_X86="(32) (64) (-x32)" 0 KiB


and guess who is broken ;)
Code:
[ 29% ]  *   broken /usr/lib32/libnvidia-fbc.so.396.24 (requires libX11.so.6
libXext.so.6)
 *   broken /usr/lib32/libnvidia-ifr.so.396.24 (requires libX11.so.6)
 *   broken /usr/lib32/libvdpau_nvidia.so.396.24 (requires libX11.so.6
libXext.so.6)
 *   broken /usr/lib32/opengl/nvidia/lib/libGLX.so.0 (requires libX11.so.6
libXext.so.6)
 *   broken /usr/lib32/opengl/nvidia/lib/libGLX_nvidia.so.396.24 (requires libX11.so.6
libXext.so.6)

Back to top
View user's profile Send private message
Anon-E-moose
Watchman
Watchman


Joined: 23 May 2008
Posts: 6098
Location: Dallas area

PostPosted: Fri Jul 06, 2018 10:04 am    Post subject: Reply with quote

I have about 60 some odd packages with abi_x86_32 in my package.use file (out of some 850~ packages) because I was running wine at one point.
I have a newer laptop that I started as 64 only and it works just fine.

Code:
app-arch/bzip2 abi_x86_32
dev-libs/elfutils abi_x86_32 static-libs
dev-libs/expat abi_x86_32
dev-libs/gmp abi_x86_32
dev-libs/libffi abi_x86_32
dev-libs/libgcrypt abi_x86_32
dev-libs/libgpg-error abi_x86_32
dev-libs/libpthread-stubs abi_x86_32
dev-libs/libxml2 abi_x86_32
dev-libs/libxslt abi_x86_32
dev-libs/nettle abi_x86_32
dev-libs/openssl abi_x86_32
media-libs/alsa-lib abi_x86_32
media-libs/libtxc_dxtn abi_x86_32
media-libs/fontconfig abi_x86_32
media-libs/freetype abi_x86_32 -cleartype_hinting
media-libs/glu abi_x86_32
media-libs/lcms abi_x86_32
media-libs/libjpeg-turbo abi_x86_32
media-libs/libpng abi_x86_32 apng
media-libs/mesa abi_x86_32 gles1 gles2 openvg xa xvmc video_cards_virgl -llvm -video_cards_radeon
media-libs/openal abi_x86_32
media-libs/tiff abi_x86_32
media-sound/gsm abi_x86_32
media-sound/mpg123 abi_x86_32
sys-apps/attr abi_x86_32
sys-devel/gettext abi_x86_32
sys-devel/llvm abi_x86_32
sys-fs/eudev -gudev -modutils kmod abi_x86_32
sys-libs/gpm abi_x86_32
sys-libs/ncurses abi_x86_32
sys-libs/zlib abi_x86_32
virtual/glu abi_x86_32
virtual/jpeg abi_x86_32
virtual/libffi abi_x86_32
virtual/libiconv abi_x86_32
virtual/libintl abi_x86_32
virtual/libudev abi_x86_32
virtual/opengl abi_x86_32
x11-libs/libdrm libkms abi_x86_32
x11-libs/libva abi_x86_32
x11-libs/libva-vdpau-driver abi_x86_32
x11-libs/libvdpau abi_x86_32
x11-libs/libX11 abi_x86_32
x11-libs/libXau abi_x86_32
x11-libs/libxcb abi_x86_32
x11-libs/libXcomposite abi_x86_32
x11-libs/libXcursor abi_x86_32
x11-libs/libXdamage abi_x86_32
x11-libs/libXdmcp abi_x86_32
x11-libs/libXext abi_x86_32
x11-libs/libXfixes abi_x86_32
x11-libs/libXi abi_x86_32
x11-libs/libXinerama abi_x86_32
x11-libs/libXrandr abi_x86_32
x11-libs/libXrender abi_x86_32
x11-libs/libxshmfence abi_x86_32
x11-libs/libXv abi_x86_32
x11-libs/libXvMC abi_x86_32
x11-libs/libXxf86dga abi_x86_32
x11-libs/libXxf86vm abi_x86_32
x11-base/xcb-proto abi_x86_32


I won't swear that all of the above are needed, as it used to require x11-proto/* files to be there and I cleaned those out just recently.

If not running wine (or some 32 bit binary) one is not likely to need 32 bit at all.
_________________
PRIME x570-pro, 3700x, 6.1 zen kernel
gcc 13, profile 17.0 (custom bare multilib), openrc, wayland
Back to top
View user's profile Send private message
krinn
Watchman
Watchman


Joined: 02 May 2003
Posts: 7470

PostPosted: Fri Jul 06, 2018 11:44 am    Post subject: Reply with quote

yes, wine will make the list grow again for sure.
Code:
USE="abi_x86_32" emerge -pv1 wine
Total: 152 packages (152 reinstalls), Size of downloads: 0 KiB

8O
Back to top
View user's profile Send private message
Anon-E-moose
Watchman
Watchman


Joined: 23 May 2008
Posts: 6098
Location: Dallas area

PostPosted: Fri Jul 06, 2018 12:23 pm    Post subject: Reply with quote

Out of those 152, I would imagine fully half won't really need the abi 32 flag.

I chose the long way and just edited the package use file every time I got a block when installing wine.

And of course X needs some 32 bit flags, just because you might want to run 32 bit binaries.


I'm seriously considering just changing my multi-lib to 64 bit only since I quit running wine (in favor of qemu and some version of windows instead)
_________________
PRIME x570-pro, 3700x, 6.1 zen kernel
gcc 13, profile 17.0 (custom bare multilib), openrc, wayland
Back to top
View user's profile Send private message
krinn
Watchman
Watchman


Joined: 02 May 2003
Posts: 7470

PostPosted: Fri Jul 06, 2018 12:33 pm    Post subject: Reply with quote

here it is for curiosity
https://paste.pound-python.org/show/J62xOEzMzf3wV0GhL1SE/

going from ~250, downto 1, then raise back to ~150 just for wine
doesn't look worth the effort :D
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Portage & Programming All times are GMT
Page 1 of 1

 
Jump to:  
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