[prev in list] [next in list] [prev in thread] [next in thread] 

List:       ceph-devel
Subject:    Re: Getting cython to define ENODATA on FreeBSD. (Was: Re: [ceph] pybind: move cephfs to Cython (#77
From:       Willem Jan Withagen <wjw () digiware ! nl>
Date:       2016-02-29 13:26:58
Message-ID: 56D44722.6000801 () digiware ! nl
[Download RAW message or body]

On 29-2-2016 12:57, Mehdi Abaakouk wrote:
> Hi,
> 
> Le 2016-02-29 11:27, Willem Jan Withagen a écrit :
>> Hi,
>>
>> You write:
>>
>> If you have errno.pxd, and cimport won't work, perhaps that means you
>> have something wrong with your cython package. Cython/Includes/libc is
>> automatically included on Linux for cython compilation and it looks not
>> on FreeBSD.
>>
>> But probably is one of the  issues that lies ahead of this, is the fact
>> that in
>>     /usr/include/errno.h FreeBSD does not define ENODATA.
>> And thus during compilation that value is not known (anywhere)
>>
>> In most of the Ceph code it is replaced by ENOATTR.
> 
>> I did not picked that but others that did work before me. And whatever
>> choice you make it is going to break somewhere nayways.
>>
>> Now the question here is going to be how to educate cython to actually
>> pickup on this change....
>> Perhaps by adding an extra include that "overlays" the current one and
>> adds errno.ENODATA to the errno enum?
>>
>> I do not know enough of python/cython how to do that, or that it is even
>> possible?
> 
> If a Cython headers (*.pyd) have ENODATA, you need to fix it.
> 
> So, the only good solution for that is fixing cython for FreeBSD, I
> don't see why you would add crap in Ceph here.
> 
> I'm sure the FreeBSD community is open and aware about not existing
> ENODATA on their system, and regulary patch application to remove it.
> You just have to fix the FreeBSD Cython Package (or even upstream Cython
> if they officially support FreeBSD).

Hi,

I'm a member of the FreeBSD community since 1993. :)

The reason that it is not in FreeBSD is might be  because the standard
does not require it. :(

------
IEEE Std 1003.1 2004 says that ENODATA is an 'XSR' extension:

"The functionality described is optional. The functionality described is
also an extension to the ISO C standard."

ENODATA appears to be mandatory.
-------

And as such it might be, might not be able to get it into the FreeBSD
include files. However that will take a long time, and during that time
I will not be able to complete the tests required to run all tests for
FreeBSD.

And as such is the 'crap' you refer too, a consequence of using
extensions to the standard for software, thus hampering the portability.
Uptil now I've been able to tackle just about all the issues.
And if I remember correctly this one wasn't an issue in my previous
testruns until the python piece got ripped out, and replaced with cython.

So I you ( or anybody else on this list) know(s) any ways to keep me
going with porting I'd be very thankful.

--WjW

I will also try to raise the issue in the FreeBSD lists.



--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic