IRC channel logs

2024-07-12.log

back to list of logs

<aggi>GNU buildsystem is troublesome
<aggi>for example, besides bootstrapping, i verify various crosscompilation variants with gcc-4.7 involved (because this was the last no-c++ one)
<aggi>for the sake of it, i replaced libtool with slibtool everywhere; all of the sudden later versions than gcc-4.7 need c++ bootstrapped, and the related components failed with LIBTOOL=slibtool, although all else including a complete userspace had passed before
<aggi>anyway, so far, i can confirm various ARCH succeed with cross-compilation back and forth with each other already (amd64, x86, aarch32, aarch64), including the bootstrapping of a later gcc-version-6.5 with gcc-4.7
<aggi>that's tii how, the c-only profile maintained for gentoo is practical, because i can avoid the extremely slow g++ compilation almost always
<aggi>except aarch64, which requires a later gcc-6.5 (with c++ involved) for kernel and uboot
<aggi>in principle this means, if #bootstrappable arrives at a gcc-4.7 bootstrapped with tcc-toolchain, then any later gcc/binutils can be bootstrapped/crosscompiled too, for any ARCH desired
<aggi>soon i will re-try a complete crossdev/compilation of the entire distribution with tcc-toolchain only (no binutils/gcc)
<aggi>with it verify again if tcc-toolchain suffices to bootstrap gcc/binutils (last time i tried for amd64 it did)
<aggi>but i think tcc-toolchain failed with python03.8, that was required to retain gentoo/crossdev/portage for example
<aggi>and perl was nasty too, because perl-5.30 failed with tcc-toolchain while it passed with perl-5.8, however perl-5.8 failed with crossdev and switching ARCH
<aggi>hence, i need to swap perl-version for either tcc-toolchain and/or crossdev
<aggi>i think this was the final reasons, i decided to abandon GNU buildsystem (if i can), that required automake/autoconf for example, and with it Perl
<aggi>as far as Python was concerned i don't remember exactly what had failed with tcc-toolchain
<aggi>otherwise, gcc is rather slow compile-time; last time i tried with tcc-toochain only, compilation times were cut in half or more
<aggi>since i am residing on some low power buildhosts (cortex a53 for aarch32/64, and a hp t620 thin client for x86/32/64)
<aggi>i intend to avoid GNU toolchain too, by ensuring 1) _everything_ (including linux-2.x kernel) passes with tcc-toolchain, and 2) re-confirming my system setup can cleanly bootstrap GNU-buildsystem and GNU-toolchain
<aggi>which finally means this: i want to keep GNU-buildsystem and GNU-toolchain _optional_
<aggi>and this is extremely difficult to accomplish (which the slibtool/libtool issue had shown again last night)
<aggi>reading along inside parts.rst: seems GNU-toolchain, GNU-buildsystem, perl, and python are among the most troublesome to bootstrap - those were too problematic with crossdev compilation
<stikonas>autotools is not hard once you have perl
<stikonas>python, I'm not sure, fossy did that
<stikonas>perl I think was average
<stikonas>they might have a lot of steps there
<stikonas>but if I recall correctly, steps were not too hard
<stikonas>i.e. one would spend far more time on binutils and gcc
<aggi>if the verification of crosscompilation was included, this significantly complicates perl and python maintenance
<aggi>myself is mostly scared by the hardcore parts of M0/hex0/mesc etc.; because i am not a proficient asm hacker (not yet)
<aggi>another one related to bootstrappable, is additional efforts for fiwix, which i would try to avoid, if and only if i succeed with linux-2.4 that i am planning to use _only_
<stikonas>aggi: I didn't really know assembly before stage0-posix...
<stikonas>if you want to learn, you can start with high level prototypes
<stikonas>to see what they do
<stikonas>e.g. https://github.com/oriansj/stage0-posix/tree/master/High%20Level%20Prototypes
<stikonas>that's just C
<stikonas>and we mostly use fairly simple assembly there
<stikonas>so stage0-posix is good place to learn
<stikonas>fairly restricted amount of instructions...
<aggi>and stage0 is the most relevant, to arrive at tcc-toolchain that i want to use exclusively
<stikonas>none of the more advanced, e.g. SSE/SIMD, etc stuff
<stikonas>so learning curve is a bit easier
<aggi>although, i will know soon, if there was problems with python compiled by tcc-toolchain, i may have to re-iterate over some of the bootstrappable rootfs.py stuff
<aggi>too i replaced bash with oksh here, so that's the one i am scripting with
<aggi>i will keep focus on tcc-toolchain/c-only-profile/linux-2.4 here, and trust bootstrappable did the preceeding parts
<aggi>difference with my approach is this:
<aggi>[bootstrappable stage0] -> tcc-toolchain -> complete system including kernel
<aggi>while bootstrappable did:
<aggi>stage0 -> tcc-toolchain -> GNU buildsystem/toolchain -> complete system including kernel
<aggi>and i got #gentoo attached to my workflow still (and with it python/perl/bash), to do dependency-tracking including crossdev
<aggi>i am certain already, i will loose gentoo, and hence have to re-integrate the workflow completely without it
<aggi>and since this is unavoidable, i doubt i wanted to invest efforts into bootstrapping python/perl/bash/gentoo
<aggi>because i will have to rewrite system-integration for tcc-toolchain and/or crosscompilation without gentoo anyway
<aggi>hence, i will merely keep the crossdev-setup archived, to scrape log-files of dependency tracking and package builds