IRC channel logs

2024-08-02.log

back to list of logs

<mid-kid><@oriansj> aggi: interesting observation about configure's behavior looking for unneeded things. Makes me wonder how much many configure scripts and builds could be simplified if people cared.
<mid-kid>if you know the exact details about the system being compiled for in many cases you don't need to run the configure script at all
<mid-kid>you just make a config.h with the necessary defines and replace the relevant markers in the Makefile.in
<mid-kid>sometimes this can make compiling for "weird" systems easier, since it's harder to debug the tests than just hardcode a define
<mid-kid>but
<mid-kid>the idea of autoconf is basically introducing graceful degradation into the build system
<mid-kid>testing and adapting for different systems makes software more flexible and allows automatically picking up new features introduced by newer versions of compilers/libraries on the platforms that have them
<mid-kid>and you don't have to specifically support every platform, in many cases, it may just work
<mid-kid>and when it doesn't work, autoconf is rather descriptive about it and catches it before it becomes an issue at runtime
<mid-kid>s/an issue/a hard to debug issue/
<mid-kid>so it's generally unwise to hardcode autoconf output unless you're 100% sure everything will always be a certain way
<mid-kid>I've seen people remove autoconf from projects in favor of makefile, resulting in a lot of headaches on different plaforms
<mid-kid>But for a project like this where everything is always 100% known and verified (byte-matching), it might make sense to reduce the amount of dependencies by doing that
<aggi>mid-kid: musl-libc-<1.1.x|1.2.x> are mis-compiled by tcc-toolchain for dynamic linking aginst libc.so
<aggi>i couldn't debug/bisct agsinst gcc yet, why that is
<aggi>in worst case, i'll run this static-linking
<aggi>tried a few things last night, compiling with tcc, and linking with gcc for example, no look yet
<aggi>musl-libc doesn't use GNU-buildsystem
<aggi>i could try with any other, such as uclibc or newlib
<aggi>i am in no hurry over this, none of my problems
<andydude>@mid-kid: I'm currently trying to rewrite autoconf in C
<andydude>I would eschew any attempt at replacing m4, make, shell, etc. but I have an irrational fear of perl5
<Googulator>andydude: that would be awesome; supporting GNU build system as soon as we have a real shell
<Googulator>in live-bootstrap, the first shell we build has a nasty bug that makes a WSL2-based bootstrap impossible
<Googulator>and that bug is related to not using autoconf
<Googulator>if I rebuild the same version of Bash using an autoconf / configure-generated makefile, globbing works perfectly
<Googulator>unfortunately that bug triggers precisely in the autoconf bootstrap
<matrix_bridge><Andrius Štikonas> It might be possible to.determine what config define is needed.to fix that bug...
<matrix_bridge><Andrius Štikonas> But hard to do unless you have access to wsl2
<mid-kid>anyone know what paths gcc searches for specs files
<mid-kid> https://github.com/gcc-mirror/gcc/blob/master/gcc/gcc.cc#L8478-L8497
<mid-kid>it's not documented anywhere but I know gcc has a way to override the internal specs file by putting a file somewhere in its install dirs
<mid-kid>I just always forget where
<mid-kid>and this code seems to imply it's searching a path so I would like to know how it works