#2224 WSL: version macros in headers not aligned with package version

WSL
assigned
None
Bug
none
Unknown
True
2014-07-04
2014-07-04
No

In include/_mingw.h I see:

#define __MINGW_VERSION             4.0
#define __MINGW_MAJOR_VERSION       4
#define __MINGW_MINOR_VERSION       0
#define __MINGW_PATCHLEVEL          0

/* The following four macros are deprecated and will be removed
 * in the release greater than 4.1.
 */
#define __MINGW32_VERSION           3.20
#define __MINGW32_MAJOR_VERSION     3
#define __MINGW32_MINOR_VERSION     20
#define __MINGW32_PATCHLEVEL        0

I note the intent to remove the latter four, in a future release. Nonetheless, while they remain defined, they should be aligned with the former four.

Additionally, the former four are incorrect, in respect of the most recently published release (4.0.3) of WSL/mingwrt; the entire block should appear as:

#define __MINGW_VERSION             4.0.3
#define __MINGW_MAJOR_VERSION       4
#define __MINGW_MINOR_VERSION       0
#define __MINGW_PATCHLEVEL          3

/* The following four macros are deprecated and will be removed
 * in the release greater than 4.1.
 */
#define __MINGW32_VERSION           4.0.3
#define __MINGW32_MAJOR_VERSION     4
#define __MINGW32_MINOR_VERSION     0
#define __MINGW32_PATCHLEVEL        3

Similarly, in include/w32api.h I see:

#warning WARNING - The w32api.h header file is deprecated and will be removed.

#define __W32API_VERSION 3.17
#define __W32API_MAJOR_VERSION 3
#define __W32API_MINOR_VERSION 17

Again, I note the intent for future removal, but until this happens, these should also be aligned with the WSL/w32api release; thus, they too should be:

#warning WARNING - The w32api.h header file is deprecated and will be removed.

#define __W32API_VERSION            4.0.3
#define __W32API_MAJOR_VERSION      4
#define __W32API_MINOR_VERSION      0
#define __W32API_PATCHLEVEL         3

The attached patch corrects these anomalies, in alignment with the most recently published releases. However, this strategy for maintaining version identification really isn't sustainable, going forward; all such identification should be specified once, (in configure.ac, for example), and propagated to dependent header files at build time. Then, configure is regenerated prior to each release, and all header files are automatically synchronized.

1 Attachments

Discussion


Log in to post a comment.