Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
nomultilib Desktop - any brave folks out there?
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
cz0
Guru
Guru


Joined: 13 Jun 2005
Posts: 310
Location: /earth/russia/moscow

PostPosted: Fri Nov 08, 2024 11:24 am    Post subject: nomultilib Desktop - any brave folks out there? Reply with quote

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
View user's profile Send private message
pietinger
Moderator
Moderator


Joined: 17 Oct 2006
Posts: 5095
Location: Bavaria

PostPosted: Fri Nov 08, 2024 11:44 am    Post subject: Reply with quote

cz0,

yes I am using since many years the profile: PLASMA+NO-MULTILIB ... you will get with these steps from our developer @grknight:
https://forums.gentoo.org/viewtopic-p-8694188.html#8694188
(of course you must use 23.0 instead 17.1 ;-) )

After this just do an "emerge -uUDvp @world".

Yes, the way back is very hard ... So you should be sure that you really don't need multilib.
_________________
https://wiki.gentoo.org/wiki/User:Pietinger
Back to top
View user's profile Send private message
logrusx
Advocate
Advocate


Joined: 22 Feb 2018
Posts: 2414

PostPosted: Fri Nov 08, 2024 12:15 pm    Post subject: Reply with quote

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
View user's profile Send private message
Perfect Gentleman
Veteran
Veteran


Joined: 18 May 2014
Posts: 1255

PostPosted: Fri Nov 08, 2024 1:35 pm    Post subject: Reply with quote

Me! Me! Me!
Back to top
View user's profile Send private message
Banana
Moderator
Moderator


Joined: 21 May 2004
Posts: 1725
Location: Germany

PostPosted: Fri Nov 08, 2024 2:53 pm    Post subject: Reply with quote

I do run a no-multilib install for years as a daily workstation. But I did not switch, I used the no-multilib profile from the start.
_________________
Forum Guidelines

PFL - Portage file list - find which package a file or command belongs to.
My delta-labs.org snippets do expire
Back to top
View user's profile Send private message
Zucca
Moderator
Moderator


Joined: 14 Jun 2007
Posts: 3695
Location: Rasi, Finland

PostPosted: Fri Nov 08, 2024 4:24 pm    Post subject: Reply with quote

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
View user's profile Send private message
logrusx
Advocate
Advocate


Joined: 22 Feb 2018
Posts: 2414

PostPosted: Fri Nov 08, 2024 6:08 pm    Post subject: Reply with quote

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
View user's profile Send private message
pietinger
Moderator
Moderator


Joined: 17 Oct 2006
Posts: 5095
Location: Bavaria

PostPosted: Fri Nov 08, 2024 6:49 pm    Post subject: Reply with quote

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
View user's profile Send private message
logrusx
Advocate
Advocate


Joined: 22 Feb 2018
Posts: 2414

PostPosted: Fri Nov 08, 2024 7:25 pm    Post subject: Reply with quote

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
View user's profile Send private message
dmpogo
Advocate
Advocate


Joined: 02 Sep 2004
Posts: 3425
Location: Canada

PostPosted: Fri Nov 08, 2024 7:55 pm    Post subject: Reply with quote

And I use some legacy code for which I need to have gcc-3.3.6 tar ball (well libstdc++-v3 )
Back to top
View user's profile Send private message
bstaletic
Guru
Guru


Joined: 05 Apr 2014
Posts: 367

PostPosted: Fri Nov 08, 2024 8:51 pm    Post subject: Reply with quote

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
View user's profile Send private message
cz0
Guru
Guru


Joined: 13 Jun 2005
Posts: 310
Location: /earth/russia/moscow

PostPosted: Sat Nov 09, 2024 8:52 am    Post subject: Reply with quote

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
View user's profile Send private message
mega_flow
Tux's lil' helper
Tux's lil' helper


Joined: 26 Jun 2016
Posts: 95
Location: Belgium

PostPosted: Sat Nov 09, 2024 9:25 am    Post subject: Reply with quote

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
View user's profile Send private message
logrusx
Advocate
Advocate


Joined: 22 Feb 2018
Posts: 2414

PostPosted: Sat Nov 09, 2024 10:46 am    Post subject: Reply with quote

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
View user's profile Send private message
cz0
Guru
Guru


Joined: 13 Jun 2005
Posts: 310
Location: /earth/russia/moscow

PostPosted: Sat Nov 09, 2024 12:35 pm    Post subject: Reply with quote

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
View user's profile Send private message
cz0
Guru
Guru


Joined: 13 Jun 2005
Posts: 310
Location: /earth/russia/moscow

PostPosted: Sat Nov 09, 2024 4:21 pm    Post subject: Reply with quote

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
View user's profile Send private message
Goverp
Advocate
Advocate


Joined: 07 Mar 2007
Posts: 2179

PostPosted: Sat Nov 09, 2024 4:33 pm    Post subject: Reply with quote

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
View user's profile Send private message
logrusx
Advocate
Advocate


Joined: 22 Feb 2018
Posts: 2414

PostPosted: Sat Nov 09, 2024 4:38 pm    Post subject: Reply with quote

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
View user's profile Send private message
cz0
Guru
Guru


Joined: 13 Jun 2005
Posts: 310
Location: /earth/russia/moscow

PostPosted: Sat Nov 09, 2024 8:02 pm    Post subject: Reply with quote

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
View user's profile Send private message
cz0
Guru
Guru


Joined: 13 Jun 2005
Posts: 310
Location: /earth/russia/moscow

PostPosted: Sun Nov 10, 2024 11:16 am    Post subject: Reply with quote

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
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