-
Notifications
You must be signed in to change notification settings - Fork 166
Fixes for XrdPosix on Apple #2434
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
abh3
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks OK to me. I suppose prior to Catalina (2019) MacOS did have 32 and 64 bit interfaces. Since then all the standard interfaces are 64 bits and 32 bit apps are history. So, thank you for he changes.
amadio
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just some minor comments to cross-check before merging. Since we are changing this code in any case, let's try to not use deprecated functions which will likely require further changes later. Other than that, looks good.
abh3
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some changes needed here.
|
Looking at the trace back, it seems the std::cerr also calls fprintf() but the way that s it is done is before required linkages in the Posix layer have been completed and this causes a SEGV. Substituting with fprintf) is a reasonable bypass. |
|
@schwicke Thanks! I squashed to avoid having intermediate state that doesn't work (i.e. typos fixed, etc). |
When trying to use XrdPosix on Apple, the code is not able to find system calls like open64. This patch assumes that Apple is always 64bit and maps these functions to the "regular" system calls. Using XRDPOSIX_REPORT=1 reports two more missing functions, namely acl() and Lgetxattr() which cannot be found. These are disabled by this patch when running on this platform. With this fix in xrootd, the next version of CERNLIB can be xrootd enabled as well on Apple.