Skip to content

Comments

Fix Windows build#1021

Merged
ddpbsd merged 4 commits intoossec:masterfrom
friedkiwi:master
Jan 5, 2017
Merged

Fix Windows build#1021
ddpbsd merged 4 commits intoossec:masterfrom
friedkiwi:master

Conversation

@friedkiwi
Copy link
Contributor

@friedkiwi friedkiwi commented Jan 5, 2017

This PR fixes the following Windows-related build issues:

S_ISLNK usage
S_ISLNK isn't a supported call on Windows due to the lack of filesystem links like they exist on Unix-based systems. Other parts of the code properly check if WIN32 is defined, however, one piece was overlooked. This is fixed in one of the commits in this PR.

MINGW_HAS_SECURE_API Incorrectly Used
The MINGW_HAS_SECURE_API was used incorrectly and broke the Windows build - the correct usage is to define this to '1' instead of just defining it, as evident in the mingw headers.

Add Windows-specific output to .gitignore
Some of the build output files aren't added to the .gitignore, causing a potential source tree pollution when committing to the repository. Most notably, there was no exclusion for *.exe and *.dll files, while there was an exclusion for .so files. This discrepancy has been corrected.


This change is Reviewable

Yvan Janssens and others added 4 commits January 5, 2017 14:04
There is a usage of S_ISLNK in check_rc_sys.c, which breaks the linking
on Windows since this functionality isn't availble on Windows. This
commit adds a compile time check for a WIN32 platform and removes the
code if necessary.
This commit fixes the Windows build again. The mingw headers
(https://github.com/Alexpux/mingw-w64/blob/master/mingw-w64-headers/crt/_mingw_secapi.h)
check if the MINGW_HAS_SECURE_API define is 1, so just defining it isn't
enough; this will result in a compile-time error.

This commit defines the define to 1 instead of nothing.
This commit adds Windows-specific build output to the .gitignore file,
since the current one causes the source tree to be polluted with build
output.
This PR fixes the following Windows-related build issues:

S_ISLNK usage
S_ISLNK isn't a supported call on Windows due to the lack of filesystem links like they exist on Unix-based systems. Other parts of the code properly check if WIN32 is defined, however, one piece was overlooked. This is fixed in one of the commits in this PR.

MINGW_HAS_SECURE_API Incorrectly Used
The MINGW_HAS_SECURE_API was used incorrectly and broke the Windows build - the correct usage is to define this to '1' instead of just defining it, as evident in the mingw headers.

Add Windows-specific output to .gitignore
Some of the build output files aren't added to the .gitignore, causing a potential source tree pollution when committing to the repository. Most notably, there was no exclusion for *.exe and *.dll files, while there was an exclusion for .so files. This discrepancy has been corrected.
@ddpbsd ddpbsd merged commit 6bd858e into ossec:master Jan 5, 2017
@ddpbsd
Copy link
Member

ddpbsd commented Jan 5, 2017

Thanks a lot!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants