View previous topic :: View next topic |
Author |
Message |
cz0 Guru
Joined: 13 Jun 2005 Posts: 310 Location: /earth/russia/moscow
|
Posted: Fri Nov 08, 2024 11:24 am Post subject: nomultilib Desktop - any brave folks out there? |
|
|
Hi, folks.
Recently I managed to get 64-bit version of legacy PCB CAD software to run on my computer giving me a chance to make an attempt to get rid of multilib.
I checked my /opt directory and it seems that there are no ELF32 binaries left on my system except libraries.
But I was slightly frighten by various discussions mentioning that it will be not easy to get multilib back if I ever need it.
My decade old Lenovo X230 seems to be to weak for any of this modern Steam or whatever games and, what is worth - I never seem to have time for this. Instead, I may occasionally run 64-bit WinXP VM in Virtual Box.
On the other hand, my system will benefit from 64-bit only set by reducing compilation time on aging hardware.
I wonder if there are any brave enough folks running pure 64-bit desktop and if there are any disadvantages for every-day use scenario in case system is used primitively for Internet surfing, programming and engineering using in-place compiled software.
Thank you. |
|
Back to top |
|
|
pietinger Moderator
Joined: 17 Oct 2006 Posts: 5095 Location: Bavaria
|
|
Back to top |
|
|
logrusx Advocate
Joined: 22 Feb 2018 Posts: 2414
|
Posted: Fri Nov 08, 2024 12:15 pm Post subject: |
|
|
pietinger wrote: |
Yes, the way back is very hard ... |
I'm not sure if it's even worth it, given that with the binhost one can bring up a new and complete installation in a matter of hours. I say hours because last I did emerge --emptytree it took me like I think 6 hours to reemerge ~1600 packages (during 17.1->23.0 migration).
So I don't think it's that scary.
On the other hand the set of packages built for both 32 and 64 bit can be quite limited, so I don't see much of a benefit, even for older hardware. Especially with the above-mentioned binhost available...
Best Regards,
Georgi
p.s. actually, is going back that hard with the binhost available?
Last edited by logrusx on Fri Nov 08, 2024 3:17 pm; edited 2 times in total |
|
Back to top |
|
|
Perfect Gentleman Veteran
Joined: 18 May 2014 Posts: 1255
|
Posted: Fri Nov 08, 2024 1:35 pm Post subject: |
|
|
Me! Me! Me! |
|
Back to top |
|
|
Banana Moderator
Joined: 21 May 2004 Posts: 1725 Location: Germany
|
|
Back to top |
|
|
Zucca Moderator
Joined: 14 Jun 2007 Posts: 3695 Location: Rasi, Finland
|
Posted: Fri Nov 08, 2024 4:24 pm Post subject: |
|
|
I use no-multilib everywhere except on boxes where I might install some binary distributed games (gog.com). On those same machines I make sure I use glibc as the system libc. _________________ ..: Zucca :..
My gentoo installs: | init=/sbin/openrc-init
-systemd -logind -elogind seatd |
Quote: | I am NaN! I am a man! |
|
|
Back to top |
|
|
logrusx Advocate
Joined: 22 Feb 2018 Posts: 2414
|
Posted: Fri Nov 08, 2024 6:08 pm Post subject: |
|
|
I think having -abi_x86_32 in make.conf will bring the 32bit enabled packages to minimum. For me it's 3 packages.
However I'm not sure how good of a practice that is. Before that it was 9 packages. Without it, portage wants to enable 32 bit abi on those six again. What I was able to find out it the profile enabled 32 bit abi on libomp and it brought it in for clang-runtime, compiler-rt and compiler-rt-sanitizers. The other two are virtual/libcrypt and libxcrypt.
I let it install the binary packages and everything seems to be fine.
However I don't think those will significantly decrease compilation time. Also there's the binhost.
Best Regards,
Georgi |
|
Back to top |
|
|
pietinger Moderator
Joined: 17 Oct 2006 Posts: 5095 Location: Bavaria
|
Posted: Fri Nov 08, 2024 6:49 pm Post subject: |
|
|
logrusx,
the main reason for a no-multilib system is: You can now disable 32bit in the kernel ... and this is increasing kernel security!
See also KSPP: https://kspp.github.io/Recommended_Settings ->
Code: | # Remove additional (32-bit) attack surface, unless you really need them.
# CONFIG_COMPAT is not set
# CONFIG_IA32_EMULATION is not set
# CONFIG_X86_X32 is not set
# CONFIG_X86_X32_ABI is not set
# CONFIG_MODIFY_LDT_SYSCALL is not set |
_________________ https://wiki.gentoo.org/wiki/User:Pietinger |
|
Back to top |
|
|
logrusx Advocate
Joined: 22 Feb 2018 Posts: 2414
|
Posted: Fri Nov 08, 2024 7:25 pm Post subject: |
|
|
pietinger wrote: |
the main reason for a no-multilib system is: You can now disable 32bit in the kernel ... and this is increasing kernel security! |
I didn't know that, thanks for mentioning it!
pietinger wrote: | See also KSPP |
I remember some time ago I actually looked at it, but didn't like some of the settings and it might actually have been exactly because I needed 32bit support back then.
However OP's main concern seems to be compilation time, which I argue will not be decreased in any noticeable way by going no-multilib. Sure there are other good reasons to do so.
On another note I remember not having 32bit support for wine for a very long time (for compilation time reasons) and that's the only thing I can think of needs it. So I guess 32bit support is something niche nowadays. I still hesitate going full no-multilib though.
Best Regards,
Georgi |
|
Back to top |
|
|
dmpogo Advocate
Joined: 02 Sep 2004 Posts: 3425 Location: Canada
|
Posted: Fri Nov 08, 2024 7:55 pm Post subject: |
|
|
And I use some legacy code for which I need to have gcc-3.3.6 tar ball (well libstdc++-v3 ) |
|
Back to top |
|
|
bstaletic Guru
Joined: 05 Apr 2014 Posts: 367
|
Posted: Fri Nov 08, 2024 8:51 pm Post subject: |
|
|
Last time I tried the no-multilib profile, I was fine for a while.
Then I realized that cross-arm-linux-gnueabihf toolchain couldn't be bootstrapped, because no-multilib lacks gnu/stubs-32.h
So, even though I only needed that toolchain for building some RPi projects, I had to go back to the multilib profile.
I don't know what that means for the kernel config. I'm playing safe and keeping 32bit support enabled. |
|
Back to top |
|
|
cz0 Guru
Joined: 13 Jun 2005 Posts: 310 Location: /earth/russia/moscow
|
Posted: Sat Nov 09, 2024 8:52 am Post subject: |
|
|
bstaletic wrote: |
Then I realized that cross-arm-linux-gnueabihf toolchain couldn't be bootstrapped, because no-multilib lacks gnu/stubs-32.h
So, even though I only needed that toolchain for building some RPi projects, I had to go back to the multilib profile.
I don't know what that means for the kernel config. I'm playing safe and keeping 32bit support enabled. |
Thank you for pointing this out, I'm using arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi and need to check if no-multilib can brake it. Most likely not, but I should go through the binaries and check. |
|
Back to top |
|
|
mega_flow Tux's lil' helper
Joined: 26 Jun 2016 Posts: 95 Location: Belgium
|
Posted: Sat Nov 09, 2024 9:25 am Post subject: |
|
|
running nomultilib for 2 year now
my parent file
gentoo:default/linux/amd64/23.0/no-multilib/systemd
gentoo:targets/desktop/gnome/systemd
LarryTheCow:extra
my build server is 64-bit only . and with flatpak i no longer need to build 32 bit
ps it is not hard to switch back u need 3 progs for this glibc gcc and sys-apps/sandbox and you can fetch this from the binhost _________________ default/linux/amd64/23.0/no-multilib/gnome/systemd gnome:46 |
|
Back to top |
|
|
logrusx Advocate
Joined: 22 Feb 2018 Posts: 2414
|
Posted: Sat Nov 09, 2024 10:46 am Post subject: |
|
|
mega_flow wrote: |
ps it is not hard to switch back u need 3 progs for this glibc gcc and sys-apps/sandbox and you can fetch this from the binhost |
I had that suspicion, thanks for confirming. It looks like binhost solves more problems than intended for :)
Best Regards,
Georgi |
|
Back to top |
|
|
cz0 Guru
Joined: 13 Jun 2005 Posts: 310 Location: /earth/russia/moscow
|
Posted: Sat Nov 09, 2024 12:35 pm Post subject: |
|
|
Code: |
# find / -mount -name 'stubs-32.h'
/usr/include/gnu/stubs-32.h
# equery belongs /usr/include/gnu/stubs-32.h
* Searching for /usr/include/gnu/stubs-32.h ...
sys-libs/glibc-2.40-r5 (/usr/include/gnu/stubs-32.h)
[ebuild R ] sys-libs/glibc-2.40-r5:2.2::gentoo USE="caps cet multiarch (multilib) ssp stack-realign (static-libs) -audit -compile-locales (-custom-cflags) -doc -gd -hash-sysv-compat -headers-only -multilib-bootstrap -nscd -perl -profile (-selinux) -suid -systemd -systemtap -test (-vanilla)" 0 KiB
|
Looks like a also mey need this for arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi. Probably need to investigate feather. |
|
Back to top |
|
|
cz0 Guru
Joined: 13 Jun 2005 Posts: 310 Location: /earth/russia/moscow
|
Posted: Sat Nov 09, 2024 4:21 pm Post subject: |
|
|
I also had ABI_X86="64 32" in my make.conf forcing 32-bit binaries for 242 libs in my system. Just commented this out and rebuilding all this stuff. |
|
Back to top |
|
|
Goverp Advocate
Joined: 07 Mar 2007 Posts: 2179
|
Posted: Sat Nov 09, 2024 4:33 pm Post subject: |
|
|
logrusx wrote: | I think having -abi_x86_32 in make.conf will bring the 32bit enabled packages to minimum. For me it's 3 packages. ... |
Of course it depends on what packages you have. I have Steam, and I presume that is why I have 93 packages with abi_x86_32!
There might be obsolete entries in that - I've not tried cleaning the list up, and it started several years ago. _________________ Greybeard |
|
Back to top |
|
|
logrusx Advocate
Joined: 22 Feb 2018 Posts: 2414
|
Posted: Sat Nov 09, 2024 4:38 pm Post subject: |
|
|
Goverp wrote: | logrusx wrote: | I think having -abi_x86_32 in make.conf will bring the 32bit enabled packages to minimum. For me it's 3 packages. ... |
Of course it depends on what packages you have. I have Steam, and I presume that is why I have 93 packages with abi_x86_32!
There might be obsolete entries in that - I've not tried cleaning the list up, and it started several years ago. |
Steam and Wine are stories on their own. As we say in my country, that's another beer. However OP explicitly stated their laptop is too old for steam and games.
Best Regards,
Georgi |
|
Back to top |
|
|
cz0 Guru
Joined: 13 Jun 2005 Posts: 310 Location: /earth/russia/moscow
|
Posted: Sat Nov 09, 2024 8:02 pm Post subject: |
|
|
That's true. This is 2013 i5-3230M with 12" screen. I never played any game on this laptop (as well as on any of my other systems) since purchase and not going. Therefore Steam or GoG are not in scope. Wine is, probably, either - I have WM for Windows software that I don't run that often (and probably can refuse). The only thing that I still use occasionally is Cadsoft Eagle PCB design tool. But since version 7.3 they released native 64-bit executable freeing me from keeping 32-bit libraries. Moreover, since acquisition by Autodesk years ago, they changes licensing model to subscription - this is strongly "no-way" for me and I keep this CAD only for my old projects with new designs started only in KiCAD. |
|
Back to top |
|
|
cz0 Guru
Joined: 13 Jun 2005 Posts: 310 Location: /earth/russia/moscow
|
Posted: Sun Nov 10, 2024 11:16 am Post subject: |
|
|
I started my fight against multilib by commenting out ABI_X86="64 32" in my make.conf (have no clue how it sneaked there) resulting in many 32-bit libraries drainage:
Code: |
ldd eagle
linux-gate.so.1 (0xf7f28000)
libXrender.so.1 => not found
libXrandr.so.2 => not found
libXcursor.so.1 => not found
libfreetype.so.6 => not found
libfontconfig.so.1 => not found
libXext.so.6 => not found
libX11.so.6 => not found
libdl.so.2 => /lib/libdl.so.2 (0xf7efa000)
libXi.so.6 => not found
libpthread.so.0 => /lib/libpthread.so.0 (0xf7ef3000)
librt.so.1 => /lib/librt.so.1 (0xf7eee000)
libssl.so.1.0.0 => not found
libcrypto.so.1.0.0 => not found
libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/13/32/libstdc++.so.6 (0xf7c7b000)
libm.so.6 => /lib/libm.so.6 (0xf7ba6000)
libgcc_s.so.1 => /usr/lib/gcc/x86_64-pc-linux-gnu/13/32/libgcc_s.so.1 (0xf7b7d000)
libc.so.6 => /lib/libc.so.6 (0xf7958000)
/lib/ld-linux.so.2 (0xf7f2a000)
libz.so.1 => /usr/lib/libz.so.1 (0xf793e000)
|
But it came out that net-print/cndrvcups-capt-2.71 that I keep for my old Japanese Canon LBP-810 needs some 32bit stuff that still forces me to enable abi_x86_32 for some libs:
Code: |
cat /etc/portage/package.use/abi_x86_32
net-libs/libtirpc abi_x86_32
# Needed by capt
dev-libs/icu abi_x86_32
dev-libs/libxml2 abi_x86_32
dev-libs/popt abi_x86_32
sys-libs/zlib abi_x86_32
virtual/libintl abi_x86_32
|
This cndrvcups-capt is an long deprecated driver that I keep on board patching/fixing it once a couple of years to get my old printer working. It has both 32 and 64 bit drivers and I may be able to get rid of 32bit stuff later. |
|
Back to top |
|
|
|