Peter Budai
2018-06-08 09:44:18 UTC
With the latest release I have noticed that the build under MSYS2/MINGW is failing with the following message:
../../../src/openssl/x509.c:109:66: error: expected declaration specifiers or '...' before '(' token
static xmlChar* xmlSecOpenSSLX509NameWrite (X509_NAME* nm);
^
../../../src/openssl/x509.c: In function 'xmlSecOpenSSLX509SubjectNameNodeWrite':
More detailed build log you can see here: https://ci.appveyor.com/project/peterbud/xmlsec/build/job/sc82e41xseg7c391#L494
The problem in my understanding is that Windows headers also #define some names that openssl uses too. Openssl headers #undef the offending names before reusing them. But if those offending Windows headers get included _after_ the openssl headers the namespace gets polluted.
As a solution I have changed the include order in the openssl/x509.c and openssl/x50vfy.c files, aka moved the openssl includes as the last files to include, and that solved the problem, I was able to compile and execute all the tests.
However Im not sue this is the right solution. Any opinion?
Peter
../../../src/openssl/x509.c:109:66: error: expected declaration specifiers or '...' before '(' token
static xmlChar* xmlSecOpenSSLX509NameWrite (X509_NAME* nm);
^
../../../src/openssl/x509.c: In function 'xmlSecOpenSSLX509SubjectNameNodeWrite':
More detailed build log you can see here: https://ci.appveyor.com/project/peterbud/xmlsec/build/job/sc82e41xseg7c391#L494
The problem in my understanding is that Windows headers also #define some names that openssl uses too. Openssl headers #undef the offending names before reusing them. But if those offending Windows headers get included _after_ the openssl headers the namespace gets polluted.
As a solution I have changed the include order in the openssl/x509.c and openssl/x50vfy.c files, aka moved the openssl includes as the last files to include, and that solved the problem, I was able to compile and execute all the tests.
However Im not sue this is the right solution. Any opinion?
Peter