wt., 25 cze 2019 o 17:21 Bernhard Rosenkraenzer <b...@lindev.ch> napisaĆ(a):
> > > 2. Disable debuginfo generation > > While I agree that debuginfo packages aren't as useful as they could be > (would be nice if the kde crash dialog could automatically download them > and generate a more useful backtrace, for example), I don't think they're > entirely useless, and outside of build time generating them doesn't have > any drawbacks. While our infrastructure can deal with it, I don't see much > of a reason to disable it. > > Are we sure that rpms are _REALLY_ stripped of debug information ? > 3. Use BFD > > 4. Use LD.lld > > Agreed about both of those -- gold was a nice try (and bfd still hasn't > caught up with some things like ICF), but lately it hasn't been maintained > and is more trouble than it's worth. > I'm leaning towards trying to use lld for everything (faster and can keep > ICF) with exceptions for where it breaks, but haven't gotten around to > checking how well lld works these days. I'll definitely run some checks > when 9.0 is in the tree (lld is making progress fast). > +1 > > 5. Toybox > > Toybox works really well and would certainly be a good replacement inside > initramfs at least -- not sure if we want to do it in the whole system > though (keep in mind that people [and Makefiles] will run scripts written > on other distributions, and that hardcode flags to coreutils tools). Even > switching to libarchive tar wasn't as 100% painless as it ought to be. > Also, toybox can replace more than just coreutils - awk, grep, sed, find, > kmod, procps, psmisc, which, util-linux and a few more are all in there. > I'm not sure how complete those tools are and whether or not we could end > up replacing some of those as well. The fewer tools are replaced, the less > likely it is to have any benefit... > > If we never give it a research and try then we will never know how complete these tools are. IIRC android uses toybox, right? > > 7. Get rid of GCC > > Try to start a reserch how GCC can be stripped out of builds with > > LLVM/clang > > One big issue there is libstdc++ -- while clang has libc++ (which is > actually better in many ways), if we care about binary compatibility with > other distributions, we can't use it because otherwise we'd run into > situations where e.g. a binary-only game built on some other distro links > to Qt and libstdc++ (that would crash instantly on trying to runtime link > to Qt built with libc++). > clang also uses the gcc command line tool to locate headers for intrinsics > (/usr/lib64/gcc/x86_64-openmandriva-linux-gnu/9.1.0/include etc.) - that > could probably be changed. > > What distribution may benefit from chaning to libstdc++ ? Well i guess that stuff that rely on glibc and gcc may fail, like proprietary software - steam, nvidia blob drivers etc, right ? > > and use compiler-rt by default > > We tried that before -- while it worked great for most stuff, we ran into > binary compatibility problems in some weird situations (e.g. firefox built > with compiler-rt crashing when loading the Flash plugin because of clashes > with statically linked libgcc bits in there). > Fortunately almost nothing cares about Flash anymore, but that sort of BS > is something we still need to look out for. > Probably it's safe to build most applications with compiler-rt -- but > there's some potential for it getting messy as soon as something starts > dlopening stuff built with something else. For normal libraries, > fortunately it's easy to test (e.g. see if a Qt application built with > libgcc will keep running if Qt is linked with compiler-rt). > Just swapping out Qt should give us a good impression, given that will > also show us if plasma can still load plugins built with libgcc. > > +1 > 8. PGO > > Type a list of packages that may benefit form PGO (i.e firefox, webkit, > > kernel http://coolypf.com/kpgo.htm) > > Well llvm/clang can be build with PGO. > > > > 10. AutoFDO/BOLT > > Try to start research on post-link optimizations > > http://perl11.org/blog/bolt.html > > Good idea. > > If i understand right, we need to run distro on real hardware for example x86_64, gather run various scripts that will bench python, libc whatever, gather bolt data and then use bolt.fdata to compile stuff on ABF ? > > *Other*: > > > > 1. Use github issues as bug tracker > > AFAIK QA people prefer bugzilla (and there's the issue of github being > owned by M$ -- so far they've done well, but can we trust them forever?) - > but now is the right time to look at possible options again... > > > 2. Enforce control for PR to other branches > > Integrate "travis-like" tool into our github repo to allow merging > changes > > between branches. > > Enforce PR approval process - i.e. Release Manager or QA accepts PR for > > other branches. > > +1, I wonder if we can somehow merge this into the QA tool... > PR (or something like it) to non-cooker branch --> triggers build to see > if it compiles, notifies QA and RM, starts voting process > > Yes something like that. > Here's a few more things I've been thinking of -- not necessarily for 4.1: > > Cooker: > - Early move to LLVM/Clang 9 -- there's finally patches adding RISC-V > hardfloat support, and LLD has made a lot of progress > +1 - Reduce the duplication of binutils tools (binutils, elfutils, llvm). > Chances are the LLVM tools are good enough to handle debuginfo generation > these days (main reason for elfutils to be in the default build environment > right now) > +1 - Check if using Polly can speed up some libraries -- it should be possible > to at least somewhat parallelize libjpeg and friends (but the tools for > doing that automatically may not be up to the task yet) > Speaking of llvm-polly i did some tests and compared results of -O3 build against polly build https://github.com/OpenMandrivaAssociation/openssl/commit/b77dbe18c6d6602c3d496118128dc4e41e417049 polly build was slightly faster than O3. If i understand right polly is good for optimizations where polyhedrons are used. This means llvm-polly should be used on all 2D/3D graphics tools like krita, gimp, blender... maybe mesa ? Doubt it has any positive impact on polynomials. - Plasma customization tool in OM Welcome that allows people to quickly get > to something they feel at home in, e.g. "Act like [*] OpenMandriva [ ] > Windows [ ] MacOS" (where OpenMandriva is what we think is best, Windows > does things like double-clicks, MacOS does stuff like global menu bar on > top of screen) > +1 Maybe as a calamares module ? - Allow running Android apps (I have Anbox sort of working, but we can do > better than the Brokenbuntu crowd...) > +1 That would be a really nice feature - Add OnlyOffice as an alternative to LO (this is a bit painful because > they use a load of nonstandard tools, including some prehistoric stuff) > - Text mode/server installer > > - An experimental build that does what could be done if we didn't care > about binary compatibility (glibc -> musl, libstdc++ -> libc++, libgcc -> > compiler-rt) that doesn't replace the existing OS, but would be rather > interesting to benchmark -- if only to see how much binary compatibility is > costing us. > Sounds like a lot of work to be done. - Possibly replace firewalld with ufw (because the latter has a proper > plasma interface). (Build the [fire]wall! Make Linux great again!) > -1 It's boontoo centric, and last updated in 2016. That does not sound like it is actievly maintained. This looks promising https://github.com/nx-desktop/nx-firewall > And probably the most controversial one: > - Change the filesystem layout for multilib. Some distributions have > started going for stuff like /usr/x86_64-linux-gnu/lib instead of > /usr/lib64, /usr/i686-linux-gnu/lib instead of /usr/lib etc., and that's a > really good idea because it allows installing compat libraries for more > than just one 64bit and one 32bit architecture. This is useful especially > now that qemu binfmt-misc stuff is working well and transparently launches > stuff built for other architectures (think wine on ARM being able to run > x86 Windows binaries because it has access to qemu and i686/x86_64 > libraries). With the current lib64/lib FS layout, e.g. a user on aarch64 > may want to install an x86_64 libjpeg to please whatever binary-only > application and an i686 libjpeg to please wine -- but they can't go to > /usr/lib64 (where aarch64 stuff lives) nor /usr/lib (where armv7hnl stuff > lives). > We don't have to break compatibility with anything to do this -- > /usr/lib64 and /usr/lib could be symlinks to the native 64 and 32 bit > arches, so stuff hardcoding /usr/lib64 or /usr/lib would still find what > it's looking for and install to the right place. > > Sounds interesting. > ABF: > - Better handling of errors that usually go away by trying again, such as > "[MIRROR] kauth-5.59.0-1-omv4000.znver1.rpm: Interrupted by header > callback: Server reports Content-Length: 148 but expected size is: 65492 > [FAILED] kauth-5.59.0-1-omv4000.znver1.rpm: No more mirrors to try - All > mirrors were already tried without success > Failed to set locale, defaulting to C > Error: Error downloading packages: > Cannot download kauth-5.59.0-1-omv4000.znver1.rpm: All mirrors were > tried" > - Better handling of interrupted chain builds (e.g. when building KDE > Frameworks and a build somewhere in the middle fails on one arch, allow > resuming the chain build when the failed package is fixed) > - Easier way to publish a load of interdependent packages at the same time > (e.g. build updated KDE Frameworks and rebuild Plasma against it, then > publish all at the same time so people updating in between don't end up > with a system that is part 5.58, part 5.59 and unlikely to work properly) > > I'd suggest to add support for odered mass builds. So you can easily build whole KDE frameworks in a give order :)