- 
          
- 
                Notifications
    You must be signed in to change notification settings 
- Fork 263
Add support for MinGW #8321
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
base: master
Are you sure you want to change the base?
Add support for MinGW #8321
Conversation
| With all respect to the job done: 
 | 
| Hi @hvlad Thanks for your considerations.. | 
| @hvlad We have a lot of old dead ports in the tree. What a problem if we have one currently working? We are not enforced to advertise it's presence. It will be alive as long as MSYS2 wants to support it. | 
| I will not object if it: 
 Also, I have no MSYS2 env to check this changes and have no plans to install it. | 
| Can't say for version.rc (STRINGIZE is typical source of problems), but protocol.cpp (and other #if => #ifdef changes) and specially isc.cpp look weird. But before going to details more generic question to be answered - accept ports or not? Certainly, new ports should not break existing nad actively used one. What about support - I doubt anyone can give you strong guarantees :) | 
| 
 Do we need more ports - yes, why not. Note, we'll have massive changes in master soon... | 
| 
 Currently, I am the maintainer for this package on MSYS2. So, I will give support for this MinGW port. 
 Sure, I will try not to mess with MSVC build. 
 I will share the link of the successfull build on MSYS2, later. For  | 
| 
 For custom GCC options there is  | 
| 
 How it builds on Linux then ? | 
| Maybe Linux adds  | 
4659078    to
    94e5dcc      
    Compare
  
    | 
 MSYS2 is installed in GitHub workers. It should be possible to add this build to workflows. | 
| 
 I'm sure - no. This is for DEBUG, as it name implies ;) | 
| 
 I just add  | 
| 
 It is contrary:  | 
|  | ||
| all: udrcpp_example dc_example kh_example crypt_app | ||
|  | ||
| ifeq ($(PLATFORM),win32) | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you need platform-depended modifications to makefiles - do them in prefix file, not here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok.. I will change it
| 
 No, it would be a wrong fix. Checks in files must be changed to  | 
| 
 Cite syntax rule that requires it. I found none. And it builds will all supported compilers as is. https://en.cppreference.com/w/cpp/preprocessor/conditional: 
 C rules is more explicit: 
 | 
| 
 Are you volunteer to add it ? | 
| 
 Adriano is keen of bird languages and he is only one who understand YML. I have no time to learn it. | 
94e5dcc    to
    034764e      
    Compare
  
    | Here,   | 
| 
 I don't think so, sorry ;) The probem is that you require changes that not specified by standard (at least I can't find such requirements) and such kind of code could be added later - because it is fully legal, AFAIU. | 
| 
 Because they have no  | 
| Try this, for example: https://onecompiler.com/cpp/42ygfm9mk | 
| 
 So, why it is required for MinGW ? | 
| It is from the old  I can just remove  | 
| 
 As any warning-related option it is not required. I added it into  | 
| 
 And you wrong again. https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html: 
 It is definitely not about compiler errors, as @raedrizqie said: 
 | 
| 
 Ok for me ;) | 
| 
 yes.. indeed | 
| About  After this will be ruled, I accept changes in  But  | 
| Will do. | 
|  | ||
| dnl Check for functions | ||
| if test $PLATFORM != win32; then | ||
| AC_CHECK_FUNCS(gettimeofday) | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Functional tests should better avoid OS-dependence. What's wrong with gettimeofday?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IIRC gettimeofday implementation in mingw is different, and compilation will fail..
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, only MSVC has problem with gettimeofday().
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I got this error with gettimeofday:
2024-11-18T17:35:02.9691283Z C:/_/B/src/build-CLANG64/src/extlib/UdfBackwardCompatibility.cpp:282:3: error: use of undeclared identifier 'timeMutex'
2024-11-18T17:35:02.9933433Z   282 |                 timeMutex.enter();
2024-11-18T17:35:03.0000134Z       |                 ^
2024-11-18T17:35:03.0078661Z C:/_/B/src/build-CLANG64/src/extlib/UdfBackwardCompatibility.cpp:290:3: error: use of undeclared identifier 'timeMutex'
2024-11-18T17:35:03.0221334Z   290 |                 timeMutex.leave();
2024-11-18T17:35:03.0245170Z       |                 ^
2024-11-18T17:35:03.0249640Z 2 errors generated.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see no relation between this error and gettimeofday. This is an ordinary bug in a dead code.
| On 11/18/24 20:25, Raed Rizqie wrote:
 ***@***.**** commented on this pull request.
 ------------------------------------------------------------------------
 In builds/posix/Makefile.in.examples
 <#8321 (comment)>:
 > @@ -91,7 +99,7 @@ EMPLOYEE_DB=	$(EXAMPLES_DEST)/employee.fdb
   FINAL_EMPDB=	$(EXAMPLES_FB)/empbuild/employee.fdb
   INTLEMP_DB=	$(EXAMPLES_DEST)/intlemp.fdb
 -EXTAUTH_PLUGIN=	$(EXAMPLES_FB)/prebuilt/libfbSampleExtAuth.$(SHRLIB_EXT)
 +EXTAUTH_PLUGIN=	$(EXAMPLES_FB)/prebuilt/$(LIB_PREFIX)fbSampleExtAuth.$(SHRLIB_EXT)
 This is to mimic MSVC build, where the example dlls doesn't have |lib|
 prefix
 Ahh - OK | 
| On 11/18/24 20:56, Raed Rizqie wrote:
 ***@***.**** commented on this pull request.
 ------------------------------------------------------------------------
 In configure.ac
 <#8321 (comment)>:
 > @@ -1089,6 +1090,7 @@ fi
   AC_LANG_POP(C++)
   dnl Check for functions
 +if test $PLATFORM != win32; then
   AC_CHECK_FUNCS(gettimeofday)
 I got this error with |gettimeofday|:
 |2024-11-18T17:35:02.9691283Z
 C:/_/B/src/build-CLANG64/src/extlib/UdfBackwardCompatibility.cpp:282:3:
 error: use of undeclared identifier 'timeMutex'
 2024-11-18T17:35:02.9933433Z 282 | timeMutex.enter();
 2024-11-18T17:35:03.0000134Z | ^ 2024-11-18T17:35:03.0078661Z
 C:/_/B/src/build-CLANG64/src/extlib/UdfBackwardCompatibility.cpp:290:3:
 error: use of undeclared identifier 'timeMutex'
 2024-11-18T17:35:03.0221334Z 290 | timeMutex.leave();
 2024-11-18T17:35:03.0245170Z | ^ 2024-11-18T17:35:03.0249640Z 2 errors
 generated. | This can be fixed but looks like it's really better to avoid use of
|gettimeofday() on mingw.
| | 
0e21adb    to
    b8d1043      
    Compare
  
    b8d1043    to
    346ed1c      
    Compare
  
    346ed1c    to
    5e2a7ed      
    Compare
  
    
No description provided.