-
Notifications
You must be signed in to change notification settings - Fork 262
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
Add legacy macro option #3030
Add legacy macro option #3030
Conversation
…install_dir to use /usr/local/hdf5/lib/plugin by default unless a 'prefix' is specified by the user, in which case it becomes prefix/hdf5/lib/plugin. This can still be overridden with the build flags appropriate to the build system.
I believe this should have the opposite default setting, as the number of users who will encounter problems with _FillValue is tiny compared to the number that will have problems with its absence. At least give users a few releases with the new macros available but not yet mandatory. |
@edwardhartnett It would be great if we could get more release candidate exposure so that we had a better feel for this. Flipping it (as you suggest) doesn't do any harm and could (as pointed out) be better in the short run. I have documentation to add before I was going to merge this, so I'll flip the polarity for the next rc. No harm in changing a considered opinion, after all ;). |
For some customer input, I am fine with either option. We have already added code to test whether |
Echoing @gsjaardema , I just amended NCO to use |
enable-legacy-macros
option. #3029Adds legacy macro option to enable
_FillValue
, any other macros which may reveal themselves. As discussed in #2858, the issue with_FillValue
is that it can, in some circumstances, conflicts with a symbollibc++18
. While_FillValue
is historically important and widely used, (and technically tricky to move away from), we can't avoid the fact that_
is a reserved identifier and will potentially cause problems for users aslibc++18
and later become more common in the wild.We replaced
_FillValue
withNC_FillValue
in #2858, and we encourage users to adjust their software to account for this. But not all of our users are maintaining software they rely upon, and we do not (and cannot) put people in a position where software they rely upon but are not equipped to modify will not compile.Invoking
--enable-legacy-macros
(autotools) or-DNETCDF_ENABLE_LEGACY_MACROS=TRUE
(cmake) will define the_FillValue
macro, for use when building netCDF as part of a larger, un-modified technical ecosystem.