Applications From Scratch: http://appsfromscratch.berlios.de/
--- On Sun, 6/22/08, Jeroen Daanen via RT <[EMAIL PROTECTED]> wrote: > From: Jeroen Daanen via RT <[EMAIL PROTECTED]> > Subject: RE: [openssl.org #1700]: Bug report - openssl-0.9.8h breaks building > applications which depend on it > To: [EMAIL PROTECTED] > Cc: [email protected] > Date: Sunday, June 22, 2008, 12:55 PM > This is caused by a name clash. In the VC8 file WinCrypt.h > the following > is defined: > PlatformSDK/Include/WinCrypt.h:#define X509_EXTENSIONS > ((LPCSTR) 5) > > This causes line 207 of openssl/x509.h to be pre-compiled > to > > typedef STACK ((LPCSTR) 5); > > X509_EXTENSIONS should be renamed to prevent this clash. > > Regards, > Jeroen The point of my report is somewhat different, and maybe I misunderstand the 'typedef' festure of "C"; anyway, I've just refreshed my memory reading http://en.wikipedia.org/wiki/Typedef . The point is that 'typedef' is legally used as typedef OLD_TYPE NEW_TYPE , where OLD_TYPE is just and identifier, without any '(', ')'; NEW_TYPE can be pretty complex though. For example, I can write something like this: #define MY_FUNKY_TYPE(type1, size1, type2, size2) \ struct \ { \ type1 foo[size1]; \ type2 bar[size2]; \ } typedef my_funky_type MY_FUNKY_TYPE(double, 10, unsigned, 20); , but I do not think I can write typedef my_type(<whatever>) NEW_TYPE; - the "(<whatever>)" part looks illegal to me, and this is how I understood 'gcc' error messages. That's why I suggested to replace typedef OLD_TYPE(<whatever1>) NEW_TYPE(<whatever2>); with #define OLD_TYPE(<whatever1>) NEW_TYPE(<whatever2>) - the latter is a macro in which OLD_TYPE _can_ have arguments. Thanks, Sergei. ______________________________________________________________________ OpenSSL Project http://www.openssl.org Development Mailing List [email protected] Automated List Manager [EMAIL PROTECTED]
