classification
Title: mingw: detect REPARSE_DATA_BUFFER
Type: enhancement Stage: resolved
Components: Build, Windows Versions: Python 3.6
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: eryksun, martin.panter, paul.moore, python-dev, rpetrov, steve.dower, tim.golden, zach.ware
Priority: normal Keywords: patch

Created on 2013-03-31 19:59 by rpetrov, last changed 2016-08-04 08:33 by martin.panter. This issue is now closed.

Files
File name Uploaded Description Edit
0010-MINGW-detect-REPARSE_DATA_BUFFER.patch rpetrov, 2013-03-31 19:59
0009-MINGW-detect-REPARSE_DATA_BUFFER.patch rpetrov, 2014-08-03 06:13 status on 2014-08-02
Py_REPARSE.patch martin.panter, 2016-07-27 04:18 review
Py_REPARSE.v2.patch martin.panter, 2016-07-29 04:28 review
Messages (9)
msg185660 - (view) Author: Roumen Petrov (rpetrov) * Date: 2013-03-31 19:59
split of issue3871.
msg266050 - (view) Author: Martin Panter (martin.panter) * (Python committer) Date: 2016-05-22 05:15
Would it be better to define all the things in "winreparse.h" with names that are less likely to conflict, say Py_REPARSE_DATA_BUFFER etc? This would be a more general way to avoid conflicts, and also avoid hacking the configure script.

Also, is the “#ifndef MAXIMUM_REPARSE_DATA_BUFFER_SIZE” condition necessary?
msg271432 - (view) Author: Martin Panter (martin.panter) * (Python committer) Date: 2016-07-27 04:18
Here is a patch implementing my suggestion to unconditionally define everything, prefixed with Py_ instead. Not tested on a normal Windows build.
msg271449 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2016-07-27 13:42
Worth checking if the headers in VC14 have the structure now, as it may simplify the whole thing.

If not, I'd add a leading underscore to the name so nobody confuses it for public API in the future.
msg271602 - (view) Author: Martin Panter (martin.panter) * (Python committer) Date: 2016-07-29 04:28
Leading underscore is a good idea.

I have no idea if VC14 includes the structure, but I suspect if it was added with this name, we would know because it would cause the same conflict that Min GW caused.
msg271605 - (view) Author: Eryk Sun (eryksun) * (Python triager) Date: 2016-07-29 05:46
REPARSE_DATA_BUFFER is defined in the WDK filesystem header, km\ntifs.h. It's not defined in the user-mode SDK.
msg271632 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2016-07-29 14:54
I think the WDK is still separate from the Windows SDK, so probably best to keep the custom definition with a comment specifying which file it came from (so whoever diagnoses an obscure issue in the future can find it quickly).

With the comment, I'm fine with the patch. If you haven't built on MSVC then keep an eye on the build bots until it goes through in case something unpredictable happens.
msg271941 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2016-08-04 03:03
New changeset e4ddfa61199c by Martin Panter in branch 'default':
Issue #17599: Use unique _Py_REPARSE_DATA_BUFFER etc names to avoid conflict
https://hg.python.org/cpython/rev/e4ddfa61199c
msg271957 - (view) Author: Martin Panter (martin.panter) * (Python committer) Date: 2016-08-04 08:33
Thanks for your feedback. I add a reference to km\ntifs.h in the comment. The buildbots seem generally happy with the change. (One timed out in the tests, but that seems to be an existing intermittent problem.)
History
Date User Action Args
2016-08-04 08:33:14martin.pantersetstatus: open -> closed
resolution: fixed
messages: + msg271957

stage: patch review -> resolved
2016-08-04 03:03:46python-devsetnosy: + python-dev
messages: + msg271941
2016-07-29 14:54:41steve.dowersetmessages: + msg271632
2016-07-29 05:46:55eryksunsetnosy: + eryksun
messages: + msg271605
2016-07-29 04:28:40martin.pantersetfiles: + Py_REPARSE.v2.patch

messages: + msg271602
2016-07-27 13:42:00steve.dowersetmessages: + msg271449
2016-07-27 04:18:24martin.pantersetfiles: + Py_REPARSE.patch

messages: + msg271432
versions: + Python 3.6, - Python 3.4
2016-05-22 05:15:20martin.pantersetnosy: + paul.moore, tim.golden, martin.panter, zach.ware, steve.dower
messages: + msg266050

components: + Windows, - Cross-Build
stage: patch review
2016-03-19 08:27:52martin.panterlinkissue17605 dependencies
2014-08-03 06:13:17rpetrovsetfiles: + 0009-MINGW-detect-REPARSE_DATA_BUFFER.patch
2013-03-31 19:59:37rpetrovcreate