<div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr">On Sat, Feb 2, 2019, 4:11 AM Sebastian Huber <<a href="mailto:sebastian.huber@embedded-brains.de">sebastian.huber@embedded-brains.de</a> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">----- Am 2. Feb 2019 um 2:07 schrieb Chris Johns <a href="mailto:chrisj@rtems.org" target="_blank" rel="noreferrer">chrisj@rtems.org</a>:<br>
<br>
> On 1/2/19 8:19 pm, Sebastian Huber wrote:<br>
>> <br>
>> So, there is no standard compile and link test for functions? If I use this<br>
>> <br>
>>     conf.check_cc(fragment = 'int main(void) { strnlen("", 0); return 0; }',<br>
>>                   header_name="string.h", features = 'c', mandatory = False)<br>
>> <br>
>> waf outputs<br>
>> <br>
>> Checking for header string.h                  : yes<br>
>> <br>
>> I don't want to test for string.h, I want to test for strnlen(). In config.log<br>
>> we have:<br>
>> <br>
>> ---------------------------------------------<br>
>> Checking for header string.h<br>
>> ==><br>
>> int main(void) { strnlen("", 0); return 0; }<br>
>> <==<br>
>> [1/1] Compiling [32mbuild/.conf_check_6da1e91772980301eb2528a1d150a7ab/test.c[0m<br>
>> <br>
>> ['/usr/bin/gcc', '../test.c', '-c',<br>
>> '-o/scratch/git-rtems-tools/build/.conf_check_6da1e91772980301eb2528a1d150a7ab/testbuild/test.c.1.o']<br>
>> <br>
>> err: ../test.c: In function ‘main’:<br>
>> ../test.c:1:18: warning: implicit declaration of function ‘strnlen’<br>
>> [-Wimplicit-function-declaration]<br>
>>  int main(void) { strnlen("", 0); return 0; }<br>
>>                   ^~~~~~~<br>
>> <br>
>> yes<br>
>> ---------------------------------------------<br>
>> <br>
>> So, this test uses already quite some code and still is basically useless.<br>
> <br>
> You have a powerful language available. I would create a function to handle<br>
> repeated checks, for example:<br>
> <br>
> <a href="https://git.rtems.org/chrisj/rtems_waf.git/tree/rtems.py?h=libbsd-libdl#n270" rel="noreferrer noreferrer" target="_blank">https://git.rtems.org/chrisj/rtems_waf.git/tree/rtems.py?h=libbsd-libdl#n270</a><br>
> <br>
> I think having the ability to perform checks for an RTEMS application highlights<br>
> the power available.<br>
<br>
Yes, I don't doubt that you can do a lot of things with Python, but it was a bit surprising to me that I have to write custom code for things which are covered by basic Autoconf macros and only because Microsoft is not able to ship an operating system with a strnlen() function.<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">When you can check for a function with our infrastructure, sb-check needs to flag missing libraries needed for the tools </div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
_______________________________________________<br>
devel mailing list<br>
<a href="mailto:devel@rtems.org" target="_blank" rel="noreferrer">devel@rtems.org</a><br>
<a href="http://lists.rtems.org/mailman/listinfo/devel" rel="noreferrer noreferrer" target="_blank">http://lists.rtems.org/mailman/listinfo/devel</a></blockquote></div></div></div>