<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>Hello,<div><br></div><div>I'm programming an application that only gets and sets FIPS mode.</div><div><br></div><div>Here is my Makefile:</div><div><br></div><div>-------------------------------------------------------------------------------------------------------------------------------------------</div><div><div>TOOLCHAIN:=/home/marcos/work/nitere/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin:$PATH</div><div>CROSS_COMPILE:=arm-linux-gnueabihf-</div><div><br></div><div>OPENSSLDIR = /usr/local/ssl</div><div>#INCLUDES = -I$(OPENSSLDIR)/include -I$(OPENSSLDIR)/fips-2.0/include -I$(OPENSSLDIR)/lib</div><div>INCLUDES = -I$(OPENSSLDIR)/include -I$(OPENSSLDIR)/fips-2.0/include</div><div>LIBS= -Lcrypto</div><div><br></div><div>PATH:=${TOOLCHAIN}:${PATH}</div><div><br></div><div>all:</div><div><span class="Apple-tab-span" style="white-space:pre">    </span>${CROSS_COMPILE}gcc fipsctl.c -o fipsctl $(INCLUDES) $(LIBS)</div><div><br></div><div>clean:</div><div><span class="Apple-tab-span" style="white-space:pre">   </span>rm -Rf *.o fipsctl</div></div><div>-------------------------------------------------------------------------------------------------------------------------------------------</div><div><br></div><div>And here is my code:</div><div><br></div><div>-------------------------------------------------------------------------------------------------------------------------------------------</div><div><span style="font-size: 12pt;">#include <openssl/crypto.h></span></div><div><div>#include <stdio.h></div><div><br></div><div>int main ( int argc, char *argv[] )</div><div>{</div><div>    if(argv[0] == "get")</div><div>    {</div><div>        int mode = FIPS_mode();</div><div>        if(mode == 0)</div><div>        {</div><div>            printf("*** FIPS module is disabled. ***");</div><div>        }</div><div>        if(mode == 1)</div><div>        {</div><div>            printf("*** FIPS module is enabled. ***");</div><div>        }</div><div>    }</div><div>    else if(argv[0] == "set")</div><div>    {</div><div>        printf("*** Enabling FIPS module. ***");        </div><div>    }</div><div>    else</div><div>    {</div><div>        printf("*** Error: unsupported option. ***");</div><div>    }</div><div>}   </div></div><div>-------------------------------------------------------------------------------------------------------------------------------------------</div><div><br></div><div>When I try to cross-compile, I get this error:</div><div><br></div><div><div>marcos@marcos-X450LD:~/work/nitere/app/nitere$ make</div><div>arm-linux-gnueabihf-gcc fipsctl.c -o fipsctl -I/usr/local/ssl/include -I/usr/local/ssl/fips-2.0/include -Lcrypto</div><div>/tmp/ccSQhRme.o: In function `main':</div><div>fipsctl.c:(.text+0x1a): undefined reference to `FIPS_mode'</div><div>collect2: error: ld returned 1 exit status</div><div>make: *** [all] Error 1</div></div><div><br></div><div>Does anybody know why I'm getting this error? </div><div><br></div><div>Any tip will be very helpful,</div><div>Thanks.</div><div><br></div>                                     </div></body>
</html>