BUG: Use large file fallocate on 32 bit linux platforms#25631
BUG: Use large file fallocate on 32 bit linux platforms#25631mattip merged 1 commit intonumpy:mainfrom
Conversation
Using local prototypes instead of the header files meant that the redirects triggered by -D_FILE_OFFSET_BITS=64 were not triggered for fallocate. The prototypes in feature_detection_stdio.h are not used since the switch to meason, and might trigger false positives in the feature discovery code.
|
Please note that this patch is slightly different from the one in #25630 (meant for 1.26 branch). This patch wont work on 1.26, while the 1.26 version probably works on main. |
|
That's fine, @charris can take note after this is merged. I think this hasn't gotten any review so far because the PR description doesn't contain any context for what the issue is and what exactly this is fixing. There also isn't a test. |
|
I've updated the description, I hope that helps. |
|
Thanks for the context, I'll make sure this gets brought up at the next triage meeting. |
|
We discussed this at a triage meeting, reviewed the code as well as we could with no test, and decided it makes sense. |
|
Thanks @snogge |
|
Thank you for quick turnaround. |
In spite of all of the required preprocessor directives set to use UNIX Large File Support, multiarray/convert.c still used the
fallocateversion with 32bitoffset_t, at least with glibc.glibc provides both 32bit and 64bit
fallocateby silently using thefallocate64symbol instead offallocatewhen-D_FILE_OFFSET_BITS=64is set. Using a local prototype forfallocateinstead of thefcntl.hheader inmultiarray/convert.ccircumvented the glibc redirect.A similar but not identical PR #25630 has been pushed for 1.26.X.