<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>