Custom Query (627 matches)

Filters
 
Or
 
  
 
Columns

Show under each result:


Ticket Created Resolution Component Reporter Owner Modified
#3054 2 years ago fixed unspecified AndiK Andreas Kölbl <andreas.koelbl@…> 19 months ago
Summary

gdb 7.12.1 on RSB 4.12 branch fail to build on Archlinux

Description

7.12.1 does not compile with latest guile As already stated here: https://sourceware.org/bugzilla/show_bug.cgi?id=21104 GDB in version 7.12.1 fails when trying to compile on Archlinux. GDB uses deprecated functions of libguile which were gone in version 2.2 of libguile. As GDB states in its configure script to support version 2.2 of libguile it fails compiling.

Tested with the latest rtems source builder on master.

#2444 4 years ago fixed arch/m68k Joel Sherrill Aun-Ali Zaidi <admin@…> 19 months ago
Summary

Remove m68k/mvme136 BSP

Description

Remove the m68k/mvme136 BSP per the instructions at https://devel.rtems.org/wiki/Developer/Removing_a_BSP

Rationale: Although it is sad to see the BSP for the board that RTEMS was developed for be removed, this board was current in 1988-9. It has only 1MB RAM, 2 UARTS, and no NIC. It is unlikely to be available and without a NIC, isn't that useful.

#2445 4 years ago fixed arch/m68k Joel Sherrill Aun-Ali Zaidi <admin@…> 19 months ago
Summary

Remove m68k/sim68000 BSP

Description

Remove the m68k/sim68000 BSP per the instructions at ​https://devel.rtems.org/wiki/Developer/Removing_a_BSP

Rationale: This is a BSP for a simulator named BSVC (http://www4.ncsu.edu/~bwmott/bsvc/) that was never under a truly free license and has not been updated in a decade. Although a decent tool, it was extremely slow.

#2447 4 years ago fixed bsps Joel Sherrill Aun-Ali Zaidi <admin@…> 19 months ago
Summary

Remove m32r/m32rsim

Description

Remove the m32r/m32rsim BSP per the instructions at https://devel.rtems.org/wiki/Developer/Removing_a_BSP

#2449 4 years ago fixed arch/arm Joel Sherrill Aun-Ali Zaidi <admin@…> 19 months ago
Summary

Remove arm/gba BSP

Description

Remove the arm/gba BSP per the instructions at ​​https://devel.rtems.org/wiki/Developer/Removing_a_BSP

Rationale: This BSP is for very old Nintendo hardware and required the use of either a simulator or hard to obtain programmable game cartridge. Nintendo was aggressive in shutting down resellers of those cartridges. There is no real console input and it is hard to automate testing. This was a useful BSP when there were few ARM BSPs but with the Pi, Beagle, etc. these days are long past.

#2450 4 years ago fixed arch/arm Joel Sherrill Aun-Ali Zaidi <admin@…> 19 months ago
Summary

Remove arm/nds

Description

Remove the arm/nds BSP per the instructions at ​​​https://devel.rtems.org/wiki/Developer/Removing_a_BSP

Rationale: This BSP is for very old Nintendo hardware and required the use of either a simulator or hard to obtain programmable game cartridge. Nintendo was aggressive in shutting down resellers of those cartridges. There is no real console input and it is hard to automate testing. This was a useful BSP when there were few ARM BSPs but with the Pi, Beagle, etc. these days are long past.

#2451 4 years ago fixed arch/arm Joel Sherrill Aun-Ali Zaidi <admin@…> 19 months ago
Summary

Remove arm/gp32 BSP

Description

Remove the arm/gp32 BSP per the instructions at ​​​​https://devel.rtems.org/wiki/Developer/Removing_a_BSP

Rationale: This BSP is for an open source alternative to the Gameboy Advance introduced in 2001. Wikipedia notes that 30K units were sold but it has been unavailable since 2007. This was a useful BSP when there were few ARM BSPs and the openness was interesting but with the Pi, Beagle, etc. these days are long past.

#2453 4 years ago fixed bsps Joel Sherrill Aun-Ali Zaidi <admin@…> 19 months ago
Summary

Remove h8300/h8sim BSP

Description

Remove the h8300/h8sim BSP per the instructions at ​https://devel.rtems.org/wiki/Developer/Removing_a_BSP

#2457 4 years ago fixed arch/powerpc Joel Sherrill Aun-Ali Zaidi <admin@…> 19 months ago
Summary

Remove powerpc/ep1a BSP

Description

Remove the powerpc/ep1a BSP per the instructions at ​https://devel.rtems.org/wiki/Developer/Removing_a_BSP

Rationale: AFAIK this BSP was only used on a program supported by OAR. That program is no longer in active development and is completely frozen. If that situation changes, the BSP can be resurrected. It was introduced 10 years ago and has not has a modification other than general maintenance in the last four years.

#2536 3 years ago fixed tool/rsb Sebastian Huber Chris Johns <chrisj@…> 19 months ago
Summary

RSB allows use of insecure hash algorithms like MD5 and SHA1

Description

Support for these hashes should be removed. Hashes should be mandatory.

#2775 3 years ago fixed arch/arm Chris Johns Chris Johns <chrisj@…> 19 months ago
Summary

ARM CP15 arm_cp15_set_translation_table_entries fails if TTB in read-only memory

Description

If the TTB is held in the text section and the section is set to read-only, and cached when booting no section change happen at run time because the table cannot be written too to change. The table cannot be changed unless the MMU is disabled.

I suggest the MMU be disabled, the table updated and then the MMU enabled.

Note, the issue only shows up on real hardware, qemu does not complain.

#3458 11 months ago fixed tool Chris Johns Chris Johns <chrisj@…> 11 months ago
Summary

rtems-test should not use the env PATH to find covoar

Description

The rtems-test command should know where covoar is when invoking it. It cannot use the environment's path. The path can contain invalid or outdated versions with subtle issues that could be hard to find.

There should be no need to run install to use and test rtems-test with coverage.

The rtems-test python code for running the tests knows where it is and adjusts. For example using an absolute path to rtems-tests in a build directly results in it being able to find the development tree rtemstoolkit and configuration data. The command needs to be taught to find the development version of covoar.

Note, currently covoar needs external tools and this is currently using the environment's path however there is work underway to remove this dependence so there case does not need to be handled.

#3500 10 months ago fixed tool Chris Johns Chris Johns <chrisj@…> 10 months ago
Summary

Change rtems_waf's RTEMS path check from bin to share/rtems<version>`

Description

Currently rtems_waf checks for a bin directory in the RTEMS path. There is no bin directory any more so this test needs to be changed to share/rtems<version>.

#3579 7 months ago fixed admin Chris Johns Chris Johns <chrisj@…> 7 months ago
Summary

testsuite's rtems-test-check.py python version support

Description

This command used in the testsuite needs to find a suitable python or the build system needs to find it and invoke it with that python.

#3746 2 weeks ago fixed lib/dl Chris Johns Chris Johns <chrisj@…> 13 days ago
Summary

libdl test dl05.exe failing

Description

This test is failing because the second stage of the symbol loading does not check if a section referenced by a symbol has been loaded.

It is not clear yet if the lack of support in libdl for group sections is a factor.

#3748 13 days ago fixed lib/dl Chris Johns Chris Johns <chrisj@…> 5 days ago
Summary

libdl uses a linear symbol search on object file symbols

Description

Symbol searching has two parts, searching the object file and searching the global symbol table. Currently the object file search is linear and the global table search uses a hash table.

A large incrementally linked object file can have a large local and global set of symbols and this can slow the loading process. This issue does not show up for small object files with a few symbols which is typically how our libraries are made.

Change the object file symbol search to a binary search (bsearch). A hash table for each object file would increase the in memory object file footprint by a significant amount and would harm the small object file use case that only have a few symbols. A binary search is a suitable compromise.

#3501 9 months ago fixed arch/powerpc Joel Sherrill Christian Mauderer 9 months ago
Summary

MSR_RI defined multiple places

Description

Two files define the MSR_RI macro. Since one is a register name on the PowerPC, this shows up on 48 PowerPC BSPs. This is one example.

log/powerpc-qoriq_e6500_64.log:../../../../../../rtems/c/src/../../cpukit/dev/serial/sc16is752-regs.h:117:0: warning: "MSR_RI" redefined log/powerpc-qoriq_e6500_64.log: #define MSR_RI (1u << 6) log/powerpc-qoriq_e6500_64.log: #define MSR_RI (1<<1) /* Recoverable Exception */ log/powerpc-qoriq_e6500_64.log:../../../../../../rtems/c/src/../../cpukit/dev/serial/sc16is752-regs.h:117:0: warning: "MSR_RI" redefined log/powerpc-qoriq_e6500_64.log: #define MSR_RI (1u << 6) log/powerpc-qoriq_e6500_64.log: #define MSR_RI (1<<1) /* Recoverable Exception */

#3261 18 months ago fixed doc Frédéric Jouault Frédéric Jouault <f.jouault@…> 5 months ago
Summary

A couple of documentation typos

Description

This patch includes a couple of typo corrections in the C User Manual.

#2795 3 years ago fixed score Kuan Gedare Bloom <gedare@…> 19 months ago
Summary

Overrun Handling for general real-time models

Description

In the current implementation, if a task period is time out, the next call of rtems_rate_monotonic_period() will only release one following job and manipulate the task period with the calling moment + the next length of period. With the assumption that implicit/constraint deadline and hard real-time model, the above mechanism is okay.

However, it may not be applicable for general task models, e.g., soft real-time task, arbitrary deadline, mixed-criticality system [1-4]. It is usually assumed that multiple task jobs of a task are executed in a first-come-first-serve manner. Thus, it is sufficient to release the second task job at the moment the first task job finishes according to a strictly periodic release pattern. The current design in fact shifts the release pattern of periodic/sporadic tasks. Since there maybe more than one postponed jobs due to the preemption, these postponed jobs that should be released are never released to the system.

Although there is no standard requirement in reality for deadline misses, with this enhancement, the postponed jobs will be released with the correct number without periodic release shifting. This way of handling is already widely considered in academia from 90s [2] until now [3] or even on multicores as well [4].

I refine the following four files and handle this requirement individually. The overhead seems to me negligible. cpukit/rtems/include/rtems/rtems/ratemon.h cpukit/rtems/include/rtems/rtems/ratemonimpl.h cpukit/rtems/src/ratemontimeout.c cpukit/rtems/src/ratemonperiod.c I have tested the enhancement on Qemu and Raspberry Pi Model B+ with corresponding BSPs.

I believe this patch as a basis is required for further use for more general real-time task models. This enhancement only affect those timeout cases without changing any behaviour in normal cases. This enhancement is accepted in workshop mixed-criticality (WMC 2016) along with RTSS'16 this year [5].

To demonstrate the differences, a heuristic example is prepared in testsuites/sptests/sprmsched01 to show the benefit of the enhancement: Given two tasks with implicit deadline that task deadline is equal to its period. Task 1 period is 10000 ticks, whereas task 2 is 2000 ticks. Task 1 has the execution time 6000 ticks, and task 2 has 1000 ticks. Assume Task 1 has a higher priority than task 2. Task 1 only executes 2 times. In the expected result, we can observe that the postponed jobs are continuously released till there is no postponed job left, and the task period will still keep as it is. (Job 3-7 in task 2 are postponed jobs)

[1] Buttazzo et al., Soft Real-Time Systems: Predictability vs. Efficiency, Springer 2005, ​http://www.springer.com/gp/book/9780387237015 [2] Lehoczky et al., Fixed priority scheduling of periodic task sets with arbitrary deadlines, RTSS 1990, ​http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=128748 [3] Georg von der Brüggen et al., Systems with Dynamic Real-Time Guarantees in Uncertain and Faulty Execution Environments, RTSS'16, accepted. [4] Huang et al., Response time bounds for sporadic arbitrary-deadline tasks under global fixed-priority scheduling on multiprocessors, RTNS 2015, ​http://dl.acm.org/citation.cfm?doid=2597457.2597459 [5] Chen et al., Overrun Handling for Mixed-Criticality Support in RTEMS, WMC 2016, accepted.

#2868 2 years ago fixed arch/arm David Binderman Gedare Bloom <gedare@…> 19 months ago
Summary

src/c/src/lib/libbsp/arm/smdk2410/smc/smc.c: 3 * pointless local variables ?

Description

[src/c/src/lib/libbsp/arm/smdk2410/smc/smc.c:235]: (style) Variable 'cnt1' is modified but its new value is never used. [src/c/src/lib/libbsp/arm/smdk2410/smc/smc.c:243]: (style) Variable 'cnt2' is modified but its new value is never used. [src/c/src/lib/libbsp/arm/smdk2410/smc/smc.c:246]: (style) Variable 'cnt3' is modified but its new value is never used.

$ egrep "cnt1|cnt2|cnt3" src/c/src/lib/libbsp/arm/smdk2410/smc/smc.c

uint32_t pblock, i, j, lblock, zone, count, cnt1, cnt2, cnt3; cnt1 = 0; cnt2 = 0; cnt3 = 0;

cnt1++;

cnt2++; cnt3++;

$

Maybe someone left some debug code in ?

#2873 2 years ago fixed arch/arm David Binderman Gedare Bloom <gedare@…> 19 months ago
Summary

src/c/src/lib/libbsp/arm/raspberrypi/i2c/i2c.c:320: defective error checking ?

Description

src/c/src/lib/libbsp/arm/raspberrypi/i2c/i2c.c:320]: (style) Checking if unsigned variable 'rv' is less than zero.

Source code is

rv = rpi_i2c_setup_transfer(bus);

if ( rv < 0 ) {

but

uint32_t rv = 0;

and

static int rpi_i2c_setup_transfer(rpi_i2c_bus *bus)

Suggest put return value into an int local variable, then sanity check it, then assign it to rv.

#2965 2 years ago fixed unspecified Gedare Bloom Gedare Bloom <gedare@…> 19 months ago
Summary

bootstrap sort inconsistent with sb-bootstrap for acinclude

Description

The output of bootstrap does not use a consistent sort order with sb-bootstrap. The difference appears to be in the default behavior of the sort command versus Python's sorted. By forcing the locale to C, sort should have a consistent behavior.

#3010 2 years ago fixed unspecified David Binderman Gedare Bloom <gedare@…> 19 months ago
Summary

src/cpukit/posix/src/mmap.c:189]: (style) Suspicious condition

Description

src/cpukit/posix/src/mmap.c:189]: (style) Suspicious condition (bitwise operator + comparison); Clarify expression with parentheses.

Source code is

} else if ( (flags & MAP_PRIVATE != MAP_PRIVATE) ) {

Maybe better code

} else if ( (flags & MAP_PRIVATE) != MAP_PRIVATE ) {

#2493 3 years ago fixed unspecified Sebastian Huber Joel Sherrill <joel.sherrill@…> 18 months ago
Summary

Remove notepads

Description

Notepads were marked as obsolete in #2265. Next step is to remove them. Documentation should mention that notepads are removed an list the alternatives, e.g. POSIX keys or thread local storage.

#2443 4 years ago fixed unspecified Joel Sherrill Joel Sherrill <joel@…> 19 months ago
Summary

Remove AVR Architectural Port

Description

Remove the AVR port per the instructions at https://devel.rtems.org/wiki/Developer/Removing_a_Port.

All BSPa must be removed before the architectural port can be removed. These are tracked by the following tickets:

Rationale: The AVR port is incomplete and the largest AVR CPU models are just barely large enough to run RTEMS. This by itself is not enough to drop the port. However, the state of GCC for this target is poor. It is marginally maintained. Atmel maintains their own patch set independent of GCC. Plus they use their own small (and unique) C Library. This makes avr-rtems the only user of AVR+newlib. The target size is a challenge but that was why the port was initially interesting. It provided a real goal. But the tool state is painful for a port which is incomplete and has neither users nor anyone interested in actively maintaining it for GCC or RTEMS.

#2576 3 years ago fixed arch/arm Joel Sherrill Joel Sherrill <joel@…> 8 months ago
Summary

arm/lpc176x: linker script update (add KEEP() sections)

Description

This BSP's linker script does not include KEEP() directives and thus cannot have per-function and per-data element section support enabled.

The preferred solution is to convert the BSP to use a shared base linker script. The acceptable solution is to add the proper KEEP directives to the existing linker script(s).

Shared linker scripts for the arm, m68k, and sparc have the proper KEEP sections and can serve as examples.

#2638 3 years ago fixed unspecified Joel Sherrill Joel Sherrill <joel@…> 19 months ago
Summary

pc386: ld -r issue with per function sections

Description

The pc386 BSP has an issue with "ld -r" when function-sections is enabled which does not seem to occur on any other BSP. The same lines were added to the custom .cfg file as on other BSPs. It is unknown at this point whether this is an x86 specific "ld -r" issue or a pc386 build configuration issue.

Per-function-section linking is disabled until this is addressed.

i386-rtems4.12-gcc --pipe -B../../../../../.././lib/ -B../../../../../.././pc386/lib/ -specs bsp_specs -qrtems -mtune=i386 -O2 -g -ffunction-sections -fdata-sections -Wall -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs -qnolinkcmds -nostdlib -r -Wl,--gc-sections -Wl,-Ttext,0x00100000 -o ne2000.rel ne2000_rel-ne2000.o /data/home/joel/rtems-4.11-work/tools/4.12/bin/../lib/gcc/i386-rtems4.12/6.0.0/../../../../i386-rtems4.12/bin/ld: gc-sections requires either an entry or an undefined symbol collect2: error: ld returned 1 exit status

#2676 3 years ago fixed unspecified Joel Sherrill Joel Sherrill <joel@…> 18 months ago
Summary

Obsolete clock_get() directive

Description

This is deprecated on the 4.11 branch and its use has been isolated in the source tree.

  • Remove clock_get()
  • Should allow deletion of rtems_clock_get_options

$ grep -rl "clock_get(" . ./doc/user/clock.t ./testsuites/tmtests/tmoverhd/testtask.c ./testsuites/tmtests/tmoverhd/dumrtems.h ./testsuites/sptests/spclockget/init.c ./testsuites/sptests/spclockget/spclockget.doc ./cpukit/rtems/include/rtems/rtems/clock.h ./cpukit/rtems/src/clockget.c

#2983 2 years ago fixed unspecified Joel Sherrill Joel Sherrill <joel@…> 19 months ago
Summary

Create <rtems/inttypes.h> to consolidate extensions to <inttypes.h>

Description

Per discussion at https://lists.rtems.org/pipermail/devel/2017-April/017483.html, create <rtems/inttypes.h> to consolidate extensions to the C99 <inttypes.h> file. A quick search shows that there are the following set of defines which could be consolidated as a starting point. Then these are available to address other printf() format warnings.

$ grep -r "#define PRI" . | grep -v PRIORITY | grep -v PRINT ./cpukit/libmisc/shell/main_time.c:#define PRIdtime_t PRId64 ./cpukit/libmisc/shell/main_time.c:#define PRIdtime_t PRId32 ./cpukit/libmisc/uuid/gen_uuid.c:#define PRIutime_t PRIu64 ./cpukit/libmisc/uuid/gen_uuid.c:#define PRIutime_t PRIu32 ./cpukit/libdl/rtl-shell.c:#define PRIdoff_t PRIo32 ./cpukit/libdl/rtl-shell.c:#define PRIdoff_t PRIo64 ./cpukit/libfs/src/nfsclient/src/dirutils.c:#define PRIomode_t PRIo64 ./cpukit/libfs/src/nfsclient/src/dirutils.c:#define PRIomode_t PRIo32 ./cpukit/libfs/src/nfsclient/src/dirutils.c:#define PRIdoff_t PRIo64 ./cpukit/libfs/src/nfsclient/src/dirutils.c:#define PRIdoff_t PRIo32 ./cpukit/libfs/src/rfs/rtems-rfs-dir.c:#define PRIooff_t PRIo64 ./cpukit/libfs/src/rfs/rtems-rfs-dir.c:#define PRIooff_t PRIo32 ./cpukit/libfs/src/rfs/rtems-rfs-rtems-file.c:#define PRIdoff_t PRId64 ./cpukit/libfs/src/rfs/rtems-rfs-rtems-file.c:#define PRIdoff_t PRId32 ./cpukit/libfs/src/rfs/rtems-rfs-rtems.c:#define PRIomode_t PRIo64 ./cpukit/libfs/src/rfs/rtems-rfs-rtems.c:#define PRIomode_t PRIo32 ./testsuites/psxtests/include/pmacros.h:#define PRIdoff_t PRIo64 ./testsuites/psxtests/include/pmacros.h:#define PRIdoff_t PRIo32 ./testsuites/psxtests/include/pmacros.h:#define PRIxblksize_t PRIx64 ./testsuites/psxtests/include/pmacros.h:#define PRIxblksize_t PRIx32 ./testsuites/psxtests/include/pmacros.h:#define PRIxblksize_t "lx" ./testsuites/psxtests/include/pmacros.h:#define PRIxblkcnt_t PRIx64 ./testsuites/psxtests/include/pmacros.h:#define PRIxblkcnt_t PRIx32 ./testsuites/psxtests/include/pmacros.h:#define PRIxblkcnt_t "lx" ./testsuites/libtests/termios01/init.c:#define PRIdrtems_termios_baud_t PRId32 ./testsuites/support/include/pritime.h:#define PRIdtime_t PRId64 ./testsuites/support/include/pritime.h:#define PRIdtime_t PRId32 ./testsuites/support/include/tmacros.h:#define PRIxrtems_id PRIx16 ./testsuites/support/include/tmacros.h:#define PRIxrtems_id PRIx32 ./testsuites/support/include/tmacros.h:#define PRIdPriority_Control PRIu64 ./testsuites/support/include/tmacros.h:#define PRIxPriority_Control PRIx64 ./testsuites/support/include/tmacros.h:#define PRIdrtems_task_priority PRIu32 ./testsuites/support/include/tmacros.h:#define PRIxrtems_task_priority PRIx32 ./testsuites/support/include/tmacros.h:#define PRIdWatchdog_Interval PRIu32 ./testsuites/support/include/tmacros.h:#define PRIdrtems_interval PRIdWatchdog_Interval ./testsuites/support/include/tmacros.h:#define PRIdThread_Entry_numeric_type PRIuPTR ./testsuites/support/include/tmacros.h:#define PRIdrtems_task_argument PRIdThread_Entry_numeric_type ./testsuites/support/include/tmacros.h:#define PRIxrtems_event_set PRIx32 ./testsuites/support/include/tmacros.h:#define PRIxpthread_t PRIx32 ./testsuites/support/include/tmacros.h:#define PRIxrtems_signal_set PRIx32 ./testsuites/support/include/tmacros.h:#define PRIxino_t "lx" ./testsuites/support/include/primode.h:#define PRIomode_t PRIo64 ./testsuites/support/include/primode.h:#define PRIomode_t PRIo32 ./testsuites/sptests/sp21/init.c:#define PRIurtems_device_major_number PRIu32 ./testsuites/sptests/sp08/init.c:#define PRIxModes_Control PRIx32 ./testsuites/sptests/sp08/init.c:#define PRIxrtems_mode PRIxModes_Control ./testsuites/sptests/sp47/init.c:#define PRIXModes_Control PRIX32 ./testsuites/sptests/sp47/init.c:#define PRIXrtems_mode PRIXModes_Control

#3178 20 months ago fixed tool/gcc Joel Sherrill Joel Sherrill <joel@…> 19 months ago
Summary

Update sh-rtems4.12 bset to use rtems-default (using old gcc)

Description

I built a toolset and all BSPs on Centos 7 after switching this to rtems-default.bset again. There was no comment indicating why it was using an older gcc so I assume something has been fixed.

#3181 20 months ago fixed build Joel Sherrill Joel Sherrill <joel@…> 19 months ago
Summary

Various cc1plus warnings for "valid for C/ObjC but not for C++"

Description

Fix these

cc1plus: warning: command line option '-Wmissing-prototypes' is valid for C/ObjC but not for C++
cc1plus: warning: command line option '-Wimplicit-function-declaration' is valid for C/ObjC but not for C++
cc1plus: warning: command line option '-Wstrict-prototypes' is valid for C/ObjC but not for C++
cc1plus: warning: command line option '-Wnested-externs' is valid for C/ObjC but not for C++

#3201 19 months ago fixed arch/epiphany Joel Sherrill Joel Sherrill <joel@…> 19 months ago
Summary

epiphany tools checksum error

Description

I assume this is a side-effect of the recent checksum changes. If that's the case, it just needs to be updated. Otherwise, it is a more serious error.

download: (full) https://github.com/adapteva/epiphany-gcc/archive/f7051762470c42ce7f01baa7edeb113d51c7dd72.zip -> sources/f7051762470c42ce7f01baa7edeb113d51c7dd72.zip download: https://github.com/adapteva/epiphany-gcc/archive/f7051762470c42ce7f01baa7edeb113d51c7dd72.zip -> sources/f7051762470c42ce7f01baa7edeb113d51c7dd72.zip

redirect: https://codeload.github.com/adapteva/epiphany-gcc/zip/f7051762470c42ce7f01baa7edeb113d51c7dd72 redirect: https://codeload.github.com/adapteva/epiphany-gcc/zip/f7051762470c42ce7f01baa7edeb113d51c7dd72

checksums: f7051762470c42ce7f01baa7edeb113d51c7dd72.zip: 4d911e7bff4f1827dd7712669d20e4a1bf02806df0fae113ff0e7d13466bef2e => 2b2034fd12f2fd5108205ade66400c175ede8cef8141a38ae03fc78bf2d65325 warning: checksum error: f7051762470c42ce7f01baa7edeb113d51c7dd72.zip error: checksum failure file: sources/f7051762470c42ce7f01baa7edeb113d51c7dd72.zip

#3202 19 months ago fixed arch/or1k Joel Sherrill Joel Sherrill <joel@…> 19 months ago
Summary

or1k tools build error

Description

I assume this is a side-effect of recent checksum changes. Otherwise, there is a serious problem.

ownload: (full) https://git.rtems.org/rtems-tools/plain/tools/4.12/gdb/gdb-7.11-sis-leon2-leon3.diff -> patches/gdb-7.11-sis-leon2-leon3.diff download: https://git.rtems.org/rtems-tools/plain/tools/4.12/gdb/gdb-7.11-sis-leon2-leon3.diff -> patches/gdb-7.11-sis-leon2-leon3.diff checksums: gdb-7.11-sis-leon2-leon3.diff: 0b8b2a23c7d1592315fe0130188f457c80f8b1e26645535bed091a5e0671682dc44a1987d00e6939a1b1c562c7579404db43183e666c29c2b479446aa61ca4f6 => 4c44afec9c00a45b9322d787da3796f3294f207ddae9fe9faab3327b6991ac75 warning: checksum error: gdb-7.11-sis-leon2-leon3.diff error: checksum failure file: patches/gdb-7.11-sis-leon2-leon3.diff

#3306 15 months ago fixed arch/powerpc Joel Sherrill Joel Sherrill <joel@…> 15 months ago
Summary

Add paravirtualization support to PowerPC

Description

The PowerPC port does not currently have paravirtualization support.

#3517 8 months ago fixed doc Joel Sherrill Joel Sherrill <joel@…> 8 months ago
Summary

RSB Ubuntu Host Requirements Missing Some

Description

Add libncurses5-dev and zlib1g-dev to Ubuntu apt-get instructions

Also bison and flex seemed to be missing per one of the persons trying it.

#2289 4 years ago fixed tool/gcc Sebastian Huber Needs Funding 19 months ago
Summary

rtems_ada_self is broken on SMP

Description

The global variable rtems_ada_self is broken on SMP (similar to the task variables) and should be replaced with a function call or thread specific data.

#2624 3 years ago fixed tool/newlib Sebastian Huber Needs Funding 8 months ago
Summary

Fix the year 2038 problem

Description

RTEMS uses currently a signed 32-bit integer for time_t on Newlib. Thus, it is affected by the year 2038 problem. There are only 22 years left and this time span is within the realistic time frame of some RTEMS applications that are developed now.

The time_t should be changed to int64_t in Newlib. To make sure that all integer operations are carried out properly I suggest to temporarily do this

{{{#include <sys/_stdint.h>

typedef struct {

int64_t _val;

} time_t;

static inline time_t _time_add(time_t a, time_t b) {

time_t r = { a._val + b._val }; return r;

}

static inline time_t _time_sub(time_t a, time_t b) {

time_t r = { a._val - b._val }; return r;

}

static inline time_t _time_mul(time_t a, time_t b) {

time_t r = { a._val * b._val }; return r;

}

static inline time_t _time_div(time_t a, time_t b) {

time_t r = { a._val / b._val }; return r;

} }}}

Make sure that RTEMS and Newlib build with this. Add test cases to highlight the time_t integer limits.

#2835 2 years ago duplicate tool/gcc Sebastian Huber Needs Funding 19 months ago
Summary

Ada support is broken on SMP configurations

Description

The Ada support is the last user of a task variable: rtems_ada_self. This doesn't work on SMP configurations. The Ada support in GCC should be changed to use a function call or C11 thread-local storage.

#2897 2 years ago fixed score Kevin Kirspel Needs Funding 19 months ago
Summary

Update termios.h to match the latest FREEBSD definitions

Description

The FREEBSD struct termios separates out the input and output baud rates into individual speed_t variables. It also supports more flag options. The big benefit is that the rtems-libbsd tty code can be ported cleanly without the need to fixup the input and output baud rates. This should be a transparent change unless someone was manipulating the baud rates directly through the c_cflags (not using the cfgetispeed, cfgetospeed, cfsetispeed, cfsetospeed functions).

#2634 3 years ago fixed arch/i386 Joel Sherrill Pavel Pisa <ppisa@…> 19 months ago
Summary

New warning in pc386 VESA driver

Description

Pavel.. can you look into this?

./../../../../../../../rtems/c/src/lib/libbsp/i386/pc386/console/fb_vesa_rm.c: In function 'find_mode_using_EDID': ../../../../../../../../rtems/c/src/lib/libbsp/i386/pc386/console/fb_vesa_rm.c:502:13: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]

if (*(uint16_t*)&edid.STI[index] == EDID_STI_DescriptorUnused) ~

#2458 4 years ago fixed arch/powerpc Joel Sherrill Ralph Holmes <ralph@…> 19 months ago
Summary

Remove powerpc/score603e BSP

Description

Remove the powerpc/score603e BSP per the instructions at ​https://devel.rtems.org/wiki/Developer/Removing_a_BSP

Rationale: AFAIK this BSP was only used on a program supported by OAR. That program is no longer in active development and is completely frozen. If that situation changes, the BSP can be resurrected. It was introduced in 1999 and has not has a modification other than general maintenance in the last six years.

#2367 4 years ago fixed doc mw Sebastian Huber <sebastian.huber@…> 19 months ago
Summary

Documentation of User Extensions needs more information

Description

The documentation for User Extension sets in the C User's Guide could use some clarification. It discusses the multiple sets of extensions, but it is unclear as to whether or not the extensions are added or replaced when rtems_extension_create() is called. There is a section - 22.2.4 (Order of Invocation) that does discuss the operation of the sets, but it only makes sense once the reader understands that the sets are, in fact, additive.

#2477 4 years ago fixed unspecified Sebastian Huber Sebastian Huber <sebastian.huber@…> 19 months ago
Summary

Remove <rtems/debug.h>

Description

RTEMS has an API for dynamic debug support in <rtems/debug.h>. This feature is sparely used:

cpukit/sapi/src/debug.c:  rtems_debug_disable( RTEMS_DEBUG_ALL_MASK );
cpukit/sapi/src/debug.c:void rtems_debug_enable (
cpukit/sapi/src/debug.c:  rtems_debug_control  to_be_enabled
cpukit/sapi/src/debug.c:void rtems_debug_disable (
cpukit/sapi/src/debug.c:  rtems_debug_control  to_be_disabled
cpukit/sapi/src/debug.c:bool rtems_debug_is_enabled(
cpukit/sapi/src/debug.c:  rtems_debug_control  level
cpukit/rtems/include/rtems/rtems/regionimpl.h:    if ( rtems_debug_is_enabled( RTEMS_DEBUG_REGION ) ) \
cpukit/score/include/rtems/debug.h:typedef uint32_t   rtems_debug_control;
cpukit/score/include/rtems/debug.h:SCORE_EXTERN rtems_debug_control _Debug_Level;
cpukit/score/include/rtems/debug.h:void rtems_debug_enable(
cpukit/score/include/rtems/debug.h:  rtems_debug_control  to_be_enabled
cpukit/score/include/rtems/debug.h:void rtems_debug_disable(
cpukit/score/include/rtems/debug.h:  rtems_debug_control  to_be_disabled
cpukit/score/include/rtems/debug.h:bool rtems_debug_is_enabled(
cpukit/score/include/rtems/debug.h:  rtems_debug_control  level
c/src/lib/libbsp/shared/bootcard.c: *        - rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
c/src/lib/libbsp/shared/bootcard.c:    rtems_debug_enable( RTEMS_DEBUG_ALL_MASK );
c/src/lib/libbsp/shared/include/bootcard.h: *   - rtems_debug_enable( RTEMS_DEBUG_ALL_MASK )
testsuites/sptests/spregion_err01/init.c:  puts( "TA1 - rtems_debug_disable - RTEMS_DEBUG_REGION" );
testsuites/sptests/spregion_err01/init.c:  rtems_debug_disable( RTEMS_DEBUG_REGION );
testsuites/sptests/spregion_err01/init.c:  puts( "TA1 - rtems_debug_enable - RTEMS_DEBUG_REGION" );
testsuites/sptests/spregion_err01/init.c:  rtems_debug_enable( RTEMS_DEBUG_REGION );
testsuites/sptests/sp10/init.c:  puts( "Init - rtems_debug_is_enabled - is 0x1 set? No" );
testsuites/sptests/sp10/init.c:  is_set = rtems_debug_is_enabled( 0x1 );
testsuites/sptests/sp10/init.c:  puts( "Init - rtems_debug_enable - set 0x1" );
testsuites/sptests/sp10/init.c:  rtems_debug_enable(0x1);
testsuites/sptests/sp10/init.c:  puts( "Init - rtems_debug_is_enabled - is 0x1 set? Yes" );
testsuites/sptests/sp10/init.c:  is_set = rtems_debug_is_enabled( 0x1 );
testsuites/sptests/sp10/init.c:  puts( "Init - rtems_debug_disable - clear 0x1" );
testsuites/sptests/sp10/init.c:  rtems_debug_disable(0x1);
testsuites/sptests/sp10/init.c:  puts( "Init - rtems_debug_is_enabled - is 0x1 set? No" );
testsuites/sptests/sp10/init.c:  is_set = rtems_debug_is_enabled( 0x1 );

The only user is the Classic Region and it is only active in case RTEMS_DEBUG is defined. Due to the heap protection support which is also available in case RTEMS_DEBUG is defined, the expensive heap walks are superfluous.

We should remove this API entirely to simplify the code base.

#2672 3 years ago fixed unspecified Serg Kruglov Sebastian Huber <sebastian.huber@…> 19 months ago
Summary

After latest patches with Objects_Get_by_name rtems-master not compiling without --enable-posix

Description

After latest patches with Objects_Get_by_name rtems-master not compiling if i use --disable-posix. Type "Objects_Get_by_name_error" not resolved in posixapi.h in sapi folder. If --enable-posix - all OK.

#2700 3 years ago fixed unspecified David Binderman Sebastian Huber <sebastian.huber@…> 19 months ago
Summary

cpukit/libfs/src/nfsclient/src/rpcio.c:524]: (style) Suspicious condition

Description

cpukit/libfs/src/nfsclient/src/rpcio.c:524]: (style) Suspicious condition (assignment + comparison); Clarify expression with parentheses.

Source code is

if ( (len = getgroups(NGROUPS, gids) < 0 ) ) {

maybe better code

if ( (len = getgroups(NGROUPS, gids)) < 0 ) {

#2706 3 years ago fixed unspecified Sebastian Huber Sebastian Huber <sebastian.huber@…> 19 months ago
Summary

Buffer allocation of capture engine is broken on SMP configurations

Description

The capture engine uses function static variables.

#2707 3 years ago fixed unspecified Sebastian Huber Sebastian Huber <sebastian.huber@…> 19 months ago
Summary

Unsafe use of current processor index in capture engine

Description

The current processor index is used outside a thread dispatch disabled section.

#2734 3 years ago fixed posix Sebastian Huber Sebastian Huber <sebastian.huber@…> 19 months ago
Summary

pthread_setschedprio() is missing

Description

See also

http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_setschedprio.html

and

http://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_08_04_01

In particular the distinction to pthread_setschedparam() (SCHED_FIFO, item 7.).

Prototype is defined in Newlib provide <pthread.h>.

#2748 3 years ago fixed network/legacy Sebastian Huber Sebastian Huber <sebastian.huber@…> 19 months ago
Summary

Move RTEMS-specific socket wake-up to RTEMS-specific <rtems/rtems_bsdnet.h>

Description

The <sys/socket.h> contains definitions for the RTEMS-specific socket wake-up support. Move this stuff to <rtems/rtems_bsdnet.h> since this feature is not present in standard network stacks. Portable applications should not use it.

#2874 2 years ago fixed arch/powerpc David Binderman Sebastian Huber <sebastian.huber@…> 19 months ago
Summary

src/c/src/lib/libbsp/powerpc/beatnik/marvell/gt_timer.c: 4 * pointless check ?

Description

[src/c/src/lib/libbsp/powerpc/beatnik/marvell/gt_timer.c:102]: (style) Checking if unsigned variable 'timer' is less than zero. [src/c/src/lib/libbsp/powerpc/beatnik/marvell/gt_timer.c:109]: (style) Checking if unsigned variable 'timer' is less than zero. [src/c/src/lib/libbsp/powerpc/beatnik/marvell/gt_timer.c:117]: (style) Checking if unsigned variable 'timer' is less than zero. [src/c/src/lib/libbsp/powerpc/beatnik/marvell/gt_timer.c:128]: (style) Checking if unsigned variable 'timer' is less than zero.

Parameter "timer" is only ever type uint32_t, so any check < 0 seem pointless.

#2890 2 years ago fixed score Stavros Passas Sebastian Huber <sebastian.huber@…> 19 months ago
Summary

_RBTree_Initialize_node generates warnings

Description

Currently, when _RBTree_Initialize_node is used, it generates warnings of unused variables. I traced the issue down to the variable being used only if RTEMS_DEBUG is set.

Thus, the argument should be marked as RTEMS_UNUSED, if RTENS_DEBUG is not set.

#3079 23 months ago fixed build Sebastian Huber Sebastian Huber <sebastian.huber@…> 19 months ago
Summary

Ada tests do not build

Description

A "make" in the top level build directory does not build the Ada tests (used to work some weeks ago). A "make" in ./sparc-rtems4.12/c/erc32/ada-tests for example works.

The configuration step seems to work:

configure: configuring in ada-tests
configure: running /bin/sh '../../../../../rtems/c/src/ada-tests/configure'  '--prefix=/home/joel/rtems-4.11-work/bsp-install' '--host=sparc-rtems4.12' '--build=x86_64-pc-linux-gnu' '--target=sparc-rtems4.12' '--enable-smp' '--disable-profiling' '--disable-multiprocessing' '--enable-rtems-debug' '--enable-cxx' '--disable-rdbg' '--enable-maintainer-mode' '--enable-tests' '--enable-networking' '--enable-posix' '--disable-itron' '--disable-deprecated' '--enable-ada' '--enable-expada' 'SIMSPARC_FAST_IDLE=1' '--with-target-subdir=sparc-rtems4.12' '--exec-prefix=/home/joel/rtems-4.11-work/bsp-install/sparc-rtems4.12' '--includedir=/home/joel/rtems-4.11-work/bsp-install/sparc-rtems4.12/include' 'build_alias=x86_64-pc-linux-gnu' 'host_alias=sparc-rtems4.12' 'target_alias=sparc-rtems4.12' '--with-project-root=../../' '--with-project-top=../../' 'RTEMS_BSP=erc32' 'RTEMS_CPU_MODEL=erc32' 'RTEMS_BSP_FAMILY=erc32' 'CFLAGS=-mcpu=cypress -O2 -g -ffunction-sections -fdata-sections -Wall -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs' '--enable-rtems-root=../'    '--enable-project-root=../../../erc32'    '--with-project-top=../../../'    '--enable-rtemsbsp=erc32'    --cache-file=/dev/null --srcdir=../../../../../rtems/c/src/ada-tests
configure: loading site script /usr/share/site/x86_64-unknown-linux-gnu
checking for gmake... gmake

However:

gmake[4]: Entering directory '/scratch/git-rtems-testing/rtems/build-sparc-erc32-rtems/sparc-rtems4.12/c/erc32/ada-tests'
gmake[4]: Nothing to be done for 'all-am'.
#3284 16 months ago fixed tool/rsb Sebastian Huber Sebastian Huber <sebastian.huber@…> 16 months ago
Summary

RSB uses hard coded GCC binary paths

Description

In order to build a tool chain with Ada support you need a native GCC with Ada support of the same version as the cross compiler. The RSB uses hard coded paths for the gcc and g++ programs:

source-builder/defaults.mc:__cc:                exe,     required, '/usr/bin/gcc'
source-builder/defaults.mc:__cxx:               exe,     required, '/usr/bin/g++'

So, the RSB user must change the main GCC installation of the machine to build a particular RTEMS tool chain. This is undesired/infeasible in most situations.

#3320 15 months ago fixed dev/serial Sebastian Huber Sebastian Huber <sebastian.huber@…> 11 months ago
Summary

Add a simple task console driver

Description

The default console driver for tests is the simple console driver. It uses a polled output via rtems_putc() done directly in the context of the executing thread. This is a problem for timing sensitive tests. Add a simple task console driver.

.. index:: CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER

.. _CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER:

CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER
------------------------------------------------------

CONSTANT:
    ``CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER``

DATA TYPE:
    Boolean feature macro.

RANGE:
    Defined or undefined.

DEFAULT VALUE:
    This is not defined by default.

DESCRIPTION:
    ``CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER`` is defined if
    the application wishes to include the Simple Task Console Device Driver.

NOTES:
    This device driver is responsible for providing the :file:`/dev/console`
    device file.  This device is used to initialize the standard input, output,
    and error file descriptors.

    This device driver reads via ``getchark()``.

    This device driver writes into a write buffer.  The count of characters
    written into the write buffer is returned.  It might be less than the
    requested count, in case the write buffer is full.  The write is
    non-blocking and may be called from interrupt context.  A dedicated task
    reads from the write buffer and outputs the characters via
    ``rtems_putc()``.  This task runs with the least important priority.  The
    write buffer size is 2047 characters and it is not configurable.

    Use ``fsync(STDOUT_FILENO)`` or ``fdatasync(STDOUT_FILENO)`` to drain the
    write buffer.

    The Termios framework is not used.  There is no support to change device
    settings, e.g.  baud, stop bits, parity, etc.

    The

    * ``CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER``,

    * ``CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER``, and

    * ``CONFIGURE_APPLICATION_NEEDS_SIMPLE_TASK_CONSOLE_DRIVER``

    configuration options are mutually exclusive.
#3736 7 weeks ago fixed admin Chris Johns Sebastian Huber <sebastian.huber@…> 3 weeks ago
Summary

PowerPC Beatnik BSP C++ exceptions broken

Description

Running cdtest.exe fails. I am wondering if there is an issue in the linkcmd scripts this BSP uses. The psim works.

The trace is:

config addr is 0xf1000cf8                                                
config data is 0xf1000cfc                                                
Welcome to RTEMS rtems-5.0.0 (PowerPC/Generic (classic FPU)/beatnik)     
CPU: MPC7457                                                             
Board Type: MVME5500-0161 (S/N E1712C9)                                  
Bus Clock Freq:   133333333 Hz                                           
CPU Clock Freq:  1000000000 Hz                                           
Memory:           536870912 bytes                                        
-----------------------------------------                                
Now BSP_mem_size = 0x1fe00000                                            
Configuration.work_space_size = a170                                     
Page table setup finished; will activate it NOW...                       
Going to start PCI buses scanning and initialization                     
Number of PCI buses found is : 3                                         
MSR 0x2003032                                                            
Exit from bspstart                                                       
Universe II PCI-VME bridge detected at 0x82000000, IRQ 76                
Universe Master Ports:                                                   
Port  VME-Addr   Size       PCI-Adrs   Mode:                             
0:    0x20000000 0x0e000000 0x90000000 A32, D64 [MBLT], Dat, Sup         
1:    0x00000000 0x00ff0000 0x9f000000 A24, D64 [MBLT], Dat, Sup         
2:    0x00000000 0x00010000 0x9fff0000 A16, D64, Dat, Sup                
7:    0x00000000 0x01000000 0x9e000000 CSR, D64, Dat, Sup                
Universe Slave Ports:                                                    
Port  VME-Addr   Size       PCI-Adrs   Mode:                             
0:    0x90000000 0x1fe00000 0x00000000 A32, Pgm, Dat, Sup, Usr, PWEN, PRE
N                                                                        
vmeUniverse IRQ manager: looking for registers on VME...                 
Trying to find CRG on VME...                                             
vmeUniverse IRQ manager - registers not found on VME; falling back to PCI
                                                                         
                                                                         
*** BEGIN OF TEST CONSTRUCTOR/DESTRUCTOR ***                             
*** TEST VERSION: 5.0.0.8a8b95aa1d6932ba9d2acd7a785100f7d0919205-modified
*** TEST STATE: EXPECTED-PASS                                            
*** TEST BUILD: RTEMS_NETWORKING RTEMS_POSIX_API                         
*** TEST TOOLS: 7.4.0 20181206 (RTEMS 5, RSB 9a3e12e5820918057633798c3fe2
a1f952fb4e56, Newlib 1d35a003f)                                          
GLOBAL: Hey I'm in base class constructor number 1 for 0x5c404.          
GLOBAL: Hey I'm in base class constructor number 2 for 0x5c410.          
GLOBAL: Hey I'm in derived class constructor number 3 for 0x5c410.       
LOCAL: Hey I'm in base class constructor number 4 for 0x6cbdc.           
LOCAL: Hey I'm in base class constructor number 5 for 0x6cbd0.           
LOCAL: Hey I'm in base class constructor number 6 for 0x6cbc4.           
LOCAL: Hey I'm in base class constructor number 7 for 0x6cbb8.           
LOCAL: Hey I'm in derived class constructor number 8 for 0x6cbb8.        
IO Stream not tested                                                     
LOCAL: Hey I'm in derived class destructor number 8 for 0x6cbb8.         
Derived class - Instantiation order 8                                    
LOCAL: Hey I'm in base class destructor number 7 for 0x6cbb8.            
Derived class - Instantiation order 8                                    
LOCAL: Hey I'm in base class destructor number 6 for 0x6cbc4.            
Derived class - Instantiation order 6                                    
LOCAL: Hey I'm in base class destructor number 5 for 0x6cbd0.            
Derived class - Instantiation order 5                                    
LOCAL: Hey I'm in base class destructor number 4 for 0x6cbdc.            
Derived class - Instantiation order 5                                    
*** TESTING C++ EXCEPTIONS ***                                           
                                                                         
fatal source: RTEMS_FATAL_SOURCE_EXIT                                    
bsp_fatal_extension(): RTEMS terminated
#2889 2 years ago fixed score Stavros Passas Stavros Passas <stavros.passas@…> 19 months ago
Summary

RTEMS_STACK_CHECKER_EXTENSION has incomplete definition

Description

The extension for the stack checker defines 8 entries, while the structure for RTEMS extensions gets 9 arguments. This causes warnings to appear on applications compiled with -Werror, or similar flags.

The handler that is missing is for the terminate callback, so a 0 entry would be enough to fix this error.

#3454 12 months ago fixed doc Vidushi Vashishth Vidushi Vashishth 3 months ago
Summary

Tracing Framework Documentation in User Manual

Description

1) Write up a new chapter in the user manual regarding the existing tracing framework in RTEMS. Include a description of the components of the tracing framework and the various techniques used to generate traces currently. Add explanatory demonstrations and samples.

2) Expand the chapter to include CTF generation (currently under development) as it evolves.

#2557 3 years ago fixed doc Amar Takhar Amar Takhar 19 months ago
Summary

Add word splitting to print output

#2701 3 years ago fixed build printk Amar Takhar 19 months ago
Summary

Rename asm file with .S(upper case) ext. name

Description

The are some asm file with .s ext. name, .s and .S is different for gnu as, the pre processed produce .s file from .S. In a word, .S can use #define .s can not. KBuild clean .s files when make clean. I have submit a patch to devel, but blocked. Too big patch.

#2807 3 years ago fixed admin Sebastian Huber Amar Takhar 19 months ago
Summary

rtems-docs repository is not known to trac

#2933 2 years ago fixed unspecified Amar Takhar Amar Takhar 7 months ago
Summary

Flexibleassignto is broken on new ticket page.

Description

The plugin needs to be fixed for new trac template changes. I usually don't have to modify this often but we made a huge version jump.

Right now all we see is

assign to <default>

There should be a list of developers.

#2984 2 years ago fixed unspecified Chris Johns Amar Takhar 19 months ago
Summary

Changing Trac milestone page fails.

Description

Changing the default milestone is timing out. It has worked before. The error is:

Gateway Timeout

The gateway did not receive a timely response from the upstream server or application.

#3013 2 years ago fixed tool/website Nikolay Komashinskiy Amar Takhar 7 months ago
Summary

ProgrammingError?: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'sid='nikolaykomashinskiy' AND authenticated=1 AND name='force_change_passwd at line 1")

Description

Hello, during reset password I had an internal error. This card was automatically generated.

How to Reproduce

While doing a POST operation on /reset_password, Trac issued an internal error.

(please provide additional details here)

Request parameters:

{u'__FORM_TOKEN': u'56888d70c5e5799302935f97',
 u'email': u'nikolay.komashinskiy@yandex.ru',
 u'register_phone': u'',
 u'rtems_user_phone': u'',
 u'username': u'nikolaykomashinskiy'}

User agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36

System Information

System information not available

Enabled Plugins

Plugin information not available

Interface Customization

Interface customization information not available

Python Traceback

Traceback (most recent call last):
  File "/data/src/trac/trac/web/main.py", line 620, in _dispatch_request
    dispatcher.dispatch(req)
  File "/data/src/trac/trac/web/main.py", line 253, in dispatch
    resp = chosen_handler.process_request(req)
  File "/data/trac/plugins/TracAccountManager-0.5.dev0-py2.7.egg/acct_mgr/web_ui.py", line 168, in process_request
    self._do_reset_password(req)
  File "/data/trac/plugins/TracAccountManager-0.5.dev0-py2.7.egg/acct_mgr/web_ui.py", line 256, in _do_reset_password
    self._reset_password(req, username, email)
  File "/data/trac/plugins/TracAccountManager-0.5.dev0-py2.7.egg/acct_mgr/web_ui.py", line 301, in _reset_password
    set_user_attribute(self.env, username, 'force_change_passwd', 1)
  File "/data/trac/plugins/TracAccountManager-0.5.dev0-py2.7.egg/acct_mgr/model.py", line 509, in set_user_attribute
    (value, username, attribute))
  File "/data/src/trac/trac/db/util.py", line 128, in execute
    cursor.execute(query, params if params is not None else [])
  File "/data/src/trac/trac/db/util.py", line 72, in execute
    return self.cursor.execute(sql_escape_percent(sql), args)
  File "/usr/local/lib/python2.7/site-packages/MySQLdb/cursors.py", line 205, in execute
    self.errorhandler(self, exc, value)
  File "/usr/local/lib/python2.7/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
    raise errorclass, errorvalue
ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'sid='nikolaykomashinskiy' AND authenticated=1 AND name='force_change_passwd'' at line 1")
#3040 2 years ago invalid tool/website Sebastian Huber Amar Takhar 7 months ago
Summary

Cannot use RTEMS mailing list archive for patches

Description

The RTEMS mailing list archive has no option to get the raw e-mail via the web interface, e.g.

https://lists.rtems.org/pipermail/devel/2017-June/018101.html

For example the Newlib mailing list archive:

https://sourceware.org/cgi-bin/get-raw-msg?listname=newlib&date=2017&msgid=20170612064218.11969-1-sebastian.huber%40embedded-brains.de

#3098 22 months ago fixed admin Chris Johns Amar Takhar 7 months ago
Summary

Add new RTEMS repos to github.

Description

Please add:

  1. rtems-docs.git
  2. rtems-release.git

to our github repos.

#3203 19 months ago fixed admin Amar Takhar Amar Takhar 7 months ago
Summary

Upgrade trac to fix numerous problems.

Description

There are a ton of issues going on with trac that need to be resolved. The two major ones are:

  • The ticket commenter emails people who aren't a trac user. This may require a custom modification.
  • The always_email setting is taking things too literally and always sending emails even if it shouldn't.
  • The Git plug-in consistently spins, floods the jail with processes then the site dies.
  • Frequent, strange and random crashes.
    • This one is not a huge deal since it's just that request process users won't even notice when this happens.

Upgrading trac is a weeklong project usually I will start preparing for it and update here.

If anyone has any feature requests now is the time to do it!

#3238 19 months ago fixed admin Chris Johns Amar Takhar 7 months ago
Summary

Git push to Trac with more than one commit does not update tickets.

Description

The git push to trac hook does not queue or handle a number of commits in a push. As a result updates to tickets can be missed.

#3329 15 months ago fixed tool/website Joel Sherrill Amar Takhar 7 months ago
Summary

Trac Login Failure (bad password) Causes Internal Error

Description

Behavior is as expected with a bad user name.

Try to login to Trac with a bad password:

Oops… Trac detected an internal error: ProgrammingError?: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'sid='joel.sherrill' AND authenticated=1 AND name='failed_logins_count at line 1") There was an internal error in Trac. It is recommended that you notify your local Trac administrator with the information needed to reproduce the issue. To that end, you could anonymous ProgrammingError?: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'sid='joel.sherrill' AND authenticated=1 AND name='failed_logins_count at line 1") ==== How to Reproduce ====

While doing a POST operation on /login, Trac issued an internal error.

(please provide additional details here)

Request parameters:

{u'__FORM_TOKEN': u'0dc25ae350c181046ceae015',
 u'password': u'XXX',
 u'referer': u'https://devel.rtems.org/ticket/3328',
 'user_locked': False,
 u'username': u'joel.sherrill'}

User agent: Mozilla/5.0 (X11; Linux x86_64) KHTML/4.14.8 (like Gecko) Konqueror/4.14 Fedora/4.14.8-6.el7_3

System Information

System information not available

Enabled Plugins

Plugin information not available

Interface Customization

Interface customization information not available

Python Traceback

Traceback (most recent call last):
  File "/data/src/trac/trac/web/main.py", line 620, in _dispatch_request
    dispatcher.dispatch(req)
  File "/data/src/trac/trac/web/main.py", line 220, in dispatch
    chosen_handler = self._pre_process_request(req, chosen_handler)
  File "/data/src/trac/trac/web/main.py", line 429, in _pre_process_request
    chosen_handler = filter_.pre_process_request(req, chosen_handler)
  File "/data/trac/plugins/TracAccountManager-0.5.dev0-py2.7.egg/acct_mgr/api.py", line 478, in pre_process_request
    if not req.session.authenticated or \
  File "/data/src/trac/trac/web/api.py", line 491, in __getattr__
    value = self.callbacks[name](self)
  File "/data/src/trac/trac/web/main.py", line 354, in _get_session
    return Session(self.env, req)
  File "/data/src/trac/trac/web/session.py", line 243, in __init__
    if req.authname == 'anonymous':
  File "/data/src/trac/trac/web/api.py", line 491, in __getattr__
    value = self.callbacks[name](self)
  File "/data/src/trac/trac/web/main.py", line 172, in authenticate
    authname = authenticator.authenticate(req)
  File "/data/trac/plugins/TracAccountManager-0.5.dev0-py2.7.egg/acct_mgr/util.py", line 81, in wrap
    return func(self, *args, **kwds)
  File "/data/trac/plugins/TracAccountManager-0.5.dev0-py2.7.egg/acct_mgr/web_ui.py", line 395, in authenticate
    guard.failed_count(f_user, req.remote_addr)
  File "/data/trac/plugins/TracAccountManager-0.5.dev0-py2.7.egg/acct_mgr/guard.py", line 107, in failed_count
    set_user_attribute(self.env, user, key, count)
  File "/data/trac/plugins/TracAccountManager-0.5.dev0-py2.7.egg/acct_mgr/model.py", line 509, in set_user_attribute
    (value, username, attribute))
  File "/data/src/trac/trac/db/util.py", line 128, in execute
    cursor.execute(query, params if params is not None else [])
  File "/data/src/trac/trac/db/util.py", line 72, in execute
    return self.cursor.execute(sql_escape_percent(sql), args)
  File "/usr/local/lib/python2.7/site-packages/MySQLdb/cursors.py", line 205, in execute
    self.errorhandler(self, exc, value)
  File "/usr/local/lib/python2.7/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
    raise errorclass, errorvalue
ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'sid='joel.sherrill' AND authenticated=1 AND name='failed_logins_count'' at line 1")
}}}  Create  a ticket.
 
The action that triggered the error was:
POST: /login
TracGuide — The Trac User and Administration Guide
#3386 14 months ago invalid admin Chris Johns Amar Takhar 7 months ago
Summary

Trac's git changeset browsing is suspect.

Description

It is critical this interface works because we have moved to Trac for release notes and the release notes contain links to the changesets because we reference the tickets in the commits.

Some requests work:

  1. 900c40730dbee34cd7a6f1c03c80896951bf1b9c/rtems
  2. d8de6b9dbe4ab1ef375ecce55e8bfb1028c5dd13/rtems
  3. 9704efb4ec088a472842cbc9bc46392685ebc806/rtems

and others do not:

  1. 2afb22b7e1ebcbe40373ff7e0efae7d207c655a9/rtems

Notes:

  • items 2. and 3. are either side of the changeset a. in the commit history of RTEMS.
  • Clicking on 3. and then the Next Changeset link also fails.
#3555 7 months ago fixed admin Amar Takhar Amar Takhar 7 months ago
Summary

IRC bots need to be registered to join #rtems

Description

Due to the spam on Freenode only registered users can join #rtems. The bots both need accounts now.

#3557 7 months ago fixed admin Amar Takhar Amar Takhar 7 months ago
Summary

Test ticket

Description

Using this as a test ticket to test out my fix.

#3558 7 months ago fixed admin Amar Takhar Amar Takhar 7 months ago
Summary

Update TracSpamFilter?

Description

Updated to the latest Trac Spam Filter and upgraded captcha to v2 to avoid any errors. This was reported a while back and should fix any issues.

There are more please open a new ticket.

#3559 7 months ago fixed admin Amar Takhar Amar Takhar 7 months ago
Summary

Fix NavAdd? plugin.

Description

I had no idea but this had gotten removed in the last upgrade I've re-added it.

This makes a few changes to the navigation:

  • "New Ticket" now goes to /wiki/NewTicket
  • There is a new button "New Ticket (direct)" in the upper right for those who want to directly go to creating a ticket.
  • "My Tickets" used to go to a query but now goes to the new wiki:MyTickets page.

These changes existed years ago when NavAdd? was working I opened this ticket in case anyone has complaints about it coming back if not I will close it in a few days.

#3560 7 months ago fixed admin Amar Takhar Amar Takhar 7 months ago
Summary

Fix FlexibleAssignTo?

Description

When we first went to trac we had restrictions on the 'owner' to developers only. When track was upgraded this broke completely but all the code to handle this was already in place.

I took the time to fix it today so we have dropdowns again.

I've created this ticket to see if anyone has an issue with this should we keep it? Drop it? I know it's been years but it was our original choice.

See any ticket the 'reassign to' and on a new ticket the 'assign to' is now a dropdown. These are based on trac permissions so we can always add more if we need it but it really should be restricted to having a project member be the owner so we can ensure tickets are closed and sorted properly.

#3561 7 months ago fixed admin Amar Takhar Amar Takhar 6 months ago
Summary

Migrate to CommitTicketUpdater?

Description

The old script was ancient and outdated. I've now killed it off and moved to the internal system described here:

https://trac.edgewall.org/wiki/CommitTicketUpdater

This should handle all scenarios if it does not please let me know. I will leave this ticket open for a week or so.

#3620 6 months ago fixed admin Sebastian Huber Amar Takhar 5 months ago
Summary

CommitTicketUpdater? does not process commits in order

Description

The new CommitTicketUpdater? does not process commits in order. For example see:

https://devel.rtems.org/ticket/3598#comment:40 https://devel.rtems.org/ticket/3598#comment:41

Compare with Git commit order:

https://git.rtems.org/rtems/log/?id=eaa5ea84eaf1b3dab72d7a7a6578f0dc59e55396&qt=range&q=1947449a5d6f01a44ccc61eda3e78ef7e06da952..5fc727fe77a632f9df38161a8474007dab020608

#3649 6 months ago fixed admin Joel Sherrill Amar Takhar 3 months ago
Summary

Error with IRC anouncing in examples-v2 commits.

Description
remote: 1: mail vc@rtems.org 
remote: 2: update github 
remote: 4: IRC 
remote: usage: <file with rev-list> <repo name without .git> 
remote: 5: Buildbot
To ssh://joel@dispatch.rtems.org/data/git/examples-v2.git
   ced6542..276a025  am -> master 
#3669 5 months ago fixed doc Chris Johns Amar Takhar 4 months ago
Summary

rtems-docs.git does not build with Sphinx 1.8.2 and 1.8.3

Description

The docs do not build with Sphinx 1.8. Recent posts indicate some changes to support unicode indexes via xindy have caused this and the solution being discussed is to use the generate Makefile ...

https://github.com/rtfd/readthedocs.org/issues/4454

The need to use the Makefile is debatable however what it contains is important as it defines what needs to happen.

This recent issue can be seen in the Tex generated file for the User Manual (user.tex). It contains:

\item[{Waf\index{Waf@\spxentry{Waf}|spxpagem}\phantomsection\label{\detokenize{glossary/index:term-waf}}}] \leavevmode
Waf build system.  For more information see \sphinxurl{http://www.waf.io/}

Our current build uses pdflatex directly and there is an error as spxpagem is not defined.

If you inspect a version 1.8 generated Makefile the command latexmk is used. This wraps the PDF generation so the correct number of passes are performed. Using this tool should be considered.

The Makefile contains:

export XINDYOPTS = -L english -C utf8  -M sphinx.xdy

The sphinx.xdy contains the needed spxpagem. I can only conclude sphinx needs to be built with xindy because the reference is always generated.

The problem for building FreeBSD is xindy is not an available command.

#3135 21 months ago fixed admin Sebastian Huber amar@… 19 months ago
Summary

Devel mailing list doesn't work and Git push impossible due to disk full

Description

I got this:

git push
Counting objects: 18, done.
Delta compression using up to 12 threads.
Compressing objects: 100% (17/17), done.
Writing objects: 100% (18/18), 1.68 KiB | 0 bytes/s, done.
Total 18 (delta 16), reused 0 (delta 0)
remote: error: file write error (No space left on device)
remote: fatal: unable to write sha1 file
error: remote unpack failed: unpack-objects abnormal exit
To ssh://dispatch.rtems.org/data/git/rtems.git
 ! [remote rejected]       upstream -> master (unpacker error)
error: failed to push some refs to 'ssh://sebh@dispatch.rtems.org/data/git/rtems.git'

We have on dispatch.rtems.org:

Filesystem        Size    Used   Avail Capacity  Mounted on
/dev/gpt/root0     88G     82G   -600M   101%    / 
#2488 3 years ago fixed unspecified Joel Sherrill Ben Gras 19 months ago
Summary

Vagrant Scripts

Description

Ben.. someone posted on IRC that they used your scripts but the clones point to your personal repos which are out of date I am guessing.

Also is this discussed anywhere on the RTEMS wiki?

#1247 12 years ago fixed fs strauman Chris Johns 19 months ago
Summary

RTEMS does not implement locks needed by multithreaded newlib

Description

multi-threaded newlib protects a number of internal data structures (as of newlib-1.15 these comprise:

  • global list of FILE objects
  • stdio FILE object initializer
  • individual FILEs [since FILEs with the exception of stdin/stdout/stderr are per-process entities]
  • global hash table used by telldir/seekdir
  • individual DIR structures (opendir/readdir)
  • atexit list
  • list of environment variables
  • global timezone variable

) using mutexes. It expects the OS to implement these locks but defaults to not using locking if the OS does not provide an implementation. Currently, RTEMS does *not* provide its own implementation of 'sys/lock.h' and therefore vital data structures in newlib are currently *unprotected* (with the exception of environment variables -- 'envlock.c' had been added to RTEMS a while ago but since then, newlib has introduced more locks and a general OS interface which - once implemented - will obsolete 'envlock.c').

Note that while semantics of having no protection for individual FILE objects may be tolerable, having no protection for global newlib data structures such as lists of FILEs is not acceptable.

I am currently working on an implementation which should be available shortly.

#1394 10 years ago fixed tool/newlib Daniel Hellstrom Chris Johns 19 months ago
Summary

scandir() fails due to MAXNAMELEN is incorrect

Description

I have been trying to use scandir() however the newlib one does not work due to MAXNAMLEN and NAMLEN differ. scandir in libcsupport seems to have a fix for this, however my libcsupport_a-scandir.o is empty, I'm guessing because HAVE_SCANDIR is defined.

It is used in scandir() (newlib-1.17.0/newlib/libc/posix/scandir.c:117) by the macro DIRSIZ. Where DIRSIZ uses the MAXNAMELEN define which is set incorrectly. It does not match the sizeof(struct dirent) which makes the DIRSIZ return a negative number, then malloc(DIRSIZ(d)) will try to allocate 4GB which fail.

My guess is that MAXNAMELEN should be defined in newlib-1.17.0/newlib/libc/sys/rtems/sys/dirent.h or newlib-1.17.0/newlib/libc/sys/rtems/include/limits.h or in a new file.

I tried to run the code below on my FAT filesystem, taken directly from the scandir(3) man page.

/* print files in current directory in reverse order */ #include <dirent.h> main(){

struct dirent namelist; int n;

n = scandir(".", &namelist, 0, NULL); if (n < 0)

perror("scandir");

else {

while(n--) {

printf("%s\n", namelist[n]->d_name); free(namelist[n]);

} free(namelist);

}

}

#1662 9 years ago fixed fs Bharath Suri Chris Johns 16 months ago
Summary

termios.c: semaphore not deleted, consequently resulting in failure of rtems_termios_open

Description

The semaphore osem is still in use in rtems_termios_close while an attempt to delete it is made and hence is not deleted. Consequently, it results in a RTEMS_TOO_MANY on rtems_semaphore_create, which further results in failure of rtems_termios_open.

#1971 8 years ago fixed fs nopscmn Chris Johns 16 months ago
Summary

Memory leak in tmpfile()

Description

Hello,

I use tmpfile() in my RTEMS application, and found that it has memory leak. I wrote small test application (see attachment), that output memory usage:

Memory usage before: Number of used blocks: 12 Largest used block: 1288 Total bytes used: 3628

Memory used after: Number of used blocks: 1013 Largest used block: 1288 Total bytes used: 112064

By 1000 iteration, each call tmpfile() cause memory leak about 108 bytes.

#2198 5 years ago fixed doc Gedare Bloom Chris Johns 12 months ago
Summary

Automate doxygen build

Description

The doxygen builds are no longer being generated nightly.

#2207 4 years ago fixed unspecified Chris Johns Chris Johns 19 months ago
Summary

RTEMS tar does not overwrite.

Description

A host tar by default will overwrite the contents of a directory. A sort of refresh. The RTEMS tar requires you remove the existing files rather than overwrite. This is dangerous because you have to remove files yet you do not know if the tar will be successful and moving and saving files assumes you know the contents of the tar file before hand.

Tar should be changed to overwrite and so allow files to be refreshed.

Consistence of files should be managed outside of tar via hashes or checksums.

#2284 4 years ago wontfix unspecified Joel Sherrill Chris Johns 19 months ago
Summary

h8300 gets error linking dl0* tests

Description

rtems-syms -e -c "-mh -mint32 -O2 -g -Wall -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs" -o dl-sym.o dl01.pre h8300-rtems4.11-gcc -B../../../../../h8sim/lib/ -specs bsp_specs -qrtems -mh -mint32 -O2 -g -Wall -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs -mh -mint32 \

-o dl01.exe init.o dl-load.o dl-tar.o dl-sym.o

dl-sym.o: In function `rtems_rtl_base_global_syms_init': rld--gTgaaa.c:(.text+0xa): undefined reference to `rtemsrtl_base_globals_size' rld--gTgaaa.c:(.text+0x10): undefined reference to `rtemsrtl_base_globals' collect2: error: ld returned 1 exit status

#2428 4 years ago fixed tool/rsb Joel Sherrill Chris Johns 19 months ago
Summary

Add 4.12 Tool Target Configurations to RSB

Description

Even though so far the 4.11 and master tools don't need to be different, 4.12 configurations need to be added. This gives us space to:

+ (DONE) remove obsolete targets (avr, h8300, m32r) + (DONE) update versions + complete submission of patches and bump gdb + ...

#2487 3 years ago fixed tool/website Joel Sherrill Chris Johns 19 months ago
Summary

Should https://devel.rtems.org/wiki/TBR/Delete/SpecBuilder be Deleted?

Description

Chris.. you are the only one who knows if this tool is obsolete or not. Please do what you think is right with this page.

#2490 3 years ago wontfix tool/rsb Sebastian Huber Chris Johns 14 months ago
Summary

RSB: Use SHA512 instead of MD5

Description

Since MD5 is not a secure hash algorithm, we should change all hashes used by the RSB configuration files to use SHA512.

#2527 3 years ago wontfix tool Joel Sherrill Chris Johns 19 months ago
Summary

Move pc386/tools/bin2boot to rtems-tools

Description

Per discussion with Chris. Begin to eliminate BSP specific tools.

#2632 3 years ago fixed tool/rsb Joel Sherrill Chris Johns 19 months ago
Summary

rtems-tester failure

Description

CentOS 7 on master

$ ../rtems-tools/tester/rtems-test --rtems-tools=/home/joel/rtems-4.11-work/tools/4.12 --rtems-bsp=sis find . -name "*hello.exe" RTEMS Testing - Tester, 4.12 (a5d243d3f8e2)

Command Line: ../rtems-tools/tester/rtems-test --rtems-tools=/home/joel/rtems-4.11-work/tools/4.12 --rtems-bsp=sis ./sparc-rtems4.12/c/sis/testsuites/samples/hello/hello.exe Python: 2.7.5 (default, Nov 20 2015, 02:00:19) [GCC 4.8.5 20150623 (Red Hat 4.8.5-4)]

[1/1] p:0 f:0 t:0 i:0 | sparc/sis: hello.exe Traceback (most recent call last):

File "../rtems-tools/tester/rtems-test", line 40, in <module>

rt.test.run()

File "/data/home/joel/rtems-4.11-work/rtems-tools/tester/rt/test.py", line 287, in run

tst.reraise()

File "/data/home/joel/rtems-4.11-work/rtems-tools/tester/rt/test.py", line 123, in reraise

raise (self.result[0], self.result[1], self.result[2])

TypeError?: init() takes exactly 2 arguments (1 given)

#2641 3 years ago fixed build aurelio Chris Johns 14 months ago
Summary

configure: enable-rtemsbsp doesn't warn if bsp does not exist

Description

When running configure with an incorrect bsp name the script does not cause an error. You can ever run make without getting any warning message.

The script should check the name of the bsp and continue only if it is a valid bsp. On the other hand if the bsp name given by the user is invalid the script should prompt a message.

#2649 3 years ago fixed tool/rsb Chris Johns Chris Johns 19 months ago
Summary

RSB remove 4.11, 4.10 and 4.9 from the master branch.

Description

Having 4.11 on master is confusing users as they build 4.11 tool on master and there may be issues in 4.11 configurations fixed on the 4.11 branch.

Leave 4.9 and 4.10 until they are branched off master. We will make these branches once 4.12 is stable again.

#2680 3 years ago fixed doc Joel Sherrill Chris Johns 19 months ago
Summary

Add pthread_setconcurrency() and pthread_getconcurrency()

Description

* Code merged. Ticket changed to documentation to remind us to add documentation when master documentation reopens in new format.

We only require the simple implementation documented here:

http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_getconcurrency.html

This is required for FACE Conformance.

#2693 3 years ago fixed doc Joel Sherrill Chris Johns 19 months ago
Summary

Update doc to reflect obsoleting rtems_clock_get()

Description

Ticket to reflect documentation change needed on the master but not on 4.11. When new documentation format is available for master, this needs to be accounted for.

#2741 3 years ago fixed bsps Joel Sherrill Chris Johns 19 months ago
Summary

New warning from printf plugin changes

Description

../../../../../../../rtems/c/src/lib/libcpu/powerpc/mpc6xx/mmu/pte121.c: In function 'whatPrintf': ../../../../../../../rtems/c/src/lib/libcpu/powerpc/mpc6xx/mmu/pte121.c:189:46: warning: pointer type mismatch in conditional expression

return _Thread_Executing ? (PrintF) printf : printk;

#2754 3 years ago fixed lib/dl Patrick Gauvin Chris Johns 19 months ago
Summary

no .strtab section

Description

dlopen on the object generated by libfoo.cpp in the attached test case fails and results in the error no .strtab section. readelf shows that the section is present, though:

readelf -S libfoo.o | grep strtab
(standard input):97:  [92] .shstrtab         STRTAB          00000000 001fb0 00040c 00      0   0  1
(standard input):99:  [94] .strtab           STRTAB          00000000 0018b0 00019e 00      0   0  1

Steps to Reproduce (you may have to edit BSP_DIR in the Makefile):

make clean all
qemu-system-arm -m 256M -M xilinx-zynq-a9 -serial null -serial mon:stdio \
    -nographic -no-reboot -kernel libdl-strtab-test.exe

Expected Output:

TEST BEGIN
dlopen: no .strtab section
assertion "handle != NULL" failed: file "libdl-strtab-test.c", line 46, function: POSIX_Init

Development Environment:

  • RTEMS Version: 4.11 (Branch "4.11", commit 3f72dda6ee518d3ea04341ad4df079ecb1895ef7) with the dlerror patches from #2747, and the attached ARM PREL31 support patch (I will be making a separate ticket for this with test code soon).
  • System Type: ARM Cortex-A9, xilinx_zynq_a9_qemu BSP
  • GCC Version:

arm-rtems4.11-gcc (GCC) 4.9.3 20150626 (RTEMS 4.11, RSB 1675a733536d1aec2020011e5e522497a442561a (HEAD, origin/4.11, 4.11), Newlib 2.2.0.20150423)

  • RTEMS Configure Options:

--target=arm-rtems4.11 --enable-rtemsbsp="xilinx_zynq_a9_qemu xilinx_zynq_zedboard xilinx_zynq_csp_cots xilinx_zynq_csp_hybrid" --enable-tests=samples --enable-posix --prefix=$HOME/development/rtems/4.11 --disable-networking

#2768 3 years ago fixed unspecified Chris Johns Chris Johns 19 months ago
Summary

untar does not keep permissions correctly.

Description

On disk I have 'x' with:

$ ls -las x
4 -rwxr-xr-x  1 chris  caeng  48 Jul 14 11:46 x

the tar file shows:

$ tar tvf rootfs.tar 
-rwxr-xr-x  0 chris  caeng      48 Jul 14 11:46 x

and in the IMFS it shows:

[/] # ls -las x
0 -rw-r--r--  1 root  root  48 Jan  1 00:00 x

The makes adding 'joel' scripts difficult.

#2769 3 years ago invalid unspecified Chris Johns Chris Johns 14 months ago
Summary

rtems-syms does not clean up temp files.

Description

I am seeing temps files such as:

$ ls -las /tmp/rld-*
 0 -rw-------  1 chris  wheel      0 Jul 27 18:16 /tmp/rld--04lbaa.rldxx
 0 -rw-------  1 chris  wheel      0 Jul 27 18:42 /tmp/rld--0niaaa.rldxx
 0 -rw-------  1 chris  wheel      0 Jul 27 18:39 /tmp/rld--0viaaa.rldxx
 0 -rw-------  1 chris  wheel      0 Jul 27 18:38 /tmp/rld--1Hhaaa.rldxx
88 -rw-------  1 chris  wheel  87426 Jul 27 18:30 /tmp/rld--1ibaaa.c
 0 -rw-------  1 chris  wheel      0 Jul 27 18:24 /tmp/rld--2EZaaa.rldxx
 0 -rw-------  1 chris  wheel      0 Jul 29 17:11 /tmp/rld--2rwaaa.rldxx
 0 -rw-------  1 chris  wheel      0 Jul 29 18:14 /tmp/rld--2sBaaa.rldxx
88 -rw-------  1 chris  wheel  88148 Jul 29 17:40 /tmp/rld--2umaaa.c
88 -rw-------  1 chris  wheel  87426 Jul 27 18:25 /tmp/rld--3baaaa.c
88 -rw-------  1 chris  wheel  87426 Jul 27 18:27 /tmp/rld--4Jaaaa.c
 0 -rw-------  1 chris  wheel      0 Jul 27 18:52 /tmp/rld--4Wiaaa.rldxx
 0 -rw-------  1 chris  wheel      0 Jul 27 18:38 /tmp/rld--4bfaaa.rldxx

left in /tmp. They look like symbols and so I suspect rtems-syms when building the testsuite with 4.12 (master). This is on FreeBSD.

#2777 3 years ago fixed unspecified Chris Johns Chris Johns 19 months ago
Summary

Remove librtems++

Description

This is old and there are better design patterns for threading and C++. We recommend you use the new C++ standards based support.

#2788 3 years ago wontfix score Chris Johns Chris Johns 19 months ago
Summary

RTEMS I2C API only defines Standard-mode (Sm) speed as a default.

Description

The RTEMS I2C API as defined in cpukit/dev/include/dev/i2c/i2c.h only defines the bus speed as Standard-mode (Sm) as defined by the I2C standard. This is set as I2C_BUS_CLOCK_DEFAULT. The default speed is defined by the hardware, ie the devices connected, and not this API.

The API should define the speeds as defined in the I2C standard and there should be no default. Drivers like the Cadence driver for the Zynq should be modified to require the bus speed be provided and all future drivers need to provide the speed.

#2802 3 years ago fixed lib/dl Sebastian Huber Chris Johns 19 months ago
Summary

Test "libdl (RTL) 5" fails on SPARC targets

Description

On GR740 I get:

rtl: RELOC_32 0x60ae8 @ 0x86edc in /dl-o5.o
rtl: relocation: .rela.eh_frame, syms:.symtab
rtl: rela: sym:__gxx_personality_v0(20)=00001dec type:3  off:00000013 addend:0

CPU 0:  IU in error mode (tt = 0x07, mem address not aligned)
        0x0001fa9c: c4040000  ld  [%l0], %g2  <rtems_rtl_elf_relocate_rela+204>
CPU 1:  Power down mode
CPU 2:  Power down mode
CPU 3:  Power down mode

On GR712RC I get:

rtl: WDISP_30 0x7ffe2ccd @ 0x40087108 in /dl-o5.o
rtl: relocation: .rela.gcc_except_table.exception_dl, syms:.symtab
rtl: rela: sym:_ZTISt9exception(32)=40060ae8 type:3  off:00000034 addend:0
rtl: RELOC_32 0x40060ae8 @ 0x400871b4 in /dl-o5.o
rtl: relocation: .rela.eh_frame, syms:.symtab
rtl: rela: sym:__gxx_personality_v0(20)=40001dec type:3  off:00000013 addend:0

Target resets now.

#2829 2 years ago fixed unspecified Joel Sherrill Chris Johns 19 months ago
Summary

xz git URL in README is broken

Description

Use http://git.tukaani.org/?

#2862 2 years ago fixed doc Chris Johns Chris Johns 19 months ago
Summary

docs.rtems.org Add support to ReST format releases.

Description

Add support to the releases section of the web site to handle ReST packages. The catalogues have a legacy field for texinfo docs.

The 4.11.0 and 4.11.1 releases need to have a catalogue added because this did not exist when those releases were created.

#2865 2 years ago fixed doc Chris Johns Chris Johns 19 months ago
Summary

Coverpage installed when building the docs repeats catalogue.xml entries

Description

The catalogue repeats entries.

#2867 2 years ago fixed tool Stavros Passas Chris Johns 19 months ago
Summary

Fix exclude rule in rtems-test-check

Description

rtems-test-check is responsible of checking the testsuite configuration of a given BSP and adapt it based on a given "command". Currently for the "exclude" command, we never exclude anything, the output of the script is always the whole list of the input tests.

This happens because the script always starts with output = $tests and appends on the list the tests that are not excluded, so the output is always all the tests.

#2879 2 years ago fixed score David Binderman Chris Johns 19 months ago
Summary

src/cpukit/libdebugger/rtems-debugger-server.c: four problems

Description

1.

src/cpukit/libdebugger/rtems-debugger-server.c:1306]: (style) Redundant condition: extended. '!extended || (extended && check_pid(pid))' is equivalent to '!extended || check_pid(pid)'

Suggest simplify.

2.

src/cpukit/libdebugger/rtems-debugger-server.c:1858]: (warning) Possible null pointer dereference: rtems_debugger

Source code is

  if (r < 0) {
    rtems_printf(printer, "error: rtems-db: remote begin: %s: %s\n",
                 rtems_debugger->remote->name, strerror(errno));
    free(rtems_debugger);
    rtems_debugger = NULL;
  }

  /*
   * Reset at the end of the session.
   */
  rtems_debugger->flags = 0;

Suggest adding return -1 inside the if.

3.

src/cpukit/libdebugger/rtems-debugger-server.c:906]: (style) Redundant condition: extended. '!extended || (extended && check_pid(pid))' is equivalent to '!extended || check_pid(pid)'

Duplicate.

4.

src/cpukit/libdebugger/rtems-debugger-server.c:956]: (warning) Char literal compared with pointer 'p'. Did you intend to dereference it?

Source code is

  while (p != NULL && p != '\0') {

Maybe better code

  while (p != NULL && *p != '\0') {
#2896 2 years ago wontfix tool/rsb Joel Sherrill Chris Johns 19 months ago
Summary

RSB requirements are missing pax

Description

Loading a new VM, I noticed that pax is needed. It isn't mentioned in the RSB manual at all.

I can only accurately fix this for Centos 7 but we can safely assume that advice applies to Centos 6, Fedora, and RHEL.

Can users of other distributions check about pax. Please

#2909 2 years ago fixed score Sebastian Huber Chris Johns 19 months ago
Summary

xz: Support for 64-bit CRC is build although XZ_USE_CRC64 is not defined

Description

This leads to:

../../../../../../rtems/c/src/../../cpukit/libmisc/xz/xz_crc64.c:21:16: warning: no previous prototype for 'xz_crc64_init' [-Wmissing-prototypes] ../../../../../../rtems/c/src/../../cpukit/libmisc/xz/xz_crc64.c:40:20: warning: no previous prototype for 'xz_crc64' [-Wmissing-prototypes]

We should enable the 64-bit CRC or remove this file from the build.

#2912 2 years ago fixed score Sebastian Huber Chris Johns 19 months ago
Summary

libdebugger: control reaches end of non-void function

Description

../../../../../../rtems/c/src/../../cpukit/libdebugger/rtems-debugger-server.c:393:1: warning: control reaches end of non-void function [-Wreturn-type] ../../../../../../rtems/c/src/../../cpukit/libdebugger/rtems-debugger-server.c:405:1: warning: control reaches end of non-void function [-Wreturn-type]

#2922 2 years ago fixed lib/dl Chris Johns Chris Johns 6 months ago
Summary

libdl unresolved externals that use more than one block or multiple entries corrupts.

Description

If there are lots of unresolved externals the unresolved block structure get confused and the can lock up looking for a new slot to add an unresolved external.

#2925 2 years ago fixed score Joel Sherrill Chris Johns 7 months ago
Summary

Warnings in rtl-obj-cache.c on some targets

Description

These warnings are on m68k but not sparc, mips powerpc, or arm. Looks like inttypes.h should be used.

../../../../../../rtems/c/src/../../cpukit/libdl/rtl-obj-cache.c:175:47: warning: format '%d' expects argument of type 'int', but argument 3 has type 'long unsigned int' [-Wformat=] ../../../../../../rtems/c/src/../../cpukit/libdl/rtl-obj-cache.c:175:85: warning: format '%d' expects argument of type 'int', but argument 7 has type 'long unsigned int' [-Wformat=] ../../../../../../rtems/c/src/../../cpukit/libdl/rtl-obj-cache.c:81:67: warning: format '%d' expects argument of type 'int', but argument 7 has type 'long unsigned int' [-Wformat=] ../../../../../../rtems/c/src/../../cpukit/libdl/rtl-obj-cache.c:81:81: warning: format '%d' expects argument of type 'int', but argument 9 has type 'long unsigned int' [-Wformat=] ~

#2959 2 years ago fixed lib/dl Chris Johns Chris Johns 19 months ago
Summary

arm/libdl: C++ exception index tables may not be ordered correctly

Description

The ARM EXIDX sections have the SHF_LINK_ORDER flag set and this is not honored by libdl which means the section order in the ELF file needs to be the correct order of the functions in the address map.

Add support to libdl to follow the link-to order.

#2963 2 years ago fixed unspecified Chris Johns Chris Johns 19 months ago
Summary

Add a testsuite top level confguration file that is common to all tests.

Description

Add the file testsuites/rtems.tcfg to hold test states common to all BSPs. This lets us globally set a test state.

For example fileio is user-input.

Note, user-input will be added a test state to test this file.

#2976 2 years ago fixed unspecified Joel Sherrill Chris Johns 19 months ago
Summary

warnings in rtems-debugger-server.c

Description

This should be present on any ARM or x86 build.

cpukit/libdebugger/rtems-debugger-server.c:393:1: warning: control reaches end of non-void function [-Wreturn-type] cpukit/libdebugger/rtems-debugger-server.c:405:1: warning: control reaches end of non-void function [-Wreturn-type]

#2981 2 years ago fixed unspecified Joel Sherrill Chris Johns 19 months ago
Summary

testdata excludes on included tcfg files does not work

Description

It looks like the includes do not always work for .tcfg files. So far these BSPs do not appear to honor the excludes in an included file:

log/m32c-m32csim.log log/mips-hurricane.log log/mips-rbtx4925.log log/mips-rbtx4938.log log/moxie-moxiesim.log

mips and moxie are dl tests.

#2990 2 years ago fixed tool/rsb Worth Burruss Chris Johns 7 months ago
Summary

RTEMS Source Builder Fails on Windows Builds

Description

The source Builder Fails to build 4.11 tools under MSYS2 and windows. Newer versions of MSYS use a version of gcc greater than 6.0 which can no longer be used to build older version of gcc.

The attached patch is from the gcc mailing list and originally was for gcc version 5.3. It has been adjusted so that it applies to 4.9.3.

This problem should also apply to linux and other systems that use newer gcc 6.0 and above.

#2992 2 years ago fixed tool/rsb Chris Johns Chris Johns 7 months ago
Summary

Long path crashes the RSB when listing a directory.

Description

Building LM32 on Windows crashes the RSB with a long path. The os.listdir call in Python on Windows is limited to 254 characters even if the path is Uncode.

building: lm32-rtems4.11-gcc-4.9.3-newlib-2.2.0.20150423-x86_64-w64-mingw32-1
Build Set: Time 0:29:19.809228
Build Set: Time 3:47:43.385503
Traceback (most recent call last):
  File "../source-builder/sb-set-builder", line 29, in <module>
    setbuilder.run()
  File "../source-builder/sb/setbuilder.py", line 502, in run
    b.build(deps)
  File "../source-builder/sb/setbuilder.py", line 340, in build
    bs.build(deps, nesting_count)
  File "../source-builder/sb/setbuilder.py", line 354, in build
    self.build_package(configs[s], b)
  File "../source-builder/sb/setbuilder.py", line 194, in build_package
    _build.config.expand('%{_tmproot}'))
  File "../source-builder/sb/setbuilder.py", line 155, in root_copy
    self.copy(src, dst)
  File "../source-builder/sb/setbuilder.py", line 95, in copy
    path.copy_tree(src, dst)
  File "../source-builder/sb/path.py", line 232, in copy_tree
    copy_tree(srcname, dstname)
  File "../source-builder/sb/path.py", line 232, in copy_tree
    copy_tree(srcname, dstname)
  File "../source-builder/sb/path.py", line 232, in copy_tree
    copy_tree(srcname, dstname)
  File "../source-builder/sb/path.py", line 232, in copy_tree
    copy_tree(srcname, dstname)
  File "../source-builder/sb/path.py", line 232, in copy_tree
    copy_tree(srcname, dstname)
  File "../source-builder/sb/path.py", line 232, in copy_tree
    copy_tree(srcname, dstname)
  File "../source-builder/sb/path.py", line 232, in copy_tree
    copy_tree(srcname, dstname)
  File "../source-builder/sb/path.py", line 232, in copy_tree
    copy_tree(srcname, dstname)
  File "../source-builder/sb/path.py", line 232, in copy_tree
    copy_tree(srcname, dstname)
  File "../source-builder/sb/path.py", line 232, in copy_tree
    copy_tree(srcname, dstname)
  File "../source-builder/sb/path.py", line 232, in copy_tree
    copy_tree(srcname, dstname)
  File "../source-builder/sb/path.py", line 232, in copy_tree
    copy_tree(srcname, dstname)
  File "../source-builder/sb/path.py", line 232, in copy_tree
    copy_tree(srcname, dstname)
  File "../source-builder/sb/path.py", line 232, in copy_tree
    copy_tree(srcname, dstname)
  File "../source-builder/sb/path.py", line 232, in copy_tree
    copy_tree(srcname, dstname)
  File "../source-builder/sb/path.py", line 191, in copy_tree
    names = os.listdir(hsrc)
TypeError: encoded string too long (269, maximum length 259)
#2994 2 years ago fixed unspecified Joel Sherrill Chris Johns 19 months ago
Summary

tar01 XZ error

Description

This shows up on erc32 and psim.

/dest3/home/test_script: mode: 0755 want: 0755

========= /dest3/symlink ========= (0)This is a test of loading an RTEMS filesystem from an initial tar image.

Untaring chunks from txz - XZ file is corrupt (data) ../../../../../../../rtems/c/src/../../testsuites/libtests/tar01/init.c: 272 status == UNTAR_SUCCESSFUL

#2997 2 years ago fixed score Chris Johns Chris Johns 19 months ago
Summary

Monitor config command does not handle unlimited objects.

Description

Running the console's config command with unlimited objects gives:

[/] # config
INITIAL (startup) Configuration Info
------------------------------------------------------------------------------
WORKSPACE      start: 0x800f0173;  size: 0x374c8
TIME           usec/tick: 10000;  tick/timeslice: 50;  tick/sec: 100
MAXIMUMS       tasks: -2147483614;  timers: -2147483616;  sems: -2147483609;  que's: -2147483616;  ext's: 1
               partitions: -2147483616;  regions: -2147483616;  ports: -2147483616;  periods: -2147483616
#2999 2 years ago wontfix tool/rsb Joel Sherrill Chris Johns 19 months ago
Summary

sb-check on Cygwin

Description

It looks like there are two issues in windows.py

  • Probes for programs like bison and flex as required.
  • tar - bsdtar must be on mingw. It doesn't appear to exist on cygwin.

I think the fix is pretty simple code-wise but I wanted to get some feedback on why there were a lot more required programs in this file than on other OS.py files.

#3012 2 years ago fixed tool/newlib Sebastian Huber Chris Johns 19 months ago
Summary

Global C++ IO streams are broken (cout, cin, cerr)

Description

The global C++ IO stream objects are initialized here

https://gcc.gnu.org/viewcvs/gcc/trunk/libstdc%2B%2B-v3/src/c%2B%2B98/ios_init.cc?view=markup#l85

via a placement new. The "stdout" etc. is thread-local in Newlib

#define    stdout  (_REENT->_stdout)

Using this for a global object like std::cout is quite broken. Which FILE object should be used instead? Potential fix:

diff --git a/libstdc++-v3/src/c++98/ios_init.cc b/libstdc++-v3/src/c++98/ios_init.cc
index c5bcc83..7470c44 100644
--- a/libstdc++-v3/src/c++98/ios_init.cc
+++ b/libstdc++-v3/src/c++98/ios_init.cc
@@ -33,6 +33,15 @@
 #include <ext/stdio_filebuf.h>
 #include <ext/stdio_sync_filebuf.h>
 
+#ifdef __rtems__
+#undef stdout
+#undef stdin
+#undef stderr
+#define stdout (_GLOBAL_REENT->_stdout)
+#define stdin (_GLOBAL_REENT->_stdout)
+#define stderr (_GLOBAL_REENT->_stdout)
+#endif
+
 namespace __gnu_internal _GLIBCXX_VISIBILITY(hidden)
 {
   using namespace __gnu_cxx;
diff --git a/newlib/libc/stdio/findfp.c b/newlib/libc/stdio/findfp.c
index 83d3dc5..7d50951 100644
--- a/newlib/libc/stdio/findfp.c
+++ b/newlib/libc/stdio/findfp.c
@@ -259,6 +259,12 @@ _DEFUN(__sinit, (s),
   __sinit_lock_release ();
 }
 
+static void __attribute__((__constructor__(0)))
+_global_reent_init(void)
+{
+  __sinit (_GLOBAL_REENT);
+}
+
 #ifndef __SINGLE_THREAD__
 
 __LOCK_INIT_RECURSIVE(static, __sfp_recursive_mutex);
#3018 2 years ago fixed tool/rsb phongvanpham Chris Johns 19 months ago
Summary

RSB cannot compile tool chain in CentOS 7.

Description

In CentOS 6.8, everything works fine. But in CentOS 7, it does not. Initial investigation (I did a while back around New Year time) looks like later version of texinfo has an issue with autoconf. Enclosed is the email Chris Johns replied but I didn't follow through since I switched to CentOS 6.8 for my work.

"Looks to me like the RSB is trying to download autoconf 2.69-1 and from https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=711297

Looks like this autoconf version has a bug. I also noticed my autoconf version is 2.69-11; however, from what I am reading, RSB will download its own version independent of what user has."

Chris John replies:

"I guess a recent texinfo version has exposed the issue. I suggest you get the patch from the link in the bug report, create a patch for rtems-tools.git to add the autoconf patch, then create a patch to the RSB adding the patch to the autoconf build, finally 'git send-email' the patches to devel@… for review."

#3027 2 years ago fixed tool/rsb Worth Burruss Chris Johns 14 months ago
Summary

RTEMS source builder fails when building gcc documentation with newer versions of gcc

Description

Originally discovered with MSYS2 on windows. Building the gcc compiler fails for older versions of gcc (ie 4.8.3) when building bfin and m32c architectures. The gcc maintainers recommend the use of MISSING=texinfo switch during configuration. A possible solution is attached.

#3046 2 years ago fixed tool/rsb Chris Johns Chris Johns 19 months ago
Summary

4.12/rtems-moxie missing release number.

Description

4.12/rtems-moxie is reporting

cleaning: dtc-1.4.1-x86_64-freebsd11.0-1
cleaning: expat-2.1.0-x86_64-freebsd11.0-1
cleaning: moxie-rtems4.12-binutils-2.28-x86_64-freebsd11.0-
cleaning: moxie-rtems4.12-gcc-7.1.0-newlib-2.5.0.20170519-x86_64-freebsd11.0-
cleaning: moxie-rtems4.12-gdb-7.12-x86_64-freebsd11.0-
cleaning: rtems-tools-HEAD-

There is no -1 or whatever at the end of the lines.

#3047 2 years ago fixed tool/rsb Chris Johns Chris Johns 19 months ago
Summary

Remove docs directory from the RSB

Description

The documentation has been moved to rtems-docs.git repo. Remove the docs directory and asciidocs from RTEMS.

#3049 2 years ago fixed unspecified Joel Sherrill Chris Johns 7 months ago
Summary

Warnings in libdebugger

Description

I started fixing the warnings in libdebugger with the latest tools but apparently some of the variables can't be changed to const char *const. So filing as a ticket so Chris can fix them more accurately.

67 ../../../../../../rtems/c/src/../../cpukit/libdebugger/rtems-debugger-server.c:957:25: warning: comparison between pointer and zero character constant [-Wpointer-compare]

67 ../../../../../../rtems/c/src/../../cpukit/libdebugger/rtems-debugger-server.c:61:19: warning: duplicate 'const' declaration specifier [-Wduplicate-decl-specifier] 67 ../../../../../../rtems/c/src/../../cpukit/libdebugger/rtems-debugger-server.c:60:19: warning: duplicate 'const' declaration specifier [-Wduplicate-decl-specifier] 67 ../../../../../../rtems/c/src/../../cpukit/libdebugger/rtems-debugger-server.c:53:14: warning: duplicate 'const' declaration specifier [-Wduplicate-decl-specifier] 67 ../../../../../../rtems/c/src/../../cpukit/libdebugger/rtems-debugger-server.c:1490:14: warning: duplicate 'const' declaration specifier [-Wduplicate-decl-specifier] 67 ../../../../../../rtems/c/src/../../cpukit/libdebugger/rtems-debugger-server.c:1426:14: warning: duplicate 'const' declaration specifier [-Wduplicate-decl-specifier] 67 ../../../../../../rtems/c/src/../../cpukit/libdebugger/rtems-debugger-server.c:1302:14: warning: duplicate 'const' declaration specifier [-Wduplicate-decl-specifier] 67 ../../../../../../rtems/c/src/../../cpukit/libdebugger/rtems-debugger-server.c:1260:14: warning: duplicate 'const' declaration specifier [-Wduplicate-decl-specifier] 67 ../../../../../../rtems/c/src/../../cpukit/libdebugger/rtems-debugger-server.c:1064:14: warning: duplicate 'const' declaration specifier [-Wduplicate-decl-specifier] 67 ../../../../../../rtems/c/src/../../cpukit/libdebugger/rtems-debugger-server.c:1025:14: warning: duplicate 'const' declaration specifier [-Wduplicate-decl-specifier] 60 ../../../../../../rtems/c/src/../../cpukit/libdebugger/rtems-debugger-arm.c:302:14: warning: duplicate 'const' declaration specifier [-Wduplicate-decl-specifier] 60 ../../../../../../rtems/c/src/../../cpukit/libdebugger/rtems-debugger-arm.c:301:14: warning: duplicate 'const' declaration specifier [-Wduplicate-decl-specifier]

#3052 2 years ago fixed tool/rsb Sebastian Huber Chris Johns 19 months ago
Summary

RSB: powerpc GDB build broken on Apple Darwin

Description
RTEMS Tools Project - Source Builder Error Report
 Build: error: building powerpc-rtems4.12-gdb-7.12-x86_64-apple-darwin14.5.0-1
 Command Line: ../source-builder/sb-set-builder --prefix=~/rtems/4.12 4.12/rtems-powerpc
 Python: 2.7.10 (default, Jul 14 2015, 19:46:27) [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)]
 git://git.rtems.org/rtems-source-builder.git/origin/cb3fac1ea71f50b1bf7dcfe032c639392915d32a-modified
 Darwin yrael.lan 14.5.0 Darwin Kernel Version 14.5.0: Sun Sep 25 22:07:15 PDT 2016; root:xnu-2782.50.9~1/RELEASE_X86_64 x86_64
Tail of the build log:
                                                                          ^
../../gdb-7.12/gdb/common/vec.h:711:18: note: expanded from macro '\
DEF_VEC_FUNC_P'
static inline T *VEC_OP (T,address)                                       \
                 ^
../../gdb-7.12/gdb/common/vec.h:399:22: note: expanded from macro 'VEC_OP'
#define VEC_OP(T,OP) VEC_##T##_##OP
                     ^
<scratch space>:151:1: note: expanded from here
VEC_tp_t_address
^
../../gdb-7.12/gdb/record-btrace.c:2445:1: warning: unused function 'VEC_tp_t_lower_bound' [-Wunused-function]
../../gdb-7.12/gdb/common/vec.h:428:20: note: expanded from macro 'DEF_VEC_P'
VEC_T(T);                                                                 \
                                                                          ^
../../gdb-7.12/gdb/common/vec.h:717:24: note: expanded from macro '\
DEF_VEC_FUNC_P'
static inline unsigned VEC_OP (T,lower_bound)                             \
                       ^
../../gdb-7.12/gdb/common/vec.h:399:22: note: expanded from macro 'VEC_OP'
#define VEC_OP(T,OP) VEC_##T##_##OP
                     ^
<scratch space>:155:1: note: expanded from here
VEC_tp_t_lower_bound
^
../../gdb-7.12/gdb/record-btrace.c:2445:1: warning: unused function 'VEC_tp_t_alloc' [-Wunused-function]
../../gdb-7.12/gdb/common/vec.h:429:27: note: expanded from macro 'DEF_VEC_P'
DEF_VEC_FUNC_P(T)                                                         \
                                                                          ^
../../gdb-7.12/gdb/common/vec.h:744:23: note: expanded from macro '\
DEF_VEC_ALLOC_FUNC_P'
static inline VEC(T) *VEC_OP (T,alloc)                                    \
                      ^
../../gdb-7.12/gdb/common/vec.h:399:22: note: expanded from macro 'VEC_OP'
#define VEC_OP(T,OP) VEC_##T##_##OP
                     ^
<scratch space>:166:1: note: expanded from here
VEC_tp_t_alloc
^
../../gdb-7.12/gdb/record-btrace.c:2445:1: warning: unused function 'VEC_tp_t_free' [-Wunused-function]
../../gdb-7.12/gdb/common/vec.h:429:27: note: expanded from macro 'DEF_VEC_P'
DEF_VEC_FUNC_P(T)                                                         \
                                                                          ^
../../gdb-7.12/gdb/common/vec.h:751:20: note: expanded from macro '\
DEF_VEC_ALLOC_FUNC_P'
static inline void VEC_OP (T,free)                                        \
                   ^
../../gdb-7.12/gdb/common/vec.h:399:22: note: expanded from macro 'VEC_OP'
#define VEC_OP(T,OP) VEC_##T##_##OP
                     ^
<scratch space>:170:1: note: expanded from here
VEC_tp_t_free
^
../../gdb-7.12/gdb/record-btrace.c:2445:1: warning: unused function 'VEC_tp_t_merge' [-Wunused-function]
../../gdb-7.12/gdb/common/vec.h:429:27: note: expanded from macro 'DEF_VEC_P'
DEF_VEC_FUNC_P(T)                                                         \
                                                                          ^
../../gdb-7.12/gdb/common/vec.h:784:23: note: expanded from macro '\
DEF_VEC_ALLOC_FUNC_P'
static inline VEC(T) *VEC_OP (T,merge) (VEC(T) *vec1_, VEC(T) *vec2_)     \
                      ^
../../gdb-7.12/gdb/common/vec.h:399:22: note: expanded from macro 'VEC_OP'
#define VEC_OP(T,OP) VEC_##T##_##OP
                     ^
<scratch space>:187:1: note: expanded from here
VEC_tp_t_merge
^
../../gdb-7.12/gdb/record-btrace.c:2445:1: warning: unused function 'VEC_tp_t_safe_grow' [-Wunused-function]
../../gdb-7.12/gdb/common/vec.h:429:27: note: expanded from macro 'DEF_VEC_P'
DEF_VEC_FUNC_P(T)                                                         \
                                                                          ^
../../gdb-7.12/gdb/common/vec.h:817:20: note: expanded from macro '\
DEF_VEC_ALLOC_FUNC_P'
static inline void VEC_OP (T,safe_grow)                                   \
                   ^
../../gdb-7.12/gdb/common/vec.h:399:22: note: expanded from macro 'VEC_OP'
#define VEC_OP(T,OP) VEC_##T##_##OP
                     ^
<scratch space>:205:1: note: expanded from here
VEC_tp_t_safe_grow
^
../../gdb-7.12/gdb/record-btrace.c:2445:1: warning: unused function 'VEC_tp_t_safe_insert' [-Wunused-function]
../../gdb-7.12/gdb/common/vec.h:429:27: note: expanded from macro 'DEF_VEC_P'
DEF_VEC_FUNC_P(T)                                                         \
                                                                          ^
../../gdb-7.12/gdb/common/vec.h:835:18: note: expanded from macro '\
DEF_VEC_ALLOC_FUNC_P'
static inline T *VEC_OP (T,safe_insert)                                   \
                 ^
../../gdb-7.12/gdb/common/vec.h:399:22: note: expanded from macro 'VEC_OP'
#define VEC_OP(T,OP) VEC_##T##_##OP
                     ^
<scratch space>:225:1: note: expanded from here
VEC_tp_t_safe_insert
^
2 warnings generated.
/usr/bin/c++ -O2 -pipe -fbracket-depth=1024 -I/rtems-source-builder/rtems/build/tmp/sb-peer/4.12/rtems-powerpc/rtems-source-builder/rtems/~/rtems/4.12/include -g -O2   -I. -I../../gdb-7.12/gdb -I../../gdb-7.12/gdb/common -I../../gdb-7.12/gdb/config -DLOCALEDIR="\"/rtems-source-builder/rtems/~/rtems/4.12/share/locale\"" -DHAVE_CONFIG_H -I../../gdb-7.12/gdb/../include/opcode -I../../gdb-7.12/gdb/../opcodes/.. -I../../gdb-7.12/gdb/../readline/.. -I../../gdb-7.12/gdb/../zlib -I../bfd -I../../gdb-7.12/gdb/../bfd -I../../gdb-7.12/gdb/../include -I../libdecnumber -I../../gdb-7.12/gdb/../libdecnumber  -I../../gdb-7.12/gdb/gnulib/import -Ibuild-gnulib/import   -DTUI=1  -I/rtems-source-builder/rtems/build/tmp/sb-peer/4.12/rtems-powerpc/rtems-source-builder/rtems/~/rtems/4.12/include  -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -Wall -Wpointer-arith -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wempty-body -Wunused-but-set-parameter -Wunused-but-set-variable -Wno-sign-compare -Wno-write-strings -Wno-narrowing -Wformat-nonliteral  -c -o debug.o -MT debug.o -MMD -MP -MF .deps/debug.Tpo ../../gdb-7.12/gdb/debug.c
/usr/bin/c++ -O2 -pipe -fbracket-depth=1024 -I/rtems-source-builder/rtems/build/tmp/sb-peer/4.12/rtems-powerpc/rtems-source-builder/rtems/~/rtems/4.12/include -g -O2   -I. -I../../gdb-7.12/gdb -I../../gdb-7.12/gdb/common -I../../gdb-7.12/gdb/config -DLOCALEDIR="\"/rtems-source-builder/rtems/~/rtems/4.12/share/locale\"" -DHAVE_CONFIG_H -I../../gdb-7.12/gdb/../include/opcode -I../../gdb-7.12/gdb/../opcodes/.. -I../../gdb-7.12/gdb/../readline/.. -I../../gdb-7.12/gdb/../zlib -I../bfd -I../../gdb-7.12/gdb/../bfd -I../../gdb-7.12/gdb/../include -I../libdecnumber -I../../gdb-7.12/gdb/../libdecnumber  -I../../gdb-7.12/gdb/gnulib/import -Ibuild-gnulib/import   -DTUI=1  -I/rtems-source-builder/rtems/build/tmp/sb-peer/4.12/rtems-powerpc/rtems-source-builder/rtems/~/rtems/4.12/include  -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -Wall -Wpointer-arith -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wempty-body -Wunused-but-set-parameter -Wunused-but-set-variable -Wno-sign-compare -Wno-write-strings -Wno-narrowing -Wformat-nonliteral  -c -o common-exceptions.o -MT common-exceptions.o -MMD -MP -MF .deps/common-exceptions.Tpo ../../gdb-7.12/gdb/common/common-exceptions.c
/usr/bin/c++ -O2 -pipe -fbracket-depth=1024 -I/rtems-source-builder/rtems/build/tmp/sb-peer/4.12/rtems-powerpc/rtems-source-builder/rtems/~/rtems/4.12/include -g -O2   -I. -I../../gdb-7.12/gdb -I../../gdb-7.12/gdb/common -I../../gdb-7.12/gdb/config -DLOCALEDIR="\"/rtems-source-builder/rtems/~/rtems/4.12/share/locale\"" -DHAVE_CONFIG_H -I../../gdb-7.12/gdb/../include/opcode -I../../gdb-7.12/gdb/../opcodes/.. -I../../gdb-7.12/gdb/../readline/.. -I../../gdb-7.12/gdb/../zlib -I../bfd -I../../gdb-7.12/gdb/../bfd -I../../gdb-7.12/gdb/../include -I../libdecnumber -I../../gdb-7.12/gdb/../libdecnumber  -I../../gdb-7.12/gdb/gnulib/import -Ibuild-gnulib/import   -DTUI=1  -I/rtems-source-builder/rtems/build/tmp/sb-peer/4.12/rtems-powerpc/rtems-source-builder/rtems/~/rtems/4.12/include  -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -Wall -Wpointer-arith -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wempty-body -Wunused-but-set-parameter -Wunused-but-set-variable -Wno-sign-compare -Wno-write-strings -Wno-narrowing -Wformat-nonliteral  -c -o btrace-common.o -MT btrace-common.o -MMD -MP -MF .deps/btrace-common.Tpo ../../gdb-7.12/gdb/common/btrace-common.c
/usr/bin/c++ -O2 -pipe -fbracket-depth=1024 -I/rtems-source-builder/rtems/build/tmp/sb-peer/4.12/rtems-powerpc/rtems-source-builder/rtems/~/rtems/4.12/include -g -O2   -I. -I../../gdb-7.12/gdb -I../../gdb-7.12/gdb/common -I../../gdb-7.12/gdb/config -DLOCALEDIR="\"/rtems-source-builder/rtems/~/rtems/4.12/share/locale\"" -DHAVE_CONFIG_H -I../../gdb-7.12/gdb/../include/opcode -I../../gdb-7.12/gdb/../opcodes/.. -I../../gdb-7.12/gdb/../readline/.. -I../../gdb-7.12/gdb/../zlib -I../bfd -I../../gdb-7.12/gdb/../bfd -I../../gdb-7.12/gdb/../include -I../libdecnumber -I../../gdb-7.12/gdb/../libdecnumber  -I../../gdb-7.12/gdb/gnulib/import -Ibuild-gnulib/import   -DTUI=1  -I/rtems-source-builder/rtems/build/tmp/sb-peer/4.12/rtems-powerpc/rtems-source-builder/rtems/~/rtems/4.12/include  -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -Wall -Wpointer-arith -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wempty-body -Wunused-but-set-parameter -Wunused-but-set-variable -Wno-sign-compare -Wno-write-strings -Wno-narrowing -Wformat-nonliteral  -c -o fileio.o -MT fileio.o -MMD -MP -MF .deps/fileio.Tpo ../../gdb-7.12/gdb/common/fileio.c
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
warning: unknown warning option '-Wunused-but-set-parameter'; did you mean '-Wunused-parameter'? [-Wunknown-warning-option]
warning: unknown warning option '-Wunused-but-set-variable'; did you mean '-Wunused-const-variable'? [-Wunknown-warning-option]
warning: unknown warning option '-Wunused-but-set-parameter'; did you mean '-Wunused-parameter'? [-Wunknown-warning-option]
warning: unknown warning option '-Wunused-but-set-variable'; did you mean '-Wunused-const-variable'? [-Wunknown-warning-option]
2 warnings generated.
warning: unknown warning option '-Wunused-but-set-parameter'; did you mean '-Wunused-parameter'? [-Wunknown-warning-option]
warning: unknown warning option '-Wunused-but-set-parameter'; did you mean '-Wunused-parameter'? [-Wunknown-warning-option]
warning: unknown warning option '-Wunused-but-set-variable'; did you mean '-Wunused-const-variable'? [-Wunknown-warning-option]
warning: unknown warning option '-Wunused-but-set-variable'; did you mean '-Wunused-const-variable'? [-Wunknown-warning-option]
/usr/bin/c++ -O2 -pipe -fbracket-depth=1024 -I/rtems-source-builder/rtems/build/tmp/sb-peer/4.12/rtems-powerpc/rtems-source-builder/rtems/~/rtems/4.12/include -g -O2   -I. -I../../gdb-7.12/gdb -I../../gdb-7.12/gdb/common -I../../gdb-7.12/gdb/config -DLOCALEDIR="\"/rtems-source-builder/rtems/~/rtems/4.12/share/locale\"" -DHAVE_CONFIG_H -I../../gdb-7.12/gdb/../include/opcode -I../../gdb-7.12/gdb/../opcodes/.. -I../../gdb-7.12/gdb/../readline/.. -I../../gdb-7.12/gdb/../zlib -I../bfd -I../../gdb-7.12/gdb/../bfd -I../../gdb-7.12/gdb/../include -I../libdecnumber -I../../gdb-7.12/gdb/../libdecnumber  -I../../gdb-7.12/gdb/gnulib/import -Ibuild-gnulib/import   -DTUI=1  -I/rtems-source-builder/rtems/build/tmp/sb-peer/4.12/rtems-powerpc/rtems-source-builder/rtems/~/rtems/4.12/include  -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -Wall -Wpointer-arith -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wempty-body -Wunused-but-set-parameter -Wunused-but-set-variable -Wno-sign-compare -Wno-write-strings -Wno-narrowing -Wformat-nonliteral  -c -o common-regcache.o -MT common-regcache.o -MMD -MP -MF .deps/common-regcache.Tpo ../../gdb-7.12/gdb/common/common-regcache.c
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
warning: unknown warning option '-Wunused-but-set-parameter'; did you mean '-Wunused-parameter'? [-Wunknown-warning-option]
warning: unknown warning option '-Wunused-but-set-variable'; did you mean '-Wunused-const-variable'? [-Wunknown-warning-option]
2 warnings generated.
2 warnings generated.
2 warnings generated.
/usr/bin/c++ -O2 -pipe -fbracket-depth=1024 -I/rtems-source-builder/rtems/build/tmp/sb-peer/4.12/rtems-powerpc/rtems-source-builder/rtems/~/rtems/4.12/include -g -O2   -I. -I../../gdb-7.12/gdb -I../../gdb-7.12/gdb/common -I../../gdb-7.12/gdb/config -DLOCALEDIR="\"/rtems-source-builder/rtems/~/rtems/4.12/share/locale\"" -DHAVE_CONFIG_H -I../../gdb-7.12/gdb/../include/opcode -I../../gdb-7.12/gdb/../opcodes/.. -I../../gdb-7.12/gdb/../readline/.. -I../../gdb-7.12/gdb/../zlib -I../bfd -I../../gdb-7.12/gdb/../bfd -I../../gdb-7.12/gdb/../include -I../libdecnumber -I../../gdb-7.12/gdb/../libdecnumber  -I../../gdb-7.12/gdb/gnulib/import -Ibuild-gnulib/import   -DTUI=1  -I/rtems-source-builder/rtems/build/tmp/sb-peer/4.12/rtems-powerpc/rtems-source-builder/rtems/~/rtems/4.12/include  -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -Wall -Wpointer-arith -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wempty-body -Wunused-but-set-parameter -Wunused-but-set-variable -Wno-sign-compare -Wno-write-strings -Wno-narrowing -Wformat-nonliteral  -c -o compile.o -MT compile.o -MMD -MP -MF .deps/compile.Tpo ../../gdb-7.12/gdb/compile/compile.c
/usr/bin/c++ -O2 -pipe -fbracket-depth=1024 -I/rtems-source-builder/rtems/build/tmp/sb-peer/4.12/rtems-powerpc/rtems-source-builder/rtems/~/rtems/4.12/include -g -O2   -I. -I../../gdb-7.12/gdb -I../../gdb-7.12/gdb/common -I../../gdb-7.12/gdb/config -DLOCALEDIR="\"/rtems-source-builder/rtems/~/rtems/4.12/share/locale\"" -DHAVE_CONFIG_H -I../../gdb-7.12/gdb/../include/opcode -I../../gdb-7.12/gdb/../opcodes/.. -I../../gdb-7.12/gdb/../readline/.. -I../../gdb-7.12/gdb/../zlib -I../bfd -I../../gdb-7.12/gdb/../bfd -I../../gdb-7.12/gdb/../include -I../libdecnumber -I../../gdb-7.12/gdb/../libdecnumber  -I../../gdb-7.12/gdb/gnulib/import -Ibuild-gnulib/import   -DTUI=1  -I/rtems-source-builder/rtems/build/tmp/sb-peer/4.12/rtems-powerpc/rtems-source-builder/rtems/~/rtems/4.12/include  -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -Wall -Wpointer-arith -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wempty-body -Wunused-but-set-parameter -Wunused-but-set-variable -Wno-sign-compare -Wno-write-strings -Wno-narrowing -Wformat-nonliteral  -c -o compile-c-symbols.o -MT compile-c-symbols.o -MMD -MP -MF .deps/compile-c-symbols.Tpo ../../gdb-7.12/gdb/compile/compile-c-symbols.c
/usr/bin/c++ -O2 -pipe -fbracket-depth=1024 -I/rtems-source-builder/rtems/build/tmp/sb-peer/4.12/rtems-powerpc/rtems-source-builder/rtems/~/rtems/4.12/include -g -O2   -I. -I../../gdb-7.12/gdb -I../../gdb-7.12/gdb/common -I../../gdb-7.12/gdb/config -DLOCALEDIR="\"/rtems-source-builder/rtems/~/rtems/4.12/share/locale\"" -DHAVE_CONFIG_H -I../../gdb-7.12/gdb/../include/opcode -I../../gdb-7.12/gdb/../opcodes/.. -I../../gdb-7.12/gdb/../readline/.. -I../../gdb-7.12/gdb/../zlib -I../bfd -I../../gdb-7.12/gdb/../bfd -I../../gdb-7.12/gdb/../include -I../libdecnumber -I../../gdb-7.12/gdb/../libdecnumber  -I../../gdb-7.12/gdb/gnulib/import -Ibuild-gnulib/import   -DTUI=1  -I/rtems-source-builder/rtems/build/tmp/sb-peer/4.12/rtems-powerpc/rtems-source-builder/rtems/~/rtems/4.12/include  -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -Wall -Wpointer-arith -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wempty-body -Wunused-but-set-parameter -Wunused-but-set-variable -Wno-sign-compare -Wno-write-strings -Wno-narrowing -Wformat-nonliteral  -c -o compile-c-types.o -MT compile-c-types.o -MMD -MP -MF .deps/compile-c-types.Tpo ../../gdb-7.12/gdb/compile/compile-c-types.c
2 warnings generated.
2 warnings generated.
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
warning: unknown warning option '-Wunused-but-set-parameter'; did you mean '-Wunused-parameter'? [-Wunknown-warning-option]
warning: unknown warning option '-Wunused-but-set-parameter'; did you mean '-Wunused-parameter'? [-Wunknown-warning-option]
warning: unknown warning option '-Wunused-but-set-variable'; did you mean '-Wunused-const-variable'? [-Wunknown-warning-option]
warning: unknown warning option '-Wunused-but-set-parameter'; did you mean '-Wunused-parameter'? [-Wunknown-warning-option]
warning: unknown warning option '-Wunused-but-set-variable'; did you mean '-Wunused-const-variable'? [-Wunknown-warning-option]
warning: unknown warning option '-Wunused-but-set-variable'; did you mean '-Wunused-const-variable'? [-Wunknown-warning-option]
/usr/bin/c++ -O2 -pipe -fbracket-depth=1024 -I/rtems-source-builder/rtems/build/tmp/sb-peer/4.12/rtems-powerpc/rtems-source-builder/rtems/~/rtems/4.12/include -g -O2   -I. -I../../gdb-7.12/gdb -I../../gdb-7.12/gdb/common -I../../gdb-7.12/gdb/config -DLOCALEDIR="\"/rtems-source-builder/rtems/~/rtems/4.12/share/locale\"" -DHAVE_CONFIG_H -I../../gdb-7.12/gdb/../include/opcode -I../../gdb-7.12/gdb/../opcodes/.. -I../../gdb-7.12/gdb/../readline/.. -I../../gdb-7.12/gdb/../zlib -I../bfd -I../../gdb-7.12/gdb/../bfd -I../../gdb-7.12/gdb/../include -I../libdecnumber -I../../gdb-7.12/gdb/../libdecnumber  -I../../gdb-7.12/gdb/gnulib/import -Ibuild-gnulib/import   -DTUI=1  -I/rtems-source-builder/rtems/build/tmp/sb-peer/4.12/rtems-powerpc/rtems-source-builder/rtems/~/rtems/4.12/include  -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -Wall -Wpointer-arith -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wempty-body -Wunused-but-set-parameter -Wunused-but-set-variable -Wno-sign-compare -Wno-write-strings -Wno-narrowing -Wformat-nonliteral  -c -o compile-object-load.o -MT compile-object-load.o -MMD -MP -MF .deps/compile-object-load.Tpo ../../gdb-7.12/gdb/compile/compile-object-load.c
/usr/bin/c++ -O2 -pipe -fbracket-depth=1024 -I/rtems-source-builder/rtems/build/tmp/sb-peer/4.12/rtems-powerpc/rtems-source-builder/rtems/~/rtems/4.12/include -g -O2   -I. -I../../gdb-7.12/gdb -I../../gdb-7.12/gdb/common -I../../gdb-7.12/gdb/config -DLOCALEDIR="\"/rtems-source-builder/rtems/~/rtems/4.12/share/locale\"" -DHAVE_CONFIG_H -I../../gdb-7.12/gdb/../include/opcode -I../../gdb-7.12/gdb/../opcodes/.. -I../../gdb-7.12/gdb/../readline/.. -I../../gdb-7.12/gdb/../zlib -I../bfd -I../../gdb-7.12/gdb/../bfd -I../../gdb-7.12/gdb/../include -I../libdecnumber -I../../gdb-7.12/gdb/../libdecnumber  -I../../gdb-7.12/gdb/gnulib/import -Ibuild-gnulib/import   -DTUI=1  -I/rtems-source-builder/rtems/build/tmp/sb-peer/4.12/rtems-powerpc/rtems-source-builder/rtems/~/rtems/4.12/include  -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -Wall -Wpointer-arith -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wempty-body -Wunused-but-set-parameter -Wunused-but-set-variable -Wno-sign-compare -Wno-write-strings -Wno-narrowing -Wformat-nonliteral  -c -o compile-object-run.o -MT compile-object-run.o -MMD -MP -MF .deps/compile-object-run.Tpo ../../gdb-7.12/gdb/compile/compile-object-run.c
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
warning: unknown warning option '-Wunused-but-set-parameter'; did you mean '-Wunused-parameter'? [-Wunknown-warning-option]
warning: unknown warning option '-Wunused-but-set-variable'; did you mean '-Wunused-const-variable'? [-Wunknown-warning-option]
warning: unknown warning option '-Wunused-but-set-parameter'; did you mean '-Wunused-parameter'? [-Wunknown-warning-option]
warning: unknown warning option '-Wunused-but-set-variable'; did you mean '-Wunused-const-variable'? [-Wunknown-warning-option]
2 warnings generated.
/usr/bin/c++ -O2 -pipe -fbracket-depth=1024 -I/rtems-source-builder/rtems/build/tmp/sb-peer/4.12/rtems-powerpc/rtems-source-builder/rtems/~/rtems/4.12/include -g -O2   -I. -I../../gdb-7.12/gdb -I../../gdb-7.12/gdb/common -I../../gdb-7.12/gdb/config -DLOCALEDIR="\"/rtems-source-builder/rtems/~/rtems/4.12/share/locale\"" -DHAVE_CONFIG_H -I../../gdb-7.12/gdb/../include/opcode -I../../gdb-7.12/gdb/../opcodes/.. -I../../gdb-7.12/gdb/../readline/.. -I../../gdb-7.12/gdb/../zlib -I../bfd -I../../gdb-7.12/gdb/../bfd -I../../gdb-7.12/gdb/../include -I../libdecnumber -I../../gdb-7.12/gdb/../libdecnumber  -I../../gdb-7.12/gdb/gnulib/import -Ibuild-gnulib/import   -DTUI=1  -I/rtems-source-builder/rtems/build/tmp/sb-peer/4.12/rtems-powerpc/rtems-source-builder/rtems/~/rtems/4.12/include  -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -Wall -Wpointer-arith -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wempty-body -Wunused-but-set-parameter -Wunused-but-set-variable -Wno-sign-compare -Wno-write-strings -Wno-narrowing -Wformat-nonliteral  -c -o compile-loc2c.o -MT compile-loc2c.o -MMD -MP -MF .deps/compile-loc2c.Tpo ../../gdb-7.12/gdb/compile/compile-loc2c.c
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
warning: unknown warning option '-Wunused-but-set-parameter'; did you mean '-Wunused-parameter'? [-Wunknown-warning-option]
warning: unknown warning option '-Wunused-but-set-variable'; did you mean '-Wunused-const-variable'? [-Wunknown-warning-option]
2 warnings generated.
/usr/bin/c++ -O2 -pipe -fbracket-depth=1024 -I/rtems-source-builder/rtems/build/tmp/sb-peer/4.12/rtems-powerpc/rtems-source-builder/rtems/~/rtems/4.12/include -g -O2   -I. -I../../gdb-7.12/gdb -I../../gdb-7.12/gdb/common -I../../gdb-7.12/gdb/config -DLOCALEDIR="\"/rtems-source-builder/rtems/~/rtems/4.12/share/locale\"" -DHAVE_CONFIG_H -I../../gdb-7.12/gdb/../include/opcode -I../../gdb-7.12/gdb/../opcodes/.. -I../../gdb-7.12/gdb/../readline/.. -I../../gdb-7.12/gdb/../zlib -I../bfd -I../../gdb-7.12/gdb/../bfd -I../../gdb-7.12/gdb/../include -I../libdecnumber -I../../gdb-7.12/gdb/../libdecnumber  -I../../gdb-7.12/gdb/gnulib/import -Ibuild-gnulib/import   -DTUI=1  -I/rtems-source-builder/rtems/build/tmp/sb-peer/4.12/rtems-powerpc/rtems-source-builder/rtems/~/rtems/4.12/include  -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -Wall -Wpointer-arith -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wempty-body -Wunused-but-set-parameter -Wunused-but-set-variable -Wno-sign-compare -Wno-write-strings -Wno-narrowing -Wformat-nonliteral  -c -o compile-c-support.o -MT compile-c-support.o -MMD -MP -MF .deps/compile-c-support.Tpo ../../gdb-7.12/gdb/compile/compile-c-support.c
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
2 warnings generated.
warning: unknown warning option '-Wunused-but-set-parameter'; did you mean '-Wunused-parameter'? [-Wunknown-warning-option]
warning: unknown warning option '-Wunused-but-set-variable'; did you mean '-Wunused-const-variable'? [-Wunknown-warning-option]
/usr/bin/c++ -O2 -pipe -fbracket-depth=1024 -I/rtems-source-builder/rtems/build/tmp/sb-peer/4.12/rtems-powerpc/rtems-source-builder/rtems/~/rtems/4.12/include -g -O2   -I. -I../../gdb-7.12/gdb -I../../gdb-7.12/gdb/common -I../../gdb-7.12/gdb/config -DLOCALEDIR="\"/rtems-source-builder/rtems/~/rtems/4.12/share/locale\"" -DHAVE_CONFIG_H -I../../gdb-7.12/gdb/../include/opcode -I../../gdb-7.12/gdb/../opcodes/.. -I../../gdb-7.12/gdb/../readline/.. -I../../gdb-7.12/gdb/../zlib -I../bfd -I../../gdb-7.12/gdb/../bfd -I../../gdb-7.12/gdb/../include -I../libdecnumber -I../../gdb-7.12/gdb/../libdecnumber  -I../../gdb-7.12/gdb/gnulib/import -Ibuild-gnulib/import   -DTUI=1  -I/rtems-source-builder/rtems/build/tmp/sb-peer/4.12/rtems-powerpc/rtems-source-builder/rtems/~/rtems/4.12/include  -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -Wall -Wpointer-arith -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wempty-body -Wunused-but-set-parameter -Wunused-but-set-variable -Wno-sign-compare -Wno-write-strings -Wno-narrowing -Wformat-nonliteral  -c -o inflow.o -MT inflow.o -MMD -MP -MF .deps/inflow.Tpo ../../gdb-7.12/gdb/inflow.c
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
2 warnings generated.
../../gdb-7.12/gdb/compile/compile-loc2c.c:733:6: warning: variable 'uoffset' is uninitialized when used here [-Wuninitialized]
            uoffset += dwarf2_per_cu_text_offset (per_cu);
            ^~~~~~~
../../gdb-7.12/gdb/compile/compile-loc2c.c:671:23: note: initialize the variable 'uoffset' to silence this warning
      uint64_t uoffset, reg;
                      ^
                       = 0
warning: unknown warning option '-Wunused-but-set-parameter'; did you mean '-Wunused-parameter'? [-Wunknown-warning-option]
warning: unknown warning option '-Wunused-but-set-variable'; did you mean '-Wunused-const-variable'? [-Wunknown-warning-option]
2 warnings generated.
2 warnings generated.
17 warnings generated.
2 warnings generated.
3 warnings generated.
2 warnings generated.
99 warnings generated.
Making init.c
/usr/bin/c++ -O2 -pipe -fbracket-depth=1024 -I/rtems-source-builder/rtems/build/tmp/sb-peer/4.12/rtems-powerpc/rtems-source-builder/rtems/~/rtems/4.12/include -g -O2   -I. -I../../gdb-7.12/gdb -I../../gdb-7.12/gdb/common -I../../gdb-7.12/gdb/config -DLOCALEDIR="\"/rtems-source-builder/rtems/~/rtems/4.12/share/locale\"" -DHAVE_CONFIG_H -I../../gdb-7.12/gdb/../include/opcode -I../../gdb-7.12/gdb/../opcodes/.. -I../../gdb-7.12/gdb/../readline/.. -I../../gdb-7.12/gdb/../zlib -I../bfd -I../../gdb-7.12/gdb/../bfd -I../../gdb-7.12/gdb/../include -I../libdecnumber -I../../gdb-7.12/gdb/../libdecnumber  -I../../gdb-7.12/gdb/gnulib/import -Ibuild-gnulib/import   -DTUI=1  -I/rtems-source-builder/rtems/build/tmp/sb-peer/4.12/rtems-powerpc/rtems-source-builder/rtems/~/rtems/4.12/include  -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -Wall -Wpointer-arith -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wempty-body -Wunused-but-set-parameter -Wunused-but-set-variable -Wno-sign-compare -Wno-write-strings -Wno-narrowing -Wformat-nonliteral  -c -o init.o -MT init.o -MMD -MP -MF .deps/init.Tpo init.c
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
warning: unknown warning option '-Wunused-but-set-parameter'; did you mean '-Wunused-parameter'? [-Wunknown-warning-option]
warning: unknown warning option '-Wunused-but-set-variable'; did you mean '-Wunused-const-variable'? [-Wunknown-warning-option]
2 warnings generated.
rm -f gdb
/usr/bin/c++ -O2 -pipe -fbracket-depth=1024 -I/rtems-source-builder/rtems/build/tmp/sb-peer/4.12/rtems-powerpc/rtems-source-builder/rtems/~/rtems/4.12/include -g -O2   -Wl,-no_pie -L/rtems-source-builder/rtems/build/tmp/sb-peer/4.12/rtems-powerpc/rtems-source-builder/rtems/~/rtems/4.12/lib   \
		-o gdb gdb.o rs6000-tdep.o ppc-sysv-tdep.o solib-svr4.o ravenscar-thread.o ppc-ravenscar-thread.o ser-base.o ser-unix.o ser-pipe.o ser-tcp.o  remote.o dcache.o tracepoint.o ax-general.o ax-gdb.o remote-fileio.o remote-notif.o ctf.o tracefile.o tracefile-tfile.o remote-sim.o cli-dump.o cli-decode.o cli-script.o cli-cmds.o cli-setshow.o cli-logging.o cli-interp.o cli-utils.o mi-out.o mi-console.o mi-cmds.o mi-cmd-catch.o mi-cmd-env.o mi-cmd-var.o mi-cmd-break.o mi-cmd-stack.o mi-cmd-file.o mi-cmd-disas.o mi-symbol-cmds.o mi-cmd-target.o mi-cmd-info.o mi-interp.o mi-main.o mi-parse.o mi-getopt.o tui-command.o tui-data.o tui-disasm.o tui-file.o tui-hooks.o tui-interp.o tui-io.o tui-layout.o tui-out.o tui-regs.o tui-source.o tui-stack.o tui-win.o tui-windata.o tui-wingeneral.o tui-winsource.o tui.o python.o py-arch.o py-auto-load.o py-block.o py-bpevent.o py-breakpoint.o py-cmd.o py-continueevent.o py-xmethods.o py-event.o py-evtregistry.o py-evts.o py-exitedevent.o py-finishbreakpoint.o py-frame.o py-framefilter.o py-function.o py-gdb-readline.o py-inferior.o py-infevents.o py-infthread.o py-lazy-string.o py-linetable.o py-newobjfileevent.o py-objfile.o py-param.o py-prettyprint.o py-progspace.o py-signalevent.o py-stopevent.o py-symbol.o py-symtab.o py-threadevent.o py-type.o py-unwind.o py-utils.o py-value.o py-varobj.o guile.o elfread.o stap-probe.o dtrace-probe.o posix-hdep.o posix-strerror.o c-exp.o cp-name-parser.o ada-exp.o jv-exp.o d-exp.o f-exp.o go-exp.o m2-exp.o p-exp.o rust-exp.o version.o annotate.o addrmap.o auto-load.o auxv.o agent.o bfd-target.o blockframe.o breakpoint.o break-catch-sig.o break-catch-throw.o break-catch-syscall.o findvar.o regcache.o cleanups.o charset.o continuations.o corelow.o disasm.o dummy-frame.o dfp.o source.o value.o eval.o valops.o valarith.o valprint.o printcmd.o block.o symtab.o psymtab.o symfile.o symfile-debug.o symmisc.o linespec.o dictionary.o namespace.o location.o infcall.o infcmd.o infrun.o expprint.o environ.o stack.o tid-parse.o thread.o thread-fsm.o exceptions.o extension.o filesystem.o filestuff.o inf-child.o interps.o minidebug.o main.o macrotab.o macrocmd.o macroexp.o macroscope.o mi-common.o event-loop.o event-top.o inf-loop.o completer.o gdbarch.o arch-utils.o gdbtypes.o gdb_bfd.o gdb_obstack.o osabi.o copying.o memattr.o mem-break.o target.o target-dcache.o parse.o language.o build-id.o buildsym.o findcmd.o std-regs.o signals-state-save-restore.o signals.o exec.o reverse.o bcache.o objfiles.o observer.o minsyms.o maint.o demangle.o dbxread.o coffread.o coff-pe-read.o dwarf2read.o mipsread.o stabsread.o corefile.o dwarf2expr.o dwarf2loc.o dwarf2-frame.o dwarf2-frame-tailcall.o ada-lang.o c-lang.o d-lang.o f-lang.o objc-lang.o ada-tasks.o ada-varobj.o c-varobj.o ui-out.o cli-out.o varobj.o vec.o go-lang.o go-valprint.o go-typeprint.o jv-lang.o jv-valprint.o jv-typeprint.o jv-varobj.o m2-lang.o opencl-lang.o p-lang.o p-typeprint.o p-valprint.o selftest.o sentinel-frame.o complaints.o typeprint.o ada-typeprint.o c-typeprint.o f-typeprint.o m2-typeprint.o ada-valprint.o c-valprint.o cp-valprint.o d-valprint.o f-valprint.o m2-valprint.o ser-event.o serial.o mdebugread.o top.o utils.o ui-file.o user-regs.o frame.o frame-unwind.o doublest.o frame-base.o inline-frame.o gnu-v2-abi.o gnu-v3-abi.o cp-abi.o cp-support.o cp-namespace.o d-namespace.o reggroups.o rust-lang.o trad-frame.o tramp-frame.o solib.o solib-target.o prologue-value.o memory-map.o memrange.o xml-support.o xml-syscall.o xml-utils.o target-descriptions.o target-memory.o xml-tdesc.o xml-builtin.o inferior.o osdata.o gdb_usleep.o record.o record-full.o gcore.o gdb_vecs.o jit.o progspace.o skip.o probe.o common-utils.o buffer.o ptid.o gdb-dlfcn.o common-agent.o format.o registry.o btrace.o record-btrace.o waitstatus.o print-utils.o rsp-low.o errors.o common-debug.o debug.o common-exceptions.o btrace-common.o fileio.o common-regcache.o compile.o compile-c-symbols.o compile-c-types.o compile-object-load.o compile-object-run.o compile-loc2c.o compile-c-support.o inflow.o    init.o \
		  ../sim/ppc/libsim.a ../readline/libreadline.a ../opcodes/libopcodes.a ../bfd/libbfd.a -L./../zlib -lz  ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a    -lncurses -lm   -L/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config -ldl -framework CoreFoundation -lpython2.7 -u _PyMac_Error /System/Library/Frameworks/Python.framework/Versions/2.7/Python -lexpat    ../libiberty/libiberty.a  build-gnulib/import/libgnu.a -liconv 
Undefined symbols for architecture x86_64:
  "_error", referenced from:
      _sim_io_printf_filtered in libsim.a(sim_calls.o)
      _sim_load in libsim.a(sim_calls.o)
      _sim_create_inferior in libsim.a(sim_calls.o)
      _sim_io_read_stdin in libsim.a(sim_calls.o)
      _sim_io_write_stdout in libsim.a(sim_calls.o)
      _sim_io_write_stderr in libsim.a(sim_calls.o)
      _sim_io_flush_stdoutput in libsim.a(sim_calls.o)
      ...
     (maybe you meant: _device_error, __Z20host_to_fileio_errori , _bfd_get_error_handler , __bfd_default_error_handler , _bfd_set_error_handler , _bfd_set_error_program_name , __Z28dwarf_reg_to_regnum_or_errorP7gdbarchm , __Z29observer_detach_command_errorP8observer , _sim_io_error , _deprecated_error_begin_hook , __Z35throw_max_completions_reached_errorv , __Z25type_name_no_tag_or_errorP4type , __Z12memory_error18target_xfer_statusm , __bfd_error_handler , __Z20annotate_error_beginv , __Z19compile_rx_or_errorP17re_pattern_bufferPKcS2_ , __Z12catch_errorsPFiPvES_Pc11return_mask , __Z20memory_error_message18target_xfer_statusP7gdbarchm , __Z11range_errorPKcz , __Z13gdb_xml_errorP14gdb_xml_parserPKcz , __Z29observer_notify_command_errorv , _gdbpy_gdb_memory_error , _bfd_set_error , __Z23invalid_thread_id_errorPKc , __Z11throw_error6errorsPKcz , _gdbpy_gdb_error , __Z14gdb_bfd_errmsg9bfd_errorPPc , __Z29observer_attach_command_errorPFvvE , __Z27gdbpy_print_python_errors_pv , _bfd_get_error , __Z14internal_errorPKciS0_z , __Z17get_regcomp_erroriP17re_pattern_buffer , __Z14annotate_errorv )
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [gdb] Error 1
make[1]: *** [all-gdb] Error 2
make: *** [all] Error 2
shell cmd failed: /bin/sh -ex  /rtems-source-builder/rtems/build/powerpc-rtems4.12-gdb-7.12-x86_64-apple-darwin14.5.0-1/doit
error: building powerpc-rtems4.12-gdb-7.12-x86_64-apple-darwin14.5.0-1
#3083 22 months ago fixed build Joel Sherrill Chris Johns 14 months ago
Summary

parallel make not working

Description

As reported on the mailing list, parallel make on the master is broken.

#3084 22 months ago fixed build Joel Sherrill Chris Johns 19 months ago
Summary

Makefile recipe override warning has returned

Description

The makefile overrides recipe warnings had disappeared with Chris' rework to improve parallelism. Unfortunately, one Makefile has had the warning return. To reproduce, complete a build with all tests enabled, then just type make >/dev/null at the top of the build tree

[joel@rtbf64c rtems-work]$ ./build_bsp sparc erc32 Using rtems for RTEMS source

real 5m4.247s user 5m58.188s sys 1m34.959s 0 [joel@rtbf64c rtems-work]$ cd b-erc32/ [joel@rtbf64c b-erc32]$ make >/dev/null Makefile:653: warning: overriding recipe for target `spprofiling01' Makefile:653: warning: ignoring old recipe for target `spprofiling01'

#3087 22 months ago fixed tool/rsb likangbei Chris Johns 19 months ago
Summary

RSB rtems-gdb-7.12-1.cfg MD5 value is ERROR

Description

rtems-source-builder\rtems\config\tools\rtems-gdb-7.12-1.cfg line 16:%hash md5 gdb-7.12-sis-leon2-leon3.diff "fe29e7daaab3bf70c99cda6925d8c0c5" is error "40670e05b7fc3868a405fb43138f3262" is right

TEST on WIN7+MSYS2

My English is bad! Sorry

#3096 22 months ago fixed shell Chris Johns Chris Johns 19 months ago
Summary

Shell internal commands should be public.

Description

A few of the functions held in cpukit/libmisc/shell/internal.h are useful in building system. For example rtems_shell_register_monitor_commands() and rtems_shell_execute_cmd().

The shell commands are important and systems may provide other scripting mechanisms, for example sequences in YAML files. Providing public access lets users know the functions are supported.

#3099 22 months ago fixed unspecified Chris Johns Chris Johns 19 months ago
Summary

Add RTEMS FDT wrapper and shell command to libmisc

Description

Provide a wrapper to the FDT library for use on RTEMS. The wrapper provides a simplified interface suitable for applications. The shell command provides access to registered FDT blobs so a user can search the tree like a file system and optionally read and write from device addresses.

#3100 22 months ago fixed arch/arm Chris Johns Chris Johns 19 months ago
Summary

Add Xilinx AXI I2C driver

Description

Add a Xilinx AXI I2C driver.

#3101 22 months ago fixed score Chris Johns Chris Johns 19 months ago
Summary

Add I2C Drivers for LM25066A, TMP112, ADS1113 and ADS1115

Description

Add drivers for:

  1. LM25066A
  2. TMP112
  3. ADS1113
  4. ADS1115
#3102 22 months ago fixed tool Chris Johns Chris Johns 19 months ago
Summary

rtems-exeinfo does not decode ARM static constructors.

Description

The sections for ARM are not the same as other architectures.

#3127 21 months ago fixed tool/gcc Chris Johns Chris Johns 7 months ago
Summary

MIPS tool build on Darwin (MacOS) fails.

Description

This is the same bug that effects FreeBSD. For details see:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66032 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62097

#3141 20 months ago fixed doc Chris Johns Chris Johns 19 months ago
Summary

Change the BSP Howto's name to something smaller.

Description

The BSP Howto's current name is:

RTEMS BSP and Device Driver Development Guide

This is long and causes problems in the PDF output. Change the name to:

RTEMS BSP and Driver Guide

#3152 20 months ago wontfix arch/arm Chris Johns Chris Johns 7 months ago
Summary

Beaglebone Black crashes on u-boot master build.

Description

The crash with a Linux type image and no FDT is:

] ## Booting kernel from Legacy Image at 82000000 ...
]    Image Name:   RTEMS
]    Image Type:   ARM Linux Kernel Image (gzip compressed)
]    Data Size:    60886 Bytes = 59.5 KiB
]    Load Address: 80000000
]    Entry Point:  80000000
]    Verifying Checksum ... OK
]    Uncompressing Kernel Image ... OK
] 
] Starting kernel ...
] 
] data abort
] 
]     MAYBE you should read doc/README.arm-unaligned-accesses
] 
] pc : [<8000010c>]        lr : [<800000ac>]
] sp : 80101000  ip : 0000000c   fp : 9f35ac28
] r10: 9f3ad0f4  r9 : 00000000   r8 : 9f238f40
] r7 : 00000000  r6 : 80000100   r5 : 00000e05  r4 : 60000193
] r3 : 9f238fe0  r2 : 80000100   r1 : 00000e05  r0 : 60000193
] Flags: nzcv  IRQs off  FIQs on  Mode SVC_32
] Resetting CPU ...

and the code is:

BSP_START_TEXT_SECTION void bsp_start_hook_0(void)
{
}
80000104:       e12fff1e        bx      lr

80000108 <bsp_start_hook_1>:
BSP_START_TEXT_SECTION static inline arm_a8core_start_set_vector_base(void)
{
  /*
   * Do not use bsp_vector_table_begin == 0, since this will get optimized away.
  */
  if (bsp_vector_table_end != bsp_vector_table_size) {
80000108:       e3002040        movw    r2, #64 ; 0x40
8000010c:       e3003040        movw    r3, #64 ; 0x40
80000110:       e3482000        movt    r2, #32768      ; 0x8000
80000114:       e3403000        movt    r3, #0
80000118:       e1520003        cmp     r2, r3
#3158 20 months ago fixed unspecified Chris Johns Chris Johns 19 months ago
Summary

Examples v2 does not build

Description

Updating waf breaks the rootfs. Add rootfs support to rtems-waf.git.

#3159 20 months ago fixed unspecified Chris Johns Chris Johns 19 months ago
Summary

Examples v2 trace linker ini files reference non-existing dump-on-error

Description

Remove the dump-on-error option.

#3160 20 months ago fixed unspecified Chris Johns Chris Johns 19 months ago
Summary

Trace linker score support is broken

Description

The trace linker needs to be updated to build. I am not sure which bit is broken. Building the tools gives:

[ 7/15] Compiling build/arm-rtems4.12-beagleboneblack/hello/both_hello/test.c.2.o                                                                                                                                                                                                                                         
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:  hello-deep.c:134:13: error: 'Thread_queue_Flush_callout' undeclared here (not in a function); did you mean 'Thread_queue_Flush_filter'?                                                                                                                       
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:    { sizeof (Thread_queue_Flush_callout), "Thread_queue_Flush_callout" },                                                                                                                                                                                      
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:              ^~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                        
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:              Thread_queue_Flush_filter                                                            
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:  hello-deep.c:140:13: error: 'CORE_mutex_Status' undeclared here (not in a function); did you mean 'CORE_mutex_Control'?                                                                                                                                       
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:    { sizeof (CORE_mutex_Status), "CORE_mutex_Status" },                                                                                                                                                                                                        
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:              ^~~~~~~~~~~~~~~~~                                                                                                                                                                                                                                 
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:              CORE_mutex_Control                                                                                                                                                                                                                                
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:  hello-deep.c:143:19: error: unknown type name 'CORE_mutex_Attributes'                                                                                                                                                                                         
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:    { sizeof (const CORE_mutex_Attributes*), "const CORE_mutex_Attributes*" },                                                                                                                                                                                  
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:                    ^~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                       
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:  hello-deep.c:160:13: error: 'CORE_mutex_API_mp_support_callout' undeclared here (not in a function)                                                                                                                                                           
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:    { sizeof (CORE_mutex_API_mp_support_callout), "CORE_mutex_API_mp_support_callout" },                                                                                                                                                                        
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                                                                                                 
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:  hello-deep.c:321:13: error: 'Objects_Locations' undeclared here (not in a function); did you mean 'Objects_Information'?                                                                                                                                      
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:    { sizeof (Objects_Locations*), "Objects_Locations*" },                                         
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:              ^~~~~~~~~~~~~~~~~                                                                    
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:              Objects_Information                                                                                                                                                                                                                               
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:  hello-deep.c:321:31: error: expected expression before ')' token                                                                                                                                                                                              
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:    { sizeof (Objects_Locations*), "Objects_Locations*" },                                         
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:                                ^                                                                                                                                                                                                                               
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:  hello-deep.c:342:31: error: expected expression before ')' token                                 
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:    { sizeof (Objects_Locations*), "Objects_Locations*" },                                         
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:                                ^                                                                  
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:  hello-deep.c:359:31: error: expected expression before ')' token                                 
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:    { sizeof (Objects_Locations*), "Objects_Locations*" },                                         
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:                                ^                                                                  
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:  hello-deep.c:368:31: error: expected expression before ')' token                                 
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:    { sizeof (Objects_Locations*), "Objects_Locations*" },                                         
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:                                ^                                                                  
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:  hello-deep.c:443:31: error: expected expression before ')' token                                 
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:    { sizeof (Objects_Locations*), "Objects_Locations*" },                                         
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:                                ^                                                                  
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:  hello-deep.c:548:13: error: 'Thread_Start_types' undeclared here (not in a function); did you mean '_Thread_Start'?                                                                                                                                           
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:    { sizeof (Thread_Start_types), "Thread_Start_types" },                                         
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:              ^~~~~~~~~~~~~~~~~~                                                                   
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:              _Thread_Start                                                                        
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:  hello-deep.c:570:13: error: 'Thread_blocking_operation_States' undeclared here (not in a function); did you mean 'Thread_queue_Operations'?                                                                                                                   
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:    { sizeof (Thread_blocking_operation_States), "Thread_blocking_operation_States" },             
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                     
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:              Thread_queue_Operations                                                              
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:  hello-deep.c: In function 'rtld_pg_printk_entry':                                                
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:  hello-deep.c:678:3: warning: implicit declaration of function 'printk'; did you mean 'printf'? [-Wimplicit-function-declaration]                                                                                                                              
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:    printk (">>> %s (0x%08x)\n", func_name, func_addr);                                            
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:    ^~~~~~          
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:    printf          
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:  hello-deep.c: At top level:                                                                      
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:  hello-deep.c:742:48: error: expected declaration specifiers or '...' before 'Thread_queue_Flush_callout'                                                                                                                                                      
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:  void _CORE_mutex_Flush(CORE_mutex_Control* a1, Thread_queue_Flush_callout a2, uint32_t a3);      
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~                        
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:  hello-deep.c:743:55: error: expected declaration specifiers or '...' before 'Thread_queue_Flush_callout'                                                                                                                                                      
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:  void __real__CORE_mutex_Flush(CORE_mutex_Control* a1, Thread_queue_Flush_callout a2, uint32_t a3);                                                                                                                                                            
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:                                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~                 
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:  hello-deep.c:744:55: error: expected declaration specifiers or '...' before 'Thread_queue_Flush_callout'                                                                                                                                                      
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:  void __wrap__CORE_mutex_Flush(CORE_mutex_Control* a1, Thread_queue_Flush_callout a2, uint32_t a3)
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:                                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~                 
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:  hello-deep.c:757:1: error: unknown type name 'CORE_mutex_Status'; did you mean 'CORE_mutex_Control'?                                                                                                                                                          
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:  CORE_mutex_Status _CORE_mutex_Initialize(CORE_mutex_Control* a1, Thread_Control* a2, const CORE_mutex_Attributes* a3, bool a4);                                                                                                                               
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:  ^~~~~~~~~~~~~~~~~ 
/Users/chris/development/rtems/4.12/bin/arm-rtems4.12-gcc:  CORE_mutex_Control

This is a snip of the errors.

#3170 20 months ago fixed unspecified Chris Johns Chris Johns 16 months ago
Summary

Use BSP_output_char via RTEMS printer or simple console driver for test output by default

Description

Test runs with a interrupt driven console driver result in unreliable test outcomes.

Problem was noticed with test runs on Microzed, for example libtest/block08:

The test prints:

** END OF TEST BLOCK 8 ***

The rtems-test command marks the result as a failure. There is a single * missing from the start of the line. I attach the full test trace.

#3171 20 months ago fixed tool/gcc Chris Johns Chris Johns 7 months ago
Summary

RSB GCC does not build on High Sierra and APFS

Description

The issue has been reported upstream as https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81797

#3172 20 months ago fixed arch/i386 Chris Johns Chris Johns 19 months ago
Summary

i386 PC BSP does not reset when bsp_reset is called.

Description

Removal of the Edison support removed the standard PC reset using the keyboard controller rather then the specific Edison support.

#3173 20 months ago fixed arch/arm Chris Johns Chris Johns 16 months ago
Summary

XIlinx AXI I2C driver IP race condition causes clock glitch.

Description

The Xilinx AXI I2C IP has a race condition when the PIRQ read FIFO level is reached and the clock is throttling.

#3177 20 months ago fixed doc Joel Sherrill Chris Johns 19 months ago
Summary

Replace/update POSIX Compliance Guide

Description

The POSIX Compliance Guide was never converted from texinfo. Beyond that, it is out of date and follows the outline of the printed version of the POSIX standard which no one sees anymore. This ticket proposes:

  1. new Sphinx document
  2. contents generated from POSIX API tracking spreadsheet (CSV)
  3. outline per .h file, not functional area
  4. use bullets, not tables so easier to format
#3190 20 months ago fixed tool Chris Johns Chris Johns 19 months ago
Summary

RTEMS Tester covoar does not link on MacOS

Description

The executables do not link on MacOS.

#3209 19 months ago fixed tool/rsb Joel Sherrill Chris Johns 14 months ago
Summary

RSB should fail on this error

Description

I was updating the md5's to sha512's on qemu and made a typo which resulted in this message:

reporting: devel/qemu-git-1.cfg -> qemu-42d58e7c6760cb9c55627c28ae538e27dcf2f144-x86_64-linux-gnu-1.xml
error: qemu-git-1.cfg:57: invalid number of hash args
loading: vdeplug
get: requires ()

The error message did not result in the build aborting. Perhaps this should be a fatal error.

The broken RSB fragment was in qemu-git-1.cfg:

 %patch add qemu %{rtems_http_git}/rtems-tools/plain/tools/qemu/0001-openrisc-terminate-qemu-process-upon-receiving-a-hal.patch
-%hash md5 0001-openrisc-terminate-qemu-process-upon-receiving-a-hal.patch 6aa9dfc4522466ab4a463129b3b9cb1d
+%hash md5 376ea9e07c4c8077b345af02856549843dff2ad73b5da5886c71e859c4a0849522c59dcd05724270756763438aecdb70211ea2ae8cac28056cb17da53c3981e1 
#3210 19 months ago fixed tool/rsb Chris Johns Chris Johns 19 months ago
Summary

Improve the RSB build email message

Description

The message needs more detail to provide a suitable archive.

#3217 19 months ago fixed lib Chris Johns Chris Johns 14 months ago
Summary

Add RTEMS version, build and tools details to tests

Description

Published test results need the RTEMS version, how it is built and the tools used to build the kernel and tests.

#3219 19 months ago fixed bsps Chris Johns Chris Johns 8 months ago
Summary

Zynq BSP missing linker option --gc-sections

Description

This Zynq BSP is missing this option.

#3227 19 months ago worksforme admin Joel Sherrill Chris Johns 18 months ago
Summary

sb-check fails on Msys2 64-bit

Description

There must be a recent change to msys2 which is breaking things. I installed the 64-bit version from https://msys2.github.io/ per the instructions at https://docs.rtems.org/branches/master/user/hosts/index.html#microsoft-windows

$ ./source-builder/sb-check
error: no hosts defaults found; please add

After adding some prints, I learned this:

$ ./source-builder/sb-check
posix
made it
MSYS_NT-10.0
error: no hosts defaults found; please add

I filled in options.py and windows.py to recognize this as MSYS2. I was then able to run sb-check. But it wasn't happy. Apparently the pacman command in the User's Guide is missing some packages based on newer versions:

$ ./source-builder/sb-check
posix
MSYS_NT-10.0
RTEMS Source Builder - Check, 5 (8b30eb3f440a modified)
error: exe: not found: (__ar) ar
error: exe: not found: (__as) as
error: exe: not found: (__cc) x86_64-w64-mingw32-gcc
error: exe: not found: (__cxx) x86_64-w64-mingw32-g++
error: exe: not found: (__ld) ld
error: exe: not found: (__nm) nm
error: exe: not found: (__objcopy) objcopy
error: exe: not found: (__objdump) objdump
error: exe: not found: (__ranlib) ranlib
Environment is not correctly set up

I installed binutils explcitly with pacman and then sb-check is complaining about gcc. I did a find to locate the gcc's installed:

$ find / -name "*gcc.*"
/home/jrs007/.ssh/id_rsa_gcc.pub
/mingw64/bin/gcc.exe
/mingw64/bin/x86_64-w64-mingw32-gcc.exe
/mingw64/lib/gcc/x86_64-w64-mingw32/6.2.0/include/stdint-gcc.h
/mingw64/lib/gcc/x86_64-w64-mingw32/6.2.0/libgcc.a
/mingw64/share/info/gcc.info.gz
/mingw64/share/man/man1/gcc.1.gz
/usr/share/vim/vim80/compiler/gcc.vim
find: failed to read file names from file system at or below ‘/’: No such file or directory

jrs007@JRS-OAR-Laptop MINGW64 /c/opt/rtems/rsb/source-builder
$ /mingw64/bin/x86_64-w64-mingw32-gcc.exe --version
x86_64-w64-mingw32-gcc.exe (Rev2, Built by MSYS2 project) 6.2.0
Copyright (C) 2016 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.
#3229 19 months ago fixed doc Chris Johns Chris Johns 7 months ago
Summary

Add index to all documents.

Description

Indexes currently do not work. Fix this adding them to all documents.

Add index entries where possible.

#3232 19 months ago fixed doc Chris Johns Chris Johns 19 months ago
Summary

Use of .. include:: in the User Manual should be changed.

Description

This tricket for Sphinx highlights an issue when using .. include::, we should be using .. toctree:::

https://github.com/sphinx-doc/sphinx/issues/3432

#3240 18 months ago fixed lib Andrei Chichak Chris Johns 18 months ago
Summary

cpukit/libmisc/stackchk/check.c stack addresses formatted incorrectly.

Description

The function Stack_check_Dump_threads_usage displays the stack high, low, and current pointers incorrectly.

Instead of displaying these pointers in conventional hex format, the values have a proper prefix of 0x, but the pointer value is displayed in decimal.

The incorrect inttypes.h formatting define was used.

#3278 16 months ago fixed tool Joel Sherrill Chris Johns 16 months ago
Summary

bsp-builder has incorrect print (%s in output)

Description

I don't think the tools have branches so only impacts master.

Notice the "run: %s:"

[1114/1565] powerpc/mpc5674fevb (profiling) Configuring run: %s: powerpc/mpc5674fevb.profiling\

/home/joel/rtems-work/rtems/configure --target=powerpc-rtems5\ --enable-rtemsbsp=mpc5674fevb --prefix=/home/joel/rtems-work/bsps\ --enable-profiling

#3283 16 months ago fixed doc Joel Sherrill Chris Johns 16 months ago
Summary

Bad URL in OpenOCD/Xilinx_Zynq Wiki Page

Description

https://devel.rtems.org/wiki/Debugging/OpenOCD/Xilinx_Zynq has a link to the Zedboard Processor Debug Adapter. I think the URL has changed to this but would like someone more knowledgeable to confirm that before it is changed.

http://zedboard.org/accessories/zedboard-processor-debug-adapter

#3294 16 months ago fixed tool/rsb Chris Johns Chris Johns 16 months ago
Summary

gcc version report for released tools is wrong.

Description

The release gcc version string has the RTEMS release and not the actual release.

#3298 16 months ago fixed lib/dl Chris Johns Chris Johns 4 months ago
Summary

dlerror non-conformance

Description

This is a port of the 4.11 patches from #2747 to master. Please refer to that ticket for details.

#3312 15 months ago fixed tool/rsb Chris Johns Chris Johns 15 months ago
Summary

RSB macro calls such as define fail on unicode keys.

Description

The define call in macros.py checks for a str while the __setitem__ call can convert a unicode string to str. Remove the check.

Remove the other places in macros.py a key str check is made and see if they can be improved.

The following has been reported to me:

cd rtems-source-builder-4.11.3/rtems
../source-builder/sb-set-builder --prefix=/home/user/rtems/4.11 --log=arm.txt --without-rtems 4.11/rtems-arm
Traceback (most recent call last):
  File "../source-builder/sb-set-builder", line 29, in <module>
    setbuilder.run()
  File "../source-builder/sb/setbuilder.py", line 526, in run
    opts = options.load(sys.argv, optargs)
  File "../source-builder/sb/options.py", line 668, in load
    version.load_release_settings(o.defaults)
  File "../source-builder/sb/version.py", line 123, in load_release_settings
    sources.hash((hs[0], hash[0], hs[1]), macros, setting_error)
  File "../source-builder/sb/sources.py", line 105, in hash
    macros.define(_file, '%s %s' % (args[0], args[2]))
  File "../source-builder/sb/macros.py", line 439, in define
    raise TypeError('bad key type: %s' % (type(key)))
TypeError: bad key type: <type 'unicode'>
#3315 15 months ago fixed tool/rsb Chris Johns Chris Johns 15 months ago
Summary

Move expat's home site to github from SF.

Description

Move expat's home site from SF to github:

https://libexpat.github.io/

#3323 15 months ago fixed lib Chris Johns Chris Johns 14 months ago
Summary

mhttpd's http etag can result in invalid caching in a browser.

Description

The mhttp's http etag uses the mtime and file length and this can cause subtle issues if a target has no RTC or it is incorrect and files are being copied without preserving the mtime or changes happen that do not change the length.

The cp and untar code do not update a file's time.

Add support for an etag callback so a user can manage the tag, ie MD5 or something similar.

#3374 14 months ago fixed tool Joel Sherrill Chris Johns 7 months ago
Summary

rtems-test does not honor --mail-from argument

Description

This is on the master but may apply to other branches.

$ /home/joel/rtems-work/rtems-toolstester/rtems-test --rtems-tools=/home/joel/rtems-work/tools/5 --rtems-bsp=erc32 --log=run.log --mail --mail-from=joel@… --mail-to=build@… ./sparc-rtems5/c/erc32/testsuites/samples/base_sp/base_sp.exe error: no valid from address for mail

The rtems-test command will work if you have a ~/.mailrc with something like this:

set from="Joel Sherrill <joel@…>"

#3382 14 months ago fixed build Chris Johns Chris Johns 7 months ago
Summary

Testsuite Makefile merge to one per group of tests

Description

Merge the nested Makefile.am files into a single file per group of tests.

A single Makefile.am for all tests is not practical at this point in time because a test is an estimated 7 lines and with over 750 tests this means the file would be too big and a conflict hot spot.

#3383 14 months ago fixed build Chris Johns Chris Johns 14 months ago
Summary

Require --enable-rtemsbsp with --enable-smp or --enable-multiprocessor

Description

There is a limited number of BSPs that support SMP or MP so using the BSP wildcard will result in a failed build. Require the user provide a BSP.

#3385 14 months ago fixed build Chris Johns Chris Johns 14 months ago
Summary

Generate an error if RTEMS's gcc is not found when the user runs configure

Description

Generate an error when the user runs configure if one cannot be found in the path.

#3392 14 months ago fixed tool/rsb Chris Johns Chris Johns 14 months ago
Summary

infinite loop in RSB's path when a prefix path is not writable

Description

The code gets the dirname() of the path stepping up until there is no path however dirname('/') is / so the path never has a length of 0.

#3395 14 months ago fixed tool Chris Johns Chris Johns 14 months ago
Summary

rtems-ld does not remove executable when there is an output error

Description

An error when outputting an executable does not clean up the file and leaves an incorrect format file.

This is happening with the beagle bone black BSP and test dl06.

#3396 14 months ago fixed tool Chris Johns Chris Johns 14 months ago
Summary

rtems-ld does not handle R_ARM_V4BX relocation records

Description

The R_ARM_V4BX does not have a symbol and this raised an error with dl06 with a ARMv7 instruction set when merging sections when creating a RAP image.

Ignore this relocation record.

#3415 13 months ago fixed admin Joel Sherrill Chris Johns 7 months ago
Summary

Add examples and tests as components

Description

It seems as if we should have tests and examples as components.

#3417 13 months ago fixed tool Chris Johns Chris Johns 7 months ago
Summary

Add libdwarf to elftoolchain and provide a C++ wrapper

Description

Update the elftoolchain and add libdwarf.

Provide a C++ framework to create reusable access to libdwarf.

#3460 11 months ago fixed tool/gdb Chris Johns Chris Johns 4 months ago
Summary

GDB 8 SIS LEON2 LEON3 Patches

Description

Jiri patch for gdb-8.0.1.

#3503 9 months ago fixed doc Chris Johns Chris Johns 9 months ago
Summary

PDF Documentation is missing an index

Description

The PDF generated documents have an empty index.

#3506 9 months ago fixed build Joel Sherrill Chris Johns 7 months ago
Summary

waf for building RTEMS applications needs updating

Description

Because there are no native tools in the RTEMS tree anymore, the RTEMS install point will not have a bin/ directory. If the --rtems-tools and --rtems directories are different, the sanity check by waf configure for ${rtems}/bin fails. See examples-v2.

+ ./waf configure -v --rtems=/home/joel/rtems-work/bsp-install --rtems-tools=/home/joel/rtems-work/tools/5 --rtems-bsps=powerpc/qemuppc
Setting top to                           : /home/joel/rtems-work/examples-v2 
Setting out to                           : /home/joel/rtems-work/examples-v2/build 
RTEMS path is not valid. No bin directory found.
(complete log in /home/joel/rtems-work/examples-v2/build/config.log)

#3516 9 months ago fixed tool/rsb Joel Sherrill Chris Johns 8 months ago
Summary

sb-set-builder should report disk usage of build

Description

Helping others work through the hello world, it is common for their VM images to not have enough disk space for the build to complete. It would be useful if the set-builder could report disk usage of the build/ directory. This information could be fed into the Users Guide.

It is frustrating and a bad experience to watch the build fail 90% of the way through.

#3518 8 months ago fixed doc Joel Sherrill Chris Johns 8 months ago
Summary

RSB MacOS Nits

Description

The MacOS section of the RSB manual has some minor things that need to be fixed:

  • says Serria when it should be Sierra (I think).
  • has +sb-check+ which indicates a formatting error

Please review as a Mac user and make sure that's it. :)

#3519 8 months ago fixed tool/rsb Chris Johns Chris Johns 8 months ago
Summary

RSB does not strictly check args

Description

The RSB loose argument parsing in the RSB needs to change. The RSB needs to strictly check arguments to avoid simple user errors.

#3532 8 months ago fixed tool/rsb Chris Johns Chris Johns 5 days ago
Summary

RSB source only download is host specific

Description

The RSB source only download is host specific. Configurations for builds can restrict sources or patches by host to work around specific host issues. Currently a source only download is host specific because the host check is based on the host the RSB is being run on.

The release process uses source only downloading to create the complete set of sources in a release. This issue means some host specific source may not be captured.

I am yet to figure how to resolve this issue because the download logic is driven by the configuration scripts and this type of logic exists in configuration files such as rtems-gcc-7.3.0-newlib-d13c84eb07e35984bf7a974cd786a6cdac29e6b9.cfg:

%if %{_build_os} == freebsd || %{_build_os} == darwin
 %patch add gcc --rsb-file=freebsd-libgcc-sed-fix.patch -p0 https://gcc.gnu.org/bugzilla/attachment.cgi?id=41380
 %hash  sha256 freebsd-libgcc-sed-fix.patch 8a11bd619c2e55466688e328da00b387d02395c1e8ff4a99225152387a1e60a4
%endif

The simpler construct in rtems-tools-common-1.cfg of:

  %ifos win32 mingw ming32
   SB_BUILD_ROOT_WAF=$SB_BUILD_ROOT$(echo %{_prefix} | cut -c 1-2)
  %else
   SB_BUILD_ROOT_WAF=$SB_BUILD_ROOT
  %endif

is easier to manage as the %ifos logic can always return True however the %else path also need to be followed and this could break the logic in a configuration file. Yes, the example is not about sources or patches however it shows what could be used. I do not think creating a new variable such as %{download_only}and adding logic to the configuration file will help, for example:

%if %{download_only} || %{_build_os} == freebsd || %{_build_os} == darwin
 %patch add gcc foobar-bsd.patch
%else
 %patch add gcc foobar-gnu.patch
%endif

We require the logic to follow the %if True path and the %else path.

#3536 8 months ago fixed tool Chris Johns Chris Johns 8 months ago
Summary

Move RTEMS configuration data to a common config directory

Description

Move the rtems-bsp-builder configuration files to a common area in the RTEMS Tools project and create an rtems.py module to handle the configuration. This allows a number of tools access to the arch/bsp data.

In time this directory of data can move into the rtems.git repo.

#3537 8 months ago fixed tool Chris Johns Chris Johns 5 months ago
Summary

RSB and RTEMS Tools Support for python2 and python3

Description

Upstream python does not create a python command any more and creates python2 and python3. Distributions and operating systems are starting to ship without the python command.

The RSB and RTEMS Tools python commands need to be updated and tested so they run on Python2 and Python3 and support added to use the available commands.

#3562 7 months ago fixed tool/rsb Chris Johns Chris Johns 7 months ago
Summary

Use a short paths for the RSB temporary build path on Windows

Description

The %{_tmproot} path is currently based on a BuildRoot setting in the build configuration files. The line is:

BuildRoot: %{_tmppath}/%{name}-root-%(%{__id_u} -n)

This is for a shared $TEMP path plus the name is not shortened so on Windowss these paths become long. Remove the BuildRoot from all configuration files and add support for a shortened temporary path. Windows needs short paths due to the 256 max. path length issue.

#3568 7 months ago fixed tool/rsb Sebastian Huber Chris Johns 5 months ago
Summary

RSB: UnboundLocalError?: local variable 'build_max_size_human' referenced before assignment

Description

../source-builder/sb-set-builder --prefix=/build/rtems/5 5/rtems-or1k

...
config: tools/rtems-gcc-4.9.3-newlib-08eab6396f678cf5e5968acaed0bae9fd129983b.cfg
package: or1k-rtems5-gcc-4.9.3-newlib-08eab6396f678cf5e5968acaed0bae9fd129983b-x86_64-linux-gnu-1
warning: gcc-4.9.3-or1k.patch: no hash found
building: or1k-rtems5-gcc-4.9.3-newlib-08eab6396f678cf5e5968acaed0bae9fd129983b-x86_64-linux-gnu-1
error: building or1k-rtems5-gcc-4.9.3-newlib-08eab6396f678cf5e5968acaed0bae9fd129983b-x86_64-linux-gnu-1
Build FAILED
  See error report: rsb-report-or1k-rtems5-gcc-4.9.3-newlib-08eab6396f678cf5e5968acaed0bae9fd129983b-x86_64-linux-gnu-1.txt
error: building or1k-rtems5-gcc-4.9.3-newlib-08eab6396f678cf5e5968acaed0bae9fd129983b-x86_64-linux-gnu-1
Mailing report: build@rtems.org
Traceback (most recent call last):
  File "../source-builder/sb/cmd-set-builder.py", line 26, in <module>
    setbuilder.run()
  File "/scratch/git-rtems-source-builder/source-builder/sb/setbuilder.py", line 619, in run
    b.build(deps, mail = mail)
  File "/scratch/git-rtems-source-builder/source-builder/sb/setbuilder.py", line 530, in build
    body += 'Maximum build usage: ' + build_max_size_human + os.linesep
UnboundLocalError: local variable 'build_max_size_human' referenced before assignment
#3604 6 months ago fixed lib/dl Joseph Hickey Chris Johns 6 months ago
Summary

RTL Unresolved Symbols from common section on i386/pc686 (cloned)

Description

Cloned from #3527:


By default GCC puts uninitialized global variables into a common section in the ELF file. When attempting to load the resulting ELF file at runtime using dlopen(), these global symbols are not resolved as expected.

The RTL reports unresolved symbols, and runtime code that take the address of the global get NULL instead.

This is reproducible using the libtests/dl01 example by adding a global variable to the module code. I will attach a patch that replicates the issue.

Test platform is QEMU using pc686 BSP, RTEMS source version 4.11.3 (latest on 4.11 git branch as of this writing)

#3612 6 months ago fixed lib/dl Chris Johns Chris Johns 6 months ago
Summary

RTL unresolved compaction does not update string indexes after removing a string

Description

The RTL unresolved compaction does not update the string indexes when compacting.

#3625 6 months ago fixed lib/dl Kevin Gordon Chris Johns 6 months ago
Summary

RTL Allows Unloading a Module other Modules Depend Upon (cloned)

Description

Cloned from #3195:


Consider the following example using ELF .o files from compiled source files module-0.c and module-1.c from ticket #3194:

module-0.o is loaded using dlopen() with no code or data dependencies. module-1.o is loaded using dlopen() with both code and data dependencies on module-0 which are resolved by RTL.

The RTL function dlcose() returns no error when module-0 is unloaded, when it should return an error and not unload module-0. This becomes quite dangerous because a subsequent call to module1Function1() in the currently-loaded module-1.o, which accesses shared_resource_0[ ] and calls module0Function0(), will result in an unexpected trap on qemu or the call succeeding with the correct return value on hardware when it should not.

The erroneous successful unload() of module-0 aside, it appears as though the resources are not actually deleted and I believe this ticket is related to tickets #3192 and #3194.

Architecture is sparc-leon3 using both the RTEMS 4.11.1 public release and rtems master @f043b9bd3bf25626fb1a311dd7fa041eacc68adc with rtems-source-builder @55f2d69e9b67cde23d61375fa34ef5b0f04a985d.

Execution environments are qemu-system-sparc and LEON3 UT700 hardware.

#3664 5 months ago fixed tool/rsb Chris Johns Chris Johns 5 months ago
Summary

RSB config parsing slow on python3

Description

The execute support on python3 is slow and this slows the config file parsing.

#3684 4 months ago fixed lib Chris Johns Chris Johns 4 months ago
Summary

rtems_print_buffer is broken

Description

Consider this call:

#include <rtems/dumpbuf.h>
rtems_print_buffer ((const unsigned char *) "\x12\x23\x56\x78", 4);

On psim you get:

1f 2f 5f 7f                                     |.#Vx            |
#3692 3 months ago fixed lib/dl Chris Johns Chris Johns 3 months ago
Summary

libdl does not honour write unlock/lock for sections

Description

The allocator does no honour write unlock and lock for read-only sections as it should. This can used to write protect executable memory.

#3728 2 months ago fixed bsps Chris Johns Chris Johns 8 weeks ago
Summary

Set small data seciton to max size for mvme5500 and motorola_powerpc BSPs

Description

These are large memory targets that can support libdl. Make the small data memory the maximum size.

#3733 7 weeks ago fixed lib/debugger Chris Johns Chris Johns 7 weeks ago
Summary

Add general reg support to libdebugger

Description

Testing master on a Zynq reports:

(gdb) target remote 10.10.5.45:1122                        
Remote debugging using 10.10.5.45:1122             
Truncated register 19 in remote 'g' packet

It looks to me like gdb is now smart enough to know this ARM arch has a NEON and floating point registers:

(gdb) maint print registers
Name         Nr  Rel Offset    Size  Type
 r0            0    0      0       4 uint32_t
 r1            1    1      4       4 uint32_t
 r2            2    2      8       4 uint32_t
 r3            3    3     12       4 uint32_t
 r4            4    4     16       4 uint32_t
 r5            5    5     20       4 uint32_t
 r6            6    6     24       4 uint32_t
 r7            7    7     28       4 uint32_t
 r8            8    8     32       4 uint32_t
 r9            9    9     36       4 uint32_t
 r10          10   10     40       4 uint32_t
 r11          11   11     44       4 uint32_t
 r12          12   12     48       4 uint32_t
 sp           13   13     52       4 *1
 lr           14   14     56       4 uint32_t
 pc           15   15     60       4 *1
 f0           16   16     64      12 _arm_ext
 f1           17   17     76      12 _arm_ext
 f2           18   18     88      12 _arm_ext
 f3           19   19    100      12 _arm_ext
 f4           20   20    112      12 _arm_ext
 f5           21   21    124      12 _arm_ext
 f6           22   22    136      12 _arm_ext
 f7           23   23    148      12 _arm_ext
 fps          24   24    160       4 uint32_t
 cpsr         25   25    164       4 uint32_t

The target support in libdebugger is a simple array of 32bit ints. This needs to change to handle registers at various offsets. The lack of fp regs was a simplification at the time I first implement this server. Loos like I need to sort this out.

#3741 4 weeks ago fixed lib/dl dufault Chris Johns 3 weeks ago
Summary

libdl loading ELF objects from libbsd NFS file system ends in a deadlock

Description

For ELF files the run-time loader calls this chain:

  • rtems_rtl_elf_file_load()
  • rtems_rtl_alloc_lock()
  • rtems_rtl_alloc_heap()
  • _RTEMS_Lock_allocator()

_RTEMS_Lock_allocator() locks all heap operations. RTL then calls read() and for NFS file systems the NFS threads try to use the heap, locking up the system.

#3743 3 weeks ago fixed tool/rsb Chris Johns Chris Johns 2 weeks ago
Summary

RSB os and arch config logic is broken

Description

The config file processing of conditionals:

  • %ifos
  • %ifnos
  • %ifarch

do not correctly process lists of arguments. The argument list is split in 2 with the first element correct handled and the remaining treated as a lump. The argument list needs to be split evenly.

#2951 2 years ago fixed build alexgerbor chrisj@… 19 months ago
Summary

Error path in rtems-gcc-6.3.0-newlib-2.5.0.20170228-1.cfg

Description

newlib-ARM-Optimize-IEEE-754-sqrt-implementation.diff in path https://git.rtems.org/rtems-tools/plain/tools/4.12/newlib/arm/ not found

In rtems-gcc-6.3.0-newlib-2.5.0.20170228-1.cfg there error: %patch add newlib %{rtems_newlib_patches}/arm/newlib-ARM-Optimize-IEEE-754-sqrt-implementation.diff

Log from execute /source-builder/sb-set-builder:

download: (full) https://git.rtems.org/rtems-tools/plain/tools/4.12/newlib/arm/newlib-ARM-Optimize-IEEE-754-sqrt-implementation.diff -> patches/newlib-ARM-Optimize-IEEE-754-sqrt-implementation.diff download: https://git.rtems.org/rtems-tools/plain/tools/4.12/newlib/arm/newlib-ARM-Optimize-IEEE-754-sqrt-implementation.diff -> patches/newlib-ARM-Optimize-IEEE-754-sqrt-implementation.diff download: no ssl context download: https://git.rtems.org/rtems-tools/plain/tools/4.12/newlib/arm/newlib-ARM-Optimize-IEEE-754-sqrt-implementation.diff: error: HTTP Error 404: Not found error: downloading https://git.rtems.org/rtems-tools/plain/tools/4.12/newlib/arm/newlib-ARM-Optimize-IEEE-754-sqrt-implementation.diff: all paths have failed, giving up

#3008 2 years ago fixed doc Hassan Karim chrisj@… 19 months ago
Summary

missing pax causes install failures

Description

I have tried to install sparc bsp=erc32 on 4 different builds. 3 failed, and 1 flawlessly installed. The others all seem to fail somewhere during make install of test suites. Each reports one missing config problem or another.

I believe the problem resulted in a missing package, pax & libbsd-dev on Ubuntu 12.04.5 LTS (GNU/Linux 3.2.0-126-virtual x86_64)

I hadn't seen this exact problem because I normally update & upgrade as soon as I get a new image. Pressed for time, I skipped it. So, I am not sure if we need to update the documentation to directly include pax, since it is directly called in configure and breaks if not present.

https://docs.rtems.org/rsb/#_host_setups Under this section, 11.1.5. Ubuntu

Add pax to this line $ sudo apt-get build-dep binutils gcc g++ gdb unzip git python2.7-dev pax

#3061 23 months ago invalid tool Chris Johns chrisj@… 19 months ago
Summary

including 'unistd.h' in C++ does not build.

Description

Including unistd.h in a C++ program does not compile with the RSB for today:

$ /opt/work/rtems/4.12/bin/arm-rtems4.12-g++ -B/opt/work/rtems/4.12/arm-rtems4.12/xilinx_zynq_zc706/lib -B/opt/work/si/rtems/4.12/arm-rtems4.12/xilinx_zynq_zc706/lib -specs bsp_specs -qrtems -march=armv7-a -mthumb -mfpu=neon -mfloat-abi=hard -mtune=cortex-a9 -g -O2 u.cpp                                                                                     
In file included from /opt/work/rtems/4.12/arm-rtems4.12/include/sys/_pthreadtypes.h:24:0,
                 from /opt/work/rtems/4.12/arm-rtems4.12/include/sys/types.h:239,
                 from /opt/work/rtems/4.12/arm-rtems4.12/include/sys/unistd.h:12,
                 from /opt/work/rtems/4.12/arm-rtems4.12/include/unistd.h:4,
                 from u.cpp:6:
/opt/work/rtems/4.12/arm-rtems4.12/include/sys/cpuset.h: In function 'void CPU_AND_S(size_t, cpu_set_t*, const cpu_set_t*, const cpu_set_t*)':
/opt/work/rtems/4.12/arm-rtems4.12/include/sys/cpuset.h:147:3: error: 'BIT_AND2' was not declared in this scope
   BIT_AND2(_cpu_set_bits(setsize), destset, srcset1, srcset2);
   ^~~~~~~~
/opt/work/rtems/4.12/arm-rtems4.12/include/sys/cpuset.h:147:3: note: suggested alternative: 'BIT_AND'
   BIT_AND2(_cpu_set_bits(setsize), destset, srcset1, srcset2);
   ^~~~~~~~
   BIT_AND
/opt/work/rtems/4.12/arm-rtems4.12/include/sys/cpuset.h: In function 'void CPU_OR_S(size_t, cpu_set_t*, const cpu_set_t*, const cpu_set_t*)':
/opt/work/rtems/4.12/arm-rtems4.12/include/sys/cpuset.h:159:3: error: 'BIT_OR2' was not declared in this scope
   BIT_OR2(_cpu_set_bits(setsize), destset, srcset1, srcset2);
   ^~~~~~~
/opt/work/rtems/4.12/arm-rtems4.12/include/sys/cpuset.h:159:3: note: suggested alternative: 'BIT_OR'
   BIT_OR2(_cpu_set_bits(setsize), destset, srcset1, srcset2);
   ^~~~~~~
   BIT_OR
/opt/work/rtems/4.12/arm-rtems4.12/include/sys/cpuset.h: In function 'void CPU_XOR_S(size_t, cpu_set_t*, const cpu_set_t*, const cpu_set_t*)':
/opt/work/rtems/4.12/arm-rtems4.12/include/sys/cpuset.h:171:3: error: 'BIT_XOR2' was not declared in this scope
   BIT_XOR2(_cpu_set_bits(setsize), destset, srcset1, srcset2);
   ^~~~~~~~
/opt/work/rtems/4.12/arm-rtems4.12/include/sys/cpuset.h:171:3: note: suggested alternative: 'BIT_OR'
   BIT_XOR2(_cpu_set_bits(setsize), destset, srcset1, srcset2);
   ^~~~~~~~
   BIT_OR
/opt/work/rtems/4.12/arm-rtems4.12/include/sys/cpuset.h: In function 'void CPU_NAND_S(size_t, cpu_set_t*, const cpu_set_t*, const cpu_set_t*)':
/opt/work/rtems/4.12/arm-rtems4.12/include/sys/cpuset.h:183:3: error: 'BIT_NAND2' was not declared in this scope
   BIT_NAND2(_cpu_set_bits(setsize), destset, srcset1, srcset2);
   ^~~~~~~~~
/opt/work/rtems/4.12/arm-rtems4.12/include/sys/cpuset.h:183:3: note: suggested alternative: 'BIT_NAND'
   BIT_NAND2(_cpu_set_bits(setsize), destset, srcset1, srcset2);
   ^~~~~~~~~
   BIT_NAND
In file included from /opt/work/rtems/4.12/arm-rtems4.12/include/sys/cpuset.h:46:0,
                 from /opt/work/rtems/4.12/arm-rtems4.12/include/sys/_pthreadtypes.h:24,
                 from /opt/work/rtems/4.12/arm-rtems4.12/include/sys/types.h:239,
                 from /opt/work/rtems/4.12/arm-rtems4.12/include/sys/unistd.h:12,
                 from /opt/work/rtems/4.12/arm-rtems4.12/include/unistd.h:4,
                 from u.cpp:6:
/opt/work/rtems/4.12/arm-rtems4.12/include/sys/cpuset.h: In function 'int CPU_COUNT_S(size_t, const cpu_set_t*)':
/opt/work/rtems/4.12/arm-rtems4.12/include/sys/cpuset.h:194:10: error: '__bitcountl' was not declared in this scope
   return BIT_COUNT(_cpu_set_bits(setsize), set);
          ^
/opt/work/rtems/4.12/arm-rtems4.12/include/sys/cpuset.h:194:10: note: suggested alternative: '__count'
#3088 22 months ago fixed shell likangbei chrisj@… 19 months ago
Summary

shell test in testsuites\samples\fileio many COMMANDs is Lost

Description

testsuites\samples\fileio test on atsam BSP, init.c: #define CONFIGURE_SHELL_COMMANDS_INIT #define CONFIGURE_SHELL_COMMANDS_ALL

but when press s -> start shell,I only find three COMMANDs(help,alias,time),Other COMMANDs is Lost。 I remember that the previous version was normal。

Sorry! My English is bad!

#3103 22 months ago fixed tool Joel Sherrill chrisj@… 19 months ago
Summary

rtems-tools on CentOS 7 Build Failure

Description

A build failure for rtems-tools on the master has been reported on CentOS 7. This is my notes as I try to reproduce it.

[joel@localhost rtems-tools]$ ./waf configure Setting top to : /home/joel/rtems-work/rtems-tools Setting out to : /home/joel/rtems-work/rtems-tools/build Version : 4.12.78bbe4c1a31d (4.12) Checking for program 'python' : /usr/bin/python Checking for python version >= 2.6.6 : 2.7.5 Checking for 'gcc' (C compiler) : /usr/bin/gcc Checking for 'g++' (C++ compiler) : /usr/bin/g++ Checking for header alloca.h : yes Checking for header fcntl.h : yes Checking for header process.h : not found Checking for header stdlib.h : yes Checking for header string.h : yes Checking for header strings.h : yes Checking for header sys/file.h : yes Checking for header sys/stat.h : yes Checking for header sys/time.h : yes Checking for header sys/types.h : yes Checking for header sys/wait.h : yes Checking for header unistd.h : yes Checking for header vfork.h : not found Checking for function getrusage : yes Checking for program 'm4' : /usr/bin/m4 Checking for header sys/wait.h : yes Checking for function kill : yes Checking for 'gcc' (C compiler) : /usr/bin/gcc Checking for 'g++' (C++ compiler) : /usr/bin/g++ Checking for 'g++' (C++ compiler) : /usr/bin/g++ Checking for function open64 : not found Checking for function stat64 : not found 'configure' finished successfully (0.786s) ========================================================= [joel@localhost rtems-tools]$ ./waf -j 1 --verbose Waf: Entering directory `/home/joel/rtems-work/rtems-tools/build' [ 88/151] Compiling rtemstoolkit/rld-process.cpp 11:58:16 runner ['/usr/bin/g++', '-pipe', '-g', '-O2', '-Wall', '-Wextra', '-pedantic', '-Irtemstoolkit', '-I../rtemstoolkit', '-Irtemstoolkit/elftoolchain/libelf', '-I../rtemstoolkit/elftoolchain/libelf', '-Irtemstoolkit/elftoolchain/common', '-I../rtemstoolkit/elftoolchain/common', '-Irtemstoolkit/libiberty', '-I../rtemstoolkit/libiberty', '-DHAVE_CONFIG_H=1', '-DRTEMS_VERSION="4.12"', '-DRTEMS_RELEASE="4.12.78bbe4c1a31d"', '-DFASTLZ_LEVEL=1', '../rtemstoolkit/rld-process.cpp', '-c', '-o/home/joel/rtems-work/rtems-tools/build/rtemstoolkit/rld-process.cpp.7.o'] In file included from ../rtemstoolkit/libiberty/libiberty.h:42:0,

from ../rtemstoolkit/rld-process.cpp:64:

../rtemstoolkit/libiberty/ansidecl.h:169:64: error: new declaration ‘char* basename(const char*)’

# define ATTRIBUTE_NONNULL(m) attribute ((nonnull (m)))

../rtemstoolkit/libiberty/libiberty.h:112:64: note: in expansion of macro ‘ATTRIBUTE_NONNULL’

extern char *basename (const char *) ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_NONNULL(1);

In file included from ../rtemstoolkit/rld-process.cpp:24:0: /usr/include/string.h:599:26: error: ambiguates old declaration ‘const char* basename(const char*)’

extern "C++" const char *basename (const char *filename)

In file included from ../rtemstoolkit/libiberty/libiberty.h:42:0,

from ../rtemstoolkit/rld-process.cpp:64:

../rtemstoolkit/libiberty/ansidecl.h:169:64: error: declaration of ‘int vasprintf(char, const char*, va_list_tag*)’ has a different exception specifier

# define ATTRIBUTE_NONNULL(m) attribute ((nonnull (m)))

../rtemstoolkit/libiberty/ansidecl.h:198:80: note: in expansion of macro ‘ATTRIBUTE_NONNULL’

#define ATTRIBUTE_PRINTF(m, n) attribute ((format (printf, m, n))) ATTRIBUTE_NONNULL(m)

../rtemstoolkit/libiberty/libiberty.h:651:55: note: in expansion of macro ‘ATTRIBUTE_PRINTF’

extern int vasprintf (char , const char *, va_list) ATTRIBUTE_PRINTF(2,0);

In file included from ../rtemstoolkit/rld-process.cpp:23:0: /usr/include/stdio.h:399:12: error: from previous declaration ‘int vasprintf(char, const char*, va_list_tag*) throw ()’

extern int vasprintf (char restrict ptr, const char *restrict f,

Waf: Leaving directory `/home/joel/rtems-work/rtems-tools/build' Build failed

-> task in 'rld' failed with exit status 1:

{task 23048432: cxx rld-process.cpp -> rld-process.cpp.7.o}

['/usr/bin/g++', '-pipe', '-g', '-O2', '-Wall', '-Wextra', '-pedantic', '-Irtemstoolkit', '-I../rtemstoolkit', '-Irtemstoolkit/elftoolchain/libelf', '-I../rtemstoolkit/elftoolchain/libelf', '-Irtemstoolkit/elftoolchain/common', '-I../rtemstoolkit/elftoolchain/common', '-Irtemstoolkit/libiberty', '-I../rtemstoolkit/libiberty', '-DHAVE_CONFIG_H=1', '-DRTEMS_VERSION="4.12"', '-DRTEMS_RELEASE="4.12.78bbe4c1a31d"', '-DFASTLZ_LEVEL=1', '../rtemstoolkit/rld-process.cpp', '-c', '-o/home/joel/rtems-work/rtems-tools/build/rtemstoolkit/rld-process.cpp.7.o'] ================================================================== Looking down into libiberty.h, I picked on basename()

/* HAVE_DECL_* is a three-state macro: undefined, 0 or 1. If it is

undefined, we haven't run the autoconf check so provide the declaration without arguments. If it is 0, we checked and failed to find the declaration so provide a fully prototyped one. If it is 1, we found it so don't provide any declaration at all. */

#if !HAVE_DECL_BASENAME

#if defined (GNU_LIBRARY )
defined (linux) \
defined (FreeBSD) defined (OpenBSD) defined (NetBSD) \
defined (CYGWIN) defined (CYGWIN32) defined (MINGW32) \
defined (DragonFly) defined (HAVE_DECL_BASENAME)

extern char *basename (const char *) ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_NONNULL(1); #else /* Do not allow basename to be used if there is no prototype seen. We

either need to use the above prototype or have one from autoconf which would result in HAVE_DECL_BASENAME being set. */

#define basename basename_cannot_be_used_without_a_prototype #endif #endif ============================================ The native CentOS 7 has this definition of basename:

# ifndef basename /* Return the file name within directory of FILENAME. We don't

declare the function if the `basename' macro is available (defined in <libgen.h>) which makes the XPG version of this function available. */

# ifdef CORRECT_ISO_CPP_STRING_H_PROTO extern "C++" char *basename (char *filename)

THROW asm ("basename") nonnull ((1));

extern "C++" const char *basename (const char *filename)

THROW asm ("basename") nonnull ((1));

# else extern char *basename (const char *filename) THROW nonnull ((1)); # endif # endif #endif

============================== I think we are getting the C++ prototype from string.h and a conflicting C prototype from libiberty.h

#3128 21 months ago fixed tool Chris Johns chrisj@… 19 months ago
Summary

RTEMS Tools corvar does not build on Windows.

Description

The following error has appeared on Windows:

In file included from ../rtemstoolkit/elftoolchain/libelf/gelf.h:34:0,
                 from ../rtemstoolkit/rld-elf-types.h:29,
                 from ../rtemstoolkit/rld.h:72,
                 from ../rtemstoolkit/rld-process.h:31,
                 from ../tester/covoar/ObjdumpProcessor.h:16,
                 from ../tester/covoar/DesiredSymbols.h:18,
                 from ../tester/covoar/app_common.h:6,
                 from ../tester/covoar/app_common.cc:40:
../rtemstoolkit/elftoolchain/libelf/libelf.h:33:23: fatal error: sys/queue.h: No such file or directory
 #include <sys/queue.h>
                       ^
compilation terminated.

Waf: Leaving directory `D:/opt/rtems/rsb.git/rtems/build/rtH/rtems-tools.git/build'
#3130 21 months ago fixed doc Chris Johns chrisj@… 19 months ago
Summary

RTEMS Doxygen.in latex output does not build

Description

Doxygen latex output on sync.rtems.org does not build.

Does latex output build on any host? If so which hosts and what tool combination.

If it does not build we should consider defaulting the setting for latex output to "no".

#3401 13 months ago fixed tool Joel Sherrill chrisj@… 7 months ago
Summary

dl06: tms570* Mixed LSB/MSB Error

Description

ld-arm-tms570ls3137_hdk-rtems/arm-rtems5/c/tms570ls3137_hdk/testsuites/libtests' rtems-ld -r /home/joel/rtems-work/rtems-testing/rtems/build-arm-tms570ls3137_hdk-rtems/arm-rtems5/c/tms570ls3137_hdk -O rap -b dl06.pre -e rtems_main -s \

-o dl06.rap dl06-o1.o dl06-o2.o -lm

error: elf:check_file: /data/home/joel/rtems-work/tools/5/bin/../lib/gcc/arm-rtems5/7.3.0/../../../../arm-rtems5/lib/libc.a:lib_a-_Exit.o@23760: Mixed data types not allowed (LSB/MSB).

#3402 13 months ago fixed tool Joel Sherrill chrisj@… 7 months ago
Summary

dl06: mips hurricane Mixed Endian Error

Description

Also occurs on rbtx4925 and rbtx4938

rtems-ld -r /home/joel/rtems-work/rtems-testing/rtems/build-mips-hurricane-rtems/mips-rtems5/c/hurricane -O rap -b dl06.pre -e rtems_main -s \

-o dl06.rap dl06-o1.o dl06-o2.o -lm

error: elf:check_file: /data/home/joel/rtems-work/tools/5/bin/../lib/gcc/mips-rtems5/7.3.0/../../../../mips-rtems5/lib/libc.a:lib_a-_Exit.o@23298: Mixed data types not allowed (LSB/MSB).

#3421 13 months ago wontfix admin Joel Sherrill chrisj@… 7 months ago
Summary

New Trac components for Coverage and Trace

Description

Both coverage and tracing are large enough areas that lumping them into tools or other random categories makes work on them harder to trac.

Please add coverage and tracing. Coverage could be a subcategory of tools.T Tracing could be a standalone component. It has target and tool components.

#2213 4 years ago fixed tool/gcc daniel.cederman Daniel Hellstrom 19 months ago
Summary

Decreased performance for whetstone benchmark using GCC >=4.5

Description

Moving from GCC 4.4.2 to 4.9.2 increases the execution time of the whetstone benchmark on both SPARC and x86. The cause seems to be a single commit. I have submitted a bug report to the GCC bugzilla:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64193

#2325 4 years ago fixed arch/sparc Sebastian Huber Daniel Hellstrom 19 months ago
Summary

Broken console driver infrastructure for SPARC

Description

The stuff in "c/src/lib/libbsp/sparc/shared/uart/cons.c" should get removed and the new Termios device API should be used instead (see also rtems_termios_device_install()).

#2355 4 years ago fixed arch/sparc Sebastian Huber Daniel Hellstrom 18 months ago
Summary

SPARC: Several shared drivers are not SMP ready

Description

Several drivers in c/src/lib/libbsp/sparc/shared/ use interrupt disable/enable for low-level mutual exclusion. This is not enough on SMP configurations.

#2726 3 years ago fixed arch/sparc Sebastian Huber Daniel Hellstrom 19 months ago
Summary

grascs.c: Questionable use of binary semaphore

Description

Use a simple binary semaphore or binary semaphore with inherit priority instead.

c/src/lib/libbsp/sparc/shared/ascs/grascs.c-    
c/src/lib/libbsp/sparc/shared/ascs/grascs.c-  /* Create semaphores for blocking ASCS_TC/TM functions */
c/src/lib/libbsp/sparc/shared/ascs/grascs.c-  if(rtems_semaphore_create(rtems_build_name('A','S','C','0'),1,
c/src/lib/libbsp/sparc/shared/ascs/grascs.c:                        (RTEMS_FIFO|RTEMS_BINARY_SEMAPHORE|
c/src/lib/libbsp/sparc/shared/ascs/grascs.c-                         RTEMS_NO_INHERIT_PRIORITY|RTEMS_LOCAL|
c/src/lib/libbsp/sparc/shared/ascs/grascs.c-                         RTEMS_NO_PRIORITY_CEILING), 0,
c/src/lib/libbsp/sparc/shared/ascs/grascs.c-                        &cfg->tcsem1) != RTEMS_SUCCESSFUL) {
c/src/lib/libbsp/sparc/shared/ascs/grascs.c-    goto init_error2;
c/src/lib/libbsp/sparc/shared/ascs/grascs.c-  }
c/src/lib/libbsp/sparc/shared/ascs/grascs.c-  if(rtems_semaphore_create(rtems_build_name('A','S','C','2'),0,
c/src/lib/libbsp/sparc/shared/ascs/grascs.c:                        (RTEMS_FIFO|RTEMS_BINARY_SEMAPHORE|
c/src/lib/libbsp/sparc/shared/ascs/grascs.c-                         RTEMS_NO_INHERIT_PRIORITY|RTEMS_LOCAL|
c/src/lib/libbsp/sparc/shared/ascs/grascs.c-                         RTEMS_NO_PRIORITY_CEILING), 0,
c/src/lib/libbsp/sparc/shared/ascs/grascs.c-                        &cfg->tcsem2) != RTEMS_SUCCESSFUL) {
#2878 2 years ago fixed arch/sparc David Binderman Daniel Hellstrom 19 months ago
Summary

src/c/src/lib/libbsp/sparc/shared/can/occan.c:1573: broken error checking ?

Description

src/c/src/lib/libbsp/sparc/shared/can/occan.c:1573]: (style) Checking if unsigned variable 'speed=pelican_speed_auto(can)' is less than zero.

Source code is

if ( (speed=pelican_speed_auto(can)) < 0 ){

/* failed */ return RTEMS_IO_ERROR;

}

but

unsigned int speed;

and

static int pelican_speed_auto(occan_priv *priv);

I am not sure which C compiler gets using in rtems, but I do know that gcc compiler flag -Wtype-limits will flag this kind of problem.

#2905 2 years ago fixed arch/sparc Tanu Hari Dixit Daniel Hellstrom 19 months ago
Summary

Merge LEON

Description

Merge LEON

Students: Past, Present, and Potential Students

Status: Some work may be done.

Introduction: Merge Leon RTEMS and mainstream RTEMS merge the Leon DriverManager, samples, and LEON-RTEMS into mainstream RTEMS.

Goal: Concise statement of the overall goal of the project. Refine this initial statement to include: project deliverables (code, docs, testing), required/suggested methodology, standards of quality, possible goal extensions beyond the main objective.

Requirements: List the requirements and level of expertise you estimate are required by the developer tackling this project will have to have: Required level of programming language(s), specific areas of RTEMS or tools, level of familiarity with RTEMS, cross-development, GNU/Linux, etx., development/documentation/testing tools, mathematical/algorithmic background, other desirable skills.

Resources: Current RTEMS developers, papers, etc that may help you in this project.

Acknowledgements

  • who helped and did work

Miscellaneous Sections

As the project progresses, you will need to add build instructions, etc and this page will evolve from a project description into a HOWTO.

References

  • TBD

Other sections: If you have more to say about the project that doesn't fit in the proposed sections of this template, feel free to add other sections at will.

#2924 2 years ago fixed arch/sparc Joel Sherrill Daniel Hellstrom 19 months ago
Summary

Warnings in SPARC BSPs

Description

As of today, the following warnings exist for SPARC BSPs.

log/sparc-leon2.log:../../../../../../../../rtems/c/src/lib/libbsp/sparc/leon2/console/debugputs.c:43:5: warning: this 'while' clause does not guard... [-Wmisleading-indentation] log/sparc-leon2.log:../../../../../../../../rtems/c/src/lib/libbsp/sparc/leon2/../../sparc/shared/amba/ahbstat.c:156:3: warning: implicit declaration of function 'printk' [-Wimplicit-function-declaration] log/sparc-leon2.log:../../../../../../../../rtems/c/src/lib/libbsp/sparc/leon2/../../sparc/shared/amba/ahbstat.c:156:3: warning: nested extern declaration of 'printk' [-Wnested-externs] log/sparc-leon2.log:../../../../../../../../rtems/c/src/lib/libbsp/sparc/leon2/../../sparc/shared/drvmgr/ambapp_bus.c:647:4: warning: implicit declaration of function 'printk' [-Wimplicit-function-declaration] log/sparc-leon2.log:../../../../../../../../rtems/c/src/lib/libbsp/sparc/leon2/../../sparc/shared/drvmgr/ambapp_bus.c:647:4: warning: nested extern declaration of 'printk' [-Wnested-externs] log/sparc-leon2.log:../../../../../../../../rtems/c/src/lib/libbsp/sparc/leon2/../../sparc/shared/drvmgr/leon2_amba_bus.c:168:3: warning: implicit declaration of function 'printk' [-Wimplicit-function-declaration] log/sparc-leon2.log:../../../../../../../../rtems/c/src/lib/libbsp/sparc/leon2/../../sparc/shared/drvmgr/leon2_amba_bus.c:168:3: warning: nested extern declaration of 'printk' [-Wnested-externs] log/sparc-leon2.log:../../../../../../../../rtems/c/src/lib/libbsp/sparc/leon2/../../sparc/shared/irq/genirq.c:244:3: warning: implicit declaration of function 'printk' [-Wimplicit-function-declaration] log/sparc-leon2.log:../../../../../../../../rtems/c/src/lib/libbsp/sparc/leon2/../../sparc/shared/irq/genirq.c:244:3: warning: nested extern declaration of 'printk' [-Wnested-externs] log/sparc-leon2.log:../../../../../../../../rtems/c/src/lib/libbsp/sparc/leon2/../../sparc/shared/spw/grspw_router.c:213:4: warning: implicit declaration of function 'printk' [-Wimplicit-function-declaration] log/sparc-leon2.log:../../../../../../../../rtems/c/src/lib/libbsp/sparc/leon2/../../sparc/shared/spw/grspw_router.c:213:4: warning: nested extern declaration of 'printk' [-Wnested-externs] log/sparc-leon2.log:../../../../../../../../rtems/c/src/lib/libbsp/sparc/leon2/../../sparc/shared/uart/apbuart.c:574:21: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'apbuart_priv * {aka struct <anonymous> *}' [-Wformat=] log/sparc-leon3.log:../../../../../../../../rtems/c/src/lib/libbsp/sparc/leon3/../../sparc/shared/amba/ahbstat.c:156:3: warning: implicit declaration of function 'printk' [-Wimplicit-function-declaration] log/sparc-leon3.log:../../../../../../../../rtems/c/src/lib/libbsp/sparc/leon3/../../sparc/shared/amba/ahbstat.c:156:3: warning: nested extern declaration of 'printk' [-Wnested-externs] log/sparc-ngmp.log:../../../../../../../../rtems/c/src/lib/libbsp/sparc/leon3/../../sparc/shared/amba/ahbstat.c:156:3: warning: implicit declaration of function 'printk' [-Wimplicit-function-declaration] log/sparc-ngmp.log:../../../../../../../../rtems/c/src/lib/libbsp/sparc/leon3/../../sparc/shared/amba/ahbstat.c:156:3: warning: nested extern declaration of 'printk' [-Wnested-externs] log/sparc-leon3.log:../../../../../../../../rtems/c/src/lib/libbsp/sparc/leon3/../../sparc/shared/drvmgr/ambapp_bus.c:647:4: warning: implicit declaration of function 'printk' [-Wimplicit-function-declaration] log/sparc-leon3.log:../../../../../../../../rtems/c/src/lib/libbsp/sparc/leon3/../../sparc/shared/drvmgr/ambapp_bus.c:647:4: warning: nested extern declaration of 'printk' [-Wnested-externs] log/sparc-ngmp.log:../../../../../../../../rtems/c/src/lib/libbsp/sparc/leon3/../../sparc/shared/drvmgr/ambapp_bus.c:647:4: warning: implicit declaration of function 'printk' [-Wimplicit-function-declaration] log/sparc-ngmp.log:../../../../../../../../rtems/c/src/lib/libbsp/sparc/leon3/../../sparc/shared/drvmgr/ambapp_bus.c:647:4: warning: nested extern declaration of 'printk' [-Wnested-externs] log/sparc-leon3.log:../../../../../../../../rtems/c/src/lib/libbsp/sparc/leon3/../../sparc/shared/irq/genirq.c:244:3: warning: implicit declaration of function 'printk' [-Wimplicit-function-declaration] log/sparc-leon3.log:../../../../../../../../rtems/c/src/lib/libbsp/sparc/leon3/../../sparc/shared/irq/genirq.c:244:3: warning: nested extern declaration of 'printk' [-Wnested-externs] log/sparc-ngmp.log:../../../../../../../../rtems/c/src/lib/libbsp/sparc/leon3/../../sparc/shared/irq/genirq.c:244:3: warning: implicit declaration of function 'printk' [-Wimplicit-function-declaration] log/sparc-ngmp.log:../../../../../../../../rtems/c/src/lib/libbsp/sparc/leon3/../../sparc/shared/irq/genirq.c:244:3: warning: nested extern declaration of 'printk' [-Wnested-externs] log/sparc-leon3.log:../../../../../../../../rtems/c/src/lib/libbsp/sparc/leon3/../../sparc/shared/spw/grspw_router.c:213:4: warning: implicit declaration of function 'printk' [-Wimplicit-function-declaration] log/sparc-leon3.log:../../../../../../../../rtems/c/src/lib/libbsp/sparc/leon3/../../sparc/shared/spw/grspw_router.c:213:4: warning: nested extern declaration of 'printk' [-Wnested-externs] log/sparc-ngmp.log:../../../../../../../../rtems/c/src/lib/libbsp/sparc/leon3/../../sparc/shared/spw/grspw_router.c:213:4: warning: implicit declaration of function 'printk' [-Wimplicit-function-declaration] log/sparc-ngmp.log:../../../../../../../../rtems/c/src/lib/libbsp/sparc/leon3/../../sparc/shared/spw/grspw_router.c:213:4: warning: nested extern declaration of 'printk' [-Wnested-externs] log/sparc-leon3.log:../../../../../../../../rtems/c/src/lib/libbsp/sparc/leon3/../../sparc/shared/uart/apbuart.c:574:21: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'apbuart_priv * {aka struct <anonymous> *}' [-Wformat=] log/sparc-ngmp.log:../../../../../../../../rtems/c/src/lib/libbsp/sparc/leon3/../../sparc/shared/uart/apbuart.c:574:21: warning: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'apbuart_priv * {aka struct <anonymous> *}' [-Wformat=]

#2930 2 years ago fixed score Joel Sherrill Daniel Hellstrom 19 months ago
Summary

Coverity Reports Out of Bounds Read in drvmgr_print.c

Description

https://scan5.coverity.com/reports.htm#v29808/p10069/fileInstanceId=109359850&defectInstanceId=30967449&mergedDefectId=1399730

354 printf(" DRIVER ID: 0x%llx\n", drv->drv_id);

  1. Condition drv->name, taking true branch.

355 printf(" NAME: %s\n", drv->name ? drv->name : "NO_NAME"); 356 printf(" BUS TYPE: %d\n", drv->bus_type); 357 printf(" OPERATIONS:\n");

  1. alias: Assigning: ppfunc = &drv->ops->init[0]. ppfunc now points to element 0 of drv->ops->init (which consists of 4 4-byte elements).
  2. Condition i < 6U /* sizeof (struct drvmgr_drv_ops) / sizeof (void (*)(void)) */, taking true branch.
  3. Condition i < 6U /* sizeof (struct drvmgr_drv_ops) / sizeof (void (*)(void)) */, taking true branch.
  4. cond_at_most: Checking i < 6U implies that i may be up to 5 on the true branch.

358 for (i = 0, ppfunc = (fun_ptr *)&drv->ops->init[0]; 359 i < DRVMGR_OPS_NUM(struct drvmgr_drv_ops); i++)

  1. Jumping back to the beginning of the loop.

CID 1399730 (#1 of 1): Out-of-bounds read (OVERRUN)

  1. overrun-local: Overrunning array of 4 4-byte elements at element index 5 (byte offset 20) by dereferencing pointer ppfunc + i.

360 printf(" %s %p\n", drv_ops_names[i], ppfunc[i]); 361 printf(" NO. DEVICES: %d\n", drv->dev_cnt); 362

#2945 2 years ago worksforme unspecified Joel Sherrill Daniel Hellstrom 19 months ago
Summary

Many failures on LEON3 with SMP disabled

Description

There are approximately ~100 failures, timeouts, etc on the LEON3 BSP. See this thread for some discussion where Jiri notes it is broken on his checkout from December:

https://lists.rtems.org/pipermail/devel/2017-March/017277.html

Passed: 458 Failed: 20 Timeouts: 73 Invalid: 3


Total: 554

Failures:

cdtest.exe spintrcritical20.exe dl05.exe spintrcritical01.exe spintrcritical04.exe spintrcritical10.exe spintrcritical22.exe sp69.exe spintrcritical21.exe sp11.exe spintrcritical16.exe spintrcritical23.exe psxfile01.exe spintrcritical05.exe spintrcritical02.exe spintrcritical08.exe psxgetrusage01.exe spcpucounter01.exe spintrcritical03.exe psxtimes01.exe

Timeouts:

nsecs.exe sptask_err02.exe spprivenv01.exe psxkey03.exe psxsignal01.exe psx06.exe psx10.exe sp04.exe mrfs_fstime.exe ticker.exe psxmsgq03.exe psxkey09.exe psx07.exe sptimerserver01.exe psxusleep.exe psxstack02.exe psxkey07.exe psxkey10.exe stackchk.exe sp01.exe fileio.exe spsimplesched01.exe sp03.exe psxcond01.exe sp65.exe sp62.exe psx11.exe psx12.exe psx02.exe imfs_fstime.exe crypt01.exe psxstack01.exe spcbssched01.exe termios.exe mimfs_fstime.exe psxsignal02.exe psx08.exe top.exe psxrwlock01.exe sp22.exe psxsignal04.exe psxkey04.exe mouse01.exe sp24.exe psx04.exe spedfsched01.exe uid01.exe mdosfs_fstime.exe psx16.exe psxaio03.exe sp19.exe psxtime.exe psx09.exe psxkey06.exe psxclock.exe cpuuse.exe psx05.exe sp66.exe psxsignal03.exe capture.exe sp30.exe psxcleanup.exe psxcancel.exe jffs2_fstime.exe psxsignal06.exe spstdthreads01.exe psxbarrier01.exe sp31.exe sp73.exe psxualarm.exe spfifo03.exe psxtimer01.exe monitor.exe

Invalid:

cxx_iostream.exe spinternalerror01.exe sptimecounter01.exe

#3006 2 years ago fixed arch/sparc Chris Johns Daniel Hellstrom 19 months ago
Summary

SPARC LEON3 BSP SMP build is broken.

Description

The rtems-bsp-builder failure output is:

   2 smp-debug sparc/leon3 build:
      configure: /opt/work/chris/rtems/kernel/rtems.git/configure --target\
      =sparc-rtems4.12 --enable-rtemsbsp=leon3 --prefix=/opt/rtems/4.12\
      --enable-debug --enable-smp --enable-tests
      error: c/src/lib/libbsp/sparc/shared/spw/grspw_pkt.c:61:2 error:
      #error SMP mode not compatible with these interrupt lock primitives

The BSP builder command line is:

RTEMS Tools Project - RTEMS Kernel BSP Builder, 4.12.not_released
command: /opt/work/rtems/4.12/bin/rtems-bsp-builder --rtems-\
         tools=/build/rtems/tools/4.12\
         --rtems=/opt/work/chris/rtems/kernel/rtems.git --build=smp-debug\
         --log=x
#3057 23 months ago fixed tool/gcc Sebastian Huber Daniel Hellstrom 19 months ago
Summary

Add a workaround for the LEON3FT store-store errata

Description

GCC needs support to provide a workaround for the LEON3FT store-store errata, e.g.

https://gcc.gnu.org/ml/gcc-patches/2017-06/msg01577.html

and follow up versions.

#3072 23 months ago fixed arch/sparc Sebastian Huber Daniel Hellstrom 19 months ago
Summary

Declaration of global functions in driver source files

Description

There are declarations of global functions in various driver source files, e.g.

c/src/lib/libbsp/sparc/shared/drvmgr/ambapp_bus_grlib.c c/src/lib/libbsp/sparc/shared/drvmgr/ambapp_bus.c

The declaration should move to a header file or a static function should be used.

#3089 22 months ago fixed fs Fan Deng Fan Deng 14 months ago
Summary

Inconsistent blocking addressing in RFS

Description

Background There are two ways to address a block in RFS:

  1. Via a single 32bit block number (bno)
  2. Via a group number(gno) and a bit offset (bit)

They should be fully convertible (1-1 mapping). In other words, the equation to convert 1 to 2 should be unique within the RFS implementation.

The bug The RFS implementation contains two different conversions between 1 and 2.

Details

  1. In rtems_rfs_group_bitmap_alloc (rtems-rfs-group.c, line 172)
    bno = gno * group_blocks + bit
    
  1. In rtems_rfs_group_bitmap_alloc (rtems-rfs-group.c, line 228)
    bno = gno * group_blocks + bit + 1 (via rtems_rfs_group_block() function)
    
  1. In rtems_rfs_group_bitmap_free (rtems-rfs-group.c, line 283)
    bno = gno * group_blocks + bit + 1 (RTEMS_RFS_SUPERBLOCK_SIZE)
    
  1. In rtems_rfs_group_bitmap_test (rtems-rfs-group.c, line 332)
    bno = gno * group_blocks + bit
    

To summarize, the implementation contains two ways of converting a bno to a (gno, bit) pair:

Either:

bno = gno * group_blocks + bit

Or:

bno = gno * group_blocks + bit + 1

The Fix The RFS implementation should consistently convert a bno to a (gno, bit) pair with:

bno = gno * group_blocks + bit + RTEMS_RFS_SUPERBLOCK_SIZE

This is because the superblock is not accounted for in the block bitmaps. So places to change:

  1. rtems-rfs-group.c: all references to the conversion must be updated to use RTEMS_RFS_SUPERBLOCK_SIZE explicitly.
  1. rtems_rfs_group_block converts the pair to bno via:
    #define rtems_rfs_group_block(_g, _b) (((_g)->base) + (_b))
    

(_g)->base is calculated via rtems-rfs-format.c from:

#define rtems_rfs_fs_block(_fs, _grp, _blk) \
  ((((_fs)->group_blocks) * (_grp)) + (_blk) + 1)

The "+ 1" part should really be "+ RTEMS_RFS_SUPERBLOCK_SIZE" to be logically correct. As RTEMS_RFS_SUPERBLOCK_SIZE itself has a comment saying:

/**
 * Number of blocks in the superblock. Yes I know it is a superblock and not
 * superblocks but if for any reason this needs to change it is handled.
 */
#define RTEMS_RFS_SUPERBLOCK_SIZE (1)
#2515 3 years ago fixed unspecified Gedare Bloom Gedare Bloom 19 months ago
Summary

i386 score/libcpu API Layering Violation

Description

The file libcpu/i386/cpu.h provides functions referenced in rtems/score/i386.h Relatedly, libcpu/i386/cpu.h is the only other consumer than score/cpu.h of the score/interrupts.h. The libcpu/i386/cpu.h should be refactored into rtems/score/i386.h, which could also then subsume rtems/score/interrupts.h.

#2608 3 years ago fixed posix Joel Sherrill Gedare Bloom 18 months ago
Summary

POSIX Condition Variables Clock Attribute Support

Description

I am beginning to add support for the clock attribute to POSIX condition variables.

http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_condattr_getclock.html

Since the clock can't be a CPU time clock, that leaves CLOCK_MONOTONIC and CLOCK_REALTIME. The thread queue is based on CLOCK_MONOTONIC and does not have an option to use CLOCK_REALTIME. Threads and timers waiting on CLOCK_REALTIME should be impacted by time of day changes.

https://docs.google.com/document/d/1GsGer0t84p-nUfZFim4Ty0LTDYNhgKBvlwip_gLQjTY/edit?usp=sharing is a Google doc with my notes so far in it on POSIX clocks. I will move it to the Wiki as it turns into something more concrete than notes and reflects plans/code.

So the first issue is how best to alter the thread queue to support using either clock source? And what does that do to the current ticks based API since you proposed different time representations for the ticks (relative/monotonic) and seconds (absolute/realtime) structures?

#2732 3 years ago fixed posix Gedare Bloom Gedare Bloom 19 months ago
Summary

Add clock_nanosleep()

Description

The clock_nanosleep function is provided to enable specifying the clock source (CLOCK_REALTIME or CLOCK_MONOTONIC) and to control whether or not to use an absolute or relative reference point via TIMER_ABSTIME flag.

See also: http://pubs.opengroup.org/onlinepubs/009695399/functions/clock_nanosleep.html

#2745 3 years ago fixed posix Gedare Bloom Gedare Bloom 19 months ago
Summary

Use clock from pthread_condattr in pthread_cond_timedwait

Description

For pthread_cond_timedwait, the condition variable shall have a clock attribute which specifies the clock that shall be used to measure the time specified by the abstime argument. RTEMS currently does not honor the clock attribute.

See http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_cond_timedwait.html

#2859 2 years ago fixed posix Gedare Bloom Gedare Bloom 19 months ago
Summary

Implement POSIX Shared Memory Objects

Description

POSIX Shared Memory is a widely used API for inter-process communication. The functions in the API include:

#2957 2 years ago fixed score Sebastian Huber Gedare Bloom 19 months ago
Summary

Shared memory support internal locking is broken

Description

The top level lock is an ISR lock (interrupt disable/enable or SMP lock) and the low level lock is potentially a mutex. The problem is exposed by test psxshm02:

#0  _Terminate (the_source=INTERNAL_ERROR_CORE, the_error=31) at ../../../../../../rtems/c/src/../../cpukit/score/src/interr.c:35
#1  0x00111654 in _Internal_error (core_error=INTERNAL_ERROR_BAD_THREAD_DISPATCH_ENVIRONMENT) at ../../../../../../rtems/c/src/../../cpukit/score/src/interr.c:52
#2  0x00117010 in _Thread_Do_dispatch (cpu_self=0x2035c0 <_Per_CPU_Information>, level=1611071955) at ../../../../../../rtems/c/src/../../cpukit/score/src/threaddispatch.c:190
#3  0x0011a568 in _Thread_Dispatch_enable (cpu_self=0x2035c0 <_Per_CPU_Information>) at ../../cpukit/../../../realview_pbx_a9_qemu/lib/include/rtems/score/threaddispatch.h:227
#4  0x0011b6c4 in _Thread_Change_life (clear=THREAD_LIFE_PROTECTED, set=THREAD_LIFE_PROTECTED, ignore=(unknown: 0)) at ../../../../../../rtems/c/src/../../cpukit/score/src/threadrestart.c:684
#5  0x0011b6ea in _Thread_Set_life_protection (state=THREAD_LIFE_PROTECTED) at ../../../../../../rtems/c/src/../../cpukit/score/src/threadrestart.c:691
#6  0x0010f3dc in _API_Mutex_Lock (the_mutex=0x2037d8) at ../../../../../../rtems/c/src/../../cpukit/score/src/apimutexlock.c:31
#7  0x001050a0 in _RTEMS_Lock_allocator () at ../../cpukit/../../../realview_pbx_a9_qemu/lib/include/rtems/score/apimutex.h:120
#8  0x00105442 in rtems_heap_allocate_aligned_with_boundary (size=10004, alignment=0, boundary=0) at ../../../../../../rtems/c/src/../../cpukit/libcsupport/src/malloc_deferred.c:89
#9  0x001055a6 in malloc (size=10004) at ../../../../../../rtems/c/src/../../cpukit/libcsupport/src/malloc.c:39
#10 0x0011e820 in realloc (ptr=0x0, size=10004) at ../../../../../../rtems/c/src/../../cpukit/libcsupport/src/realloc.c:62
#11 0x0010b1a2 in _POSIX_Shm_Object_resize_from_heap (shm_obj=0x204870, size=10004) at ../../../../../../rtems/c/src/../../cpukit/posix/src/shmheap.c:59
#12 0x0010b6ac in shm_ftruncate (iop=0x202cf8 <rtems_libio_iops+168>, length=10004) at ../../../../../../rtems/c/src/../../cpukit/posix/src/shmopen.c:83
#13 0x00104cfc in ftruncate (fd=3, length=10004) at ../../../../../../rtems/c/src/../../cpukit/libcsupport/src/ftruncate.c:37
#14 0x001008e0 in POSIX_Init (argument=0x0) at ../../../../../../../rtems/c/src/../../testsuites/psxtests/psxshm02/init.c:54
#15 0x001201ee in _Thread_Entry_adaptor_pointer (executing=0x2041a8) at ../../../../../../rtems/c/src/../../cpukit/score/src/threadentryadaptorpointer.c:25
#16 0x00120302 in _Thread_Handler () at ../../../../../../rtems/c/src/../../cpukit/score/src/threadhandler.c:88
#3011 2 years ago worksforme arch/arm Arturo Pérez Gedare Bloom 19 months ago
Summary

Error compiling xilinx_zynq_zedboard.

Description

I encountered an error compiling the xilinx_zynq_zedboard BSP. I am using a built of the RSB that I compiled in December. With that built of the RSB I could built this BSP several times until I did a git pull of the RTEMS repo two weeks ago. Today I updated my repos of the RTEMS and RSB sources, I rebuilt the RSB and I tried to built again the xilinx_zynq_zedboard BSP, encountering the same error:

gmake[6]: * No rule to make target posix/include/sys/mman.h', needed by ../cpukit/../../../xilinx_zynq_zedboard/lib/include/sys/mman.h'. Stop.

#3341 15 months ago fixed arch/sparc64 Joel Sherrill Gedare Bloom 14 months ago
Summary

sparc64: Macro Redefined

Description

log/sparc64-usiii.log:/home/joel/rtems-work/rtems-testing/rtems/rtems/bsps/sparc64/include/arch/stack.h:56:0: warning: "STACK_BIAS" redefined

This is defined in two header files with the same value. Not sure what the proper fix is.

#3694 3 months ago fixed fs Joel Sherrill Gedare Bloom 2 months ago
Summary

shm_open has logically unreachable code (Coverity ID: 1399706, 1399714)

Description

Coverity ID: 1399706 and 1399714 File: shmopen.c Method: shm_open for first

   	dead_error_condition: The condition oflag & 0 cannot be true.
289  if ( oflag & O_RDONLY ) {
   	
CID 1399706 (#1 of 1): Logically dead code (DEADCODE)
dead_error_line: Execution cannot reach this statement: flags |= 2U;.
290    flags |= LIBIO_FLAGS_READ;
291  } else {

URL: https://scan5.coverity.com/reports.htm#v29811/p10069/fileInstanceId=153084281&defectInstanceId=42558012&mergedDefectId=1399706&fileStart=1&fileEnd=250

Same issue at other place in same file:

197  int flags;
   	dead_error_condition: The condition oflag & 0 cannot be true.
198  if ( oflag & O_RDONLY ) {
   	
CID 1399714 (#1 of 1): Logically dead code (DEADCODE)
dead_error_line: Execution cannot reach this statement: flags = 4;.
199    flags = RTEMS_FS_PERMS_READ;
200  } else {
#3109 21 months ago fixed arch/riscv Sebastian Huber Hesham Almatary 9 months ago
Summary

Add RISC-V support

Description

Add RISC-V 32-bit tool chain to RSB consisting of Binutils, GCC, Newlib and GDB. Add CPU port and a basic simulator BSP.

#3129 21 months ago fixed tool Chris Johns joel 18 months ago
Summary

RTEMS Tools covoar build fails on Windows

Description

The following warnings and errors are present so the RSB tools do not finish and install:

[ 97/150] Compiling linkers/rtems-syms.cpp
[ 98/150] Compiling linkers/rtems-rapper.cpp
[ 99/150] Compiling linkers/rtems-exeinfo.cpp
In file included from ../rtemstoolkit/rld-files.cpp:30:0:
../rtemstoolkit/rld-files.cpp: In destructor 'virtual rld::files::image::~image()':
../rtemstoolkit/rld.h:111:75: warning: throw will always call terminate() [-Wterminate]
     rld::error (_what, std::string (__FILE__) + ":" + to_string (__LINE__))
                                                                           ^
../rtemstoolkit/rld-files.cpp:256:15: note: in expansion of macro 'rld_error_at'
         throw rld_error_at ("references when destructing image");
               ^~~~~~~~~~~~
../rtemstoolkit/rld.h:111:75: note: in C++11 destructors default to noexcept
     rld::error (_what, std::string (__FILE__) + ":" + to_string (__LINE__))
                                                                           ^
../rtemstoolkit/rld-files.cpp:256:15: note: in expansion of macro 'rld_error_at'
         throw rld_error_at ("references when destructing image");
               ^~~~~~~~~~~~

[100/150] Compiling tester/covoar/app_common.cc
[101/150] Compiling tester/covoar/CoverageFactory.cc
[102/150] Compiling tester/covoar/CoverageMap.cc
[103/150] Compiling tester/covoar/CoverageMapBase.cc
[104/150] Compiling tester/covoar/CoverageRanges.cc
[105/150] Compiling tester/covoar/CoverageReaderBase.cc
[106/150] Compiling tester/covoar/CoverageReaderQEMU.cc
[107/150] Compiling tester/covoar/CoverageReaderRTEMS.cc
[108/150] Compiling tester/covoar/CoverageReaderSkyeye.cc
[109/150] Compiling tester/covoar/CoverageReaderTSIM.cc
[110/150] Compiling tester/covoar/CoverageWriterBase.cc
[111/150] Compiling tester/covoar/CoverageWriterRTEMS.cc
[112/150] Compiling tester/covoar/CoverageWriterSkyeye.cc
[113/150] Compiling tester/covoar/CoverageWriterTSIM.cc
[114/150] Compiling tester/covoar/DesiredSymbols.cc
[115/150] Compiling tester/covoar/ExecutableInfo.cc
[116/150] Compiling tester/covoar/Explanations.cc
[117/150] Compiling tester/covoar/GcovData.cc
[118/150] Compiling tester/covoar/GcovFunctionData.cc
[119/150] Compiling tester/covoar/ObjdumpProcessor.cc
../tester/covoar/DesiredSymbols.cc: In member function 'void Coverage::DesiredSymbols::determineSourceLines(Coverage::CoverageRanges*, Coverage::ExecutableInfo*)':
../tester/covoar/DesiredSymbols.cc:517:36: error: 'realpath' was not declared in this scope
       realpath( inputBuffer, rpath );
                                    ^

Waf: Leaving directory `D:/opt/rtems/rtems-tools.git/build'
Build failed
 -> task in 'ccovoar' failed with exit status 1 (run with -v to display more information)
#2173 5 years ago fixed score Sebastian Huber Joel Sherrill 19 months ago
Summary

Potential integer overflow problem in EDF scheduler

Description

On 2014-03-21 14:46, Gedare Bloom wrote:> On Fri, Mar 21, 2014 at 9:43 AM, Sebastian Huber

<sebastian.huber@…> wrote:

[...]

I have another question regarding the EDF scheduler. Does this work in case _Watchdog_Ticks_since_boot overflows?

No. For this, I think we need to use "deadline folding" which is just modulo arithmetic.

void _Scheduler_EDF_Release_job(

Thread_Control *the_thread, uint32_t deadline

) {

Priority_Control new_priority;

if (deadline) {

/* Initializing or shifting deadline. */ new_priority = (_Watchdog_Ticks_since_boot + deadline)

& ~SCHEDULER_EDF_PRIO_MSB;

} else {

/* Switch back to background priority. */ new_priority = the_thread->Start.initial_priority;

}

the_thread->real_priority = new_priority; _Thread_Change_priority(the_thread, new_priority, true);

}

_Watchdog_Ticks_since_boot us uint32_t and overflows after 49 days with a one millisecond clock tick.

#2176 5 years ago wontfix score Jeffrey Hill Joel Sherrill 19 months ago
Summary

fishy behavior in termios tx task mode

Description

I have a look around in the drivers in the various BSPs and I notice that none of the termios drivers appear to transmit characters at task level even if they are running in termios task mode. Maybe all (most) of them send characters in the ISR. If there was a large frame of characters to send then this could lock out task activity for too long.

FWIW, I had a closer look at this today, and maybe something is fishy in the termios code when the TX part of termios runs in task driven mode. It seems that in task mode if the UART can accept characters immediately in the write routine then we wouldn’t need to turn on any interrupts at all. The write routine would need to somehow tell termios how many characters it sent; presumably this would occur by calling rtems_termios_dequeue_characters in the driver's write function. I see in the code that this tries to work, rtems_termios_dequeue_characters posts the semaphore of termios tx and increases the characters sent count of termios. However after the write routine returns it goes badly.

If the transmitter runs in termios TASK mode and the driver's write routine does not immediately enable an interrupt, then it returns to the code below in rtems_termios_puts and it sets the transmitter to rob_busy. After that the termios tx daemon proceeds to step through all of the characters remaining (I think that I see this in the debugger) and discards them because the transmitter stays in rob_busy state.

It's also probably odd that termios calls the write function with interrupts disabled when it is in task driven mode; we could loop outputting a large frame of characters in the write routine at task level with interrupts globally disabled.

if (tty->rawOutBufState == rob_idle) {

/* check, whether XOFF has been received */ if (!(tty->flow_ctrl & FL_ORCVXOF)) {

(*tty->device.write)(tty->minor,

(char *)&tty->rawOutBuf.theBuf[tty->rawOutBuf.Tail],1);

} else {

/* remember that output has been stopped due to flow ctrl*/ tty->flow_ctrl |= FL_OSTOP;

} tty->rawOutBufState = rob_busy;

}

[debug]#0 rtems_termios_puts (_buf=0x9ca60, len=1, tty=0x11509c) at /home/hill/nios2-rtems/rtems/rtems-git/rtems-4.10/c/src/../../cpukit/libcsupport/src/termios.c:677 [debug]#1 0x00015c68 in oproc (c=99 'c', tty=0x11509c) at /home/hill/nios2-rtems/rtems/rtems-git/rtems-4.10/c/src/../../cpukit/libcsupport/src/termios.c:748 [debug]#2 0x00015d9c in rtems_termios_write (arg=0x9cad8) at /home/hill/nios2-rtems/rtems/rtems-git/rtems-4.10/c/src/../../cpukit/libcsupport/src/termios.c:770 [debug]#3 0x00002ef0 in console_write (major=0, minor=0, arg=0x9cad8) at /home/hill/nios2-rtems/rtems/rtems-git/rtems-4.10/c/src/lib/libbsp/nios2/altera-sys-config/./console/console.c:171 [debug]#4 0x0006c328 in rtems_io_write (major=0, minor=0, argument=0x9cad8) at /home/hill/nios2-rtems/rtems/rtems-git/rtems-4.10/c/src/../../cpukit/sapi/src/iowrite.c:47 [debug]#5 0x00068044 in device_write (iop=0x114988, buffer=0x3366d4, count=44) at /home/hill/nios2-rtems/rtems/rtems-git/rtems-4.10/c/src/../../cpukit/libfs/src/imfs/deviceio.c:160 [debug]#6 0x00017ef4 in write (fd=1, buffer=0x3366d4, count=44) at /home/hill/nios2-rtems/rtems/rtems-git/rtems-4.10/c/src/../../cpukit/libcsupport/src/write.c:51 [debug]#7 0x0007f078 in _write_r (ptr=0x9d638, fd=1, buf=0x3366d4, nbytes=44) at /home/hill/nios2-rtems/rtems/rtems-git/rtems-4.10/c/src/../../cpukit/libcsupport/src/write_r.c:38 [debug]#8 0x0006d488 in _fflush_r (ptr=0x9d638, fp=0x9d98c) at ../../../../../../nios2-rtems/altera/altera11.0/gnu-tools/rtems-patched/gcc-4.1/newlib/libc/stdio/fflush.c:214 [debug]#9 0x000754e8 in sfvwrite_r (ptr=0x9d638, fp=0x9d98c, uio=0x9cbe0) at ../../../../../../nios2-rtems/altera/altera11.0/gnu-tools/rtems-patched/gcc-4.1/newlib/libc/stdio/fvwrite.c:257 [debug]#10 0x0007830c in sprint_r (ptr=0x9d638, fp=0x20, uio=0x9cbe0) at ../../../../../../nios2-rtems/altera/altera11.0/gnu-tools/rtems-patched/gcc-4.1/newlib/libc/stdio/vfprintf.c:322 [debug]#11 0x00072fc8 in _vfprintf_r (data=0x9d638, fp=0x9d98c, fmt0=<value optimized out>, ap=0x0) at ../../../../../../nios2-rtems/altera/altera11.0/gnu-tools/rtems-patched/gcc-4.1/newlib/libc/stdio/vfprintf.c:1501 [debug]#12 0x0006dce8 in printf (fmt=0x1 "") at ../../../../../../nios2-rtems/altera/altera11.0/gnu-tools/rtems-patched/gcc-4.1/newlib/libc/stdio/printf.c:52 [debug]#13 0x00057de0 in bootpc_init (update_files=false, forever=true) at /home/hill/nios2-rtems/rtems/rtems-git/rtems-4.10/c/src/../../cpukit/libnetworking/nfs/bootp_subr.c:997 [debug]#14 0x0002960c in rtems_bsdnet_do_bootp () at /home/hill/nios2-rtems/rtems/rtems-git/rtems-4.10/c/src/../../cpukit/libnetworking/rtems/rtems_bootp.c:23 [debug]#15 0x0002b218 in rtems_bsdnet_initialize_network () at /home/hill/nios2-rtems/rtems/rtems-git/rtems-4.10/c/src/../../cpukit/libnetworking/rtems/rtems_glue.c:980 [debug]#16 0x00001528 in Init (ignored=565432) at init.c:47 [debug]#17 0x0006ccb0 in _Thread_Handler () at /home/hill/nios2-rtems/rtems/rtems-git/rtems-4.10/c/src/../../cpukit/score/src/threadhandler.c:145 [debug]#18 0x0006cc28 in _Thread_Is_heir (the_thread=0x6cc28) at ../../cpukit/../../../altera-sys-config/lib/include/rtems/score/thread.inl:82 [debug]Backtrace stopped: frame did not save the PC

#2407 4 years ago fixed build Sebastian Huber Joel Sherrill 19 months ago
Summary

Enable function and data sections

Description

In order to reduce the size of executables it is beneficial to put all global functions and data into separate sections. This enables the linker to perform a garbage collection which removes all items not directly referenced. The following steps are necessary:

  1. Modify the build system to use the following compiler and linker flags:

CFLAGS += -ffunction-sections -fdata-sections LDFLAGS += -Wl,--gc-sections

  1. Review all linker command files and ensure that linker sets and global constructor sections are not affected by the garbage collection (e.g. use the KEEP() directive of GNU ld).
#2446 4 years ago fixed unspecified Joel Sherrill Joel Sherrill 19 months ago
Summary

Remove M32R Architectural Port

Description

Remove the M32R port per the instructions at ​https://devel.rtems.org/wiki/Developer/Removing_a_Port.

All BSPa must be removed before the architectural port can be removed. These are tracked by the following tickets:

#2447 - m32rsim

Rationale: The M32R port is incomplete, appears to have no users, and the CPU architecture is end-of-lifed.

#2452 4 years ago fixed unspecified Joel Sherrill Joel Sherrill 7 months ago
Summary

Remove H8300 Architectual Port

Description

Remove the H8300 port per the instructions at ​https://devel.rtems.org/wiki/Developer/Removing_a_Port.

All BSPa must be removed before the architectural port can be removed. These are tracked by the following tickets:

#2453 - h8sim

Rationale: The h8 has been end of lifed. There do not appear to be any users based up questions and tickets filed. The architecture itself has issues which lead to breakages in gcc (which do get fixed though often slowly) and those same issues force us to disable some features like iconv in newlib. With no users, end of life, and tool issues, it is time to remove it.

#2509 3 years ago fixed tool/website Santosh Vattam Joel Sherrill 19 months ago
Summary

Should "https://devel.rtems.org/wiki/TBR/Delete/BSP_Template" be replaced?

Description

As part of the GCI Task https://codein.withgoogle.com/dashboard/task-instances/5106463810781184/?sp-page=1, the student has created a new page with a corrected template and placed it under "UserManual?" at: https://devel.rtems.org/wiki/TBR/UserManual/Submitting_a_BSP/BSP_Template Is it a good idea to replace the older page with the newly created page?

#2537 3 years ago fixed unspecified Joel Sherrill Joel Sherrill 19 months ago
Summary

Use Newlib exec*() variants and remove RTEMS versions

Description

In reviewing RTEMS+newlib POSIX conformance, I noticed that our newlib configuration does include the exec*() variants. All of these call _execve() which we already provided.

This ticket is just to explain the removal of the RTEMS copies. The functional behavior to the user is still to return ENOSYS.

#2543 3 years ago fixed unspecified Joel Sherrill Joel Sherrill 19 months ago
Summary

Obsolete gen68302 BSP

Description

Delete the gen68302 BSP after 4.11 and before 4.12.

#2544 3 years ago duplicate unspecified Joel Sherrill Joel Sherrill 19 months ago
Summary

Osolete m68k/ods68302

Description

Obsolete and remove the ods68302 BSP before 4.12.

#2545 3 years ago fixed unspecified Joel Sherrill Joel Sherrill 19 months ago
Summary

Obsolete mbx8xx BSP

Description

Obsolete and remove.

#2546 3 years ago fixed arch/m68k Joel Sherrill Joel Sherrill 19 months ago
Summary

Obsolete idp BSP

Description

Obsolete and remove the m68k/idp BSP before the 4.12 release.

#2810 3 years ago fixed arch/sparc Joel Sherrill Joel Sherrill 19 months ago
Summary

Remove sparc/sis BSP variant

Description

As discussed in the following thread, the sparc/sis BSP variant is no longer necessary and can be removed.

https://lists.rtems.org/pipermail/devel/2016-November/016383.html

This ticket is to track that removal.

#2836 2 years ago fixed score Joel Sherrill Joel Sherrill 19 months ago
Summary

Add posix_devctl()

Description

The posix_devctl() method is defined in POSIX 1003.26 and required by the FACE POSIX profiles. The only use case that needs to be supported is FIONBIO on sockets per the FACE Technical Standard.

ioctl() is not a standardized method per POSIX and is not included in the FACE Profiles.

Making operations non-blocking can also be done with fcntl() but due to RTOS qualification concerns, fcntl() is not included in the more stringent FACE profiles. Specifically, it is not in the Safety Base profile which matches the RTEMS POSIX capabilities.

This requires adding the <devctl.h> file to newlib. That has been done. I am testing my implementation but a tool update will be needed before this can be pushed to the community. This is OK because we have other reasons to move to a new gcc and newlib version soon.

#2863 2 years ago duplicate doc Joel Sherrill Joel Sherrill 19 months ago
Summary

Update POSIX 1003.1 Compliance Guide for ReST

Description

The POSIX 1003.1 Compliance Guide should be auto-generated from a spreadsheet into the ReST format. My vague recollection is that we used shell scripts to do this for texinfo output.

I will have to decipher what we used to do and define a new procedure.

This impacts 4.11 and newer. One issue is having correct information for what methods are present on a branch. The FACE Conformance Test Suite can be used for ~800 of the methods.

#3000 2 years ago fixed score Chris Johns Joel Sherrill 5 months ago
Summary

Setting interrupt level in the mode arg on SMP returns RTEMS_UNSATISFIED

Description

If for any reason a user sets the interrupt level in the mode on an SMP build the error RTEMS_UNSATISFIED is returned. The documentation indicates this is a lack of stack and this confusing.

The reason this happens is the SMP check for an interrupt level being set is in the score's _Thread_Initialize. I propose that and is_preemptible check be converted to an assert and checks be added to the Classic API to catch these errors and report suitable error codes.

There is no meaningful error code available without abusing an existing one so I propose adding RTEMS_INVALID_MODE.

#3157 20 months ago fixed unspecified Jeff Mayes Joel Sherrill 19 months ago
Summary

PowerPC tools don't build on 32-bit hosts

Description

Using RSB and trying to build PowerPC. Updated RSB just a few days ago. i386 and arm build successfully, but PowerPC fails.

configure:3662: checking for suffix of object files configure:3684: /opt/rtems-tools/rsb/rtems/build/powerpc-rtems4.12-gcc-7.2.0-newlib-2.5.0.20170818-i686-pc-cygwin-1/build/./gcc/xgcc -B/opt/rtems-tools/rsb/rtems/build/powerpc-rtems4.12-gcc-7.2.0-newlib-2.5.0.20170818-i686-pc-cygwin-1/build/./gcc/ -nostdinc -B/opt/rtems-tools/rsb/rtems/build/powerpc-rtems4.12-gcc-7.2.0-newlib-2.5.0.20170818-i686-pc-cygwin-1/build/powerpc-rtems4.12/me6500/m64/newlib/ -isystem /opt/rtems-tools/rsb/rtems/build/powerpc-rtems4.12-gcc-7.2.0-newlib-2.5.0.20170818-i686-pc-cygwin-1/build/powerpc-rtems4.12/me6500/m64/newlib/targ-include -isystem /opt/rtems-tools/rsb/rtems/build/powerpc-rtems4.12-gcc-7.2.0-newlib-2.5.0.20170818-i686-pc-cygwin-1/gcc-7.2.0/newlib/libc/include -B/desk/rtems/powerpc-rtems4.12/bin/ -B/desk/rtems/powerpc-rtems4.12/lib/ -isystem /desk/rtems/powerpc-rtems4.12/include -isystem /desk/rtems/powerpc-rtems4.12/sys-include -mcpu=e6500 -m64 -c -g -O2 conftest.c >&5 Assembler messages: Fatal error: -a64 unsupported configure:3688: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "GNU C Runtime Library" | #define PACKAGE_TARNAME "libgcc" | #define PACKAGE_VERSION "1.0" | #define PACKAGE_STRING "GNU C Runtime Library 1.0" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "http://www.gnu.org/software/libgcc/" | /* end confdefs.h. */ | | int | main () | { | | ; | return 0; | } configure:3702: error: in `/opt/rtems-tools/rsb/rtems/build/powerpc-rtems4.12-gcc-7.2.0-newlib-2.5.0.20170818-i686-pc-cygwin-1/build/powerpc-rtems4.12/me6500/m64/libgcc': configure:3705: error: cannot compute suffix of object files: cannot compile

#3176 20 months ago fixed tool/newlib Joel Sherrill Joel Sherrill 8 months ago
Summary

getreent in libc.a and generated by confdefs.h

Description

Some applications are getting duplicate symbol definitions for getreent(). One of the examples-v2 programs is doing this. It is because there are two bodies for this method -- one from confdefs.h and another from newlib.

https://sourceware.org/ml/newlib/2017/msg01020.html addresses the issues and needs to be incorporated by the RSB.

https://sourceware.org/ml/newlib/2017/msg01019.html is a cleanup that was spotted at the same time. It can be picked up by a newlib snapshot.

#3188 20 months ago fixed unspecified Joel Sherrill Joel Sherrill 19 months ago
Summary

Add C11 Threading Examples

Description

C11 is new and we need to provide examples.

#3191 20 months ago fixed tool Chris Johns Joel Sherrill 17 months ago
Summary

RTEMS Tester covoar dies with no arguments.

Description

Running covoar terminate with an unhandled exception with no arguments on the command line:

$ ./build/tester/covoar/covoar 
error missing option: target -T
Usage: ./build/tester/covoar/covoar [-v] -T TARGET -f FORMAT [-E EXPLANATIONS] -1 EXECUTABLE coverage1 ... coverageN
--OR--
Usage: ./build/tester/covoar/covoar [-v] -T TARGET -f FORMAT [-E EXPLANATIONS] -e EXE_EXTENSION -c COVERAGEFILE_EXTENSION EXECUTABLE1 ... EXECUTABLE2

  -v                        - verbose at initialization
  -T TARGET                 - target name
  -f FORMAT                 - coverage file format (RTEMS, QEMU, TSIM or Skyeye)
  -E EXPLANATIONS           - name of file with explanations
  -s SYMBOLS_FILE           - name of file with symbols of interest
  -1 EXECUTABLE             - name of executable to get symbols from
  -e EXE_EXTENSION          - extension of the executables to analyze
  -c COVERAGEFILE_EXTENSION - extension of the coverage files to analyze
  -g GCNOS_LIST             - name of file with list of *.gcno files
  -p PROJECT_NAME           - name of the project
  -C ConfigurationFileName  - name of configuration file
  -O Output_Directory       - name of output directory (default=.
libc++abi.dylib: terminating with uncaught exception of type std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >
Abort trap: 6
#3215 19 months ago fixed doc Joel Sherrill Joel Sherrill 19 months ago
Summary

Configuring a System Still Includes Notepads and Has Wrong Heading

Description

This section has the wrong heading and needs to be deleted anyway.

24.8.2. Specify Maximum Classic API Timers
CONSTANT:
CONFIGURE_ENABLE_CLASSIC_API_NOTEPADS
#3234 19 months ago invalid doc Joel Sherrill Joel Sherrill 19 months ago
Summary

Quick Start Instructions Inconsistent

Description

In section 5 of the User's Manual, the clone of rtems-source-builder has you clone it into rsb but the sb-bootstrap command is based on cloning it into the rsb subdirectory.

#3305 15 months ago fixed arch/arm Joel Sherrill Joel Sherrill 15 months ago
Summary

Add paravirtualization support to ARM

Description

The Arm port does not currently have paravirtualization support.

#3307 15 months ago fixed arch/powerpc Joel Sherrill Joel Sherrill 8 months ago
Summary

PowerPC linkcmds.base missing wildcards on some sections

Description

Some sections were missing sections. Wildcards needed to be added.

#3342 15 months ago fixed posix Joel Sherrill Joel Sherrill 10 months ago
Summary

pthread_setschedparam() has incorrect prototype

Description

We are missing the const on the third parameter. This requires a change to newlib and RTEMS. The correct prototype is:

int pthread_setschedparam(

pthread_t thread, int policy, const struct sched_param *param

)

#3343 15 months ago fixed posix Joel Sherrill Joel Sherrill 10 months ago
Summary

pthread_mutex_getprioceiling() has incorrect prototype

Description

We are missing the const and restrict on the first parameter. This requires a change to newlib and RTEMS. The correct prototype is:

int pthread_mutex_getprioceiling(

const pthread_mutex_t *restrict mutex, int *prioceiling

)

#3344 15 months ago fixed arch/m68k Joel Sherrill Joel Sherrill 15 months ago
Summary

mcf5272/mcf5272.h Timer3 Duplicate Definition

Description

This .h file uses the same macro names for two blocks of INT macros. My assumption given that the second looks to be a different INT, is that it should not be INT3 again but INT3.

--- a/bsps/m68k/include/mcf5272/mcf5272.h +++ b/bsps/m68k/include/mcf5272/mcf5272.h @@ -88,9 +88,9 @@

#define MCF5272_ICR1_INT3_PI (bit(23)) #define MCF5272_ICR1_INT3_IPL(x) ((x) << 20) #define MCF5272_ICR1_INT3_MASK ((7) << 20)

-#define MCF5272_ICR1_INT3_PI (bit(19)) -#define MCF5272_ICR1_INT3_IPL(x) ((x) << 16) -#define MCF5272_ICR1_INT3_MASK ((7) << 16) +#define MCF5272_ICR1_INT4_PI (bit(19)) +#define MCF5272_ICR1_INT4_IPL(x) ((x) << 16) +#define MCF5272_ICR1_INT4_MASK ((7) << 16)

#3345 15 months ago fixed arch/powerpc Joel Sherrill Joel Sherrill 15 months ago
Summary

mvme3100 spaces needed around quote in macro definitions in bsp.h

Description

Various BSP_I2c_XXX_DEV_NAME macros have a stray " at the end of the first parameter.

#3346 15 months ago fixed arch/bfin Joel Sherrill Joel Sherrill 15 months ago
Summary

bf533.h

Description

TIMER_STATUS, TIMER< DISABLE, and TIMER_ENABLE are defined in bf52x.h and in bf533.h. Disable second definition in full bf533 register set list and add a sanity check to ensure it stays the same.

In file included from /home/joel/rtems-work/rtems-testing/rtems/rtems/bsps/bfin/TLL6527M/include/bsp.h:28:0,

from ../../../../../rtems/c/src/libchip/display/disp_hcms29xx.c:26:

/home/joel/rtems-work/rtems-testing/rtems/rtems/bsps/bfin/include/bf52x.h:43:0: warning: "TIMER_STATUS" redefined

#define TIMER_STATUS 0xffc00648

#3348 15 months ago fixed arch/powerpc Joel Sherrill Joel Sherrill 15 months ago
Summary

beatnick:spaces needed around quote in macro definitions in bsp.h

Description

Macros need spaces around ","

#3349 15 months ago fixed arch/i386 Joel Sherrill Joel Sherrill 15 months ago
Summary

pc386 edid.h invalid macro names

Description

Minus sign not underbar in macro name.

-#define DVS_HDMI-a 0x2 -#define DVS_HDMI-b 0x3 +#define DVS_HDMI_a 0x2 +#define DVS_HDMI_b 0x3

#3354 15 months ago fixed arch/powerpc Joel Sherrill Joel Sherrill 14 months ago
Summary

PowerPC BSPs duplicate PAGE_MASK, etc redefinition

Description

The following BSPs:

powerpc-beatnik powerpc-mcp750 powerpc-mtx603e powerpc-mvme2100 powerpc-mvme2307 powerpc-mvme5500 powerpc-qemuprep-altivec powerpc-qemuprep

use bsps/powerpc/include/libcpu/page.h which defines _ALIGN, PAGE_MASK, and PAGE_SIZE. These are defined by <machine/param.h>. I think the solution is to delete the versions in libcpu/page.h. Comments appreciated.

=================== In file included from ../../../../../../../../rtems/c/src/lib/libbsp/powerpc/mvme5500/../../powerpc/shared/startup/pgtbl_setup.c:3:0: /home/joel/rtems-work/rtems-testing/rtems/rtems/bsps/powerpc/include/libcpu/page.h:22:0: warning: "PAGE_MASK" redefined

#define PAGE_MASK (~(PAGE_SIZE-1))

In file included from /data/home/joel/rtems-work/tools/5/powerpc-rtems5/include/sys/_cpuset.h:36:0,

from /data/home/joel/rtems-work/tools/5/powerpc-rtems5/include/sys/cpuset.h:45, from /data/home/joel/rtems-work/tools/5/powerpc-rtems5/include/sys/_pthreadtypes.h:24, from /data/home/joel/rtems-work/tools/5/powerpc-rtems5/include/sys/types.h:239, from /data/home/joel/rtems-work/tools/5/powerpc-rtems5/include/sys/time.h:43, from /home/joel/rtems-work/rtems-testing/rtems/rtems/cpukit/include/rtems/score/timestamp.h:43, from /home/joel/rtems-work/rtems-testing/rtems/rtems/cpukit/include/rtems/score/thread.h:36, from /home/joel/rtems-work/rtems-testing/rtems/rtems/cpukit/include/rtems/score/heap.h:22, from /home/joel/rtems-work/rtems-testing/rtems/rtems/cpukit/include/rtems/rtems/types.h:26, from /home/joel/rtems-work/rtems-testing/rtems/rtems/cpukit/include/rtems.h:31, from ../../../../../../../../rtems/c/src/lib/libbsp/powerpc/mvme5500/../../powerpc/shared/startup/pgtbl_setup.c:1:

/data/home/joel/rtems-work/tools/5/powerpc-rtems5/include/machine/param.h:70:0: note: this is the location of the previous definition

#define PAGE_MASK (PAGE_SIZE - 1)

#3424 13 months ago fixed examples Joel Sherrill Joel Sherrill 7 months ago
Summary

examples-v2: no MIPS BSPs pass configuration step

Description
Checking for program 'ar'                  : /home/joel/rtems-work/tools/5/bin/mips-rtems5-ar 
Checking for program 'g++, c++'            : /home/joel/rtems-work/tools/5/bin/mips-rtems5-g++ 
Checking for program 'ar'                  : /home/joel/rtems-work/tools/5/bin/mips-rtems5-ar 
Checking for program 'gas, gcc'            : /home/joel/rtems-work/tools/5/bin/mips-rtems5-gcc 
Checking for program 'ar'                  : /home/joel/rtems-work/tools/5/bin/mips-rtems5-ar 
Compiler version (mips-rtems5-gcc)         : 7.3.0 20180125 (RTEMS 5, RSB 6d9c77c77d271d1fc2dfe8493d6713930b52a6dd, Newlib 3.0.0) 
Checking for RTEMS CPU options header      : started 
-> processing test results                 : 1 test failed 
One of the tests has failed, read config.log for more information
(complete log in /data/home/joel/rtems-work/examples-v2/build/config.log)
+ check_fatal 1 'failed waf configure - examples-v2 on rbtx4925'
#3531 8 months ago fixed unspecified Joel Sherrill Joel Sherrill 8 months ago
Summary

Add POSIX Attribute Reports for More Than Scheduler (examples-v2)

Description

Add programs to report default attributes for various POSIX objects including barriers, condition variables, message queues, mutexes, pthreads, and rwlocks. The programs should be able to run on any POSIX host and report what it uses for object attribute defaults.

Object attribute defaults are unspecified by POSIX. The portable practice is to explicitly set every attribute. These programs allow one to probe and compare various operating system implementations.

#3538 8 months ago fixed doc Joel Sherrill Joel Sherrill 8 months ago
Summary

Classic API Barrier Wait Section Title Has Wrong Name

Description

The section title says obtain not wait.

Likely also applies to 4.11.

#3576 7 months ago fixed tool/gdb Joel Sherrill Joel Sherrill 6 months ago
Summary

gdb 8.0.1 sis does not build on Cygwin

Description

Cygwin no longer has libtermcap. gdb/sim/erc32 needs a patch to find libncurses. Upstream gdb patch already merged.

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commitdiff;h=c1230d1bab8e36e1aa40f3bbadcef9b5d9ddc041

This ticket is just to contain a patch that applies cleanly to gdb 8.0.1 and to track adding that patch to the RSB.

#2442 4 years ago fixed bsps Joel Sherrill joel.sherrill@… 19 months ago
Summary

Remove avrtest BSP

Description

Remove the avr/avrtest BSP per the instructions at https://devel.rtems.org/wiki/Developer/Removing_a_BSP

#2503 3 years ago fixed arch/powerpc Aun-Ali Zaidi joel.sherrill@… 19 months ago
Summary

mvme5500 BSP: Exception Handler uses deprecated Notepads.

Description

The MVME5500 BSP uses Notepads in its exception handler and #2493 removes them. This is obviously not portable and requires a rewrite.

#2542 3 years ago fixed bsps Joel Sherrill joel.sherrill@… 19 months ago
Summary

Review cxx_iostream size change per function-section changes

Description

It looks like some BSPs with their own linkcmds may have shrunk too much. Norm appears to be 50% while some went to 75-80%. A second look after catching the pattern indicates that the KEEP() section requirements in the linker scripts were not correct and it was missed.

Rather than reverting a bunch of patches, this ticket is to review all function-section patches from this one back in time for cxx_iostream shrinking too much.

commit 6d21c13e5094d490280a941cf0e8333f91f85715 Author: Ralph Holmes <ralph@…> Date: Sat Jan 23 21:15:40 2016 +0000

powerpc/gen5200: Add per-section compilation and linking support.

For the brs5l BSP variant:

#2877 2 years ago fixed score Stavros Passas joel.sherrill@… 19 months ago
Summary

DHCP client fails on complex networks

Description

What happens is that on networks with more than one DHCP servers, or on networks that use multiple vlans it can happen that After a DHCP discover our client broadcasts, it receives multiple offers, which is perfectly fine based on the DHCP RFC.

However our implementation of a DHCP client, expects a linear execution flow:

  1. Broadcast a DHCP discover;
  2. Wait for a DHCP offer;
  3. Transmit a DHCP request;
  4. Wait for a DHCP ack;

However the network stack is not cleaned between the reception of a DHCP offer and a DHCP ack, so if multiple offers are received, just the first one will be processed during the "Receive DHCP offer" phase, and the next one will be received when we expect a "DHCP ack", which makes our implementation assume the DHCP handshake is invalid and fail. Thus we restart the network and retry the whole process from the beginning which will cause the same issue again.

This issue that is present from when I remember in RTEMS, definitely from 4.10 up to now.

#2935 2 years ago wontfix score Martin Aberg joel.sherrill@… 19 months ago
Summary

Termios task driven mode not compatible with SMP

Description

When the Termios task driven functioning mode is used, rtems_termios_open_tty() calls rtems_task_create() with RTEMS_NO_PREEMPT in the initial task mode parameter. RTEMS_NO_PREEMPT is not supported on SMP.

rtems_task_create() returns RTEMS_UNSATISFIED in this SMP scenario and Termios ends up in rtems_fatal_error_occurred().

Termios starts the RX and TX tasks successfully on SMP if RTEMS_NO_PREEMPT is removed from the initial task modes of these tasks. However, I suspect there may be assumptions on the NO_PREEMPT mode for the RX and TX tasks in other parts of Termios.

#2946 2 years ago fixed unspecified Chris Johns joel.sherrill@… 19 months ago
Summary

Add a top level global testsuite configuration file (.tcfg) and a 'user-input' test state.

Description

Adding a top level testsuite configuration file lets us specify tests that have a common test state across all BSPs.

Adding the test state 'user-input' clearly tags the test as needing user input and test result tools can correctly determine the test result. The current practice of passing a test needing user input is actually hiding the real result of the test.

#2993 2 years ago fixed score Chris Johns joel.sherrill@… 19 months ago
Summary

SMP assert in _Thread_Executing in libdebugger

Description

The target code in libdebugger has support to recover from exceptions related to invalid memory accesses. GDB may request the server access memory on the target that results in an exception. The exception occurs on the server's remote connection thread and the server needs to recover and return and error to GDB.

Running the debugger01 test with an SMP build of RTEMS and libbsd for xilinx_zedboard and issuing bt in GDB results in:

*** LIBBSD DEBUGGER 1 TEST ***                                                                                                                                                                                                                                                                            [144/1950]
shell:cannot set terminal attributes(/dev/console)

RTEMS Shell on /devn/ecxounss0o:l e<.R TUEsMeS  'Nheexlups'  dteov ilcies>t
 ccogmemma0n:d s<.C
adence CGEM Gigabit Ethernet Interface> on nexus0
miibus0: <MII bus> on cgem0
[/] # e1000phy0: <Marvell 88E1512 Gigabit PHY> PHY 0 on miibus0
e1000phy0:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT-FDX, 1000baseT-FDX-master, auto
cgem0: Ethernet address: fa:69:35:9e:04:2f
zy7_slcr0: <Zynq-7000 slcr block> on nexus0
[zone: udpcb] kern.ipc.maxsockets limit reached
notice: cgem0: link state changed to DOWN
add host 10.10.5.1: gateway cgem0
add net default: gateway 10.10.5.1
rtems-db: remote running
rtems-db: tcp remote: listing on port: 1122
notice: cgem0: link state changed to UP

rtems-db: tcp remote: connect host: 10.10.5.2
rtems-db: arm debug: (v3.0) ARMv7 [v7, all CP14 registers] breakpoints:5 watchpoints:3
assertion "cpu_self->thread_dispatch_disable_level != 0 || _ISR_Get_level() != 0" failed: file "../../cpukit/../../../xilinx_zynq_zedboard/lib/include/rtems/score/percpu.h", line 630, function: _Per_CPU_Get

If I enable TARGET_DEBUG in libdebugger and apply the attached patch I can create the assert with DIE_ON_ASSERT set to 1. The output is:

 rtems-db: tcp remote: connect host: 10.10.5.2
rtems-db: arm debug: (v3.0) ARMv7 [v7, all CP14 registers] breakpoints:5 watchpoints:3
[} frame = 005664EC sig=1 vector=4 ifsr=00000000 pra=0024173A
[}  R0 = 00000158  R1 = 00000004  R2 = 00000001  R3 = 0041AB64
[}  R4 = 00000158  R5 = 00000004  R6 = 00000000  R7 = 005606A4
[}  R8 = 00000016  R9 = 00000001 R10 = 00000006 R11 = 0041AB64
[} R12 = 00560658  SP = 00566540  LR = 00000FFD  PC = 00241736
[}  CPSR = 08010173 ----Q--A-FT GE:0 IT:01 M:13 SVC
[} target exception: 0 0 0
assertion "cpu_self->thread_dispatch_disable_level != 0 || _ISR_Get_level() != 0" failed: file "../../cpukit/../../../xilinx_zynq_zedboard/lib/include/rtems/score/percpu.h", line 630, function: _Per_CPU_Get

and set to {{{0}}:

rtems-db: tcp remote: connect host: 10.10.5.2
rtems-db: arm debug: (v3.0) ARMv7 [v7, all CP14 registers] breakpoints:5 watchpoints:3
[} frame = 005664EC sig=1 vector=4 ifsr=00000000 pra=0024173A
[}  R0 = 00000158  R1 = 00000004  R2 = 00000001  R3 = 0041AB64
[}  R4 = 00000158  R5 = 00000004  R6 = 00000000  R7 = 005606A4
[}  R8 = 00000016  R9 = 00000001 R10 = 00000006 R11 = 0041AB64
[} R12 = 00560658  SP = 00566540  LR = 00000FFD  PC = 00241736
[}  CPSR = 08010173 ----Q--A-FT GE:0 IT:01 M:13 SVC
[} target exception: 0 0 0
[} tid:0A01000A: thread:0041F5B0 frame:005664EC
[} server access fault
[} frame = 005664EC sig=1 vector=4 ifsr=00000000 pra=0024173A
[}  R0 = 00000158  R1 = 00000004  R2 = 00000001  R3 = 0041AB64
[}  R4 = 00000158  R5 = 00000004  R6 = 00000000  R7 = 005606A4
[}  R8 = 00000016  R9 = 00000001 R10 = 00000006 R11 = 0041AB64
[} R12 = 00560658  SP = 00566540  LR = 00000FFD  PC = 00241736
[}  CPSR = 08010173 ----Q--A-FT GE:0 IT:01 M:13 SVC
[} target exception: 0 0 0
[} tid:0A01000A: thread:0041F5B0 frame:005664EC
[} server access fault

The following lines first two values are cpu_self->thread_dispatch_disable_level and _ISR_Get_level() which are both 0 so I cannot see a reason the assert is happening:

[} target exception: 0 0 0
#2995 2 years ago fixed tool/rsb Hassan Karim joel.sherrill@… 19 months ago
Summary

Missing bsets

Description

When I went to rebuild based on 4.12, I cloned from github. I am no longer getting all of the b-sets that I was expecting. Specifically, 4.12/rtems-sparc

Chris Johns said to submit it as a bug. It must have happened within the last couple of weeks. As my scripts that automated these tasks were working as of around 3/1/2017

git clone git://git.rtems.org/rtems-source-builder.git $SETBLDRSCRIPTDIR/sb-set-builder --list-bsets

RTEMS Source Builder - Set Builder, 4.12 (2074bd1168ee) Examining: config Examining: ../rtems/src/rtems-source-builder/source-builder/config Examining: ../rtems/src/rtems-source-builder/bare/config devel/autotools-base.bset devel/autotools-internal.bset devel/autotools.bset devel/dtc.bset devel/libtool.bset devel/libusb.bset devel/or1ksim.bset devel/qemu.bset gnu-tools-4.6.bset gnu-tools-4.8.2.bset lang/gcc491.bset

#3007 2 years ago fixed arch/arm munster joel.sherrill@… 19 months ago
Summary

ARM caching issues

Description

There are two problems with the caching on ARM:

  • In cases where the buffer is not aligned to line boundary at the beginning or the end, the invalidate operation would lose modifications done on the adjacent data. This applies to both L1 and L2 caches.
  • The L2C-310 cache management operations use excessive locking. According to manual, the used operations (Clean Line by PA, Clean and Invalidate Line by PA, Cache Sync) are atomic and do not require locking.

I have attached the proposed patch.

#3009 2 years ago wontfix tool/website Chris Johns joel.sherrill@… 19 months ago
Summary

Provide invalid link handler for docs.rtems.org so old docs can be removed.

Description

The docs.rtems.org website has lots of old docs which need to be removed.

See #3008 for a reference to old documentation.

#3014 2 years ago fixed bsps phongvanpham joel.sherrill@… 19 months ago
Summary

interrupt vector indexing is assuming BSP_INTERRUPT_VECTOR_MIN = 0 for this code.

Description

Someone implement bsp_interrupt_handler_index() forgot to update this delta in rtems\c\src\lib\libbsp\shared\src\irq-generic.c:bsp_interrupt_allocate_handler_index(). See attachment.

#3015 2 years ago fixed arch/powerpc phongvanpham joel.sherrill@… 19 months ago
Summary

Add support for IBM PPC 750 chip

Description

Currently MPC750 chip is supported. However, PPC750 (from IBM) is very close to MPC750 except minor differences. Enclosed is the delta to support PPC750.

#3016 2 years ago fixed bsps phongvanpham joel.sherrill@… 19 months ago
Summary

missing a couple register names + a #ifndef ASM around serial.h inclusion

Description

In rtems\c\src\libchip\serial\ns16550_p.h, need to add a couple register and #ifndef around serial.h

#3017 2 years ago worksforme score phongvanpham joel.sherrill@… 19 months ago
Summary

improvement in pci.h

Description

In pci.h, there are references to BSP_pci_configuration data structure which is in pci.c. However, in this file, there are also references to detect_host_bridge () in detect_raven_bridge.c. For folks that are just interested in pci_read_config_dword() + its brothers, all they need is to include pci.h and content for where BSP_pci_configuration is defined. The rest of the stuff in pci.c should be separate. Or in another word, data structures and #defines involving with BSP_pci_configuration needs to be in separate files rather all stuffed in pci.c

I currently do not need this functionality for my BSP (nor do I able to test it), so I cannot modify code and submit. It is best someone who can test the code to make the code change. Or else, just shelf it under the table and/or close this ticket.

#3025 2 years ago fixed unspecified Chris Johns joel.sherrill@… 19 months ago
Summary

m32c/m32csim does not build linpack-pc.c

Description

1 tests m32c/m32csim build:

configure: /opt/work/chris/rtems/kernel/rtems.git/configure --target\ =m32c-rtems4.12 --enable-rtemsbsp=m32csim --prefix=/opt/rtems/4.12\ --enable-tests

error: testsuites/benchmarks/linpack/linpack-pc.c:253:33: error:

storage size of 'a' isn't constant

error: testsuites/benchmarks/linpack/linpack-pc.c:253:21: error:

storage size of 'aa' isn't constant

#3036 2 years ago fixed tool/newlib Sebastian Huber joel.sherrill@… 19 months ago
Summary

CPU_CMP() implementation is not in line with FreeBSD

Description

According to the FreeBSD man page we have:

https://www.freebsd.org/cgi/man.cgi?query=cpuset&sektion=9&apropos=0&manpath=FreeBSD+11.0-RELEASE+and+Ports

The CPU_CMP() macro returns true if cpuset1 is NOT equal to cpuset2.

However, in Newlib we had:

/* return 1 if the sets set1 and set2 are equal, otherwise return 0 */
static __inline int CPU_CMP( const cpu_set_t *set1, const cpu_set_t *set2 )
{
  return CPU_EQUAL(set1, set2);
}
#3140 20 months ago fixed score Chris Johns joel.sherrill@… 19 months ago
Summary

CPU Kit broken with --enable-rtems-debug

Description

Building with:

..../rtems.git/configure --target=arm-rtems4.12 --prefix=/opt/work/chris/rtems/kernel/4.12 --disable-networking --enable-rtemsbsp=beagleboneblack --enable-maintainer-mode --enable-rtems-debug

results in an error:

gmake[5]: Entering directory '/opt/work/chris/rtems/kernel/bsps/beagleboneblack/arm-rtems4.12/c/beagleboneblack/cpukit/score'
arm-rtems4.12-gcc --pipe -DHAVE_CONFIG_H   -I.. -I../../cpukit/../../../beagleboneblack/lib/include   -mcpu=cortex-a8 -O2 -g -ffunction-sections -fdata-sections -Wall -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs -MT src/libscore_a-semaphore.o -MD -MP -MF src/.deps/libscore_a-semaphore.Tpo -c -o src/libscore_a-semaphore.o `test -f 'src/semaphore.c' || echo '/opt/work/chris/rtems/kernel/rtems.git/c/src/../../cpukit/score/'`src/semaphore.c
In file included from /opt/work/chris/rtems/kernel/rtems.git/c/src/../../cpukit/score/src/semaphore.c:21:0:
/opt/work/chris/rtems/kernel/rtems.git/c/src/../../cpukit/score/src/semaphore.c: In function '_Semaphore_Post':
/opt/work/chris/rtems/kernel/rtems.git/c/src/../../cpukit/score/src/semaphore.c:134:27: error: 'UINT_MAX' undeclared (first use in this function); did you mean 'UINT8_MAX'?
     _Assert( sem->count < UINT_MAX );
                           ^
../../cpukit/../../../beagleboneblack/lib/include/rtems/score/assert.h:67:12: note: in definition of macro '_Assert'
        ( ( _e ) ? \
            ^~
/opt/work/chris/rtems/kernel/rtems.git/c/src/../../cpukit/score/src/semaphore.c:134:27: note: each undeclared identifier is reported only once for each function it appears in
     _Assert( sem->count < UINT_MAX );
                           ^
../../cpukit/../../../beagleboneblack/lib/include/rtems/score/assert.h:67:12: note: in definition of macro '_Assert'
        ( ( _e ) ? \
            ^~
gmake[5]: *** [Makefile:4571: src/libscore_a-semaphore.o] Error 1

We need the rtems-bsp-builder to be run on a regular basis to catch these errors.

Tools are:

$ /opt/work/rtems/4.12/bin/arm-rtems4.12-gcc --version
arm-rtems4.12-gcc (GCC) 7.2.0 20170814 (RTEMS 4.12, RSB e6d0a8bae6d16eba605370ca11a5928b797820bb-modified, Newlib 2.5.0.20170818)
#3148 20 months ago fixed posix Chris Johns joel.sherrill@… 19 months ago
Summary

PSXRDWRV Test failure on Beaglebone Black

Description

Running rtems-test with a recent u-boot and a current master this failure is reported:

] RTEMS Beagleboard: am335x-based
]
]
] *** BEGIN OF TEST PSXRDWRV ***
] writev bad file descriptor -- EBADF
] writev error 1: 22=Invalid argument
] Error during error test!!!!
#3670 5 months ago fixed examples Chris Johns joel@… 5 months ago
Summary

examples-v2 uses deprecated or obsolete RTEMS interfaces

Description

The examples need to be change to use what ever is the newer method of doing something.

../../filesystem/fat_ramdisk/init.c:46:3: warning: 'rtems_blkdev_generic_open' is deprecated [-Wdeprecated-declarations] 
   open_entry:           rtems_blkdev_generic_open,
   ^~~~~~~~~~
In file included from /opt/work/chris/rtems/kernel/5/arm-rtems5/xilinx_zynq_zedboard/lib/include/rtems/ramdisk.h:17:0,
                 from ../../filesystem/fat_ramdisk/init.c:16:
/opt/work/chris/rtems/kernel/5/arm-rtems5/xilinx_zynq_zedboard/lib/include/rtems/blkdev.h:408:1: note: declared here
 rtems_blkdev_generic_open( 
 ^~~~~~~~~~~~~~~~~~~~~~~~~ 
../../filesystem/fat_ramdisk/init.c:47:3: warning: 'rtems_blkdev_generic_close' is deprecated [-Wdeprecated-declarations]
   close_entry:          rtems_blkdev_generic_close,                                        
   ^~~~~~~~~~~                          
In file included from ../../ticker/low_ticker/init.c:88:0:
/opt/work/chris/rtems/kernel/5/arm-rtems5/xilinx_zynq_zedboard/lib/include/rtems/confdefs.h:3276:4: warning: #warning "The CONFIGURE_TERMIOS_DISABLED configuration option is obsolete since RTEMS 5.1" [-Wcpp]
   #warning "The CONFIGURE_TERMIOS_DISABLED configuration option is obsolete since RTEMS 5.1"
    ^~~~~~~
#3742 3 weeks ago fixed test Chris Johns joel@… 3 weeks ago
Summary

T_config conflicting type qualifiers for 'config'

Description

Running the rtems-bsp-builder on FreeBSD is give an error in ttest01 for bsps:

  • arm/csb336
  • arm/csb337
  • arm/csb637
  • arm/kit637_v6
  • mips/csb350

The error being reported is:

error: testsuites/libtests/ttest01/init.c:146:23: error: conflicting type qualifiers for 'config'

The builder command line is:

/opt/work/chris/rtems/rt/rtems-tools.git/tester/rtems-bsp-builder \
 --rtems-tools=/opt/work/rtems/5 \
 --rtems=/opt/work/chris/rtems/kernel/rtems.git \
 --log=everything-tests \
 --profile=everything \
 --build=tests \
 --jobs=7/6

A BSP configure command line is:

/opt/work/chris/rtems/kernel/rtems.git/configure \
  --target=mips-rtems5 --enable-rtemsbsp=csb350 --prefix=/opt/rtems/5 \
  --enable-tests --disable-smp
#2883 2 years ago fixed arch/arm David Binderman Pavel Pisa 19 months ago
Summary

src/c/src/lib/libbsp/arm/tms570/console/tms570-sci.c:248: strange expression ?

Description

src/c/src/lib/libbsp/arm/tms570/console/tms570-sci.c:248]: (style) Same expression on both sides of '|'.

Source code is

uint32_t flr_tx_ready = TMS570_SCI_FLR_TX_EMPTY | TMS570_SCI_FLR_TX_EMPTY;

#1747 8 years ago fixed score Chris Johns Sebastian Huber 19 months ago
Summary

Heap extend allows discontinuous memory regions.

Description

The check in (cpukit/ChangeLog) states:

2010-06-07 Sebastian Huber <sebastian.huber@…>

  • score/src/heapextend.c: Implemented support for scattered heap areas.

The heap cannot support scattered blocks because the _Heap_Is_block_in_heap assumes the region is continuous between the first and last blocks of the heap. Making the gaps in the regions passed to the heap extend call used is questionable and makes the _Heap_Is_block_in_heap test not really perform the task it's name states. This is an issue because it is this check that determines if a heap free of NULL should proceed. This issue is covered in another PR.

I also wonder about a heap free call to an address that maps to one of the "in-use" gap regions. The previous heap code knew if an address was in the heap and therefore it was kind of safe to probe for a valid block. This assumption is now not valid.

The former heap extend code:

http://www.rtems.org/viewvc/rtems/cpukit/score/src/heapextend.c?revision=1.7&view=markup

clearly states the type of memory that can be added to an existing heap. The current code has no restrictions. The user manual is not great in this area. It would also be useful if comments are added to the heap extend code.

The heap extend code is used by the rtems_region_extend call and this call clearly states in the manual that the memory region must be continuous. If this has changed we should discuss the API change and make better note of it. I also suspect the testsuite will need additions to test any API changes.

#2132 6 years ago fixed score Sebastian Huber Sebastian Huber 19 months ago
Summary

<rtems/score/basedefs.h> superfluously includes <limits.h>

Description

In older RTEMS versions <rtems.h> provided <limits.h> indirectly. The include of <limits.h> was added to not break application source files that relied on this accidentally.

We may remove this include in the future.

#2133 6 years ago fixed score Sebastian Huber Sebastian Huber 19 months ago
Summary

<rtems/score/basedefs.h> superfluously includes <string.h>

Description

In older RTEMS versions <rtems.h> provided <string.h> indirectly. The include of <string.h> was added to not break application source files that relied on this accidentally.

We may remove this include in the future.

#2135 6 years ago fixed posix Sebastian Huber Sebastian Huber 19 months ago
Summary

times() and _times() are subject to integer overflows

Description

The clock_t type is defined as unsigned long for RTEMS in Newlib. With a 1ms clock tick an overflow happens after 7 days on 32-bit long targets.

#2344 4 years ago fixed unspecified Sebastian Huber Sebastian Huber 19 months ago
Summary

Second argument of ualarm() is ignored

Description

I don't think this is in line with POSIX.

#2385 4 years ago fixed arch/arm Chris Johns Sebastian Huber 19 months ago
Summary

Warning from commit "bsps/arm: Do not use ARM_ARCH_7A"

Description

This change https://git.rtems.org/rtems/commit/?h=4.11&id=d0733bb8 generate a warning in user code. The warning is:

.../arm-errata.h:45:1: warning: 'in line' is not at beginning of declaration [-Wold-style-declaration]
 static bool inline arm_errata_is_applicable_processor_errata_764369(void)
 ^
#2408 4 years ago fixed unspecified Sebastian Huber Sebastian Huber 13 months ago
Summary

Linker set based initialization

Description

Linker sets are used for example in Linux, FreeBSD (they are used in the RTEMS port of the FreeBSD network stack, e.g. libbsd), eCos and for global C++ constructors. They provide a space efficient and flexible means to initialize modules. A linker set consists of

  • dedicated input sections for the linker (e.g. .ctors and .ctors.* in the case of global constructors),
  • a begin marker (e.g. provided by crtbegin.o, and
  • an end marker (e.g. provided by ctrend.o).

A module may place a certain data item into the dedicated input section. The linker will collect all such data items in this section and creates a begin and end marker. The initialization code can then use the begin and end markers to find all the collected data items (e.g. function pointers).

Lets look how this works using a simple example. For this we need three files myset.h,

#ifndef MYSET_H
#define MYSET_H

/* The linker set items */
typedef struct {
  void (*func)(void);
} item;

/*
 * Macro to create a linker set item.  The first parameter is
 * the designator of the item.  It must be unique within the
 * module scope.  The second parameter is the desired function.
 */
#define MYSET_ITEM(i, f) \
    __attribute__((used)) \
    __attribute__((section(".rtemsroset.myset.content"))) \
    static item i = { f }

#endif /* MYSET_H */

module.c

#include "myset.h"
#include <stdio.h>

/*
 * Some global function that needs a module specific
 * intialization done by f().
 */
void
g(void)
{

        printf("g()\n");
}

/* The module constructor */
static void
f(void)
{

        printf("f()\n");
}

/*
 * This registers the module constructor f()
 * in the linker set "myset".
 */
MYSET_ITEM(i, &f);

and init.c.

#include "myset.h"
#include <stddef.h>

/* Should be in a proper header file */
void g(void);

/* Define the start marker */
__attribute__((used))
__attribute__((section(".rtemsroset.myset.begin")))
static volatile const item begin[0];

/* Define the end marker */
__attribute__((used))
__attribute__((section(".rtemsroset.myset.end")))
static volatile const item end[0];

int main(void)
{
        size_t n = &end[0] - &begin[0];
        size_t i;

        /* Call all functions of the linker set */
        for (i = 0; i < n; ++i) {
                (*begin[i].func)();
        }

        /*
         * This will pull in the module.c and register its item in the
         * linker set "myset".  So g() can rely on f() being called first.
         */
        g();

        return (0);
}

In the linker command file of the GNU linker we need the following statement.

.rtemsroset : {
	KEEP (*(SORT(.rtemsroset.*)))

The KEEP() ensures that a garbage collection by the linker will not discard the content of this section. This would be normally the case since the linker set items are not referenced directly. The SORT() directive sorts the input sections lexicographically. Please note the lexicographical order of the .begin, .content and .end section name parts in the previous example which ensures that the position of the begin and end markers are right. The interesting part of linker map file of the previous example may look like this.

.rtemsroset     0x0000000001001990        0x4 load address 0x000000000002268c
 *(SORT(.rtemsroset.*))
 .rtemsroset.myset.begin
                0x0000000001001990        0x0 init.o
 .rtemsroset.myset.content
                0x0000000001001990        0x4 module.o
 .rtemsroset.myset.end
                0x0000000001001994        0x0 init.o

So what is the benefit of using linker sets to initialize modules? Currently in RTEMS all available managers (semaphore, message queue, barrier, etc.) are initialized since the initialization code doesn't know what is actually used by the application. With the linker set approach we need to initialize only those managers that are used by the application. In case an application uses message queues, then it must call rtems_message_queue_create(). In the module implementing this function we can place a linker set item and register the message queue handler constructor. Otherwise, in case the application doesn't use message queues, then there will be no reference to the rtems_message_queue_create() function and the constructor is not registered, thus nothing of the message queue handler will be in the final executable.

#2412 4 years ago fixed score Sebastian Huber Sebastian Huber 19 months ago
Summary

Improved priority inheritance implementation

Description

Problem

The RTEMS mutexes implement only a very simple approximation of the priority inheritance protocol. The real priority of a thread is only restored once it releases its last mutex. Lets consider this scenario. We have a file system instance protected by one mutex (e.g. JFFS2) and a dynamic memory allocator protected by another mutex. A low priority thread performs writes some log data into a file, thus it acquires the file system instance mutex. The file system allocates dynamic memory. Now a high priority thread interrupts and tries to allocate dynamic memory. The allocator mutex is already owned, so the priority of the low priority thread is raised to the priority of the high priority thread. The memory allocation completes and the allocator mutex is released, since the low priority thread still owns the file system instance mutex it continues to execute with the high priority (the high priority thread is not scheduled). It may now perform complex and long file system operations (e.g. garbage collection, polled flash erase and write functions) with a high priority.

Functional requirements

  • The mutex shall use the priority inheritance protocol to prevent priority inversion. On SMP configurations OMIP shall be used.
  • The mutex shall allow vertical nesting (a thread owns multiple mutexes).
  • The mutex shall allow horizontal nesting (a thread waits for ownership of a mutex those owner waits for ownership of a mutex, and so on).
  • Threads from one scheduler instance shall wait in priority order. The highest priority thread shall be dequeued first.
  • The highest priority waiting thread of each scheduler instance shall wait in FIFO order.
  • The mutex shall provide an acquire operation with timeout.
  • In case a mutex is released, then the previous owner shall no longer use the priorities inherited by this mutex.
  • In case a mutex acquire operation timeout occurs, then the current owner of the mutex shall no longer use the priorities inherited by the acquiring thread.
  • The order of the mutex release operations may differ from the order of the mutex acquire operations.
  • Priority changes not originating due to the priority inheritance protocol shall take place immediately.
  • Deadlock shall be detected. In case a deadlock would occur an error status shall be returned or a fatal error shall be generated.
  • Deadlocks at application level shall not lead to a deadlock at operating system level.

Performance requirements

  • The mutex acquire operation shall use only object-specific locks in case the mutex is not owned currently.
  • The mutex release operation shall use only object-specific locks in case no threads wait for ownership of this mutex.

Invariants

  • A mutex shall be owned by at most one thread.
  • A thread shall wait for ownership of at most one mutex.

Possible implementation

Use a recursive data structure to determine the highest priority available to a thread for each scheduler instance, e.g.

typedef struct Thread_Priority_node {
  Priority_Control current_priority;
  Priority_Control real_priority;
  struct Thread_Priority_node *owner;
  RBTree_Node Node;
  RBTree_Control Inherited_priorities;
} Thread_Priority_node;

typedef struct {
  ...
  Thread_Priority_node *priority_nodes; /* One per scheduler instances */
  ...
} Thread_Control;

Initially a thread has a priority node reflecting its real priority. The Thread_Priority_node::owner is NULL. The Thread_Priority_node::current_priority is set to the real priority. The Thread_Priority_node::Inherited_priorities is empty.

In case the thread must wait for ownership of a mutex, then it enqueues its priority node in Thread_Priority_node::Inherited_priorities of the mutex owner.

In case the thread is dequeued from the wait queue of a mutex, then it dequeues its priority node in Thread_Priority_node::Inherited_priorities of the previous mutex owner (ownership transfer) or the current mutex owner (acquire timeout).

In case the minimum of Thread_Priority_node::real_priority and Thread_Priority_node::Inherited_priorities changes, then Thread_Priority_node::current_priority is updated. In case the Thread_Priority_node::owner its not NULL, the priority change propagates to the owner, and so on. In case Thread_Priority_node::current_priority changes, the corresponding scheduler is notified.

The biggest issue is the locking on SMP configurations in case of recursive minimum updates.

Somehow we must connect this to the scheduler helping protocol for OMIP. We may have to replace the return value based scheduler operations with a pre-context-switch action. Due to some recent implementation changes the run-time of the _Thread_Dispatch() function is no longer average-case performance critical.

#2441 4 years ago fixed unspecified Joel Sherrill Sebastian Huber 19 months ago
Summary

lpc1768 variants fail to build with error in gpio.c

Description

arm-lpc1768_mbed_ahb_ram_eth arm-lpc1768_mbed_ahb_ram arm-lpc1768_mbed

In file included from ../../../../../../../../rtems/c/src/lib/libbsp/arm/lpc176x/gpio/gpio.c:25:0: ../../../../../.././lpc1768_mbed_ahb_ram_eth/lib/include/bsp/gpio.h:28:4: error: #error "BSP_GPIO_PIN_COUNT or BSP_GPIO_PINS_PER_BANK is not defined."

#error "BSP_GPIO_PIN_COUNT or BSP_GPIO_PINS_PER_BANK is not defined."

../../../../../.././lpc1768_mbed_ahb_ram_eth/lib/include/bsp/gpio.h:32:4: error: #error "Invalid BSP_GPIO_PIN_COUNT or BSP_GPIO_PINS_PER_BANK."

#error "Invalid BSP_GPIO_PIN_COUNT or BSP_GPIO_PINS_PER_BANK."

../../../../../.././lpc1768_mbed_ahb_ram_eth/lib/include/bsp/gpio.h:41:5: error: division by zero in #if

#if GPIO_LAST_BANK_PINS > 0

../../../../../../../../rtems/c/src/lib/libbsp/arm/lpc176x/gpio/gpio.c:29:8: error: unknown type name 'lpc176x_registered_interrupt_function'

static lpc176x_registered_interrupt_function function_vector[

../../../../../../../../rtems/c/src/lib/libbsp/arm/lpc176x/gpio/gpio.c:30:3: error: 'LPC176X_RESERVED_ISR_FUNCT_SIZE' undeclared here (not in a function)

LPC176X_RESERVED_ISR_FUNCT_SIZE ];

../../../../../../../../rtems/c/src/lib/libbsp/arm/lpc176x/gpio/gpio.c:35:9: error: unknown type name 'lpc176x_gpio_direction'

const lpc176x_gpio_direction dir

#2454 4 years ago fixed unspecified Joel Sherrill Sebastian Huber 19 months ago
Summary

Warning in threadqops.c

Description

This may apply to the 4.11 branch as well. I am not sure.

../../../../../../rtems/c/src/../../cpukit/score/src/threadqops.c:202:29: warning: passing argument 1 of '_RBTree_Initialize_empty' from incompatible pointer type

This happens building many/all BSPs.

#2455 4 years ago fixed unspecified Joel Sherrill Sebastian Huber 19 months ago
Summary

Warning in spsimplesched02

Description

This may apply to the 4.11 branch as well. I am not sure.

../../../../../../../rtems/c/src/../../testsuites/sptests/spsimplesched02/init.c:84:5: warning: passing argument 1 of '_Objects_Name_to_id_u32' from incompatible pointer type

This happens building many/all BSPs.

#2459 4 years ago fixed rtems Sebastian Huber Sebastian Huber 19 months ago
Summary

Add rtems_chain_get_first_unprotected() to chain API

#2468 4 years ago fixed arch/i386 Joel Sherrill Sebastian Huber 19 months ago
Summary

Add Thread Local Storage (TLS) support on x86

Description

The x86 is one of the architectures which does not support Thread Local Storage. Each architecture requires target architecture specific support to provide this standard language feature.

Details on the implementation by the compiler may be found at http://wiki.osdev.org/Thread_Local_Storage.

Based on this information, I think a segment register needs to be added to the thread context and some hooks to the TLS implemented.

Architecture information on TLS implementation should be added to the CPU Supplement document as this is part of the ABI and context switch.

As part of effort, the documentation for the general procedure of adding target specific TLS support should be added to the porting guide or reviewed.

#2514 3 years ago fixed posix Sebastian Huber Sebastian Huber 7 months ago
Summary

Make POSIX API mandatory (except signals and the sporadic server)

Description

The POSIX API is currently a build-time configuration option. In general it is beneficial to avoid build-time configuration options since this reduces the testing scope.

Applications not using the POSIX API should observe only a minimal overhead due to this change.

This enhancement depends on #2408.

#2529 3 years ago fixed arch/arm Sebastian Huber Sebastian Huber 19 months ago
Summary

BSP for the Atmel SAM V71/V70/E70/S70 chip platform

Description

http://www.atmel.com/products/microcontrollers/arm/sam-v-mcus.aspx

#2553 3 years ago fixed arch/powerpc Nick Withers Sebastian Huber 19 months ago
Summary

[mvme3100] boot_card() broken by 37030e38

Description

Backtrace with 37030e38* (with a fatal exception handler installed):

#0  fatal_extension (the_source=INTERNAL_ERROR_CORE, is_internal=true, the_error=23) at init.c:425
#1  0x000a6d18 in _User_extensions_Iterate (arg=arg@entry=0x1ab6348, visitor=0xa6c70 <_User_extensions_Fatal_visitor>) at ../../../../../../../rtems/c/src/../../cpukit/score/src/userextiterate.c:155
#2  0x000a1c90 in _User_extensions_Fatal (error=23, is_internal=true, source=INTERNAL_ERROR_CORE) at ../../cpukit/../../../mvme3100/lib/include/rtems/score/userextimpl.h:254
#3  _Terminate (the_source=the_source@entry=INTERNAL_ERROR_CORE, is_internal=is_internal@entry=true, the_error=the_error@entry=23) at ../../../../../../../rtems/c/src/../../cpukit/score/src/interr.c:44
#4  0x0007ad40 in RTEMS_Malloc_Initialize (areas=areas@entry=0x1ab6398, area_count=area_count@entry=1, extend=extend@entry=0x0 <preload>)
    at ../../../../../../../rtems/c/src/../../cpukit/libcsupport/src/malloc_initialize.c:53
#5  0x0005cf84 in bsp_work_area_initialize_default (area_size=<optimized out>, area_begin=<optimized out>) at ../../../../../.././mvme3100/lib/include/bsp/bootcard.h:183
#6  bsp_work_area_initialize () at ../../../../../../../../../rtems/c/src/lib/libbsp/powerpc/mvme3100/../../powerpc/shared/startup/bspgetworkarea.c:23
#7  0x0005cec4 in boot_card (cmdline=<optimized out>) at ../../../../../../../../../rtems/c/src/lib/libbsp/powerpc/mvme3100/../../shared/bootcard.c:80
#8  0x00003294 in __rtems_entry_point () at ../../../../../../../../../rtems/c/src/lib/libbsp/powerpc/mvme3100/start/start.S:89

If I reverse the changes to c/src/lib/libbsp/shared/bootcard.c it works again.

* With RSB e3b9fb68 and the following RTEMS patches:

#2554 3 years ago fixed score Sebastian Huber Sebastian Huber 19 months ago
Summary

New watchdog handler implementation

Description

Background

The watchdog handler uses delta chains. The insert operation has a O(n) worst-case time complexity with n being the count of watchdogs in the delta chain. In each step of the insert operation, the SMP lock of the corresponding watchdog header is acquired and released. The profiling data obtain by test program smptests/smpwakeafter01 showed that the current implementation leads to unacceptable latencies, thus it should be replaced by something else.

The use cases for the watchdog handler fall roughly into two categories.

  • Timeouts - used to detect if some operations needs more time than expected. Since the unexpected happens hopefully rarely, timeout timers are usually removed before they expire. The critical operations are insert and removal. They are important for the performance of a network stack.
  • Timers - used to carry out some work in the future. They usually expire and need a high resolution. An example user is a time driven scheduler, e.g. rate-monotonic or EDF.

One approach is to use a red-black tree with the expiration time as the key. This leads to O(log(n)) worst-case insert and removal operations. For each operation it is sufficient to acquire and release the lock only once. The drawback is that a 64-bit integer type must be used for the intervals to avoid a potential overflow of the key values. With a system tick interval of 1ns the system could run more than 500 years before an overflow happens. The EDF scheduler would also profit from a 64-bit interval representation, see #2173.

An alternative is the use of a timer wheel based algorithm which is used in Linux and FreeBSD for example. A timer wheel based algorithm offers O(1) worst-case time complexity for insert and removal operations. The drawback is that the run-time of the watchdog tick procedure is somewhat unpredictable due to the use of a hash table or cascading.

Which approach should we choose? Since the watchdog serves the timeout and timer services in RTEMS we have to make some trade-offs. We recommend to use the red-black tree approach which offers a more predictable run-time behaviour and sacrifice the constant insert and removal operations offered by the timer wheel algorithms, see also https://www.kernel.org/doc/ols/2006/ols2006v1-pages-333-346.pdf. We can reuse the red-black tree support already used for the thread priority queues.

The new watchdog handler implementation is a prerequisite to eliminate the Giant lock in the Classic Timer manager.

Implementation

Change the _Watchdog_Ticks_since_boot to a 64-bit integer type. Keep the Watchdog_Interval at 32-bit for backward compatibility. Replace the delta chains with a red-black tree. Use the ticks for timers with a relative expiration time. Use struct timespec or struct bintime for timers with an absolute expiration time. This has the benefit that we do not have to adjust the data structures in case the absolute time changes, e.g. due to NTP. It simplifies the POSIX timer services, since no conversion to ticks is necessary.

#2555 3 years ago fixed score Sebastian Huber Sebastian Huber 18 months ago
Summary

Eliminate the Giant lock

Description

Background

The standard approach to turn a uni-processor operating system into an SMP-capable operating system is to encapsulate virtually the complete operating system state and protect it by one global recursive lock - the Giant lock. Thus, at most one processor can modify the operating system state at a time. Under Giant lock protection interrupt disable/enable critical sections still work. This approach is easy to realize and leads to something that runs on SMP with a minimal effort. Unfortunately, such an operating system does not scale with the processor count and offers very poor performance. It is quite useless for real applications.

The first steps to get rid of the Giant lock are tackled with the introduction of fine grained locking for the scheduler, watchdog handler, timestamps, thread queues, events, semaphores and message queues. The Giant lock is still used in a couple of places, e.g. all other objects using thread queues, thread life cycle changes (termination, restart) and scheduler changes. It is a straight forward task to eliminate it entirely, but it is also somewhat labour intensive since a lot of code must be changed.

Implementation

Eliminate all remaining code areas that use

  • _ISR_Disable(),
  • _ISR_Enable(), and
  • _ISR_Flash().

Direct users of these macros are

  • _Chain_Append(),
  • _Chain_Extract(),
  • _Chain_Get(),
  • _Chain_Insert(), and
  • _Chain_Prepend().

Each spot must be dealt with individually. Once this is done, delete these macros since they are now superfluous. Rename _ISR_Disable_without_giant() into _ISR_Locale_disable(). Rename _ISR_Enable_without_giant() into _ISR_Locale_enable().

Eliminate all remaining code areas that use

  • _Thread_Disable_dispatch() and
  • _Thread_Enable_dispatch().

A prominent user of this functions is _Objects_Get(). The following components are affected by these functions

  • Classic barrier handler,
  • Classic dual-ported memory handler,
  • Classic message queue handler,
  • Classic partition handler,
  • Classic rate-monotonic handler,
  • Classic region handler,
  • Classic semaphore handler,
  • Classic timer handler,
  • extension handler,
  • IO manager,
  • multi-processing management,
  • objects management,
  • POSIX barrier handler,
  • POSIX condition handler,
  • POSIX key handler,
  • POSIX message queue handler,
  • POSIX mutex handler,
  • POSIX rwlock handler,
  • POSIX semaphore handler,
  • POSIX spinlock handler,
  • POSIX timer handler,
  • signals,
  • thread cancellation,
  • thread life-cycle changes, and
  • thread scheduler changes.

Once this is done, delete _Thread_Disable_dispatch() and _Thread_Enable_dispatch(). As a side-effect the Giant lock will be removed.

#2556 3 years ago fixed score Sebastian Huber Sebastian Huber 19 months ago
Summary

Implement the O(m) Independence-Preserving Protocol (OMIP)

Description

Background

The O(m) Independence-Preserving Protocol (OMIP) is a generalization of the priority inheritance protocol to clustered scheduling which avoids the non-preemptive sections present with priority boosting. The m denotes the number of processors in the system. Its implementation requires an extension of the scheduler helping protocol already used for the MrsP semaphores. However, the current implementation of the scheduler helping protocol has two major issues, see Catellani, Sebastiano, Luca Bonato, Sebastian Huber, and Enrico Mezzetti: Challenges in the Imple- mentation of MrsP. In Reliable Software Technologies - Ada-Europe 2015, pages 179–195, 2015. Firstly, the run-time of some scheduler operations depend on the size of the resource dependency tree. Secondly, the scheduler operations of threads which don't use shared resources must deal with the scheduler helping protocol in case an owner of a shared resource is somehow involved.

To illustrate the second issue, let us look at the following example. We have a system with eight processors and two L2 caches. We assign processor 0 to a partition P for latency sensitive real-time tasks (e.g. sensor and actuator handling), processors 1, 2 and 3 are assigned to a cluster CA and the remaining processors are assigned to a cluster CB for soft real-time worker tasks. The worker tasks use a shared resource, e.g. a file system for data storage. Let us suppose a task R of partition P sends a message to the workers. This may make a waiting worker ready, which in turn pre-empts the owner of a shared resource. In this case the scheduler helping protocol takes action and is carried out by the task R. This contradicts the intended isolation of scheduler instances.

The reason for this unfortunate coupling is a design issue of the scheduler helping protocol implementation. Some scheduler operations may return a thread in need of help. For example, if a thread is unblocked which pre-empts an owner of a shared resource, then the pre-empted thread is returned. Once a thread in need of help is returned, the ask for help operation of the scheduler is executed. An alternative to this return value based approach is the introduction of a pre-emption intervention during thread dispatching. Threads taking part in the scheduler helping protocol indicate this with a positive resource count value. In case a thread dispatch occurs and pre-empts an owner of a shared resource, the scheduler ask for help operation is invoked. So, the work is carried out on behalf of the thread which takes part in the scheduler helping protocol.

To overcome the first issue, an improved resource dependency tracking is required. One approach is to use a recursive red-black tree based data structure, see #2412.

Implementation

There are several steps necessary to implement OMIP.

  • Introduce per-scheduler locks.
  • Enable context switches with interrupts enabled.
  • Add a pre-emption intervention to the thread dispatch.
  • Add a table for priority nodes to the thread control block. For each scheduler instance there is one priority node.
  • Update the table in case the thread blocks on a resource, a timeout while waiting for a resource occurs, or ownership of a resource is transferred to the thread.
  • Use this table in the pre-emption intervention.
  • Update the MrsP implementation to the new infrastructure.

Currently, only one scheduler lock for all scheduler instances is used. This simplified the MrsP implementation and due to the presence of a Giant lock, this was not an issue. With the elimination of the Giant lock, however, we need one scheduler lock per scheduler instance to really profit from a decoupled system due to clustered scheduling.

The current implementation of thread dispatching has some implications with respect to the interrupt latency. It is crucial to preserve the system invariant that a thread can execute on at most one processor in the system at a time. This is accomplished with a boolean indicator in the thread context. The processor architecture specific context switch code will mark that a thread context is no longer executing and waits that the heir context stopped execution before it restores the heir context and resumes execution of the heir thread (the boolean indicator is basically a TTAS lock). So, there is one point in time in which a processor is without a thread. This is essential to avoid cyclic dependencies in case multiple threads migrate at once. Otherwise some supervising entity is necessary to prevent deadlocks. Such a global supervisor would lead to scalability problems so this approach is not used. Currently the context switch is performed with interrupts disabled. Thus in case the heir thread is currently executing on another processor, the time of disabled interrupts is prolonged since one processor has to wait for another processor to make progress.

If we add pre-emption intervention to the thread dispatch sequence, then there is an even greater need to avoid this issue with the interrupt latency. Interrupts normally store the context of the interrupted thread on its stack. In case a thread is marked as not executing, we must not use its thread stack to store such an interrupt context. We cannot use the heir stack before it stopped execution on another processor. If we enable interrupts during this transition, then we have to provide an alternative thread independent stack for interrupts in this time frame.

The pre-emption intervention should be added to _Thread_Do_dispatch() before the heir is read and perform the following pseudo-code actions.

pre_emption_intervention(executing):
	if executing.resource_count > 0:
		executing.lock()
		if executing.is_ready():
			for scheduler in executing.schedulers:
				scheduler.lock()
			if !executing.is_scheduled():
				for scheduler in executing.schedulers:
					scheduler.ask_for_help(executing)
			for scheduler in executing.schedulers:
				scheduler.unlock()
		else if executing.active_help_level > 0:
			idle.use(executing.scheduler_node)
		executing.unlock()

The scheduler help operation affects multiple scheduler instances. In terms of locking we have only two options,

  • use a global scheduler lock, or
  • obtain multiple per-scheduler locks at once.

A global scheduler lock is not an option. To avoid deadlocks obtain the per-scheduler locks in a fixed order. However, in this case the per-scheduler locks will observe different worst-case and average-case acquire times (depending on the order).

Use a recursive data structure to determine the highest priority available to a thread for each scheduler instance, e.g.

typedef struct Thread_Priority_node {
	Priority_Control current_priority;
	Priority_Control real_priority;
	struct Thread_Priority_node *owner;
	RBTree_Node Node;
	RBTree_Control Inherited_priorities;
} Thread_Priority_node;

typedef struct {
	...
	Thread_Priority_node *priority_nodes; /* One per scheduler instances */
	...
} Thread_Control;

Initially a thread has a priority node reflecting its real priority. The Thread_Priority_node::owner is NULL. The Thread_Priority_node::current_priority is set to the real priority. The Thread_Priority_node::Inherited_priorities is empty.

In case the thread must wait for ownership of a mutex, then it enqueues its priority node in Thread_Priority_node::Inherited_priorities of the mutex owner.

In case the thread is dequeued from the wait queue of a mutex, then it dequeues its priority node in Thread_Priority_node::Inherited_priorities of the previous mutex owner (ownership transfer) or the current mutex owner (acquire timeout).

In case the minimum of the Thread_Priority_node::real_priority and the Thread_Priority_node::Inherited_priorities changes, then Thread_Priority_node::current_priority is updated. In case the Thread_Priority_node::owner its not NULL, the priority change propagates to the owner, and so on. In case Thread_Priority_node::current_priority changes, the corresponding scheduler is notified.

Use the thread lock to protect the priority nodes.

#2559 3 years ago fixed score Sebastian Huber Sebastian Huber 19 months ago
Summary

Delete the EXTERN pattern

Description

Change the following pattern: some.h:

#ifndef SOME_XYZ_EXTERN
#define SOME_XYZ_EXTERN extern
#endif
SOME_XYZ_EXTERN type xyz;

some_xyz.c:

#define SOME_XYZ_EXTERN
#include <some.h>

into: some.h:

extern type xyz;

some_xyz.c:

#include <some.h>
type xyz;

See discussion:

https://lists.rtems.org/pipermail/devel/2016-January/013506.html

Update Developer/Coding/Conventions accordingly.

#2606 3 years ago fixed posix Sebastian Huber Sebastian Huber 19 months ago
Summary

alarm() uses seconds watchdog and thus is affected by clock changes

Description

alarm() uses _Watchdog_Insert_seconds() and thus is affected by clock changes, e.g. via _TOD_Set(). This is wrong. The POSIX documentation is not that clear since it talks only about "realtime seconds". However, the FreeBSD implementation uses the uptime. This is also in line with the RTEMS ualarm() and nanosleep().

#2617 3 years ago fixed score Joel Sherrill Sebastian Huber 19 months ago
Summary

rtems_heap_allocate_aligned_with_boundary() body and prototype inconsistent

Description

The first parameter is size_t in the .h and uintptr_t in the body. This resulted in a compiler error on the m32c. But it is an inconsistency which should be fixed even if no architecture complained.

The malloc.h header file has this:

void *rtems_heap_allocate_aligned_with_boundary(

size_t size, uintptr_t alignment, uintptr_t boundary

);

malloc_deferred.c has this:

void *rtems_heap_allocate_aligned_with_boundary(

uintptr_t size, uintptr_t alignment, uintptr_t boundary

)

#2625 3 years ago fixed posix Sebastian Huber Sebastian Huber 19 months ago
Summary

Use one lookup tree per-thread for the POSIX keys

Description

Currently a global lookup tree is used for all the POSIX key/value pairs. On SMP configurations this is a bottleneck. Use one lookup tree per thread instead.

#2626 3 years ago fixed score Sebastian Huber Sebastian Huber 19 months ago
Summary

Unify thread cancel/join and delete

Description

The rtems_task_delete() is basically a pthread_cancel() plus pthread_join(). Unify the implementation and introduce a _Thread_Cancel() and _Thread_Join() to be used by both APIs. Get rid of the Giant lock for thread delete.

#2627 3 years ago fixed score Sebastian Huber Sebastian Huber 19 months ago
Summary

Fix CPU time used for threads on SMP

Description

The CPU time used of a thread is currently maintained per-processor mostly during _Thread_Dispatch(). However, on SMP configurations the actual processor of a thread is difficult to figure out since thread dispatching is a highly asynchronous process (e.g. via inter-processor interrupts). Only the intended processor of a thread is known to the scheduler easily. Do the CPU usage accounting during thread heir updates in the context of the scheduler operations. Provide a function to get the CPU usage of a thread using proper locks to get a consistent value.

#2628 3 years ago wontfix score Sebastian Huber Sebastian Huber 18 months ago
Summary

Avoid home-grown condition variable implementation in the Classic Regions

Description

The Classic Region manager enables users to wait until memory is available to satisfy an allocation request. This is done through special purpose code that basically implements a condition variable.

#2631 3 years ago fixed score Sebastian Huber Sebastian Huber 19 months ago
Summary

Use an ISR lock to protect the state of Classic Rate Monotonic objects

Description

The state of Classic Rate Monotonic is currently protected by the Giant lock and ISR disable sections. Use a per-object ISR lock to protect state changes instead.

#2633 3 years ago fixed network/legacy joguin Sebastian Huber 19 months ago
Summary

waf build failed for rtems-libbsd

Description

The rtems-libbsd failed when building with waf. Here is the output:

[488/845] Compiling freebsd/sys/kern/subr_taskqueue.c In file included from /home/josh/development/rtems/bsps/4.12/i386-rtems4.12/pc386/lib/include/rtems/score/threadimpl.h:36:0,

from ../../freebsd/sys/kern/subr_sleepqueue.c:91:

/home/josh/development/rtems/bsps/4.12/i386-rtems4.12/pc386/lib/include/rtems/score/watchdogimpl.h: In function '_Watchdog_Per_CPU_insert_relative': /home/josh/development/rtems/bsps/4.12/i386-rtems4.12/pc386/lib/include/rtems/score/watchdogimpl.h:356:18: error: 'struct <anonymous>' has no member named '_bsd_ticks'; did you mean 'ticks'?

cpu->Watchdog.ticks + ticks

In file included from ../../freebsd/sys/kern/subr_sleepqueue.c:62:0: ../../freebsd/sys/kern/subr_sleepqueue.c: In function 'sleepq_set_timeout': ../../freebsd/sys/kern/subr_sleepqueue.c:424:29: error: 'Thread_Timer_information {aka struct <anonymous>}' has no member named 'state'

BSD_ASSERT(executing->Timer.state == WATCHDOG_INACTIVE);

../../freebsd/sys/kern/subr_sleepqueue.c:424:2: note: in expansion of macro 'BSD_ASSERT'

BSD_ASSERT(executing->Timer.state == WATCHDOG_INACTIVE); ~

../../freebsd/sys/kern/subr_sleepqueue.c:425:2: error: too many arguments to function '_Watchdog_Initialize'

_Watchdog_Initialize(&executing->Timer, sleepq_timeout, ~

In file included from /home/josh/development/rtems/bsps/4.12/i386-rtems4.12/pc386/lib/include/rtems/score/threadimpl.h:36:0,

from ../../freebsd/sys/kern/subr_sleepqueue.c:91:

/home/josh/development/rtems/bsps/4.12/i386-rtems4.12/pc386/lib/include/rtems/score/watchdogimpl.h:178:27: note: declared here

RTEMS_INLINE_ROUTINE void _Watchdog_Initialize(

~

Waf: Leaving directory `/home/josh/development/rtems/rtems-libbsd/build/i386-rtems4.12-pc386' Build failed

#2663 3 years ago wontfix arch/i386 Joel Sherrill Sebastian Huber 19 months ago
Summary

pc386 BSP has complex dependencies

Description

In 4.11, the minimum executable did not include open() and close() because the methods rtems_libio_post_driver() and rtems_libio_exit() were not included in the executable. On the master, these two methods are showing up in minimum and pulling in these methods.

The dependency chain used to be if the console driver was installed, we needed to open and close stdin, stdout, and stderr. Now even without the console configured these are included.

FWIW the minimum size looks pretty good on the master for sis. Fixing this would likely drop it at least another 5%.

#2664 3 years ago duplicate score Joel Sherrill Sebastian Huber 19 months ago
Summary

spclock_err02

Description

New test failure on sis but likely all targets.

* BEGIN OF TEST SPCLOCK_ERR 2 * TA1 - rtems_io_close - RTEMS_INVALID_NUMBER TA1 - rtems_io_control - RTEMS_INVALID_NUMBER TA1 - rtems_io_initialize - RTEMS_INVALID_NUMBER TA1 - rtems_io_open - RTEMS_INVALID_NUMBER TA1 - rtems_io_read - RTEMS_INVALID_NUMBER TA1 - rtems_io_write - RTEMS_INVALID_NUMBER TA1 - rtems_clock_set - 23:59:59 12/31/2000 - RTEMS_SUCCESSFUL TA1 - rtems_clock_get_tod - 00:00:00 01/01/2001 - RTEMS_SUCCESSFUL TA1 - rtems_clock_set - 23:59:59 12/31/1999 - RTEMS_SUCCESSFUL TA1 - rtems_clock_get_tod - 00:00:00 01/01/2000 - RTEMS_SUCCESSFUL assertion "ticks < 0x400000000" failed: file "../../cpukit/../../../sis/lib/include/rtems/score/watchdogimpl.h", line 316, function: _Watchdog_Ticks_from_timespec

Breakpoint 1, _Terminate (the_source=the_source@entry=RTEMS_FATAL_SOURCE_ASSERT,

is_internal=is_internal@entry=false, the_error=the_error@entry=33694096) at ../../../../../../rtems/c/src/../../cpukit/score/src/interr.c:36

36 { (gdb) bt #0 _Terminate (the_source=the_source@entry=RTEMS_FATAL_SOURCE_ASSERT,

is_internal=is_internal@entry=false, the_error=the_error@entry=33694096) at ../../../../../../rtems/c/src/../../cpukit/score/src/interr.c:36

#1 0x0200aed4 in rtems_fatal (source=source@entry=RTEMS_FATAL_SOURCE_ASSERT,

error=error@entry=33694096) at ../../../../../../rtems/c/src/../../cpukit/sapi/src/fatal2.c:34

#2 0x02004a9c in assert_func (

file=file@entry=0x201a650 "../../cpukit/../../../sis/lib/include/rtems/score/watchdogimpl.h", line=line@entry=316, func=func@entry=0x201a6d0 <func.3277> "_Watchdog_Ticks_from_timespec", failedexpr=failedexpr@entry=0x201a638 "ticks < 0x400000000") at ../../../../../../rtems/c/src/../../cpukit/libcsupport/src/assert.c:52

#3 0x0200bbf8 in _Watchdog_Ticks_from_timespec (ts=0x2022210)

at ../../cpukit/../../../sis/lib/include/rtems/score/watchdogimpl.h:316

#4 _TOD_Set_with_timestamp (tod_as_timestamp=tod_as_timestamp@entry=0x2022280)

at ../../../../../../rtems/c/src/../../cpukit/score/src/coretodset.c:40

#5 0x02009880 in rtems_clock_set (tod=tod@entry=0x2022304)

at ../../../../../../rtems/c/src/../../cpukit/rtems/src/clockset.c:42

#6 0x02001818 in Init (argument=<optimized out>)

at ../../../../../../../rtems/c/src/../../testsuites/sptests/spclock_err02/init.c:93

#7 0x0200fcbc in _Thread_Entry_adaptor_numeric (executing=0x201fb90)

at ../../../../../../rtems/c/src/../../cpukit/score/src/threadentryadaptornumeric---Type <return> to continue, or q <return> to quit---

.c:25 #8 0x02012e0c in _Thread_Handler ()

at ../../../../../../rtems/c/src/../../cpukit/score/src/threadhandler.c:93

#9 0x02012d60 in _Thread_Handler ()

at ../../../../../../rtems/c/src/../../cpukit/score/src/threadhandler.c:29

(gdb) l init.c:93 88 status = rtems_clock_get_tod( &time ); 89 directive_failed( status, "rtems_clock_get_tod" ); 90 print_time( "TA1 - rtems_clock_get_tod - ", &time, " - RTEMS_SUCCESSFUL\n" ); 91 92 build_time( &time, 12, 31, 2100, 23, 59, 59, 0 ); 93 status = rtems_clock_set( &time ); 94 directive_failed( status, "rtems_clock_set" ); 95 print_time( "TA1 - rtems_clock_set - ", &time, " - RTEMS_SUCCESSFUL\n" ); 96 status = rtems_task_wake_after( rtems_clock_get_ticks_per_second() ); 97 status = rtems_clock_get_tod( &time ); (gdb)

#2674 3 years ago fixed posix Sebastian Huber Sebastian Huber 19 months ago
Summary

CORE spinlock implementation is next to be useless

Description

Lets assume we have two tasks A and B. Task A acquires a CORE spinlock. Now B somehow executes and tries to acquire the same CORE spinlock, then no progress can be made.

Alternative implementation:

Disable thread dispatching and interrupts while owning the spinlock. Forbid blocking calls while owning the spinlock.

Drawback: The test cases of the Linux Test Project would fail:

https://github.com/linux-test-project/ltp/blob/master/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_lock/1-2.c

Optimization: User provided storage space for pthread_spin_t. In line with POSIX:

"Only the object referenced by lock may be used for performing synchronization."

http://pubs.opengroup.org/onlinepubs/009695399/functions/pthread_spin_destroy.html

#2684 3 years ago fixed arch/sparc David Binderman Sebastian Huber 19 months ago
Summary

rtems/c/src/lib/libbsp/sparc/leon3/clock/ckinit.c:122: duplicate if

Description

rtems/c/src/lib/libbsp/sparc/leon3/clock/ckinit.c:122]: (style) Expression is always false because 'else if' condition matches previous condition at line 116.

Source code is

} else if (state == 1) {

unsigned int ks = 1U << 5;

state = 0;

irqmp_ts->control = ks | s1_s2 | (unsigned int) clkirq;

} else if (state == 1) {

#2685 3 years ago fixed arch/arm David Binderman Sebastian Huber 19 months ago
Summary

c/src/lib/libbsp/arm/atsam/network/if_atsam.c:409: possible bad if statement

Description

rtems/c/src/lib/libbsp/arm/atsam/network/if_atsam.c:409]: (style) Redundant condition: If 'phy <= 0', the comparison 'phy <= 31' is always true.

Source code is

if ((phy <= 0) && (phy <= 31)) {

/*

  • invalid phy number */

Maybe better code

if ((phy <= 0)
(phy >= 31)) {

/*

  • invalid phy number */
#2689 3 years ago fixed posix Sebastian Huber Sebastian Huber 19 months ago
Summary

POSIX key destructors must be called during thread restart

Description

POSIX key destructors must be called during thread restart. Just like the POSIX cleanup handlers. This ensures that the TLS object destructors are called during thread restart for example. It is important for the global construction, which uses a thread restart to run the Init task in a clean environment.

#2692 3 years ago fixed score Sebastian Huber Sebastian Huber 19 months ago
Summary

User extensions execution order must be clarified

Description

The implemented and documented execution order of some user extensions disagree. Intended behaviour must be tested. Documentation must be updated accordingly.

#2694 3 years ago worksforme network/legacy Joel Sherrill Sebastian Huber 19 months ago
Summary

linking issue for htonl, etc when using -std=c99

Description

When -std=c99 is on the compile line, there is a linking error for undefined references to htonl, htons, ntohl, and ntohs. This test case is just for htonl but others should be similar.

This likely impacts the 4.11 branch of rtems-libbsd as well but I was testing on master.

Test case ====================== #include <arpa/inet.h>

int main(

int argc, char argv

) {

uint32_t v = (uint32_t) argc; uint32_t rc = htonl(v); return v;

} ======================

This script was what I used to find what caused the linking error to go away.

====================== RTEMS_MAKEFILE_PATH=/home/joel/rtems-4.11-work/tools/4.12/i386-rtems4.12/pc586/

i386-rtems4.12-gcc -std=c99 \

-B${RTEMS_MAKEFILE_PATH}/lib -specs bsp_specs -qrtems \ -D_XOPEN_SOURCE=600 -DUSE_SVID main.c -lbsd -lm -lbsd

i386-rtems4.12-gcc -std=c99 \

-B${RTEMS_MAKEFILE_PATH}/lib -specs bsp_specs -qrtems \ -DUSE_SVID main.c -lbsd -lm -lbsd

i386-rtems4.12-gcc -std=c99 \

-B${RTEMS_MAKEFILE_PATH}/lib -specs bsp_specs -qrtems \ main.c -lbsd -lm -lbsd

i386-rtems4.12-gcc \

-B${RTEMS_MAKEFILE_PATH}/lib -specs bsp_specs -qrtems \ main.c -lbsd -lm -lbsd

======================

#2695 3 years ago fixed tool/gcc Sebastian Huber Sebastian Huber 19 months ago
Summary

Add libatomic for RTEMS

#2696 3 years ago fixed unspecified Sebastian Huber Sebastian Huber 19 months ago
Summary

Unpredictable errno value returned by sem_wait() in case of semaphore deletion

Description

_POSIX_Semaphore_Delete() used -1 for the thread queue flush status which in turn resulted in an invalid memory access in _POSIX_Semaphore_Translate_core_semaphore_return_code().

#2702 3 years ago fixed posix Sebastian Huber Sebastian Huber 18 months ago
Summary

Remove descriptor objects for POSIX message queues

Description

The mq_open() function returns a descriptor to a POSIX message queue object identified by a name. This is similar to sem_open(). In contrast to the POSIX semaphore the POSIX message queues use a separate object for the descriptor. This extra object is superfluous, since the object identifier can be used directly for this purpose, just like for the semaphores.

#2714 3 years ago fixed posix Sebastian Huber Sebastian Huber 19 months ago
Summary

A pthread_detach() does not lead to a resource reclamation

Description

According to POSIX a pthread_detach() should lead to a resource reclamation if the thread is already cancelled.

#2718 3 years ago fixed unspecified Sebastian Huber Sebastian Huber 19 months ago
Summary

Blocking _CORE_message_queue_Submit() may lead to unpredictable results

Description

The thread wait return code is not properly initialized before the thread queue enqueue.

#2722 3 years ago fixed tool/newlib Sebastian Huber Sebastian Huber 19 months ago
Summary

SEM_VALUE_MAX is unusually small on RTEMS

Description

RTEMS defines SEM_VALUE_MAX to 32767 in Newlib

newlib/libc/sys/rtems/include/limits.h

Other systems use INT_MAX or 2147483647.

#2723 3 years ago fixed unspecified Sebastian Huber Sebastian Huber 19 months ago
Summary

CPUINFO command to report per-processor information

Description

Add a CPUINFO command to report per-processor information, e.g. processor index, online state and scheduler assignment.

[/] # cpuinfo
-------------------------------------------------------------------------------
                            PER PROCESSOR INFORMATION
-------+--------+--------------+-----------------------------------------------
 INDEX | ONLINE | SCHEDULER ID | SCHEDULER NAME
-------+--------+--------------+-----------------------------------------------
     0 |      1 |   0x0f010001 | MPS 
     1 |      1 |   0x0f010001 | MPS 
     2 |      1 |   0x0f010001 | MPS 
     3 |      1 |   0x0f010001 | MPS 
     4 |      1 |   0x0f010001 | MPS 
     5 |      1 |   0x0f010001 | MPS 
     6 |      1 |   0x0f010001 | MPS 
     7 |      1 |   0x0f010001 | MPS 
     8 |      1 |   0x0f010001 | MPS 
     9 |      1 |   0x0f010001 | MPS 
    10 |      1 |   0x0f010001 | MPS 
    11 |      1 |   0x0f010001 | MPS 
    12 |      1 |   0x0f010001 | MPS 
    13 |      1 |   0x0f010001 | MPS 
    14 |      1 |   0x0f010001 | MPS 
    15 |      1 |   0x0f010001 | MPS 
    16 |      1 |   0x0f010001 | MPS 
    17 |      1 |   0x0f010001 | MPS 
    18 |      1 |   0x0f010001 | MPS 
    19 |      1 |   0x0f010001 | MPS 
    20 |      1 |   0x0f010001 | MPS 
    21 |      1 |   0x0f010001 | MPS 
    22 |      1 |   0x0f010001 | MPS 
    23 |      1 |   0x0f010001 | MPS
#2725 3 years ago fixed score Sebastian Huber Sebastian Huber 19 months ago
Summary

Classic binary semaphores without a locking protocol can be released by everyone

Description

The Classic binary semaphores without a locking protocol can be released by everyone, e.g. in contrast to the POSIX mutexes (all variants) or the Classic binary semphores with priority inheritance or ceiling, there is no owner check in the release path.

This behaviour is a bit unexpected and not documented.

The following test case fails in case an owner check is added:

*** BEGIN OF TEST SP 42 ***
Exercising blocking discipline w/extract in FIFO order 
Exercising blocking discipline w/unblock in FIFO order
TA00 - unblocked - OK

rtems_semaphore_delete FAILED -- expected (RTEMS_SUCCESSFUL) got (RTEMS_RESOURCE_IN_USE)

This is actually a bug in the test, since an available mutex is released again.

#2727 3 years ago fixed fs/fat Sebastian Huber Sebastian Huber 19 months ago
Summary

FAT file systems use wrong semaphore for mutual exclusion

Description
cpukit/libfs/src/dosfs/msdos_initsupp.c-
cpukit/libfs/src/dosfs/msdos_initsupp.c-    sc = rtems_semaphore_create(3,
cpukit/libfs/src/dosfs/msdos_initsupp.c-                                1,
cpukit/libfs/src/dosfs/msdos_initsupp.c:                                RTEMS_BINARY_SEMAPHORE | RTEMS_FIFO,
cpukit/libfs/src/dosfs/msdos_initsupp.c-                                0,
cpukit/libfs/src/dosfs/msdos_initsupp.c-                                &fs_info->vol_sema);
cpukit/libfs/src/dosfs/msdos_initsupp.c

Should use a binary semaphore with inherit priority.

#2728 3 years ago fixed score Sebastian Huber Sebastian Huber 19 months ago
Summary

Pipes use wrong semaphore for mutual exclusion

Description
cpukit/libfs/src/pipe/fifo.c-      sc = rtems_semaphore_create(
cpukit/libfs/src/pipe/fifo.c-        rtems_build_name('P', 'I', 'P', 'E'),
cpukit/libfs/src/pipe/fifo.c-        1,
cpukit/libfs/src/pipe/fifo.c:        RTEMS_BINARY_SEMAPHORE | RTEMS_INHERIT_PRIORITY | RTEMS_PRIORITY,
cpukit/libfs/src/pipe/fifo.c-        RTEMS_NO_PRIORITY,
cpukit/libfs/src/pipe/fifo.c-        &pipe_semaphore
cpukit/libfs/src/pipe/fifo.c-      );

Should use a binary semaphore with inherit priority instead.

#2729 3 years ago fixed score Sebastian Huber Sebastian Huber 19 months ago
Summary

TFTP client uses wrong semaphore for mutual exclusion

Description
cpukit/libnetworking/lib/tftpDriver.c-    rtems_build_name('T', 'F', 'T', 'P'),
cpukit/libnetworking/lib/tftpDriver.c-    1,
cpukit/libnetworking/lib/tftpDriver.c-    RTEMS_FIFO |
cpukit/libnetworking/lib/tftpDriver.c:    RTEMS_BINARY_SEMAPHORE |
cpukit/libnetworking/lib/tftpDriver.c-    RTEMS_NO_INHERIT_PRIORITY |
cpukit/libnetworking/lib/tftpDriver.c-    RTEMS_NO_PRIORITY_CEILING |
cpukit/libnetworking/lib/tftpDriver.c-    RTEMS_LOCAL,

Should use a binary semaphore with inherit priority.

#2735 3 years ago fixed posix Sebastian Huber Sebastian Huber 19 months ago
Summary

pthread_setschedparam() sets the priority not according to POSIX

Description

See also

http://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_08_04_01

In particular the distinction to pthread_setschedprio() (SCHED_FIFO, item 7.).

#2736 3 years ago fixed posix Sebastian Huber Sebastian Huber 19 months ago
Summary

pthread_getschedparam() returns wrong priority values

Description

See also

http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_getschedparam.html

"The priority value returned from pthread_getschedparam() shall be the value specified by the most recent pthread_setschedparam(), pthread_setschedprio(), or pthread_create() call affecting the target thread. It shall not reflect any temporary adjustments to its priority as a result of any priority inheritance or ceiling functions."

#2737 3 years ago fixed bsps Sebastian Huber Sebastian Huber 19 months ago
Summary

Add CLOCK_DRIVER_USE_ONLY_BOOT_PROCESSOR

Description

Add CLOCK_DRIVER_USE_ONLY_BOOT_PROCESSOR clock driver option. If defined, then do the clock tick processing on the boot processor on behalf of all other processors. Currently, this is intended as a workaround for a Qemu shortcoming on ARM.

#2740 3 years ago fixed score Sebastian Huber Sebastian Huber 19 months ago
Summary

Suboptimal type for Timestamp_Control

Description

Currently we have

typedef struct bintime Timestamp_Control;

this type offers more precision than needed. Maybe use sbintime_t (also known as int64_t) instead to simplify computations.

#2742 3 years ago fixed unspecified Joel Sherrill Sebastian Huber 19 months ago
Summary

New warning in SHM driver

Description

Not sure how to fix this one

../../../../../rtems/c/src/libchip/shmdr/init.c:241:29: warning: assignment from incompatible pointer type [-Wincompatible-pointer-types]

MPCI_Shm_extensions.fatal = MPCI_Fatal;

PowerPC/psim with multiprocessing enabled.

#2749 3 years ago fixed rtems Sebastian Huber Sebastian Huber 19 months ago
Summary

rtems_task_set_scheduler() has insufficient parameters

Description

Task priorities are only valid within a scheduler instance. The rtems_task_set_scheduler() directive moves a task from one scheduler instance to another using the current priority of the thread. However, the current task priority of the source scheduler instance is undefined in the target scheduler instance. Add a third parameter to specify the priority.

/**
 * @brief Sets the scheduler instance of a task.
 *
 * Initially, the scheduler instance of a task is set to the scheduler instance
 * of the task that created it.  This directive allows to move a task from its
 * current scheduler instance to another specified by the scheduler identifier.
 *
 * @param[in] task_id Identifier of the task.  Use @ref RTEMS_SELF to select
 *   the executing task.
 * @param[in] scheduler_id Identifier of the scheduler instance.
 * @param[in] priority The task priority with respect to the new scheduler
 *   instance.  The real and initial priority of the task is set to this value.
 *   The initial priority is used by rtems_task_restart() for example.
 *
 * @retval RTEMS_SUCCESSFUL Successful operation.
 * @retval RTEMS_ILLEGAL_ON_REMOTE_OBJECT Directive is illegal on remote tasks.
 * @retval RTEMS_INVALID_ID Invalid task or scheduler identifier.
 * @retval RTEMS_INVALID_PRIORITY Invalid priority.
 * @retval RTEMS_RESOURCE_IN_USE The task owns resources which deny a scheduler
 *   change.
 *
 * @see rtems_scheduler_ident().
 */
rtems_status_code rtems_task_set_scheduler(
  rtems_id            task_id,
  rtems_id            scheduler_id,
  rtems_task_priority priority
);
#2750 3 years ago fixed unspecified Joel Sherrill Sebastian Huber 19 months ago
Summary

Compile Error When Multiprocessing Enabled

Description

This should impact every BSP with multiprocessing enabled but I saw it on the sparc/leon3 and powerpc/psim

../../cpukit/../../../psim/lib/include/rtems/score/basedefs.h:229:5: error: static assertion failed: "Message_queue_MP_Packet"

_Static_assert(cond, # msg)

../../../../../../rtems/c/src/../../cpukit/rtems/src/msgmp.c:28:1: note: in expansion of macro 'RTEMS_STATIC_ASSERT'

RTEMS_STATIC_ASSERT(

#2751 3 years ago fixed score Sebastian Huber Sebastian Huber 11 months ago
Summary

Thread dispatch via interrupt is broken at least on ARM and PowerPC

Description

The ARM and PowerPC interrupt epilogues call _Thread_Dispatch() with interrupts disabled (counter example: SPARC).

On SMP configurations, since inter-processor interrupts set the thread dispatch necessary indicator this prevents a thread dispatch notification in post-switch handlers (which all run with interrupts disabled).

On all configurations, this is a serious issue for the interrupt latency.

#2752 3 years ago fixed score Sebastian Huber Sebastian Huber 19 months ago
Summary

Relax execution enviroment for thread begin extensions

Description

Currently, the thread begin extensions are invoked with thread dispatching disabled. There is an explanation for this in the code

  /*
   * Take care that 'begin' extensions get to complete before
   * 'switch' extensions can run.  This means must keep dispatch
   * disabled until all 'begin' extensions complete.
   */
  _User_extensions_Thread_begin( executing );

However, the switch extension is always invoked before the thread begin extension for all threads except the initialization thread. A thread dispatch disabled contexts drastically limits the work which can be carried out in the thread begin extensions. It is for example not possible to call malloc(), create POSIX keys or access C++ thread local storage.

The thread begin extension should execute in a normal thread context. Thread begin extensions that are disturbed by a thread dispatch should deal with this locally.

With the availability of C++ thread local storage in RTEMS being able to pre-initialize such objects in the thread begin extension would be quite handy.

#2765 3 years ago fixed score Sebastian Huber Sebastian Huber 19 months ago
Summary

Application level deadlocks may lead to SMP lock level deadlocks

Description

Due to a missing deadlock detection application level deadlocks may lead to SMP lock level deadlocks.

#2770 3 years ago fixed doc Christian Mauderer Sebastian Huber 19 months ago
Summary

Missing documentation for RTEMS_LINKER_ROSET_CONTENT and RTEMS_LINKER_RWSET_CONTENT

Description

Currently the two macros

RTEMS_LINKER_ROSET_CONTENT RTEMS_LINKER_RWSET_CONTENT

are not documented. This should be added as soon as the doc repo is ready for it.

The macros have been introduced in this commit:

https://git.rtems.org/rtems/commit/?id=5fe6d07ad5690e3d9c6445ca3a465a700a5a5015

#2776 3 years ago fixed score Alexander Krutwig Sebastian Huber 19 months ago
Summary

SPI Framework

Description

Development of a SPI framework which shall be used for further SPI bus and device drivers. The framework shall be developed using the i2c framework as a template. It shall export the Linux Userspace SPI API.

#2784 3 years ago fixed rtems Sebastian Huber Sebastian Huber 19 months ago
Summary

Add function to get the current priority of a task by scheduler instance

Description
/**
 * @brief Gets the current priority of the specified task with respect to the
 * specified scheduler instance.
 *
 * The current priority reflects temporary priority adjustments due to locking
 * protocols, the rate-monotonic objects on some schedulers and other
 * mechnisms.
 *
 * @param[in] task_id Identifier of the task.  Use @ref RTEMS_SELF to select
 *   the executing task.
 * @param[in] scheduler_id Identifier of the scheduler instance.
 * @param[out] priority Returns the current priority of the specified task with
 *   respect to the specified scheduler instance.
 *
 * @retval RTEMS_SUCCESSFUL Successful operation.
 * @retval RTEMS_ILLEGAL_ON_REMOTE_OBJECT Directive is illegal on remote tasks.
 * @retval RTEMS_INVALID_ADDRESS The priority parameter is @c NULL.
 * @retval RTEMS_INVALID_ID Invalid task or scheduler identifier.
 * @retval RTEMS_NOT_DEFINED The task has no priority within the specified
 *   scheduler instance.
 *
 * @see rtems_scheduler_ident().
 */
rtems_status_code rtems_task_get_priority(
  rtems_id             task_id,
  rtems_id             scheduler_id,
  rtems_task_priority *priority
);
#2790 3 years ago fixed score Sebastian Huber Sebastian Huber 19 months ago
Summary

Linker sets broken with GCC 7

Description

See also:

https://gcc.gnu.org/ml/gcc/2016-09/msg00114.html

The

#define MAKEGCCNOTKNOWTHEADDRESS(ptr) asm("":"+r"(ptr))

is probably the best option. It works probably also with link-time optimization.

#2797 3 years ago fixed rtems Sebastian Huber Sebastian Huber 19 months ago
Summary

Add ability to add/remove processors to/from a scheduler instance

Description

The scheduler configuration is done at link-time. In order to support run-time re-configuration add functions to dd/remove processors to/from a scheduler instance.

/**
 * @brief Adds a processor the set of processors owned by the scheduler.
 *
 * Must be called from task context.  This operation obtains and releases the
 * objects allocator lock.
 *
 * @param[in] scheduler_id Identifier of the scheduler.
 * @param[in] cpu_index Index of the processor to add.
 *
 * @retval RTEMS_SUCCESSFUL Successful operation.
 * @retval RTEMS_INVALID_ID Invalid scheduler identifier.
 * @retval RTEMS_NOT_CONFIGURED The processor is not configured to be used by
 *   the application.
 * @retval RTEMS_INCORRECT_STATE The processor is configured to be used by
 *   the application, however, it is not available.
 */
rtems_status_code rtems_scheduler_add_processor(
  rtems_id scheduler_id,
  uint32_t cpu_index
);

/**
 * @brief Removes a processor from set of processors owned by the scheduler.
 *
 * Must be called from task context.  This operation obtains and releases the
 * objects allocator lock.  Removing a processor from a scheduler is a complex
 * operation that involves all tasks in the system.
 *
 * @param[in] scheduler_id Identifier of the scheduler.
 * @param[in] cpu_index Index of the processor to add.
 *
 * @retval RTEMS_SUCCESSFUL Successful operation.
 * @retval RTEMS_INVALID_ID Invalid scheduler identifier.
 * @retval RTEMS_INVALID_NUMBER The processor is not owned by the scheduler.
 * @retval RTEMS_RESOURCE_IN_USE The set of processors owned by the scheduler
 *   would be empty after the processor removal and there exists a non-idle
 *   task that uses this scheduler as its home scheduler.
 */
rtems_status_code rtems_scheduler_remove_processor(
  rtems_id scheduler_id,
  uint32_t cpu_index
);
#2798 3 years ago fixed posix Sebastian Huber Sebastian Huber 19 months ago
Summary

Fix POSIX timer interval

Description

See also:

https://lists.rtems.org/pipermail/users/2016-October/030714.html

Just back to RTEMS after a long time. I've build the last version (Git) 
with last compiler (4.12) and looks like a simple POSIX timer  doen't 
work anymore... It should display "Signal 14" every second but period is 
veryyyy short...and display very fast :(

Any idea? any change in the way to use POSIX with RTEMS?

See my program attached (it works fine with Linux).

I have tested with Raspberry Pi and QEMU/i386.

thx by advance
#2800 3 years ago fixed arch/powerpc Joel Sherrill Sebastian Huber 19 months ago
Summary

qoriq variants failing to build

Description

The following qoriq variants fail to build:

powerpc-qoriq_core_0 powerpc-qoriq_core_1 powerpc-qoriq_p1020rdb

All fail with this error:

../../../../../.././qoriq_core_0/lib/include/bsp/qoriq.h:407:3: error: conflicting types for 'qoriq_gpio'
 } qoriq_gpio;
   ^~~~~~~~~~
../../../../../.././qoriq_core_0/lib/include/bsp/qoriq.h:184:3: note: previous declaration of 'qoriq_gpio' was here
 } qoriq_gpio;
   ^~~~~~~~~~

Found during full build sweep based on this commit:

commit bb9f09f34c9bdcf4d2631a1fd317bcefd8426efb
Author: Sebastian Huber <sebastian.huber@embedded-brains.de>
Date:   Mon Oct 31 13:07:34 2016 +0100

    posix: Fix timer interval
    
    Do not overwrite timer interval with initial interval in
    _POSIX_Timer_Insert().
    
    Close #2798.

#2803 3 years ago fixed score Sebastian Huber Sebastian Huber 19 months ago
Summary

Get rid of CPU_BIG_ENDIAN and CPU_LITTLE_ENDIAN

Description

The remaining uses of the CPU port defines CPU_BIG_ENDIAN and CPU_LITTLE_ENDIAN should be replaced by the BSD (also available in glibc) BYTE_ORDER.

#2805 3 years ago fixed arch/powerpc Sebastian Huber Sebastian Huber 19 months ago
Summary

Use SPRG0 on PowerPC for current per-CPU control (SMP only)

Description

Add _CPU_Get_current_per_CPU_control() on SMP configurations as an optimization for PowerPC. Use SPRG0 for the current per-CPU control. This reduces the code size a bit and is slightly faster in some benchmarks.

#2808 3 years ago fixed score Sebastian Huber Sebastian Huber 19 months ago
Summary

Conditionally provide rtems_interrupt_frame

Description

Provide rtems_interrupt_frame only if CPU_ISR_PASSES_FRAME_POINTER is defined to TRUE.

#2809 3 years ago fixed score Sebastian Huber Sebastian Huber 19 months ago
Summary

Reduce interrupt latency on SMP configurations during thread dispatch

Description

Currently we have this situation:

https://docs.rtems.org/doc-current/share/rtems/html/c_user/Symmetric-Multiprocessing-Services-Thread-Dispatch-Details.html#Symmetric-Multiprocessing-Services-Thread-Dispatch-Details

"On SMP systems, scheduling decisions on one processor must be propagated to other processors through inter-processor interrupts. So, a thread dispatch which must be carried out on another processor happens not instantaneous. Thus several thread dispatch requests might be in the air and it is possible that some of them may be out of date before the corresponding processor has time to deal with them. The thread dispatch mechanism uses three per-processor variables,

  • the executing thread,
  • the heir thread, and
  • an boolean flag indicating if a thread dispatch is necessary or not.

Updates of the heir thread and the thread dispatch necessary indicator are synchronized via explicit memory barriers without the use of locks. A thread can be an heir thread on at most one processor in the system. The thread context is protected by a TTAS lock embedded in the context to ensure that it is used on at most one processor at a time. The thread post-switch actions use a per-processor lock. This implementation turned out to be quite efficient and no lock contention was observed in the test suite.

The current implementation of thread dispatching has some implications with respect to the interrupt latency. It is crucial to preserve the system invariant that a thread can execute on at most one processor in the system at a time. This is accomplished with a boolean indicator in the thread context. The processor architecture specific context switch code will mark that a thread context is no longer executing and waits that the heir context stopped execution before it restores the heir context and resumes execution of the heir thread (the boolean indicator is basically a TTAS lock). So, there is one point in time in which a processor is without a thread. This is essential to avoid cyclic dependencies in case multiple threads migrate at once. Otherwise some supervising entity is necessary to prevent deadlocks. Such a global supervisor would lead to scalability problems so this approach is not used. Currently the context switch is performed with interrupts disabled. Thus in case the heir thread is currently executing on another processor, the time of disabled interrupts is prolonged since one processor has to wait for another processor to make progress.

It is difficult to avoid this issue with the interrupt latency since interrupts normally store the context of the interrupted thread on its stack. In case a thread is marked as not executing, we must not use its thread stack to store such an interrupt context. We cannot use the heir stack before it stopped execution on another processor. If we enable interrupts during this transition, then we have to provide an alternative thread independent stack for interrupts in this time frame. This issue needs further investigation.

The problematic situation occurs in case we have a thread which executes with thread dispatching disabled and should execute on another processor (e.g. it is an heir thread on another processor). In this case the interrupts on this other processor are disabled until the thread enables thread dispatching and starts the thread dispatch sequence. The scheduler (an exception is the scheduler with thread processor affinity support) tries to avoid such a situation and checks if a new scheduled thread already executes on a processor. In case the assigned processor differs from the processor on which the thread already executes and this processor is a member of the processor set managed by this scheduler instance, it will reassign the processors to keep the already executing thread in place. Therefore normal scheduler requests will not lead to such a situation. Explicit thread migration requests, however, can lead to this situation. Explicit thread migrations may occur due to the scheduler helping protocol or explicit scheduler instance changes. The situation can also be provoked by interrupts which suspend and resume threads multiple times and produce stale asynchronous thread dispatch requests in the system."

Add an interrupt frame to the per-CPU control which can be used during context switches on SMP configurations.

#2811 3 years ago fixed score Sebastian Huber Sebastian Huber 19 months ago
Summary

More robust thread dispatching on SMP and ARM Cortex-M

Description

On SMP configurations, it is a fatal error to call blocking operating system with interrupts disabled, since this prevents delivery of inter-processor interrupts. This could lead to executing threads which are not allowed to execute resulting in undefined behaviour.

The ARM Cortex-M port has a similar problem, since the interrupt state is not a part of the thread context.

Add a new CPU port function:

/**
 * @brief Returns true if interrupts are enabled in the specified ISR level,
 * otherwise returns false.
 *
 * @param[in] level The ISR level.
 *
 * @retval true Interrupts are enabled in the ISR level.
 * @retval false Otherwise.
 */
RTEMS_INLINE_ROUTINE bool _CPU_ISR_Is_enabled( uint32_t level )
{
  return false;
}

Use this function to ensure that _Thread_Do_dispatch() is called with an interrupt level with enabled interrupts, otherwise call _Terminate().

#2816 3 years ago fixed arch/arm Joel Sherrill Sebastian Huber 19 months ago
Summary

Many ARM BSPs have Static Assert

Description

Hi

With the recent commits, many BSPs on the master do not build. They error out with this static assert:

In file included from ../../../../cpukit/../../../gumstix/lib/include/rtems/score/types.h:23:0,

from ../../../../cpukit/../../../gumstix/lib/include/rtems/score/cpu.h:32, from ../../../../cpukit/../../../gumstix/lib/include/rtems/system.h:23, from ../../../../../../../../rtems/c/src/../../cpukit/score/cpu/arm/cpu.c:29:

../../../../cpukit/../../../gumstix/lib/include/rtems/score/basedefs.h:241:5: error: static assertion failed: "ARM_CONTEXT_CONTROL_ISR_DISPATCH_DISABLE"

_Static_assert(cond, # msg)

../../../../../../../../rtems/c/src/../../cpukit/score/cpu/arm/cpu.c:54:3: note: in expansion of macro 'RTEMS_STATIC_ASSERT'

RTEMS_STATIC_ASSERT(

The list of BSPs is:

arm1136jfs arm1136js arm7tdmi arm920 csb336 csb337 csb637 edb7312 gumstix kit637_v6 lpc2362 lpc23xx_tli800 lpc24xx_ea lpc24xx_ncs_ram lpc24xx_ncs_rom_ext lpc24xx_ncs_rom_int lpc24xx_plx800_ram lpc24xx_plx800_rom_int lpc32xx_mzx lpc32xx_mzx_stage_1 lpc32xx_mzx_stage_2 lpc32xx_phycore raspberrypi rtl22xx rtl22xx_t smdk2410

#2817 3 years ago fixed unspecified Joel Sherrill Sebastian Huber 19 months ago
Summary

All Blackfin BSPs do not Compile on Master

Description

Recent changes to master resulted in this:

bfin-rtems4.12-gcc --pipe -DHAVE_CONFIG_H -I../../.. -I../../../../cpukit/../../../bf537Stamp/lib/include -O2 -g -ffunction-sections -fdata-sections -Wall -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs -MT libscorecpu_a-cpu.o -MD -MP -MF .deps/libscorecpu_a-cpu.Tpo -c -o libscorecpu_a-cpu.o test -f 'cpu.c' || echo '../../../../../../../../rtems/c/src/../../cpukit/score/cpu/bfin/'cpu.c bfin-rtems4.12-gcc --pipe -DHAVE_CONFIG_H -I../../.. -I../../../../cpukit/../../../bf537Stamp/lib/include -DASM -O2 -g -ffunction-sections -fdata-sections -Wall -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs -O2 -g -ffunction-sections -fdata-sections -Wall -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs -MT libscorecpu_a-cpu_asm.o -MD -MP -MF .deps/libscorecpu_a-cpu_asm.Tpo -c -o libscorecpu_a-cpu_asm.o test -f 'cpu_asm.S' || echo '../../../../../../../../rtems/c/src/../../cpukit/score/cpu/bfin/'cpu_asm.S ../../../../cpukit/../../../bf537Stamp/lib/include/rtems/score/cpu.h: Assembler messages: ../../../../cpukit/../../../bf537Stamp/lib/include/rtems/score/cpu.h:670: Error: syntax error. Input text was static. ../../../../cpukit/../../../bf537Stamp/lib/include/rtems/score/cpu.h:670: Error: ../../../../cpukit/../../../bf537Stamp/lib/include/rtems/score/cpu.h:671: Error: syntax error. Input text was {. ../../../../cpukit/../../../bf537Stamp/lib/include/rtems/score/cpu.h:671: Error: ../../../../cpukit/../../../bf537Stamp/lib/include/rtems/score/cpu.h:672: Error: syntax error. Input text was return. ../../../../cpukit/../../../bf537Stamp/lib/include/rtems/score/cpu.h:672: Error: ../../../../cpukit/../../../bf537Stamp/lib/include/rtems/score/cpu.h:673: Error: syntax error. Input text was }. ../../../../cpukit/../../../bf537Stamp/lib/include/rtems/score/cpu.h:673: Error: gmake[7]: * [libscorecpu_a-cpu_asm.o] Error 1

#2818 3 years ago fixed unspecified Joel Sherrill Sebastian Huber 19 months ago
Summary

NIOS2 Does Not Compile on Master

Description

../../../../../../../../rtems/c/src/../../cpukit/score/cpu/nios2/nios2-isr-get-level.c: In function '_CPU_ISR_Is_enabled': ../../../../../../../../rtems/c/src/../../cpukit/score/cpu/nios2/nios2-isr-get-level.c:26:16: error: 'status' undeclared (first use in this function)

return ((status & NIOS2_STATUS_IL_MASK) >> NIOS2_STATUS_IL_OFFSET) == 0;

~

../../../../../../../../rtems/c/src/../../cpukit/score/cpu/nios2/nios2-isr-get-level.c:26:16: note: each undeclared identifier is reported only once for each function it appears in ../../../../../../../../rtems/c/src/../../cpukit/score/cpu/nios2/nios2-isr-get-level.c:32:1: warning: control reaches end of non-void function [-Wreturn-type]

}

#2819 3 years ago fixed arch/powerpc Joel Sherrill Sebastian Huber 19 months ago
Summary

powerpc-ss555 does not compile on master

Description

Recent changes broke this configuration:

gmake[6]: Entering directory `/data/home/joel/rtems-4.11-work/rtems-testing/rtems/build-powerpc-ss555-rtems/powerpc-rtems4.12/c/ss555/testsuites/samples/hello' powerpc-rtems4.12-gcc -B../../../../../ss555/lib/ -specs bsp_specs -qrtems -DHAVE_CONFIG_H -I. -I../../../../../../../rtems/c/src/../../testsuites/samples/hello -I.. -mcpu=505 -Dmpc555 -O2 -g -fno-keep-inline-functions -Wall -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs -MT init.o -MD -MP -MF .deps/init.Tpo -c -o init.o ../../../../../../../rtems/c/src/../../testsuites/samples/hello/init.c In file included from ../../../../../ss555/lib/include/rtems/score/percpu.h:22:0,

from ../../../../../ss555/lib/include/rtems/confdefs.h:32, from ../../../../../../../rtems/c/src/../../testsuites/samples/hello/init.c:51:

../../../../../ss555/lib/include/rtems/score/cpuimpl.h:196:3: error: conflicting types for 'CPU_Interrupt_frame'

} CPU_Interrupt_frame;

In file included from ../../../../../ss555/lib/include/bsp/irq.h:28:0,

from ../../../../../ss555/lib/include/bsp.h:31, from ../../../../../../../rtems/c/src/../../testsuites/samples/hello/init.c:17:

../../../../../ss555/lib/include/libcpu/irq.h:193:3: note: previous declaration of 'CPU_Interrupt_frame' was here

} CPU_Interrupt_frame;

gmake[6]: * [init.o] Error 1 gmake[6]: Target `all' not remade because of errors.

#2820 3 years ago fixed arch/sparc Joel Sherrill Sebastian Huber 19 months ago
Summary

All SPARC64 BSPs do not Build on master

Description

Recent changes broke all builds:

sparc64-rtems4.12-gcc --pipe -DHAVE_CONFIG_H -I../../.. -I../../../../cpukit/../../../usiii/lib/include -mcpu=ultrasparc3 -DUS3 -DSUN4U -g -O2 -ffunction-sections -fdata-sections -Wall -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs -MT libscorecpu_a-sparc64-exception-frame-print.o -MD -MP -MF .deps/libscorecpu_a-sparc64-exception-frame-print.Tpo -c -o libscorecpu_a-sparc64-exception-frame-print.o test -f 'sparc64-exception-frame-print.c' || echo '../../../../../../../../rtems/c/src/../../cpukit/score/cpu/sparc64/'sparc64-exception-frame-print.c sparc64-rtems4.12-gcc --pipe -DHAVE_CONFIG_H -I../../.. -I../../../../cpukit/../../../usiii/lib/include -mcpu=ultrasparc3 -DUS3 -DSUN4U -g -O2 -ffunction-sections -fdata-sections -Wall -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs -MT ../no_cpu/libscorecpu_a-cpucounterread.o -MD -MP -MF ../no_cpu/.deps/libscorecpu_a-cpucounterread.Tpo -c -o ../no_cpu/libscorecpu_a-cpucounterread.o test -f '../no_cpu/cpucounterread.c' || echo '../../../../../../../../rtems/c/src/../../cpukit/score/cpu/sparc64/'../no_cpu/cpucounterread.c In file included from ../../../../../../../../rtems/c/src/../../cpukit/score/cpu/sparc64/../no_cpu/cpucounterread.c:15:0: ../../../../cpukit/../../../usiii/lib/include/rtems/score/cpu.h: In function '_CPU_ISR_Is_enabled': ../../../../cpukit/../../../usiii/lib/include/rtems/score/cpu.h:759:12: error: 'psr' undeclared (first use in this function)

return ( psr & SPARC_PSTATE_IE_MASK ) != 0;

../../../../cpukit/../../../usiii/lib/include/rtems/score/cpu.h:759:12: note: each undeclared identifier is reported only once for each function it appears in gmake[7]: * no_cpu/libscorecpu_a-cpucounterread.o Error 1 mv -f .deps/libscorecpu_a-context.Tpo .deps/libscorecpu_a-context.Po In file included from ../../../../cpukit/../../../usiii/lib/include/rtems/system.h:23:0,

#2821 3 years ago invalid unspecified Joel Sherrill Sebastian Huber 19 months ago
Summary

No BSPs Build on Master

Description

I have the latest tools.

All BSPs appear to fail like this:

powerpc-rtems4.11-gcc --pipe -DHAVE_CONFIG_H -I.. -I../../cpukit/../../../psim/lib/include -meabi -mcpu=603e -msdata=sysv -fno-common -Dppc603e -O2 -g -fno-keep-inline-functions -ffunction-sections -fdata-sections -Wall -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs -MT src/libscore_a-smpbarrierwait.o -MD -MP -MF src/.deps/libscore_a-smpbarrierwait.Tpo -c -o src/libscore_a-smpbarrierwait.o test -f 'src/smpbarrierwait.c' || echo '../../../../../../rtems/c/src/../../cpukit/score/'src/smpbarrierwait.c powerpc-rtems4.11-gcc --pipe -DHAVE_CONFIG_H -I.. -I../../cpukit/../../../psim/lib/include -meabi -mcpu=603e -msdata=sysv -fno-common -Dppc603e -O2 -g -fno-keep-inline-functions -ffunction-sections -fdata-sections -Wall -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs -MT src/libscore_a-kern_tc.o -MD -MP -MF src/.deps/libscore_a-kern_tc.Tpo -c -o src/libscore_a-kern_tc.o test -f 'src/kern_tc.c' || echo '../../../../../../rtems/c/src/../../cpukit/score/'src/kern_tc.c powerpc-rtems4.11-gcc --pipe -DHAVE_CONFIG_H -I.. -I../../cpukit/../../../psim/lib/include -meabi -mcpu=603e -msdata=sysv -fno-common -Dppc603e -O2 -g -fno-keep-inline-functions -ffunction-sections -fdata-sections -Wall -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs -MT src/libscore_a-libatomic.o -MD -MP -MF src/.deps/libscore_a-libatomic.Tpo -c -o src/libscore_a-libatomic.o test -f 'src/libatomic.c' || echo '../../../../../../rtems/c/src/../../cpukit/score/'src/libatomic.c mv -f src/.deps/libscore_a-semaphore.Tpo src/.deps/libscore_a-semaphore.Po mv -f src/.deps/libscore_a-once.Tpo src/.deps/libscore_a-once.Po ../../../../../../rtems/c/src/../../cpukit/score/src/libatomic.c:19:32: fatal error: machine/_libatomic.h: No such file or directory

#include <machine/_libatomic.h>

compilation terminated. gmake[6]: * [src/libscore_a-libatomic.o] Error 1 In file included from /data/home/joel/rtems-4.11-work/tools/4.11/powerpc-rtems4.11/include/sys/param.h:89:0,

from ../../../../../../rtems/c/src/../../cpukit/score/src/kern_tc.c:48:

../../cpukit/../../../psim/lib/include/sys/uio.h:41:9: error: unknown type name 'ssize_t'

typedef ssize_t ssize_t;

../../cpukit/../../../psim/lib/include/sys/uio.h:46:9: error: unknown type name 'off_t'

typedef off_t off_t;

../../cpukit/../../../psim/lib/include/sys/uio.h:46:17: error: conflicting types for 'off_t'

typedef off_t off_t;

#2822 3 years ago fixed unspecified Joel Sherrill Sebastian Huber 19 months ago
Summary

m32csim does not build on master

Description

In file included from ../../cpukit/../../../m32csim/lib/include/rtems/score/types.h:22:0,

from ../../cpukit/../../../m32csim/lib/include/rtems/score/cpu.h:40, from ../../../../../../rtems/c/src/../../cpukit/score/src/percpuasm.c:19:

../../cpukit/../../../m32csim/lib/include/rtems/score/basedefs.h:244:17: error: size of array 'rtems_static_assert_PER_CPU_OFFSET_EXECUTING' is negative

typedef int rtems_static_assert_ ## msg [(cond) ? 1 : -1]

../../../../../../rtems/c/src/../../cpukit/score/src/percpuasm.c:98:1: note: in expansion of macro 'RTEMS_STATIC_ASSERT'

RTEMS_STATIC_ASSERT(

../../cpukit/../../../m32csim/lib/include/rtems/score/basedefs.h:244:17: error: size of array 'rtems_static_assert_PER_CPU_OFFSET_HEIR' is negative

typedef int rtems_static_assert_ ## msg [(cond) ? 1 : -1]

../../../../../../rtems/c/src/../../cpukit/score/src/percpuasm.c:103:1: note: in expansion of macro 'RTEMS_STATIC_ASSERT'

RTEMS_STATIC_ASSERT(

#2823 3 years ago fixed unspecified Joel Sherrill Sebastian Huber 19 months ago
Summary

Nearly all m68k BSPs do not Build on Master

Description

av5282 is the first

In file included from ../../cpukit/../../../av5282/lib/include/rtems/score/types.h:22:0,

from ../../cpukit/../../../av5282/lib/include/rtems/score/cpu.h:26, from ../../../../../../rtems/c/src/../../cpukit/score/src/percpuasm.c:19:

../../cpukit/../../../av5282/lib/include/rtems/score/basedefs.h:241:5: error: static assertion failed: "PER_CPU_OFFSET_EXECUTING"

_Static_assert(cond, # msg)

../../../../../../rtems/c/src/../../cpukit/score/src/percpuasm.c:98:1: note: in expansion of macro 'RTEMS_STATIC_ASSERT'

RTEMS_STATIC_ASSERT(

../../cpukit/../../../av5282/lib/include/rtems/score/basedefs.h:241:5: error: static assertion failed: "PER_CPU_OFFSET_HEIR"

_Static_assert(cond, # msg)

../../../../../../rtems/c/src/../../cpukit/score/src/percpuasm.c:103:1: note: in expansion of macro 'RTEMS_STATIC_ASSERT'

RTEMS_STATIC_ASSERT(

#2824 3 years ago fixed arch/arm Joel Sherrill Sebastian Huber 19 months ago
Summary

arm/lpc23xx_tli800 no longer links tar01

Description

Normally I would add the test to those skipped but I thought this deserved a second look. Should this BSP be able to run this test? I thought it was a fairly beefy board.

arm-rtems4.12-gcc -B../../../../../lpc23xx_tli800/lib/ -specs bsp_specs -qrtems -mcpu=arm7tdmi-s -mthumb -Os -g -ffunction-sections -fdata-sections -Wall -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs -Wl,--gc-sections -mcpu=arm7tdmi-s -mthumb -DHAVE_XZ=1 -o tar01.exe init.o test_cat.o initial_filesystem_tar.o initial_filesystem_tar_gz.o initial_filesystem_tar_xz.o -lrtemscpu -lz /data/home/joel/rtems-4.11-work/tools/4.12/bin/../lib/gcc/arm-rtems4.12/6.2.1/../../../../arm-rtems4.12/bin/ld: tar01.exe section .data' will not fit in region ROM_INT' /data/home/joel/rtems-4.11-work/tools/4.12/bin/../lib/gcc/arm-rtems4.12/6.2.1/../../../../arm-rtems4.12/bin/ld: region `ROM_INT' overflowed by 36 bytes collect2: error: ld returned 1 exit status gmake[7]: * [tar01.exe] Error 1

#2838 2 years ago fixed score Sebastian Huber Sebastian Huber 19 months ago
Summary

Termios task driven mode should use mutex for device operations

Description

Termios has a task driven mode (TERMIOS_TASK_DRIVEN). This mode aims to avoid long sections with disabled interrupts. This is only partly implemented since the device level state is still protected by disabled interrupts. Use a mutex to protect the device level state in task driven mode to fix this issue.

#2839 2 years ago fixed score Sebastian Huber Sebastian Huber 19 months ago
Summary

Add new interrupt server driven Termios mode

Description

Add a new new interrupt server driven Termios mode (TERMIOS_IRQ_DRIVEN). This mode is identical to the interrupt driven mode except that a mutex is used for device level locking. The intended use case for this mode are device drivers that use the interrupt server, e.g. SPI or I2C connected devices.

#2840 2 years ago fixed dev/serial Sebastian Huber Sebastian Huber 15 months ago
Summary

Use self-contained mutexes for Termios framework

Description

Use C11 mutexes instead of Classic semaphores as a performance optimization and to simplify the application configuration.

A performance of Classic semaphores vs. C11 mutexes was measured on the arm/atsam BSP. A NXP SC16IS752 was connected via SPI. The RTEMS application used one task to read from the device and write it immediately back (look back via task). A development system constantly transmitted data at 115200 bits per second.

CPU usage by function with Classic semaphores:

name______________________________________|ratio___|1%_____2%________5%_____10%_____20%_______50%___100|
CPU_Thread_Idle_body                      | 22.454%|=================================                  |
atsam_spi_setup_transfer                  |  6.767%|====================                               |
Objects_Get                               |  5.859%|===================                                |
atsam_spi_interrupt                       |  4.483%|================                                   |
Event_Seize                               |  3.867%|==============                                     |
rtems_termios_enqueue_raw_characters      |  3.804%|==============                                     |
Timecounter_Binuptime                     |  3.715%|==============                                     |
Scheduler_priority_Block                  |  3.104%|============                                       |
rtems_semaphore_release                   |  3.018%|============                                       |
Scheduler_priority_Unblock                |  2.901%|===========                                        |
rtems_termios_read_tty                    |  2.777%|===========                                        |
ARMV7M_NVIC_Interrupt_dispatch            |  2.750%|===========                                        |
rtems_semaphore_obtain                    |  2.627%|==========                                         |
Thread_Do_dispatch                        |  2.351%|=========                                          |
ARMV7M_Interrupt_service_leave            |  2.086%|========                                           |
iproc                                     |  1.919%|=======                                            |
CPU_Context_switch                        |  

CPU usage by function with C11 mutexes:

name______________________________________|ratio___|1%_____2%________5%_____10%_____20%_______50%___100|
CPU_Thread_Idle_body                      | 33.395%|======================================             |
atsam_spi_setup_transfer                  |  6.061%|===================                                |
atsam_spi_interrupt                       |  4.690%|================                                   |
Mutex_recursive_Release                   |  3.011%|============                                       |
Event_Seize                               |  2.955%|===========                                        |
ARMV7M_NVIC_Interrupt_dispatch            |  2.885%|===========                                        |
rtems_termios_enqueue_raw_characters      |  2.771%|===========                                        |
rtems_termios_read_tty                    |  2.722%|===========                                        |
Timecounter_Binuptime                     |  2.653%|==========                                         |
Thread_Do_dispatch                        |  2.240%|========                                           |
Scheduler_priority_Block                  |  2.112%|========                                           |
ARMV7M_Interrupt_service_leave            |  2.100%|========                                           |
Scheduler_priority_Unblock                |  1.919%|=======                                            |
Mutex_recursive_Acquire                   |  1.876%|======                                             |
iproc                                     |  1.773%|======                                             |
CPU_Context_switch                        |  

The change resulted in 10% more total idle time on the system.

#2841 2 years ago fixed score Sebastian Huber Sebastian Huber 19 months ago
Summary

Add NXP SC16IS752 serial device driver

Description

Add Termios device driver for NXP SC16IS752 (RS232/RS485 over SPI or I2C).

#2843 2 years ago fixed unspecified Sebastian Huber Sebastian Huber 16 months ago
Summary

Use self-contained objects instead of Classic API for drivers and support libraries

Description

The Classic API has some weaknesses:

  • Dynamic memory (the workspace) is used to allocate object pools. This requires a complex configuration with heavy use of the C pre-processor.
  • Objects are created via function calls which return an object identifier. The object operations use this identifier and map it internally to an object representation.
  • The objects reside in a table, e.g. they are suspect to false sharing of cache lines.
  • The object operations use a rich set of options and attributes. For each object operation these parameters must be evaluated and validated at run-time to figure out what to do exactly for this operation.

The overhead for Classic API mutexes used for example in Termios and the SPI framework is significant, see discussion:

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

There are some API options available:

  1. Use C11 mutexes and condition variables.
  2. Turn the POSIX synchronization objects into self-contained objects and use them.
  3. Use FreeBSD synchronization objects like MUTEX(9) or CONDVAR(9).
  4. Add RTEMS-specific self-contained synchronization objects and use them.

Option 1. and 2. lack support for binary semaphores which are used for task/interrupt synchronization, e.g. Termios.

Option 2. needs run-time evaluation to figure out the actual object variant, e.g. non-recursive, recursive, ceiling, error-checking, robust POSIX mutex.

Option 3. uses hash tables, thus it is not suitable for real-time systems.

Option 1. and 2. lack support for user-defined object names that may help for system diagnostic, tracing and debugging.

Option 4. could be used to avoid all shortcomings of options 1-3. It would be trivial to implement, test and document.

In order to enable user-defined object names one option is to add a const char *name member to Thread_queue_Queue.

#2844 2 years ago fixed fs Sebastian Huber Sebastian Huber 19 months ago
Summary

JFFS2: Add IO controls to get filesystem instance information and force a garbage collection

Description

Some applications need to control the garbage collection of the JFFS2 filesystem. For example during bootloader to application transitions with execute in place flashes (XIP).

#2858 2 years ago fixed score Sebastian Huber Sebastian Huber 19 months ago
Summary

Add user defined thread names

Description

Add user defined thread names to ease debugging, enhance the system diagnostics and improve compatibility to other systems, e.g. Linux and FreeBSD.

Implement pthread_setname_np() and pthread_getname_np(). Add CONFIGURE_MAXIMUM_THREAD_NAME_SIZE to the application configuration options. Add a application configuration dependent storage area for thread names to the thread control block.

#2885 2 years ago fixed score Sebastian Huber Sebastian Huber 19 months ago
Summary

Fix rtems_rate_monotonic_postponed_job_count() prototype

Description

rtems_rate_monotonic_postponed_job_count() should return an RTEMS status code. It should be renamed to rtems_rate_monotonic_get_postponed_job_count() or rtems_rate_monotonic_get_postponed_jobs() (similar to rtems_rate_monotonic_get_statistics()).

#2893 2 years ago fixed config Sebastian Huber Sebastian Huber 19 months ago
Summary

Remove CONFIGURE_SMP_APPLICATION

Description

SMP support must be enabled with the CONFIGURE_SMP_APPLICATION configuration option. Remove this option and enable the SMP support if CONFIGURE_SMP_MAXIMUM_PROCESSORS > 1.

#2894 2 years ago fixed config Sebastian Huber Sebastian Huber 19 months ago
Summary

Rename CONFIGURE_SMP_MAXIMUM_PROCESSORS to CONFIGURE_MAXIMUM_PROCESSORS

Description

Rename CONFIGURE_SMP_MAXIMUM_PROCESSORS to CONFIGURE_MAXIMUM_PROCESSORS since the SMP part is superfluous.

#2895 2 years ago fixed config Sebastian Huber Sebastian Huber 19 months ago
Summary

Prefix the confdefs.h internal defines with an underscore

Description

Prefix the confdefs.h internal defines with an underscore to simplify the review of this extremely complex header file.

#2916 2 years ago fixed score Sebastian Huber Sebastian Huber 19 months ago
Summary

termios: Change receive callback invocation to enable select() and poll() support

Description

Call the receive callback in case a read will succeed without to block. This enables the use of the receive callback for a poll() and select() support. Increase raw input buffer size to allow buffering of one line.

#2917 2 years ago fixed score Sebastian Huber Sebastian Huber 19 months ago
Summary

termios: Make write POSIX compatible

Description

Currently only blocking read/write operations are implemented. A blocking write must transfer at least one character. It should not wait for the device for the second character and so on.

#2923 2 years ago wontfix score Joel Sherrill Sebastian Huber 19 months ago
Summary

Questionable Code in resource_snapshot.c

Description

Coverity URL:

https://scan5.coverity.com/reports.htm#v29808/p10069/fileInstanceId=108958257&defectInstanceId=30877219&mergedDefectId=1399703

Coverity Scan doesn't like taking the address of a single uint32_t and then treating it as an array pointer. I think the code is likely doing what is intended but there is an implicit linkable between the order of the fields in the structure here and the class numbers used in the object IDs. Is there a way to improve this code and reduce the linkage?

141

  1. address_of: Taking address with &snapshot->active_posix_keys yields a singleton pointer.
  2. assign: Assigning: active = &snapshot->active_posix_keys.

142 active = &snapshot->active_posix_keys; 143

  1. Condition i < 19U /* sizeof (objects_info_table) / sizeof (objects_info_table[0]) */, taking true branch.

144 for (i = 0; i < RTEMS_ARRAY_SIZE(objects_info_table); ++i) { 145 const Objects_Information *information; 146 147 information = _Objects_Get_information( 148 objects_info_table[i].api, 149 objects_info_table[i].cls 150 ); 151

  1. Condition information != NULL, taking true branch.

152 if (information != NULL) { CID 1399703 (#1 of 1): Out-of-bounds access (ARRAY_VS_SINGLETON)

  1. ptr_arith: Using active as an array. This might corrupt or misinterpret adjacent memory locations.

153 active[i] = _Objects_Active_count(information);

#2954 2 years ago fixed arch/arm Sebastian Huber Sebastian Huber 19 months ago
Summary

ARM: Optimize context switch

Description

Set CPU_ENABLE_ROBUST_THREAD_DISPATCH to TRUE. In this case the interrupts are always enabled during a context switch even after interrupt processing (see #2751). Remove the CPSR from the context control since it contains only volatile bits.

#2958 2 years ago fixed unspecified Sebastian Huber Sebastian Huber 19 months ago
Summary

Add some popular benchmark programs to the testsuite

Description

Add dhrystone, whetstone and linpack benchmark programs to the testsuite. This may help to evaluate compiler settings, compiler versions and processors.

#2967 2 years ago fixed tool/gcc Sebastian Huber Sebastian Huber 19 months ago
Summary

ARM: Change ABI to not use short enums

Description

Whether enums are short or not is left open in the ARM EABI. On Linux and FreeBSD no short enums are used. Otherwise short enums are enabled by default.

Short enums may cause hard to find issues with 3rd party software, since the are quite unusual in general, e.g.

https://git.rtems.org/rtems-libbsd/commit/freebsd/include/rpc?id=9880635f2e642380b69b85e00271649b3a2fc2de

The data and structure layout may suddenly change in case enumeration values are added/removed. The benefit of short enums is probably not worth the trouble, since the packed compiler attribute can be used to individually make an enum short.

The reason for not choosing no short enums during the ARM EABI introduction was an issue with Newlib. This is addressed with the following patch:

https://sourceware.org/ml/newlib/2017/msg00238.html

#2969 2 years ago fixed unspecified Joel Sherrill Sebastian Huber 19 months ago
Summary

qoriq BSPs depend on mkimage which is not always available

Description

The following BSPs do not successfully build on the master because they use UBoot's mkimage which is not part of the standard RTEMS tools.

qoriq_core_0 qoriq_core_1 qoriq_p1020rdb

#2977 2 years ago fixed unspecified Joel Sherrill Sebastian Huber 19 months ago
Summary

warnings in Dhrystone Benchmark

Description

The following warnings show up across the various BSPs for the dhrystone benchmark:

grep "dhrystone.*warning" log/*

log/epiphany-epiphany_sim.log:../../../../../../../rtems/c/src/../../testsuites/benchmarks/dhrystone/dhry_1.c:286:1: warning: control reaches end of non-void function [-Wreturn-type] log/powerpc-haleakala.log:../../../../../../../rtems/c/src/../../testsuites/benchmarks/dhrystone/dhry_1.c:244:3: warning: 'Int_2_Loc' may be used uninitialized in this function [-Wmaybe-uninitialized] log/powerpc-t32mppc.log:../../../../../../../rtems/c/src/../../testsuites/benchmarks/dhrystone/dhry_1.c:244:3: warning: 'Int_2_Loc' may be used uninitialized in this function [-Wmaybe-uninitialized] log/sparc64-niagara.log:../../../../../../../rtems/c/src/../../testsuites/benchmarks/dhrystone/dhry_1.c:220:40: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] log/sparc64-niagara.log:../../../../../../../rtems/c/src/../../testsuites/benchmarks/dhrystone/dhry_1.c:231:40: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] log/sparc64-usiii.log:../../../../../../../rtems/c/src/../../testsuites/benchmarks/dhrystone/dhry_1.c:220:40: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] log/sparc64-usiii.log:../../../../../../../rtems/c/src/../../testsuites/benchmarks/dhrystone/dhry_1.c:231:40: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]

#2980 2 years ago worksforme unspecified Joel Sherrill Sebastian Huber 19 months ago
Summary

pc586-sse does not compile fsjffs2gc01

Description

After the tool upgrade, the pc586-sse BSP does not compile the test fsjffs2gc01:

i386-rtems4.12-gcc -B../../../../../pc586-sse/lib/ -specs bsp_specs -qrtems -DHAVE_CONFIG_H -I. -I../../../../../../../rtems/c/src/../../testsuites/fstests/fsjffs2gc01 -I.. -I../../../../../../../rtems/c/src/../../testsuites/fstests/support -I../../../../../../../rtems/c/src/../../testsuites/fstests/jffs2_support -I../../../../../../../rtems/c/src/../../testsuites/fstests/../support/include -I../../../../../../../rtems/c/src/../../testsuites/fstests/../psxtests/include -mtune=pentium -march=pentium -msse2 -O2 -g -ffunction-sections -fdata-sections -Wall -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs -MT fstest_support.o -MD -MP -MF .deps/fstest_support.Tpo -c -o fstest_support.o test -f '../support/fstest_support.c' || echo '../../../../../../../rtems/c/src/../../testsuites/fstests/fsjffs2gc01/'../support/fstest_support.c In file included from ../../../../../../../rtems/c/src/../../testsuites/fstests/fsjffs2gc01/../support/fstest_support.c:30:0: ../../../../../../../rtems/c/src/../../testsuites/fstests/../psxtests/include/pmacros.h:99:2: error: #error "unsupported size of off_t"

#error "unsupported size of off_t"

gmake[6]: * [fstest_support.o] Error 1 gmake[6]: Leaving directory `/data/home/joel/rtems-work/rtems-testing/rtems/build-i386-pc586-sse-rtems/i386-rtems4.12/c/pc586-sse/testsuites/fstests/fsjffs2gc01

#2982 2 years ago invalid tool/gcc Chris Johns Sebastian Huber 19 months ago
Summary

LibBSD broken with GCC+RTEMS changes

Description

The RTEMS Header test is libbsd is broken. I assume including <rtems.h> and no other is still a requirement. Maybe we need a test for this.

The example code is:

$ cat t.c
/*

/opt/work/rtems/4.12/bin/arm-rtems4.12-gcc -qrtems -B/opt/work/si/rtems/4.12/arm-rtems4.12/lib -B/opt/work/si/rtems/4.12/arm-rtems4.12/xilinx_zynq_zc706/lib/ --specs bsp_specs -march=armv7-a -mthumb -mfpu=neon -mfloat-abi=hard -mtune=cortex-a9 -ffunction-sections -fdata-sections -DHAVE_RTEMS_SCORE_CPUOPTS_H=1 t.c -c -o t.o

*/

#include <rtems.h>

int main(int argc, char **argv) {
        (void)argc; (void)argv;
        return 0;
}
$ /opt/work/rtems/4.12/bin/arm-rtems4.12-gcc -qrtems -B/opt/work/si/rtems/4.12/arm-rtems4.12/lib -B/opt/work/si/rtems/4.12/arm-rtems4.12/xilinx_zynq_zc706/lib/ --specs bsp_specs -march=armv7-a -mthumb -mfpu=neon -mfloat-abi=hard -mtune=cortex-a9 -ffunction-sections -fdata-sections -DHAVE_RTEMS_SCORE_CPUOPTS_H=1 t.c -c -o t.o
In file included from /opt/work/rtems/4.12/arm-rtems4.12/include/signal.h:6:0,
                 from /opt/work/rtems/4.12/arm-rtems4.12/include/time.h:178,
                 from /opt/work/rtems/4.12/arm-rtems4.12/include/sys/time.h:268,
                 from /opt/work/si/rtems/4.12/arm-rtems4.12/xilinx_zynq_zc706/lib/include/rtems/score/timestamp.h:43,
                 from /opt/work/si/rtems/4.12/arm-rtems4.12/xilinx_zynq_zc706/lib/include/rtems/score/thread.h:36,
                 from /opt/work/si/rtems/4.12/arm-rtems4.12/xilinx_zynq_zc706/lib/include/rtems/score/heap.h:22,
                 from /opt/work/si/rtems/4.12/arm-rtems4.12/xilinx_zynq_zc706/lib/include/rtems/rtems/types.h:26,
                 from /opt/work/si/rtems/4.12/arm-rtems4.12/xilinx_zynq_zc706/lib/include/rtems.h:31,
                 from t.c:7:
/opt/work/rtems/4.12/arm-rtems4.12/include/sys/signal.h:53:3: error: unknown type name 'pthread_attr_t'
   pthread_attr_t  *sigev_notify_attributes;    /* Notification Attributes */
   ^~~~~~~~~~~~~~
In file included from /opt/work/rtems/4.12/arm-rtems4.12/include/string.h:10:0,
                 from /opt/work/si/rtems/4.12/arm-rtems4.12/xilinx_zynq_zc706/lib/include/rtems/score/basedefs.h:49,
                 from /opt/work/si/rtems/4.12/arm-rtems4.12/xilinx_zynq_zc706/lib/include/rtems/score/types.h:23,
                 from /opt/work/si/rtems/4.12/arm-rtems4.12/xilinx_zynq_zc706/lib/include/rtems/score/cpu.h:32,
                 from /opt/work/si/rtems/4.12/arm-rtems4.12/xilinx_zynq_zc706/lib/include/rtems/system.h:23,
                 from /opt/work/si/rtems/4.12/arm-rtems4.12/xilinx_zynq_zc706/lib/include/rtems.h:29,
                 from t.c:7:
/opt/work/rtems/4.12/arm-rtems4.12/include/sys/signal.h:202:5: error: unknown type name 'pthread_t'
 int _EXFUN(pthread_kill, (pthread_t thread, int sig));
     ^
In file included from /opt/work/si/rtems/4.12/arm-rtems4.12/xilinx_zynq_zc706/lib/include/rtems/rtems/config.h:25:0,
                 from /opt/work/si/rtems/4.12/arm-rtems4.12/xilinx_zynq_zc706/lib/include/rtems/config.h:57,
                 from /opt/work/si/rtems/4.12/arm-rtems4.12/xilinx_zynq_zc706/lib/include/rtems.h:33,
                 from t.c:7:
/opt/work/si/rtems/4.12/arm-rtems4.12/xilinx_zynq_zc706/lib/include/rtems/rtems/tasks.h:425:3: error: unknown type name 'cpu_set_t'
   cpu_set_t           *cpuset
   ^~~~~~~~~
/opt/work/si/rtems/4.12/arm-rtems4.12/xilinx_zynq_zc706/lib/include/rtems/rtems/tasks.h:458:9: error: unknown type name 'cpu_set_t'
   const cpu_set_t *cpuset
         ^~~~~~~~~
/opt/work/si/rtems/4.12/arm-rtems4.12/xilinx_zynq_zc706/lib/include/rtems/rtems/tasks.h:581:3: error: unknown type name 'cpu_set_t'
   cpu_set_t *cpuset
   ^~~~~~~~~
$ cat t.cpp
/*

/opt/work/rtems/4.12/bin/arm-rtems4.12-g++ -qrtems -B/opt/work/si/rtems/4.12/arm-rtems4.12/lib -B/opt/work/si/rtems/4.12/arm-rtems4.12/xilinx_zynq_zc706/lib/ --specs bsp_specs -march=armv7-a -mthumb -mfpu=neon -mfloat-abi=hard -mtune=cortex-a9 -ffunction-sections -fdata-sections -DHAVE_RTEMS_SCORE_CPUOPTS_H=1 t.cpp -c -o t.o

*/

#include <rtems.h>

int main(int argc, char **argv) {
        (void)argc; (void)argv;
        return 0;
}
$ /opt/work/rtems/4.12/bin/arm-rtems4.12-g++ -qrtems -B/opt/work/si/rtems/4.12/arm-rtems4.12/lib -B/opt/work/si/rtems/4.12/arm-rtems4.12/xilinx_zynq_zc706/lib/ --specs bsp_specs -march=armv7-a -mthumb -mfpu=neon -mfloat-abi=hard -mtune=cortex-a9 -ffunction-sections -fdata-sections -DHAVE_RTEMS_SCORE_CPUOPTS_H=1 t.cpp -c -o t.o
In file included from /opt/work/rtems/4.12/arm-rtems4.12/include/signal.h:6:0,
                 from /opt/work/rtems/4.12/arm-rtems4.12/include/time.h:178,
                 from /opt/work/rtems/4.12/arm-rtems4.12/include/sys/time.h:268,
                 from /opt/work/si/rtems/4.12/arm-rtems4.12/xilinx_zynq_zc706/lib/include/rtems/score/timestamp.h:43,
                 from /opt/work/si/rtems/4.12/arm-rtems4.12/xilinx_zynq_zc706/lib/include/rtems/score/thread.h:36,
                 from /opt/work/si/rtems/4.12/arm-rtems4.12/xilinx_zynq_zc706/lib/include/rtems/score/heap.h:22,
                 from /opt/work/si/rtems/4.12/arm-rtems4.12/xilinx_zynq_zc706/lib/include/rtems/rtems/types.h:26,
                 from /opt/work/si/rtems/4.12/arm-rtems4.12/xilinx_zynq_zc706/lib/include/rtems.h:31,
                 from t.cpp:7:
/opt/work/rtems/4.12/arm-rtems4.12/include/sys/signal.h:53:3: error: 'pthread_attr_t' does not name a type
   pthread_attr_t  *sigev_notify_attributes;    /* Notification Attributes */
   ^~~~~~~~~~~~~~
In file included from /opt/work/rtems/4.12/arm-rtems4.12/include/string.h:10:0,
                 from /opt/work/si/rtems/4.12/arm-rtems4.12/xilinx_zynq_zc706/lib/include/rtems/score/basedefs.h:49,
                 from /opt/work/si/rtems/4.12/arm-rtems4.12/xilinx_zynq_zc706/lib/include/rtems/score/types.h:23,
                 from /opt/work/si/rtems/4.12/arm-rtems4.12/xilinx_zynq_zc706/lib/include/rtems/score/cpu.h:32,
                 from /opt/work/si/rtems/4.12/arm-rtems4.12/xilinx_zynq_zc706/lib/include/rtems/system.h:23,
                 from /opt/work/si/rtems/4.12/arm-rtems4.12/xilinx_zynq_zc706/lib/include/rtems.h:29,
                 from t.cpp:7:
/opt/work/rtems/4.12/arm-rtems4.12/include/sys/signal.h:202:5: error: 'pthread_t' was not declared in this scope
 int _EXFUN(pthread_kill, (pthread_t thread, int sig));
     ^
/opt/work/rtems/4.12/arm-rtems4.12/include/sys/signal.h:202:5: error: expected primary-expression before 'int'
 int _EXFUN(pthread_kill, (pthread_t thread, int sig));
     ^
/opt/work/rtems/4.12/arm-rtems4.12/include/sys/signal.h:202:5: error: expression list treated as compound expression in initializer [-fpermissive]
 int _EXFUN(pthread_kill, (pthread_t thread, int sig));
     ^
In file included from /opt/work/si/rtems/4.12/arm-rtems4.12/xilinx_zynq_zc706/lib/include/rtems/rtems/config.h:25:0,
                 from /opt/work/si/rtems/4.12/arm-rtems4.12/xilinx_zynq_zc706/lib/include/rtems/config.h:57,
                 from /opt/work/si/rtems/4.12/arm-rtems4.12/xilinx_zynq_zc706/lib/include/rtems.h:33,
                 from t.cpp:7:
/opt/work/si/rtems/4.12/arm-rtems4.12/xilinx_zynq_zc706/lib/include/rtems/rtems/tasks.h:425:3: error: 'cpu_set_t' has not been declared
   cpu_set_t           *cpuset
   ^~~~~~~~~
/opt/work/si/rtems/4.12/arm-rtems4.12/xilinx_zynq_zc706/lib/include/rtems/rtems/tasks.h:458:9: error: 'cpu_set_t' does not name a type
   const cpu_set_t *cpuset
         ^~~~~~~~~
/opt/work/si/rtems/4.12/arm-rtems4.12/xilinx_zynq_zc706/lib/include/rtems/rtems/tasks.h:581:3: error: 'cpu_set_t' has not been declared
   cpu_set_t *cpuset
   ^~~~~~~~~

Note: The header test in libbsd is currently using C++ and I am not sure why.

#3001 2 years ago fixed score Chris Johns Sebastian Huber 19 months ago
Summary

SMP build of RTEMS Testsuite does not set CONFIGURE_MAXIMUM_PROCESSORS

Description

The default setting for CONFIGURE_MAXIMUM_PROCESSORS is 1 and this means rtems_configuration_is_smp_enabled() returns false. Only the smptests set the maximum processor count to CPU_COUNT and therefore run in SMP mode.

If SMP is not running in an SMP build when running the tests are the tests really reporting a true indication of the of the system?

I would expect we have the API tests, libtests and fstests running with SMP enabled in an SMP build.

#3003 2 years ago fixed fs/fat munster Sebastian Huber 19 months ago
Summary

FAT does not support clusters bigger than 32K

Description

When used with 64KiB clusters, the FAT driver will loop forever in cpukit/libfs/src/dosfs/fat.c, line 580. This happens because struct fat_vol_s declares bytes per cluster variable as uint16_t bpc, whereas it can be as big as 256KiB.

Here is a link for Linux FAT driver which doesn't make any assumption about cluster size: http://lxr.free-electrons.com/source/fs/fat/inode.c?v=2.6.24#L1262

#3023 2 years ago fixed tool/newlib Sebastian Huber Sebastian Huber 19 months ago
Summary

Parameter of CPU_COPY() are in wrong order

Description

According to the FreeBSD man page we have:

https://www.freebsd.org/cgi/man.cgi?query=cpuset&sektion=9&apropos=0&manpath=FreeBSD+11.0-RELEASE+and+Ports

CPU_COPY(cpuset_t *from, cpuset_t *to);

However, in Newlib we have:

static __inline void CPU_COPY( cpu_set_t *dest, const cpu_set_t *src )
{
  *dest = *src;
}
#3032 2 years ago fixed tool/newlib Sebastian Huber Sebastian Huber 19 months ago
Summary

CPU_NAND_S() implementation is not in line with FreeBSD

Description

According to the FreeBSD man page we have:

https://www.freebsd.org/cgi/man.cgi?query=cpuset&sektion=9&apropos=0&manpath=FreeBSD+11.0-RELEASE+and+Ports

The CPU_NAND() macro removes CPUs in src from dst. (It is the cpuset(9) equivalent of the scalar: dst &= ~ src.)

However, in Newlib we had:

static __inline void CPU_NAND_S(size_t setsize, cpu_set_t *destset,
  const cpu_set_t *srcset1, const cpu_set_t *srcset2)
{
  cpu_set_word_t *wdest = &destset->__bits[0];
  const cpu_set_word_t *wsrc1 = &srcset1->__bits[0];
  const cpu_set_word_t *wsrc2 = &srcset2->__bits[0];
  size_t n = setsize / sizeof(*wdest);
  size_t i;

  for (i = 0; i < n; ++i)
    wdest[i] = ~(wsrc1[i] & wsrc2[i]);
}
#3056 2 years ago fixed score Sebastian Huber Sebastian Huber 19 months ago
Summary

Add EDF SMP scheduler

Description

The current SMP schedulers are all fixed-priority schedulers. Add a job-level fixed priority scheduler (EDF).

#3059 23 months ago fixed score Sebastian Huber Sebastian Huber 19 months ago
Summary

Add a simple processor affinity support to the EDF SMP scheduler

Description

Add support to the EDF SMP scheduler to honour one-to-one and one-to-all thread processor affinities. Use one ready queue for threads with a one-to-all affinity. Use one ready queue for each of the one-to-one threads for each processor. Since a red-black tree is used for the ready queues, the space overhead of one pointer per ready queue is small.

#3063 23 months ago fixed config Sebastian Huber Sebastian Huber 19 months ago
Summary

Make the EDF scheduler the default SMP scheduler

Description

The EDF SMP scheduler supports simple thread processor affinities (see #3059) with a small run-time overhead. The current default SMP scheduler lacks support for thread processor affinities at all. The EDF SMP scheduler offers a good feature set for most applications. So, use it by default. Run-time libraries like libgomp, MTAPI, work stealing schedulers, language interpreters (e.g. Erlang virtual machine), etc. use a one-to-one thread processor affinity for example.

#3069 23 months ago fixed rtems Sebastian Huber Sebastian Huber 19 months ago
Summary

Add rtems_scheduler_ident_by_processor()

Description
/**
 * @brief Identifies a scheduler by a processor index.
 *
 * @param[in] cpu_index The processor index.
 * @param[out] id The scheduler identifier associated with the processor index.
 *
 * @retval RTEMS_SUCCESSFUL Successful operation.
 * @retval RTEMS_INVALID_ADDRESS The @a id parameter is @c NULL.
 * @retval RTEMS_INVALID_NAME Invalid processor index.
 * @retval RTEMS_INCORRECT_STATE The processor index is valid, however, this
 *   processor is not owned by a scheduler.
 */
#3070 23 months ago fixed rtems Sebastian Huber Sebastian Huber 19 months ago
Summary

Add rtems_scheduler_ident_by_processor_set()

Description
/**
 * @brief Identifies a scheduler by a processor set.
 *
 * The scheduler is selected according to the highest numbered online processor
 * in the specified processor set.
 *
 * @param[in] cpusetsize Size of the specified processor set buffer in
 *   bytes.  This value must be positive.
 * @param[out] cpuset The processor set to identify the scheduler.
 * @param[out] id The scheduler identifier associated with the processor set.
 *
 * @retval RTEMS_SUCCESSFUL Successful operation.
 * @retval RTEMS_INVALID_ADDRESS The @a id parameter is @c NULL.
 * @retval RTEMS_INVALID_SIZE Invalid processor set size.
 * @retval RTEMS_INVALID_NAME The processor set contains no online processor.
 * @retval RTEMS_INCORRECT_STATE The processor set is valid, however, the
 *   highest numbered online processor in the specified processor set is not
 *   owned by a scheduler.
 */
rtems_status_code rtems_scheduler_ident_by_processor_set(
  size_t     cpusetsize,
  cpu_set_t *cpuset,
  rtems_id  *id
);
#3071 23 months ago fixed bsps Sebastian Huber Sebastian Huber 19 months ago
Summary

Create an interrupt server for every processor in the system

Description

Create an interrupt server for every processor in the system with a one-to-one thread processor affinity. This allows load balancing for interrupt processing. Add support routines to customize the setup after initialization.

#3076 23 months ago fixed unspecified Sebastian Huber Sebastian Huber 19 months ago
Summary

Test suite failures due to floating point usage

Description

Several tests fail due to an unaccounted use of the floating point unit:

BLOCK 6 BLOCK 14 CONSTRUCTOR/DESTRUCTOR CRYPT 1 DUMPBUF 1 FLASHDISK 1 FSBDPART 1 FSDOSFSFORMAT 1 FSDOSFSNAME 1 FSERROR DOSFS FSERROR JFFS2 FSERROR MOUNTED IMFS FSERROR RFS FSERROR ROOT IMFS FSPERMISSION JFFS2 FSPERMISSION MOUNTED IMFS FSPERMISSION RFS FSPERMISSION ROOT IMFS FSRENAME MOUNTED IMFS FTP 1 libdl (RTL) 1 libdl (RTL) 4 libdl (RTL) 5 MGHTTPD 1 MONITOR 2 MOUSE 1 NETWORKING 1 PSXFILE 1 PSXIMFS 1 PSXIMFS 2 PSXPASSWD 2 PSXPIPE 1 PSXSTAT SMP 1 SMP 2 SMP 3 SMP 8 SMP 9 SMPAFFINITY 1 SMPSCHEDULER 1 SPERROR 1 SPERROR 2 SPERROR 3 SYSCALL 1 TAR 1 TERMIOS 3 TERMIOS 4 TERMIOS 5 TERMIOS 6 TERMIOS 7

#3077 23 months ago fixed arch/sparc Sebastian Huber Sebastian Huber 19 months ago
Summary

SPARC: Add lazy floating point context switching

Description

The uniprocessor floating point context switching is unsafe, e.g. it is possible to silently corrupt the floating point context. The SMP floating point switching is safe, however, it doesn't use a deferred switch. Implement lazy floating point switching in uniprocessor configurations. This fixes test case spcontext01.

#3080 23 months ago fixed arch/sparc Sebastian Huber Sebastian Huber 19 months ago
Summary

Infinite loop in SPARC rtems_invalidate_multiple_instruction_lines()

Description

A

#define CPU_INSTRUCTION_CACHE_ALIGNMENT 0

is not a good idea in case the default range functions are used.

#3082 22 months ago fixed arch/powerpc Sebastian Huber Sebastian Huber 4 months ago
Summary

Add 64-bit support for PowerPC

Description

The QorIQ chips have more than 4GiB of memory available.

#3085 22 months ago fixed arch/powerpc Sebastian Huber Sebastian Huber 14 months ago
Summary

Add hypervisor support for QorIQ BSPs

Description

NXP provides a hypervisor (Topaz) for the QorIQ platform.

https://www.xes-inc.com/wp-content/uploads/2016/03/NXP-Embedded-Hypervisor-for-QorIQ-Overview.pdf

#3090 22 months ago fixed bsps Sebastian Huber Sebastian Huber 16 months ago
Summary

Add BSP for i.MX 7

#3091 22 months ago fixed tool Joel Sherrill Sebastian Huber 19 months ago
Summary

Core Dump in powerpc-rtems4.12-ld

Description

This appears to have been introduced by the new binutils. Impacts qemuprep and qemuprep-altivec BSPs.

gmake[8]: Entering directory `/data/home/joel/rtems-work/rtems-testing/rtems/build-powerpc-qemuprep-rtems/powerpc-rtems4.12/c/qemuprep/lib/libbsp/powerpc/motorola_powerpc/qemu_fakerom' powerpc-rtems4.12-ld -o qemu_fakerom.bin qemu_fakerom.o qemu_fakeres.o --oformat binary -nostdlib -Ttext 0xfff00000 --section-start=.romentry=0xfffffffc gmake[8]: * [qemu_fakerom.bin] Segmentation fault

#3111 21 months ago fixed tool/newlib Sebastian Huber