RSB builds single-threaded Newlib by default?

Linda Huxley lhuxley at shaw.ca
Tue Apr 18 04:07:38 UTC 2017


Hi Chris,

 > I assume you are building RTEMS by hand.

I can't claim to understand the build process, but there seems to be a 
couple of problems.

First of all, there are 3 copies of sys/lock.h in 
newlib-2.2.0.20150423.tar.gz:

newlib-2.2.0.20150423/newlib/libc/include/sys/lock.h
newlib-2.2.0.20150423/newlib/libc/sys/linux/sys/lock.h
newlib-2.2.0.20150423/newlib/libc/sys/tirtos/include/sys/lock.h

The first one is the dummy single threaded version.  The second one 
looks like it could be the right (multi-threaded) version.  The last is 
specific to TI-RTOS.  Why would rsb pick the single threaded version of 
sys/lock.h?

Secondly, apparently, cpukit/configure checks for 
_Thread_queue_Queue._name in /sys/lock.h.  Why would it look there? 
Isn't sys/lock.h a part of Newlib?  Isn't the thread queue a part of RTEMS?

I would expect _Thread_queue_Queue to be defined in threadq.h or some 
similar RTEMS header file.  I can't find it defined anywhere.

Am I missing some patch?

I found this:

https://lists.rtems.org/pipermail/devel/2016-December/016608.html

Sebastian seems to be adding "_name" in /sys/lock.h in some RTEMS 
specific directory tree that I don't have.

Regards,

Linda



On 2017-04-17 20:03, Chris Johns wrote:
> On 17/04/2017 09:55, Linda Huxley wrote:
>>
>>> What does `sparc-rtems4.11-gcc --version` report?
>>
>> /c/opt/rtems/r4.11.2/bin $ sparc-rtems4.11-gcc --version
>> sparc-rtems4.11-gcc.exe (GCC) 4.9.3 20150626 (RTEMS 4.11, RSB no-repo,
>> Newlib 2.2.0.20150423)
>> Copyright (C) 2015 Free Software Foundation, Inc.
>> This is free software; see the source for copying conditions.  There
>> is NO
>> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
>> PURPOSE.
>>
>> also:
>>
>> /c/opt/rtems/r4.11.2/bin $ sparc-rtems4.11-gcc -v
>> Using built-in specs.
>> COLLECT_GCC=C:\opt\rtems\r4.11.2\bin\sparc-rtems4.11-gcc.exe
>> COLLECT_LTO_WRAPPER=c:/opt/rtems/r4.11.2/bin/../libexec/gcc/sparc-rtems4.11/4.9.3/lto-wrapper.exe
>>
>>
>> Target: sparc-rtems4.11
>> Configured with: ../gcc-4.9.3/configure --prefix=/C/opt/rtems/r4.11.2
>> --bindir=/C/opt/rtems/r4.11.2/bin --exec_prefix=/C/opt/rtems/r4.11.2
>> --includedir=/C/opt/rtems/r4.11.2/include
>> --libdir=/C/opt/rtems/r4.11.2/lib
>> --libexecdir=/C/opt/rtems/r4.11.2/libexec
>> --mandir=/C/opt/rtems/r4.11.2/share/man
>> --infodir=/C/opt/rtems/r4.11.2/share/info
>> --datadir=/C/opt/rtems/r4.11.2/share --build=x86_64-w64-mingw32
>> --host=x86_64-w64-mingw32 --target=sparc-rtems4.11
>> --disable-libstdcxx-pch --with-gnu-as --with-gnu-ld --verbose
>> --with-newlib --with-system-zlib --disable-nls
>> --without-included-gettext --disable-win32-registry
>> --enable-version-specific-runtime-libs --disable-lto
>> --enable-newlib-io-c99-formats --enable-newlib-iconv
>> --enable-newlib-iconv-encodings=big5,cp775,cp850,cp852,cp855,cp866,euc_jp,euc_kr,euc_tw,iso_8859_1,iso_8859_10,iso_8859_11,iso_8859_13,iso_8859_14,iso_8859_15,iso_8859_2,iso_8859_3,iso_8859_4,iso_8859_5,iso_8859_6,iso_8859_7,iso_8859_8,iso_8859_9,iso_ir_111,koi8_r,koi8_ru,koi8_u,koi8_uni,ucs_2,ucs_2_internal,ucs_2be,ucs_2le,ucs_4,ucs_4_internal,ucs_4be,ucs_4le,us_ascii,utf_16,utf_16be,utf_16le,utf_8,win_1250,win_1251,win_1252,win_1253,win_1254,win_1255,win_1256,win_1257,win_1258
>>
>> --enable-threads --disable-plugin --enable-libgomp
>> --enable-languages=c,c++
>> Thread model: rtems
>> gcc version 4.9.3 20150626 (RTEMS 4.11, RSB no-repo, Newlib
>> 2.2.0.20150423) (GCC)
>>
>
> These look good.
>
> FYI the 'RSB no-repo' is something I need to check on. It is not related
> to you or anything you have done.
>
>>> Do you have just the one set of tools installed?
>>
>> Yes.  I just searched my entire disk for "rtems" (to make sure that
>> there were no remaining files from MSYS2 redirecting my builds to other
>> locations).  There is nothing that isn't in my /c/opt/rtems tree. Before
>> building 4.11.2-rc4, I deleted everything in my /c/opt/rtems tree so
>> that I could get a clean build.
>>
>> Also, I still have the MSYS2 MINGW64 shell open that I used for my
>> 4.11.2-rc4 rsb and kernel builds:
>>
>> /c/opt/rtems/r4.11.2/bin $ echo $PATH
>> /c/opt/rtems/r4.11.2/bin:/mingw64/bin:/usr/local/bin:/usr/bin:/bin:/c/Windows/System32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0/:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl
>>
>>
>
> These both look good.
>
> I assume you are building RTEMS by hand.
>
> Which RTEMS did you download?
>
> What is the `configure` command line?
>
> Chris
>


More information about the users mailing list