
This issue trackerhas been migrated toGitHub, and is currentlyread-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.
Created on2015-03-12 20:41 byWanderingLogic, last changed2022-04-11 14:58 byadmin. This issue is nowclosed.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| epoll-macros-patch.diff | WanderingLogic,2015-03-12 20:41 | Patch to wrap uses of unusual EPOLLxxx macros in ifdefs | review | |
| Messages (4) | |||
|---|---|---|---|
| msg237984 -(view) | Author: Matt Frank (WanderingLogic)* | Date: 2015-03-12 20:41 | |
With the LSB (Linux Standard Base) headers for libcModules/selectmodule.c fails to compile because we have code that uses EPOLLRDNORM, EPOLLRDBAND, EPOLLWRNORM and EPOLLMSG without first checking that they are defined.The patch wraps the five uses of PyModule_AddIntMacro in #ifdefs, following exactly the same pattern that is used for the POLLRDNORM, POLLRDBAND, POLLWRNORM, POLLMSG macros 30 lines earlier in selectmodule.c.The only documentation I can find for these five macros from Linux is (a) in the Python documentation for the select module! (https://docs.python.org/3.4/library/select.html#edge-and-level-trigger-polling-epoll-objects) and (b) on this StackOverflow answer:http://stackoverflow.com/a/27143672/2209313.They are not described onhttp://man7.org/linux/man-pages/man2/epoll_ctl.2.html (where the rest of the EPOLL macros are defined), nor athttp://linux.die.net/man/4/epoll. As explained by the StackOverflow answer they actually are described (indirectly) byhttp://man7.org/linux/man-pages/man2/poll.2.html.Nor are these macros in the Linux Foundation's LSB database:http://www.linuxbase.org/navigator/browse/headgroup.php?cmd=list-byheadgroup&HGid=1398.Obviously almost all modern Linuxes have these macros, so we should keep them, but we should also compile with the LSB headers (since compiling and linking against the LSB SDK (http://www.linuxfoundation.org/collaborate/workgroups/lsb/group) is one of the easiest ways to produce a Python binary that will actually run on most important supported Linux distros (e.g., RHEL 5).http://man7.org/linux/man-pages/man7/epoll.7.html, | |||
| msg247733 -(view) | Author: Zachary Ware (zach.ware)*![]() | Date: 2015-07-31 03:51 | |
Looks good to me. | |||
| msg247850 -(view) | Author: Roundup Robot (python-dev)![]() | Date: 2015-08-02 02:39 | |
New changesete38470b49d3c by Zachary Ware in branch '2.7':Issue#23652: Make the select module compile against LSB headers.https://hg.python.org/cpython/rev/e38470b49d3cNew changesetc18a18b65a49 by Zachary Ware in branch '3.4':Issue#23652: Make the select module compile against LSB headers.https://hg.python.org/cpython/rev/c18a18b65a49New changeseta99f17c752d8 by Zachary Ware in branch '3.5':Issue#23652: Merge with 3.4https://hg.python.org/cpython/rev/a99f17c752d8New changesetc7273b46980c by Zachary Ware in branch 'default':Closes#23652: Merge with 3.5https://hg.python.org/cpython/rev/c7273b46980c | |||
| msg247851 -(view) | Author: Zachary Ware (zach.ware)*![]() | Date: 2015-08-02 02:40 | |
Thanks for the patch! | |||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022-04-11 14:58:13 | admin | set | github: 67840 |
| 2015-08-02 02:40:31 | zach.ware | set | messages: +msg247851 |
| 2015-08-02 02:39:58 | python-dev | set | status: open -> closed nosy: +python-dev messages: +msg247850 resolution: fixed stage: commit review -> resolved |
| 2015-07-31 03:51:38 | zach.ware | set | versions: + Python 3.4 nosy: +zach.ware messages: +msg247733 stage: commit review |
| 2015-03-12 20:59:43 | ned.deily | set | nosy: +neologix |
| 2015-03-12 20:47:20 | WanderingLogic | set | type: compile error |
| 2015-03-12 20:41:46 | WanderingLogic | create | |