[xmlsec] mscrypto link error with 1.18 unresolved external reference

Aleksey Sanin aleksey at aleksey.com
Thu Jun 16 10:08:57 PDT 2011


You need to remove the ones around the function definitions (the code 
you pasted in the email).

Aleksey


On 6/16/11 10:04 AM, EdShallow wrote:
> Is there use scattered all over the code?
>
> I don't mind removing a few ... It is used within UNICODE ifdef's as well
>
> Can I remove both of them them?
>
> Ed
>
> On Thu, Jun 16, 2011 at 12:51 PM, Aleksey Sanin <aleksey at aleksey.com 
> <mailto:aleksey at aleksey.com>> wrote:
>
>     You can try to remove MINGW ifdef around these functions
>
>     Aleksey
>
>
>     On 6/16/11 9:47 AM, EdShallow wrote:
>>     Yes I noticed that. I am not using minGW, at least I think I am
>>     not ; )
>>
>>     I did notice use of these functions outside the MINGW32 ifdef's
>>
>>     I am also not compiling with UNICODE.
>>
>>     Can I get away with staying on VC6 ?
>>
>>     Ed
>>
>>     On Thu, Jun 16, 2011 at 12:43 PM, Aleksey Sanin
>>     <aleksey at aleksey.com <mailto:aleksey at aleksey.com>> wrote:
>>
>>         http://msdn.microsoft.com/en-us/library/td1esda9%28v=vs.80%29.aspx
>>
>>         These are "safe" versions of strcpy(). The code you posted is
>>         required for MinGW since
>>         it doesn't define these functions.
>>
>>         Aleksey
>>
>>
>>         On 6/16/11 9:37 AM, EdShallow wrote:
>>>         ... in crypto.c in mscrypto ...
>>>
>>>         Ed
>>>
>>>         On Thu, Jun 16, 2011 at 12:36 PM, EdShallow
>>>         <ed.shallow at gmail.com <mailto:ed.shallow at gmail.com>> wrote:
>>>
>>>             Hi Aleksey,
>>>
>>>                Thanks for the quick response.
>>>
>>>             These are the offending lines ...
>>>
>>>             static int
>>>             strcpy_s(char *dest, size_t n, const char *src) {
>>>                 strcpy(dest, src);
>>>                 return(0);
>>>             }
>>>
>>>             static int
>>>             wcscpy_s(wchar_t *dest, size_t n, const wchar_t *src) {
>>>                 wcscpy(dest, src);
>>>                 return(0);
>>>
>>>             These 2 xxx_s functions are new. Not sure when they were
>>>             introduced or in which lib file they reside.
>>>
>>>             Ed
>>>
>>>
>>>             On Thu, Jun 16, 2011 at 12:21 PM, Aleksey Sanin
>>>             <aleksey at aleksey.com <mailto:aleksey at aleksey.com>> wrote:
>>>
>>>                 Ed,
>>>
>>>                 I believe VC7.1 (VS 2003) is the minimum supported
>>>                 version.
>>>
>>>                 Aleksey
>>>
>>>
>>>                 On 6/16/11 8:04 AM, EdShallow wrote:
>>>>                 I think my MSSDK is too old? Possible?
>>>>
>>>>                 All the MS .lib files are  but there may be a new
>>>>                 reference that wasn't there before. I am using VC6.
>>>>
>>>>                 Ed
>>>>
>>>>                 On Thu, Jun 16, 2011 at 10:36 AM, EdShallow
>>>>                 <ed.shallow at gmail.com
>>>>                 <mailto:ed.shallow at gmail.com>> wrote:
>>>>
>>>>                     Hi Aleksey,
>>>>
>>>>                        Experiencing a link error related to
>>>>                     mscrypto when compiling 1.18 Here is the
>>>>                     reported link error at the bottom of the nmake
>>>>                     output.
>>>>
>>>>                        I am using the same environment as I last
>>>>                     did with my last 1.11 compile
>>>>
>>>>                        Any ideas which .lib or .dll are missing?
>>>>
>>>>                     Thanks,
>>>>                     Ed
>>>>
>>>>                     C:\XMLSec\xmlsec1-1.2.18\
>>>>                     win32>nmake
>>>>
>>>>                     Microsoft (R) Program Maintenance Utility  
>>>>                     Version 7.00.8882
>>>>                     Copyright (C) Microsoft Corp 1988-2000. All
>>>>                     rights reserved.
>>>>
>>>>                             cl.exe /nologo /D "WIN32" /D "_WINDOWS"
>>>>                     /D "_MBCS" /D "_REENTRANT"  /W1 /MD /I..
>>>>                     /I..\include /IC:\XMLSec\xmlsec1-1.2.18\include
>>>>                     /D PACKAGE=\"xmlsec\" /D "HAVE_STDIO_H" /D "HAVE
>>>>                     _STDLIB_H" /D "HAVE_STRING_H" /D "HAVE_CTYPE_H"
>>>>                     /D "HAVE_MALLOC_H" /D "HAVE_MEMORY_H" /D
>>>>                     "NDEBUG" /O2 /DXMLSEC_MSCRYPTO_NT4=1 /D
>>>>                     "XMLSEC_DL_WIN32" /Folibxmlsec.int\ /c
>>>>                     ..\src\app.c ..\s
>>>>                     rc\base64.c ..\src\bn.c ..\src\buffer.c
>>>>                     ..\src\c14n.c ..\src\dl.c ..\src\enveloped.c
>>>>                     ..\src\errors.c ..\src\io.c ..\src\keyinfo.c
>>>>                     ..\src\keys.c ..\src\keysdata.c
>>>>                     ..\src\keysmngr.c ..\sr
>>>>                     c\kw_aes_des.c ..\src\list.c ..\src\membuf.c
>>>>                     ..\src\nodeset.c ..\src\parser.c ..\src\soap.c
>>>>                     ..\src\strings.c ..\src\templates.c
>>>>                     ..\src\transforms.c ..\src\x509.c ..\src\xkms.c
>>>>                     ..\src\xm
>>>>                     ldsig.c ..\src\xmlenc.c ..\src\xmlsec.c
>>>>                     ..\src\xmltree.c ..\src\xpath.c ..\src\xslt.c
>>>>                     app.c
>>>>                     base64.c
>>>>                     bn.c
>>>>                     buffer.c
>>>>                     c14n.c
>>>>                     dl.c
>>>>                     enveloped.c
>>>>                     errors.c
>>>>                     io.c
>>>>                     keyinfo.c
>>>>                     keys.c
>>>>                     keysdata.c
>>>>                     keysmngr.c
>>>>                     kw_aes_des.c
>>>>                     list.c
>>>>                     membuf.c
>>>>                     nodeset.c
>>>>                     parser.c
>>>>                     soap.c
>>>>                     strings.c
>>>>                     Generating Code...
>>>>                     Compiling...
>>>>                     templates.c
>>>>                     transforms.c
>>>>                     x509.c
>>>>                     xkms.c
>>>>                     xmldsig.c
>>>>                     xmlenc.c
>>>>                     xmlsec.c
>>>>                     xmltree.c
>>>>                     xpath.c
>>>>                     xslt.c
>>>>                     Generating Code...
>>>>                             link.exe /nologo /LIBPATH:binaries
>>>>                     /LIBPATH:C:\XMLSec\xmlsec1-1.2.18\lib
>>>>                     /OPT:NOWIN98 /DLL /VERSION:1.2 
>>>>                     /IMPLIB:binaries\libxmlsec.lib
>>>>                     /OUT:binaries\libxmlsec.dll libxmlsec.in
>>>>                     <http://libxmlsec.in/>
>>>>                     t\app.obj libxmlsec.int
>>>>                     <http://libxmlsec.int/>\base64.obj
>>>>                     libxmlsec.int <http://libxmlsec.int/>\bn.obj
>>>>                     libxmlsec.int
>>>>                     <http://libxmlsec.int/>\buffer.obj
>>>>                     libxmlsec.int <http://libxmlsec.int/>\c14n.obj
>>>>                     libxmlsec.int <http://libxmlsec.int/>\dl.obj
>>>>                     libxmlsec.int
>>>>                     <http://libxmlsec.int/>\enveloped.obj
>>>>                     libxmlsec.int
>>>>                     <http://libxmlsec.int/>\errors.obj  li
>>>>                     bxmlsec.int <http://bxmlsec.int/>\io.obj
>>>>                     libxmlsec.int
>>>>                     <http://libxmlsec.int/>\keyinfo.obj
>>>>                     libxmlsec.int <http://libxmlsec.int/>\keys.obj
>>>>                     libxmlsec.int
>>>>                     <http://libxmlsec.int/>\keysdata.obj
>>>>                     libxmlsec.int
>>>>                     <http://libxmlsec.int/>\keysmngr.obj
>>>>                     libxmlsec.int
>>>>                     <http://libxmlsec.int/>\kw_aes_des.obj
>>>>                     libxmlsec.int <http://libxmlsec.int/>\list.obj 
>>>>                     libx
>>>>                     mlsec.int <http://mlsec.int/>\membuf.obj
>>>>                     libxmlsec.int
>>>>                     <http://libxmlsec.int/>\nodeset.obj
>>>>                     libxmlsec.int
>>>>                     <http://libxmlsec.int/>\parser.obj
>>>>                     libxmlsec.int <http://libxmlsec.int/>\soap.obj
>>>>                     libxmlsec.int
>>>>                     <http://libxmlsec.int/>\strings.obj
>>>>                     libxmlsec.int
>>>>                     <http://libxmlsec.int/>\templates.obj
>>>>                     libxmlsec.int
>>>>                     <http://libxmlsec.int/>\transforms.obj
>>>>                     libxmlsec.int <http://libxmlsec.int/>\x509.obj
>>>>                     libxmlsec.int <http://libxmlsec.int/>\xkms.obj
>>>>                     libxmlsec.int
>>>>                     <http://libxmlsec.int/>\xmldsig.obj
>>>>                     libxmlsec.int
>>>>                     <http://libxmlsec.int/>\xmlenc.obj
>>>>                     libxmlsec.int
>>>>                     <http://libxmlsec.int/>\xmlsec.obj
>>>>                     libxmlsec.int
>>>>                     <http://libxmlsec.int/>\xmltree.obj
>>>>                     libxmlsec.int
>>>>                     <http://libxmlsec.int/>\xpath.obj  libxml
>>>>                     sec.int <http://sec.int/>\xslt.obj  libxml2.lib
>>>>                     libxslt.lib
>>>>                        Creating library binaries\libxmlsec.lib and
>>>>                     object binaries\libxmlsec.exp
>>>>                             if not exist libxmlsec_mscrypto.int
>>>>                     <http://libxmlsec_mscrypto.int/> mkdir
>>>>                     libxmlsec_mscrypto.int
>>>>                     <http://libxmlsec_mscrypto.int/>
>>>>                             cl.exe /nologo /D "WIN32" /D "_WINDOWS"
>>>>                     /D "_MBCS" /D "_REENTRANT"  /W1 /MD /I..
>>>>                     /I..\include /IC:\XMLSec\xmlsec1-1.2.18\include
>>>>                     /D PACKAGE=\"xmlsec\" /D "HAVE_STDIO_H" /D "HAVE
>>>>                     _STDLIB_H" /D "HAVE_STRING_H" /D "HAVE_CTYPE_H"
>>>>                     /D "HAVE_MALLOC_H" /D "HAVE_MEMORY_H" /D
>>>>                     "NDEBUG" /O2 /DXMLSEC_MSCRYPTO_NT4=1 /D
>>>>                     "XMLSEC_DL_WIN32" /D "XMLSEC_CRYPTO_MSCRYPTO"
>>>>                     /D "XMLSEC
>>>>                     _CRYPTO=\"mscrypto\""
>>>>                     /Folibxmlsec_mscrypto.int\ /c
>>>>                     ..\src\mscrypto\app.c ..\src\mscrypto\crypto.c
>>>>                     ..\src\mscrypto\ciphers.c
>>>>                     ..\src\mscrypto\digests.c
>>>>                     ..\src\mscrypto\hmac.c ..\src\mscr
>>>>                     ypto\symkeys.c ..\src\mscrypto\kt_rsa.c
>>>>                     ..\src\mscrypto\kw_aes.c
>>>>                     ..\src\mscrypto\kw_des.c
>>>>                     ..\src\mscrypto\signatures.c
>>>>                     ..\src\mscrypto\certkeys.c
>>>>                     ..\src\mscrypto\keysstore.c ..\src\mscr
>>>>                     ypto\x509.c ..\src\mscrypto\x509vfy.c
>>>>                     app.c
>>>>                     crypto.c
>>>>                     ciphers.c
>>>>                     digests.c
>>>>                     hmac.c
>>>>                     symkeys.c
>>>>                     kt_rsa.c
>>>>                     kw_aes.c
>>>>                     kw_des.c
>>>>                     signatures.c
>>>>                     certkeys.c
>>>>                     keysstore.c
>>>>                     x509.c
>>>>                     x509vfy.c
>>>>                     Generating Code...
>>>>                             cl.exe /nologo /D "WIN32" /D "_WINDOWS"
>>>>                     /D "_MBCS" /D "_REENTRANT"  /W1 /MD /I..
>>>>                     /I..\include /IC:\XMLSec\xmlsec1-1.2.18\include
>>>>                     /D PACKAGE=\"xmlsec\" /D "HAVE_STDIO_H" /D "HAVE
>>>>                     _STDLIB_H" /D "HAVE_STRING_H" /D "HAVE_CTYPE_H"
>>>>                     /D "HAVE_MALLOC_H" /D "HAVE_MEMORY_H" /D
>>>>                     "NDEBUG" /O2 /DXMLSEC_MSCRYPTO_NT4=1 /D
>>>>                     "XMLSEC_DL_WIN32" /D "XMLSEC_CRYPTO_MSCRYPTO"
>>>>                     /D "XMLSEC
>>>>                     _CRYPTO=\"mscrypto\""
>>>>                     /Folibxmlsec_mscrypto.int\ /c ..\src\strings.c
>>>>                     strings.c
>>>>                             link.exe /nologo /LIBPATH:binaries
>>>>                     /LIBPATH:C:\XMLSec\xmlsec1-1.2.18\lib
>>>>                     /OPT:NOWIN98 /DLL /VERSION:1.2 
>>>>                     /IMPLIB:binaries\libxmlsec-mscrypto.lib
>>>>                     /OUT:binaries\libxmlsec-mscrypto
>>>>                     .dll libxmlsec_mscrypto.int
>>>>                     <http://libxmlsec_mscrypto.int/>\app.obj
>>>>                     libxmlsec_mscrypto.int
>>>>                     <http://libxmlsec_mscrypto.int/>\crypto.obj
>>>>                     libxmlsec_mscrypto.int
>>>>                     <http://libxmlsec_mscrypto.int/>\ciphers.obj
>>>>                     libxmlsec_mscrypto.int
>>>>                     <http://libxmlsec_mscrypto.int/>\digests.obj
>>>>                     libxmlsec_mscrypto.int
>>>>                     <http://libxmlsec_mscrypto.int/>\hmac.obj  libxmlse
>>>>                     c_mscrypto.int
>>>>                     <http://c_mscrypto.int/>\symkeys.obj
>>>>                     libxmlsec_mscrypto.int
>>>>                     <http://libxmlsec_mscrypto.int/>\kt_rsa.obj
>>>>                     libxmlsec_mscrypto.int
>>>>                     <http://libxmlsec_mscrypto.int/>\kw_aes.obj
>>>>                     libxmlsec_mscrypto.int
>>>>                     <http://libxmlsec_mscrypto.int/>\kw_des.obj
>>>>                     libxmlsec_mscrypto.int
>>>>                     <http://libxmlsec_mscrypto.int/>\strings.obj 
>>>>                     libxmlsec_mscryp
>>>>                     to.int <http://to.int/>\signatures.obj
>>>>                     libxmlsec_mscrypto.int
>>>>                     <http://libxmlsec_mscrypto.int/>\certkeys.obj
>>>>                     libxmlsec_mscrypto.int
>>>>                     <http://libxmlsec_mscrypto.int/>\keysstore.obj
>>>>                     libxmlsec_mscrypto.int
>>>>                     <http://libxmlsec_mscrypto.int/>\x509.obj
>>>>                     libxmlsec_mscrypto.int
>>>>                     <http://libxmlsec_mscrypto.int/>\x509vfy.obj
>>>>                     libxmlsec.lib  libx
>>>>                     ml2.lib libxslt.lib kernel32.lib user32.lib
>>>>                     gdi32.lib Crypt32.lib Advapi32.lib
>>>>                        Creating library
>>>>                     binaries\libxmlsec-mscrypto.lib and object
>>>>                     binaries\libxmlsec-mscrypto.exp
>>>>                     crypto.obj : error LNK2019: unresolved external
>>>>                     symbol _wcscpy_s referenced in function
>>>>                     _xmlSecMSCryptoErrorsDefaultCallback
>>>>                     crypto.obj : error LNK2019: unresolved external
>>>>                     symbol _strcpy_s referenced in function
>>>>                     _xmlSecMSCryptoErrorsDefaultCallback
>>>>                     binaries\libxmlsec-mscrypto.dll : fatal error
>>>>                     LNK1120: 2 unresolved externals
>>>>                     NMAKE : fatal error U1077: 'link.exe' : return
>>>>                     code '0x460'
>>>>                     Stop.
>>>>
>>>>                     C:\XMLSec\xmlsec1-1.2.18\win32>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>                 -- 
>>>>                 Ed's Contact Information:
>>>>                 Mobile Phone: 613-852-6410 <tel:613-852-6410>
>>>>                 Gmail: ed.shallow at gmail.com
>>>>                 <mailto:ed.shallow at gmail.com>
>>>>                 VOIP Address: 107529 at sip.ca1.voip.ms
>>>>                 <mailto:107529 at sip.ca1.voip.ms>
>>>>                 VOIP DID#: 613-458-5004 <tel:613-458-5004>
>>>>                 Skype ID: edward.shallow
>>>>                 Home Phone: 613-482-2090 <tel:613-482-2090>
>>>>
>>>>
>>>>                 _______________________________________________
>>>>                 xmlsec mailing list
>>>>                 xmlsec at aleksey.com  <mailto:xmlsec at aleksey.com>
>>>>                 http://www.aleksey.com/mailman/listinfo/xmlsec
>>>
>>>
>>>
>>>
>>>             -- 
>>>             Ed's Contact Information:
>>>             Mobile Phone: 613-852-6410 <tel:613-852-6410>
>>>             Gmail: ed.shallow at gmail.com <mailto:ed.shallow at gmail.com>
>>>             VOIP Address: 107529 at sip.ca1.voip.ms
>>>             <mailto:107529 at sip.ca1.voip.ms>
>>>             VOIP DID#: 613-458-5004 <tel:613-458-5004>
>>>             Skype ID: edward.shallow
>>>             Home Phone: 613-482-2090 <tel:613-482-2090>
>>>
>>>
>>>
>>>
>>>         -- 
>>>         Ed's Contact Information:
>>>         Mobile Phone: 613-852-6410 <tel:613-852-6410>
>>>         Gmail: ed.shallow at gmail.com <mailto:ed.shallow at gmail.com>
>>>         VOIP Address: 107529 at sip.ca1.voip.ms
>>>         <mailto:107529 at sip.ca1.voip.ms>
>>>         VOIP DID#: 613-458-5004 <tel:613-458-5004>
>>>         Skype ID: edward.shallow
>>>         Home Phone: 613-482-2090 <tel:613-482-2090>
>>>
>>
>>
>>
>>     -- 
>>     Ed's Contact Information:
>>     Mobile Phone: 613-852-6410 <tel:613-852-6410>
>>     Gmail: ed.shallow at gmail.com <mailto:ed.shallow at gmail.com>
>>     VOIP Address: 107529 at sip.ca1.voip.ms <mailto:107529 at sip.ca1.voip.ms>
>>     VOIP DID#: 613-458-5004 <tel:613-458-5004>
>>     Skype ID: edward.shallow
>>     Home Phone: 613-482-2090 <tel:613-482-2090>
>>
>
>
>
> -- 
> Ed's Contact Information:
> Mobile Phone: 613-852-6410
> Gmail: ed.shallow at gmail.com <mailto:ed.shallow at gmail.com>
> VOIP Address: 107529 at sip.ca1.voip.ms <mailto:107529 at sip.ca1.voip.ms>
> VOIP DID#: 613-458-5004
> Skype ID: edward.shallow
> Home Phone: 613-482-2090
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.aleksey.com/pipermail/xmlsec/attachments/20110616/55ce2fb1/attachment-0001.html>


More information about the xmlsec mailing list