Hi John,

I have built wolfssl and wolftpm dll with the msys2 compiler without errors and warnings. Thanks a lot.

Rostyslav

Hi,

I try to build wolftpm dll for windows using MSYS2. I follow this instruction https://www.wolfssl.com/documentation/m … er02.html. wolfssl and wolftpm I get from git repository. I am able to build wolfssl. When I run "make" command for building tpm I get errors:

# make
make -j3  all-am
make[1]: Entering directory '/home/Administrator/wolftpm'
  CC       examples/native/native_test.o
  CC       examples/wrap/wrap_test.o
  CC       examples/bench/bench.o
In file included from In file included from examples/native/native_test.c:29examples/wrap/wrap_test.c:30:
:
./examples/tpm_test.h:./examples/tpm_test.h: In function ' In function 'gettime_secsgettime_secs':
':
./examples/tpm_test.h:106:17: ./examples/tpm_test.h:106:17:error:  cast from function call of type 'error: ULONGLONGcast from function call of type '' {aka 'ULONGLONGlong l
ong unsigned int' {aka ''} to non-matching type 'long long unsigned intdouble'} to non-matching type '' [double-Werror=bad-function-cast' []
  106 |         return (-Werror=bad-function-cast(]
  106 |         return (double)GetTickCount64())/1000.0;
      |                 (^double)GetTickCount64())/1000.0;
      |
^
./examples/tpm_test.h:100:43: error: unused parameter 'reset' [-Werror=unused-parameter]
  100 |     static inline double gettime_secs(int reset)
      |                                       ~~~~^~~~~
./examples/tpm_test.h:100:43: error: unused parameter 'reset' [-Werror=unused-parameter]
  100 |     static inline double gettime_secs(int reset)
      |                                       ~~~~^~~~~
In file included from In file included from examples/native/native_test.c:24examples/wrap/wrap_test.c:24:
:
In file included from examples/native/native_test.c:                                                    In function '              :
TPM2_Native_TestArgs                                           ':
':
 In function '                         ./wolftpm/tpm2.h:1673:87:              ':
error:                                     comparison of integer expressions of different signedness: '                                                             int   er
ror: ' and '                                        unsigned int                     ' [           -Werror=sign-compare                                          ]
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code) ]
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code)                          ==         TPM_E_COMMAND_BLOCKED)
      |                                                                                        TPM_E_COMMAND_BLOCKED)
      |                                                                                          ^~

]
                        ./wolftpm/tpm2.h:1673:87:                            double)GetTickCount64())/1000.0;
      |                 note:        in definition of macro '
WOLFTPM_IS_COMMAND_UNAVAILABLEWOLFTPM_IS_COMMAND_UNAVAILABLE./examples/tpm_test.h:100:43:'
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code) '
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code)  ====error:  TPM_E_COMMAND_BLOCKED)
      |                                                                                        TPM_E_COMMAND_BLOCKED)
      |                                                                                                         ^~^~reset

' [./wolftpm/tpm2.h:1673:87:-Werror=unused-parameter ]
  100 |     static inline double gettime_secs(error: int resetcomparison of integer expressions of different signedness: ')
      |                                       int~~~~^~~~~' and '
./wolftpm/tpm2.h:1673:87: error: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Werror=sign-compare]
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code) == TPM_E_COMMAND_BLOCKED)
      |                                                                                       ^~
./wolftpm/tpm2.h:1673:87: note: in definition of macro 'WOLFTPM_IS_COMMAND_UNAVAILABLE'
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code) == TPM_E_COMMAND_BLOCKED)
      |                                                                                       ^~
./wolftpm/tpm2.h:1673:87: error: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Werror=sign-compare]
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code) == TPM_E_COMMAND_BLOCKED)
      |                                                                                       ^~
./wolftpm/tpm2.h:1673:87: note: in definition of macro 'WOLFTPM_IS_COMMAND_UNAVAILABLE'
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code) == TPM_E_COMMAND_BLOCKED)
      |                                                                                       ^~
                                      error: unsigned intunused variable '' [nvIndex-Werror=sign-compare' []
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code) -Werror=unused-variable==]
  160 |     TPMI_RH_NV_INDEX  TPM_E_COMMAND_BLOCKED)
      |                                                                                       nvIndex^~;
      |
^~~~~~~./wolftpm/tpm2.h:1673:87:
 examples/bench/bench.c:25note: :
                        examples/bench/bench.c:WOLFTPM_IS_COMMAND_UNAVAILABLE In function ''
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (cod   bench_sym_aes==':
 TPM_E_COMMAND_BLOCKED)
      |
error: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Werror=sign-compare./wolftpm/tpm2.h:1673:87: error: comparison of integer expre
ssions of different signedness: ']
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code) int==' and ' TPM_E_COMMAND_BLOCKED)
      |                                                                                       unsigned int^~' [
                                             ]
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABL                                                           TPM_E_COMMAND_BLOCKED)
      |                                                                                       in definition of macro '
'
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code)                              TPM_E_COMMAND_BLOCKED)
      |                                                                                       note: ^~in definition of macro '
WOLFTPM_IS_COMMAND_UNAVAILABLE'
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code) == TPM_E_COMMAND_BLOCKED)
      |                                                                                       ^~
examples/bench/bench.c: In function 'TPM2_Wrapper_BenchArgs':
./wolftpm/tpm2.h:1673:87: error: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Werror=sign-compare]
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code) ==./wolftpm/tpm2.h:1673:87: TPM_E_COMMAND_BLOCKED)
      |                                                                                        ^~error:
comparison of integer expressions of different signedness: './wolftpm/tpm2.h:1673:87:int ' and 'note: unsigned intin definition of macro '' [WOLFTPM_IS_COMMAND_UNAVAILABLE-
Werror=sign-compare'
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code) ]
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code) ==== TPM_E_COMMAND_BLOCKED)
      |                                                                                        TPM_E_COMMAND_BLOCKED)
      |                                                                                       ^~^~

./wolftpm/tpm2.h:1673:87:./wolftpm/tpm2.h:1673:87:  error: note: comparison of integer expressions of different signedness: 'in definition of macro 'intWOLFTPM_IS_COMMAND_U
NAVAILABLE' and ''
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code) unsigned int==' [ TPM_E_COMMAND_BLOCKED)
      |                                                                                       -Werror=sign-compare^~]
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code)
                            TPM_E_COMMAND_BLOCKED)
      |
comparison of integer expressions of different signedness: '                             ' and '                                          ' [                              -
Werror=sign-compare'
 1673 | #define WOL                                                                           ]
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code)      TPM_E_COMMAND_BLOCKED)
      |                                                                                        TPM_E_COMMAND_BLOCKED)
      |

./wolftpm/tpm2.h:1673:87:./wolftpm/tpm2.h:1673:87:  error: note: comparison of integer expressions of different signedness: 'in definition of macro 'intWOLFTPM_IS_COMMAND_U
NAVAILABLE' and ''
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code) unsigned int==' [ TPM_E_COMMAND_BLOCKED)
      |                                                                                       -Werror=sign-compare^~]
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code)
                            TPM_E_COMMAND_BLOCKED)
      |
comparison of integer expressions of different signedness: '                             ' and '                                          ' [                              -
Werror=sign-compare'
 1673 | #define WOL                                                                           ]
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code)      TPM_E_COMMAND_BLOCKED)
      |                                                                                        TPM_E_COMMAND_BLOCKED)
      |

./wolftpm/tpm2.h:1673:87:./wolftpm/tpm2.h:1673:87:  error: note: comparison of integer expressions of different signedness: 'in definition of macro 'intWOLFTPM_IS_COMMAND_U
NAVAILABLE' and ''
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code) unsigned int==' [ TPM_E_COMMAND_BLOCKED)
      |                                                                                       -Werror=sign-compare^~]
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code)
                            TPM_E_COMMAND_BLOCKED)
      |
comparison of integer expressions of different signedness: '                             ' and '                                          ' [                              -
Werror=sign-compare'
 1673 | #define WOL                                                                           ]
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code)      TPM_E_COMMAND_BLOCKED)
      |                                                                                        TPM_E_COMMAND_BLOCKED)
      |

./wolftpm/tpm2.h:1673:87:./wolftpm/tpm2.h:1673:87:  error: note: comparison of integer expressions of different signedness: 'in definition of macro 'intWOLFTPM_IS_COMMAND_U
NAVAILABLE' and ''
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code) unsigned int==' [ TPM_E_COMMAND_BLOCKED)
      |                                                                                       -Werror=sign-compare^~]
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code)
                            TPM_E_COMMAND_BLOCKED)
      |
comparison of integer expressions of different signedness: '                             ' and '                                          ' [                              -
Werror=sign-compare'
 1673 | #define WOL                                                                           ]
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code)      TPM_E_COMMAND_BLOCKED)
      |                                                                                        TPM_E_COMMAND_BLOCKED)
      |

./wolftpm/tpm2.h:1673:87:./wolftpm/tpm2.h:1673:87:  error: note: comparison of integer expressions of different signedness: 'in definition of macro 'intWOLFTPM_IS_COMMAND_U
NAVAILABLE' and ''
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code) unsigned int==' [ TPM_E_COMMAND_BLOCKED)
      |                                                                                       -Werror=sign-compare^~]
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code)
                                   TPM_E_COMMAND_BLOCKED)
      |
unused variable '                                      ' [                                                     ]
   82 |     word32                                           '
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code)  = 0;
      |            ==^~~~~~~~~~~~ TPM_E_COMMAND_BLOCKED)
      |
^~
./wolftpm/tpm2.h:1673:87: error: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Werror=sign-compare]
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code) == TPM_E_COMMAND_BLOCKED)
      |                                                                                       ^~
./wolftpm/tpm2.h:1673:87: note: in definition of macro 'WOLFTPM_IS_COMMAND_UNAVAILABLE'
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code) == TPM_E_COMMAND_BLOCKED)
      |                                                                                       ^~
./wolftpm/tpm2.h:1673:87: error: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Werror=sign-compare]
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code) == TPM_E_COMMAND_BLOCKED)
      |                                                                                       ^~
./wolftpm/tpm2.h:1673:87: note: in definition of macro 'WOLFTPM_IS_COMMAND_UNAVAILABLE'
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code) == TPM_E_COMMAND_BLOCKED)
      |                                                                                       ^~
./wolftpm/tpm2.h:1673:87: error: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Werror=sign-compare]
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code) == TPM_E_COMMAND_BLOCKED)
      |                                                                                       ^~
./wolftpm/tpm2.h:1673:87: note: in definition of macro 'WOLFTPM_IS_COMMAND_UNAVAILABLE'
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code) == TPM_E_COMMAND_BLOCKED)
      |                                                                                       ^~
./wolftpm/tpm2.h:1673:87: error: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Werror=sign-compare]
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code) == TPM_E_COMMAND_BLOCKED)
      |                                                                                       ^~
./wolftpm/tpm2.h:1673:87: note: in definition of macro 'WOLFTPM_IS_COMMAND_UNAVAILABLE'
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code) == TPM_E_COMMAND_BLOCKED)
      |                                                                                       ^~
./wolftpm/tpm2.h:1673:87: error: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Werror=sign-compare]
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code) == TPM_E_COMMAND_BLOCKED)
      |                                                                                       ^~
./wolftpm/tpm2.h:1673:87: note: in definition of macro 'WOLFTPM_IS_COMMAND_UNAVAILABLE'
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code) == TPM_E_COMMAND_BLOCKED)
      |                                                                                       ^~
./wolftpm/tpm2.h:1673:87: error: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Werror=sign-compare]
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code) == TPM_E_COMMAND_BLOCKED)
      |                                                                                       ^~
./wolftpm/tpm2.h:1673:87: note: in definition of macro 'WOLFTPM_IS_COMMAND_UNAVAILABLE'
 1673 | #define WOLFTPM_IS_COMMAND_UNAVAILABLE(code) ((code) == TPM_RC_COMMAND_CODE || (code) == TPM_E_COMMAND_BLOCKED)
      |                                                                                       ^~
cc1.exe: all warnings being treated as errors
cc1.exe: all warnings being treated as errors
cc1.exe: all warnings being treated as errors
make[1]: *** [Makefile:1994: examples/wrap/wrap_test.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: *** [Makefile:1994: examples/bench/bench.o] Error 1
make[1]: *** [Makefile:1994: examples/native/native_test.o] Error 1
make[1]: Leaving directory '/home/Administrator/wolftpm'
make: *** [Makefile:1407: all] Error 2

If I download wolftpm from the site https://www.wolfssl.com/download/ it builds successfully but with a lot of warnings. Can you please help me to figure out what went wrong?

Thanks,
Rostyslav