Hi Ludo, On Tue, 29 Sep 2020 22:52:10 +0200 Ludovic Courtès wrote: > Marius Bakke skribis: > > > Arguably running code for foreign architectures through QEMU binfmt is > > something of a hack. Mandating that every package *must* be patched to > > support it seems user-hostile. I'm more in favor of dropping it on the > > build farm, or just keep fixing things on a per-package basis. > > I’m fine with dropping things on the build farm; it’s just about > modifying machines-for-berlin.scm in maintenance.git. Any takers? :-) I don't know what "dropping things on the build farm" means in this context. Dropping what exactly? > The above would override the default CFLAGS in Autoconf-generated > configure scripts (which is “-O2 -g”). That is correct. I'm currently working on v2 (testing a patchset already) and I totally forgot to add "-g -O2" the first time around. Also, glibc itself must NOT have -D_FILE_OFFSET_BITS=64 (it makes sense not to, too). >So we’d have to be cautious. > But I think a global solution is preferable to adding > -D_FILE_OFFSET_BITS=64 to tens of packages. I agree. I still would like to see what actually changes--and I think with guix-data-services it should actually be possible to compare derivations before-and-after and find out which derivations of which packages changed at all because of the global -D_FILE_OFFSET_BITS=64. I'd like some help using guix-data-services to find that out. Otherwise a risk estimation cannot be done. Technically, if a package used direct assembly offsets (for some unfathomable reason), it could have an undetectable problem with the size change of off_t (and also struct dirent). So examining the source code of the most essential packages manually is still good. That's what I did in branch wip-file-offsets-64. I'm in the process of testing a patchset that globally sets CFLAGS="-D_FILE_OFFSET_BITS=64 -g -O2" instead. That alone is not enough since there are a lot of non-autotools projects that just ignore the environment variable entirely--not to mention languages other than C. I have access to bayfront--but I don't remember how to evaluate a new branch there (the new branch is "wip-file-offset-bits-64-sledgehammer"). How does it work?