-
Notifications
You must be signed in to change notification settings - Fork 86
Compilation of version 2.6 windows port with MinGW64 UCRT environment. #540
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
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…-port, master-user, replica-timeout) part 1
…-port, master-user, replica-timeout) part 2
for this * use of crc macros has been split * places where _TRADITIONAL_CRC32 and _CRC32C are used are explicitly marked * added two files to ensure compatibility with pg-11 * at the end of pg-11 support, these new files and places where _TRADITIONAL_CRC32 is used can be deleted
There's really no need to. But doing it pulls bad dependency.
Mingw defines usable them.
just small refactoring.
Mingw pthread "implementation" works reasonably well. There's no need to use emulation. Mingw's gcc links with winpthread.dll automatically, no need to force flags.
Postgresql's 'port' library defines custom 'stat' and 'struct stat'. It conflicts with system one in MinGW. We had to include either one or another, but not both. It is easier to do if we include 'sys/stat.h' only once and only in non-win32 environment.
It is hard to consider all 'echo in makefile shell' variants. Mingw's one doesn't process escape sequence. That is why it is better to use raw TAB symbol.
011ea63
to
18d4bb9
Compare
- pid_t is 64bit in mingw. Lets cast it to long long in most places on I/O. - int64 should be casted to long long as well - size_t should be printed as %zu/%zd - stat functino is imported from pgport, and there's no need to redefine it again. - no need to redeclare `__thread` since gcc work with it well. - arguments and types in launch agent.
msvcrt's strftime is quite limited, and we had to use pg_strftime. On the other hand, ucrt's one is capable for most of SU (Single UNIX) extensions, so we could safely use it. That means, we restrict windows port to MinGW64 UCRT environment.
I can't find where EACCESS is used in postgres. Nor I can find where it is defined in Windows. It is quite strange it worked before, I can't explain it.
10b511c
to
ccee8ab
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.