<div dir="ltr">I saw this patch added _Mutex_recusive_Acquire and applied to newlib.<a href="https://sourceware.org/ml/newlib/2015/msg00583.html">https://sourceware.org/ml/newlib/2015/msg00583.html</a><div><br></div><div>In this patch, i did not see the function definiton. Is it the reason that cause `undefined reference`? If need to implement `<span style="font-size:14px">_Mutex_recursive_Release</span>`, should make it in rtems code base or newlib code base? I have no clear idea on this.</div><div><br></div><div>Thanks,</div><div>Peng.</div></div><div class="gmail_extra"><br><div class="gmail_quote">2016-04-13 16:07 GMT+08:00 Chris Johns <span dir="ltr"><<a href="mailto:chrisj@rtems.org" target="_blank">chrisj@rtems.org</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 08/04/2016 11:45, Chris Johns wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
The test is simple:<br>
<br>
  $ cat hw.c<br>
  #include <stdio.h><br>
  int main(void)<br>
  {<br>
    printf("hello world\n");<br>
    return 0;<br>
  }<br>
  $ arm-rtems4.12-gcc -o hw hw.c<br>
<br>
</blockquote>
<br></span>
The actual failing test case used by configure is attached. It would seem changes to newlib or gcc have broken building 3rd party packages.<br>
<br>
A fix would be nice. :)<br>
<br>
Thanks<br>
Chris<br>
<br>
$ i386-rtems4.12-gcc -o conftest conftest.c<br>
/opt/work/rtems/4.12/lib/gcc/i386-rtems4.12/6.0.0/../../../../i386-rtems4.12/bin/ld: warning: cannot find entry symbol _start; defaulting to 0000000008048074<br>
/opt/work/rtems/4.12/lib/gcc/i386-rtems4.12/6.0.0/../../../../i386-rtems4.12/lib/libc.a(lib_a-fclose.o): In function `_fclose_r':<br>
/opt/work/chris/rtems/rsb/rtems-source-builder.master/rtems/build/i386-rtems4.12-gcc-6-20160327-newlib-2.4.0-x86_64-freebsd10.1-1/build/i386-rtems4.12/newlib/libc/stdio/../../../../../gcc-6-20160327/newlib/libc/stdio/fclose.c:117: undefined reference to `_Mutex_recursive_Release'<br>
/opt/work/chris/rtems/rsb/rtems-source-builder.master/rtems/build/i386-rtems4.12-gcc-6-20160327-newlib-2.4.0-x86_64-freebsd10.1-1/build/i386-rtems4.12/newlib/libc/stdio/../../../../../gcc-6-20160327/newlib/libc/stdio/fclose.c:86: undefined reference to `_Mutex_recursive_Acquire'<br>
/opt/work/chris/rtems/rsb/rtems-source-builder.master/rtems/build/i386-rtems4.12-gcc-6-20160327-newlib-2.4.0-x86_64-freebsd10.1-1/build/i386-rtems4.12/newlib/libc/stdio/../../../../../gcc-6-20160327/newlib/libc/stdio/fclose.c:91: undefined reference to `_Mutex_recursive_Release'<br>
/opt/work/rtems/4.12/lib/gcc/i386-rtems4.12/6.0.0/../../../../i386-rtems4.12/lib/libc.a(lib_a-fflush.o): In function `_fflush_r':<br>
/opt/work/chris/rtems/rsb/rtems-source-builder.master/rtems/build/i386-rtems4.12-gcc-6-20160327-newlib-2.4.0-x86_64-freebsd10.1-1/build/i386-rtems4.12/newlib/libc/stdio/../../../../../gcc-6-20160327/newlib/libc/stdio/fflush.c:282: undefined reference to `_Mutex_recursive_Release'<br>
/opt/work/chris/rtems/rsb/rtems-source-builder.master/rtems/build/i386-rtems4.12-gcc-6-20160327-newlib-2.4.0-x86_64-freebsd10.1-1/build/i386-rtems4.12/newlib/libc/stdio/../../../../../gcc-6-20160327/newlib/libc/stdio/fflush.c:280: undefined reference to `_Mutex_recursive_Acquire'<br>
/opt/work/rtems/4.12/lib/gcc/i386-rtems4.12/6.0.0/../../../../i386-rtems4.12/lib/libc.a(lib_a-findfp.o): In function `__fp_lock':<br>
/opt/work/chris/rtems/rsb/rtems-source-builder.master/rtems/build/i386-rtems4.12-gcc-6-20160327-newlib-2.4.0-x86_64-freebsd10.1-1/build/i386-rtems4.12/newlib/libc/stdio/../../../../../gcc-6-20160327/newlib/libc/stdio/findfp.c:297: undefined reference to `_Mutex_recursive_Acquire'<br>
/opt/work/rtems/4.12/lib/gcc/i386-rtems4.12/6.0.0/../../../../i386-rtems4.12/lib/libc.a(lib_a-findfp.o): In function `__fp_unlock':<br>
/opt/work/chris/rtems/rsb/rtems-source-builder.master/rtems/build/i386-rtems4.12-gcc-6-20160327-newlib-2.4.0-x86_64-freebsd10.1-1/build/i386-rtems4.12/newlib/libc/stdio/../../../../../gcc-6-20160327/newlib/libc/stdio/findfp.c:308: undefined reference to `_Mutex_recursive_Release'<br>
/opt/work/rtems/4.12/lib/gcc/i386-rtems4.12/6.0.0/../../../../i386-rtems4.12/lib/libc.a(lib_a-findfp.o): In function `__sinit_lock_acquire':<br>
/opt/work/chris/rtems/rsb/rtems-source-builder.master/rtems/build/i386-rtems4.12-gcc-6-20160327-newlib-2.4.0-x86_64-freebsd10.1-1/build/i386-rtems4.12/newlib/libc/stdio/../../../../../gcc-6-20160327/newlib/libc/stdio/findfp.c:282: undefined reference to `_Mutex_recursive_Acquire'<br>
/opt/work/rtems/4.12/lib/gcc/i386-rtems4.12/6.0.0/../../../../i386-rtems4.12/lib/libc.a(lib_a-findfp.o): In function `__sfp_lock_acquire':<br>
/opt/work/chris/rtems/rsb/rtems-source-builder.master/rtems/build/i386-rtems4.12-gcc-6-20160327-newlib-2.4.0-x86_64-freebsd10.1-1/build/i386-rtems4.12/newlib/libc/stdio/../../../../../gcc-6-20160327/newlib/libc/stdio/findfp.c:270: undefined reference to `_Mutex_recursive_Acquire'<br>
/opt/work/rtems/4.12/lib/gcc/i386-rtems4.12/6.0.0/../../../../i386-rtems4.12/lib/libc.a(lib_a-findfp.o): In function `__sfp_lock_release':<br>
/opt/work/chris/rtems/rsb/rtems-source-builder.master/rtems/build/i386-rtems4.12-gcc-6-20160327-newlib-2.4.0-x86_64-freebsd10.1-1/build/i386-rtems4.12/newlib/libc/stdio/../../../../../gcc-6-20160327/newlib/libc/stdio/findfp.c:276: undefined reference to `_Mutex_recursive_Release'<br>
/opt/work/chris/rtems/rsb/rtems-source-builder.master/rtems/build/i386-rtems4.12-gcc-6-20160327-newlib-2.4.0-x86_64-freebsd10.1-1/build/i386-rtems4.12/newlib/libc/stdio/../../../../../gcc-6-20160327/newlib/libc/stdio/findfp.c:276: undefined reference to `_Mutex_recursive_Release'<br>
/opt/work/rtems/4.12/lib/gcc/i386-rtems4.12/6.0.0/../../../../i386-rtems4.12/lib/libc.a(lib_a-findfp.o): In function `__sfp_lock_acquire':<br>
/opt/work/chris/rtems/rsb/rtems-source-builder.master/rtems/build/i386-rtems4.12-gcc-6-20160327-newlib-2.4.0-x86_64-freebsd10.1-1/build/i386-rtems4.12/newlib/libc/stdio/../../../../../gcc-6-20160327/newlib/libc/stdio/findfp.c:270: undefined reference to `_Mutex_recursive_Acquire'<br>
/opt/work/rtems/4.12/lib/gcc/i386-rtems4.12/6.0.0/../../../../i386-rtems4.12/lib/libc.a(lib_a-findfp.o): In function `__sfp_lock_release':<br>
/opt/work/chris/rtems/rsb/rtems-source-builder.master/rtems/build/i386-rtems4.12-gcc-6-20160327-newlib-2.4.0-x86_64-freebsd10.1-1/build/i386-rtems4.12/newlib/libc/stdio/../../../../../gcc-6-20160327/newlib/libc/stdio/findfp.c:276: undefined reference to `_Mutex_recursive_Release'<br>
/opt/work/rtems/4.12/lib/gcc/i386-rtems4.12/6.0.0/../../../../i386-rtems4.12/lib/libc.a(lib_a-findfp.o): In function `__sinit_lock_acquire':<br>
/opt/work/chris/rtems/rsb/rtems-source-builder.master/rtems/build/i386-rtems4.12-gcc-6-20160327-newlib-2.4.0-x86_64-freebsd10.1-1/build/i386-rtems4.12/newlib/libc/stdio/../../../../../gcc-6-20160327/newlib/libc/stdio/findfp.c:282: undefined reference to `_Mutex_recursive_Acquire'<br>
/opt/work/rtems/4.12/lib/gcc/i386-rtems4.12/6.0.0/../../../../i386-rtems4.12/lib/libc.a(lib_a-findfp.o): In function `__sinit_lock_release':<br>
/opt/work/chris/rtems/rsb/rtems-source-builder.master/rtems/build/i386-rtems4.12-gcc-6-20160327-newlib-2.4.0-x86_64-freebsd10.1-1/build/i386-rtems4.12/newlib/libc/stdio/../../../../../gcc-6-20160327/newlib/libc/stdio/findfp.c:288: undefined reference to `_Mutex_recursive_Release'<br>
/opt/work/rtems/4.12/lib/gcc/i386-rtems4.12/6.0.0/../../../../i386-rtems4.12/lib/libc.a(lib_a-findfp.o): In function `__sfp_lock_acquire':<br>
/opt/work/chris/rtems/rsb/rtems-source-builder.master/rtems/build/i386-rtems4.12-gcc-6-20160327-newlib-2.4.0-x86_64-freebsd10.1-1/build/i386-rtems4.12/newlib/libc/stdio/../../../../../gcc-6-20160327/newlib/libc/stdio/findfp.c:270: undefined reference to `_Mutex_recursive_Acquire'<br>
/opt/work/rtems/4.12/lib/gcc/i386-rtems4.12/6.0.0/../../../../i386-rtems4.12/lib/libc.a(lib_a-findfp.o): In function `__sfp_lock_release':<br>
/opt/work/chris/rtems/rsb/rtems-source-builder.master/rtems/build/i386-rtems4.12-gcc-6-20160327-newlib-2.4.0-x86_64-freebsd10.1-1/build/i386-rtems4.12/newlib/libc/stdio/../../../../../gcc-6-20160327/newlib/libc/stdio/findfp.c:276: undefined reference to `_Mutex_recursive_Release'<br>
/opt/work/rtems/4.12/lib/gcc/i386-rtems4.12/6.0.0/../../../../i386-rtems4.12/lib/libc.a(lib_a-findfp.o): In function `__sinit_lock_release':<br>
/opt/work/chris/rtems/rsb/rtems-source-builder.master/rtems/build/i386-rtems4.12-gcc-6-20160327-newlib-2.4.0-x86_64-freebsd10.1-1/build/i386-rtems4.12/newlib/libc/stdio/../../../../../gcc-6-20160327/newlib/libc/stdio/findfp.c:288: undefined reference to `_Mutex_recursive_Release'<br>
/opt/work/rtems/4.12/lib/gcc/i386-rtems4.12/6.0.0/../../../../i386-rtems4.12/lib/libc.a(lib_a-fopen.o): In function `_fopen_r':<br>
/opt/work/chris/rtems/rsb/rtems-source-builder.master/rtems/build/i386-rtems4.12-gcc-6-20160327-newlib-2.4.0-x86_64-freebsd10.1-1/build/i386-rtems4.12/newlib/libc/stdio/../../../../../gcc-6-20160327/newlib/libc/stdio/fopen.c:152: undefined reference to `_Mutex_recursive_Acquire'<br>
/opt/work/chris/rtems/rsb/rtems-source-builder.master/rtems/build/i386-rtems4.12-gcc-6-20160327-newlib-2.4.0-x86_64-freebsd10.1-1/build/i386-rtems4.12/newlib/libc/stdio/../../../../../gcc-6-20160327/newlib/libc/stdio/fopen.c:170: undefined reference to `_Mutex_recursive_Release'<br>
/opt/work/rtems/4.12/lib/gcc/i386-rtems4.12/6.0.0/../../../../i386-rtems4.12/lib/libc.a(lib_a-fseeko.o): In function `_fseeko_r':<br>
/opt/work/chris/rtems/rsb/rtems-source-builder.master/rtems/build/i386-rtems4.12-gcc-6-20160327-newlib-2.4.0-x86_64-freebsd10.1-1/build/i386-rtems4.12/newlib/libc/stdio/../../../../../gcc-6-20160327/newlib/libc/stdio/fseeko.c:157: undefined reference to `_Mutex_recursive_Release'<br>
/opt/work/chris/rtems/rsb/rtems-source-builder.master/rtems/build/i386-rtems4.12-gcc-6-20160327-newlib-2.4.0-x86_64-freebsd10.1-1/build/i386-rtems4.12/newlib/libc/stdio/../../../../../gcc-6-20160327/newlib/libc/stdio/fseeko.c:141: undefined reference to `_Mutex_recursive_Acquire'<br>
/opt/work/chris/rtems/rsb/rtems-source-builder.master/rtems/build/i386-rtems4.12-gcc-6-20160327-newlib-2.4.0-x86_64-freebsd10.1-1/build/i386-rtems4.12/newlib/libc/stdio/../../../../../gcc-6-20160327/newlib/libc/stdio/fseeko.c:318: undefined reference to `_Mutex_recursive_Release'<br>
<br>
</blockquote></div><br></div>