On 10/06/10 14:32, Eric Blake wrote: > On 06/10/2010 07:22 AM, Callahan, Patrick M. wrote: >> if ((errno == ENOSYS || errno == EOPNOTSUPP) >> ... >> You could get in a debugger and determine where >> to add "|| errno == 252" to solve what appears to be >> an HP-UX-and/or-cvfs-specific problem. >> >> However, such a change is not appropriate for others, >> and I doubt it will be worthwhile to attempt an >> upstream workaround. >> >> [>> Agree. Appreciate the response. Restores my faith in humanity when >> [>> I have to spend a lot of times with vendors whose only interest >> [>> seems to be to separate me from as much as my budget as they can >> [>> get. > > Can you confirm Pádraig's google analysis that 252 is ENOTSUP on your > platform? If we have a symbolic name, then we can patch the code quite > easily. We can also patch the gnulib strerror and perror to detect the > failure to handle ENOTSUP gracefully.
Perhaps just changing to the more general ACL_NOT_WELL_SUPPORTED() for HPUX is appropriate? I.E. could you test the following coreutils patch Patrick? I left the solaris and cygwin code doing the explicit errno checks, but suggest they also change to the more general check too. diff ../gnulib/lib/copy-acl.c gnulib/lib/copy-acl.c --- ../gnulib/lib/copy-acl.c 2010-03-03 11:23:22.000000000 +0000 +++ gnulib/lib/copy-acl.c 2010-06-10 14:10:19.000000000 +0000 @@ -420,7 +420,7 @@ if (count < 0) { - if (errno == ENOSYS || errno == EOPNOTSUPP) + if (ACL_NOT_WELL_SUPPORTED (errno)) { count = 0; break; @@ -455,7 +455,7 @@ { int saved_errno = errno; - if (errno == ENOSYS || errno == EOPNOTSUPP) + if (ACL_NOT_WELL_SUPPORTED (errno)) { struct stat source_statbuf;