SHA-2 code does not compile on FreeBSD

The code fails to compile with the below error:
qcryptographichash.cpp:55: error: conflicting declaration 'typedef quint64 uint64_t'
/usr/include/sys/types.h:99: error: 'uint64_t' has a previous declaration as 'typedef __uint64_t uint64_t'

FreeBSDs types.h defines the used defines. Maybe it would be less
ugly to switch the code to quint*, or use a define to do so, or to
have basic os detection for stdint.h, not to include sys/types.h.

Change-Id: Ic62ae4b742c1123b4b7e17158d216374e609f59f
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
This commit is contained in:
Holger Hans Peter Freyther 2012-02-29 01:01:01 +01:00 committed by Qt by Nokia
parent 221fe8776b
commit f885a526ac

View File

@ -52,9 +52,18 @@
from from stdint.h, but since this header is not available on all platforms from from stdint.h, but since this header is not available on all platforms
(MSVC 2008, for example), we need to define them ourselves. (MSVC 2008, for example), we need to define them ourselves.
*/ */
#ifndef _UINT64_T_DECLARED
typedef QT_PREPEND_NAMESPACE(quint64) uint64_t; typedef QT_PREPEND_NAMESPACE(quint64) uint64_t;
#endif
#ifndef _UINT32_T_DECLARED
typedef QT_PREPEND_NAMESPACE(quint32) uint32_t; typedef QT_PREPEND_NAMESPACE(quint32) uint32_t;
#endif
#ifndef _UINT8_T_DECLARED
typedef QT_PREPEND_NAMESPACE(quint8) uint8_t; typedef QT_PREPEND_NAMESPACE(quint8) uint8_t;
#endif
typedef QT_PREPEND_NAMESPACE(qint16) int_least16_t; typedef QT_PREPEND_NAMESPACE(qint16) int_least16_t;
// Header from rfc6234 with 1 modification: // Header from rfc6234 with 1 modification:
// sha1.h - commented out '#include <stdint.h>' on line 74 // sha1.h - commented out '#include <stdint.h>' on line 74