You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The problem is that config.h is not part of installation and saslplug.h is, meaning that when packaged with conan for example, msvc users would get header which is not immediately usable.
I tested that by downloading cyrus-sasl from conancenter:
Ideally autoconf should test if __attribute__ is supported by the compiler. There used to be a test for this, but it was removed in 2e4af80 because redefining __attribute__ would break libc.
The correct fix would be to replace all uses of __attribute__ in the source with a Cyrus-SASL specific macro, so we can define it at will without affecting any other libraries. That's rather invasive but I think it's the right way to go. Also instead of the obsolete CMU-specific test, we can use autoconf's own test https://www.gnu.org/software/autoconf-archive/ax_c___attribute__.html
It's a compiler-specific feature and we can't depend on other
compilers supporting it identically or at all.
Fixcyrusimap#831.
Signed-off-by: Howard Chu <hyc@symas.com>
(cherry picked from commit 06f41c4)
The
saslplug.h
header uses__attribute__
which is not handled by msvc:cyrus-sasl/include/saslplug.h
Line 107 in ef0bafd
I suppose this is why this exist:
cyrus-sasl/win32/include/config.h
Lines 137 to 138 in ef0bafd
The problem is that
config.h
is not part of installation andsaslplug.h
is, meaning that when packaged withconan
for example, msvc users would get header which is not immediately usable.I tested that by downloading cyrus-sasl from conancenter:
and checking how it is packaged:
I think that there is a room for improvement here, i.e. public headers should contain platform-specific attribute handling.
The text was updated successfully, but these errors were encountered: