On Tuesday, 12 June 2018 19:31:32 BST Ian Zimmerman wrote: > I have had it with compiling stuff from source on my laptop. It is just > too slow. So I would like to create binary packages on my desktop and > then just tell the laptop to use them. > > Simple enough, except that the desktop is AMD Phenom, and the laptop is > Intel 64 bit Atom. Up to now, each system had unique CFLAGS to squeeze > as much performance as possible. > > On the desktop: > CFLAGS="-march=barcelona --param l1-cache-size=64 --param > l1-cache-line-size=64 --param l2-cache-size=512 -O2 -pipe" > > On the laptop: > CFLAGS="-march=ivybridge --param l1-cache-size=32 --param > l1-cache-line-size=64 --param l2-cache-size=4096 -O2 -pipe" > > I don't want to give up these tunings, but from the wiki page [1] I can > see no straightforward way to have different CFLAGS when compiling binary > packages, from the normal CFLAGS when installing directly from source on > the host system. Is the only way of doing this to set up a full-blown > cross-development environment? > > [1] > https://wiki.gentoo.org/wiki/Binary_package_guide
On the desktop you could just use -march=native for its own compiles, not sure if there is a benefit or good reason to use '-march=barcelona', but I'm digressing. If you are compiling binary packages for the laptop with a single stanza on the CLI, then you can run: CFLAGS="-march=ivybridge ..." CXXFLAGS="-march=ivybridge ..." FEATURES="buildpkg" PKGDIR="/tmp/binpkg_dir emerge -uaNDv --buildpkg world I understand you will need the complete CFLAGS & CXXFLAGS for the guest's hardware - others should confirm if this is so. I find it neater/easier to copy the guest's fs over to the faster host, then chroot into it, sync portage and emerge with --buildpkg world. There are other solutions, NFS mounts of the guest over the network, using a VM mirroring the laptop build on the host, but they are more complicated for my use case of a single guest. -- Regards, Mick
signature.asc
Description: This is a digitally signed message part.