If we really need to cater to the practice of building for an older system than the build host (which to my mind is asking for trouble), then instead of having Gnulib try to work around the bugs in copy_file_range in Linux kernels before 5.3, it should simply not use copy_file_range in these older kernels. In other words, something like the attached patch should be more reliable than the other band-aids proposed.