-
Notifications
You must be signed in to change notification settings - Fork 16
Cross-platform type standardization should be handled by stdint #5
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?
Conversation
|
stdint.h does not exist in vxWorks 5.5.2 or earlier. It also does not exist in Visual Studio 2008 or earlier. Has a decision been made that synApps will no longer support those older compilers? What about EPICS base? |
|
I just searched EPICS base 3.15.2 for any occurrence of stdint.h. I could not find any: corvette:local/epics/base-3.15.2>find . -name '.h' -exec grep -H stdint.h {} ; This indicates to me that the EPICS core developers have not decided to make C99 a requirement. |
|
Why not use epicsTypes.h rather than stdint.h? Then it will work on non-C99 compilers. This is the way all synApps modules are currently written. uint_32_t would become epicsUInt32, etc. |
vxWorks 5.5.2 hasn't really been supported since synApps 5_7 due to some NFS issues. Regardless, I switched to epicsTypes because the primary issue for me that this is solving is name conflicts on minGW. |
|
I 'm sorry I forgot to merge this pull request before releasing R7-7.
Thanks |
|
@keenanlang this pull request is still outstanding. I'm waiting for your response to my questions of Sept. 9, 2017. |
|
@keenanlang this pull request is still outstanding. I'm waiting for your response to my questions of Sept. 9, 2017. |
The C99 standard provides a guaranteed way to ensure bitwise compatibility across different platforms through the use of the stdint header. Because it is part of the standard, all compilers should implement it which means any potential new platforms will not need to be added into ndtypes.h. Additionally, this would solve naming clashes on Windows.