clear errno before using it to check failure from atof() The atof() function is not guaranteed to clear errno on success, so if any earlier errors have been set prior to calling atof(), these will result in a spurious failure. On armhf, glibc 2.31 now opportunistically calls a new syscall that may not be supported on older kernels (Linux 4.15), resulting in errno == ENOSYS: . syscall_0x193(0x5, 0xffb2b650, 0xf77b7000, 0, 0x5, 0xffb2b650) = -1 ENOSYS (Function not implemented) . Therefore we should clear errno before calling atof() to make sure any errors actually originate from this function.
The source posted on the Mothur page at http://www.mothur.org/wiki/Download_Clearcut is identical to the upstream bar this one change. I have not investigated why, but I assume it's there for a reason and QIIME says it wants the Mothur version.