-
Notifications
You must be signed in to change notification settings - Fork 85
Fix erroneous check for __attribute__ definition introduced with APR 1.7.5 #4828
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
Fix erroneous check for __attribute__ definition introduced with APR 1.7.5 #4828
Conversation
…1.7.5 With the update of APR to versoin 1.7.5., we have to deal with an erroneous check for the definition of __attribute__ added to the APR head file apr.h: The additional check for the definition of __has_attribute is nonsense as it is a C++ internal macro to check for the existance of certain attributes, however it has nothing to do with __attribute__ used in this context. Since __attribute__ is not defined in MSVC, the modified, erroneous check now causes said definition becoming missing, resulting in a huge amount of "this declaration may not have extern 'C' linkage" errors within in MSVC. This change utilizes CMake to patch the extracted APR header file, restoring the original version of the check.
0391bbf to
dba526f
Compare
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.
Thank you, @Ansariel!
|
Thank you, merged! |
| # Fix erroneous check for __attribute__ definition introduced with APR 1.7.5, causing lots of "this declaration may not have extern 'C' linkage" errors in VS | ||
| file(READ ${LIBS_PREBUILT_DIR}/include/apr-1/apr.h APR_HEADER_CONTENTS) | ||
| string(REPLACE "#if !(defined(__attribute__) || defined(__has_attribute))" "#if !defined(__attribute__)" APR_HEADER_CONTENTS "${APR_HEADER_CONTENTS}") | ||
| file(WRITE ${LIBS_PREBUILT_DIR}/include/apr-1/apr.h "${APR_HEADER_CONTENTS}") |
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.
Arguably should have been done in https://github.com/secondlife/3p-apr_suite/blob/main/build-cmd.sh
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.
Arguably should have been done in https://github.com/secondlife/3p-apr_suite/blob/main/build-cmd.sh
Fastest and easiest way for TPVs to get it fixed without having to wait an eternity for an updated 3p lib. 😉
With the update of APR to versoin 1.7.5., we have to deal with an erroneous check for the definition of
__attribute__added to the APR head file apr.h: The additional check for the definition of__has_attributeis nonsense as it is a C++ internal macro to check for the existance of certain attributes, however it has nothing to do with__attribute__used in this context.Since
__attribute__is not defined in MSVC, the modified, erroneous check now causes said definition becoming missing, resulting in a huge amount of "this declaration may not have extern 'C' linkage" errors within in MSVC.This change utilizes CMake to patch the extracted APR header file, restoring the original version of the check.