Bug#531950: attr: FTBFS on GNU/kFreeBSD

Petr Salinger Petr.Salinger at seznam.cz
Tue Jun 9 06:35:58 CDT 2009


Hello.

>> Andreas now takes care ot attr.  Btw, the submitter should stop that
>> stupid GNU wanking - errnos are defined by the kernel so it's a
>> FreeBSD issues and has nothing to do with their glibc abuse.
>
> Hmm, I'm not sure what you mean there.  AIUI, this code
> (strerror_ea) is working around Linux's lack of an ENOATTR
> error code ... and on FreeBSD there really is an ENOATTR
> (and no ENODATA?)  Perhaps a better fix in this case may be
> to map strerror_ea directly to strerror for all platforms
> except Linux?

The problem is that there is no ENODATA errno value defined
on GNU/kFreeBSD. The errno values are determined by kernel,
they are the same as on plain FreeBSD, used libc
implementation does not change it.

Another possibility is to use patch bellow.
Does it looks acceptable for you ?

Thanks
 	Petr


only in patch2:
unchanged:
--- attr-2.4.43.orig/getfattr/getfattr.c
+++ attr-2.4.43/getfattr/getfattr.c
@@ -93,8 +93,10 @@

  const char *strerror_ea(int err)
  {
+#ifdef ENODATA
         if (err == ENODATA)
                 return _("No such attribute");
+#endif
         return strerror(err);
  }

only in patch2:
unchanged:
--- attr-2.4.43.orig/setfattr/setfattr.c
+++ attr-2.4.43/setfattr/setfattr.c
@@ -66,8 +66,10 @@

  const char *strerror_ea(int err)
  {
+#ifdef ENODATA
         if (err == ENODATA)
                 return _("No such attribute");
+#endif
         return strerror(err);
  }




More information about the xfs mailing list