[trimming the cc] >>>>> "Luke" == Luke Kenneth Casson Leighton <l...@lkcl.net> writes:
Luke> On Mon, Aug 19, 2019 at 7:29 PM Sam Hartman <hartm...@debian.org> wrote: >> Your entire argument is built on the premise that it is actually >> desirable for these applications (compilers, linkers, etc) to >> work in 32-bit address spaces. Luke> that's right [and in another message in the thread it was Luke> mentioned that builds have to be done natively. the reasons Luke> are to do with mistakes that cross-compiling, particularly Luke> during autoconf hardware/feature-detection, can introduce Luke> *into the binary*. with 40,000 packages to build, it is just Luke> far too much extra work to analyse even a fraction of them] Luke> at the beginning of the thread, the very first thing that was Luke> mentioned was: is it acceptable for all of us to abdicate Luke> responsibility and, "by default" - by failing to take that Luke> responsibility - end up indirectly responsible for the Luke> destruction and consignment to landfill of otherwise perfectly Luke> good [32-bit] hardware? I'd ask you to reconsider your argument style. You're using very emotionally loaded language, appeals to authority, and moralistic language to create the impression that your way of thinking is the only reasonable one. Instead, let us have a discussion that respects divergent viewpoints and that focuses on the technical trade offs without using language like "abdicate responsibility," or implies those that prefer nmap are somehow intellectually inferior rather than simply viewing the trade offs different than you do. I'm particularly frustrated that you spent your entire reply moralizing and ignored the technical points I made. As you point out there are challenges with cross building. I even agree with you that we cannot address these challenges and get to a point where we have confidence a large fraction of our software will cross-build successfully. But we don't need to address a large fraction of the source packages. There are a relatively small fraction of the source packages that require more than 2G of RAM to build. Especially given that in the cases we care about we can (at least today) arrange to natively run both host and target binaries, I think we can approach limited cross-building in ways that meet our needs. Examples include installing cross-compilers for arm64 targeting arm32 into the arm32 build chroots when building arm32 on native arm64 hardware. There are limitations to that we've discussed in the thread. More generally, though, there are approaches that are less risky than full cross building. As an example, tools like distcc or making /usr/bin/gcc be a 64-bit hosted 32-bitcross compiler may be a lot less risky than typical cross building. Things like distcc can even be used to run a 64-bit compiler for arm32 even in environments where the arm64 arch cannot natively run arm32 code. Yes, there's work to be done with all the above. My personal belief is that the work I'm talking about is more tractable than your proposal to significantly change how we think about cross library linkage. And ultimately, if no one does the work, then we will lose the 32-bit architectures. --Sam