RTEMS 6.1-rc2 Embedded Realtime Operating System

Table of Content


RTEMS Release 6.1

RTEMS 6.1 Release Notes

RTEMS Improvements

In this section, we discuss public API level changes as well as improvements to the implementation of those API routines.

Public API changes usually fall into one of the following categories:

  • Addition of new methods

  • Modifications to prototypes

  • Deletion of obsoleted methods

Implementation improvements usually fall into one of the following categories:

  • Algorithm improvements in execution time or memory usage

  • Critical section reduction

API Changes

  • If the processor set is not large enough to contain the processor set of the scheduler, then rtems_scheduler_get_processor_set() returns RTEMS_INVALID_SIZE instead of RTEMS_INVALID_NUMBER.

  • If the processor set is not large enough to contain the processor affinity set of the task, then rtems_task_get_affinity() returns RTEMS_INVALID_SIZE instead of RTEMS_INVALID_NUMBER.

  • If time-of-day argument is NULL, then rtems_timer_fire_when(), rtems_timer_server_fire_when(), andrtems_task_wake_when()returnRTEMS_INVALID_ADDRESSinstead ofRTEMS_INVALID_CLOCK`.

  • The time-of-day arguments in rtems_timer_fire_when(), rtems_timer_server_fire_when(), andrtems_task_wake_when()` were constified.

  • If the entry point is NULL, then rtems_task_start() returns now RTEMS_INVALID_ADDRESS.

  • If rtems_task_delete() is called from within interrupt context, then it returns now RTEMS_CALLED_FROM_ISR.

  • The rate monotonic period statistics are no longer affected by rtems_cpu_usage_reset().

  • Termios

    • txTaskCharsDequeued has been added to struct rtems_termios_tty. With that the size of the structure changed. Libraries and applications that use the structure should be recompiled.
    • The l_start line discipline function now receives the number of characters that have been sent. It is save to ignore the extra parameter for applications that don't need it.

API Additions

  • RTEMS_ALIGN_UP()

  • RTEMS_ALIGN_DOWN()

  • rtems_get_build_label()

  • rtems_get_target_hash()

  • rtems_interrupt_clear()

  • rtems_interrupt_entry_initialize()

  • RTEMS_INTERRUPT_ENTRY_INITIALIZER()

  • rtems_interrupt_entry_install()

  • rtems_interrupt_entry_remove()

  • rtems_interrupt_get_affinity()

  • rtems_interrupt_get_attributes()

  • rtems_interrupt_handler_install()

  • rtems_interrupt_handler_iterate()

  • rtems_interrupt_handler_remove()

  • rtems_interrupt_is_pending()

  • rtems_interrupt_raise()

  • rtems_interrupt_raise_on()

  • rtems_interrupt_server_action_prepend()

  • rtems_interrupt_server_create()

  • rtems_interrupt_server_delete()

  • rtems_interrupt_server_entry_destroy()

  • rtems_interrupt_server_entry_initialize()

  • rtems_interrupt_server_entry_move()

  • rtems_interrupt_server_entry_submit()

  • rtems_interrupt_server_handler_install()

  • rtems_interrupt_server_handler_iterate()

  • rtems_interrupt_server_handler_remove()

  • rtems_interrupt_server_initialize()

  • rtems_interrupt_server_move()

  • rtems_interrupt_server_request_destroy()

  • rtems_interrupt_server_request_initialize()

  • rtems_interrupt_server_request_set_vector()

  • rtems_interrupt_server_request_submit()

  • rtems_interrupt_server_resume()

  • rtems_interrupt_server_set_affinity()

  • rtems_interrupt_server_suspend()

  • rtems_interrupt_set_affinity()

  • rtems_interrupt_vector_disable()

  • rtems_interrupt_vector_enable()

  • rtems_interrupt_vector_is_enabled()

  • RTEMS_MESSAGE_QUEUE_BUFFER()

  • rtems_message_queue_construct()

  • RTEMS_PARTITION_ALIGNMENT

  • rtems_task_construct()

  • RTEMS_TASK_STORAGE_SIZE()

  • RTEMS_TASK_STORAGE_ALIGNMENT

API Implementation Improvements

  • The Classic API signal processing was reworked to avoid possible infinite recursions. It is still strongly recommended to use the RTEMS_NO_ASR task mode for the signal handler.

  • Zero size allocation results are now consistent accross directives, for example malloc( 0 ) and posix_memalign( &p, align, 0 ) return now a unique pointer (or NULL if the heap is empty). In POSIX, zero size memory allocations are implementation-defined behaviour. The implementation has two options:

    • https://pubs.opengroup.org/onlinepubs/9699919799/functions/malloc.html

    • https://pubs.opengroup.org/onlinepubs/9699919799/functions/posix_memalign.html

    Linux and FreeBSD return a unique pointer for zero size memory allocations. This approach is now also used in RTEMS as well throughout the memory allocation directives

API Deprecations

  • rtems_iterate_over_all_threads(). Use rtems_task_iterate() instead.

  • _Copyright_Notice is deprecated. Use rtems_get_copyright_notice() instead.

  • _RTEMS_version is deprecated. Use rtems_get_version_string() instead.

  • RTEMS_COMPILER_NO_RETURN_ATTRIBUTE is deprecated. Use RTEMS_NO_RETURN instead.

  • RTEMS_COMPILER_PURE_ATTRIBUTE is deprecated. Use RTEMS_PURE instead.

  • RTEMS_COMPILER_DEPRECATED_ATTRIBUTE is deprecated. Use RTEMS_DEPRECATED instead.

  • RTEMS_COMPILER_UNUSED_ATTRIBUTE is deprecated. Use RTEMS_UNUSED instead.

  • RTEMS_COMPILER_PACKED_ATTRIBUTE is deprecated. Use RTEMS_PACKED instead.

API Removals

  • The obsoleted header file <rtems/system.h> was removed.

  • The never implemented rtems_interrupt_cause() directive was removed.

  • Support for the RTEMS thread model used by GCC versions prior to 6.1 was removed (for example rtems_gxx_once()).

  • The obsoleted rtems_get_current_processor() directive was removed. Use rtems_scheduler_get_processor() instead.

  • The obsoleted rtems_get_processor_count() directive was removed. Use rtems_scheduler_get_processor_maximum() instead.

  • The obsoleted boolean type was removed. Use bool instead.

  • The obsoleted single_precision type was removed. Use float instead.

  • The obsoleted double_precision type was removed. Use double instead.

  • The obsoleted proc_ptr type was removed. Use a proper function pointer type.

  • The obsoleted rtems_context type was removed.

  • The obsoleted rtems_context_fp type was removed.

  • The obsoleted rtems_extension type was removed. Use void instead.

  • The obsoleted rtems_io_lookup_name() type was removed. Use stat() instead.

  • The obsoleted region_information_block was removed. Use Heap_Information_block instead.

  • The obsoleted rtems_thread_cpu_usage_t type was removed. Use struct timespec instead.

  • The obsoleted rtems_rate_monotonic_period_time_t type was removed. Use struct timespec instead.

  • The obsoleted RTEMS_MAXIMUM_NAME_LENGTH define was removed. Use sizeof(rtems_name) instead.

SMP Support Improvements

  • The SMP scheduler framework was reworked to fix potential data corruption issues and priority group ordering violations.

Configuration Changes

  • TBD

  • New configuration options:

    • CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE

    • CONFIGURE_MINIMUM_TASKS_WITH_USER_PROVIDED_STORAGE

  • Renamed configuration options:

    • TBD
  • Removed configuration options:

    • TBD

RTEMS Shell Improvements

The following improvements were made to the RTEMS Shell:

General

Architectures

Removed obsoleted architectures:

Obsoleted architectures:

BSPs and Device Drivers

Newlib Changes

Ecosystem

RTEMS 6.1 Ticket Overview

Total Closed In_progress New Assigned Percentage
572 530 0 7 31 93%


RTEMS 6.1 Ticket Summary

ID Status Summary
1318 closed libcpu/shared is not helpful
1459 closed Add rtems_shell_main_monitor to cpukit/libmisc/shell/shell.h?
1593 closed RTEMS Sequenced Initialization API
1712 closed Add LWIP Support to RTEMS
1728 closed Patch for RTEMS-BSP m68k/mcf5225x
1815 closed _ISR_Nest_level should be protected with interrupts disabled in function _Watchdog_Insert
1820 closed sptests/sp36: Improper buildsystem integration
2000 closed Re-add removed LINK_OBJS to MP tests
2071 closed The object-file suffixes for default-bsp-post-link in leaf.cfg don't work with make-exe...
2111 closed AVR needs avr-libc to compile RTEMS.
2114 closed statvfs for MS-DOS filesystem and 'df' coomand for shell
2189 closed Insufficient documentation for rtems_clock_get_tod()
2215 closed Duplicate code for TAR support
2269 closed x86 Context Switch Synchronization and SMP
2301 closed cpukit is built in BSP, and BSP custom, specific part of build tree but isnt built using BSP's spec file
2330 closed nios2 missing atomics, fails to link C++
2348 closed Timecounter: Add NTP support
2349 closed Timecounter: Add PPS support
2365 closed Task pre-emption disable is broken due to pseudo ISR tasks
2778 closed Error building RTEMS Source Builder recipe for libxml
2828 closed Remove libmisc/serdbg
2869 closed Remove support for 16-bit object identifiers
2871 closed Use bibtex references thoughout the documentation
2872 closed Get rid of CONFIGURE_MAXIMUM_PTYS
2902 closed Port RTEMS to Microblaze
2971 closed Add fenv.h to newlib
2985 closed Add documentation for printk()
3143 closed Remove obsolete rtems_gxx_*() implementation
3199 closed New test framework
3230 accepted RSB does not report --rsb-file for patches correctly.
3250 closed Remove Use of bsp_specs
3269 closed Make the IRQ extensions API a standard API
3321 closed Improve console driver documentation
3414 closed Remove Makefiles from rtems-examples?
3420 closed Deprecate/obsolete rtems_io_lookup_name
3456 closed Add support for CPU counter timestamps
3566 closed Remove checks for Newlib features introduced during the RTEMS 5 development
3584 closed Remove types which are only available if RTEMS_DEPRECATED_TYPES is defined
3586 closed Remove deprecated proc_ptr definition
3588 closed Remove deprecated rtems_context
3590 closed Remove deprecated rtems_context_fp
3592 closed Remove deprecated region_information_block
3594 closed Remove deprecated rtems_thread_cpu_usage_t
3596 closed Remove deprecated rtems_rate_monotonic_period_time_t
3613 closed Remove m32c architecture port from upstream tools
3615 closed Convert Tools_Used Wiki page into Support Tools Selection with Criteria
3657 closed Add support for poll.h method - poll
3659 closed LEON3 kernel entry point is overwritten - secondary processors may enter into spurious handler
3689 closed bdbuf: Replace automatic read-ahead with rtems_bdbuf_peek()
3698 closed libdl failure on many PowerPC BSPs
3702 closed Space profile for RTEMS SMP
3704 closed Review and update Doxygen recommendations
3705 closed Software Design Document (SDD) for space profile
3706 closed Create a hierarchy of RTEMS software components using Doxygen groups
3707 closed Assign each code file to a Doxygen group
3715 closed Add Requirements Engineering chapter to RTEMS Software Engineering Handbook
3717 closed Add test guidelines chapter to RTEMS Software Engineering Handbook
3718 closed Add support for test plans
3719 closed Update libcrypt to latest FreeBSD to address Coverity Scan Issues
3726 closed Select a requirements engineering tool
3818 closed New build system
3828 closed Switch over to new build system
3846 closed Build system does not track the dependencies of start.o files
3847 closed Test programs are not re-linked if a start.o or linker command file changes
3853 closed Add and use project-wide glossary to documentation
3866 closed Add support for GCC 10 noinit attribute
3878 closed rtems06: All BSPs Fail to build with BSP Builder on rtems 6
3883 closed Trace linker is broken on small-data area targets
3886 closed Fail an RSB build with --mail option if a repo is not clean
3897 closed Dhcpcd does not daemonize
3910 closed Add BSP for STM32H7
3924 closed Test the application configuration options
3925 closed Optimize work area initialization
3929 closed Document use of virtualenv
3935 closed Remove use of RTEMS_INLINE_ROUTINE in the RTEMS sources
3937 closed Move content of bsp_specs to GCC
3941 closed Remove epiphany architecture support
3942 closed multiple definition of `pci_indirect_functions'
3947 closed fdt_rw.c: Unchecked return value (CID #1047324)
3951 closed Remove obsolete powerpc BSPs
3957 closed Review wiki/Developer for deletion
3959 closed Add rtems_task_construct()
3962 closed Licensing Requirements for Submissions Poorly Documented
3977 closed Add unexplained-failure as option for Test Configuration Files
3978 closed Move _RTEMS_version to implementation header file
3979 closed Remove RTEMS_MAXIMUM_NAME_LENGTH
3980 closed Remove deprecated <rtems/system.h>
3981 closed Remove _Copyright_Notice from API header file
3982 closed Test failures on BSPs with sbrk() support
3988 closed Remove deprecated rtems_extension
3989 closed Remove deprecated rtems_get_current_processor()
3990 closed Remove deprecated rtems_get_processor_count()
3991 closed Remove deprecated Thread typedef
3993 closed Specify the RTEMS Classic API
3994 closed Generate Doxygen markup for the application configuration options
3996 closed fenv support is missing on powerpc
3997 closed fenv support is missing on sparc
3998 closed fenv support is missing on arm
4007 closed Add rtems_message_queue_construct()
4018 closed libcpusupport: Architecture defines are present outside CPU port
4020 closed Change all version numbers to RTEMS 6 on the master branches
4025 closed NFS Client is broken on 64-bit targets
4029 closed i386: SMP-System hangs with non-consecutive APIC IDs
4031 closed i386: ISR can overwrite its own stack during system initialization (cloned)
4032 closed Make deferred free in malloc() support optional
4034 closed Add rtems_interrupt_server_create() and rtems_interrupt_server_destroy() (cloned)
4036 closed Track dependency command for the RSB
4037 closed Python script distribution standardisation
4039 closed arm/atsam/SC16IS752: Make interrupt server configurable (cloned)
4040 closed coverhd.h remnants left to remove
4043 closed Update software eng manual to rtems-central
4044 closed Add RSB Track command
4045 closed Remove RSB sb-builder command
4046 closed Remove RSB sb-bootstrap command
4048 closed Move RTEMS 5 BSP and package build sets and configs to RTEMS 6
4052 closed [libbsd] e1000 driver not working for i386 based BSP in current rtems-libbsd master
4054 closed RTEMS_BARRIER_AUTOMATIC_RELEASE and RTEMS_BINARY_SEMAPHORE options have the same value
4055 closed bsps/xilinx-zynq: Flush TX-Buffer before initializing the zynq-uart
4061 closed The reworked <rtems/confdefs.h> has a cyclic dependency with RTEMS_MULTIPROCESSING enabled (cloned)
4063 closed Change to a simpler TFTP server for rtems-test
4065 closed Typo in rtems-boot.ini "ubootdior" should be "ubootdir"
4066 closed test running for too long
4067 closed Libbsd build system does not separate kernel and user land include paths
4069 closed dl06 does not link on RISCV
4070 closed RISC-V Multiple Definition Error (many BSPs)
4072 assigned testsuite: Add ticket ids for expected-fail and indeterminate states, add annotations
4074 closed Add CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE
4076 closed i386: bad asm in smp mode
4077 closed Implement LibBSD module dependencies in the build system
4078 closed GCC C++ compiler for powerpc defines _GNU_SOURCE as a built-in
4079 closed build: i386/pc686/appstart.o is created more than once
4080 closed build: Add start.o dependency to the executable link step
4081 closed Remove Autoconf/Automake based build system
4084 closed throwing std::runtime on PC BSP fails
4093 closed bsps/pc386: Add missing license header
4095 assigned Remove doc from rtems-tools
4097 closed shell: CRTL-U sets the cursor to the wrong position (cloned)
4098 closed All BSP bsets fail to build on master
4100 closed arm/edb7312 Build Failure When SMP is Enabled
4101 closed atsamv fails to build on master
4103 closed BeagleBoard BSPs Fail to Build
4105 closed Add RTEMS_PARTITION_ALIGNMENT
4107 closed waf -j24 fails on powerpc/psim -- probable dependency issue
4108 closed Review minimum and ensure it really is a minimum configuration
4110 closed Ubuntu package list is broken
4115 closed Cortex-A9 MPCore based BSPs should include the workaround for Errata 794072 and 845369
4116 closed raspberrypi fails to build on waf and autoconf
4117 closed lpc1768_mbed_ahb_ram_eth sp01 and others fail to link
4118 closed Add clang variants for sparc BSPs
4120 closed altcycv_devkit and imx7 fail to build all tests on master
4121 closed lm3s3749 fails to build all tests on master
4122 closed Change RTEMS_NO_RETURN to use C11 and C++11 standard means
4123 closed rtems-bsps needs to be switched to look at waf info for BSPs
4124 closed rtems-bsp-builder needs to be switched to waf builds
4125 assigned Update wiki pages to reference waf not autoconf based build
4126 closed Remove legacy networking stack from rtems.git and place in a new repo
4127 closed x86_64/amd64 fails to build
4128 closed all griscv variants fail to build on master
4129 closed x86_64 not listed as architecture in components in Trac
4131 closed "fdisk DISK_NAME mount" in bdpart-mount.c uses non-existing file system type "msdos"
4134 closed rtemsspec: Support user-defined ordering of directives in header files (Doxygen)
4140 closed waf install of RTEMS breaks Makefile system in rtems-examples
4142 closed Sparse disk destroys data when it grows
4143 closed fileio - Stack too small for login with password
4145 closed rtems-source-builder: Update RTEMS Kernel Recipe to Use waf for RTEMS
4148 closed RFS bit map search buffer overflow
4155 closed Add a workaround for the LEON3FT RETT Restart errata: TN-0018
4157 closed pthread_spin_unlock() may corrupt the thread stack if RTEMS_PROFILING and RTEMS_SMP is enabled
4158 closed rtems_interrupt_server_delete() does not destroy the ISR lock of the server control
4164 closed Fix NVMe disk synchronization and media block handling
4166 closed rtems-bsp-builder: Add way to select rtems version (6 vs 7)
4167 closed Coverity Scan Does Not Run on rtems6
4175 closed Resolve warning during AArch64 build
4180 closed Add BSP for i.MXRT1050
4181 closed Add CONFIGURE_INIT_TASK_STORAGE_SIZE
4184 closed arm/bsps: Small MMU pages are rounded to 1 MiB
4192 closed bsp/xilinx_zynq: Enable support for small MMU pages
4193 closed devctl.h does not compile from C++ (cloned)
4194 closed RSB failed with mail subject: Build Linux: PASSED 6/rtems-arm on x86_64-linux-gnu
4195 closed Add gr740 support available in SIS 2.25 to the RTEMS Tester
4196 closed Improve gcov support provided by GCC for RTEMS
4197 closed testsuite: ts-validation-0 broken on AArch64 due to SIZE_MAX issues in the test design
4198 closed arm: Add multilib for Cortex-R52 processor
4200 closed Build system doco link in the User Guide is broken
4201 closed waf building out of source tree does not find all configured bsps
4202 closed Add BSP for ARM Fixed Virtual Platform with a Cortex-R52
4204 closed Make Termination Handler which Prints Exit Information Less Scary
4206 closed aarch64/xilinx_zynqmp_lp64 does not run with RTEMS_DEBUG enabled
4207 closed PZERO define in RTEMS is wrong
4209 closed STM32H743ZI Nucleo Consle support not working without workaround
4212 closed libio leaks location clones
4214 closed nios2: Add thread-local storage support
4215 closed nios2: Add multilib with all custom floating-point instructions supported by GCC
4217 closed Change status code for nested obtain of MrsP semaphores
4218 closed aarch64 as internal error with spconfig01
4219 closed gdb master does not compile on CentOS 7
4221 closed dtc recipe issue -- dependency on yaml.h
4222 closed Add a per mount flag to not create a node on O_CREAT in open
4223 closed Missing "extern" in RTEMS_LINKER_ROSET_ITEM_ORDERED_DECLARE()
4225 closed Cobham Gaisler NOEL-V RISC-V 32- and 64-bit processor BSP
4226 closed Buildbot needs a tool chain update
4228 closed rtems_build_name() depends on the signedness of char type
4229 closed conf.py files need updated for sphinxcontrib-bibtex ver. 2.0.0 and greater
4230 closed Timeout for automatic barriers is broken
4231 closed MVME 2600/2700 has no console output
4237 closed consolesimpletask.c: Two Unchecked Return Values Spotted by Coverity
4238 closed Change motorola_powerpc bsp to support irq-generic
4239 closed PowerPC shared ISA IRQ support is broken
4240 closed rtems-debugger-target.c: Dereference before null check spotted by Coverity
4241 closed rtems-debugger-threads.c: Three Dereference before null check errors spotted by Coverity
4242 closed rtems-debugger-threads.c: Three Dereference before null check errors spotted by Coverity
4244 closed Possible infinite recursion in Classic API Signal handling
4245 closed Add PCI regions support to RTEMS nexus bus support
4246 closed Add libbsd DC NIC support to mvme2700 board
4250 closed b1553brm.c: Dereference before null check error spotted by Coverity
4251 closed b1553rt.c: Dereference before null check error spotted by Coverity
4252 closed grtc.c: Dereference before null check error spotted by Coverity
4253 closed grspw_pkt.c: Dereference before null check error spotted by Coverity
4254 closed shell.c: Dereference before null check error spotted by Coverity
4258 closed printertask.c: Unchecked return value errors spotted by Coverity
4259 closed grspw.c: Unchecked return value error spotted by Coverity
4260 closed record-client.c: Unchecked return value error spotted by Coverity
4261 closed getgrent.c: Unchecked return value error spotted by Coverity
4262 closed rtems-debugger-threads.c: Unchecked return value error spotted by Coverity
4264 closed Activate ehci_pci in rtems-libbsd (cloned)
4265 closed Add rtems_get_build_hash()
4267 closed Add rtems_get_target_hash()
4269 closed Add rtems_get_build_label()
4270 closed A failing task extension produces zombi objects and resource leaks
4277 closed grtc.c: Missing break in switch errors spotted by Coverity
4278 closed cpuusagetop.c: Missing break in switch errors spotted by Coverity
4279 closed pci_cfg_read.c: Missing break in switch error spotted by Coverity
4280 closed gen_uuid.c: Unchecked return value from library errors spotted by Coverity
4281 closed main_chmod.c: Unchecked return value from library error spotted by Coverity
4282 closed pwdgrp.c: Unchecked return value from library error spotted by Coverity
4283 closed gr_rasta_spw_router.c: Unchecked return value from library error spotted by Coverity
4284 closed gr_rasta_io.c: Unchecked return value from library error spotted by Coverity
4285 closed gr_leon4_n2x.c: Unchecked return value error from library error spotted by Coverity
4286 closed gr_rasta_tmtc.c: Unchecked return value from library error spotted by Coverity
4287 closed gr_rasta_adcdac.c: Unchecked return value from library error spotted by Coverity
4288 closed gr_701.c: Unchecked return value from library error spotted by Coverity
4289 closed gr_tmtc_1553.c: Unchecked return value from library error spotted by Coverity
4290 closed gr_cpci_gr740.c: Unchecked return value from library error spotted by Coverity
4291 closed main_help.c: Unchecked return value from library error spotted by Coverity
4292 assigned rtems-rfs-bitmaps.c: Useless call (CID 1399749)
4294 closed satcan.c: Unsigned compared against 0 error spotted by Coverity
4295 closed b1553brm.c: Unsigned compared against 0 error spotted by Coverity
4301 closed grcan.c: Unused value error spotted by Coverity
4302 closed Obsolete powerpc/haleakala board
4320 closed Add driver for cadence-spi device for xilinx based BSPs
4321 closed Add spi driver for AXI SPI ip core from Xilinx
4323 closed grlib,can: introduce a new common CAN baud-rate timing calculating functions
4324 closed grlib,grcanfd: extend the GRCAN driver with GRCANFD support
4326 closed objectextendinformation.c: Dereference after null check error spotted by Coverity
4329 closed main_rtrace.c: Dereference after null check error spotted by Coverity
4331 closed main_pci.c: Dereference after null check error spotted by Coverity
4336 closed Improve the workaround for the LEON3FT store-store errata: TN-0009 on master
4338 closed rtems_clock_set(): Cannot set future dates later than approximately 2105
4339 closed main_cp.c: Unused value error spotted by Coverity
4340 closed print-ls.c: Unused value error spotted by Coverity
4341 closed fastlz.c: Unused value error spotted by Coverity
4342 closed disp_hcms29xx.c: Unused value error spotted by Coverity
4345 closed Nexus Driver for Marvell mv643xx Ethernet Adapter (powerpc/beatnik BSP, MVME6100 board)
4346 closed Require RTEMS_PRIORITY for MrsP semaphores
4355 closed Remove leon3 test configurations which assume sis is built into gdb from rtems-test
4356 closed rtems_semaphore_set_priority() uses an invalid SMP lock
4358 closed Priority discipline is broken for semaphores and message queues in SMP configurations
4363 closed GDB does not build on Windows for MSYS2
4364 assigned rtems-test Fails to list failed tests to user
4365 closed main_cp.c: Ignore return value from stat()
4368 closed rtems--tools tool kit temp file constructor does nothing
4374 closed Handle symbol sets in covoar
4375 closed Add futimens() and utimensat()
4376 closed covoar/ReportsBase Coverage::GenerateReports() uses raw pointer to std::list
4377 closed covoar/Explanations Explanations::writeNotFound() NULL check of wrong variable
4378 closed covoar/symbol-sets add libuuid to symbol-sets.ini
4380 closed Update RTEMS POSIX Compliance Spreadsheet
4382 closed mingw - add flex to packages needed
4383 closed covoar keeps DWARF info in memory too long
4384 closed Add SMTP login to rtems-tools mailer
4386 closed covoar missing conditional branch instructions on ARM
4387 closed covoar marks taken/not taken incorrectly for AArch64
4388 closed Copy improved mailer.py from rtems-tools
4389 closed Undefined behaviour if the area size calculation in calloc() and rtems_calloc() overflows
4390 closed Make zero size allocation result consistent across directives
4391 closed SPARC GCC no longer needs sysconf(515) (_SC_STACK_PROT)
4392 closed rtems: Constify timer fire when directives
4393 closed rtems: Change rtems_task_get_affinity() status
4395 closed Workspace initialization is broken for arm/imx7 and arm/raspberrypi
4396 closed Add futimens() and utimensat()
4397 closed Make utime() use utimensat()
4398 closed Make utimes() use utimensat()
4399 closed Add tests for futimens() and utimensat()
4400 closed Change filesystem utime_h to utimens_h to support nanosecond granularity
4401 closed rtems: Change rtems_scheduler_get_processor_set() status
4402 closed rtemstoolkit/mailer.py option added twice
4403 closed rtems_timer_fire_when() returns wrong status code when wall_time argument is NULL
4406 closed rtems: Constify rtems_task_wake_when()
4410 closed rtems_task_start() does not check that the entry point is not equal to NULL (cloned)
4411 closed rtems_task_restart() should set the real priority to the initial priority
4412 closed Unexpected rtems_task_restart() behaviour if called from within interrrupt context
4413 closed Allow pthread_cancel() from within interrupt context
4414 closed Return RTEMS_CALLED_FROM_ISR in rtems_task_delete()
4415 closed ReportsBase.cc: Division or modulo by float zero error spotted by Coverity
4416 closed rtems-exeinfo.cpp: Division or modulo by zero errors spotted by Coverity
4417 closed Explanations.cc: Resource leak error spotted by Coverity
4418 closed GcovData.cc: Resource leak error spotted by Coverity
4419 closed TraceReaderLogQEMU.cc: Resource leak error spotted by Coverity
4420 closed TraceWriterQEMU.cc: Resource leak error spotted by Coverity
4421 closed DesiredSymbols.cc: Resource leak error spotted by Coverity
4422 closed ReportsBase.cc: Resource leak error spotted by Coverity
4423 closed record-client.c: Unchecked return value error spotted by Coverity
4424 closed rtems-bin2c.c: Copy into fixed size buffer spotted by Coverity
4425 closed GcovFunctionData.cc: Copy into fixed size buffer errors spotted by Coverity
4426 closed clock_nanosleep() may use wrong clock for relative times
4427 closed GcovData.cc: Dereference after null check error spotted by Coverity
4428 closed ReportsBase.cc: Dereference after null check error spotted by Coverity
4430 closed DesiredSymbols.cc: Uninitialized pointer read error spotted by Coverity
4432 closed GcovFunctionData.cc: Uninitialized pointer field error spotted by coverity
4433 closed DesiredSymbols.h: Uninitialized pointer field error spotted by coverity
4434 closed record-filter-zlib.cc: Uninitialized pointer field error spotted by Coverity
4435 closed Thread cancellation may produce ready threads with an active thread timer
4437 closed powerpc/shared/sbrk.c: Do not reference errno
4438 closed powerpc/shared/irq/ppc-irq-legacy.c: Use rtems_malloc() not malloc()
4439 closed Open of /dev/console should only be in SysInit List if Console Enabled
4442 closed CID 1399721: Copy into fixed size buffer
4444 closed CID 1399727: Copy into fixed size buffer
4445 closed CID 1468684: Uninitialized scalar variable
4448 closed covoar reports uncovered ranges of size 1
4451 closed DesiredSymbols: Implement move assignment operator
4453 closed Global vs Local Attribute Unclear for SMP/Distributed MP
4454 closed bsps/i386: TSC calibration inaccurate
4455 closed bsps/i386: TSC calibration inaccurate
4458 closed Simplify trap table initialization
4460 closed CID 1437647: Explicit null dereferenced
4461 closed grlib: Register system console as "/dev/console"
4462 closed CID 1437638: Logically dead code
4463 closed rtems_condition_variable_signal() is implemented as a broadcast
4468 closed waf build system does not generate the same bspopts.h
4469 closed rtems-exeinfo.cpp: Not restoring ostream format errors spotted by Coverity
4470 closed CoverageMapBase.cc: Not restoring ostream format error spotted by Coverity
4471 closed ReportsHtml.cc: Not restoring ostream format error spotted by Coverity
4472 closed ReportsText.cc: Not restoring ostream format error spotted by Coverity
4473 closed AddressToLineMapper.h: Pointer to local outside scope error spotted by Coverity
4475 closed Add NFSv4 client support to libbsd
4482 closed Document kernel character I/O support in Classic API Guide
4483 closed GcovData.cc: Not restoring ostream format error spotted by Coverity
4484 closed GcovFunctionData.cc: Not restoring ostream format error spotted by Coverity
4485 closed GcovData.cc: Out-of-bounds acces errors spotted by Coverity
4486 closed TraceWriterQEMU.cc: String not null terminated issue spotted by Coverity
4487 closed GcovData.cc: Uninitialized scalar field error spotted by Coverity
4488 closed TraceWriterQEMU.cc: Uninitialized scalar variable issue spotted by Coverity
4489 closed waf configure's --rtems-config and build create an error
4490 closed rtems_partition_return_buffer() wrongly accepts buffers which are exactly at the buffer area end
4491 closed TraceWriterQEMU.cc: Buffer not null terminated issue spotted by Coverity
4492 closed ObjdumpProcessor.cc: Uninitialized pointer field
4499 closed rtems-exeinfo.cpp: Uninitialized scalar field error spotted by Coverity
4500 closed rld-dwarf.cpp: Uninitialized scalar field
4501 closed TraceConverter.cc: Uncaught exception issue spotted by Coverity
4502 closed rld-rap.cpp: Uncaught exception issue spotted by Coverity
4506 closed posix_devctl() should return the errno directly not -1 and set errno
4507 closed mount call retruns error number and it should return -1
4508 closed rtems_message_queue_receive(): flush() does not release waiting tasks
4509 closed Message queue priority dicipline is broken in SMP configurations
4510 assigned Fix ILP32 multilib variant in newlib for AArch64
4511 closed Count of postponed jobs is not set to zero for a newly created rate-monotonic period object
4513 closed Document parts of the Cache Manager in the Classic API Guide
4517 closed Build failures for MacOS
4518 closed RTEMS and LibBSD both provide competing pipe() interfaces
4519 closed record-main-lttng.cc: Out-of-bounds access
4522 closed Optimize red-black tree insert/extract
4524 closed Re-add lost capability for custom stack allocator to allocate IDLE thread stacks
4525 closed rtems-tld.cpp: Logically dead code error spotted by Coverity
4527 closed Add new directives to get all time values provided by the timehands
4528 closed rate monotonic: reset of CPU usage time not always detected
4531 closed Data corruption in SMP schedulers
4532 closed Priority inversion issues with MrsP locking protocol implementation
4533 closed libdebugger should only build for archs with a backend
4534 closed SMP EDF scheduler violates priority group ordering
4543 closed cannot build multiprocessor application on eclipse
4544 closed The last processor must not be removed if it is owned by a helping scheduler
4545 closed The SMP EDF scheduler can only support more restricted affinity sets of a thread
4546 closed A thread restart does not update the priority of related threads
4547 assigned dtc build failure on msys2 - all rtems6 target tools fail to build on Windows 10
4548 closed Add RTEMS version option to waf configure
4550 closed Add --rtems-version to rtems-test
4551 closed Workaround for GRLIB-TN-0011 required for sparc/leon3 BSPs in SMP configuration
4556 closed rtems_shell_main_mmove problem
4557 closed medit problem in RTEMS6 (was 4.11/5.1)
4560 closed Use thread-local storage for Newlib reentrancy objects
4566 closed Atomic store does not use the order parameter for C++
4569 closed aarch64 cache support does not provide rtems_cache_disable_data()
4572 closed Improve Clarity for New Clock Manager Directives
4581 closed Add AArch64 to Tier 1 BSPs
4583 closed rtems-bsp-builder: Do not vary on network
4585 closed Multiple Prototype Issues/Mismatches in rtems-examples from trace linker
4588 closed RTEMS Stack Checker Report Bad Access When Not Enabled
4607 closed support for SATA(AHCI) drives
4613 closed Deprecate sparc64 port in rtems6 and remove in rtems7
4614 closed Deprecate sh port in rtems6 and remove in rtems7
4615 closed Deprecate v850 port in rtems6 and remove in rtems7
4617 closed Potential non-monotonic CLOCK_MONOTONIC
4619 closed riscv/rv32iac: minimum sample test fails to build
4627 closed Multitasking start is broken on SMP targets which do not restore the interrupt state during context switching
4629 closed shell: Potential stack corruption in rtems_shell_init()
4631 closed RSB fails to build gdb with Python 3.10 (and newer)
4632 closed Error in rtems/thread.hpp with GCC 12
4634 closed Fix hash for glib-2.48
4635 closed untar on JFFS slow down
4639 closed Error in imfs memfile when device is full
4641 closed x86_64 elf_machdep header file missing body
4644 closed wkspace "failed allocations" increase with heap protection enabled (cloned)
4646 closed Control buildsets using the --with-* command line option
4648 new Documentation Needs to Use Version Variables not Hard-Coded Numbers
4650 closed tcpdump: Fix dumping to file and reading from file (cloned)
4652 closed if_atsam: Fix checksum offload, add multicast and VLAN support (cloned)
4654 closed pfctl: Fix global state initialization (cloned)
4656 closed sync() whould synchronize all file descriptors (cloned)
4658 closed Fix build issue with riscv sample test
4661 closed GCC 12 generates wrong code
4662 closed Fix GCC 12 warnings
4666 closed TFTP: Implement block and window size options
4667 closed include/sys/_bitset.h defines struct bitset, pollutes namespace
4668 closed Use thread-local storage in libstdc++
4669 closed clock_nanosleep() uses the wrong clock to determine the start time point
4670 closed Add option to build RTEMS with coverage instrumentation
4672 closed Thread-local storage should be usable once an idle thread exists
4673 closed Runtime loader exported symbols address size not consistent
4675 assigned sleep should be a thread cancellation point
4677 closed incorrect handling of "inactive_per_block" from "Objects_Information" structure (cloned)
4678 closed System initialization time increased compared to RTEMS 4.11
4679 closed Use priority inheritance for thread join
4680 closed POSIX tasks cancelled through rtems_task_delete() should have an exit value of PTHREAD_CANCELED
4682 closed Add AArch64 support to libdl
4684 closed Support Versal DDRMC0 regions 0 and 1
4686 closed Refactor shared code in Arm and AArch64
4689 closed mips/jmr3904 Massive Number of Test Failures
4690 closed CLOCK_REALTIME thread queue not updated as part of clock_settime call
4691 closed Add support for FACE Technical Standard Restriction on POSIX Absolute Timers
4693 closed Remove ILP32 aarch64/xilinx_versal_* BSPs
4694 closed sptests/sp37 fails to compile if RTEMS_SMP is not defined
4695 assigned Automatic version numbers in the documentation
4697 closed Documentation for libbsd Configure options
4700 closed Fix instances of "is" operator used with literals
4701 closed Relocatable write data is placed in read-only region on some BSPs
4702 assigned Fix warnings for indexing past array bounds (primarily validation tests)
4703 closed NetSNMP 5.7.2.1 Patch
4705 closed Installed header clean up
4706 closed Installed header break C++
4710 closed RSB does not expand dir type macros correctly
4712 closed powerpc: Add AltiVec VRSAVE support
4713 closed Make pthread_atfork follow FACE Technical Standard Behavior for Single Process Environments
4714 closed Use waf for LwIP walk sources
4718 closed Coverity issues in cpukit/libfs/src/ftpfs/tftpDriver.c
4724 closed Git commit message format instructions
4726 closed RSB decode exception stops build
4729 closed Add 64bit address support to RTEMS FDT
4730 closed rtems-source-builder doesn't generate tar archives for all packages any more
4732 closed Set top in RSB version.py
4736 assigned RISC-V - ISR_stack allocation and usage by harts > CONFIGURE_MAXIMUM_PROCESSORS
4741 closed Fix GCC PR 107248
4744 closed libdebugger arm backend does not single step
4746 closed Armv7-M SysTick clock driver uses off by one reload value
4750 closed Linker discards RTEMS_SYSINIT_ITEM object
4751 closed chmod problem in shell of RTEMS 6
4756 closed Docs build system does not build singlehtml (cloned)
4759 closed TLS support is broken for ARMv6
4760 reopened RSB fatal error on missing hash checksums
4762 closed Add Versal SDHCI Arasan driver to libbsd
4763 closed Detect terminal size
4766 closed Classic API User Guide Index has Functions without Parentheses
4767 assigned Add rtems-lwip to release packages
4768 reopened Use tarballs for stable versions development tools
4769 closed config: Add CONFIGURE_RECORD_INTERRUPTS_ENABLED
4771 closed Versal UART issues
4772 closed Remove use of interval from rtems_task_wake_after() documentation
4775 closed RISC-V: Default RV64 BSPs to medany
4778 closed Deployed RSB does not find release version config
4782 closed Correct Issues in Rate Monotonic Manager Background Section
4783 new Fix issues when compiling dtc with Cygwin
4803 closed Revert or Mark CAN API as experimental
4818 closed Incomplete Statement in “cpu->heir”
4820 closed Hazardous cast
4821 closed Ubuntu Host Instructions Wrong
4822 closed Function returning unchanged function input
4826 assigned Software Engineering Guide has broken Reference
4828 closed Macro defined but magic number used instead
4832 closed CLANG flagged error
4833 assigned grlib/pci/grpci2dma.c Warnings Require Insight to Resolve Properly
4834 closed close_editor problem of RTEMS4.13/5.1 (cloned)
4835 closed medit malloc problem of RTEMS (cloned)
4838 closed Fix for UART interrupt on aarch64 Versal
4842 closed SPARC/grlib - Registers definitions wrongly defined when there are reserved bits
4843 closed Output value not assigned
4844 assigned Unchecked boundaries
4845 closed Global variable declared/defined in the wrong file
4847 closed Goto statements
4850 closed LEON3 - Variable not initialized in any file / missing #ifdefs
4855 closed Input validity unchecked
4857 closed RSB Recipe Missing %hash Does Not Fail
4858 closed GDB fails to build on any host with readline 8.2 or newer
4859 closed Update gdb to 12.1
4860 closed Waf Failure on CentOS 8 Stream
4861 assigned "Single HTML" links on docs.rtems.org lead to empty pages
4862 assigned score/ & bsps/: Unused input parameters
4863 closed Operations evaluation order.
4867 closed Clean up rtems-lwip uLan directory
4869 closed Add QSPI Flash Device API
4870 assigned Add features for QSPI Flash on Xilinx Versal
4872 closed GDB 13.1 does not build on FreeBSD 13.1
4874 closed Undefined behaviour
4875 assigned LEON3FT - Power-down workaround
4878 closed sptests/spsysinit01 sem_open call only has 3 parameters with O_CREAT flag (cloned)
4881 closed powerpc gas and ld warnings
4882 closed mvme2703 legacy network build failure
4884 closed I2C default ioctl handler does not handle set clock
4887 closed RTEMS Net Legacy does not build as a package in the RSB
4889 closed Remove file scanning from rtems-lwip
4892 closed MacOS tools build failures on Ventura and M series processors
4896 closed Makefile.inc exported BSP include path not a system include path
4899 closed BSP powerpc/qoriq_e6500_64 and powerpc/qoriq_e6500_32 fail to build
4900 closed PowerPC score warnings in score headers
4901 closed rtems_task_construct Documentation Missing Some Details
4902 closed Update zlib to version 1.2.13
4905 closed SuperCore _TOD_Adjust No Longer Referenced and Should be Removed
4906 closed libbsd not working on nucleo-h743ZI
4909 closed Multiple Protected Heap Functions are Ununused
4910 assigned RSB options for python selection
4912 closed Collect Compression Library Source in Single Place
4913 closed libbsd/ipsec-tools: Problems with more than 64 open files
4915 closed Building sphinx 7.0.1 fails
4920 new libdl does not support TLS
4921 assigned Tool versions for RTEMS 6.1 release
4923 accepted FPU context init/switch not working well on more than 2 tasks on Cortex-Mx/ARMv7-M platform
4924 closed Add Regulator Helper to RTEMS
4925 assigned Deal with GR740 errata: Level-2 Cache Issues H1 2023 (GRLIB-TN-0021)
4929 new RTEMS tools installs into $PREFIX/share/rtems and not $PREFIX/share/rtems6
4931 new User manual RSB BSP build examples need updating
4934 closed Update STM32 H7 HAL/LL drivers code
4935 closed 7/rtems-mips get source fails
4940 closed Fix cache support for ARM926EJ-S processor
4942 closed Regulator warnings
4943 closed ARM unwind register is not being hooked
4944 closed libdl test dl09 fails on arm and aarch64
4945 closed rtems-test SIS support is broken
4947 closed Testsuite libtest tests not built with optimise or debug flags
4950 closed libdl test dl07 fails on PowerPC
4951 closed rtems-tools fail on FreeBSD to get number of cores
4953 closed Use of symbol addresses for arbitrary values may not work for some code models
4954 closed sparc: Simplify the clock driver and CPU counter support
4955 closed sparc: Potential stack corruption in uniprocessor configurations during start multitasking
4956 assigned Deadlock caused by locking inversion in JFFS2
4957 assigned spstdc17 warnings building i386/pc686
4959 closed rtems-test tftp does not a session timeout
4960 new User manual test documentation update
4961 assigned Document and test CONFIGURE_JFFS2_DELAYED_WRITE_TASK_PRIORITY
4962 assigned MicroBlaze BSPs modify carry flag before MSR is saved
4967 closed strtof leaks memory
4968 assigned Python 3.12 fix escape sequences and remove SafeConfigParser
4969 closed Update libibery sources in rtems-tools
4970 closed Fix C++ 17 deprecated functionality in rtems-tools
4971 closed Report that nested validation test cases did run
4973 closed Add RSB options to control a specific python
4974 new rtems-tools buid failed with '--host=x86_64-w64-mingw32'
4975 closed Terminal row/col probe timeout too fast
4977 closed tmux bug swaps lines and columns
4980 closed Build documentation using sphinx 7.2
4982 assigned Add support for TMS570LC4357 for the arm/tms570 BSP
4986 assigned Improve CONFIGURE_TICKS_PER_TIMESLICE configuration and documentation
4991 assigned RSB source and patch checksum updates
4993 assigned Increase FD_SIZE to 256
550 closed fcntl() fails to put a non-blocking socket into blocking mode


RTEMS 6.1 Tickets By Category

Owner

Owner Closed Total Progress
Chris Johns <chrisj@…> 8 8 8/8
Ralf Corsepius 2 2 2/2
Sebastian Huber <sebastian.huber@…> 17 17 17/17
Chris Johns 87 73 73/73
joel 2 2 2/2
Joel Sherrill 32 33 32/32
Needs Funding 6 6 6/6
Gedare Bloom 11 11 11/11
  61 70 61/61
Sebastian Huber 174 182 174/174
chrisj@… 2 3 2/2
Hesham Almatary 1 2 1/1
joel@… 5 5 5/5
Kinsey Moore <kinsey.moore@…> 4 4 4/4
Jan Sommer <jan.sommer@…> 5 5 5/5
Joel Sherrill <joel@…> 9 9 9/9
Hesham Almatary <Hesham.Almatary@…> 1 1 1/1
Kinsey Moore 6 2 2/2
Ryan Long <ryan.long@…> 82 82 82/82
Jiri Gaisler 1 1 1/1
Frank Kühndel <frank.kuehndel@…> 1 1 1/1
Daniel Hellstrom 6 7 6/6
Christian Mauderer 3 3 3/3
kgardas 2 3 2/2
Amar Takhar 1 1 1/1
Gedare Bloom <gedare@…> 1 1 1/1
Ryan Long <thisisryanlong@…> 1 1 1/1
Jan Sommer 4 4 4/4
Heinz Junkes <junkes@…> 1 1 1/1
Alex White 10 11 10/10
Hesham Almatary <hesham.almatary@…> 1 1 1/1
Utkarsh Verma <utkarsh@…> 1 1 1/1
Cedric Berger 0 0 0/0

Type

Type Closed Total Progress
defect 372 403 372/372
enhancement 115 124 115/115
task 38 40 38/38
project 5 5 5/5

Priority

Priority Closed Total Progress
high 5 8 5/5
normal 512 550 512/512
highest 4 5 4/4
low 7 7 7/7
lowest 2 2 2/2

Component

Component Closed Total Progress
build 23 23 23/23
score 42 43 42/42
doc 42 36 36/36
tool/rsb 19 27 19/19
admin 14 15 14/14
tool/newlib 6 5 5/5
network/legacy 5 5 5/5
bsps 51 52 51/51
test 19 17 17/17
tool/gcc 6 6 6/6
arch/aarch64 8 10 8/8
shell 10 10 10/10
config 4 5 4/4
fs 10 10 10/10
lib 38 38 38/38
unspecified 8 9 8/8
rtems 52 53 52/52
arch/m32c 1 1 1/1
posix 8 9 8/8
arch/sparc 14 17 14/14
lib/dl 8 9 8/8
lib/block 2 2 2/2
tool 69 75 69/69
network/libbsd 19 19 19/19
arch/mips 2 2 2/2
arch/epiphany 1 1 1/1
arch/powerpc 5 5 5/5
arch/arm 17 19 17/17
arch/i386 3 3 3/3
arch/riscv 3 4 3/3
tool/website 1 2 1/1
fs/rfs 1 2 1/1
arch/nios2 2 2 2/2
tool/binutils 2 2 2/2
tool/gdb 6 6 6/6
lib/debugger 7 7 7/7
arch/sh 1 1 1/1
arch/v850 1 1 1/1
arch/sparc64 1 1 1/1
fs/jffs2 1 2 1/1
arch/x86_64 1 1 1/1
network/lwip 3 3 3/3
dev 1 1 1/1
dev/spi 1 1 1/1
dev/i2c 1 1 1/1

Severity

Severity Closed Total Progress
normal 506 540 506/506
major 4 5 4/4
blocker 13 6 6/6
critical 5 5 5/5
minor 5 5 5/5
trivial 4 4 4/4

Reporter

Reporter Closed Total Progress
Chris Johns 83 98 83/83
cynt6007 2 2 2/2
shashvat jain 1 1 1/1
Helder Silva 1 1 1/1
Thomas Rauscher 1 1 1/1
zhangwenjie 1 1 1/1
Sebastian Huber 167 172 167/167
Joel Sherrill 77 84 77/77
Ralf Corsepius 3 3 3/3
mohamedosama94 1 1 1/1
Jeffrey Hill 1 1 1/1
Tanu Hari Dixit 1 1 1/1
Sambeet Panigrahi 1 1 1/1
Marçal Comajoan Cara 1 1 1/1
Martin Aberg 1 1 1/1
Ionut Vilsan 1 1 1/1
Gedare Bloom 6 6 6/6
Kinsey Moore 7 8 7/7
Jan Sommer 10 10 10/10
Heinz Junkes 1 1 1/1
Frank Kuehndel 9 9 9/9
Christian Mauderer 3 3 3/3
rmueller 1 1 1/1
Daniel Hellstrom 4 4 4/4
Ryan Long 91 94 91/91
GabrielMoyano 1 1 1/1
Till Straumann 1 1 1/1
Alex White 12 13 12/12
Harrison Gerber 5 5 5/5
kgardas 3 1 1/1
chenjin_zhong 5 5 5/5
ostyche 1 1 1/1
Alexandre Oliva 1 2 1/1
Adrian Varlan 1 1 1/1
Lucian-Raul Silistru 2 3 2/2
dsa93 1 1 1/1
Aaron N 3 4 3/3
jkillelea 1 1 1/1
Hesham Almatary 1 1 1/1
Daniel Páscoa 13 16 13/13
Jens Schweikhardt 0 0 0/0
Andrew Butterfield 1 1 1/1
Ning Yang 1 1 1/1
zhengxiaojun 0 0 0/0
Marcello Presulli 1 1 1/1
Marta Rybczynska 1 1 1/1
Matthew J Fletcher 1 1 1/1
Andrey Mozzhuhin 1 1 1/1

Version

Version Closed Total Progress
6 425 461 425/425
4.11 18 18 18/18
5 52 54 52/52
4.5 2 2 2/2
4.10 4 4 4/4
  28 32 28/28
4.9 1 1 1/1


RTEMS 6.1 Tickets


1318 - libcpu/shared is not helpful

Link https://devel.rtems.org/ticket/1318
Id 1318
Reporter Ralf Corsepius
Created 22 September 2008 13:36:04
Modified 9 November 2017 06:26:42
Owner Joel Sherrill
Type defect
Component bsps
Status closed
Resolution wontfix
Version 4.10
Milestone 6.1
Priority normal
Severity normal
Keywords  
Cc thomas.doerfler@…
Blocking  
Blocked by  

Description

IMO, libcpu/shared is not helpful

Either something is

  • cpu-specific, then it should go into cpukit/score/cpu,
  • general, then in should go into cpukit/
  • bsp-dependent, then it should go into libbsp.

I would strongly suggest to reconsider libcpu/shared.

Comment 1
  1. Joel Sherrill, Fri, 06 Aug 2010 21:32:22 GMT
  2. milestone: changed from 4.10 to 4.11

Moving to 4.11. Needs to be addressed but too much for a branch.

Comment 2
  1. Gedare Bloom, Fri, 11 Apr 2014 19:29:33 GMT
  2. milestone: changed from 4.11 to 4.12
Comment 3
  1. Chris Johns, Thu, 20 Nov 2014 03:31:07 GMT
  2. milestone: changed from 4.12 to 4.11
Comment 4
  1. Chris Johns, Thu, 20 Nov 2014 07:22:20 GMT
  2. description: modified (diff)
  3. milestone: changed from 4.11 to 5.0

This needs to be part of the source tree rearrangement.

Comment 5
  1. Sebastian Huber, Tue, 05 Jan 2016 12:09:59 GMT
  2. status: changed from new to closed
  3. resolution: set to wontfix
  4. description: modified (diff)

This directory contains only support code for the cache manager. I don't know a better place for these files. They cannot go into cpukit, since the cache manager is potentially BSP-dependent.

Comment 6
  1. Sebastian Huber, Thu, 09 Nov 2017 06:26:42 GMT
  2. milestone: changed from 5.0 to 6.1

Milestone renamed


1459 - Add rtems_shell_main_monitor to cpukit/libmisc/shell/shell.h?

Link https://devel.rtems.org/ticket/1459
Id 1459
Reporter Ralf Corsepius
Created 29 October 2009 06:18:16
Modified 29 November 2022 21:49:38
Owner Chris Johns
Type defect
Component shell
Status closed
Resolution fixed
Version 4.10
Milestone 6.1
Priority normal
Severity minor
Keywords  
Cc chrisj@… vattam.santosh@…
Blocking  
Blocked by  

Description

rtems_shell_main_monitor
is a private function of
cpukit/libmisc/shell/cmds.c

However, the way
testsuites/libtests/monitor02/init.c
uses it (as a public/exported function) to me reads as a strong indication that
rtems_shell_main_monitor()
should be "made public" by declaring/prototyping it in
cpukit/libmisc/shell/shell.h

Comment 1
  1. Santosh Vattam, Thu, 24 Dec 2009 22:07:08 GMT
  2. cc: Santosh Vattam added
Comment 2
  1. Joel Sherrill, Fri, 25 Dec 2009 14:29:03 GMT
  2. owner: changed from Joel Sherrill to Chris Johns
Comment 3
  1. Chris Johns, Sat, 15 May 2010 06:42:03 GMT
  2. status: changed from new to assigned
  3. milestone: changed from 4.10 to 4.11

Exporting this interface from the shell is a hack as well. The central issue is the purpose of the monitor now we have a shell. Should we consume the monitor into the shell and remove the duplicate code in RTEMS ? The monitor has stdin handling, terminal handling plus help formatting (which is much better than the shell's). I think these can all be merged into the shell and the monitor goes away.

I think this should be moved to the 4.11 milestone, which I have done, and we live with the current code for 4.10.

Once issue this raises is the pressure on the shell with all the files that are starting to appear in it. Maybe the monitor command remain in its directory.

Comment 4
  1. Joel Sherrill, Sun, 23 Nov 2014 17:37:06 GMT
  2. summary: changed from Add rtems_shell_main_monitor to cpukit/libmisc/shell/shell.h? to Make Monitor Commands first class citizens in shell,
  3. description: modified (diff)
  4. milestone: changed from 4.11 to 5.0

The monitor predates the shell. There is really no point in having two CLIs. The monitor commands are available in the shell but the integration is a hack. The monitor commands need to be made first class shell commands and the set for looking at objects enhanced to include more objects.

This may be a decent GSoC project.

Comment 5
  1. Sebastian Huber, Thu, 09 Nov 2017 06:26:42 GMT
  2. milestone: changed from 5.0 to 6.1

Milestone renamed

Comment 6
  1. Chris Johns, Tue, 29 Nov 2022 21:49:38 GMT
  2. status: changed from assigned to closed
  3. resolution: set to fixed
  4. description: modified (diff)

Fixed in 2011.


1593 - RTEMS Sequenced Initialization API

Link https://devel.rtems.org/ticket/1593
Id 1593
Reporter zhangwenjie
Created 27 June 2010 03:54:42
Modified 9 November 2017 06:26:42
Owner Joel Sherrill
Type enhancement
Component score
Status closed
Resolution wontfix
Version 4.11
Milestone 6.1
Priority normal
Severity normal
Keywords  
Cc chrisj@… sebastian.huber@… 157724595@…
Blocking  
Blocked by  

Description

This is a part of GSOC2010 project RTEMS Sequenced Initialization. The attachment is the implement of RTEMS Sequenced Initialization API. More details
are placed on the wiki ​http://www.rtems.com/wiki/index.php/RTEMSSequencedInitialization.

Attachments:

1 zhangwenjie, Mon, 28 Jun 2010 16:19:41 GMT
  attach: set to sequenced_initilization_api.patch
 
2 zhangwenjie, Sun, 04 Jul 2010 10:46:45 GMT
  attach: set to sequenced_initilization_api_and_test.patch
 
3 zhangwenjie, Tue, 06 Jul 2010 13:37:23 GMT
  attach: set to sequence_api_test.patch
 
4 zhangwenjie, Sun, 18 Jul 2010 15:20:49 GMT
  attach: set to rtems_sysinit_size_compare.patch
 
5 zhangwenjie, Wed, 21 Jul 2010 14:49:00 GMT
  attach: set to rtems_sysinit_size_compare_PR2.patch
 
6 zhangwenjie, Wed, 21 Jul 2010 14:52:13 GMT
  attach: set to sis_bsp.patch
 
7 zhangwenjie, Fri, 23 Jul 2010 14:52:26 GMT
  attach: set to rtems_sysinit_size_compare_new.patch
 
8 zhangwenjie, Fri, 23 Jul 2010 14:57:22 GMT
  attach: set to sis_bsp_v1.patch
 
9 zhangwenjie, Tue, 27 Jul 2010 14:10:56 GMT
  attach: set to sysinit_api.patch
 
10 zhangwenjie, Tue, 27 Jul 2010 14:12:09 GMT
  attach: set to sysinit_testcase.patch
 
11 zhangwenjie, Tue, 27 Jul 2010 14:13:37 GMT
  attach: set to sysinit_update_managers.patch
 
12 zhangwenjie, Tue, 27 Jul 2010 14:17:05 GMT
  attach: set to sysinit_testcase_v1.patch
 
13 zhangwenjie, Mon, 09 Aug 2010 15:39:10 GMT
  attach: set to sysinit_BSP.patch
 
14 zhangwenjie, Mon, 09 Aug 2010 15:40:09 GMT
  attach: set to sysinit_api_v1.patch
 
15 zhangwenjie, Mon, 09 Aug 2010 15:40:42 GMT
  attach: set to sysinit_update_managers_v1.patch
 
16 zhangwenjie, Mon, 09 Aug 2010 15:41:21 GMT
  attach: set to sysinit_testcase_v2.patch
 
Comment 1
  1. zhangwenjie, Fri, 23 Jul 2010 14:52:26 GMT
  2. attachments.isobsolete: changed from 0 to 1, 1, 1
Comment 2
  1. zhangwenjie, Fri, 23 Jul 2010 14:57:22 GMT
  2. attachments.isobsolete: changed from 0 to 1
Comment 3
  1. zhangwenjie, Tue, 27 Jul 2010 14:10:56 GMT
  2. attachments.isobsolete: changed from 0 to 1
Comment 4
  1. zhangwenjie, Tue, 27 Jul 2010 14:12:09 GMT
  2. attachments.isobsolete: changed from 0 to 1
Comment 5
  1. zhangwenjie, Tue, 27 Jul 2010 14:13:37 GMT
  2. attachments.isobsolete: changed from 0 to 1
Comment 6
  1. zhangwenjie, Tue, 27 Jul 2010 14:17:05 GMT
  2. attachments.isobsolete: changed from 0 to 1
Comment 7
  1. zhangwenjie, Mon, 09 Aug 2010 15:39:10 GMT
  2. attachments.isobsolete: changed from 0 to 1
Comment 8
  1. zhangwenjie, Mon, 09 Aug 2010 15:40:09 GMT
  2. attachments.isobsolete: changed from 0 to 1
Comment 9
  1. zhangwenjie, Mon, 09 Aug 2010 15:40:42 GMT
  2. attachments.isobsolete: changed from 0 to 1
Comment 10
  1. zhangwenjie, Mon, 09 Aug 2010 15:41:21 GMT
  2. attachments.isobsolete: changed from 0 to 1
Comment 11
  1. Sebastian Huber, Wed, 11 Aug 2010 13:43:31 GMT

It is possible to include files within the SECTIONS scope in linker command files. We can use this to reduce the amount of copy & paste inside the linker command files. Example:

.rodata : {

*(.rodata .rodata.* .gnu.linkonce.r.*) INCLUDE linkcmds_score_rodata

}

We can use this also for the "Special FreeBSD sysctl sections".

Comment 12
  1. Joel Sherrill, Sun, 23 Nov 2014 16:48:07 GMT
  2. type: changed from defect to enhancement
  3. description: modified (diff)
Comment 13
  1. Gedare Bloom, Mon, 24 Nov 2014 18:58:28 GMT
  2. version: changed from HEAD to 4.11

Replace Version=HEAD with Version=4.11 for the tickets with Milestone >= 4.11

Comment 14
  1. Sebastian Huber, Thu, 27 Nov 2014 13:06:45 GMT
  2. milestone: changed from 4.11 to 5.0
Comment 15
  1. Sebastian Huber, Mon, 15 Dec 2014 14:52:41 GMT
  2. description: modified (diff)
  3. milestone: changed from 4.11 to 5.0
Comment 16
  1. Sebastian Huber, Wed, 02 Sep 2015 12:52:44 GMT
  2. status: changed from new to closed
  3. resolution: set to wontfix

Obsoleted by #2408.

Comment 17
  1. Sebastian Huber, Thu, 09 Nov 2017 06:26:42 GMT
  2. milestone: changed from 5.0 to 6.1

Milestone renamed


1712 - Add LWIP Support to RTEMS

Link https://devel.rtems.org/ticket/1712
Id 1712
Reporter Joel Sherrill
Created 28 October 2010 15:14:22
Modified 16 December 2021 15:53:06
Owner Joel Sherrill
Type enhancement
Component network/legacy
Status closed
Resolution fixed
Version 4.11
Milestone 6.1
Priority normal
Severity minor
Keywords  
Cc ralf.corsepius@… thomas.doerfler@… chrisj@… sebastian.huber@…
Blocking  
Blocked by  

Description

This port was done by Marcello Presulli and has been in my inbox for a while. I think I have merged most of their BSP specific work but the lwip has been pending. They managed to run LWIP+SNMP and an application in something like 128K RAM

Here are some email fragments about it.

For now we have just finished to port the latest lwip-1.3.2 based on the latest rtems 4.9.4 version successfully including
a test_app for pings.
We have stressed the stack with ping floods (packetsize 1400 Bytes interval ~150ms) about 250.000 sequences or more without
packet losses and an average latency of 2ms.
Additional we have adopted a new bsp target for the mcf5225x platform.

To lwip now:

we integrated it directly via the autoconfigure/automake process under the
rtems cpukit/liblwip subtree and therefore it gets built with rtems
when u configure it with --enable-networking=lwip appropriately.
The driver on the other side we put it in libcpu/m68k/mcf5225x and it got
built in the library context of the librtemsbsp.a.
The driver has only 2 references on lwip headers ...

To the bsp:

The bsp we have adopted from mcf52223 and have created it as a own
bsp-target=mcf5225x also via the autoconfig/automake mechanism.
In the bsp itself i have modified the bsp_get_CPU_clock_speed() and some
improvements in the console driver and PIT2 timer interrupt.
The bsp_start() we have defined as weak symbol so we don't have to touch
the "empty" bsp_start() of rtems coz it's platform-circuit
specific you know.

Attachments:

1 Joel Sherrill, Thu, 28 Oct 2010 15:14:22 GMT
  attach: set to mcf5225x+lwip.zip
 
Comment 1
  1. Joel Sherrill, Thu, 28 Oct 2010 15:14:37 GMT
  2. cc: Sebastian Huber added
Comment 2
  1. Joel Sherrill, Thu, 28 Oct 2010 15:14:49 GMT
  2. cc: Chris Johns added
Comment 3
  1. Joel Sherrill, Thu, 28 Oct 2010 15:15:22 GMT
  2. cc: thomas.doerfler added
Comment 4
  1. Joel Sherrill, Thu, 28 Oct 2010 15:15:37 GMT
  2. cc: Ralf Corsepius added
Comment 5
  1. Ralf Corsepius, Tue, 02 Nov 2010 23:41:51 GMT

Replying to comment:8:

Sebastian, others,

I have had second thoughts about putting this in RTEMS. I agree that it would be better to submit the port to LWIP and let it live there.

IMO, this proposal is non-applicable, because a network stack's interactions are deeply woven with the OS.

Considering this, using an external networking stack introduces bootstrapping problems (== problems building rtems).

That said, to me, LWIP is a binary decision: Switch from BSD or LWIP rsp. to forget about it - I am very strongly leaning towards the latter and consider all proposal so far to be beyond reason.

Comment 6
  1. Gedare Bloom, Sat, 22 Nov 2014 14:28:21 GMT
  2. owner: changed from Eric Norum to Joel Sherrill
  3. status: changed from new to assigned
  4. version: changed from HEAD to 4.11
  5. description: modified (diff)
Comment 7
  1. Gedare Bloom, Sat, 22 Nov 2014 14:28:41 GMT
  2. status: changed from assigned to closed
  3. resolution: set to wontfix
Comment 8
  1. Gedare Bloom, Sat, 22 Nov 2014 14:29:10 GMT
  2. status: changed from closed to reopened
  3. resolution: wontfix deleted
  4. milestone: changed from 4.11 to 5.0
Comment 9
  1. Pavel Pisa, Sun, 20 Mar 2016 01:17:10 GMT

Some more LwIP pointers and ideas are expressed at next Wiki page

​https://devel.rtems.org/wiki/Packages/LWIP

Comment 10
  1. Sebastian Huber, Thu, 09 Nov 2017 06:26:42 GMT
  2. milestone: changed from 5.0 to 6.1

Milestone renamed

Comment 11
  1. Joel Sherrill, Thu, 16 Dec 2021 15:53:06 GMT
  2. status: changed from reopened to closed
  3. resolution: set to fixed
  4. description: modified (diff)

lwip is currently in its own repo and has better support. Closing.


1728 - Patch for RTEMS-BSP m68k/mcf5225x

Link https://devel.rtems.org/ticket/1728
Id 1728
Reporter Marcello Presulli
Created 22 December 2010 08:12:53
Modified 9 November 2017 06:26:42
Owner Joel Sherrill
Type enhancement
Component bsps
Status closed
Resolution invalid
Version 4.9
Milestone 6.1
Priority low
Severity normal
Keywords  
Cc  
Blocking  
Blocked by  

Description

This patch is based on a "clean" RTEMS 4.9.4 and offers some modifications/enhancements for the BSP.

  • Generic Exception Handler can be used instead of _uhoh
  • Flash Driver for the onboard flash including flash security
  • DMA initializations can be used to substitute the whole termios, so we saved
    alot of code/memory size
  • Bugfixes in fec for the lwip-port, the fec driver works now "optimized" with the lwip-port
  • RTC driver routines which configures the RTC clock and time
  • generic software trap handler capable of return values
  • Bugfix in "old" bsp with MASKALL_BIT when use RTEMS without console
  • bugfixes and extensions in bsp header file "mcf5225x.h"
  • generic dbg_printk() which prints debug outputs directly via a dma channel

I hope someone have the time to merge it into the CVS head, it shouldn't be
a real task i think.

Attachments:

1 Sebastian Huber, Tue, 28 Jun 2016 12:49:33 GMT
  attach: set to rtems-4.9.4_embed-it-part-0.patch.bz2
 
2 Sebastian Huber, Tue, 28 Jun 2016 12:49:45 GMT
  attach: set to rtems-4.9.4_embed-it-part-1.patch.bz2
 
Comment 1
  1. Marcello Presulli, Wed, 22 Dec 2010 08:12:53 GMT

This patch is based on a "clean" RTEMS 4.9.4 and offers some modifications/enhancements for the BSP.

Generic Exception Handler can be used instead of _uhoh Flash Driver for the onboard flash including flash security DMA initializations can be used to substitute the whole termios, so we saved alot of code/memory size Bugfixes in fec for the lwip-port, the fec driver works now "optimized" with the lwip-port RTC driver routines which configures the RTC clock and time generic software trap handler capable of return values Bugfix in "old" bsp with MASKALL_BIT when use RTEMS without console bugfixes and extensions in bsp header file "mcf5225x.h" generic dbg_printk() which prints debug outputs directly via a dma channel

I hope someone have the time to merge it into the CVS head, it shouldn't be a real task i think.

Comment 2
  1. Sebastian Huber, Thu, 18 Dec 2014 09:26:44 GMT
  2. priority: changed from normal to low
  3. severity: changed from minor to normal
  4. component: changed from patch - do not use to bsps
  5. description: modified (diff)
  6. milestone: changed from 4.11 to 5.0

Patch is missing.

Comment 3
  1. Amar Takhar, Fri, 19 Dec 2014 13:21:12 GMT

I looked in the Bugzilla DB and could not find a patch this is not a migration issue.

Comment 4
  1. Amar Takhar, Fri, 19 Dec 2014 13:22:56 GMT

Also:

: host aspmx.l.google.com[74.125.129.27] said: 550 5.2.1 The email account that you tried to reach is disabled. i1si14392786pdk.67 - gsmtp (in reply to RCPT TO command)

We should either close the ticket or find another way to contact the submitter.

Comment 5
  1. Amar Takhar, Fri, 19 Dec 2014 13:44:25 GMT
  2. status: changed from new to closed
  3. resolution: set to invalid

Closing as we cannot get ahold of the original submitter and do not have a patch. If anyone has a copy please attach it to the ticket.

Comment 6
  1. Sebastian Huber, Tue, 28 Jun 2016 12:50:13 GMT

Add patches received by mail for reference.

Comment 7
  1. Sebastian Huber, Thu, 09 Nov 2017 06:26:42 GMT
  2. milestone: changed from 5.0 to 6.1

Milestone renamed


1815 - _ISR_Nest_level should be protected with interrupts disabled in function _Watchdog_Insert

Link https://devel.rtems.org/ticket/1815
Id 1815
Reporter Helder Silva
Created 15 June 2011 15:20:17
Modified 9 November 2017 06:26:42
Owner Joel Sherrill
Type defect
Component score
Status closed
Resolution invalid
Version 4.11
Milestone 6.1
Priority normal
Severity normal
Keywords  
Cc  
Blocking  
Blocked by  

Description

_ISR_Nest_level should be protected with interrupts disabled in function
_Watchdog_Insert, because another interrupt can occur after _ISR_Nest_level is
saved, causing inconsistency in the global variable.

Comment 1
  1. Helder Silva, Thu, 16 Jun 2011 09:35:16 GMT

Yes, by swapping those 2 lines.

Comment 2
  1. Joel Sherrill, Mon, 24 Nov 2014 14:59:19 GMT
  2. description: modified (diff)

Was this fixed?

Comment 3
  1. Gedare Bloom, Mon, 24 Nov 2014 18:58:28 GMT
  2. version: changed from HEAD to 4.11

Replace Version=HEAD with Version=4.11 for the tickets with Milestone >= 4.11

Comment 4
  1. Sebastian Huber, Thu, 18 Dec 2014 10:11:08 GMT
  2. description: modified (diff)
  3. milestone: changed from 4.11 to 5.0

I am not sure what the problem is. Interrupts are nested, so the code looks all right to me.

For SMP we have to re-write the watchdog stuff anyway and the _Watchdog_Sync_level and _Watchdog_Sync_count will go away.

Comment 5
  1. Sebastian Huber, Tue, 05 Jan 2016 10:41:38 GMT
  2. status: changed from new to closed
  3. resolution: set to invalid

There is no problem in pre 4.11 versions, since interrupts are nested. Version 4.11 and later use a different watchdog handler implementation.

Comment 6
  1. Sebastian Huber, Thu, 09 Nov 2017 06:26:42 GMT
  2. milestone: changed from 5.0 to 6.1

Milestone renamed


1820 - sptests/sp36: Improper buildsystem integration

Link https://devel.rtems.org/ticket/1820
Id 1820
Reporter Ralf Corsepius
Created 20 June 2011 05:59:36
Modified 9 November 2017 06:26:42
Owner Joel Sherrill
Type defect
Component unspecified
Status closed
Resolution wontfix
Version 4.11
Milestone 6.1
Priority low
Severity normal
Keywords  
Cc  
Blocking  
Blocked by  

Description

sptests/sp36 is improperly integrated into the rtems buildsystem.

sp36 is missing from SUBDIRS in sptests/Makefile.am, but is referenced in sptests/configure.ac, as well as the code is present in sp36/

sp36/ either should be activated (== added to SUBDIRS) or be fully removed.

Comment 1
  1. Ralf Corsepius, Mon, 20 Jun 2011 05:59:36 GMT

sptests/sp36 is improperly integrated into the rtems buildsystem.

sp36 is missing from SUBDIRS in sptests/Makefile.am, but is referenced in sptests/configure.ac, as well as the code is present in sp36/

sp36/ either should be activated (== added to SUBDIRS) or be fully removed.

Comment 2
  1. Gedare Bloom, Mon, 24 Nov 2014 18:58:28 GMT
  2. version: changed from HEAD to 4.11

Replace Version=HEAD with Version=4.11 for the tickets with Milestone >= 4.11

Comment 3
  1. Sebastian Huber, Thu, 18 Dec 2014 10:15:27 GMT
  2. priority: changed from normal to low
  3. description: modified (diff)
  4. milestone: changed from 4.11 to 5.0
Comment 4
  1. Chris Johns, Mon, 14 Aug 2017 00:32:35 GMT
  2. status: changed from new to closed
  3. resolution: set to wontfix
Comment 5
  1. Sebastian Huber, Tue, 10 Oct 2017 06:46:55 GMT
  2. component: changed from testing to unspecified
Comment 6
  1. Sebastian Huber, Thu, 09 Nov 2017 06:26:42 GMT
  2. milestone: changed from 5.0 to 6.1

Milestone renamed


2000 - Re-add removed LINK_OBJS to MP tests

Link https://devel.rtems.org/ticket/2000
Id 2000
Reporter Marta Rybczynska
Created 6 January 2012 14:20:38
Modified 18 June 2021 08:39:30
Owner Ralf Corsepius
Type defect
Component build
Status closed
Resolution wontfix
Version  
Milestone 6.1
Priority low
Severity normal
Keywords  
Cc joel.sherrill@… fred@…
Blocking  
Blocked by  

Description

PR1589 commit:
2011-12-08 Joel Sherrill

PR 1589/build

  • base_mp/node1/Makefile.am, base_mp/node2/Makefile.am,
    base_sp/Makefile.am, capture/Makefile.am, cdtest/Makefile.am,
    fileio/Makefile.am, hello/Makefile.am, iostream/Makefile.am,
    loopback/Makefile.am, minimum/Makefile.am, nsecs/Makefile.am,
    paranoia/Makefile.am, pppd/Makefile.am, ticker/Makefile.am,
    unlimited/Makefile.am: Remove obsolete optional manager capability.

and
2011-12-08 Joel Sherrill

PR 1589/build

  • mp01/node1/Makefile.am, mp01/node2/Makefile.am,
    mp02/node1/Makefile.am, mp02/node2/Makefile.am,
    mp03/node1/Makefile.am, mp03/node2/Makefile.am,
    mp04/node1/Makefile.am, mp04/node2/Makefile.am,
    mp05/node1/Makefile.am, mp05/node2/Makefile.am,
    mp06/node1/Makefile.am, mp06/node2/Makefile.am,
    mp07/node1/Makefile.am, mp07/node2/Makefile.am,
    mp08/node1/Makefile.am, mp08/node2/Makefile.am,
    mp09/node1/Makefile.am, mp09/node2/Makefile.am,
    mp10/node1/Makefile.am, mp10/node2/Makefile.am,
    mp11/node1/Makefile.am, mp11/node2/Makefile.am,
    mp12/node1/Makefile.am, mp12/node2/Makefile.am,
    mp13/node1/Makefile.am, mp13/node2/Makefile.am,
    mp14/node1/Makefile.am, mp14/node2/Makefile.am: Remove obsolete
    optional manager capability.

remove LINK_OBJS from the MP tests. They do no compile anymore. This patch re-adds them.

Attachments:

1 Marta Rybczynska, Fri, 06 Jan 2012 14:20:38 GMT
  attach: set to build_patch.patch
 
Comment 1
  1. Marta Rybczynska, Fri, 06 Jan 2012 14:20:38 GMT

PR1589 commit: 2011-12-08 Joel Sherrill

PR 1589/build

base_mp/node1/Makefile.am, base_mp/node2/Makefile.am, base_sp/Makefile.am, capture/Makefile.am, cdtest/Makefile.am, fileio/Makefile.am, hello/Makefile.am, iostream/Makefile.am, loopback/Makefile.am, minimum/Makefile.am, nsecs/Makefile.am, paranoia/Makefile.am, pppd/Makefile.am, ticker/Makefile.am, unlimited/Makefile.am: Remove obsolete optional manager capability.

and 2011-12-08 Joel Sherrill

PR 1589/build

mp01/node1/Makefile.am, mp01/node2/Makefile.am, mp02/node1/Makefile.am, mp02/node2/Makefile.am, mp03/node1/Makefile.am, mp03/node2/Makefile.am, mp04/node1/Makefile.am, mp04/node2/Makefile.am, mp05/node1/Makefile.am, mp05/node2/Makefile.am, mp06/node1/Makefile.am, mp06/node2/Makefile.am, mp07/node1/Makefile.am, mp07/node2/Makefile.am, mp08/node1/Makefile.am, mp08/node2/Makefile.am, mp09/node1/Makefile.am, mp09/node2/Makefile.am, mp10/node1/Makefile.am, mp10/node2/Makefile.am, mp11/node1/Makefile.am, mp11/node2/Makefile.am, mp12/node1/Makefile.am, mp12/node2/Makefile.am, mp13/node1/Makefile.am, mp13/node2/Makefile.am, mp14/node1/Makefile.am, mp14/node2/Makefile.am: Remove obsolete optional manager capability.

remove LINK_OBJS from the MP tests. They do no compile anymore. This patch re-adds them.

Comment 2
  1. Marta Rybczynska, Fri, 06 Jan 2012 14:21:16 GMT
  2. cc: Joel Sherrill added
Comment 3
  1. Marta Rybczynska, Fri, 06 Jan 2012 14:21:54 GMT
  2. cc: frederic.brault@… added
Comment 4
  1. Gedare Bloom, Mon, 24 Nov 2014 18:58:28 GMT
  2. version: changed from HEAD to 4.11

Replace Version=HEAD with Version=4.11 for the tickets with Milestone >= 4.11

Comment 5
  1. Sebastian Huber, Thu, 18 Dec 2014 11:07:49 GMT
  2. priority: changed from normal to low
  3. description: modified (diff)
  4. milestone: changed from 4.11 to 5.0
Comment 6
  1. Chris Johns, Mon, 14 Aug 2017 00:35:16 GMT
  2. version: 4.11 deleted
  3. milestone: changed from 5.0 to Indefinite
Comment 7
  1. Sebastian Huber, Fri, 18 Jun 2021 08:39:30 GMT
  2. status: changed from new to closed
  3. resolution: set to wontfix
  4. milestone: changed from Indefinite to 6.1

Fixed by the new build system.


2071 - The object-file suffixes for default-bsp-post-link in leaf.cfg don't work with make-exe...

Link https://devel.rtems.org/ticket/2071
Id 2071
Reporter cynt6007
Created 21 June 2012 16:26:35
Modified 9 November 2017 06:26:42
Owner Ralf Corsepius
Type defect
Component build
Status closed
Resolution wontfix
Version 4.11
Milestone 6.1
Priority normal
Severity major
Keywords  
Cc  
Blocking  
Blocked by  

Description

Would it be proper to change the suffix of the input in default-bsp-post-link in rtems/make/leaf.cfg ?

Namely changing:

define default-bsp-post-link

  • $(NM) -g -n $@ > $(basename $@).num
  • $(SIZE) $@

endef

define default-bsp-post-link
+ $(NM) -g -n $@.o > $(basename $@).num
+ $(SIZE) $@.o
endef

I'm working on the application side of RTEMS (as opposed to the source), but here are the errors I encountered, what I did to find the problem, and the results.

I kept getting errors when I ran the BuildTests?.sh...

~/rtems-addon-packages/examples/openldap$
...
i386-rtems4.11-nm o-optimize/slapd-addel
i386-rtems4.11-nm: 'o-optimize/slapd-addel': No such file
...
~/rtems-addon-packages/examples/openldap$
...
i386-rtems4.11-size o-optimize/slapd-addel
i386-rtems4.11-size: 'o-optimize/slapd-addel': No such file

After looking at the Makefile it looks like they were called by: “make-exe”.

Doing

grep -r “make-exe” /opt

revealed “make-exe” is defined in /opt/rtems-4.11/make/leaf.cfg, which calls bsp-post-link, (which is exactly the stage of the build process giving errors).

According to man, nm and size work on object files. So, I changed the suffixes in /opt/rtems-4.11/make/leaf.cfg and the errors went away. After making the change, the following additional objects appeared in o-optimize:

*.bin and *.ralf, with an approximate size of 570,000. The sizes vary slightly...

If changing the suffixes in /opt/rtems-4.11/make/leaf.cfg makes sense, would it make sense to change them for rtems/make/leaf.cfg ? Also, there are other target.cfg's in the different bsp s that may have similar problems.

Thanks,
Cynthia Rempel

Comment 1
  1. cynt6007, Thu, 21 Jun 2012 16:26:35 GMT

Would it be proper to change the suffix of the input in default-bsp-post-link in rtems/make/leaf.cfg ?

Namely changing:

define default-bsp-post-link

$(NM) -g -n $@ > $(basename $@).num $(SIZE) $@

endef

define default-bsp-post-link + $(NM) -g -n $@.o > $(basename $@).num + $(SIZE) $@.o endef

I'm working on the application side of RTEMS (as opposed to the source), but here are the errors I encountered, what I did to find the problem, and the results.

I kept getting errors when I ran the BuildTests?.sh...

~/rtems-addon-packages/examples/openldap$ ... i386-rtems4.11-nm o-optimize/slapd-addel i386-rtems4.11-nm: 'o-optimize/slapd-addel': No such file ... ~/rtems-addon-packages/examples/openldap$ ... i386-rtems4.11-size o-optimize/slapd-addel i386-rtems4.11-size: 'o-optimize/slapd-addel': No such file

After looking at the Makefile it looks like they were called by: “make-exe”.

Doing

grep -r “make-exe” /opt

revealed “make-exe” is defined in /opt/rtems-4.11/make/leaf.cfg, which calls bsp-post-link, (which is exactly the stage of the build process giving errors).

According to man, nm and size work on object files. So, I changed the suffixes in /opt/rtems-4.11/make/leaf.cfg and the errors went away. After making the change, the following additional objects appeared in o-optimize:

*.bin and *.ralf, with an approximate size of 570,000. The sizes vary slightly...

If changing the suffixes in /opt/rtems-4.11/make/leaf.cfg makes sense, would it make sense to change them for rtems/make/leaf.cfg ? Also, there are other target.cfg's in the different bsp s that may have similar problems.

Thanks, Cynthia Rempel

Comment 2
  1. cynt6007, Thu, 21 Jun 2012 16:27:09 GMT
  2. severity: changed from normal to major
Comment 3
  1. Gedare Bloom, Mon, 24 Nov 2014 18:58:28 GMT
  2. version: changed from HEAD to 4.11

Replace Version=HEAD with Version=4.11 for the tickets with Milestone >= 4.11

Comment 4
  1. Sebastian Huber, Thu, 18 Dec 2014 11:14:45 GMT
  2. description: modified (diff)
  3. milestone: changed from 4.11 to 5.0
Comment 5
  1. Chris Johns, Sun, 13 Aug 2017 23:41:42 GMT
  2. status: changed from new to closed
  3. resolution: set to wontfix
Comment 6
  1. Sebastian Huber, Thu, 09 Nov 2017 06:26:42 GMT
  2. milestone: changed from 5.0 to 6.1

Milestone renamed


2111 - AVR needs avr-libc to compile RTEMS.

Link https://devel.rtems.org/ticket/2111
Id 2111
Reporter cynt6007
Created 3 April 2013 03:46:56
Modified 9 November 2017 06:26:42
Owner Joel Sherrill
Type defect
Component config
Status closed
Resolution  
Version 4.11
Milestone 6.1
Priority normal
Severity normal
Keywords  
Cc joel.sherrill@… ralf.corsepius@… gedare@…
Blocking  
Blocked by  

Description

The avr io.h header gives a warning that if not doing avr-libc, that if not heeded leads to many errors.

Need an avr-libc configuration file... should be a place-holding stub that states this is a problematic build.

Anyway, these are just some cans of worms... FYI

AVR has issues so deep it requires ~50 patches for binutils, ~60 patches for gcc, and has ~14 patches for avr-libc.

I suspect getting ONE functional AVR-RTEMS a major undertaking... I wonder if it might be worth exploring using ATMEL's prepatched toolchain for non-Ada builds... For Ada-builds, that's going to be another major undertaking...

Eric Weddington (at ATMEL) is recommending the use of their source for C, C++ builds... ​http://distribute.atmel.no/tools/opensource/Atmel-AVR-Toolchain-3.4.1/avr/

Although the Rolf Ebert (at AVR-Ada) have their own patch-set (using different tool versions) etc, which is making updating the AVR port so challenging... ​http://sourceforge.net/projects/avr-ada/files/avr-ada/Source%20Dist/

Their source-builder is located at:
avr-ada/tools/build/build-avr-ada.sh

Comment 1
  1. Ralf Corsepius, Thu, 04 Apr 2013 04:25:08 GMT
  2. cc: Ralf Corsepius added
Comment 2
  1. Gedare Bloom, Tue, 09 Apr 2013 16:21:34 GMT
  2. cc: Gedare Bloom added
Comment 3
  1. Joel Sherrill, Tue, 09 Apr 2013 17:13:00 GMT
  2. cc: Joel Sherrill added
Comment 4
  1. Joel Sherrill, Fri, 12 Apr 2013 23:16:03 GMT

Replying to comment:14:

... gcc won't build without a libc... (complains about 'limits.h') gcc-4.8.0 has an internal compiler error with avr-libc, and newlib is too big for AVR, so going back to gcc-4.7.2 with avr-libc... avr community maintains non-rtems targets, so using an avr target (as opposed to avr-rtems4.11)

This is OK. The avr GCC community needs to know this so they can decide what to do. Unfortunately as much as we would like all targets to upgrade in lockstep, it doesn't happen. We would need a more aggressive testing program to know this as early as possible and attempt to fix an issue. And we could still end up in this situation.

Comment 5
  1. Gedare Bloom, Sat, 22 Nov 2014 13:14:06 GMT
  2. component: changed from RTEMS Configuration to cpukit
  3. description: modified (diff)
  4. milestone: set to 5.0
Comment 6
  1. Gedare Bloom, Sat, 22 Nov 2014 13:14:56 GMT
  2. owner: changed from Chris Johns to Joel Sherrill
  3. status: changed from new to assigned
Comment 7
  1. Joel Sherrill, Sat, 22 Nov 2014 16:12:07 GMT
  2. status: changed from assigned to closed
  3. resolution: set to invalid
Comment 8
  1. Sebastian Huber, Thu, 09 Nov 2017 06:26:42 GMT
  2. milestone: changed from 5.0 to 6.1

Milestone renamed


2114 - statvfs for MS-DOS filesystem and 'df' coomand for shell

Link https://devel.rtems.org/ticket/2114
Id 2114
Reporter Andrey Mozzhuhin
Created 8 April 2013 19:17:41
Modified 9 November 2017 06:26:42
Owner Chris Johns
Type defect
Component fs
Status closed
Resolution invalid
Version 4.11
Milestone 6.1
Priority low
Severity normal
Keywords  
Cc sebastian.huber@…
Blocking  
Blocked by  

Description

I need statvfs for MS-DOS filesystem in my project. Share implementation and example shell command 'df' - like in GNU coreutils, but very simplified.

Attachments:

1 Andrey Mozzhuhin, Mon, 08 Apr 2013 19:17:41 GMT
  attach: set to msdos_statvfs.patch
 
Comment 1
  1. Sebastian Huber, Wed, 10 Apr 2013 14:22:45 GMT
  2. cc: Sebastian Huber added

Can you please add a proper license header to all new files. Please send patches to . It would be good to have a test case for the new feature. Please have a look at

​http://git.rtems.org/rtems/tree/testsuites/fstests/fsdosfssync01/init.c

for an example test.

Comment 2
  1. Gedare Bloom, Mon, 24 Nov 2014 18:58:28 GMT
  2. version: changed from HEAD to 4.11

Replace Version=HEAD with Version=4.11 for the tickets with Milestone >= 4.11

Comment 3
  1. Sebastian Huber, Thu, 18 Dec 2014 12:26:56 GMT
  2. priority: changed from normal to low
  3. milestone: changed from 4.11 to 5.0
Comment 4
  1. Chris Johns, Mon, 14 Aug 2017 00:40:48 GMT
  2. status: changed from new to closed
  3. resolution: set to invalid

No activity.

Comment 5
  1. Sebastian Huber, Thu, 09 Nov 2017 06:26:42 GMT
  2. milestone: changed from 5.0 to 6.1

Milestone renamed


2189 - Insufficient documentation for rtems_clock_get_tod()

Link https://devel.rtems.org/ticket/2189
Id 2189
Reporter Sebastian Huber
Created 16 September 2014 06:33:52
Modified 29 September 2021 13:23:52
Owner Needs Funding
Type defect
Component doc
Status closed
Resolution fixed
Version 4.11
Milestone 6.1
Priority highest
Severity normal
Keywords qualification
Cc chrisj@…
Blocking  
Blocked by  

Description

It is not clear which date and time is returned by rtems_clock_get_tod(). For example which time zone is used. Is there a relation to UTC?

Comment 1
  1. Chris Johns, Tue, 16 Sep 2014 07:29:53 GMT
  2. cc: Chris Johns added

The timezone is the one you used when you set the time with the set call. If the time is not set this function returns RTEMS_NOT_DEFINED. It is assumed you set a suitable time in the first place and know the specific context of use.

Comment 2
  1. Gedare Bloom, Fri, 19 Dec 2014 05:06:18 GMT
  2. priority: changed from normal to highest

Bump priority to highest for tickets with a fix attached or seemingly simple fix proposed in the description or comments.

Comment 3
  1. Gedare Bloom, Mon, 02 Mar 2015 20:42:45 GMT
  2. milestone: changed from 4.11 to 4.11.1

bump milestone

Comment 4
  1. Joel Sherrill, Tue, 20 Oct 2015 23:05:06 GMT

This ticket does not have a patch attached or an obvious (to me) fix. What is the fix proposed?

Comment 5
  1. Sebastian Huber, Wed, 21 Oct 2015 05:42:48 GMT

We need a more precise documentation of the time services. How are leap seconds handled for example? UNIX time vs. UTC.

Comment 6
  1. Sebastian Huber, Tue, 24 Nov 2015 09:34:59 GMT

The wall clock time services lack documentation in general. What is the relation between rtems_time_of_day and the UNIX time as specified by IEEE Std 1003.1, 2013 Edition, 4.15 Seconds Since the Epoch (​http://pubs.opengroup.org/onlinepubs/9699919799/). For example _TOD_To_seconds() does not use the expression in this standard document. This affects rtems_timer_fire_when().

Comment 7
  1. Joel Sherrill, Tue, 24 Nov 2015 16:22:54 GMT

Can you provide a specific link? That is to the top of the standard.

Comment 8
  1. Sebastian Huber, Wed, 25 Nov 2015 06:49:43 GMT

4.15 Seconds Since the Epoch

​http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html

See also

​http://www.madore.org/~david/computers/unix-leap-seconds.html

Comment 9
  1. Sebastian Huber, Thu, 26 Jan 2017 07:16:00 GMT
  2. milestone: changed from 4.11.1 to 4.11.2
Comment 10
  1. Sebastian Huber, Wed, 15 Feb 2017 13:37:51 GMT
  2. owner: changed from Joel Sherrill to Needs Funding
  3. status: changed from new to assigned
  4. milestone: changed from 4.11.2 to Indefinite
Comment 11
  1. Sebastian Huber, Fri, 18 Jun 2021 09:24:45 GMT
  2. keywords: qualification added
Comment 12
  1. Sebastian Huber, Wed, 29 Sep 2021 13:23:52 GMT
  2. status: changed from assigned to closed
  3. resolution: set to fixed
  4. milestone: changed from Indefinite to 6.1

Documentation was improved for RTEMS 6.


2215 - Duplicate code for TAR support

Link https://devel.rtems.org/ticket/2215
Id 2215
Reporter Sebastian Huber
Created 11 December 2014 07:21:49
Modified 9 November 2017 06:26:42
Owner  
Type defect
Component fs
Status closed
Resolution duplicate
Version 4.11
Milestone 6.1
Priority normal
Severity normal
Keywords  
Cc  
Blocking  
Blocked by  

Description

We have similar code in rtems_tarfs_load(), Untar_FromMemory() and Untar_FromFile(). These functions should instead use a common TAR archive iterator with specific visitor functions.

Comment 1
  1. Chris Johns, Sun, 15 May 2016 23:09:35 GMT
  2. status: changed from new to closed
  3. resolution: set to duplicate

Duplicate of #2415.

Comment 2
  1. Sebastian Huber, Thu, 09 Nov 2017 06:26:42 GMT
  2. milestone: changed from 5.0 to 6.1

Milestone renamed


2269 - x86 Context Switch Synchronization and SMP

Link https://devel.rtems.org/ticket/2269
Id 2269
Reporter Joel Sherrill
Created 13 February 2015 21:02:35
Modified 9 November 2017 06:26:42
Owner  
Type defect
Component score
Status closed
Resolution duplicate
Version 4.11
Milestone 6.1
Priority normal
Severity normal
Keywords  
Cc  
Blocking  
Blocked by  

Description

The x86 context switch code does not implement the "is executing" hand-off protocol used on the other ports. It should.

Comment 1
  1. Sebastian Huber, Fri, 13 Feb 2015 21:05:44 GMT
  2. status: changed from new to closed
  3. resolution: set to duplicate

​https://devel.rtems.org/ticket/2183

How can we set the duplicate like on Bugzilla?

Comment 2
  1. Sebastian Huber, Thu, 09 Nov 2017 06:26:42 GMT
  2. milestone: changed from 5.0 to 6.1

Milestone renamed


2301 - cpukit is built in BSP, and BSP custom, specific part of build tree but isnt built using BSP's spec file

Link https://devel.rtems.org/ticket/2301
Id 2301
Reporter Jeffrey Hill
Created 13 March 2015 01:23:20
Modified 18 June 2021 08:42:56
Owner Needs Funding
Type enhancement
Component build
Status closed
Resolution wontfix
Version 4.10
Milestone 6.1
Priority normal
Severity normal
Keywords cpukit multilib custom spec
Cc  
Blocking  
Blocked by  

Description

The nios2 soft-core processor is probably a bit of a different beast because it has many options when the FPGA programming is configured. It is probably therefore not a good context for the use of multilibs, although it is possible to enable them.

For the nios2 RTEMS automated system configuration I must interrogate the Altera sopcinfo file to properly specify some of the nios2 cpu instance specific compiler flags such as {-mhw-div, -mhw-mul, -mhw-mulx}.

An easy way to do this is to build some custom tools that need to run _only_on_the_host_ during the build. The source code for these BSP instance custom tools are easy to write if they include header files from the Altera generated HAL {system.h, linker.h}, when they are built. The Altera HAL needs to also be generated, but not installed, during the gnu build. It seems that this is the way that Altera intends for users to learn about system configuration based on how often their file formats evolve, and also based on lack of documentation for their sopcinfo file. Nevertheless, for many reasons we don't include Altera generated header files into any RTEMS BSP or cpukit source code.

Currently this approach is difficult to fully implement because I must finish the interrogation for the CPU flags during the gnu build system configure phase when CFLAGS_OPTIMIZE_V and CPU_FLAGS are fetched from the custom .cfg file, and so I am unable to build some custom tools that need to run _only_on_the_host_ during the build at that time.

However, during the preinstall phase it is easy to create a custom "bsp_specs_cpu" file like this.

*[cpuspecs]:
*[cpuspecs]: %(cpuspecs) -mhw-div
*[cpuspecs]: %(cpuspecs) -mhw-mul
*[cpuspecs]: %(cpuspecs) -mhw-mulx

Which could be used in "bsp_specs" like this.

%rename cc1 old_cc1
%rename cc1plus old_cc1plus
%rename lib old_lib
%rename endfile old_endfile
%rename startfile old_startfile
%rename link old_link

%include

*cc1:
%{!qrtems: %{old_cc1} } \
%{qrtems*: %{old_cc1} %{cpuspecs} }

*cc1plus:
%{!qrtems: %{old_cc1plus} } \
%{qrtems*: %{old_cc1plus} %{cpuspecs} }

*lib:
%{!qrtems: %(old_lib)} \
%{!nostdlib: %{qrtems: --start-group -lrtemsbsp -lrtemscpu -lc -lgcc --end-group \
%{!qnolinkcmds: -T linkcmds%s`

*startfile:
%{!qrtems: %(old_startfile)} \
%{!nostdlib: %{qrtems: start0.o%s start1.o%s crti.o%s \

crtbegin.o%s -e start -u exception_vector }}

*link:
%{!qrtems: %(old_link)} %{qrtems: -dc -dp -N}

*endfile:
%{!qrtems: %(old_endfile)} %{qrtems: crtend.o%s crtn.o%s}

This works very nicely excepting that the cpukit isn't built specifying a spec file and so it could use the wrong instructions when generating code. Therefore its tempting to modify the RTEMS build like this.

cpukit/aclocal/gcc-specs.m4 | 20 ++++++++++++++++++++
cpukit/aclocal/prog-cc.m4 | 8 ++++++++
cpukit/automake/compile.am | 5 +++++
3 files changed, 33 insertions(+)

diff --git a/cpukit/aclocal/gcc-specs.m4 b/cpukit/aclocal/gcc-specs.m4
new file mode 100644
index 0000000..dd49bb9
--- /dev/null
+++ b/cpukit/aclocal/gcc-specs.m4
@@ -0,0 +1,20 @@
+dnl
+dnl $Id$
+dnl
+dnl Check whether the target compiler accepts -specs
+dnl
+
+AC_DEFUN([RTEMS_GCC_SPECS],
+[AC_REQUIRE([RTEMS_PROG_CC])
+AC_CACHE_CHECK(whether $CC accepts -specs,rtems_cv_gcc_specs,
+[
+rtems_cv_gcc_specs=no
+if test x"$GCC" = x"yes"; then
+ touch confspec
+ echo 'void f(){}' >conftest.c
+ if test -z "${CC} -specs confspec -c conftest.c 2>&1";then
+ rtems_cv_gcc_specs=yes
+ fi
+fi
+rm -f confspec conftest*
+])])
diff --git a/cpukit/aclocal/prog-cc.m4 b/cpukit/aclocal/prog-cc.m4
index e8b27b5..8dae5de 100644
--- a/cpukit/aclocal/prog-cc.m4
+++ b/cpukit/aclocal/prog-cc.m4
@@ -27,6 +27,14 @@ dnl check if the target compiler may use --pipe

RTEMS_GCC_PIPE
test "$rtems_cv_gcc_pipe" = "yes" && CC="$CC --pipe"

+dnl check if the compiler supports --specs
+RTEMS_GCC_SPECS
+
+AS_IF([test x"$rtems_cv_gcc_specs" = xyes],[
+GCCSPECS="-B\$(PROJECT_ROOT)/lib/ -B\$(PROJECT_ROOT)/$RTEMS_BSP/lib/"
+GCCSPECS="${GCCSPECS} -specs bsp_specs -qrtems_cpukit"])
+AC_SUBST(GCCSPECS)
+

# Append warning flags if CFLAGS wasn't set.
AS_IF([test "$GCC" = yes && test "$rtems_cv_CFLAGS_set" != set],
[CFLAGS="$CFLAGS -Wall"])

diff --git a/cpukit/automake/compile.am b/cpukit/automake/compile.am
index 3d81426..0e43494 100644
--- a/cpukit/automake/compile.am
+++ b/cpukit/automake/compile.am
@@ -2,6 +2,11 @@

## $Id$
##

+CC = @CC@ $(GCCSPECS)
+CXX = @CXX@ $(GCCSPECS)
+CPP = @CPP@ $(GCCSPECS)
+CCAS = @CCAS@ $(GCCSPECS)
+

AM_CPPFLAGS = @RTEMS_CPPFLAGS@
AM_CFLAGS =
AM_CCASFLAGS = @RTEMS_CCASFLAGS@

I am thinking that hopefully this wont break any existing CPU architecture and or BSP because of several reasons.

1) Perhaps typical BSPs included in RTEMS are only modifying the way that executables are linked, and we probably don't create executables during the cpukit build.

2) Probably most of the spec files are noop implementation if qrtems isnt specified, and for the cpu kit I specify -qrtems_cpukit

3) I am specifying -qrtems_cpukit so its easy to write a spec file that does different things when it is and isnt a cpukit build. We could I suppose also define -qrtems_cpukit_multilib in that specific situation, if it were important to break that situation out.

In any case this is what I currently have implemented and I will need to look for plan B before I can merge my nios2 support if this type of change looks like a bad idea.

I am therefore writing to the relevant RTEMS wizards for some guidance.

Thanks for your consideration.

Comment 1
  1. Jeffrey Hill, Fri, 13 Mar 2015 01:38:00 GMT
  2. component: changed from Autoconf to build
Comment 2
  1. Sebastian Huber, Thu, 26 Jan 2017 07:16:00 GMT
  2. milestone: changed from 4.11.1 to 4.11.2
Comment 3
  1. Sebastian Huber, Wed, 15 Feb 2017 13:37:51 GMT
  2. owner: set to Needs Funding
  3. status: changed from new to assigned
  4. milestone: changed from 4.11.2 to Indefinite
Comment 4
  1. Sebastian Huber, Fri, 18 Jun 2021 08:42:56 GMT
  2. status: changed from assigned to closed
  3. resolution: set to wontfix
  4. milestone: changed from Indefinite to 6.1

BSP variants may be added in the new build system for each multilib.


2330 - nios2 missing atomics, fails to link C++

Link https://devel.rtems.org/ticket/2330
Id 2330
Reporter Joel Sherrill
Created 18 April 2015 15:19:25
Modified 18 June 2021 08:47:00
Owner Needs Funding
Type defect
Component unspecified
Status closed
Resolution fixed
Version 4.11
Milestone 6.1
Priority normal
Severity normal
Keywords  
Cc  
Blocking  
Blocked by  

Description

nios2-rtems4.11-g++ -B../../../../../nios2_iss/lib/ -specs bsp_specs -qrtems -mno-hw-mul -mno-hw-div -O0 -g -Wall -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs -mno-hw-mul -mno-hw-div -o cxx_iostream.exe init.o
/users/joel/rtems-4.11-work/tools/lib/gcc/nios2-rtems4.11/4.9.2/libstdc++.a(ios-inst.o): In function `atomic_add':
/users/joel/rtems-4.11-work/rtems-source-builder/rtems/build/nios2-rtems4.11-gcc-4.9.2-newlib-2.2.0.20150323-x86_64-linux-gnu-1/build/nios2-rtems4.11/libstdc++-v3/include/ext/atomicity.h:53: undefined reference to `sync_fetch_and_add_4'
/users/joel/rtems-4.11-work/rtems-source-builder/rtems/build/nios2-rtems4.11-gcc-4.9.2-newlib-2.2.0.20150323-x86_64-linux-gnu-1/build/nios2-rtems4.11/libstdc++-v3/include/ext/atomicity.h:53: undefined reference to `sync_fetch_and_add_4'
/users/joel/rtems-4.11-work/tools/lib/gcc/nios2-rtems4.11/4.9.2/libstdc++.a(ios_init.o): In function `exchange_and_add_dispatch':
/users/joel/rtems-4.11-work/rtems-source-builder/rtems/build/nios2-rtems4.11-gcc-4.9.2-newlib-2.2.0.20150323-x86_64-linux-gnu-1/build/nios2-rtems4.11/libstdc++-v3/include/ext/atomicity.h:49: undefined reference to `sync_fetch_and_add_4'
/users/joel/rtems-4.11-work/tools/lib/gcc/nios2-rtems4.11/4.9.2/libstdc++.a(ios_init.o): In function `atomic_add_dispatch':
/users/joel/rtems-4.11-work/rtems-source-builder/rtems/build/nios2-rtems4.11-gcc-4.9.2-newlib-2.2.0.20150323-x86_64-linux-gnu-1/build/nios2-rtems4.11/libstdc++-v3/include/ext/atomicity.h:53: undefined reference to `sync_fetch_and_add_4'
/users/joel/rtems-4.11-work/tools/lib/gcc/nios2-rtems4.11/4.9.2/libstdc++.a(ios_init.o): In function `exchange_and_add_dispatch':
/users/joel/rtems-4.11-work/rtems-source-builder/rtems/build/nios2-rtems4.11-gcc-4.9.2-newlib-2.2.0.20150323-x86_64-linux-gnu-1/build/nios2-rtems4.11/libstdc++-v3/include/ext/atomicity.h:49: undefined reference to `sync_fetch_and_add_4'
/users/joel/rtems-4.11-work/tools/lib/gcc/nios2-rtems4.11/4.9.2/libstdc++.a(locale-inst.o):/users/joel/rtems-4.11-work/rtems-source-builder/rtems/build/nios2-rtems4.11-gcc-4.9.2-newlib-2.2.0.20150323-x86_64-linux-gnu-1/build/nios2-rtems4.11/libstdc++-v3/include/ext/atomicity.h:49: more undefined references to `sync_fetch_and_add_4' follow

Comment 1
  1. Joel Sherrill, Mon, 14 Nov 2016 17:46:06 GMT

Still happens on

nios2-rtems4.12-gcc (GCC) 6.2.1 20161110 (RTEMS 4.12, RSB 5469a486e1b67532e20c48e154c7263c59047be4, Newlib 2.4.0.20161025)

This is the only target left with this issue. Help would be appreciated in resolving this.

Comment 2
  1. Sebastian Huber, Tue, 15 Nov 2016 06:36:42 GMT

From my point of view this is a GCC bug:

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

Comment 3
  1. Sebastian Huber, Fri, 18 Nov 2016 07:00:52 GMT

Problem fixed in GCC 7. I wait for a back port to GCC 6.

Comment 4
  1. Sebastian Huber, Thu, 26 Jan 2017 07:16:00 GMT
  2. milestone: changed from 4.11.1 to 4.11.2
Comment 5
  1. Sebastian Huber, Wed, 15 Feb 2017 13:37:51 GMT
  2. owner: set to Needs Funding
  3. status: changed from new to assigned
  4. milestone: changed from 4.11.2 to Indefinite
Comment 6
  1. Sebastian Huber, Fri, 18 Jun 2021 08:47:00 GMT
  2. status: changed from assigned to closed
  3. resolution: set to fixed
  4. milestone: changed from Indefinite to 6.1

2348 - Timecounter: Add NTP support

Link https://devel.rtems.org/ticket/2348
Id 2348
Reporter Sebastian Huber
Created 20 May 2015 06:30:47
Modified 31 October 2023 11:45:12
Owner  
Type enhancement
Component score
Status closed
Resolution fixed
Version 4.11
Milestone 6.1
Priority normal
Severity normal
Keywords qualification
Cc  
Blocking  
Blocked by  

Description

The FreeBSD timecounter implementation supports the NTP. This support is currently disabled in RTEMS.

Comment 1
  1. Chris Johns, Mon, 14 Aug 2017 00:08:25 GMT
  2. version: 4.11 deleted
  3. milestone: changed from 5.0 to Indefinite
Comment 2
  1. Chris Johns, Wed, 27 Oct 2021 00:47:22 GMT

There needs to be an interface in the score to provide access to ntp_update_second(). The call may not be present in the kernel sources, it will mostly likely be provided by an application or an external library such as libbsd.a.

I suggest a file is added to the score that contains ntp_update_second() and that function checks a function pointer and if set the function is called. This brings kern_tc.c closer to upstream FreeBSD sources.

While on the topic of kern_tc.c and being as close to FB as we can, I think the RTEMS doxygen comments should be removed. We should maintain a common policy for imported sources like this.

Comment 3
  1. Sebastian Huber, Wed, 27 Oct 2021 05:37:47 GMT

Good timing, I recently updated kern_tc.c to the latest FreeBSD version:

​https://git.rtems.org/sebh/rtems.git/log/?h=timecounter-2021

I just didn't send the patch set for review yet, since nobody commented on the new clock manager directives so far:

​https://lists.rtems.org/pipermail/devel/2021-October/069697.html

The kern_tc.c is quite close to the original FreeBSD code and the Doxygen comment block on top of the file is not an issue.

In this patch set I removed the NTP code block since nobody was interested in NTP support in the last 6 years:

​https://git.rtems.org/sebh/rtems.git/commit/?h=timecounter-2021&id=f85259b1edfff1d89c013c97510a9427825ea81b

This enabled a performance optimization here:

​https://git.rtems.org/sebh/rtems.git/commit/?h=timecounter-2021&id=04ed8d3c8cf88b7f1e3fb7ad78a91be1fefc396c

The performance optimization is important for targets with slow 64-bit divisions (which are most RTEMS targets). If you want to add NTP support, then we have to restructure the FreeBSD code a bit. This can be integrated in FreeBSD. I can do this it just depends on how urgent it is.

In a first approach the proposed callback makes sense. If someone using lwIP needs NTP support, then we can add kern_ntptime.c to RTEMS.

Comment 4
  1. Chris Johns, Wed, 27 Oct 2021 06:33:28 GMT

Replying to Sebastian Huber:

Good timing, I recently updated kern_tc.c to the latest FreeBSD version:

It does seem so. :)

​https://git.rtems.org/sebh/rtems.git/log/?h=timecounter-2021

I just didn't send the patch set for review yet, since nobody commented on the new clock manager directives so far:

I only suspected something was in the works because of the posts to FreeBSD hackers. It would be good to resolve the PTP support.

​https://lists.rtems.org/pipermail/devel/2021-October/069697.html

I saw this but I did not look closely. I did not know it was a request for a new feature. I will add it to my list so sorry about that.

The kern_tc.c is quite close to the original FreeBSD code and the Doxygen comment block on top of the file is not an issue.

Why the special exception here?

My focus for the leadership group, including you, is to set policies for this sort of thing and then having everyone accept and adhere to them. It is simpler and more democratic to do this. My concern is having a rule that creates an exceptions because it makes things complicated. I know this is a single file but there are other places where more code comes across and this is where things become confusing.

In this patch set I removed the NTP code block since nobody was interested in NTP support in the last 6 years:

​https://git.rtems.org/sebh/rtems.git/commit/?h=timecounter-2021&id=f85259b1edfff1d89c013c97510a9427825ea81b

It is needed. I have openly discuss this topic ...

​https://lists.rtems.org/pipermail/devel/2021-March/065608.html

The PTP changes for RTEMS have only just been posted upstream ..

​https://github.com/ptpd/ptpd/pull/85

Gabriel has done a fantastic job getting my hacks into a suitable state they would be pushed upstream.

This enabled a performance optimization here:

​https://git.rtems.org/sebh/rtems.git/commit/?h=timecounter-2021&id=04ed8d3c8cf88b7f1e3fb7ad78a91be1fefc396c

The performance optimization is important for targets with slow 64-bit divisions (which are most RTEMS targets). If you want to add NTP support, then we have to restructure the FreeBSD code a bit. This can be integrated in FreeBSD. I can do this it just depends on how urgent it is.

I have nothing to offer here and will happily be guided by you. I am sorry I have no time to spend looking at the detail.

In a first approach the proposed callback makes sense. If someone using lwIP needs NTP support, then we can add kern_ntptime.c to RTEMS.

The support being added is LibBSD so I am not sure where kern_ntptime.c is being added. Maybe Gabriel can be comment more on this.

Comment 5
  1. GabrielMoyano, Wed, 27 Oct 2021 12:03:51 GMT

kern_ntptime.c is ported from freebsd-org to freebsd in rtems-libbsd. The last commits of this branch ​https://github.com/GabrielDai/rtems-libbsd/tree/ptpd show the changes.

Regarding adding the function ntp_update_second() in score, do you know where the function pointer should be updated (to point to ntp_update_second() in kern_ntptime.c)?

Comment 6
  1. Sebastian Huber, Thu, 28 Oct 2021 05:25:49 GMT

Replying to Chris Johns:

Replying to Sebastian Huber:

The kern_tc.c is quite close to the original FreeBSD code and the Doxygen comment block on top of the file is not an issue.

Why the special exception here?

My focus for the leadership group, including you, is to set policies for this sort of thing and then having everyone accept and adhere to them. It is simpler and more democratic to do this. My concern is having a rule that creates an exceptions because it makes things complicated. I know this is a single file but there are other places where more code comes across and this is where things become confusing.

There is not just one rule involved here. The timekeeping is an important service of an operating system. It should be visible in the internal documentation (Doxygen). The file history shows that there is no issue with keeping it in synchronization with FreeBSD.

Comment 7
  1. Sebastian Huber, Thu, 28 Oct 2021 05:35:06 GMT

Replying to GabrielMoyano:

kern_ntptime.c is ported from freebsd-org to freebsd in rtems-libbsd. The last commits of this branch ​https://github.com/GabrielDai/rtems-libbsd/tree/ptpd show the changes.

Regarding adding the function ntp_update_second() in score, do you know where the function pointer should be updated (to point to ntp_update_second() in kern_ntptime.c)?

The callback for ntp_update_second() is currently not implemented. I would like to integrate my patch set which updates kern_tc.c to the latest FreeBSD version first. I would like to also try to rearrange the code a bit in the FreeBSD upstream. For libbsd my approach would be to add an internal API to #include which can be used to set the NTP callback in kern_ntptime.c.

Comment 8
  1. Chris Johns, Thu, 28 Oct 2021 07:47:23 GMT

Replying to Sebastian Huber:

Replying to Chris Johns:

Replying to Sebastian Huber:

The kern_tc.c is quite close to the original FreeBSD code and the Doxygen comment block on top of the file is not an issue.

Why the special exception here?

My focus for the leadership group, including you, is to set policies for this sort of thing and then having everyone accept and adhere to them. It is simpler and more democratic to do this. My concern is having a rule that creates an exceptions because it makes things complicated. I know this is a single file but there are other places where more code comes across and this is where things become confusing.

There is not just one rule involved here. The timekeeping is an important service of an operating system. It should be visible in the internal documentation (Doxygen). The file history shows that there is no issue with keeping it in synchronization with FreeBSD.

This is not about the history. The history of this file reflects the quality of the person currently doing the work and it is a very high standard. Expecting that standard everywhere is asking a lot. I think we need to document how we integrate external code and for that I was considering the following as the basis:

​https://git.rtems.org/rtems-libbsd/tree/CONTRIBUTING.md#n248

I would be interested to understand how this score file or files like it could be handled by a rule or rules? A rule in the ticket may not be clean and suitable documentation however it provides me with a means to show what we consider as OK if you could provide this.

Comment 9
  1. Sebastian Huber, Thu, 28 Oct 2021 09:17:20 GMT

Replying to Chris Johns:

Replying to Sebastian Huber:

Replying to Chris Johns:

Replying to Sebastian Huber:

The kern_tc.c is quite close to the original FreeBSD code and the Doxygen comment block on top of the file is not an issue.

Why the special exception here?

My focus for the leadership group, including you, is to set policies for this sort of thing and then having everyone accept and adhere to them. It is simpler and more democratic to do this. My concern is having a rule that creates an exceptions because it makes things complicated. I know this is a single file but there are other places where more code comes across and this is where things become confusing.

There is not just one rule involved here. The timekeeping is an important service of an operating system. It should be visible in the internal documentation (Doxygen). The file history shows that there is no issue with keeping it in synchronization with FreeBSD.

This is not about the history. The history of this file reflects the quality of the person currently doing the work and it is a very high standard. Expecting that standard everywhere is asking a lot. I think we need to document how we integrate external code and for that I was considering the following as the basis:

​https://git.rtems.org/rtems-libbsd/tree/CONTRIBUTING.md#n248

I would be interested to understand how this score file or files like it could be handled by a rule or rules? A rule in the ticket may not be clean and suitable documentation however it provides me with a means to show what we consider as OK if you could provide this.

The libbsd contributing rules make sense for libbsd which deals with a couple of hundred files and a semi-automatic synchronization support.

External files placed in the score should integrate into the score documentation and be maintainable. Here we need a bit more flexibility.

Comment 10
  1. Sebastian Huber, Thu, 28 Oct 2021 09:33:48 GMT

I updated the timecounter update branch to include support for an NTP update second handler:

​https://git.rtems.org/sebh/rtems.git/log/?h=timecounter-2021

​https://git.rtems.org/sebh/rtems.git/commit/?h=timecounter-2021&id=817437b6dda00764f368b2da9eeab67ec284a3bd

I wait for some feedback on the FreeBSD mailing list before I send the patch set for review.

Comment 11
  1. GabrielMoyano, Thu, 28 Oct 2021 11:29:14 GMT

Replying to Sebastian Huber:

I updated the timecounter update branch to include support for an NTP update second handler:

​https://git.rtems.org/sebh/rtems.git/log/?h=timecounter-2021

​https://git.rtems.org/sebh/rtems.git/commit/?h=timecounter-2021&id=817437b6dda00764f368b2da9eeab67ec284a3bd

This looks nice, thx. Now, I guess that one option is to call _Timecounter_Set_NTP_update_second() just before starting ptpd

I wait for some feedback on the FreeBSD mailing list before I send the patch set for review.

ok

Comment 12
  1. Chris Johns, Thu, 28 Oct 2021 22:57:18 GMT

Replying to Sebastian Huber:

Replying to Chris Johns:

Replying to Sebastian Huber:

Replying to Chris Johns:

Replying to Sebastian Huber:

The kern_tc.c is quite close to the original FreeBSD code and the Doxygen comment block on top of the file is not an issue.

Why the special exception here?

My focus for the leadership group, including you, is to set policies for this sort of thing and then having everyone accept and adhere to them. It is simpler and more democratic to do this. My concern is having a rule that creates an exceptions because it makes things complicated. I know this is a single file but there are other places where more code comes across and this is where things become confusing.

There is not just one rule involved here. The timekeeping is an important service of an operating system. It should be visible in the internal documentation (Doxygen). The file history shows that there is no issue with keeping it in synchronization with FreeBSD.

This is not about the history. The history of this file reflects the quality of the person currently doing the work and it is a very high standard. Expecting that standard everywhere is asking a lot. I think we need to document how we integrate external code and for that I was considering the following as the basis:

​https://git.rtems.org/rtems-libbsd/tree/CONTRIBUTING.md#n248

I would be interested to understand how this score file or files like it could be handled by a rule or rules? A rule in the ticket may not be clean and suitable documentation however it provides me with a means to show what we consider as OK if you could provide this.

The libbsd contributing rules make sense for libbsd which deals with a couple of hundred files and a semi-automatic synchronization support.

External files placed in the score should integrate into the score documentation and be maintainable. Here we need a bit more flexibility.

This makes sense. Should the documentation should be limited to a single block at the start of the file and else where in the file the LibBSD rules apply?

Comment 13
  1. Sebastian Huber, Mon, 15 Nov 2021 08:16:56 GMT

In ffb8833d/rtems:

score: Add _Timecounter_Set_NTP_update_second() Allow the installation of an NTP update second handler which may be used by an NTP service. Update #2348.
Comment 14
  1. Sebastian Huber, Mon, 15 Nov 2021 08:19:27 GMT

Replying to GabrielMoyano:

Replying to Sebastian Huber:

I updated the timecounter update branch to include support for an NTP update second handler:

​https://git.rtems.org/sebh/rtems.git/log/?h=timecounter-2021

​https://git.rtems.org/sebh/rtems.git/commit/?h=timecounter-2021&id=817437b6dda00764f368b2da9eeab67ec284a3bd

This looks nice, thx. Now, I guess that one option is to call _Timecounter_Set_NTP_update_second() just before starting ptpd

I wait for some feedback on the FreeBSD mailing list before I send the patch set for review.

ok

I checked in the patch set. The kern_tc.c is now fully synchronized with the latest FreeBSD version. You can now install an NTP update second handler via _Timecounter_Set_NTP_update_second() from #include .

Comment 15
  1. GabrielMoyano, Mon, 15 Nov 2021 10:56:37 GMT

I checked in the patch set. The kern_tc.c is now fully synchronized with the latest FreeBSD version. You can now install an NTP update second handler via _Timecounter_Set_NTP_update_second() from #include .

Thank you very much Sebastian. Are the changes portable to the branch 5? Our development is based on that branch and it will be very nice to have them there too

Comment 16
  1. Sebastian Huber, Mon, 15 Nov 2021 11:25:13 GMT
  2. version: set to 4.11
  3. milestone: changed from Indefinite to 6.1
Comment 17
  1. Sebastian Huber, Mon, 15 Nov 2021 11:27:10 GMT

Replying to GabrielMoyano:

I checked in the patch set. The kern_tc.c is now fully synchronized with the latest FreeBSD version. You can now install an NTP update second handler via _Timecounter_Set_NTP_update_second() from #include .

Thank you very much Sebastian. Are the changes portable to the branch 5? Our development is based on that branch and it will be very nice to have them there too

I think the patch set is back portable to RTEMS 5 without breaking the ABI/API. Just clone this ticket and set the mile stone to 5.2. Then try to back port all the changes or a subset and send it for review. I have no time to work on it.

Comment 18
  1. GabrielMoyano, Mon, 15 Nov 2021 11:40:42 GMT

I think the patch set is back portable to RTEMS 5 without breaking the ABI/API. Just clone this ticket and set the mile stone to 5.2. Then try to back port all the changes or a subset and send it for review. I have no time to work on it.

Thx. I'll do so. Here the ticket ​https://devel.rtems.org/ticket/4549#ticket

Comment 19
  1. Joel Sherrill, Fri, 17 Dec 2021 17:02:43 GMT

Is this ticket ready to close?

Comment 20
  1. Sebastian Huber, Mon, 21 Feb 2022 13:15:10 GMT

In 91057b3/rtems:

kern_ntptime.c: Import from FreeBSD The file was imported from this repository: ​https://github.com/freebsd/freebsd.git This commit was used: commit 3ec0dc367bff27c345ad83240625b2057af391b9 Author: Sebastian Huber Date: Mon Feb 7 14:16:16 2022 -0700
kern_ntptime.c: Remove ntp_init()
The ntp_init() function did set a couple of global objects to zero. These objects are in the .bss section and already initialized to zero during kernel or module loading.
Update #2348.
Comment 21
  1. Sebastian Huber, Mon, 21 Feb 2022 13:15:14 GMT

In 8f1e8f8f/rtems:

kern_ntptime.c: Port to RTEMS Remove previous adjtime() implementation. Update #2348.
Comment 22
  1. Sebastian Huber, Tue, 07 Jun 2022 06:54:14 GMT
  2. status: changed from new to closed
  3. resolution: set to fixed
Comment 23
  1. Sebastian Huber, Tue, 31 Oct 2023 11:45:12 GMT
  2. keywords: qualification added

2349 - Timecounter: Add PPS support

Link https://devel.rtems.org/ticket/2349
Id 2349
Reporter Sebastian Huber
Created 20 May 2015 06:33:02
Modified 31 October 2023 11:45:33
Owner Sebastian Huber <sebastian.huber@…>
Type enhancement
Component score
Status closed
Resolution fixed
Version  
Milestone 6.1
Priority normal
Severity normal
Keywords qualification
Cc  
Blocking  
Blocked by  

Description

The FreeBSD timecounter implementation supports the RFC 2783 PPS-API. This support is currently disabled in RTEMS.

Comment 1
  1. Chris Johns, Mon, 14 Aug 2017 00:08:39 GMT
  2. version: 4.11 deleted
  3. milestone: changed from 5.0 to Indefinite
Comment 2
  1. Sebastian Huber, Mon, 23 May 2022 07:02:19 GMT
  2. milestone: changed from Indefinite to 6.1
Comment 3
  1. Gabriel Moyano, Mon, 23 May 2022 07:04:29 GMT

In 9b4212c7/rtems:

kern_ntptime.c: Disable freebsd features Update #2349.
Comment 4
  1. Gabriel Moyano, Mon, 23 May 2022 07:04:31 GMT

In a3930e8c/rtems:

kern_ntptime.c: Add lmax() qmin() definitions Update #2349.
Comment 5
  1. Gabriel Moyano, Mon, 23 May 2022 07:04:34 GMT

In bf61753a/rtems:

kern_tc.c: Add atomic dependencies required by the PPS API Update #2349.
Comment 6
  1. Gabriel Moyano, Mon, 23 May 2022 07:04:36 GMT

In 95c747d9/rtems:

kern_tc.c: Replace FreeBSD event mechanism by adding pointers to function Update #2349.
Comment 7
  1. Gabriel Moyano, Mon, 23 May 2022 07:04:39 GMT

In ac4ea53/rtems:

score: Rename tc_getfrequency() Rename tc_getfrequency() to _Timecounter_Get_frequency(). Update #2349.
Comment 8
  1. Gabriel Moyano, Mon, 23 May 2022 07:04:41 GMT

In c34d3ae/rtems:

kern_tc.c: Add definitions required by PPS API Update #2349.
Comment 9
  1. Gabriel Moyano, Mon, 23 May 2022 07:04:43 GMT

In 13513b81/rtems:

kern_tc.c: Enable PPS API support Update #2349.
Comment 10
  1. Gabriel Moyano, Mon, 23 May 2022 07:04:45 GMT

In b304603b/rtems:

kern_ntptime.c: Add define in order to remove warning Update #2349.
Comment 11
  1. Gabriel Moyano, Mon, 23 May 2022 07:04:48 GMT

In b3e4f58/rtems:

timepps.h: PPS_SYNC defined by default Update #2349.
Comment 12
  1. Gabriel Moyano, Mon, 23 May 2022 07:04:50 GMT

In 5ccf960/rtems:

timecounter.h: Add _Timecounter_Discipline() Update #2349.
Comment 13
  1. Gabriel Moyano, Mon, 23 May 2022 07:04:52 GMT

In 6553bf4/rtems:

testsuites/sptests: Add sppps01 test Update #2349.
Comment 14
  1. Sebastian Huber, Mon, 23 May 2022 07:04:54 GMT
  2. owner: set to Sebastian Huber <sebastian.huber@…>
  3. status: changed from new to closed
  4. resolution: set to fixed

In 495f836/rtems:

score: Reformat for code coverage Close #2349.
Comment 15
  1. Sebastian Huber, Fri, 27 May 2022 09:25:53 GMT

In 044e8b6/rtems:

score: Fix pps_fetch() Return early only if there was a timeout, otherwise return the PPS info. Update #2349.
Comment 16
  1. Gabriel Moyano, Fri, 27 May 2022 11:37:42 GMT

In 34ba0e5a/rtems:

sppps01: Improve default handler test Update #2349.
Comment 17
  1. Gabriel Moyano, Fri, 10 Jun 2022 09:06:14 GMT

In 11621c9c/rtems:

kern_tc.c: Update pps_event() for uniprocessor configurations Since pps->capgen equal to zero is not a special value in uniprocessor configurations, there is no need to check for this condition. Update #2349
Comment 18
  1. Sebastian Huber, Thu, 23 Jun 2022 07:42:35 GMT

In 94df3a7a/rtems:

kern_tc.c: Provide a weak hardpps() implementation The real implementation of hardpps() is defined in kern_ntptime.c. Use it only if the NTP support is needed by the application. Update #2349.
Comment 19
  1. Gabriel Moyano, Tue, 05 Jul 2022 13:10:33 GMT

In eefaf068/rtems:

sppps01: Add test case for early returns of pps_event() Update #2349.
Comment 20
  1. Sebastian Huber, Wed, 13 Jul 2022 13:58:58 GMT

In 013e028/rtems:

sppps01: Fix test in SMP configurations Update #2349.
Comment 21
  1. Sebastian Huber, Tue, 31 Oct 2023 11:45:33 GMT
  2. keywords: qualification added

2365 - Task pre-emption disable is broken due to pseudo ISR tasks

Link https://devel.rtems.org/ticket/2365
Id 2365
Reporter Sebastian Huber
Created 11 June 2015 13:18:57
Modified 26 July 2022 09:25:19
Owner Sebastian Huber
Type defect
Component score
Status closed
Resolution fixed
Version 4.10
Milestone 6.1
Priority lowest
Severity critical
Keywords qualification
Cc  
Blocking  
Blocked by  

Description

We have for example:

Scheduler_Void_or_thread _Scheduler_priority_Unblock (
const Scheduler_Control *scheduler,
Thread_Control *the_thread
)
{
Scheduler_priority_Context *context =
_Scheduler_priority_Get_context( scheduler );
Scheduler_priority_Node *node = _Scheduler_priority_Thread_get_node( the_thread );
_Scheduler_priority_Ready_queue_enqueue(
&the_thread->Object.Node,
&node->Ready_queue,
&context->Bit_map
);
/* TODO: flash critical section? */
/*
* If the thread that was unblocked is more important than the heir,
* then we have a new heir. This may or may not result in a
* context switch.
*
* Normal case:
* If the current thread is preemptible, then we need to do
* a context switch.
* Pseudo-ISR case:
* Even if the thread isn't preemptible, if the new heir is
* a pseudo-ISR system task, we need to do a context switch.
*/
if ( the_thread->current_priority < _Thread_Heir->current_priority ) {
_Scheduler_Update_heir(
the_thread,
the_thread->current_priority == PRIORITY_PSEUDO_ISR
);
}
SCHEDULER_RETURN_VOID_OR_NULL;
}

So the unblock event of a pseudo ISR task (MPCI or timer server) may pre-empt a task with disabled pre-emption. Suppose a higher priority task than the non-preemptible task is ready. Then this task gets scheduled once the pseudo ISR task blocks again.

Comment 1
  1. Sebastian Huber, Fri, 12 Jun 2015 12:00:01 GMT

In 0562060f074eea3fdcf5274aa3b7cbc8fe14993d/rtems:

sptests/sptasknopreempt01: New test Update #2365.
Comment 2
  1. Sebastian Huber, Fri, 12 Jun 2015 12:12:15 GMT
  2. description: modified (diff)
Comment 3
  1. Sebastian Huber, Thu, 26 Jan 2017 07:16:00 GMT
  2. milestone: changed from 4.11.1 to 4.11.2
Comment 4
  1. Sebastian Huber, Wed, 15 Feb 2017 13:44:44 GMT
  2. owner: set to Needs Funding
  3. status: changed from new to assigned
  4. milestone: changed from 4.11.2 to Indefinite
Comment 5
  1. Sebastian Huber, Fri, 15 Jul 2022 08:39:46 GMT
  2. owner: changed from Needs Funding to Sebastian Huber
  3. status: changed from assigned to accepted
  4. milestone: changed from Indefinite to 6.1
Comment 6
  1. Sebastian Huber, Tue, 26 Jul 2022 09:18:04 GMT

In f1eb94b/rtems-docs:

c-user: Do not mention pseudo-interrupt priority Update #2365.
Comment 7
  1. Sebastian Huber, Tue, 26 Jul 2022 09:23:16 GMT
  2. status: changed from accepted to closed
  3. resolution: set to fixed

In 7fe6d60/rtems:

score: Remove PRIORITY_PSEUDO_ISR thread priority The uniprocessor schedulers had some special case logic for the PRIORITY_PSEUDO_ISR priority. Tasks with a priority of PRIORITY_PSEUDO_ISR were allowed to preempt a not preemptible task. If other higher priority task are made ready while a PRIORITY_PSEUDO_ISR task preempts a not preemptible task, then the other tasks run before the not preemptible task. This made the RTEMS_NO_PREEMPT mode ineffective. Remove the PRIORITY_PSEUDO_ISR special case logic. This simplifies the uniprocessor schedulers. Move the uniprocessor-specific scheduler support to the new header file . Close #2365.
Comment 8
  1. Sebastian Huber, Tue, 26 Jul 2022 09:25:19 GMT
  2. keywords: qualification added

2778 - Error building RTEMS Source Builder recipe for libxml

Link https://devel.rtems.org/ticket/2778
Id 2778
Reporter Sambeet Panigrahi
Created 18 August 2016 06:48:24
Modified 29 November 2022 21:50:55
Owner Chris Johns
Type enhancement
Component unspecified
Status closed
Resolution worksforme
Version 6
Milestone 6.1
Priority normal
Severity normal
Keywords RTEMS Source Builder, libxml
Cc Sambeet Panigrahi
Blocking  
Blocked by  

Description

I wrote the three essential files for cross build of libxml for RTEMS, i.e. the .bset file (libxml.bset), the version specific configuration file (libxml2-2.7.8.cfg) and the build configuration file (libxml2-2.7.8.cfg).As per the FreeBSD ports I have placed it under textproc.However when the build configuration script is run, an error "config file is not found" occurs. I tried to cd into the directory by providing a bash script but that is also not working,an error "can't cd to .." appears.

Attachments:

1 Sambeet Panigrahi, Thu, 18 Aug 2016 06:53:05 GMT
  attach: set to libxml2-2.7.8.cfg
 
2 Sambeet Panigrahi, Sat, 20 Aug 2016 07:55:37 GMT
  attach: set to 0001-Adding-libxml-package.patch
 
3 Sambeet Panigrahi, Sat, 20 Aug 2016 07:56:23 GMT
  attach: set to 0002-Changes-for-libxml.bset.patch
 
4 Sambeet Panigrahi, Sat, 20 Aug 2016 07:57:31 GMT
  attach: set to 0003-changes-to-resolve-config-file-not-found-error.patch
 
5 Sambeet Panigrahi, Sat, 20 Aug 2016 07:58:36 GMT
  attach: set to 0004-Added-the-.cfg-file.patch
 
6 Sambeet Panigrahi, Sat, 20 Aug 2016 08:04:44 GMT
  attach: set to rsb-report-libxml2-2.7.8-2.txt
 
Comment 1
  1. Sambeet Panigrahi, Sat, 20 Aug 2016 08:12:31 GMT
  2. owner: changed from Gedare Bloom to Chris Johns
  3. status: changed from new to assigned
  4. version: changed from 4.11 to 4.12
  5. milestone: changed from 4.11.1 to 4.12

There are a few more attachments for clarity.I have added the patches for the build set to reproduce my problem and a copy of the error report when I give the command

sambeet@Holmes ~/Documents/GitRepos?/sambeet161616/rtems-source-builder/rtems $ ../source-builder/sb-set-builder --log=log_libxml_log --prefix=$HOME/NewRockPort/x86/Install/rtems/4.11.0-rc3/ --target=i386-rtems4.11 --with-rtems-bsp=pc486 textproc/libxml

Comment 2
  1. Sebastian Huber, Thu, 11 May 2017 07:31:02 GMT
  2. milestone: changed from 4.12 to 4.12.0
Comment 3
  1. Sebastian Huber, Thu, 09 Nov 2017 06:27:14 GMT
  2. milestone: changed from 4.12.0 to 5.1

Milestone renamed

Comment 4
  1. Joel Sherrill, Sun, 14 Oct 2018 00:43:39 GMT
  2. version: changed from 5 to 6
  3. milestone: changed from 5.1 to 6.1

Pushing milestone but would prefer if someone could look into this and fix it.

Comment 5
  1. Chris Johns, Tue, 29 Nov 2022 21:50:55 GMT
  2. status: changed from assigned to closed
  3. resolution: set to worksforme

If this is still broken please reopen.


2828 - Remove libmisc/serdbg

Link https://devel.rtems.org/ticket/2828
Id 2828
Reporter Joel Sherrill
Created 30 November 2016 21:45:43
Modified 10 February 2023 13:38:24
Owner Needs Funding
Type defect
Component lib
Status closed
Resolution fixed
Version 6
Milestone 6.1
Priority normal
Severity normal
Keywords  
Cc thomas.doerfler Sebastian Huber
Blocking  
Blocked by  

Description

This is old code which should be replaced by the new debug server. Any hints or reusable in this for termios/serial port support can be retrieved from an old branch.

Comment 1
  1. Sebastian Huber, Wed, 15 Feb 2017 14:20:42 GMT
  2. owner: set to Needs Funding
  3. status: changed from new to assigned
  4. milestone: changed from 4.12 to Indefinite
Comment 2
  1. Joel Sherrill, Tue, 10 Jan 2023 15:04:57 GMT
  2. cc: thomas.doerfler Sebastian Huber added
  3. version: changed from 5 to 6
  4. component: changed from score to lib
  5. milestone: changed from Indefinite to 6.1

This ticket is simple to implement but another person needs to confirm that it is time to remove the libmisc/serdbg code (​https://git.rtems.org/rtems/tree/cpukit/libmisc/serdbg)

Comment 3
  1. Joel Sherrill, Fri, 10 Feb 2023 13:38:24 GMT
  2. status: changed from assigned to closed
  3. resolution: set to fixed

In 77e7bd9/rtems:

libmisc/serdbg: Remove obsolete serial debug Closes #2828.

2869 - Remove support for 16-bit object identifiers

Link https://devel.rtems.org/ticket/2869
Id 2869
Reporter Sebastian Huber
Created 17 January 2017 13:04:40
Modified 26 January 2022 13:49:37
Owner  
Type enhancement
Component score
Status closed
Resolution fixed
Version  
Milestone 6.1
Priority normal
Severity normal
Keywords  
Cc  
Blocking  
Blocked by  

Description

The only target using 16-bit object identifiers is M32C. This optimization is not worth the trouble. Self-contained objects are much more attractive for low end systems.

Comment 1
  1. Sebastian Huber, Thu, 09 Nov 2017 06:26:42 GMT
  2. milestone: changed from 5.0 to 6.1

Milestone renamed

Comment 2
  1. Joel Sherrill, Fri, 17 Dec 2021 16:56:58 GMT

This has been implemented. Closing.

Comment 3
  1. Sebastian Huber, Wed, 26 Jan 2022 13:49:37 GMT
  2. status: changed from new to closed
  3. resolution: set to fixed

2871 - Use bibtex references thoughout the documentation

Link https://devel.rtems.org/ticket/2871
Id 2871
Reporter Sebastian Huber
Created 18 January 2017 10:25:55
Modified 25 October 2022 22:22:37
Owner  
Type defect
Component doc
Status closed
Resolution fixed
Version  
Milestone 6.1
Priority normal
Severity normal
Keywords  
Cc  
Blocking  
Blocked by  

Description

Comment 1
  1. Sebastian Huber, Tue, 10 Oct 2017 06:06:29 GMT
  2. component: changed from Documentation to doc
Comment 2
  1. Sebastian Huber, Thu, 09 Nov 2017 06:26:42 GMT
  2. milestone: changed from 5.0 to 6.1

Milestone renamed

Comment 3
  1. Joel Sherrill, Fri, 17 Dec 2021 17:00:38 GMT

Has this been done? We don't have that may references.

Comment 4
  1. Joel Sherrill, Tue, 25 Oct 2022 22:22:37 GMT
  2. status: changed from new to closed
  3. resolution: set to fixed

Classic API Guide has a generated references section now


2872 - Get rid of CONFIGURE_MAXIMUM_PTYS

Link https://devel.rtems.org/ticket/2872
Id 2872
Reporter Sebastian Huber
Created 19 January 2017 12:07:26
Modified 17 December 2021 16:57:43
Owner  
Type enhancement
Component score
Status closed
Resolution fixed
Version  
Milestone 6.1
Priority normal
Severity normal
Keywords  
Cc  
Blocking  
Blocked by  

Description

Change the Termios PTY driver for Telnet to use the new Termios device API. This why the CONFIGURE_MAXIMUM_PTYS gets superfluous.

Comment 1
  1. Chris Johns, Thu, 19 Jan 2017 22:45:33 GMT

Should the pty support the separated to allow reuse?

I am porting tinyssh can could use it.

Comment 2
  1. Sebastian Huber, Fri, 20 Jan 2017 09:21:40 GMT

The current PTY driver is a collection of hacks. It would be certainly good to overhaul it and make it generally useful.

Comment 3
  1. Sebastian Huber, Thu, 09 Nov 2017 06:26:42 GMT
  2. milestone: changed from 5.0 to 6.1

Milestone renamed

Comment 4
  1. Joel Sherrill, Fri, 17 Dec 2021 16:57:43 GMT
  2. status: changed from new to closed
  3. resolution: set to fixed

This has been implemented.


2902 - Port RTEMS to Microblaze

Link https://devel.rtems.org/ticket/2902
Id 2902
Reporter Tanu Hari Dixit
Created 6 February 2017 02:59:16
Modified 11 November 2021 17:54:41
Owner Joel Sherrill
Type project
Component bsps
Status closed
Resolution fixed
Version  
Milestone 6.1
Priority normal
Severity normal
Keywords SoC, BSP
Cc  
Blocking  
Blocked by  

Description

Port RTEMS to Microblaze

__Students:__ Past, Present, and Potential Students

__Status:__ The tools build from RSB properly, but GDB is not compatible with current XDM (Xilinx Debugging Module), Xilinx GDB version is working fine.

__Introduction:__ A new architecture port, not just BSP. Include a BSP for GDB simulator. Also needs BSP for more complete HW on simulator.

__Goal:__ Update the preliminary Microblaze port, complete clock timer support, merge into RTEMS, and continue to improve the BSP/port.

Some work has been initiated here [1] (By Joel Sherrill and Hesham ALMatary) to get hello world working. It has been tested on Atlys FPGA board [2]. The BSP can run virtually on every FPGA board the Xilinx tools support building MicroBlaze? on.

The work will need to be updated against the current RTEMS version and tools and then completed. There are multiple boards supported by qemu-system-microblaze. One of these should be suitable for completing the port including interrupts. It will require investigation to know if qemu includes networking support for the Microblaze but this is likely.

References
  • [1] ​https://github.com/heshamelmatary/rtems-microblaze
  • [2] www.digilentinc.com/atlys/
Comment 1
  1. Chris Johns, Mon, 06 Feb 2017 04:02:32 GMT
  2. type: changed from enhancement to project
Comment 2
  1. Gedare Bloom, Thu, 02 Mar 2017 20:45:40 GMT
  2. keywords: BSP added
Comment 3
  1. Chris Johns, Mon, 14 Aug 2017 00:04:23 GMT
  2. version: 4.11 deleted
Comment 4
  1. Gedare Bloom, Tue, 14 Jan 2020 20:53:20 GMT
  2. description: modified (diff)
Comment 5
  1. Joel Sherrill, Fri, 29 May 2020 12:58:33 GMT
  2. description: modified (diff)
Comment 6
  1. Joel Sherrill, Thu, 11 Nov 2021 17:54:41 GMT
  2. status: changed from new to closed
  3. resolution: set to fixed
  4. milestone: changed from Indefinite to 6.1

A Microblaze port and BSP for the KCU105 (HW and Qemu) have been merged. LWIP and libbsd should be supported soon. Closing.


2971 - Add fenv.h to newlib

Link https://devel.rtems.org/ticket/2971
Id 2971
Reporter Joel Sherrill
Created 3 April 2017 23:54:19
Modified 3 December 2021 20:16:07
Owner Needs Funding
Type defect
Component unspecified
Status closed
Resolution fixed
Version  
Milestone 6.1
Priority normal
Severity normal
Keywords POSIX-Compliance
Cc  
Blocking  
Blocked by  

Description

fenv.h is not present.

  • ​http://pubs.opengroup.org/onlinepubs/9699919799/
  • feclearexcept, fegetenv, fegetexceptflag, fegetround, feholdexcept, feraiseexcept, fesetenv, fesetexceptflag, fesetround, fetestexcept, feupdateenv
  • Cygwin has x86 implementation. FreeBSD should be source for ARM and some other architectures. The implementation is architecture specific.

When completed, see psxtests/Makefile.am and enable the fenv.h POSIX API Compliance Tests.

Comment 1
  1. Joel Sherrill, Mon, 03 Apr 2017 23:54:51 GMT
  2. keywords: POSIX-Compliance added
Comment 2
  1. Joel Sherrill, Fri, 16 Mar 2018 18:37:28 GMT
  2. summary: changed from Add fenv,h to newlib to Add fenv.h to newlib
Comment 3
  1. Joel Sherrill, Thu, 06 Dec 2018 15:34:17 GMT
  2. owner: set to Needs Funding
  3. status: changed from new to assigned
  4. version: 5 deleted
  5. description: modified (diff)
Comment 4
  1. ABR290B, Thu, 06 Dec 2018 15:34:31 GMT

In da262164/rtems:

POSIX Signature Test for fenv.h (GCI 2018) Updates #2971.
Comment 5
  1. Eshan dhawan, Sat, 06 Jun 2020 20:36:54 GMT

In e845873/rtems:

tests for fenv.h functions added tests for fesetexeptflag(), fegetexeptflag(), fegetround(), fesetround(). In the test fegetround() does not return any flag other then FE_TONEAREST in tests. This is probably due to soft float. The test complies successfully and returns assert at fegetround() Other tests run without any errors tested on RISCV/rv32imac The test prints nothing if runs successfully. updates #2971 Signed-off-by: Eshan dhawan
Comment 6
  1. Joel Sherrill, Fri, 03 Dec 2021 20:16:07 GMT
  2. status: changed from assigned to closed
  3. resolution: set to fixed
  4. milestone: changed from Indefinite to 6.1

fenv.h has been added to newlib for many architectures.


2985 - Add documentation for printk()

Link https://devel.rtems.org/ticket/2985
Id 2985
Reporter Joel Sherrill
Created 7 April 2017 15:11:16
Modified 12 August 2021 12:30:29
Owner chrisj@…
Type enhancement
Component doc
Status closed
Resolution fixed
Version 5
Milestone 6.1
Priority normal
Severity normal
Keywords qualification
Cc  
Blocking  
Blocked by  

Description

printk() and its variants should be documented in the Classic API User's Guide. I am not sure where though.

Comment 1
  1. Sebastian Huber, Thu, 11 May 2017 07:31:02 GMT
  2. milestone: changed from 4.12 to 4.12.0
Comment 2
  1. Sebastian Huber, Thu, 08 Jun 2017 07:50:04 GMT
  2. milestone: changed from 4.12.0 to Indefinite
Comment 3
  1. Sebastian Huber, Tue, 10 Oct 2017 06:06:29 GMT
  2. component: changed from Documentation to doc
Comment 4
  1. Sebastian Huber, Fri, 18 Jun 2021 09:24:45 GMT
  2. keywords: qualification added
Comment 5
  1. Sebastian Huber, Thu, 12 Aug 2021 12:30:29 GMT
  2. status: changed from new to closed
  3. type: changed from defect to enhancement
  4. resolution: set to fixed
  5. milestone: changed from Indefinite to 6.1

This was fixed by #4482.


3143 - Remove obsolete rtems_gxx_&#42() implementation

Link https://devel.rtems.org/ticket/3143
Id 3143
Reporter Sebastian Huber
Created 19 September 2017 11:35:01
Modified 27 January 2022 13:10:49
Owner Sebastian Huber
Type enhancement
Component score
Status closed
Resolution fixed
Version 6
Milestone 6.1
Priority normal
Severity normal
Keywords  
Cc  
Blocking  
Blocked by 3599, 3602

Description

GCC versions prior to 6.1 used a RTEMS thread model based on rtems_gxx_*() functions. GCC version 6.1 or later uses the self-contained synchronization objects of Newlib for the RTEMS thread model.

Remove the obsolete implementation.

Comment 1
  1. Sebastian Huber, Tue, 19 Sep 2017 11:40:43 GMT
  2. status: changed from assigned to accepted
Comment 2
  1. Joel Sherrill, Tue, 19 Sep 2017 12:01:26 GMT

Are all the tool targets now using a sufficiently new GCC to remove this?

Comment 3
  1. Sebastian Huber, Tue, 19 Sep 2017 12:05:58 GMT
  2. milestone: changed from 4.12.0 to Indefinite

Oh no, some targets still use GCC 4.8...

Comment 4
  1. Sebastian Huber, Mon, 12 Nov 2018 06:44:18 GMT
  2. blockedby: set to 3599
  3. milestone: changed from Indefinite to 5.1

The removal of the m32c port removed the dependency on GCC 4.8.

Comment 5
  1. Sebastian Huber, Mon, 12 Nov 2018 06:46:03 GMT
  2. blockedby: changed from 3599 to 3599, 3602

An update of the or1k tools will remove the dependency on GCC 4.9.

Comment 6
  1. Sebastian Huber, Wed, 21 Nov 2018 07:12:33 GMT
  2. version: changed from 5 to 6
  3. milestone: changed from 5.1 to 6.1

Move milestone to allow RTEMS 5 builds with older GCCs.

Comment 7
  1. Sebastian Huber, Thu, 27 Jan 2022 13:10:49 GMT
  2. status: changed from accepted to closed
  3. resolution: set to fixed

In 2145e0c7/rtems:

Remove obsolete rtems_gxx_*() implementation GCC versions prior to 6.1 used a RTEMS thread model based on rtems_gxx_*() functions. GCC version 6.1 or later uses the self-contained synchronization objects of Newlib for the RTEMS thread model. Remove the obsolete implementation. Close #3143.

3199 - New test framework

Link https://devel.rtems.org/ticket/3199
Id 3199
Reporter Sebastian Huber
Created 19 October 2017 10:12:46
Modified 29 September 2021 13:25:31
Owner Sebastian Huber
Type enhancement
Component lib
Status closed
Resolution fixed
Version 5
Milestone 6.1
Priority normal
Severity normal
Keywords qualification
Cc  
Blocking 3716
Blocked by  

Description

Requirements:

  • Support for RTEMS and general POSIX systems such as Linux or FreeBSD
  • Test output functions
    • printf() like
    • No floating point support by default
    • Optional floating point support
    • Non-blocking
    • Arbitrary context, e.g. during system start, before device drivers, in interrupt context
  • Automatic test case registrations (constructors, linker set)
  • Standard test case output, e.g. begin/end of test case message
  • Ability to sort test cases at run-time
  • Safe assert functions, e.g. assert(a == b) vs. assert(a = b) vs. assert_eq(a, b)
  • Easy to write, e.g. avoid long namespace prefix rtems_test_*
  • Support multiple threads
  • No dependency on C++
  • Context validation, context invariant validation (e.g. thread dispatch disable level, interrupt state, heap state)
  • Test pattern support (e.g. spintercritical*, parallel tests on SMP)

No ready to use framework exists which fulfils these requirements. We have to write something for RTEMS.

API proposal (header file ):

T_eq(a, b)
T_gt(a, b)
T_printf(fmt, ...)
T_output_printf(putchar, fmt, ...)
T_output_string(putchar, s, n)
T_output_add_format_handler(handler, arg)

Example for T_output_add_format():

#include 
#include
typedef void (*T_putchar)(char c);
typedef size_t (*T_format_handler)(void *arg, T_putchar putchar, const char *fmt, const char *s, int *out);
int T_printf(const char *fmt, ...);
void T_output_printf(T_putchar putchar, const char *fmt, ...);
void T_output_string(T_putchar putchar, const char *s, size_t n);
void T_output_add_format_handler(T_format_handler handler, void *arg);
size_t T_output_float_handler(void *arg, T_putchar putchar, const char *fmt, const char *s, int *out)
{
char buf[32];
if (strncmp(fmt, "%f", 2) != 0) {
return 0;
}
*out = snprintf(buf, sizeof(buf), "%f", s);
if (*out > 0) {
T_output_string(putchar, s, (size_t) *out);
}
return 2;
}
void f(void)
{
T_output_add_format_handler(T_output_float_handler, NULL);
}

Attachments:

1 Sebastian Huber, Fri, 23 Nov 2018 10:26:10 GMT
  attach: set to t.tar.gz
 
2 Sebastian Huber, Thu, 06 Dec 2018 14:47:59 GMT
  attach: set to contributor.pdf
 
Comment 1
  1. Chris Johns, Thu, 19 Oct 2017 20:44:08 GMT

Have you seen TAP?

​http://testanything.org/ ​http://testanything.org/tap-version-13-specification.html ​https://github.com/TestAnything/test-anything-protocol/blob/master/output/draft-vaidya-test-anything-protocol-00.txt

I suggest we look at something that exists and see if it fits.

Comment 2
  1. Sebastian Huber, Sat, 28 Oct 2017 12:08:04 GMT

In f703e7f/rtems:

tests: Move rtems_test_printer definition Statically initialize it to use printk(). Update #3170. Update #3199.
Comment 3
  1. Sebastian Huber, Sat, 28 Oct 2017 12:08:16 GMT

In 7bec7f27/rtems:

rtems: Add rtems_print_printer_fprintf_putc() Update #3170. Update #3199.
Comment 4
  1. Sebastian Huber, Sat, 28 Oct 2017 12:08:27 GMT

In 73d892d8/rtems:

tests: Use rtems_test_printer Update #3170. Update #3199.
Comment 5
  1. Sebastian Huber, Sat, 28 Oct 2017 12:08:39 GMT

In 46ddc3c5/rtems:

tests: Use rtems_print_printer_fprintf_putc() Use rtems_print_printer_fprintf_putc() instead of rtems_print_printer_printf() to output via rtems_putc(). Update #3170. Update #3199.
Comment 6
  1. Sebastian Huber, Sat, 28 Oct 2017 12:08:51 GMT

In 7e10291/rtems:

tests: Use rtems_test_printer in general Update #3170. Update #3199.
Comment 7
  1. Sebastian Huber, Sat, 28 Oct 2017 12:09:02 GMT

In acc9d064/rtems:

tests: Remove obsolete TESTS_USE_PRINTK Update #3170. Update #3199.
Comment 8
  1. Sebastian Huber, Sat, 28 Oct 2017 12:09:15 GMT

In af43554/rtems:

tests: Remove TEST_INIT The TEST_EXTERN is a used only by the system.h style tests and they use CONFIGURE_INIT appropriately. Update #3170. Update #3199.
Comment 9
  1. Chris Johns, Mon, 30 Oct 2017 05:31:17 GMT

In 2126438a/rtems:

testsuite: Add bspIo for a local printk. Update #3170. Update #3199.
Comment 10
  1. Sebastian Huber, Thu, 02 Nov 2017 13:25:12 GMT

In 0d796d6/rtems:

tests: Delete obsolete TESTS_USE_PRINTF Update #3170. Update #3199.
Comment 11
  1. Sebastian Huber, Thu, 02 Nov 2017 13:26:51 GMT

In 8c1f4064/rtems:

tests: Use printf() instead of fprintf() Update #3170. Update #3199.
Comment 12
  1. Sebastian Huber, Mon, 06 Nov 2017 06:29:13 GMT

In 1082798/rtems:

score: Add _IO_Printf() and _IO_Vprintf() The previous vprintk() implementation had a questionable licence header, lacks support for the 'z' and 'j' format specifiers, is not robust against invalid format specifiers, uses a global variable for output. Replace it with a stripped down version of the FreeBSD kernel kvprintf() function. The new implementation allows a low overhead rtems_snprintf() if necessary. Update #3199. Close #3216.
Comment 13
  1. Sebastian Huber, Mon, 06 Nov 2017 06:29:25 GMT

In ac28f15/rtems:

Add simple console driver Update #3170. Update #3199.
Comment 14
  1. Sebastian Huber, Mon, 06 Nov 2017 06:29:41 GMT

In c4b8b147/rtems:

tests: Use simple console driver Update #3170. Update #3199.
Comment 15
  1. Sebastian Huber, Tue, 07 Nov 2017 06:09:15 GMT

In 7b00c2fa/rtems:

tests: Use in all tests Update #3170. Update #3199.
Comment 16
  1. Sebastian Huber, Tue, 07 Nov 2017 07:32:57 GMT

In 32ceb38/rtems:

tests: Use Update #3170. Update #3199.
Comment 17
  1. Chris Johns, Fri, 10 Nov 2017 02:42:58 GMT

In 6f3fb8a/rtems:

cpukit: Add a Version API. Provide functions to get the version string, major, minor and revision numbers and the version control identifer that is a unique tag for the version control system. Update #3199.
Comment 18
  1. Chris Johns, Sat, 11 Nov 2017 05:24:06 GMT

In e6df806/rtems:

tests: Use ld to map (wrap) printf, puts and putchar to tester functions. Remove the macro defines and the need for tmacro.h by remapping the symbols using ld's wrap option. Remove FLUSH_OUTPUT, it was empty. Move rtems_test_exit to libmisc/testsupport as a function. Update #3199.
Comment 19
  1. Sebastian Huber, Wed, 15 Nov 2017 07:10:55 GMT

In 62119d2/rtems:

dl01, dl02, dl05: Fix unresolved printf symbol The link time wrap of printf leads to unresolved symbols in the loadable modules. This resulted in infinite loops and test timeouts. Use rtems_printf() for output. Update #3199.
Comment 20
  1. Sebastian Huber, Fri, 17 Nov 2017 05:55:31 GMT

In 727cf48/rtems:

sptests/spversion01: Simplify configuration Update #3199.
Comment 21
  1. Sebastian Huber, Mon, 05 Feb 2018 09:48:37 GMT

In d078405/rtems-docs:

CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER Close #3170. Update #3199.
Comment 22
  1. Sebastian Huber, Mon, 04 Mar 2019 13:03:31 GMT
  2. status: changed from assigned to accepted
  3. blocking: set to 3716
Comment 23
  1. Sebastian Huber, Wed, 27 Mar 2019 06:29:28 GMT

In 6fe01e4b/rtems:

build: Move test support to librtemstest.a One reason to move the test support into a dedicated library are the standard output wrap_*() functions. They may conflict with application level wrappers. Update #3199.
Comment 24
  1. Sebastian Huber, Wed, 27 Mar 2019 06:29:32 GMT

In cfcc2cbf/rtems:

Add RTEMS Test Framework Update #3199.
Comment 25
  1. Sebastian Huber, Wed, 27 Mar 2019 06:29:37 GMT

In cbfc3415/rtems:

ttest01: New test This is an example test using the RTEMS Test Framework. It tests also the framework itself. Add T_FILE_NAME command line define to get rid of the full file path. This is important to reduce the read-only data of test files and make them build system independent. Update #3199.
Comment 26
  1. Sebastian Huber, Wed, 27 Mar 2019 06:34:23 GMT

In c2e582d/rtems-docs:

eng: Add software test framework chapter Update #3199.
Comment 27
  1. Sebastian Huber, Fri, 11 Oct 2019 09:02:08 GMT

In f88025a/rtems:

ttest01: Adjust SPDX-License-Identifier Update #3199.
Comment 28
  1. Sebastian Huber, Fri, 11 Oct 2019 09:02:13 GMT

In b406d071/rtems:

libtest: Do all output in test runner This ensures that lines are output atomically if they are produced by different other contexts, e.g. interrupts, other processors, other threads. Update #3199.
Comment 29
  1. Sebastian Huber, Fri, 11 Oct 2019 09:02:18 GMT

In feb27f9/rtems:

ttest01: Add more test cases Update #3199.
Comment 30
  1. Sebastian Huber, Fri, 11 Oct 2019 09:02:26 GMT

In b5e61f95/rtems:

libtest: Add more action events This allows more control over the initialization and finalization run. Update #3199.
Comment 31
  1. Sebastian Huber, Fri, 11 Oct 2019 09:02:32 GMT

In e71f0a5/rtems:

ttest01: Check init/final run output Update #3199.
Comment 32
  1. Sebastian Huber, Mon, 10 Feb 2020 08:03:35 GMT

In 45a0f65/rtems-docs:

eng: Document test framework formatted output Update #3199.
Comment 33
  1. Sebastian Huber, Mon, 10 Feb 2020 08:03:37 GMT

In b6c61e3/rtems-docs:

eng: Mention test framework buffer configuration Update #3199.
Comment 34
  1. Sebastian Huber, Mon, 10 Feb 2020 12:49:18 GMT

In 76b3aea/rtems-docs:

eng: Grammar fix Update #3199.
Comment 35
  1. Sebastian Huber, Fri, 17 Jul 2020 09:23:51 GMT
  2. milestone: changed from Indefinite to 6.1
Comment 36
  1. Sebastian Huber, Thu, 23 Jul 2020 08:06:12 GMT

In 21fa28c/rtems-docs:

eng: Update test framework chapter Document the dynamic text fixtures, utility functions, and the interrupt test support. Reorder some sections and reword some paragraphs based on review comments. Update #3199.
Comment 37
  1. Sebastian Huber, Thu, 23 Jul 2020 08:57:50 GMT

In 9de8d61/rtems:

libtest: to Rename this header file to later move to . The main feature provided by is the output of standard test information which is consumed by the RTEMS Tester. Update #3199.
Comment 38
  1. Sebastian Huber, Thu, 23 Jul 2020 08:57:54 GMT

In 361404e8/rtems:

libtest: Move to Update #3199.
Comment 39
  1. Sebastian Huber, Thu, 23 Jul 2020 08:57:57 GMT

In e3e3b871/rtems:

libtest: Add T_busy() Update #3199.
Comment 40
  1. Sebastian Huber, Thu, 23 Jul 2020 08:58:00 GMT

In af92665/rtems:

libtest: Add T_get_one_clock_tick_busy() Update #3199.
Comment 41
  1. Sebastian Huber, Thu, 23 Jul 2020 08:58:04 GMT

In c081c68/rtems:

libtest: Add T_make_runner() Update #3199.
Comment 42
  1. Sebastian Huber, Thu, 23 Jul 2020 08:58:07 GMT

In 6b27e32/rtems:

libtest: Support custom scope messages via fixture Update #3199.
Comment 43
  1. Sebastian Huber, Thu, 23 Jul 2020 08:58:10 GMT

In cb3c6bdc/rtems:

libtest: Add push/pop fixture support Update #3199.
Comment 44
  1. Sebastian Huber, Thu, 23 Jul 2020 08:58:14 GMT

In 63e4278/rtems:

libtest: Add T_get_scope() Update #3199.
Comment 45
  1. Sebastian Huber, Thu, 23 Jul 2020 08:58:17 GMT

In 34e4df55/rtems:

libtest: Split POSIX Keys support Update #3199.
Comment 46
  1. Sebastian Huber, Thu, 23 Jul 2020 08:58:20 GMT

In 7781404/rtems:

libtest: Add T_stop() Update #3199.
Comment 47
  1. Sebastian Huber, Thu, 23 Jul 2020 08:58:24 GMT

In 35d9af69/rtems:

libtest: Add T_CHECK_FMT Rename internal function T_check_true() to T_check() and use the new flag T_CHECK_FMT to indicate if a format string is present. This is a preparation step to make the format string optional. Make the check context the first parameter. The API remains the same. Update #3199.
Comment 48
  1. Sebastian Huber, Thu, 23 Jul 2020 08:58:27 GMT

In d702c9f4/rtems:

libtest: Make check message optional This macro magic is in line with C11 and C++11, but limits the maximum count of arguments. Update #3199.
Comment 49
  1. Sebastian Huber, Thu, 23 Jul 2020 08:58:30 GMT

In 467ef5b4/rtems:

libtest: Add T_unreachable() Update #3199.
Comment 50
  1. Sebastian Huber, Thu, 23 Jul 2020 08:58:34 GMT

In dddc9a58/rtems:

libtest: Add quiet assert NULL pointer checks Update #3199.
Comment 51
  1. Sebastian Huber, Thu, 23 Jul 2020 08:58:37 GMT

In c9d2405/rtems:

libtest: Add rtems_test_run() Update #3199.
Comment 52
  1. Sebastian Huber, Thu, 23 Jul 2020 08:58:40 GMT

In cc3fd8fc/rtems:

libtest: Add T_interrupt_test() Update #3199.
Comment 53
  1. Sebastian Huber, Thu, 06 Aug 2020 17:16:12 GMT

In 32f1f747/rtems:

libtest: Fix T_interrupt_test() in SMP configs Update #3199.
Comment 54
  1. Sebastian Huber, Fri, 07 Aug 2020 16:10:19 GMT

In f933b65/rtems:

libtest: Improve T_check_task_context Update #3199.
Comment 55
  1. Sebastian Huber, Mon, 10 Aug 2020 09:50:29 GMT

In 20c79bf/rtems:

libtest: Constify Update #3199.
Comment 56
  1. Sebastian Huber, Tue, 11 Aug 2020 06:04:20 GMT

In c1354f0/rtems:

libtest: Add T_thread_switch_record() Add support to record thread switch events. This can be used to check that a blocking operation results in the expected sequence of thread switches. Update #3199.
Comment 57
  1. Sebastian Huber, Tue, 18 Aug 2020 05:15:18 GMT

In 5a8114c6/rtems:

libtest: Change fixture scope method Return the produced character count. There is no need for a NUL termination. Update #3199.
Comment 58
  1. Sebastian Huber, Tue, 18 Aug 2020 05:15:21 GMT

In e67eff2/rtems:

libtest: Add output buffer drain and fill Update #3199.
Comment 59
  1. Sebastian Huber, Tue, 18 Aug 2020 05:15:25 GMT

In a7af34d0/rtems:

libtest: Add T_do_is_runner() Update #3199.
Comment 60
  1. Sebastian Huber, Tue, 18 Aug 2020 05:15:28 GMT

In 5d614fd/rtems:

libtest: Add T_puts() Update #3199.
Comment 61
  1. Sebastian Huber, Tue, 18 Aug 2020 05:15:31 GMT

In cbc1ba3/rtems:

libtest: Use line buffer in T_check() Update #3199.
Comment 62
  1. Sebastian Huber, Tue, 18 Aug 2020 05:15:34 GMT

In 33eb113/rtems:

libtest: Add T_check_steps() Update #3199.
Comment 63
  1. Sebastian Huber, Tue, 18 Aug 2020 05:15:37 GMT

In 5383d4db/rtems:

libtest: Add fixture steps Support a new test plan for each nested fixture. Update #3199.
Comment 64
  1. Sebastian Huber, Tue, 18 Aug 2020 05:15:41 GMT

In 72960bc7/rtems:

libtest: Change T_step() and T_assert_step() Normally, the expected test step must be a compile time constant. Allow variable expected test steps for the T_step() and T_assert_step(). This can be used for parameterized test loops with individual fixtures. Remove the ability to use custom failure messages due to some implementation constraints. Update #3199.
Comment 65
  1. Sebastian Huber, Tue, 18 Aug 2020 05:15:44 GMT

In 13acd90/rtems:

libtest: Use a destructor Do not set up a new test steps environment. Update #3199.
Comment 66
  1. Sebastian Huber, Tue, 18 Aug 2020 05:15:47 GMT

In c7289484/rtems:

libtest: Add T_push_plan() and T_pop_plan() Update #3199.
Comment 67
  1. Sebastian Huber, Mon, 31 Aug 2020 14:21:37 GMT

In d556af36/rtems:

bsps: Always install IPI in SMP configs The inter-processor interrupt (IPI) may be used to process per-CPU jobs. See for example the blocked handler in T_interrupt_test(). Update #3199.
Comment 68
  1. Sebastian Huber, Thu, 17 Sep 2020 16:09:12 GMT

In 98d2adb/rtems:

libtest: Fix T_thread_switch_record() If RTEMS_DEBUG is not defined, then we have to explicitly set the node off the chain. Update #3199.
Comment 69
  1. Sebastian Huber, Thu, 19 Nov 2020 07:39:42 GMT

In c542345/rtems:

libtest: Simplify "Load" environment reporting Report all runtime measurement environments with a name only and encode the worker count of the "Load" environment in the name. Update #3199.
Comment 70
  1. Sebastian Huber, Thu, 19 Nov 2020 07:59:18 GMT

In cdbd72d/rtems-docs:

eng: Rename ValidCache? environment in FullCache? This name better reflects the execution envirnoment in which the cache is fully loaded with valid data unrelated to the body request handler. Update #3199.
Comment 71
  1. Sebastian Huber, Thu, 19 Nov 2020 07:59:20 GMT

In 0454ad7/rtems-docs:

eng: Simplify "Load" environment reporting Report all runtime measurement environments with a name only and encode the worker count of the "Load" environment in the name. Update #3199.
Comment 72
  1. Sebastian Huber, Tue, 24 Nov 2020 06:40:45 GMT

In aa1c6dd/rtems:

libtest: Fix undefined setjmp() behaviour Bug was introduced by 78baeb757957fa0807c30e6c4d21ae99c9639e6a. Update #3199.
Comment 73
  1. Sebastian Huber, Fri, 18 Jun 2021 09:24:45 GMT
  2. keywords: qualification added
Comment 74
  1. Sebastian Huber, Wed, 29 Sep 2021 13:25:31 GMT
  2. status: changed from accepted to closed
  3. resolution: set to fixed

The test framework is fully implemented.


3230 - RSB does not report --rsb-file for patches correctly.

Link https://devel.rtems.org/ticket/3230
Id 3230
Reporter Chris Johns
Created 12 November 2017 04:45:41
Modified 12 December 2019 23:32:22
Owner Chris Johns
Type defect
Component tool/rsb
Status accepted
Resolution  
Version 5
Milestone 6.1
Priority normal
Severity normal
Keywords  
Cc  
Blocking  
Blocked by  

Description

The reports from the RSB do not report the --rsb-file option correctly.

Comment 1
  1. Chris Johns, Sun, 12 Nov 2017 04:46:01 GMT
  2. status: changed from assigned to accepted
Comment 2
  1. Chris Johns, Thu, 12 Dec 2019 23:32:22 GMT
  2. milestone: changed from 5.1 to 6.1

3250 - Remove Use of bsp_specs

Link https://devel.rtems.org/ticket/3250
Id 3250
Reporter Joel Sherrill
Created 21 November 2017 19:27:53
Modified 12 September 2022 06:55:14
Owner Sebastian Huber <sebastian.huber@…>
Type defect
Component build
Status closed
Resolution fixed
Version 5
Milestone 6.1
Priority normal
Severity normal
Keywords qualification
Cc  
Blocking  
Blocked by 3818, 3937

Description

The bsp_specs file in each BSP directory is GCC specific and a barrier to supporting other compilers including clang/llvm. The bsp_specs file is used in a variety of ways including some odd build system dependencies and this ticket is to track eliminating those uses and the direct use of bsp_specs themselves for extending GCC options.

The primary use of the bsp_specs file is to extend GCC's notion of what to link with. The bsp_specs itself commonly specifies:

  • start.o file
  • program entry point
  • crt[in].o or crtbegin.o/crtend.o
  • linker script
  • Frequently, arguments which are implicitly passed to ld.

This is typical and from a recently added BSP:

%rename endfile old_endfile
%rename startfile old_startfile
%rename link old_link
*startfile:
%{!qrtems: %(old_startfile)} \
%{!nostdlib: %{qrtems: start.o%s crti.o%s crtbegin.o%s -e _start}}
*link:
%{!qrtems: %(old_link)} %{qrtems: -dc -dp -N}
*endfile:
%{!qrtems: %(old_endfiles)} %{qrtems: crtend.o%s crtn.o%s }

Note that it has the implicit "-dc -dp -N" arguments which are passed to ld.
The -dc and -dp options are equivalent and assign space to common symbols even with linking with -r. Why these two options are included is a mystery lost to time. Similarly the -N sets the .text and .data sections to be readable and writable and do NOT page align the data segment. This option is also a blast from the ancient past and likely should not be used.

The "-qrtems" option is used with this pattern when compiling and linking RTEMS programs:

-B${PREFIX}/${BSP}/lib/ -specs bsp_specs -qrtems 

The -B says that the following directory is a system directory. It is treated as a "lib" directory and is also assumed to have an include/ subdirectory. They are added to the linker and include search paths, respectfully. The -specs option references the bsp_specs and adds the -qrtems options which are then tripped by specifying -qrtems. Every part of this must be eliminated and performed in a manner that is more amenable to using a compiler other than GCC.

In order to eliminate the bsp_specs, the arguments used in each BSP's version will have to be reviewed, made common, and then eliminated. A similar effort was performed when the BSP specific make-exe rules were eliminated from the "make/custom" files and a common pattern was put in place.

In addition to using the bsp_specs to specify details about linking and include files, the build system has quite a few odd dependencies on the presence of bsp_specs:

  • all BSP configure.ac use bsp_specs like this:
AC_CONFIG_SRCDIR([bsp_specs]) 

The idea was that this was a unique file to ensure the script was in the right directory. This can be changed to use a specfic make/custom/*.cfg file and not lose any integrity checking.

  • all BSP Makefile.am have this:
dist_project_lib_DATA = bsp_specs 

That can just be removed when we don't use the file.

  • ./aclocal/check-bsps.m4 uses it to see if it is BSP directory
  • bootstrap uses it generate the list of BSP directories for the libbsp/*/acinclude.m4 files
  • Other references are either comments or obvious uses of it in

some invocation of GCC.

Comment 1
  1. Joel Sherrill, Tue, 19 Dec 2017 17:07:13 GMT

In b0b93c8a/rtems:

gensh4: Simplify bsp_specs Updates #3250.
Comment 2
  1. Chris Johns, Mon, 05 Feb 2018 23:37:24 GMT
  2. component: changed from admin to build
Comment 3
  1. Sebastian Huber, Mon, 06 Apr 2020 14:01:59 GMT
  2. blockedby: set to 3818, 3937
Comment 4
  1. Sebastian Huber, Tue, 26 Jan 2021 05:40:00 GMT
  2. milestone: changed from Indefinite to 6.1

The bsp_specs are only used by the old build system and can be removed with along the old build system.

Comment 5
  1. Sebastian Huber, Thu, 28 Jan 2021 05:30:16 GMT

In b361eabd/rtems:

bsps: Replace bsp_specs with an empty file This fixes an issue with the latest tool chain which adds the default linker script in the endfile specification. Update #3250.
Comment 6
  1. Sebastian Huber, Fri, 18 Jun 2021 09:24:45 GMT
  2. keywords: qualification added
Comment 7
  1. Sebastian Huber, Tue, 21 Sep 2021 08:25:58 GMT
  2. owner: set to Sebastian Huber <sebastian.huber@…>
  3. status: changed from new to closed
  4. resolution: set to fixed

In db8f598/rtems:

build: Remove old build system Close #3250. Close #4081.
Comment 8
  1. Sebastian Huber, Mon, 12 Sep 2022 06:55:14 GMT

In 8f4543f/rtems-docs:

user: Mention that the bsp_specs are gone Update #3250.

3269 - Make the IRQ extensions API a standard API

Link https://devel.rtems.org/ticket/3269
Id 3269
Reporter Sebastian Huber
Created 2 January 2018 10:58:04
Modified 16 June 2023 05:30:18
Owner Sebastian Huber
Type enhancement
Component rtems
Status closed
Resolution fixed
Version 5
Milestone 6.1
Priority normal
Severity normal
Keywords qualification
Cc  
Blocking  
Blocked by  

Description

The IRQ extensions API defined by is currently only implemented by some BSPs and not covered by test cases. It is not documented in the RTEMS Classic API Guide. Change the BSPs so that every BSP implements this API at least as a stub so that we can write tests for this API. Specify and document the API.

Extend the API to enable/disable specific interrupt vectors. The proposed functions for this are rtems_interrupt_mask() and rtems_interrupt_unmask().

Extend the API to raise/clear specific interrupt vectors. This allows to test specific interrupts. The proposed functions are rtems_interrupt_raise() and rtems_interrupt_clear().

Extend the API to set/get the interrupt vector priority.

Extend the API to get some information about a particular interrupt vector, e.g. if the raise/clear functions work, if it is possible to change the priority, etc.

Comment 1
  1. Sebastian Huber, Thu, 04 Jan 2018 06:20:36 GMT

In 569fd50/rtems:

sparc: Remove BSP specifics from Update #3254. Update #3260. Update #3269.
Comment 2
  1. Sebastian Huber, Mon, 13 May 2019 13:33:51 GMT
  2. summary: changed from Add functions to enable, disable, and clear interrupts to the IRQ extensions API to Make the IRQ extensions API a standard API
  3. component: changed from dev to rtems
  4. description: modified (diff)
  5. version: set to 5
  6. milestone: changed from Indefinite to 5.1
Comment 3
  1. Sebastian Huber, Thu, 16 May 2019 07:59:21 GMT

In 45d0659/rtems:

bsps: Always build generic interrupt support This makes it possible to write tests for the generic interrupt controller support. Update #3269.
Comment 4
  1. Sebastian Huber, Fri, 05 Jul 2019 07:04:53 GMT

In e9c83b4/rtems:

bsps: Regenerate headers.am Update #3269.
Comment 5
  1. Sebastian Huber, Thu, 19 Dec 2019 08:07:34 GMT
  2. milestone: changed from 5.1 to 6.1
Comment 6
  1. Sebastian Huber, Fri, 31 Jul 2020 05:01:26 GMT

In a3bcc79/rtems:

bsps/lm32: Use shared Having a duplicate header with the shared includes is a build system inconsistency. You may use one header file to build the libraries and another one is installed (overwriting the other). Update #3269.
Comment 7
  1. Sebastian Huber, Fri, 18 Jun 2021 09:24:45 GMT
  2. keywords: qualification added
Comment 8
  1. Sebastian Huber, Thu, 24 Jun 2021 10:29:35 GMT

In 61d0be7/rtems:

bsps/irq: Remove BSP_INTERRUPT_NO_HEAP_USAGE Remove the support for BSP_INTERRUPT_NO_HEAP_USAGE. This was only used by one BSP and provides no real benefit. Update #3269.
Comment 9
  1. Sebastian Huber, Thu, 24 Jun 2021 10:29:39 GMT

In 4146d39/rtems:

bsp/genmcf548x: Change BSP_INTERRUPT_VECTOR_MIN This BSP uses a customized implementation of the interrupt extension API. It was the only BSP which defined BSP_INTERRUPT_VECTOR_MIN to a value other than zero. Define it to zero and use a custom bsp_interrupt_is_valid_vector() function instead. Update #3269.
Comment 10
  1. Sebastian Huber, Thu, 24 Jun 2021 10:29:42 GMT

In 5210c7c/rtems:

bsp/generic_or1k: Remove incomplete IRQ support Update #3269.
Comment 11
  1. Sebastian Huber, Thu, 24 Jun 2021 10:29:46 GMT

In f3acb8b/rtems:

bsps/irq: Assert BSP_INTERRUPT_VECTOR_MIN == 0 After building all BSPs with this patch, this BSP-specific define can be removed to simplify the implementation. Update #3269.
Comment 12
  1. Sebastian Huber, Thu, 24 Jun 2021 10:29:49 GMT

In af73b7b6/rtems:

bsps/irq: Remove BSP_INTERRUPT_VECTOR_MIN Remove BSP_INTERRUPT_VECTOR_MIN and unconditionally let interrupt vector numbers start with zero. The BSP_INTERRUPT_VECTOR_MIN == 0 invariant was tested by the previous commit and building all BSPs. Update #3269.
Comment 13
  1. Sebastian Huber, Thu, 24 Jun 2021 10:29:53 GMT

In 900a84c5/rtems:

smpcapture02: Fix use of BSP_INTERRUPT_VECTOR_MAX This define represents the last valid interrupt vector number. Update #3269.
Comment 14
  1. Sebastian Huber, Thu, 24 Jun 2021 10:29:56 GMT

In cd5573c/rtems:

bsps/irq: Add BSP_INTERRUPT_VECTOR_COUNT Assert BSP_INTERRUPT_VECTOR_MAX + 1 == BSP_INTERRUPT_VECTOR_COUNT. After building all BSPs with this patch, BSP_INTERRUPT_VECTOR_MAX can be removed and replaced by BSP_INTERRUPT_VECTOR_COUNT. The BSP_INTERRUPT_VECTOR_COUNT allows a default implementation which supports no interrupt vector at all. Using COUNT instead of MAX may avoid some interpretation issues, for example is the maximum value a valid vector number or not. Update #3269.
Comment 15
  1. Sebastian Huber, Thu, 24 Jun 2021 10:30:00 GMT

In 049e2b6/rtems:

bsps/irq: Remove BSP_INTERRUPT_VECTOR_NUMBER Replace it with BSP_INTERRUPT_VECTOR_COUNT. Update #3269.
Comment 16
  1. Sebastian Huber, Thu, 24 Jun 2021 10:30:03 GMT

In 3fee6620/rtems:

bsps/irq: Use BSP_INTERRUPT_VECTOR_COUNT Use BSP_INTERRUPT_VECTOR_COUNT instead of BSP_INTERRUPT_VECTOR_MAX. Update #3269.
Comment 17
  1. Sebastian Huber, Thu, 24 Jun 2021 10:30:07 GMT

In 94cf67c/rtems:

bsps/irq: Remove BSP_INTERRUPT_VECTOR_MAX This define is no longer used. Update #3269.
Comment 18
  1. Sebastian Huber, Thu, 24 Jun 2021 10:30:10 GMT

In fdf2ee7/rtems:

bsps/irq: Default BSP_INTERRUPT_VECTOR_COUNT == 0 Change the default value of BSP_INTERRUPT_VECTOR_COUNT so that no interrupt vectors are supported and all related directives return RTEMS_INVALID_ID. Update #3269.
Comment 19
  1. Sebastian Huber, Thu, 24 Jun 2021 10:30:14 GMT

In 6b7a3858/rtems:

bsp/atsam: Fix BSP_INTERRUPT_VECTOR_COUNT Fix an off by one error. Update #3269.
Comment 20
  1. Sebastian Huber, Mon, 12 Jul 2021 12:27:57 GMT

In c7b3df3f/rtems:

bsps/sparc: Improve interrupt affinity support Fully support the interrupt extension API to set/get the interrupt affinity. Remove LEON3_irq_to_cpu which defined the interrupt to processor mapping in a BSP-specific way. Update #3269.
Comment 21
  1. Sebastian Huber, Tue, 27 Jul 2021 05:42:57 GMT

In efb3fc2/rtems:

bsps/irq: Move get/set affinity to separate file Update #3269.
Comment 22
  1. Sebastian Huber, Tue, 27 Jul 2021 05:43:00 GMT

In 1b3b5b84/rtems:

bsps/irq: Canonicalize get/set affinity errors Bring the error conditions and status in line with rtems_task_get_affinity() and rtems_task_set_affinity(). Update #3269.
Comment 23
  1. Sebastian Huber, Tue, 27 Jul 2021 05:43:04 GMT

In 04c2c08/rtems:

bsps/irq: Move handler iterate to separate file Update #3269.
Comment 24
  1. Sebastian Huber, Tue, 27 Jul 2021 05:43:07 GMT

In ba937459/rtems:

rtems: Add rtems_interrupt_raise() Add rtems_interrupt_raise_on(). Document the currently not implemented rtems_interrupt_clear(). Remove the not implemented and badly named rtems_interrupt_cause() directive. Update #3269.
Comment 25
  1. Sebastian Huber, Tue, 27 Jul 2021 05:43:11 GMT

In c4eafae2/rtems:

rtems: Generate Use which just provides the data types and avoid a dependency on which contains the full chain implementation. Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3269. Update #3899. Update #3993.
Comment 26
  1. Sebastian Huber, Tue, 27 Jul 2021 05:43:14 GMT

In 5e33aec/rtems:

rtems: Add rtems_interrupt_get_attributes() Add a directive to query the attributes of an interrupt vector. This can be used for generic tests and system diagnostics. Update #3269.
Comment 27
  1. Sebastian Huber, Tue, 27 Jul 2021 05:43:18 GMT

In 96265c8/rtems:

rtems: Add rtems_interrupt_vector_enable() Add rtems_interrupt_vector_disable(). Update #3269.
Comment 28
  1. Sebastian Huber, Tue, 27 Jul 2021 05:43:21 GMT

In 01e7c36/rtems:

rtems: Add rtems_interrupt_vector_is_enabled() Update #3269.
Comment 29
  1. Sebastian Huber, Tue, 27 Jul 2021 05:43:25 GMT

In faa4b636/rtems:

rtems: Add rtems_interrupt_is_pending() Update #3269.
Comment 30
  1. Sebastian Huber, Tue, 27 Jul 2021 05:43:28 GMT

In 4969af4/rtems:

rtems: Add RTEMS_FATAL_SOURCE_SPURIOUS_INTERRUPT Add RTEMS_FATAL_SOURCE_SPURIOUS_INTERRUPT as the fatal source for spurious interrupts. Use the interrupt vector number of the spurious interrupt for the fatal code. Update #3269.
Comment 31
  1. Sebastian Huber, Tue, 27 Jul 2021 05:43:32 GMT

In 781213f9/rtems:

bsps/irq: Add rtems_interrupt_vector_is_enabled() Add a default implementation which just returns RTEMS_UNSATISFIED for valid parameters. Update #3269.
Comment 32
  1. Sebastian Huber, Tue, 27 Jul 2021 05:43:35 GMT

In 9832652c/rtems:

bsps/irq: Add rtems_interrupt_raise() Add rtems_interrupt_raise_on() and rtems_interrupt_clear(). Add a default implementation which just returns RTEMS_UNSATISFIED for valid parameters. Update #3269.
Comment 33
  1. Sebastian Huber, Tue, 27 Jul 2021 05:43:38 GMT

In eebecd0/rtems:

bsps/irq: Add rtems_interrupt_get_attributes() Add a default implementation which clears the attributes to zero and just returns RTEMS_SUCCESSFUL for valid parameters. Update #3269.
Comment 34
  1. Sebastian Huber, Tue, 27 Jul 2021 05:43:42 GMT

In deb5afb/rtems:

bsps/irq: Add rtems_interrupt_is_pending() Add a default implementation which just returns RTEMS_UNSATISFIED. Update #3269.
Comment 35
  1. Sebastian Huber, Tue, 27 Jul 2021 05:43:45 GMT

In bc86a5fa/rtems:

bsps/irq: bsp_interrupt_vector_enable() Return a status code for bsp_interrupt_vector_enable(). Update #3269.
Comment 36
  1. Sebastian Huber, Tue, 27 Jul 2021 05:43:48 GMT

In 32f5a195/rtems:

bsps/irq: bsp_interrupt_vector_disable() Return a status code for bsp_interrupt_vector_disable(). Update #3269.
Comment 37
  1. Sebastian Huber, Tue, 27 Jul 2021 05:43:52 GMT

In 23ec04c/rtems:

bsps/irq: bsp_interrupt_get_affinity() Return a status code for bsp_interrupt_get_affinity(). Update #3269.
Comment 38
  1. Sebastian Huber, Tue, 27 Jul 2021 05:43:56 GMT

In 85a3785/rtems:

bsps/irq: bsp_interrupt_set_affinity() Return a status code for bsp_interrupt_set_affinity(). Update #3269.
Comment 39
  1. Sebastian Huber, Tue, 27 Jul 2021 05:43:59 GMT

In fe6ce5ac/rtems:

bsps/irq: Implement new directives for GICv2/3 Update #3269.
Comment 40
  1. Sebastian Huber, Tue, 27 Jul 2021 05:44:02 GMT

In 09be98d/rtems:

sparc/irq: Implement new interrupt directives Update #3269.
Comment 41
  1. Sebastian Huber, Tue, 27 Jul 2021 05:44:06 GMT

In 81358d7/rtems:

rtems: Add rtems_interrupt_entry_install() Add RTEMS_INTERRUPT_ENTRY_INITIALIZER(), rtems_interrupt_entry_initialize(), and rtems_interrupt_entry_remove(). This allows to install interrupt handlers using user-provided storage as an alternative to rtems_interrupt_handler_install() which has to allocate memory. Update #3269.
Comment 42
  1. Sebastian Huber, Tue, 27 Jul 2021 05:44:09 GMT

In 73fcbf4/rtems:

bsps/irq: Use rtems_interrupt_entry Update #3269.
Comment 43
  1. Sebastian Huber, Tue, 27 Jul 2021 05:44:13 GMT

In 63d9e84/rtems:

bsps/irq: Add bsp_interrupt_check_and_lock() Return RTEMS_INCORRECT_STATE instead of RTEMS_INTERNAL_ERROR in case the interrupt support is not initialized. This is similar to rtems_timer_server_fire_after() for example. Update #3269.
Comment 44
  1. Sebastian Huber, Tue, 27 Jul 2021 05:44:16 GMT

In 70357f1/rtems:

bsps/irq: Move bsp_interrupt_handler_is_empty() This function is only used by one BSP. Update #3269.
Comment 45
  1. Sebastian Huber, Tue, 27 Jul 2021 05:44:20 GMT

In e518323/rtems:

bsps/irq: Add rtems_interrupt_entry_install() Add rtems_interrupt_entry_remove(). Split up irq-generic.c into several files. In particular, place all functions which use dynamic memory into their own file. Add optional macros to let the BSP customize the vector installation after installing the first entry and the vector removal before removing the last entry: bsp_interrupt_vector_install() bsp_interrupt_vector_remove() Use these new customization options in the m68k/genmcf548x BSP so re-use the generic interrupt controller support. Update #3269.
Comment 46
  1. Sebastian Huber, Tue, 27 Jul 2021 05:44:23 GMT

In b910e60/rtems:

bsp/raspberrypi: Add interrupt get/set affinity Add default implementations for bsp_interrupt_get_affinity() and bsp_interrupt_set_affinity() which are required to link all tests in SMP configurations. Update #3269.
Comment 47
  1. Sebastian Huber, Tue, 27 Jul 2021 05:44:26 GMT

In f89cf8e8/rtems:

validation: Add CallWithinISR() Update #3269.
Comment 48
  1. Sebastian Huber, Tue, 27 Jul 2021 05:44:30 GMT

In 1465e78a/rtems:

validation: HasInterruptVectorEntriesInstalled?() Update #3269.
Comment 49
  1. Sebastian Huber, Tue, 27 Jul 2021 05:44:33 GMT

In bfec448/rtems:

validation: GetValidInterruptVectorNumber?() Update #3269.
Comment 50
  1. Sebastian Huber, Tue, 27 Jul 2021 05:44:37 GMT

In 9e1fc36/rtems:

validation: GetTestableInterruptVector?() Update #3269.
Comment 51
  1. Sebastian Huber, Tue, 27 Jul 2021 05:44:40 GMT

In e2894df/rtems:

validation: Test rtems_interrupt_get_attributes() Update #3269.
Comment 52
  1. Sebastian Huber, Tue, 27 Jul 2021 05:44:44 GMT

In d8be2b97/rtems:

validation: rtems_interrupt_vector_is_enabled() Update #3269.
Comment 53
  1. Sebastian Huber, Tue, 27 Jul 2021 05:44:47 GMT

In 7a3e6c7/rtems:

validation: Test rtems_interrupt_vector_enable() Update #3269.
Comment 54
  1. Sebastian Huber, Tue, 27 Jul 2021 05:44:50 GMT

In aa6c962/rtems:

validation: Test rtems_interrupt_vector_disable() Update #3269.
Comment 55
  1. Sebastian Huber, Tue, 27 Jul 2021 05:44:54 GMT

In 09960369/rtems:

validation: Test rtems_interrupt_entry_install() Update #3269.
Comment 56
  1. Sebastian Huber, Tue, 27 Jul 2021 05:44:57 GMT

In 7dbab6af/rtems:

validation: Test rtems_interrupt_entry_remove() Update #3269.
Comment 57
  1. Sebastian Huber, Tue, 27 Jul 2021 05:45:01 GMT

In 4341058/rtems:

validation: Test rtems_interrupt_raise() Update #3269.
Comment 58
  1. Sebastian Huber, Tue, 27 Jul 2021 05:45:04 GMT

In 1bf8139a/rtems:

validation: Test rtems_interrupt_clear() Update #3269.
Comment 59
  1. Sebastian Huber, Tue, 27 Jul 2021 05:45:07 GMT

In 163c1fd/rtems:

validation: Test rtems_interrupt_is_pending() Update #3269.
Comment 60
  1. Sebastian Huber, Tue, 27 Jul 2021 05:45:11 GMT

In 32c0cd8/rtems:

validation: Test rtems_interrupt_raise_on() Update #3269.
Comment 61
  1. Sebastian Huber, Tue, 27 Jul 2021 05:45:14 GMT

In aab3713/rtems:

validation: Test rtems_interrupt_get_affinity() Update #3269.
Comment 62
  1. Sebastian Huber, Tue, 27 Jul 2021 05:45:18 GMT

In 17fb5239/rtems:

validation: Test rtems_interrupt_set_affinity() Update #3269.
Comment 63
  1. Sebastian Huber, Tue, 27 Jul 2021 05:45:21 GMT

In 67c033d3/rtems:

validation: Test rtems_interrupt_handler_iterate() Update #3269.
Comment 64
  1. Sebastian Huber, Tue, 27 Jul 2021 05:50:33 GMT
  2. status: changed from assigned to closed
  3. resolution: set to fixed

In 056886f/rtems-docs:

c-user: Document interrupt manager extensions Close #3269.
Comment 65
  1. Sebastian Huber, Thu, 12 Aug 2021 19:07:44 GMT

In 75af5be/rtems:

bsp/leon3: Fix rtems_interrupt_is_pending() Take the interrupt force register into account in all configurations. Update #3269.
Comment 66
  1. Sebastian Huber, Tue, 11 Jan 2022 15:41:33 GMT

In cbc9232/rtems:

bsp/qoriq: Implement Interrupt Manager directives Update #3269.
Comment 67
  1. Sebastian Huber, Wed, 16 Mar 2022 06:17:15 GMT

In 49f84b7/rtems-docs:

c-user: Improve interrupt set affinity handling Update #3269.
Comment 68
  1. Sebastian Huber, Wed, 16 Mar 2022 06:24:29 GMT

In ca4fa22e/rtems:

bsps/irq: Fix formatting Update #3269.
Comment 69
  1. Sebastian Huber, Wed, 16 Mar 2022 06:24:33 GMT

In f311caf/rtems:

bsps/irq: Improve affinity set handling Restrict the affinity set to the set of online processors. Make sure the affinity set for an interrupt vector contains at least one online processor. Update #3269.
Comment 70
  1. Sebastian Huber, Wed, 08 Jun 2022 08:20:07 GMT

In 9a69e430/rtems:

validation: Fix CallWithinISR() Some BSPs require that Clear_tm27_intr() is called in the interrupt service routine. Update #3269.
Comment 71
  1. Sebastian Huber, Fri, 16 Jun 2023 05:30:14 GMT

In 83305f5/rtems:

pci: Do not use BSP-specific interrupt API Update #3269.
Comment 72
  1. Sebastian Huber, Fri, 16 Jun 2023 05:30:16 GMT

In 4e3e9df/rtems:

bsps: Remove uses of BSP-specific interrupt API Update #3269.
Comment 73
  1. Sebastian Huber, Fri, 16 Jun 2023 05:30:18 GMT

In 65b0ba4/rtems:

bsps/sparc: Deprecate BSP-specific interrupt API Update #3269.

3321 - Improve console driver documentation

Link https://devel.rtems.org/ticket/3321
Id 3321
Reporter Sebastian Huber
Created 6 March 2018 12:14:57
Modified 26 January 2022 13:31:59
Owner Sebastian Huber
Type enhancement
Component doc
Status closed
Resolution fixed
Version 5
Milestone 6.1
Priority normal
Severity normal
Keywords  
Cc  
Blocking  
Blocked by  

Description

We have now three different standard console drivers. Improve the console driver configuration documentation to assist the user to select the right one.

Comment 1
  1. Sebastian Huber, Tue, 06 Mar 2018 12:15:14 GMT
  2. owner: set to Sebastian Huber
  3. status: changed from new to assigned
Comment 2
  1. Sebastian Huber, Wed, 26 Jan 2022 13:31:59 GMT
  2. status: changed from assigned to closed
  3. resolution: set to fixed

Documentation was improved.


3414 - Remove Makefiles from rtems-examples?

Link https://devel.rtems.org/ticket/3414
Id 3414
Reporter Joel Sherrill
Created 25 April 2018 23:52:20
Modified 29 November 2022 21:54:49
Owner  
Type defect
Component unspecified
Status closed
Resolution invalid
Version 6
Milestone 6.1
Priority normal
Severity normal
Keywords examples
Cc  
Blocking  
Blocked by  

Description

It seems to be time to remove Makefile build support from examples-v2

Comment 1
  1. Chris Johns, Sun, 14 Oct 2018 01:04:36 GMT
  2. status: changed from new to assigned
  3. version: changed from 5 to 6
  4. milestone: changed from 5.1 to 6.1

Remove in 6.

Comment 2
  1. Chris Johns, Wed, 18 Sep 2019 22:53:28 GMT
  2. keywords: examples added
  3. summary: changed from Remove Makefiles from examples-v2? to Remove Makefiles from rtems-examples?

Does the Makefile build work with the rtems-example master HEAD?

Comment 3
  1. Joel Sherrill, Thu, 19 Sep 2019 10:52:42 GMT

It did an couple of weeks ago

Comment 4
  1. Chris Johns, Fri, 20 Sep 2019 04:31:42 GMT

Replying to Joel Sherrill:

It did an couple of weeks ago

How up to date is the build, for example we have a libbsd and graphics example in the repo now?

Comment 5
  1. Chris Johns, Tue, 29 Nov 2022 21:54:49 GMT
  2. status: changed from assigned to closed
  3. resolution: set to invalid

Makefile.inc is to be supported so examples with Makefiles makes sense to keep.


3420 - Deprecate/obsolete rtems_io_lookup_name

Link https://devel.rtems.org/ticket/3420
Id 3420
Reporter Joel Sherrill
Created 30 April 2018 14:12:00
Modified 10 November 2022 21:06:05
Owner joel
Type defect
Component rtems
Status closed
Resolution fixed
Version 6
Milestone 6.1
Priority normal
Severity normal
Keywords  
Cc  
Blocking  
Blocked by  

Description

I have noted in the RTEMS Class that this method is only kept for legacy purposes for many years now. There is no real use in the tree now. Only the following:

$ grep -rl rtems_io_lookup_name .
./cpukit/include/adainclude/rtems-io.adb
./cpukit/include/rtems/io.h
./cpukit/libfs/src/imfs/ioman.c
./testsuites/sptests/sp21/sp21.scn
./testsuites/sptests/sp21/init.c

Deprecate in 5.1 and remove in 6.x or obsolete and just remove now?

Comment 1
  1. Sebastian Huber, Mon, 17 Sep 2018 11:49:12 GMT

I would not touch this function. It adds no overhead to applications which don't use it.

Comment 2
  1. Chris Johns, Sun, 14 Oct 2018 01:10:58 GMT
  2. owner: set to joel
  3. status: changed from new to assigned
  4. version: changed from 5 to 6
  5. milestone: changed from 5.1 to 6.1
Comment 3
  1. Sebastian Huber, Tue, 14 Jul 2020 05:26:39 GMT
  2. status: changed from assigned to closed
  3. resolution: set to fixed

In dc4879b/rtems:

rtems: Remove deprecated rtems_io_lookup_name() Close #3420.
Comment 4
  1. Joel Sherrill, Thu, 10 Nov 2022 21:06:05 GMT

In ecd8aec9/rtems:

Remove remnants of rtems_io_lookup_name Updates #3420.

3456 - Add support for CPU counter timestamps

Link https://devel.rtems.org/ticket/3456
Id 3456
Reporter Sebastian Huber
Created 15 June 2018 10:02:54
Modified 31 October 2023 11:46:21
Owner Sebastian Huber
Type enhancement
Component score
Status closed
Resolution fixed
Version 5
Milestone 6.1
Priority normal
Severity normal
Keywords qualification
Cc  
Blocking  
Blocked by 3961

Description

The original use case for the CPU counter was low level profiling of SMP synchronization primitives and busy wait loops for device drivers.

For low overhead timestamps the CPU counter may be also used, e.g. for tracing. To support timestamps, the CPU counter must increment monotonically within the whole range of the CPU counter data type, e.g. 32-bit unsigned integer. In addition, it should not be affected by power saving states of the processor.

Comment 1
  1. Sebastian Huber, Tue, 19 Jun 2018 04:58:16 GMT

In 4c7b18e3/rtems:

Add RTEMS_SYSINIT_CPU_COUNTER Add initialization step for the CPU counter support. Update #3456.
Comment 2
  1. Sebastian Huber, Tue, 19 Jun 2018 04:58:29 GMT

In 65f868c/rtems:

Add _CPU_Counter_frequency() Add rtems_counter_frequency() API function. Use it to initialize the counter value converter via the new system initialization step (RTEMS_SYSINIT_CPU_COUNTER). This decouples the counter implementation and the counter converter. It avoids an unnecessary pull in of the 64-bit integer division from libgcc. Update #3456.
Comment 3
  1. Sebastian Huber, Tue, 19 Jun 2018 04:58:39 GMT

In 6d130e6/rtems-docs:

c-user: Document RTEMS_SYSINIT_CPU_COUNTER Update #3456.
Comment 4
  1. Sebastian Huber, Tue, 19 Jun 2018 04:58:41 GMT

In 762fa62/rtems:

arm: Simplify CPU counter support Use the standard ARMv7-M systick module for the ARMv7-M CPU counter instead of DWT counter since the DWT counter is affected by power saving states. Use an inline function for _CPU_Counter_difference() for all ARM BSPs. Update #3456.
Comment 5
  1. Sebastian Huber, Thu, 20 Sep 2018 05:28:13 GMT

In b3cf79b/rtems:

bsp/leon3: Fix typo which breaks the CPU counter Update #3456.
Comment 6
  1. Sebastian Huber, Fri, 07 Dec 2018 13:33:54 GMT

In 0a1f5df9/rtems:

Simplify _CPU_Counter_difference() In order to simplify the use of CPU counter values it is beneficial to have monotonic increasing values within the range of the CPU counter ticks data type, e.g. 32-bit unsigned integer. This eases the use of CPU counter timestamps in external tools which do not know the details of the CPU counter hardware. The CPU counter is the fastest way to get a time on an RTEMS system. Such a CPU counter may be also used as the timecounter. Use it on SPARC for this purpose to simplify the clock drivers. Update #3456.
Comment 7
  1. Sebastian Huber, Thu, 07 Feb 2019 07:48:53 GMT

In 0fb52ce/rtems:

bsps/arm: Fix generic timer frequency Update #3456.
Comment 8
  1. Sebastian Huber, Tue, 09 Apr 2019 05:32:17 GMT

In b8a0a496/rtems:

bsps/arm: Fix ARMv7-M CPU counter Read the current counter value again after we know that we had an underflow. Update #3456.
Comment 9
  1. Sebastian Huber, Tue, 09 Apr 2019 06:11:42 GMT

In 222570a/rtems:

bsps/arm: Optimize ARMv7-M CPU counter Update #3456.
Comment 10
  1. Sebastian Huber, Thu, 19 Dec 2019 08:07:34 GMT
  2. milestone: changed from 5.1 to 6.1
Comment 11
  1. Christian Mauderer, Mon, 20 Apr 2020 06:30:19 GMT
  2. blockedby: set to 3961
Comment 12
  1. Sebastian Huber, Fri, 09 Sep 2022 05:46:03 GMT
  2. status: changed from assigned to closed
  3. resolution: set to fixed

In 270200e/rtems:

score: Remove _CPU_Counter_difference() All CPU ports used the same _CPU_Counter_difference() implementation. Remove this CPU port interface and mandate a monotonically increasing CPU counter. Close #3456.
Comment 13
  1. Sebastian Huber, Tue, 31 Oct 2023 11:46:21 GMT
  2. keywords: qualification added

3566 - Remove checks for Newlib features introduced during the RTEMS 5 development

Link https://devel.rtems.org/ticket/3566
Id 3566
Reporter Sebastian Huber
Created 22 October 2018 06:02:08
Modified 26 January 2022 13:36:18
Owner Sebastian Huber
Type task
Component build
Status closed
Resolution fixed
Version 6
Milestone 6.1
Priority normal
Severity normal
Keywords  
Cc  
Blocking  
Blocked by  

Description

Remove checks for O_DIRECTORY, O_CLOEXEC and O_NOFOLLOW.

Comment 1
  1. Sebastian Huber, Wed, 26 Jan 2022 13:36:18 GMT
  2. status: changed from assigned to closed
  3. resolution: set to fixed
  4. component: changed from unspecified to build

This was done as a side-effect of the new build system.


3584 - Remove types which are only available if RTEMS_DEPRECATED_TYPES is defined

Link https://devel.rtems.org/ticket/3584
Id 3584
Reporter Sebastian Huber
Created 7 November 2018 12:36:56
Modified 23 June 2021 07:16:03
Owner Sebastian Huber
Type task
Component rtems
Status closed
Resolution fixed
Version 6
Milestone 6.1
Priority normal
Severity normal
Keywords qualification
Cc  
Blocking 3993
Blocked by  

Description

The types

  • boolean,
  • single_precision,
  • double_precision,
  • rtems_single,
  • rtems_double, and
  • rtems_boolean.

are only available if RTEMS_DEPRECATED_TYPES is defined. They are deprecated for a long time. Remove them in this release.

Comment 1
  1. Sebastian Huber, Thu, 08 Nov 2018 07:11:19 GMT

In a9767a07/rtems:

score: Use RTEMS_DEPRECATED for deprecated types Update #3584.
Comment 2
  1. Sebastian Huber, Mon, 01 Jun 2020 11:16:17 GMT
  2. blocking: set to 3993
Comment 3
  1. Sebastian Huber, Tue, 14 Jul 2020 05:27:10 GMT
  2. status: changed from assigned to closed
  3. resolution: set to fixed

In 2adf328/rtems:

rtems: Remove support for RTEMS_DEPRECATED_TYPES Close #3584.
Comment 4
  1. Sebastian Huber, Wed, 23 Jun 2021 07:16:03 GMT
  2. keywords: qualification added

3586 - Remove deprecated proc_ptr definition

Link https://devel.rtems.org/ticket/3586
Id 3586
Reporter Sebastian Huber
Created 7 November 2018 12:39:29
Modified 23 June 2021 07:16:03
Owner Sebastian Huber
Type task
Component score
Status closed
Resolution fixed
Version 6
Milestone 6.1
Priority normal
Severity normal
Keywords qualification
Cc  
Blocking 3993
Blocked by 3585

Description

Comment 1
  1. Sebastian Huber, Mon, 01 Jun 2020 11:19:05 GMT
  2. blocking: set to 3993
Comment 2
  1. Sebastian Huber, Tue, 14 Jul 2020 05:27:14 GMT
  2. status: changed from assigned to closed
  3. resolution: set to fixed

In 53a5af2/rtems:

rtems: Remove deprecated proc_ptr definition Close #3586.
Comment 3
  1. Sebastian Huber, Wed, 23 Jun 2021 07:16:03 GMT
  2. keywords: qualification added

3588 - Remove deprecated rtems_context

Link https://devel.rtems.org/ticket/3588
Id 3588
Reporter Sebastian Huber
Created 7 November 2018 12:43:40
Modified 23 June 2021 07:16:03
Owner Sebastian Huber
Type task
Component rtems
Status closed
Resolution fixed
Version 6
Milestone 6.1
Priority normal
Severity normal
Keywords qualification
Cc  
Blocking 3993
Blocked by 3587

Description

Comment 1
  1. Sebastian Huber, Wed, 07 Nov 2018 12:45:29 GMT
  2. blockedby: changed from 3587 to 3587, 3589
Comment 2
  1. Sebastian Huber, Wed, 07 Nov 2018 12:45:47 GMT
  2. blockedby: changed from 3587, 3589 to 3587
Comment 3
  1. Sebastian Huber, Mon, 01 Jun 2020 11:16:17 GMT
  2. blocking: set to 3993
Comment 4
  1. Sebastian Huber, Tue, 14 Jul 2020 05:26:56 GMT
  2. status: changed from assigned to closed
  3. resolution: set to fixed

In df2dac3/rtems:

rtems: Remove rtems_context This type was deprecated in RTEMS 5.1. Close #3588.
Comment 5
  1. Sebastian Huber, Wed, 23 Jun 2021 07:16:03 GMT
  2. keywords: qualification added

3590 - Remove deprecated rtems_context_fp

Link https://devel.rtems.org/ticket/3590
Id 3590
Reporter Sebastian Huber
Created 7 November 2018 12:47:08
Modified 23 June 2021 07:16:03
Owner Sebastian Huber
Type task
Component rtems
Status closed
Resolution fixed
Version 6
Milestone 6.1
Priority normal
Severity normal
Keywords qualification
Cc  
Blocking 3993
Blocked by 3589

Description

Comment 1
  1. Sebastian Huber, Wed, 07 Nov 2018 12:49:28 GMT
  2. blockedby: changed from 3589 to 3589, 3591
Comment 2
  1. Sebastian Huber, Wed, 07 Nov 2018 12:49:41 GMT
  2. blockedby: changed from 3589, 3591 to 3589
Comment 3
  1. Sebastian Huber, Wed, 07 Nov 2018 12:50:54 GMT
  2. version: changed from 5 to 6
  3. milestone: changed from 5.1 to 6.1
Comment 4
  1. Sebastian Huber, Mon, 01 Jun 2020 11:16:17 GMT
  2. blocking: set to 3993
Comment 5
  1. Sebastian Huber, Tue, 14 Jul 2020 05:26:59 GMT
  2. status: changed from assigned to closed
  3. resolution: set to fixed

In f8998f1/rtems:

rtems: Remove rtems_context_fp This type was deprecated in RTEMS 5.1. Close #3590.
Comment 6
  1. Sebastian Huber, Wed, 23 Jun 2021 07:16:03 GMT
  2. keywords: qualification added

3592 - Remove deprecated region_information_block

Link https://devel.rtems.org/ticket/3592
Id 3592
Reporter Sebastian Huber
Created 7 November 2018 12:50:21
Modified 23 June 2021 07:16:03
Owner Sebastian Huber
Type task
Component rtems
Status closed
Resolution fixed
Version 6
Milestone 6.1
Priority normal
Severity normal
Keywords qualification
Cc  
Blocking 3993
Blocked by 3591

Description

Comment 1
  1. Sebastian Huber, Mon, 01 Jun 2020 11:16:17 GMT
  2. blocking: set to 3993
Comment 2
  1. Sebastian Huber, Tue, 14 Jul 2020 05:27:03 GMT
  2. status: changed from assigned to closed
  3. resolution: set to fixed

In 1546b1c0/rtems:

rtems: Remove region_information_block This type was deprecated in RTEMS 5.1. Close #3592.
Comment 3
  1. Sebastian Huber, Wed, 23 Jun 2021 07:16:03 GMT
  2. keywords: qualification added

3594 - Remove deprecated rtems_thread_cpu_usage_t

Link https://devel.rtems.org/ticket/3594
Id 3594
Reporter Sebastian Huber
Created 7 November 2018 12:53:29
Modified 23 June 2021 07:16:03
Owner Sebastian Huber
Type task
Component rtems
Status closed
Resolution fixed
Version 6
Milestone 6.1
Priority normal
Severity normal
Keywords qualification
Cc  
Blocking 3993
Blocked by 3593

Description

Comment 1
  1. Sebastian Huber, Mon, 01 Jun 2020 11:16:17 GMT
  2. blocking: set to 3993
Comment 2
  1. Sebastian Huber, Tue, 14 Jul 2020 05:27:06 GMT
  2. status: changed from assigned to closed
  3. resolution: set to fixed

In 312fcf2/rtems:

rtems: Remove rtems_thread_cpu_usage_t This type was deprecated in RTEMS 5.1. Close #3594.
Comment 3
  1. Sebastian Huber, Wed, 23 Jun 2021 07:16:03 GMT
  2. keywords: qualification added

3596 - Remove deprecated rtems_rate_monotonic_period_time_t

Link https://devel.rtems.org/ticket/3596
Id 3596
Reporter Sebastian Huber
Created 7 November 2018 13:01:09
Modified 23 June 2021 07:16:03
Owner Sebastian Huber
Type task
Component rtems
Status closed
Resolution fixed
Version 6
Milestone 6.1
Priority normal
Severity normal
Keywords qualification
Cc  
Blocking 3993
Blocked by 3595

Description

Comment 1
  1. Sebastian Huber, Mon, 01 Jun 2020 11:16:17 GMT
  2. blocking: set to 3993
Comment 2
  1. Sebastian Huber, Tue, 14 Jul 2020 05:26:53 GMT
  2. status: changed from assigned to closed
  3. resolution: set to fixed

In 65dc040/rtems:

rtems: Remove rtems_rate_monotonic_period_time_t This type was deprecated in RTEMS 5.1. Close #3596.
Comment 3
  1. Sebastian Huber, Wed, 23 Jun 2021 07:16:03 GMT
  2. keywords: qualification added

3613 - Remove m32c architecture port from upstream tools

Link https://devel.rtems.org/ticket/3613
Id 3613
Reporter Sebastian Huber
Created 19 November 2018 08:59:20
Modified 21 December 2021 15:11:17
Owner Sebastian Huber
Type task
Component arch/m32c
Status closed
Resolution fixed
Version 6
Milestone 6.1
Priority normal
Severity normal
Keywords  
Cc  
Blocking  
Blocked by 3599

Description

The m32c architecture port was removed in RTEMS 5.1. Remove RTEMS-specific support in the upstream tools, e.g. Binutils and GCC.

Comment 1
  1. Sebastian Huber, Mon, 19 Nov 2018 08:59:54 GMT
  2. blockedby: set to 3599
Comment 2
  1. Joel Sherrill, Fri, 17 Dec 2021 16:10:41 GMT

Patch for GCC submitted: ​https://gcc.gnu.org/pipermail/gcc-patches/2021-December/587094.html

Nothing beyond pattern matching in stanzas in ld/configure.tgt and bfd/config.bfd. Asked on binutils mailing list if there is anything to do.

Comment 3
  1. Joel Sherrill, Tue, 21 Dec 2021 15:08:30 GMT

GCC commit pushed here:

​https://gcc.gnu.org/g:1f56dbe2daaa5931356d0018c2c2c17bb4691d0e

GCC WWW commit pushed here:

​https://gcc.gnu.org/git/?p=gcc-wwwdocs.git;a=commit;h=e8c01982ea7abc0acc0c4a52552ca8786abaa4fb

Binutils-GDB commit pushed here:

​https://sourceware.org/git?p=binutils-gdb.git;a=commit;h=ae47e3097e9f0608490ed4a53c1710301d409ad1

Comment 4
  1. Joel Sherrill, Tue, 21 Dec 2021 15:11:17 GMT
  2. status: changed from assigned to closed
  3. resolution: set to fixed

3615 - Convert Tools_Used Wiki page into Support Tools Selection with Criteria

Link https://devel.rtems.org/ticket/3615
Id 3615
Reporter shashvat jain
Created 22 November 2018 13:43:43
Modified 29 November 2022 21:44:27
Owner Chris Johns
Type enhancement
Component admin
Status closed
Resolution wontfix
Version 5
Milestone 6.1
Priority high
Severity normal
Keywords Wiki
Cc  
Blocking  
Blocked by  

Description

Originally, this ticket requested that ToolStatus? and Tools_Used wiki pages be addressed. ToolsStatus? was horribly out of date and removed. This leaves Tools_Used as a list of the tools used at a point in time. This list needs to be updated and grown into a Support Tools section of the Software Engineering Guide. Beyond a list of the tools and their use with RTEMS, it should discuss the attribute(s) that led to the tools selection.

Original ticket description below:

​https://devel.rtems.org/wiki/TBR/Review/ToolStatus This page's data is very old and needs to be updated so that it can be added to the wiki with a link to the home page name "Development Tools".

All the data about the tools on the page must be updated to the latest used by RTEMS 5 , this new page can either be added to the page ​https://devel.rtems.org/wiki/Tools_Used or be made into a separate page altogether .
Advice on the placement of the new page is needed.

Comment 1
  1. Gedare Bloom, Thu, 22 Nov 2018 15:02:16 GMT
  2. owner: set to Chris Johns
  3. status: changed from new to assigned
Comment 2
  1. Joel Sherrill, Thu, 22 Nov 2018 15:56:20 GMT

Given the age of this information, I would say delete the page and fix references. Is there anything of value left in it?

Comment 3
  1. Chris Johns, Fri, 23 Nov 2018 00:27:54 GMT

I can see no value in either page. Please delete the pages and close this ticket.

Comment 4
  1. shashvat jain, Fri, 23 Nov 2018 03:39:39 GMT

Does this wiki already has a "development tools" page , the information is quite old , is it worth deleting these and adding a new one which are updated?

Comment 5
  1. Chris Johns, Fri, 23 Nov 2018 03:51:02 GMT

Replying to shashvat jain:

Does this wiki already has a "development tools" page , the information is quite old , is it worth deleting these and adding a new one which are updated?

No it does have one. A wiki page for this type of thing for RTEMS is difficult to get right. The issues are:

Each version of RTEMS has a specific set of tools so a single page would not work. The tool matrix is complex with different versions of the various tools for different architectures and then differences for these for different hosts. You can see this my looking at the build output from the RSB on the build list, for example a recent ARM build (​https://lists.rtems.org/pipermail/build/2018-November/001318.html) The last section is the build report that lists the files and patches. The term "Tools" covers the compiler and its tools plus it now it includes the various eco-system tools. The size of the page would be large and getting all the detail right would be an busy long term task.
Comment 6
  1. shashvat jain, Fri, 23 Nov 2018 06:09:02 GMT

Replying to Chris Johns:

Replying to shashvat jain:

Does this wiki already has a "development tools" page , the information is quite old , is it worth deleting these and adding a new one which are updated?

No it does have one. A wiki page for this type of thing for RTEMS is difficult to get right. The issues are:

Each version of RTEMS has a specific set of tools so a single page would not work. The tool matrix is complex with different versions of the various tools for different architectures and then differences for these for different hosts. You can see this my looking at the build output from the RSB on the build list, for example a recent ARM build (​https://lists.rtems.org/pipermail/build/2018-November/001318.html) The last section is the build report that lists the files and patches. The term "Tools" covers the compiler and its tools plus it now it includes the various eco-system tools. The size of the page would be large and getting all the detail right would be an busy long term task.

1)We may add the page for the current version under development 5 2)Instead of a tool matrix , we can mention all the tools shared by architecures like gdb , gcc newlib , g++ , binutils , etc . 3)If the term tools covers so much then can we make a document covering everything about the compiler ? , if we spend some time and make it , the next step left would be just to update it timely when the version changes.

Do you think it is worth the time and effort of updating?

Comment 7
  1. Chris Johns, Sun, 25 Nov 2018 00:08:37 GMT

Replying to shashvat jain:

1)We may add the page for the current version under development 5

What happens for RTEMS 6 or 7 etc?

2)Instead of a tool matrix , we can mention all the tools shared by architecures like gdb , gcc newlib , g++ , binutils , etc .

This changes all the time.

3)If the term tools covers so much then can we make a document covering everything about the compiler ? , if we spend some time and make it , the next step left would be just to update it timely when the version changes.

We have this in the documentation ...

​https://docs.rtems.org/branches/master/user/tools/index.html

Do you think it is worth the time and effort of updating?

No I do not think it is worth updating. A better solution is add to the RSB a way to generate the reports we need.

Chris

Comment 8
  1. shashvat jain, Sun, 25 Nov 2018 06:58:35 GMT

Replying to Chris Johns:

Replying to shashvat jain:

1)We may add the page for the current version under development 5

What happens for RTEMS 6 or 7 etc?

2)Instead of a tool matrix , we can mention all the tools shared by architecures like gdb , gcc newlib , g++ , binutils , etc .

This changes all the time.

3)If the term tools covers so much then can we make a document covering everything about the compiler ? , if we spend some time and make it , the next step left would be just to update it timely when the version changes.

We have this in the documentation ...

​https://docs.rtems.org/branches/master/user/tools/index.html

Do you think it is worth the time and effort of updating?

No I do not think it is worth updating. A better solution is add to the RSB a way to generate the reports we need.

Chris

All my doubts are solved , I have no reason to stop you from closing this Ticket . Thank you

Comment 9
  1. Joel Sherrill, Fri, 13 Dec 2019 15:31:06 GMT

I just removed ​​https://devel.rtems.org/wiki/TBR/Review/ToolStatus since it had very out of date information.

​https://devel.rtems.org/wiki/Tools_Used is a modest version of what we want in the Software Engineering Guide for documenting supporting tools.

Comment 10
  1. Joel Sherrill, Fri, 13 Dec 2019 15:40:28 GMT
  2. summary: changed from [Wiki]Update data on development tools and Find a new home for it. to Convert Tools_Used Wiki page into Support Tools Selection with Criteria
  3. description: modified (diff)
  4. milestone: changed from 5.1 to 6.1
Comment 11
  1. Chris Johns, Tue, 29 Nov 2022 21:44:27 GMT
  2. status: changed from assigned to closed
  3. resolution: set to wontfix

This should be in the User Guide.


3657 - Add support for poll.h method - poll

Link https://devel.rtems.org/ticket/3657
Id 3657
Reporter Marçal Comajoan Cara
Created 11 December 2018 16:35:18
Modified 3 December 2021 20:50:09
Owner  
Type enhancement
Component posix
Status closed
Resolution fixed
Version  
Milestone 6.1
Priority normal
Severity normal
Keywords POSIX-Compliance
Cc  
Blocking  
Blocked by  

Description

According to the RTEMS POSIX 1003.1 Compliance Guide, poll() from poll.h is not supported (​https://docs.rtems.org/branches/master/posix-compliance/posix-compliance.html#poll-h)

PS: I wrote the test for POSIX API Signature Compliance Test and it compiled correctly but I suppose that some things are still not fully supported.

Comment 1
  1. Marçal Comajoan Cara, Tue, 11 Dec 2018 19:23:39 GMT

In 6ab788d/rtems:

psxhdrs: Implement POSIX API Signature Compliance Tests for poll.h (GCI 2018) poll.h implements poll() which is not supported by RTEMS according to the RTEMS POSIX 1003.1 Compliance Guide. See #3657. This work was part of GCI 2018.
Comment 2
  1. Joel Sherrill, Fri, 03 Dec 2021 20:50:09 GMT
  2. status: changed from new to closed
  3. resolution: set to fixed
  4. milestone: changed from Indefinite to 6.1

poll() is in rtems-libbsd. Compliance spreadsheet updated.


3659 - LEON3 kernel entry point is overwritten - secondary processors may enter into spurious handler

Link https://devel.rtems.org/ticket/3659
Id 3659
Reporter Martin Aberg
Created 13 December 2018 14:55:49
Modified 29 September 2021 13:28:14
Owner  
Type defect
Component arch/sparc
Status closed
Resolution fixed
Version 5
Milestone 6.1
Priority normal
Severity normal
Keywords qualification
Cc  
Blocking  
Blocked by  

Description

When linking a LEON3 RTEMS SMP application, the entry point in the ELF output file is set to the symbol "start".

"start" is the first entry in the trap table and directly jumps to "hard_reset".

The boot CPU does the following in the boot_card():

  • Release other CPUs from power-down (but does not wait here)
  • Some other initializations
  • Overwrite trap entry 0 with spurious interrupt handler
  • The rest
  • It means that the entry point is guaranteed to be valid for the first CPU entering the RTEMS kernel. But 1. and 3. above gives a race. non-first CPU:s will either enter the kernel properly or end up in the spurious interrupt handler depending on how quick it reaches the "start" label.

    One example where this has been an issue is when secondary processors run for some time (self-tests) in a ROM boot loader before entering the RTEMS (ELF) entry point. It is convenient to use the ELF file entry point for all processors.

    Possible solutions:

    a.
    Do not install spurious handler on trap table entry 0. For example by changing bsps/sparc/leon3/start/spurious.c:

     -  for ( trap=1 ; trap<256 ; trap++ ) {
    + for ( trap=0 ; trap<256 ; trap++ ) {

    (This changes address 0 on GR740. So following a null function pointer may not end up in spurious trap anymore.)

    b.
    Change the SPARC ELF entry point. For example to the symbol hard_reset.

    c.
    Document that the entry point for boot processor is "start" and entry point for other processors is "hard_reset".

    Comment 1
    1. Sebastian Huber, Fri, 18 Jun 2021 09:24:45 GMT
    2. keywords: qualification added
    Comment 2
    1. Sebastian Huber, Thu, 02 Sep 2021 05:57:51 GMT
    2. milestone: set to 6.1

    This was fixed by #4459. The trap table is now read-only.

    Comment 3
    1. Sebastian Huber, Wed, 29 Sep 2021 13:28:14 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed

    3689 - bdbuf: Replace automatic read-ahead with rtems_bdbuf_peek()

    Link https://devel.rtems.org/ticket/3689
    Id 3689
    Reporter Sebastian Huber
    Created 11 February 2019 10:49:25
    Modified 7 April 2021 05:04:32
    Owner Sebastian Huber
    Type enhancement
    Component lib/block
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The block device cache (bdbuf) tries to deduce a read ahead opportunity from the read access pattern. Using real world FAT file systems showed that this is not very reliable and the read ahead seldom happens. One way to fix this issue is let file systems give a hint to the block device cache that they will likely read a certain block in the future, e.g. the next block in a sequential file read. Remove the existing read ahead logic and add a new function rtems_bdbuf_peek() instead.

    Attachments:

    1 Sebastian Huber, Mon, 11 Feb 2019 10:49:48 GMT
      attach: set to 0001-FIXME-bdbuf-Add-rtems_bdbuf_peek.patch
     
    Comment 1
    1. Chris Johns, Mon, 11 Feb 2019 11:03:03 GMT

    Why is the status returned from the peek in fat_file_read not checked?

    Comment 2
    1. Sebastian Huber, Mon, 11 Feb 2019 11:04:30 GMT

    The data is not used yet. It is just a hint, maybe we should remove a return code from rtems_bdbuf_peek().

    Comment 3
    1. Chris Johns, Mon, 11 Feb 2019 11:09:51 GMT

    I would not remove the return code, it may be used in another file system.

    Comment 4
    1. Sebastian Huber, Thu, 19 Dec 2019 08:07:34 GMT
    2. milestone: changed from 5.1 to 6.1
    Comment 5
    1. Christian Mauderer, Fri, 26 Mar 2021 13:28:22 GMT

    In 6ae79e6/rtems:

    libblock: Add rtems_bdbuf_peek() Adds a peek function that allows (for example) a file system to suggest the next blocks that should be used for read ahead. This can increase the read speed of fragmented files. Update #3689
    Comment 6
    1. Christian Mauderer, Fri, 26 Mar 2021 13:28:26 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In fd639b8/rtems:

    dosfs: Use peek support This speeds up reading fragmented files. Fix #3689
    Comment 7
    1. Sebastian Huber, Wed, 07 Apr 2021 05:04:32 GMT

    In b3364fc6/rtems:

    libtests/block14: Fix warning Fix warning: testsuites/libtests/block14/init.c:198:8: warning: 'sc' may be used
    uninitialized in this function [-Wmaybe-uninitialized]
    Update #3689.

    3698 - libdl failure on many PowerPC BSPs

    Link https://devel.rtems.org/ticket/3698
    Id 3698
    Reporter Joel Sherrill
    Created 21 February 2019 16:14:30
    Modified 16 December 2021 22:18:34
    Owner  
    Type defect
    Component lib/dl
    Status closed
    Resolution worksforme
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The following BSPs do not build dl09:

    powerpc-beatnik
    powerpc-brs5l
    powerpc-brs6l
    powerpc-dp2
    powerpc-haleakala
    powerpc-icecube
    powerpc-mcp750
    powerpc-mpc8260ads
    powerpc-mtx603e
    powerpc-mvme2100
    powerpc-mvme2307
    powerpc-mvme3100
    powerpc-mvme5500
    powerpc-pm520_cr825
    powerpc-pm520_ze30
    powerpc-qemuprep-altivec
    powerpc-qemuprep
    powerpc-qoriq_e6500_64
    powerpc-ss555
    powerpc-virtex4
    powerpc-virtex5

    They fail with this:

    gmake[5]: Entering directory `/home/joel/rtems-work/rtems-testing/rtems/build-powerpc-qemuprep-rtems/powerpc-rtems5/c/qemuprep/testsuites/libtests'
    powerpc-rtems5-gcc -mcpu=powerpc -mmultiple -mstring -mstrict-align -O2 -g -ffunction-sections -fdata-sections -Wall -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs -Wl,--gc-sections -mcpu=powerpc -mmultiple -mstring -mstrict-align -B./../../lib/libbsp/powerpc/motorola_powerpc -B/home/joel/rtems-work/rtems-testing/rtems/rtems/bsps/powerpc/motorola_powerpc/start -specs bsp_specs -qrtems -L./../../cpukit -L/home/joel/rtems-work/rtems-testing/rtems/rtems/bsps/powerpc/shared/start -Wl,--wrap=printf -Wl,--wrap=puts -Wl,--wrap=putchar -o dl01.pre dl01/dl01-init.o dl01/dl01-dl-load.o dl01-dl01-tar.o ../../lib/libbsp/powerpc/motorola_powerpc/librtemsbsp.a ../../cpukit/librtemscpu.a
    /home/joel/rtems-work/tools/5/lib/gcc/powerpc-rtems5/7.4.0/../../../../powerpc-rtems5/bin/ld: ../../cpukit/librtemscpu.a(rtl-mdreloc-powerpc.o): in function `get_sdata_libdl_size':
    /home/joel/rtems-work/rtems-testing/rtems/build-powerpc-qemuprep-rtems/powerpc-rtems5/c/qemuprep/cpukit/../../../../../rtems/c/src/../../cpukit/libdl/rtl-mdreloc-powerpc.c:73: undefined reference to `bsp_section_sdata_libdl_begin'
    /home/joel/rtems-work/tools/5/lib/gcc/powerpc-rtems5/7.4.0/../../../../powerpc-rtems5/bin/ld: /home/joel/rtems-work/rtems-testing/rtems/build-powerpc-qemuprep-rtems/powerpc-rtems5/c/qemuprep/cpukit/../../../../../rtems/c/src/../../cpukit/libdl/rtl-mdreloc-powerpc.c:73: undefined reference to `bsp_section_sdata_libdl_begin'
    /home/joel/rtems-work/tools/5/lib/gcc/powerpc-rtems5/7.4.0/../../../../powerpc-rtems5/bin/ld: /home/joel/rtems-work/rtems-testing/rtems/build-powerpc-qemuprep-rtems/powerpc-rtems5/c/qemuprep/cpukit/../../../../../rtems/c/src/../../cpukit/libdl/rtl-mdreloc-powerpc.c:74: undefined reference to `bsp_section_sdata_libdl_end'
    /home/joel/rtems-work/tools/5/lib/gcc/powerpc-rtems5/7.4.0/../../../../powerpc-rtems5/bin/ld: /home/joel/rtems-work/rtems-testing/rtems/build-powerpc-qemuprep-rtems/powerpc-rtems5/c/qemuprep/cpukit/../../../../../rtems/c/src/../../cpukit/libdl/rtl-mdreloc-powerpc.c:74: undefined reference to `bsp_section_sdata_libdl_end'
    /home/joel/rtems-work/tools/5/lib/gcc/powerpc-rtems5/7.4.0/../../../../powerpc-rtems5/bin/ld: ../../cpukit/librtemscpu.a(rtl-mdreloc-powerpc.o): in function `get_sdata_sbss_size':
    /home/joel/rtems-work/rtems-testing/rtems/build-powerpc-qemuprep-rtems/powerpc-rtems5/c/qemuprep/cpukit/../../../../../rtems/c/src/../../cpukit/libdl/rtl-mdreloc-powerpc.c:63: undefined reference to `bsp_section_sdata_begin'
    /home/joel/rtems-work/tools/5/lib/gcc/powerpc-rtems5/7.4.0/../../../../powerpc-rtems5/bin/ld: /home/joel/rtems-work/rtems-testing/rtems/build-powerpc-qemuprep-rtems/powerpc-rtems5/c/qemuprep/cpukit/../../../../../rtems/c/src/../../cpukit/libdl/rtl-mdreloc-powerpc.c:63: undefined reference to `bsp_section_sdata_begin'
    /home/joel/rtems-work/tools/5/lib/gcc/powerpc-rtems5/7.4.0/../../../../powerpc-rtems5/bin/ld: /home/joel/rtems-work/rtems-testing/rtems/build-powerpc-qemuprep-rtems/powerpc-rtems5/c/qemuprep/cpukit/../../../../../rtems/c/src/../../cpukit/libdl/rtl-mdreloc-powerpc.c:64: undefined reference to `bsp_section_sbss_end'
    /home/joel/rtems-work/tools/5/lib/gcc/powerpc-rtems5/7.4.0/../../../../powerpc-rtems5/bin/ld: /home/joel/rtems-work/rtems-testing/rtems/build-powerpc-qemuprep-rtems/powerpc-rtems5/c/qemuprep/cpukit/../../../../../rtems/c/src/../../cpukit/libdl/rtl-mdreloc-powerpc.c:64: undefined reference to `bsp_section_sbss_end'
    collect2: error: ld returned 1 exit status
    Comment 1
    1. Chris Johns, Thu, 21 Feb 2019 21:35:03 GMT

    Why do we have linkcmds.base and linkcmds.share in this arch and what are there differences? Why are the names similar?

    I cannot find a any local readme type files explaining the reason there are two files. The git log entry for the addition of this file offers no insight.

    At a guess the addition of mpc55xx as a new BSP required a new linkcmd file, which is fine, however an explanation on difference and rational would be helpful to me at this point.

    Comment 2
    1. Sebastian Huber, Fri, 22 Feb 2019 10:04:59 GMT

    The reason for this is excessive use of copy and paste in the past combined with the long history of the PowerPC port.

    The bsps/powerpc/shared/start/linkcmds.base is similar to the bsps/arm/shared/start/linkcmds.base or bsps/riscv/shared/start/linkcmds.base. It uses memory regions and should be used for new BSPs.

    The 64-bit PowerPC ELFv2 ABI has no small data area.

    Comment 3
    1. Chris Johns, Sat, 23 Feb 2019 23:32:17 GMT

    I now see there are a couple of other BSP specific linkcmds files all of which need to be modified.

    I am now seeing:

    gmake[5]: Entering directory '/opt/work/chris/rtems/kernel/bsps/psim/powerpc-rtems5/c/mpc5643l_dpu/testsuites/sptests'
    powerpc-rtems5-gcc  -mcpu=8540 -meabi -msdata=sysv -fno-common -msoft-float -mno-spe -mstrict-align -O2 -g -fno-keep-inline-functions -ffunction-sections -fdata-sections -Wall -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs -B./../../lib/libbsp/powerpc/mpc55xxevb -B/opt/work/chris/rtems/kernel/rtems.git/bsps/powerpc/mpc55xxevb/start -specs bsp_specs -qrtems -L./../../cpukit -L/opt/work/chris/rtems/kernel/rtems.git/bsps/powerpc/shared/start -Wl,--wrap=printf -Wl,--wrap=puts -Wl,--wrap=putchar -Wl,--gc-sections -o sp47.exe sp47/sp47-init.o ./../../lib/libbsp/powerpc/mpc55xxevb/librtemsbsp.a ./../../cpukit/librtemscpu.a
    /opt/work/rtems/5/lib/gcc/powerpc-rtems5/7.4.0/../../../../powerpc-rtems5/bin/ld:linkcmds.mpc55xx:18 cannot move location counter backwards (from 00000000400165c0 to 0000000040010000)
    collect2: error: ld returned 1 exit status
    gmake[5]: *** [Makefile:5229: sp47.exe] Error 1 

    and this does not look related to what I have been working on. Is this test too big for this target?

    Comment 4
    1. Chris Johns, Sat, 23 Feb 2019 23:59:32 GMT

    Further investigation of the mpc5643l_dpu BSP I see a lot of tests are failing to link. I think this BSP should have all tests disabled, sorry I have no capacity to maintaining this stuff.

    What has changed in RTEMS to cause the tests to overflow the memory area? Is a bisect needed?

    I will now look at adding regx support to the .tcfg files so wildcards can be supported. To exclude all tests:

    rexclude * 

    can be used as a simple way to disable all tests. I may consider rexclude and rinclude as an order set of filters so:

    rexclude *
    rinclude samples/* 

    This syntax introduces the / delimiter so specific groups can be filtered.

    Comment 5
    1. Sebastian Huber, Mon, 25 Feb 2019 06:16:13 GMT

    The reason for the recent link-time errors on some small memory BSPs is the change from workspace initialization to static allocation for the objects. I work on this already, but is a bit tedious. My approach is to add some general *.tcfg files like this:

    testsuites/testdata/disable-256k-data-or-more-tests.tcfg testsuites/testdata/disable-128k-data-or-more-tests.tcfg testsuites/testdata/disable-64k-data-or-more-tests.tcfg testsuites/testdata/disable-32k-data-or-more-tests.tcfg

    Comment 6
    1. Chris Johns, Wed, 26 Feb 2020 03:53:03 GMT
    2. milestone: changed from 5.1 to 6.1
    Comment 7
    1. Chris Johns, Sun, 07 Feb 2021 22:11:02 GMT

    What is the status of this ticket?

    Comment 8
    1. Chris Johns, Sun, 07 Feb 2021 22:11:42 GMT
    2. owner: Chris Johns deleted
    3. status: changed from assigned to new
    Comment 9
    1. Ryan Long, Thu, 16 Dec 2021 22:18:11 GMT

    Test built for the beatnik BSP

    Comment 10
    1. Ryan Long, Thu, 16 Dec 2021 22:18:34 GMT
    2. status: changed from new to closed
    3. resolution: set to worksforme

    3702 - Space profile for RTEMS SMP

    Link https://devel.rtems.org/ticket/3702
    Id 3702
    Reporter Sebastian Huber
    Created 26 February 2019 10:33:00
    Modified 3 December 2021 05:54:40
    Owner Sebastian Huber
    Type task
    Component doc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking 3701
    Blocked by  

    Description

    Define a subset of RTEMS SMP functionality which is

    • useful for space applications, and
    • can be pre-qualified by project #3701.

    To figure out the feature set carry out an online survey. In addition, do a workshop at ESA / ESTEC premises (also accessible on-line via Skype for Business).

    The space profile needs to be documented.

    Comment 1
    1. Sebastian Huber, Tue, 26 Feb 2019 13:30:45 GMT
    2. status: changed from assigned to accepted
    Comment 2
    1. Sebastian Huber, Fri, 19 Nov 2021 14:44:03 GMT
    2. status: changed from accepted to closed
    3. resolution: set to fixed

    The Technical Note: Space Profile is finalized:

    ​https://ftp.rtems.org/pub/rtems/people/sebh/tn-space-profile-r6-23062019.pdf

    Please note that the pre-qualified feature set of RTEMS is a proper superset of the space profile.

    Comment 3
    1. Joel Sherrill, Fri, 19 Nov 2021 14:56:54 GMT

    Would it be possible to generate a document similar to the one you linked to which documents that superset? Asked another way, how could someone approaching RTEMS.org know the subset of RTEMS which has the supporting artifacts for pre-qualification?

    Comment 4
    1. Sebastian Huber, Fri, 19 Nov 2021 15:00:19 GMT

    Yes, this is possible, but I think this belongs to another ticket. I am currently busy with integrating all my work in progress.

    Comment 5
    1. Sebastian Huber, Thu, 02 Dec 2021 11:10:16 GMT

    Just for reference, a list of pre-qualified interfaces can be obtained via the ./specview.py --filter=api.

    Application Configuration Information rtems_configuration_get_idle_task rtems_configuration_get_idle_task_stack_size rtems_configuration_get_interrupt_stack_size rtems_configuration_get_maximum_barriers rtems_configuration_get_maximum_extensions rtems_configuration_get_maximum_message_queues rtems_configuration_get_maximum_partitions rtems_configuration_get_maximum_periods rtems_configuration_get_maximum_processors rtems_configuration_get_maximum_semaphores rtems_configuration_get_maximum_tasks rtems_configuration_get_maximum_timers rtems_configuration_get_microseconds_per_tick rtems_configuration_get_milliseconds_per_tick rtems_configuration_get_nanoseconds_per_tick rtems_configuration_get_stack_allocate_for_idle_hook rtems_configuration_get_stack_allocate_hook rtems_configuration_get_stack_allocator_avoids_work_space rtems_configuration_get_stack_free_hook rtems_configuration_get_ticks_per_timeslice Barrier Manager rtems_barrier_create rtems_barrier_delete rtems_barrier_ident rtems_barrier_release rtems_barrier_wait Base Definitions RTEMS_ALIAS RTEMS_ALIGNED RTEMS_ALIGNOF RTEMS_ALIGN_DOWN RTEMS_ALIGN_UP RTEMS_ALLOC_ALIGN RTEMS_ALLOC_SIZE RTEMS_ALLOC_SIZE_2 RTEMS_ARRAY_SIZE RTEMS_COMPILER_MEMORY_BARRIER RTEMS_CONCAT RTEMS_CONTAINER_OF RTEMS_DECLARE_GLOBAL_SYMBOL RTEMS_DECONST RTEMS_DEFINE_GLOBAL_SYMBOL RTEMS_DEQUALIFY RTEMS_DEQUALIFY_DEPTHX RTEMS_DEVOLATILE RTEMS_EXPAND RTEMS_HAVE_MEMBER_SAME_TYPE RTEMS_OBFUSCATE_VARIABLE RTEMS_PREDICT_FALSE RTEMS_PREDICT_TRUE RTEMS_PRINTFLIKE RTEMS_RETURN_ADDRESS RTEMS_SECTION RTEMS_STATIC_ASSERT RTEMS_STRING RTEMS_SYMBOL_NAME RTEMS_TYPEOF_REFX RTEMS_UNREACHABLE RTEMS_WEAK_ALIAS RTEMS_XCONCAT RTEMS_XSTRING C and POSIX clock_nanosleep flsl memcpy memset posix_memalign CPU Usage Reporting rtems_cpu_usage_reset Cache Manager rtems_cache_disable_data rtems_cache_disable_instruction rtems_cache_enable_data rtems_cache_enable_instruction rtems_cache_flush_entire_data rtems_cache_flush_multiple_data_lines rtems_cache_get_data_cache_size rtems_cache_get_data_line_size rtems_cache_get_instruction_cache_size rtems_cache_get_instruction_line_size rtems_cache_get_maximal_line_size rtems_cache_instruction_sync_after_code_change rtems_cache_invalidate_entire_data rtems_cache_invalidate_entire_instruction rtems_cache_invalidate_multiple_data_lines rtems_cache_invalidate_multiple_instruction_lines Classic API Configuration CONFIGURE_MAXIMUM_BARRIERS CONFIGURE_MAXIMUM_MESSAGE_QUEUES CONFIGURE_MAXIMUM_PARTITIONS CONFIGURE_MAXIMUM_PERIODS CONFIGURE_MAXIMUM_SEMAPHORES CONFIGURE_MAXIMUM_TASKS CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE CONFIGURE_MAXIMUM_TIMERS CONFIGURE_MAXIMUM_USER_EXTENSIONS CONFIGURE_MINIMUM_TASKS_WITH_USER_PROVIDED_STORAGE Classic API Initialization Task Configuration CONFIGURE_INIT_TASK_ARGUMENTS CONFIGURE_INIT_TASK_ATTRIBUTES CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE CONFIGURE_INIT_TASK_ENTRY_POINT CONFIGURE_INIT_TASK_INITIAL_MODES CONFIGURE_INIT_TASK_NAME CONFIGURE_INIT_TASK_PRIORITY CONFIGURE_RTEMS_INIT_TASKS_TABLE Clock Manager rtems_clock_get_boot_time rtems_clock_get_boot_time_bintime rtems_clock_get_boot_time_timeval rtems_clock_get_monotonic rtems_clock_get_monotonic_bintime rtems_clock_get_monotonic_coarse rtems_clock_get_monotonic_coarse_bintime rtems_clock_get_monotonic_coarse_timeval rtems_clock_get_monotonic_sbintime rtems_clock_get_monotonic_timeval rtems_clock_get_realtime rtems_clock_get_realtime_bintime rtems_clock_get_realtime_coarse rtems_clock_get_realtime_coarse_bintime rtems_clock_get_realtime_coarse_timeval rtems_clock_get_realtime_timeval rtems_clock_get_ticks_per_second rtems_clock_get_ticks_since_boot rtems_clock_get_tod rtems_clock_get_uptime rtems_clock_set Device Driver Configuration CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER Directive Status Codes rtems_are_statuses_equal rtems_is_status_successful rtems_status_text Dynamic Memory Allocation rtems_calloc rtems_malloc Event Manager rtems_event_receive rtems_event_send Fatal Error Manager rtems_fatal Filesystem Configuration CONFIGURE_APPLICATION_DISABLE_FILESYSTEM General Scheduler Configuration CONFIGURE_MAXIMUM_PRIORITY CONFIGURE_SCHEDULER_ASSIGNMENTS CONFIGURE_SCHEDULER_EDF_SMP CONFIGURE_SCHEDULER_NAME CONFIGURE_SCHEDULER_PRIORITY General System Configuration CONFIGURE_DISABLE_BSP_SETTINGS CONFIGURE_DISABLE_NEWLIB_REENTRANCY CONFIGURE_INITIAL_EXTENSIONS CONFIGURE_INTERRUPT_STACK_SIZE CONFIGURE_MAXIMUM_FILE_DESCRIPTORS CONFIGURE_MAXIMUM_PROCESSORS CONFIGURE_MICROSECONDS_PER_TICK CONFIGURE_MINIMUM_TASK_STACK_SIZE CONFIGURE_TICKS_PER_TIMESLICE Idle Task Configuration CONFIGURE_IDLE_TASK_BODY CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION CONFIGURE_IDLE_TASK_STACK_SIZE Interrupt Manager RTEMS_INTERRUPT_ENTRY_INITIALIZER RTEMS_INTERRUPT_LOCK_DECLARE RTEMS_INTERRUPT_LOCK_DEFINE RTEMS_INTERRUPT_LOCK_INITIALIZER RTEMS_INTERRUPT_LOCK_MEMBER RTEMS_INTERRUPT_LOCK_REFERENCE rtems_interrupt_clear rtems_interrupt_entry_initialize rtems_interrupt_entry_install rtems_interrupt_entry_remove rtems_interrupt_get_affinity rtems_interrupt_get_attributes rtems_interrupt_handler_iterate rtems_interrupt_is_pending rtems_interrupt_local_disable rtems_interrupt_local_enable rtems_interrupt_lock_acquire rtems_interrupt_lock_acquire_isr rtems_interrupt_lock_destroy rtems_interrupt_lock_initialize rtems_interrupt_lock_interrupt_disable rtems_interrupt_lock_release rtems_interrupt_lock_release_isr rtems_interrupt_raise rtems_interrupt_raise_on rtems_interrupt_set_affinity rtems_interrupt_vector_disable rtems_interrupt_vector_enable rtems_interrupt_vector_is_enabled Kernel Character I/O Support getchark rtems_put_char rtems_putc Message Manager RTEMS_MESSAGE_QUEUE_BUFFER rtems_message_queue_broadcast rtems_message_queue_construct rtems_message_queue_delete rtems_message_queue_flush rtems_message_queue_get_number_pending rtems_message_queue_ident rtems_message_queue_receive rtems_message_queue_send rtems_message_queue_urgent Newlib _Futex_Wait _Futex_Wake _Mutex_Acquire _Mutex_Acquire_timed _Mutex_Release _Mutex_Try_acquire _Mutex_recursive_Acquire _Mutex_recursive_Acquire_timed _Mutex_recursive_Release _Mutex_recursive_Try_acquire Object Services rtems_build_name rtems_object_get_local_node Partition Manager rtems_partition_create rtems_partition_delete rtems_partition_get_buffer rtems_partition_ident rtems_partition_return_buffer Rate-Monotonic Manager rtems_rate_monotonic_cancel rtems_rate_monotonic_create rtems_rate_monotonic_delete rtems_rate_monotonic_get_status rtems_rate_monotonic_ident rtems_rate_monotonic_period Scheduler Manager rtems_scheduler_add_processor rtems_scheduler_get_maximum_priority rtems_scheduler_get_processor rtems_scheduler_get_processor_maximum rtems_scheduler_get_processor_set rtems_scheduler_ident rtems_scheduler_ident_by_processor rtems_scheduler_ident_by_processor_set rtems_scheduler_remove_processor Semaphore Manager rtems_semaphore_create rtems_semaphore_delete rtems_semaphore_flush rtems_semaphore_ident rtems_semaphore_obtain rtems_semaphore_release rtems_semaphore_set_priority Signal Manager rtems_signal_catch rtems_signal_send Support Services rtems_is_name_valid rtems_name_to_characters Task Manager RTEMS_TASK_STORAGE_SIZE rtems_task_construct rtems_task_create rtems_task_delete rtems_task_exit rtems_task_get_affinity rtems_task_get_priority rtems_task_get_scheduler rtems_task_ident rtems_task_is_suspended rtems_task_iterate rtems_task_mode rtems_task_restart rtems_task_resume rtems_task_self rtems_task_set_affinity rtems_task_set_priority rtems_task_set_scheduler rtems_task_start rtems_task_suspend rtems_task_wake_after rtems_task_wake_when Task Modes RTEMS_INTERRUPT_LEVEL Task Stack Allocator Configuration CONFIGURE_TASK_STACK_ALLOCATOR CONFIGURE_TASK_STACK_ALLOCATOR_AVOIDS_WORK_SPACE CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE CONFIGURE_TASK_STACK_DEALLOCATOR Timer Manager rtems_timer_cancel rtems_timer_create rtems_timer_delete rtems_timer_fire_after rtems_timer_fire_when rtems_timer_ident rtems_timer_initiate_server rtems_timer_reset rtems_timer_server_fire_after rtems_timer_server_fire_when User Extensions Manager rtems_extension_create rtems_extension_delete rtems_extension_ident
    Comment 6
    1. Joel Sherrill, Thu, 02 Dec 2021 22:15:47 GMT

    I'm sure that list is right but wasn't there a small set of POSIX APIs which were candidates? I looked for pthread_once() which I expected but isn't there. Was thinking of the pthread APIs which were always on before the POSIX configuration was reworked -- once and keys.

    Comment 7
    1. Sebastian Huber, Fri, 03 Dec 2021 05:54:40 GMT

    We considered to add POSIX keys and once, but we had no time left over to do this.


    3704 - Review and update Doxygen recommendations

    Link https://devel.rtems.org/ticket/3704
    Id 3704
    Reporter Sebastian Huber
    Created 26 February 2019 13:10:56
    Modified 26 July 2023 05:05:47
    Owner Sebastian Huber
    Type task
    Component doc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking 3705, 3706
    Blocked by  

    Description

    Review and update the ​Doxygen recommendations.

    Due to the removal of the pre-install build step we can now use Doxygen directly with header files in the source tree. It should be possible to generate documentation for all architectures and BSPs.

    All code files (headers, C source, assembler) should have an @file entry belong to at least one Doxygen group (@ingroup).

    There are a lot of source file in RTEMS (excluding test code and legacy network stack):

    find bsps cpukit -name '*.[chsS]' | grep -v libnetworking | wc
    4898 4898 187167

    Creating the groups and categorizing all code file is a labour intensive work package. Therefore it should be discussed if the @brief and descriptions for files should be removed. The file content will be covered by groups and individual documentation.

    The use of @param should be clarified. It is not clear if the [in], [out] or [in,out] should be used. If they should be used, what they mean exactly.

    Comment 1
    1. Sebastian Huber, Tue, 26 Feb 2019 13:12:31 GMT
    2. blocking: changed from 3701 to 3701, 3705
    Comment 2
    1. Sebastian Huber, Tue, 26 Feb 2019 13:23:37 GMT
    2. blocking: changed from 3701, 3705 to 3701, 3705, 3706
    Comment 3
    1. Sebastian Huber, Tue, 26 Feb 2019 13:30:16 GMT
    2. blocking: changed from 3701, 3705, 3706 to 3705, 3706
    Comment 4
    1. Sebastian Huber, Tue, 26 Feb 2019 13:30:45 GMT
    2. status: changed from assigned to accepted
    Comment 5
    1. Sebastian Huber, Thu, 04 Apr 2019 05:22:51 GMT

    In fbe8a7a/rtems:

    doxygen: Rework some Doxygen comments They are intended as examples in the RTEMS Software Engineering manual. Update #3704.
    Comment 6
    1. Sebastian Huber, Thu, 04 Apr 2019 05:40:37 GMT

    In 1d48fb5/rtems-docs:

    bsp-howto: Move BSP Doxygen recommendations Update #3704.
    Comment 7
    1. Sebastian Huber, Fri, 05 Apr 2019 05:47:11 GMT

    In 8a8b95aa/rtems:

    doxygen: Update _Objects_Build_name() This is intended as an example in the RTEMS Software Engineering manual. Update #3704.
    Comment 8
    1. Sebastian Huber, Fri, 05 Apr 2019 07:40:39 GMT

    In ef19112/rtems-docs:

    eng: Rework Doxygen guidelines Update #3704.
    Comment 9
    1. Sebastian Huber, Wed, 30 Nov 2022 08:51:58 GMT
    2. milestone: changed from 6.1 to 7.1
    Comment 10
    1. Sebastian Huber, Wed, 26 Jul 2023 05:05:47 GMT
    2. status: changed from accepted to closed
    3. resolution: set to fixed
    4. milestone: changed from 7.1 to 6.1

    For RTEMS 6, the guidelines in ​https://docs.rtems.org/branches/master/eng/coding-doxygen.html are good enough.


    3705 - Software Design Document (SDD) for space profile

    Link https://devel.rtems.org/ticket/3705
    Id 3705
    Reporter Sebastian Huber
    Created 26 February 2019 13:12:31
    Modified 23 October 2023 08:57:53
    Owner Sebastian Huber
    Type task
    Component doc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking 3701
    Blocked by 3704, 3706, 3708

    Description

    A Software Design Document (SDD) is required by ​ECSS-E-ST-40C specified by Annex F. The plan is to use Doxygen for the software

    • architecture, and
    • detailed design.

    How should links to from a software component (Doxygen group) to requirements be handled?

    Comment 1
    1. Sebastian Huber, Tue, 26 Feb 2019 13:23:37 GMT
    2. blockedby: changed from 3704 to 3704, 3706
    Comment 2
    1. Sebastian Huber, Tue, 26 Feb 2019 13:30:45 GMT
    2. status: changed from assigned to accepted
    Comment 3
    1. Sebastian Huber, Tue, 26 Feb 2019 14:22:06 GMT
    2. blockedby: changed from 3704, 3706 to 3704, 3706, 3708
    Comment 4
    1. Sebastian Huber, Fri, 01 Mar 2019 10:01:45 GMT

    In e6dd36ca/rtems:

    bsp/gen5200: Remove offending @mainpage Update #3705.
    Comment 5
    1. Sebastian Huber, Mon, 04 Mar 2019 06:54:54 GMT

    In a6e39d4a/rtems:

    Update Doxyfile to Doxygen 1.8.15 Generate Doxygen output in doc and ignore this directory in Git. Add RTEMS logo. The Doxygen documentation is now built using the source tree. Just invoke "doxygen" in the top-level source directory. The Doxyfile works also with at least Doxygen 1.8.13 and Doxygen 1.8.14. Update #3705.
    Comment 6
    1. Sebastian Huber, Wed, 30 Nov 2022 08:52:11 GMT
    2. milestone: changed from 6.1 to 7.1
    Comment 7
    1. Sebastian Huber, Mon, 23 Oct 2023 08:55:24 GMT

    In b8f1988/rtems:

    doxygen: Replace and move main page Replace the main page with a high level description of the RTEMS feature set similar to: ​https://docs.rtems.org/branches/master/user/overview/index.html#features The replaced content can be found in the RTEMS Classic API Guide: ​https://docs.rtems.org/branches/master/c-user/overview.html ​https://docs.rtems.org/branches/master/c-user/key_concepts.html Update #3705.
    Comment 8
    1. Sebastian Huber, Mon, 23 Oct 2023 08:57:53 GMT
    2. status: changed from accepted to closed
    3. resolution: set to fixed
    4. milestone: changed from 7.1 to 6.1

    The Doxygen support is now good enough for the pre-qualified feature set of RTEMS.


    3706 - Create a hierarchy of RTEMS software components using Doxygen groups

    Link https://devel.rtems.org/ticket/3706
    Id 3706
    Reporter Sebastian Huber
    Created 26 February 2019 13:23:37
    Modified 26 July 2023 05:08:21
    Owner Sebastian Huber
    Type task
    Component doc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking 3705, 3707
    Blocked by 3704

    Description

    Create a hierarchy of RTEMS software components using Doxygen groups. Review the existing Doxygen groups (software components) first.

    ​https://docs.rtems.org/doxygen/branches/master/modules.html

    Grouping should be done by at BSP level architecture and then by BSP.

    There should be a device driver group with subgroups for each device class and specific device drivers, e.g. a BSP-specific device driver belongs to a device class and BSP.

    There should be groups for APIs, file systems, support libraries, super core, etc.

    • Board Support Packages
    • Device Drivers
      • Block Devices
        • Block Device Buffer Management
        • Block Device Disk Management
        • Block Device Management
          • XYZ Block Device
        • Block Device Partition Management
      • Cache
        • XYZ Cache Support
      • Console
        • Termios
          • XYZ Driver
      • Framebuffer
        • XYZ Driver
      • I2C
        • Bus Driver
          • XYZ Driver
        • Device Driver
          • XYZ Driver
      • Legacy I2C
      • Legacy Network
      • RTC
        • XYZ Driver
      • Serial Mouse
        • XYZ Driver
      • SPI
        • Bus Driver
          • XYZ Driver
        • Device Driver
          • XYZ Driver
    • API
      • Classic
        • Tasks
      • Dynamic Loading
      • File Systems
      • Memory Management
      • Shell
      • Tracing
        • Event Recording
        • Capture Engine
    • Internal
      • C Library Support
      • POSIX
      • Shell
      • Super Core
        • Thread Handler
        • CPU
          • ARM
    Comment 1
    1. Sebastian Huber, Tue, 26 Feb 2019 13:28:28 GMT
    2. blocking: changed from 3705 to 3705, 3707
    Comment 2
    1. Sebastian Huber, Tue, 26 Feb 2019 13:30:45 GMT
    2. status: changed from assigned to accepted
    Comment 3
    1. Sebastian Huber, Mon, 04 Mar 2019 06:54:58 GMT

    In 212663be/rtems:

    bsps: Adjust architecture Doxygen groups Use CamelCase as it is not used in our C code. Enables simple search and replace. Prefix with "RTEMS" to aid deployment and integration. It aids searching and sorting. Update #3706.
    Comment 4
    1. Sebastian Huber, Mon, 04 Mar 2019 06:55:01 GMT

    In 631ccd7/rtems:

    bsp/altera-cyclone-v: Adjust Doxygen groups Update #3706
    Comment 5
    1. Sebastian Huber, Fri, 08 Mar 2019 07:02:01 GMT

    In c991eeec/rtems:

    bsps: Adjust bsp.h Doxygen groups Update #3706.
    Comment 6
    1. Sebastian Huber, Fri, 08 Mar 2019 07:02:05 GMT

    In 828276b/rtems:

    bsps: Adjust shared Doxygen groups Update #3706.
    Comment 7
    1. Sebastian Huber, Fri, 08 Mar 2019 07:02:08 GMT

    In 15359bb/rtems:

    bsps/arm: Adjust CMSIS Doxygen groups Update #3706.
    Comment 8
    1. Sebastian Huber, Fri, 08 Mar 2019 07:02:11 GMT

    In f3db3835/rtems:

    bsp/altera-cyclone-v: Add Doxygen groups Add Doxygen groups for contributed code which would otherwise end up at the top level. Update #3706.
    Comment 9
    1. Sebastian Huber, Fri, 08 Mar 2019 07:02:14 GMT

    In cbf773d3/rtems:

    bsp/atsam: Add Doxygen groups Add Doxygen groups for contributed code which would otherwise end up at the top level (about 178 groups). Update #3706.
    Comment 10
    1. Sebastian Huber, Fri, 08 Mar 2019 07:02:17 GMT

    In 529b5868/rtems:

    bsps: Adjust umon Doxygen groups Update #3706.
    Comment 11
    1. Sebastian Huber, Wed, 13 Mar 2019 09:15:25 GMT
    2. description: modified (diff)
    Comment 12
    1. Sebastian Huber, Tue, 26 Mar 2019 10:28:40 GMT

    In 40d15f5/rtems:

    score: Add implementation top-level group Update #3706.
    Comment 13
    1. Sebastian Huber, Tue, 26 Mar 2019 10:28:44 GMT

    In 5526527e/rtems:

    score: Rename ScoreCPU Doxygen group Update #3706.
    Comment 14
    1. Sebastian Huber, Tue, 26 Mar 2019 10:28:48 GMT

    In 5a19915/rtems:

    score: Add example CPU architecture group Update #3706.
    Comment 15
    1. Sebastian Huber, Tue, 26 Mar 2019 10:28:51 GMT

    In abec398/rtems:

    score: Add ARM CPU architecture group Update #3706.
    Comment 16
    1. Andreas Dachsberger, Tue, 02 Apr 2019 05:31:55 GMT

    In eca13a8f/rtems:

    doxygen: score: Add Blackfin CPU architecture group Update #3706.
    Comment 17
    1. Andreas Dachsberger, Tue, 02 Apr 2019 05:31:58 GMT

    In 40b90a08/rtems:

    doxygen: score: Add Epiphany CPU architecture group Update #3706.
    Comment 18
    1. Andreas Dachsberger, Tue, 02 Apr 2019 05:32:03 GMT

    In d670ef9/rtems:

    doxygen: score: Add i386 CPU architecture group Update #3706.
    Comment 19
    1. Andreas Dachsberger, Tue, 02 Apr 2019 05:32:07 GMT

    In 9fa3561b/rtems:

    doxygen: score: Add lm32 CPU architecture group Update #3706.
    Comment 20
    1. Andreas Dachsberger, Tue, 02 Apr 2019 05:32:11 GMT

    In ee38c54/rtems:

    doxygen: score: Change no_cpu architecture group Groups CPUContext and CPUInterrupt are now defined with a unique name for this architecture group. Update #3706.
    Comment 21
    1. Andreas Dachsberger, Tue, 02 Apr 2019 05:32:15 GMT

    In 0be1e54/rtems:

    doxygen: score: Add m68k CPU architecture group Update #3706.
    Comment 22
    1. Andreas Dachsberger, Tue, 02 Apr 2019 05:32:19 GMT

    In f2e282d/rtems:

    doxygen: score: Add Moxie CPU architecture group Update #3706.
    Comment 23
    1. Andreas Dachsberger, Tue, 02 Apr 2019 05:32:22 GMT

    In 92c2db64/rtems:

    doxygen: score: Add nios2 CPU architecture group Update #3706.
    Comment 24
    1. Andreas Dachsberger, Tue, 02 Apr 2019 05:32:26 GMT

    In 39594416/rtems:

    doxygen: score: Add or1k CPU architecture group Update #3706.
    Comment 25
    1. Andreas Dachsberger, Tue, 02 Apr 2019 05:32:29 GMT

    In 6ddbcbc/rtems:

    doxygen: score: Add powerpc CPU architecture group Update #3706.
    Comment 26
    1. Andreas Dachsberger, Tue, 02 Apr 2019 05:32:32 GMT

    In 71f9098/rtems:

    doxygen: score: Add RISC-V CPU architecture group Update #3706.
    Comment 27
    1. Andreas Dachsberger, Tue, 02 Apr 2019 05:32:35 GMT

    In 2b37eca5/rtems:

    doxygen: score: Add SuperH CPU architecture group Update #3706.
    Comment 28
    1. Andreas Dachsberger, Tue, 02 Apr 2019 05:32:38 GMT

    In 25afa79/rtems:

    doxygen: score: Add SPARC CPU architecture group Update #3706.
    Comment 29
    1. Andreas Dachsberger, Tue, 02 Apr 2019 05:32:42 GMT

    In 2a50f87/rtems:

    doxygen: score: Add SPARC64 CPU architecture group Update #3706.
    Comment 30
    1. Andreas Dachsberger, Tue, 02 Apr 2019 05:32:45 GMT

    In 9f8af67/rtems:

    doxygen: score: Add V850 CPU architecture group Update #3706.
    Comment 31
    1. Andreas Dachsberger, Tue, 02 Apr 2019 05:32:48 GMT

    In 95c7603/rtems:

    doxygen: score: Add x86-64 CPU architecture group Update #3706.
    Comment 32
    1. Andreas Dachsberger, Tue, 02 Apr 2019 05:32:52 GMT

    In 69d6671f/rtems:

    doxygen: Reviewed cpukit/include/rtems/score Update #3706.
    Comment 33
    1. Andreas Dachsberger, Tue, 02 Apr 2019 05:32:55 GMT

    In 7a722e7/rtems:

    doxygen: Reviewed cpukit/include/rtems/rtems Update #3706.
    Comment 34
    1. Andreas Dachsberger, Tue, 02 Apr 2019 05:32:59 GMT

    In b86148a/rtems:

    doxygen: Reviewed cpukit/include/rtems/posix Update #3706.
    Comment 35
    1. Andreas Dachsberger, Tue, 02 Apr 2019 05:33:02 GMT

    In b07c721/rtems:

    doxygen: Restructured cpukit/include/rtems/rtems Update #3706.
    Comment 36
    1. Andreas Dachsberger, Tue, 02 Apr 2019 05:33:05 GMT

    In 493c1e8/rtems:

    doxygen: score: Put ARM Co-Processor 15 group in ARM Update #3706.
    Comment 37
    1. Andreas Dachsberger, Tue, 02 Apr 2019 05:33:08 GMT

    In 5342261/rtems:

    doxygen: Added groups to IO library Update #3706.
    Comment 38
    1. Andreas Dachsberger, Tue, 02 Apr 2019 05:33:12 GMT

    In 058f637/rtems:

    doxygen: score: Added ScoreRWLock to Score group Update #3706.
    Comment 39
    1. Andreas Dachsberger, Thu, 04 Apr 2019 06:27:42 GMT

    In 6644867/rtems:

    doxygen: User Extensions Implementation group now in Internal->Classic Update #3706.
    Comment 40
    1. Andreas Dachsberger, Thu, 04 Apr 2019 06:27:46 GMT

    In ff1f374/rtems:

    doxygen: Added Mainpage to RTEMSAPIClassic Update #3706.
    Comment 41
    1. Andreas Dachsberger, Thu, 04 Apr 2019 06:27:49 GMT

    In b7927ef/rtems:

    doxygen: Added further groups to RTEMSAPI Update #3706. Associativity Routines, BSD Compatibility Support now part of RTEMSAPI
    Comment 42
    1. Andreas Dachsberger, Thu, 04 Apr 2019 06:27:53 GMT

    In 0f02e6f/rtems:

    doxygen: Added toplevel group for device drivers Update #3706.
    Comment 43
    1. Andreas Dachsberger, Thu, 04 Apr 2019 06:27:56 GMT

    In 529d251b/rtems:

    doxygen: Added libmisc group and libmisc mouse group Update #3706. @ingroup for these groups already existed, but no @defgroup Further restructuring necessary
    Comment 44
    1. Andreas Dachsberger, Thu, 04 Apr 2019 06:27:59 GMT

    In 1964b268/rtems:

    doxygen: Added subgroup Generic to BSP->SPARC64 Update #3706.
    Comment 45
    1. Andreas Dachsberger, Thu, 04 Apr 2019 06:28:03 GMT

    In b2b7b58e/rtems:

    doxygen: Added Management to Example CPU Architecture Update #3706.
    Comment 46
    1. Andreas Dachsberger, Thu, 04 Apr 2019 06:28:07 GMT

    In 333bead/rtems:

    doxygen: Removed XXX group Update #3706. Content was added to Classic Barrier Implementation
    Comment 47
    1. Andreas Dachsberger, Thu, 04 Apr 2019 06:28:11 GMT

    In 4b841b3/rtems:

    doxygen: Added some subgroups to IO Library Update #3706. Types and Mount, IO Internal, Kernel Print Support
    Comment 48
    1. Andreas Dachsberger, Thu, 04 Apr 2019 06:28:14 GMT

    In 6b23763/rtems:

    doxygen: Added Frame Buffer Device Driver Interface to Device Drivers Update #3706.
    Comment 49
    1. Andreas Dachsberger, Thu, 04 Apr 2019 06:28:18 GMT

    In e78e7fe0/rtems:

    doxygen: Added Version to API->Classic Update #3706.
    Comment 50
    1. Andreas Dachsberger, Thu, 04 Apr 2019 06:28:21 GMT

    In 7cb1c2b0/rtems:

    doxygen: Added I2C Driver to Device Drivers Update #3706.
    Comment 51
    1. Andreas Dachsberger, Thu, 04 Apr 2019 06:28:25 GMT

    In b6b00917/rtems:

    doxygen: Added some subgroups to API and IO I2C library, Media Manager and Profiling Support Update #3706.
    Comment 52
    1. Andreas Dachsberger, Thu, 04 Apr 2019 06:28:29 GMT

    In f91da319/rtems:

    doxygen: Put C Library Support and POSIX in Internal Update #3706.
    Comment 53
    1. Andreas Dachsberger, Thu, 04 Apr 2019 06:28:32 GMT

    In 38a3b61/rtems:

    doxygen: Put SPI Driver into group Device Drivers Update #3706.
    Comment 54
    1. Andreas Dachsberger, Thu, 04 Apr 2019 06:28:36 GMT

    In 2a56a1cf/rtems:

    doxygen: Real Time Clock Time of Day API Definition in BSP->Shared Update #3706.
    Comment 55
    1. Andreas Dachsberger, Thu, 04 Apr 2019 06:28:39 GMT

    In 885c9a70/rtems:

    doxygen: Put Print Support in IO Update #3706.
    Comment 56
    1. Andreas Dachsberger, Thu, 04 Apr 2019 06:28:43 GMT

    In 2bc058d/rtems:

    doxygen: Put Real-Timer Clock Driver Interface into group Device Drivers Update #3706.
    Comment 57
    1. Andreas Dachsberger, Thu, 04 Apr 2019 06:28:47 GMT

    In b8cff58/rtems:

    doxygen: Benchmark Timer Driver Interface now in Device Drivers Update #3706.
    Comment 58
    1. Andreas Dachsberger, Thu, 04 Apr 2019 06:28:50 GMT

    In 74bfbc1f/rtems:

    doxygen: Time Test 27 now in Device Drivers Update #3706.
    Comment 59
    1. Andreas Dachsberger, Thu, 04 Apr 2019 06:28:54 GMT

    In bd675f39/rtems:

    doxygen: Mouse now in Device Drivers Update #3706.
    Comment 60
    1. Andreas Dachsberger, Thu, 04 Apr 2019 06:28:58 GMT

    In 7e5ed6b/rtems:

    doxygen: Print Support now in API->IO Update #3706.
    Comment 61
    1. Andreas Dachsberger, Thu, 04 Apr 2019 06:29:01 GMT

    In 7155b5bc/rtems:

    doxygen: Zero and Null Device Drivers now in Device Drivers Update #3706.
    Comment 62
    1. Andreas Dachsberger, Thu, 04 Apr 2019 06:29:05 GMT

    In 57a076cd/rtems:

    doxygen: Added subclasses to API Update #3706. RTEMS Application Loader, RTEMS Runtime Link Editor, Status Checks and Test Support
    Comment 63
    1. Andreas Dachsberger, Thu, 04 Apr 2019 06:29:09 GMT

    In 51f8d73b/rtems:

    doxygen: Added inttypes.h to Print Support Update #3706.
    Comment 64
    1. Andreas Dachsberger, Thu, 04 Apr 2019 06:29:13 GMT

    In bbdf938/rtems:

    doxygen: Added RTEMS Test Framework to API Update #3706.
    Comment 65
    1. Andreas Dachsberger, Thu, 04 Apr 2019 06:29:16 GMT

    In c9bd696/rtems:

    doxygen: New API subgroup Tracing Update #3706.
    Comment 66
    1. Andreas Dachsberger, Thu, 04 Apr 2019 06:29:20 GMT

    In 7b09032/rtems:

    doxygen: Split up "libmisc" subgroups and removed libmisc Update #3706.
    Comment 67
    1. Sebastian Huber, Thu, 04 Apr 2019 07:19:12 GMT

    In 4c20da4/rtems:

    doxygen: Rename Score* groups in RTEMSScore* Update #3706
    Comment 68
    1. Andreas Dachsberger, Mon, 13 May 2019 05:52:41 GMT

    In 93dcd2b/rtems:

    doxygen: score: adjust doc in address.h to doxygen guidelines Update #3706.
    Comment 69
    1. Andreas Dachsberger, Mon, 13 May 2019 05:52:44 GMT

    In 76a9857c/rtems:

    doxygen: score: adjust doc in apimutex.h to doxygen guidelines Update #3706.
    Comment 70
    1. Andreas Dachsberger, Mon, 13 May 2019 05:52:48 GMT

    In 3b977b86/rtems:

    doxygen: score: adjust doc in basedefs.h to doxygen guidelines Update #3706.
    Comment 71
    1. Andreas Dachsberger, Mon, 13 May 2019 05:52:52 GMT

    In 827e260/rtems:

    doxygen: score: adjust doc in chain.h to doxygen guidelines Update #3706.
    Comment 72
    1. Andreas Dachsberger, Mon, 13 May 2019 05:52:55 GMT

    In 0153acf2/rtems:

    doxygen: score: adjust doc in chainimpl.h to doxygen guidelines Update #3706.
    Comment 73
    1. Andreas Dachsberger, Mon, 13 May 2019 05:52:58 GMT

    In 59de8ef/rtems:

    doxygen: score: adjust doc in context.h to doxygen guidelines Update #3706.
    Comment 74
    1. Andreas Dachsberger, Mon, 13 May 2019 05:53:01 GMT

    In 4bb0f00/rtems:

    doxygen: score: adjust doc in copyrt.h to doxygen guidelines Also renamed the group SuperCoreCopyright? to RTEMSSuperCoreCopyright Update #3706.
    Comment 75
    1. Andreas Dachsberger, Mon, 13 May 2019 05:53:04 GMT

    In 37ab908/rtems:

    doxygen: score: adjust doc in corebarrier.h to doxygen guidelines Update #3706.
    Comment 76
    1. Andreas Dachsberger, Mon, 13 May 2019 05:53:08 GMT

    In 4bd8757/rtems:

    doxygen: score: adjust doc in coremsg.h to doxygen guidelines Update #3706.
    Comment 77
    1. Andreas Dachsberger, Mon, 13 May 2019 05:53:11 GMT

    In 62128be0/rtems:

    doxygen: score: added dox in assert.h according to doxygen guidelines Update #3706.
    Comment 78
    1. Andreas Dachsberger, Mon, 13 May 2019 05:53:15 GMT

    In accbe67/rtems:

    doxygen: score: adjust doc in corebarrierimpl.h to doxygen guidelines Update #3706.
    Comment 79
    1. Andreas Dachsberger, Mon, 13 May 2019 05:53:18 GMT

    In 0865cd2/rtems:

    doxygen: score: adjust doc in coremsgimpl.h to doxygen guidelines Update #3706.
    Comment 80
    1. Andreas Dachsberger, Mon, 13 May 2019 05:53:21 GMT

    In d369903/rtems:

    doxygen: score: adjust doc in coremutex.h to doxygen guidelines Update #3706.
    Comment 81
    1. Andreas Dachsberger, Mon, 13 May 2019 05:53:25 GMT

    In 86b05bf6/rtems:

    doxygen: score: adjust doc in coremuteximpl.h to doxygen guidelines Update #3706.
    Comment 82
    1. Andreas Dachsberger, Mon, 13 May 2019 05:53:28 GMT

    In d16a9019/rtems:

    doxygen: score: adjust doc in corerwlockimpl.h to doxygen guidelines Update #3706.
    Comment 83
    1. Andreas Dachsberger, Mon, 13 May 2019 05:53:32 GMT

    In eab90bf/rtems:

    doxygen: score: adjust doc in coresem.h to doxygen guidelines Update #3706.
    Comment 84
    1. Andreas Dachsberger, Mon, 13 May 2019 05:53:35 GMT

    In d5b63c2/rtems:

    doxygen: score: adjust doc in coresemimpl.h to doxygen guidelines Update #3706.
    Comment 85
    1. Andreas Dachsberger, Mon, 13 May 2019 05:53:38 GMT

    In 54733e6/rtems:

    doxygen: score: adjust doc in cpustdatomic.h to doxygen guidelines Update #3706.
    Comment 86
    1. Andreas Dachsberger, Mon, 13 May 2019 05:53:41 GMT

    In d69b7a5/rtems:

    doxygen: score: adjust doc in freechain.h to doxygen guidelines Update #3706.
    Comment 87
    1. Andreas Dachsberger, Mon, 13 May 2019 05:53:45 GMT

    In cf6ce4a/rtems:

    doxygen: score: adjust doc in heap.h to doxygen guidelines Update #3706.
    Comment 88
    1. Andreas Dachsberger, Mon, 13 May 2019 05:53:48 GMT

    In 4c99921/rtems:

    doxygen: score: adjust doc in heapimpl.h to doxygen guidelines Update #3706.
    Comment 89
    1. Andreas Dachsberger, Mon, 13 May 2019 05:53:51 GMT

    In 0cdcb27/rtems:

    Removed entry from Related Pages SAM V71 Xplained Ultra - Board explanation now in Modules->BSPs->ARM Update #3706.
    Comment 90
    1. Andreas Dachsberger, Mon, 13 May 2019 05:53:54 GMT

    In 5ad74fd6/rtems:

    doxygen: score: adjust doc in interr.h to doxygen guidelines Update #3706.
    Comment 91
    1. Andreas Dachsberger, Mon, 13 May 2019 05:53:58 GMT

    In 24787d08/rtems:

    doxygen: score: adjust doc in isr.h to doxygen guidelines Update #3706.
    Comment 92
    1. Andreas Dachsberger, Mon, 13 May 2019 05:54:01 GMT

    In bb0ccc1/rtems:

    doxygen: score: adjust doc in isrlevel.h to doxygen guidelines Update #3706.
    Comment 93
    1. Andreas Dachsberger, Mon, 13 May 2019 05:54:04 GMT

    In 318b70b/rtems:

    doxygen: score: adjust doc in isrlock.h to doxygen guidelines Update #3706.
    Comment 94
    1. Andreas Dachsberger, Mon, 13 May 2019 05:54:08 GMT

    In 976c095/rtems:

    doxygen: score: adjust doc in mpci.h to doxygen guidelines Update #3706.
    Comment 95
    1. Andreas Dachsberger, Mon, 13 May 2019 05:54:11 GMT

    In 57cd05cf/rtems:

    doxygen: score: adjust doc in mpciimpl.h to doxygen guidelines Update #3706.
    Comment 96
    1. Andreas Dachsberger, Mon, 13 May 2019 05:54:15 GMT

    In 3da777e/rtems:

    doxygen: score: adjust doc in mppkt.h to doxygen guidelines Update #3706.
    Comment 97
    1. Andreas Dachsberger, Mon, 13 May 2019 05:54:18 GMT

    In b817de6d/rtems:

    doxygen: score: adjust doc in mrsp.h to doxygen guidelines Update #3706.
    Comment 98
    1. Andreas Dachsberger, Mon, 13 May 2019 05:54:22 GMT

    In 0b1bfab/rtems:

    doxygen: score: adjust doc in mrspimpl.h to doxygen guidelines Update #3706.
    Comment 99
    1. Andreas Dachsberger, Mon, 13 May 2019 05:54:25 GMT

    In ae8be3f/rtems:

    doxygen: score: adjust doc in object.h to doxygen guidelines Update #3706.
    Comment 100
    1. Andreas Dachsberger, Mon, 13 May 2019 05:54:28 GMT

    In c389f5b7/rtems:

    doxygen: score: adjust doc in objectimpl.h to doxygen guidelines Update #3706.
    Comment 101
    1. Andreas Dachsberger, Mon, 13 May 2019 05:54:32 GMT

    In 316894e6/rtems:

    doxygen: score: adjust doc in objectmp.h to doxygen guidelines Update #3706.
    Comment 102
    1. Andreas Dachsberger, Mon, 13 May 2019 05:54:35 GMT

    In 0bef82f/rtems:

    doxygen: score: adjust doc in percpudata.h to doxygen guidelines Update #3706.
    Comment 103
    1. Andreas Dachsberger, Mon, 13 May 2019 05:54:38 GMT

    In 96d37510/rtems:

    doxygen: score: adjust doc in prioritybitmap.h to doxygen guidelines Update #3706.
    Comment 104
    1. Andreas Dachsberger, Mon, 13 May 2019 05:54:42 GMT

    In 536458a/rtems:

    doxygen: score: adjust doc in prioritybitmapimpl.h to doxygen guidelines Update #3706.
    Comment 105
    1. Andreas Dachsberger, Mon, 13 May 2019 05:54:45 GMT

    In 1d6e6b1f/rtems:

    doxygen: score: adjust doc in priority.h to doxygen guidelines Update #3706.
    Comment 106
    1. Andreas Dachsberger, Mon, 13 May 2019 05:54:48 GMT

    In 35a07c4/rtems:

    doxygen: score: adjust doc in priorityimpl.h to doxygen guidelines Update #3706.
    Comment 107
    1. Andreas Dachsberger, Mon, 13 May 2019 05:54:52 GMT

    In acdb99eb/rtems:

    doxygen: score: adjust doc in processormask.h to doxygen guidelines Update #3706.
    Comment 108
    1. Andreas Dachsberger, Mon, 13 May 2019 05:54:55 GMT

    In ee8eb21/rtems:

    doxygen: score: adjust doc in profiling.h to doxygen guidelines Update #3706.
    Comment 109
    1. Andreas Dachsberger, Mon, 13 May 2019 05:54:59 GMT

    In 1e6a7c7a/rtems:

    doxygen: score: adjust doc in protectedheap.h to doxygen guidelines Update #3706.
    Comment 110
    1. Andreas Dachsberger, Mon, 13 May 2019 05:55:02 GMT

    In f61a3f85/rtems:

    doxygen: score: adjust doc in rbtree.h to doxygen guidelines Update #3706.
    Comment 111
    1. Andreas Dachsberger, Mon, 13 May 2019 05:55:05 GMT

    In 334de12/rtems:

    doxygen: score: adjust doc in rbtreeimpl.h to doxygen guidelines Update #3706.
    Comment 112
    1. Andreas Dachsberger, Mon, 13 May 2019 05:55:09 GMT

    In 65f19f0/rtems:

    doxygen: score: adjust doc in schedulercbs.h to doxygen guidelines Update #3706.
    Comment 113
    1. Andreas Dachsberger, Mon, 13 May 2019 05:55:12 GMT

    In 06821fa5/rtems:

    doxygen: score: adjust doc in schedulercbsimpl.h to doxygen guidelines Update #3706.
    Comment 114
    1. Andreas Dachsberger, Mon, 13 May 2019 05:55:15 GMT

    In f660691/rtems:

    doxygen: score: adjust doc in scheduleredf.h to doxygen guidelines Update #3706.
    Comment 115
    1. Andreas Dachsberger, Mon, 13 May 2019 05:55:18 GMT

    In 6852f7e/rtems:

    doxygen: score: adjust doc in scheduleredfimpl.h to doxygen guidelines Update #3706.
    Comment 116
    1. Andreas Dachsberger, Mon, 13 May 2019 05:55:22 GMT

    In e2d575c2/rtems:

    doxygen: score: adjust doc in scheduler.h to doxygen guidelines Update #3706.
    Comment 117
    1. Andreas Dachsberger, Mon, 13 May 2019 05:55:25 GMT

    In 11e7893/rtems:

    doxygen: score: adjust doc in schedulerimpl.h to doxygen guidelines Update #3706.
    Comment 118
    1. Andreas Dachsberger, Mon, 13 May 2019 05:55:29 GMT

    In d5548b65/rtems:

    doxygen: score: adjust doc in schedulernode.h to doxygen guidelines Update #3706.
    Comment 119
    1. Andreas Dachsberger, Mon, 13 May 2019 05:55:32 GMT

    In 08901bf/rtems:

    doxygen: score: adjust doc in schedulernodeimpl.h to doxygen guidelines Update #3706.
    Comment 120
    1. Andreas Dachsberger, Mon, 13 May 2019 05:55:36 GMT

    In 263fa5ef/rtems:

    doxygen: score: adjust doc in schedulerpriorityaffinitysmp.h to doxygen guidelines Update #3706.
    Comment 121
    1. Andreas Dachsberger, Mon, 13 May 2019 05:55:39 GMT

    In 4aed194/rtems:

    doxygen: score: adjust doc in schedulerpriority.h to doxygen guidelines Update #3706.
    Comment 122
    1. Andreas Dachsberger, Mon, 13 May 2019 05:55:43 GMT

    In ed6b2e0/rtems:

    doxygen: score: adjust doc in schedulerpriorityimpl.h to doxygen guidelines Update #3706.
    Comment 123
    1. Andreas Dachsberger, Mon, 13 May 2019 05:55:46 GMT

    In 391f92b9/rtems:

    doxygen: score: adjust doc in schedulerprioritysmp.h to doxygen guidelines Update #3706.
    Comment 124
    1. Andreas Dachsberger, Mon, 13 May 2019 05:55:49 GMT

    In 776ec05/rtems:

    doxygen: score: adjust doc in schedulersimple.h to doxygen guidelines Update #3706.
    Comment 125
    1. Andreas Dachsberger, Mon, 13 May 2019 05:55:53 GMT

    In d0839dd/rtems:

    doxygen: score: adjust doc in scheduleredfsmp.h to doxygen guidelines Update #3706.
    Comment 126
    1. Andreas Dachsberger, Mon, 13 May 2019 05:55:56 GMT

    In f8047f14/rtems:

    doxygen: score: adjust doc in schedulersimpleimpl.h to doxygen guidelines Update #3706.
    Comment 127
    1. Andreas Dachsberger, Mon, 13 May 2019 05:55:59 GMT

    In 1bfdc06/rtems:

    doxygen: score: adjust doc in schedulersimplesmp.h to doxygen guidelines Update #3706.
    Comment 128
    1. Andreas Dachsberger, Mon, 13 May 2019 05:56:03 GMT

    In ceff06f/rtems:

    doxygen: score: adjust doc in schedulersmp.h to doxygen guidelines Update #3706.
    Comment 129
    1. Andreas Dachsberger, Mon, 13 May 2019 05:56:06 GMT

    In 6a1734a3/rtems:

    doxygen: score: adjust doc in schedulersmpimpl.h to doxygen guidelines Update #3706.
    Comment 130
    1. Andreas Dachsberger, Mon, 13 May 2019 05:56:09 GMT

    In ee3351c/rtems:

    doxygen: score: adjust doc in schedulerstrongapa.h to doxygen guidelines Update #3706.
    Comment 131
    1. Andreas Dachsberger, Mon, 13 May 2019 05:56:13 GMT

    In 6a9cb56/rtems:

    doxygen: score: adjust doc in semaphoreimpl.h to doxygen guidelines Update #3706.
    Comment 132
    1. Andreas Dachsberger, Mon, 13 May 2019 05:56:16 GMT

    In d057bb29/rtems:

    doxygen: score: adjust doc in smpbarrier.h to doxygen guidelines Update #3706.
    Comment 133
    1. Andreas Dachsberger, Mon, 13 May 2019 05:56:20 GMT

    In 79249a5/rtems:

    doxygen: score: adjust doc in smpimpl.h to doxygen guidelines Update #3706.
    Comment 134
    1. Andreas Dachsberger, Mon, 13 May 2019 05:56:24 GMT

    In 9503db6/rtems:

    doxygen: score: adjust doc in smplock.h to doxygen guidelines Update #3706.
    Comment 135
    1. Andreas Dachsberger, Mon, 13 May 2019 05:56:28 GMT

    In 93afceb/rtems:

    doxygen: score: adjust doc in smplockmcs.h to doxygen guidelines Update #3706.
    Comment 136
    1. Andreas Dachsberger, Mon, 13 May 2019 05:56:31 GMT

    In 2adc5f10/rtems:

    doxygen: score: adjust doc in smplockseq.h to doxygen guidelines Update #3706.
    Comment 137
    1. Andreas Dachsberger, Mon, 13 May 2019 05:56:34 GMT

    In c624340e/rtems:

    doxygen: score: adjust doc in smplockstats.h to doxygen guidelines Update #3706.
    Comment 138
    1. Andreas Dachsberger, Mon, 13 May 2019 05:56:38 GMT

    In 366dbf6/rtems:

    doxygen: score: adjust doc in smplockticket.h to doxygen guidelines Update #3706.
    Comment 139
    1. Andreas Dachsberger, Mon, 13 May 2019 05:56:41 GMT

    In 0938899/rtems:

    doxygen: score: adjust doc in stack.h to doxygen guidelines Update #3706.
    Comment 140
    1. Andreas Dachsberger, Mon, 13 May 2019 05:56:45 GMT

    In 0e829b26/rtems:

    doxygen: score: adjust doc in stackimpl.h to doxygen guidelines Update #3706.
    Comment 141
    1. Andreas Dachsberger, Mon, 13 May 2019 05:56:48 GMT

    In fa3b4a2/rtems:

    doxygen: score: adjust doc in stackimpl.h to doxygen guidelines Update #3706.
    Comment 142
    1. Andreas Dachsberger, Mon, 13 May 2019 05:56:51 GMT

    In 5ba93a5/rtems:

    doxygen: score: adjust doc in statesimpl.h to doxygen guidelines Update #3706.
    Comment 143
    1. Andreas Dachsberger, Mon, 13 May 2019 05:56:55 GMT

    In 6af85ee6/rtems:

    doxygen: score: adjust doc in sysstate.h to doxygen guidelines Update #3706.
    Comment 144
    1. Andreas Dachsberger, Mon, 13 May 2019 05:56:58 GMT

    In 7d93c447/rtems:

    doxygen: score: adjust doc in threaddispatch.h to doxygen guidelines Update #3706.
    Comment 145
    1. Andreas Dachsberger, Mon, 13 May 2019 05:57:02 GMT

    In 5bb6ac9/rtems:

    doxygen: score: adjust doc in thread.h to doxygen guidelines Update #3706.
    Comment 146
    1. Andreas Dachsberger, Mon, 13 May 2019 05:57:05 GMT

    In 3657cde/rtems:

    doxygen: score: adjust doc in threadimpl.h to doxygen guidelines Update #3706.
    Comment 147
    1. Andreas Dachsberger, Mon, 13 May 2019 05:57:09 GMT

    In 8f89dc62/rtems:

    doxygen: score: adjust doc in threadmp.h to doxygen guidelines Update #3706.
    Comment 148
    1. Andreas Dachsberger, Mon, 13 May 2019 05:57:12 GMT

    In f1507fb/rtems:

    doxygen: score: adjust doc in threadq.h to doxygen guidelines Update #3706.
    Comment 149
    1. Andreas Dachsberger, Mon, 13 May 2019 05:57:16 GMT

    In b6bbe83/rtems:

    doxygen: score: adjust doc in threadqimpl.h to doxygen guidelines Update #3706.
    Comment 150
    1. Andreas Dachsberger, Mon, 13 May 2019 05:57:19 GMT

    In 843879d0/rtems:

    doxygen: score: adjust doc in timecounter.h to doxygen guidelines Update #3706.
    Comment 151
    1. Andreas Dachsberger, Mon, 13 May 2019 05:57:22 GMT

    In 3e98049/rtems:

    doxygen: score: adjust doc in timecounterimpl.h to doxygen guidelines Update #3706.
    Comment 152
    1. Andreas Dachsberger, Mon, 13 May 2019 05:57:26 GMT

    In bded63fc/rtems:

    doxygen: score: adjust doc in timespec.h to doxygen guidelines Update #3706.
    Comment 153
    1. Andreas Dachsberger, Mon, 13 May 2019 05:57:29 GMT

    In 1b5ba76/rtems:

    doxygen: score: adjust doc in timestamp.h to doxygen guidelines Update #3706.
    Comment 154
    1. Andreas Dachsberger, Mon, 13 May 2019 05:57:32 GMT

    In 4a693e7/rtems:

    doxygen: score: adjust doc in timestampimpl.h to doxygen guidelines Update #3706.
    Comment 155
    1. Andreas Dachsberger, Mon, 13 May 2019 05:57:36 GMT

    In 5c91b54b/rtems:

    doxygen: score: adjust doc in tls.h to doxygen guidelines Update #3706.
    Comment 156
    1. Andreas Dachsberger, Mon, 13 May 2019 05:57:39 GMT

    In 5791a3c/rtems:

    doxygen: score: adjust doc in todimpl.h to doxygen guidelines Update #3706.
    Comment 157
    1. Andreas Dachsberger, Mon, 13 May 2019 05:57:42 GMT

    In 7d2cc98/rtems:

    doxygen: score: adjust doc in userextimpl.h to doxygen guidelines Update #3706.
    Comment 158
    1. Andreas Dachsberger, Mon, 13 May 2019 05:57:45 GMT

    In eb84cc3f/rtems:

    doxygen: score: adjust doc in watchdog.h to doxygen guidelines Update #3706.
    Comment 159
    1. Andreas Dachsberger, Mon, 13 May 2019 05:57:49 GMT

    In c53ec8c4/rtems:

    doxygen: score: adjust doc in watchdogimpl.h to doxygen guidelines Update #3706.
    Comment 160
    1. Andreas Dachsberger, Mon, 13 May 2019 05:57:52 GMT

    In 904c2312/rtems:

    doxygen: score: adjust doc in watchdogticks.h to doxygen guidelines Update #3706.
    Comment 161
    1. Andreas Dachsberger, Mon, 13 May 2019 05:57:55 GMT

    In 7b90bb5/rtems:

    doxygen: score: adjust doc in wkspace.h to doxygen guidelines Update #3706.
    Comment 162
    1. Andreas Dachsberger, Mon, 13 May 2019 05:57:59 GMT

    In 2463c10/rtems:

    doxygen: score: adjust doc in muteximpl.h to doxygen guidelines Update #3706.
    Comment 163
    1. Andreas Dachsberger, Mon, 13 May 2019 05:58:02 GMT

    In 1bd608b/rtems:

    doxygen: score: adjust doc in onceimpl.h to doxygen guidelines Update #3706.
    Comment 164
    1. Andreas Dachsberger, Mon, 13 May 2019 05:58:05 GMT

    In 3238c162/rtems:

    doxygen: score: adjust doc in smp.h to doxygen guidelines Update #3706.
    Comment 165
    1. Andreas Dachsberger, Mon, 13 May 2019 05:58:08 GMT

    In f49618d/rtems:

    doxygen: score: adjust doc in percpudata.h to doxygen guidelines Update #3706.
    Comment 166
    1. Sebastian Huber, Wed, 02 Dec 2020 06:46:18 GMT

    In e07088d9/rtems:

    rtems: Canonicalize implementation Doxygen groups Rename Classic API top-level group from Classic to RTEMSImplClassic. Use RTEMSImplClassic as a prefix for the subgroups. Change the group names to be in line with the API group names. Use common phrases for the group brief descriptions. Update #3706.
    Comment 167
    1. Sebastian Huber, Wed, 02 Dec 2020 06:46:21 GMT

    In c81ac0e/rtems:

    score: Canonicalize Doxygen groups Adjust group identifier and names to be in line with a common pattern. Use common phrases for the group brief descriptions. Update #3706.
    Comment 168
    1. Sebastian Huber, Wed, 02 Dec 2020 06:46:27 GMT

    In 6b5f22dc/rtems:

    rtems: Canonicalize Doxygen @file comments Use common phrases for the file brief descriptions. Update #3706.
    Comment 169
    1. Sebastian Huber, Wed, 02 Dec 2020 06:46:31 GMT

    In 9278f3d/rtems:

    score: Canonicalize Doxygen @file comments Use common phrases for the file brief descriptions. Update #3706.
    Comment 170
    1. Sebastian Huber, Wed, 02 Dec 2020 06:46:34 GMT

    In 3db9c820/rtems:

    sapi: Canonicalize @defgroup and @file comments Adjust group identifier and names to be in line with a common pattern. Use common phrases for the group and file brief descriptions. Update #3706.
    Comment 171
    1. Sebastian Huber, Wed, 02 Dec 2020 06:46:37 GMT

    In 70dbafb/rtems:

    config: Canonicalize @defgroup and @file comments Adjust group identifier and names to be in line with a common pattern. Use common phrases for the group and file brief descriptions. Update #3706.
    Comment 172
    1. Sebastian Huber, Wed, 02 Dec 2020 07:13:58 GMT

    In 226b90b4/rtems:

    rtems: Fix Doxygen group memberships Update #3706.
    Comment 173
    1. Sebastian Huber, Wed, 02 Dec 2020 07:15:50 GMT

    In 5555c0c/rtems:

    rtems: Fix Doxygen group name Update #3706.
    Comment 174
    1. Sebastian Huber, Wed, 02 Dec 2020 10:35:07 GMT

    In 1c60622/rtems:

    score: Fix Doxygen group name Update #3706.
    Comment 175
    1. Sebastian Huber, Wed, 02 Dec 2020 10:35:11 GMT

    In 1fa3821/rtems:

    score: Fix Doxygen group membership Update #3706.
    Comment 176
    1. Sebastian Huber, Wed, 02 Dec 2020 12:05:27 GMT

    In 295b05f9/rtems:

    nfsclient: Rework Doxygen groups Update #3706.
    Comment 177
    1. Sebastian Huber, Wed, 02 Dec 2020 12:05:30 GMT

    In ab85383/rtems:

    nfsclient: Remove from Doxygen output The libnetworking is excluded from the Doxygen output. Exclude also the nfsclient source code, otherwise there are some orphaned Doxygen groups. Update #3706.
    Comment 178
    1. Sebastian Huber, Wed, 02 Dec 2020 12:19:09 GMT

    In 3393ff1d/rtems:

    libfs: Fix Doxygen group placement Update #3706.
    Comment 179
    1. Sebastian Huber, Wed, 02 Dec 2020 12:19:13 GMT

    In ef0fe8e/rtems:

    dosfs: Fix Doxygen group placement Update #3706.
    Comment 180
    1. Sebastian Huber, Wed, 06 Oct 2021 06:41:16 GMT

    In dba2e690/rtems:

    rtems: Canonicalize Doxygen in Update #3706.
    Comment 181
    1. Sebastian Huber, Wed, 06 Oct 2021 06:41:20 GMT

    In 4c0b006/rtems:

    rtems: Canonicalize Doxygen in Update #3706.
    Comment 182
    1. Sebastian Huber, Wed, 06 Oct 2021 06:41:24 GMT

    In a950c135/rtems:

    score: Add Hash Handler to group Update #3706.
    Comment 183
    1. Sebastian Huber, Wed, 06 Oct 2021 06:41:27 GMT

    In 5a6f94d/rtems:

    rtems: Add ASR implementation to existing group Update #3706.
    Comment 184
    1. Sebastian Huber, Wed, 06 Oct 2021 06:41:31 GMT

    In 8b762a88/rtems:

    scoe: Move workspace group definition Define the group in the header file which is used by . Update #3706.
    Comment 185
    1. Sebastian Huber, Wed, 06 Oct 2021 06:41:36 GMT

    In e9063644/rtems:

    posix: Remove "RTEMS" from POSIX API group Clarify group description. Update #3706.
    Comment 186
    1. Sebastian Huber, Wed, 30 Nov 2022 08:55:14 GMT
    2. milestone: changed from 6.1 to 7.1
    Comment 187
    1. Sebastian Huber, Tue, 24 Jan 2023 10:26:29 GMT

    In 6136e28b/rtems:

    clockdrv: Add clock driver implementation group Use standard wording in Clock Driver related files. Update #3706.
    Comment 188
    1. Sebastian Huber, Tue, 24 Jan 2023 10:26:34 GMT

    In d36070f/rtems:

    intr: Add Interrupt Manager implementation group The shared BSP interrupt controller support code actually implements parts of the Interrupt Manager. Update #3706.
    Comment 189
    1. Sebastian Huber, Fri, 14 Jul 2023 10:02:05 GMT

    In 97f5e1c/rtems:

    bsp/leon3: Fix group memberships Update #3706.
    Comment 190
    1. Sebastian Huber, Wed, 26 Jul 2023 04:56:40 GMT

    In 58840ffb/rtems:

    rtems: Add files to Doxygen groups Provide basic Doxygen comments. Update #3706. Update #3707.
    Comment 191
    1. Sebastian Huber, Wed, 26 Jul 2023 05:08:21 GMT
    2. status: changed from accepted to closed
    3. resolution: set to fixed
    4. milestone: changed from 7.1 to 6.1

    For RTEMS 6, the group hierarchy is good enough.


    3707 - Assign each code file to a Doxygen group

    Link https://devel.rtems.org/ticket/3707
    Id 3707
    Reporter Sebastian Huber
    Created 26 February 2019 13:28:28
    Modified 15 January 2024 09:36:58
    Owner Sebastian Huber
    Type task
    Component doc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by 3706

    Description

    Assign each code file (header, C source, assembler) to a Doxygen group. Exclude the legacy network stack and test suites. For third-party code decide case by case. Use this template and place it at the top of the file:

    /**
    * @file
    *
    * @ingroup RTEMSClassicTasks
    */

    Do not use @brief and a file description.

    Comment 1
    1. Sebastian Huber, Tue, 26 Feb 2019 13:30:45 GMT
    2. status: changed from assigned to accepted
    Comment 2
    1. Sebastian Huber, Thu, 28 Feb 2019 10:48:03 GMT

    In feea03b6/rtems:

    Remove explicit file names from @file This makes the @file documentation independent of the actual file name. Update #3707.
    Comment 3
    1. Sebastian Huber, Mon, 04 Mar 2019 06:55:05 GMT

    In 9d41fca/rtems:

    bsp/altera-cyclone-v: Adjust Doxygen file groups Update #3707.
    Comment 4
    1. Sebastian Huber, Mon, 24 Oct 2022 11:23:06 GMT

    In 468f21e/rtems:

    bsps: Add Cache Manager implementation group Update #3707.
    Comment 5
    1. Sebastian Huber, Wed, 30 Nov 2022 08:53:00 GMT
    2. milestone: changed from 6.1 to 7.1
    Comment 6
    1. Sebastian Huber, Thu, 16 Feb 2023 07:11:35 GMT

    In bb465c8/rtems:

    doxygen: Add Doxygen files to a group Update #3707.
    Comment 7
    1. Sebastian Huber, Fri, 21 Jul 2023 05:33:09 GMT

    In 5fb9ebfc/rtems:

    doxgen: Document build system provided files Update #3707.
    Comment 8
    1. Sebastian Huber, Wed, 26 Jul 2023 04:56:38 GMT

    In f99f5ce/rtems:

    libtest: Place files into a Doxygen group Canonicalize the file headers. Update #3707.
    Comment 9
    1. Sebastian Huber, Wed, 26 Jul 2023 04:56:40 GMT

    In 58840ffb/rtems:

    rtems: Add files to Doxygen groups Provide basic Doxygen comments. Update #3706. Update #3707.
    Comment 10
    1. Frank Kühndel, Wed, 26 Jul 2023 04:56:42 GMT

    In 3e1521ee/rtems:

    bsps/sparc: Add files to Doxygen groups Update #3707.
    Comment 11
    1. Sebastian Huber, Wed, 26 Jul 2023 04:56:44 GMT

    In 233c21a/rtems:

    score: Add files to Doxygen groups Update #3707.
    Comment 12
    1. Sebastian Huber, Wed, 26 Jul 2023 04:56:46 GMT

    In 5ba465c0/rtems:

    libcsupport: Add file to Doxygen group Update #3707.
    Comment 13
    1. Sebastian Huber, Wed, 26 Jul 2023 04:56:48 GMT

    In d3fe128d/rtems:

    posix: Add files to Doxygen group Canonicalize brief descriptions. Update #3707.
    Comment 14
    1. Sebastian Huber, Wed, 26 Jul 2023 04:56:50 GMT

    In ec1e500f/rtems:

    timecounter: Add files to Doxygen group Update #3707.
    Comment 15
    1. Sebastian Huber, Wed, 26 Jul 2023 04:56:52 GMT

    In 1bc5d3e4/rtems:

    sys: Add files to Doxygen group Canonicalize brief descriptions. Update #3707.
    Comment 16
    1. Sebastian Huber, Wed, 26 Jul 2023 05:09:40 GMT
    2. milestone: changed from 7.1 to 6.1

    For RTEMS 6, the group assignment of files is good enough.

    Comment 17
    1. Sebastian Huber, Fri, 28 Jul 2023 14:39:53 GMT
    2. status: changed from accepted to closed
    3. resolution: set to fixed
    Comment 18
    1. Sebastian Huber, Mon, 15 Jan 2024 09:36:58 GMT

    In 8e8b9bc0/rtems:

    bsp/tms570: Relicense to BSD-2-Clause Change license to BSD-2-Clause according to file history and contributor agreements. Add Doxygen file comments. Update #3053. Update #3707. Update #4982.

    3715 - Add Requirements Engineering chapter to RTEMS Software Engineering Handbook

    Link https://devel.rtems.org/ticket/3715
    Id 3715
    Reporter Sebastian Huber
    Created 4 March 2019 11:03:16
    Modified 19 May 2023 05:25:41
    Owner Sebastian Huber
    Type task
    Component doc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking 3703
    Blocked by  

    Description

    The chapter should cover the following topics:

    • Overview and introduction
    • Evaluation of tools for requirements management
    • Selected tool for requirements management
    • Evaluation of data models and formats for the requirements
    • Definition of data model and format actually used for the project (may overlap with tool)
    • Requirements management workflow used in the project
    • Requirements on requirements, e.g. derived from standards such as ​ECSS-E-ST-10-06C
    • Requirement identifiers used to ensure traceability
    Comment 1
    1. Sebastian Huber, Mon, 04 Mar 2019 13:10:43 GMT
    2. status: changed from assigned to accepted
    3. summary: changed from Add Requirements Engineering chaper to RTEMS Software Engineering Handbook to Add Requirements Engineering chapter to RTEMS Software Engineering Handbook
    Comment 2
    1. Chris Johns, Mon, 04 Mar 2019 23:02:03 GMT

    How does the quality of RTEMS and it's requirements depend on the evaluation and selection of the tools for requirement management? I can understand the quality of the requirements effecting the quality of RTEMS but not the tools used to capture them? Why have the process, ie a sort of log book, in the engineering handbook? I would have expected this document to contain the out come of the discovery process and not the process itself.

    I am concerned adding these things just creates a liability for the project. Can an email archive can perform this task?

    Comment 3
    1. Joel Sherrill, Mon, 04 Mar 2019 23:06:15 GMT

    I agree with Chris. A trade study of requirements tools shouldn't end up in the handbook. Perhaps our requirements for a tool.

    open source supports format XXX for interchange supports links for requirement derivation ...
    Comment 4
    1. Sebastian Huber, Thu, 07 Mar 2019 07:34:38 GMT

    Yes, maybe this is not the best place for the tool overview. I though it would be helpful in case someone asks in two years, why did you use this, have you considered that, etc.? Should I add a ticket for the tool selection instead?

    Comment 5
    1. Chris Johns, Thu, 07 Mar 2019 21:00:27 GMT

    Replying to Sebastian Huber:

    Yes, maybe this is not the best place for the tool overview. I though it would be helpful in case someone asks in two years, why did you use this, have you considered that, etc.?

    A brief rational can be helpful, but the details can be distracting. I feel the simpler and more direct this document is the more effective it will be.

    Should I add a ticket for the tool selection instead?

    Yes, it can links to mailing lists discussions and attachments and it is easy to link too.

    Comment 6
    1. Sebastian Huber, Tue, 07 Jan 2020 09:14:04 GMT

    In d412c5b/rtems-docs:

    eng: Add Software Requirements Engineering chapter Update #3715.
    Comment 7
    1. Sebastian Huber, Thu, 02 Apr 2020 07:47:16 GMT

    In 6f0bc56/rtems-docs:

    eng: Add glossary terms Define the following terms: assembler language C language ELF interrupt service software component software unit Clarify: task Update #3715.
    Comment 8
    1. Sebastian Huber, Tue, 05 May 2020 05:37:31 GMT

    In d4ba908/rtems-docs:

    eng: Update requirements engineering chapter Update requirements engineering chapter due to the removal of Doorstop as the requirements management tool. Update the application configuration related specification items. Update #3715.
    Comment 9
    1. Sebastian Huber, Mon, 01 Jun 2020 11:02:31 GMT

    In 59312aa/rtems-docs:

    eng: Split up requirements engineering chapter This allows to more easily generate the specification item section with a script using specification items. Update #3715.
    Comment 10
    1. Sebastian Huber, Mon, 01 Jun 2020 11:02:33 GMT

    In 23ab40d/rtems-docs:

    eng: Add generated documentation of spec items The documentation of the specification items is generated by an RTEMS qualification tool from a specification of specification items. Move non-generated content to "req-for-req.rst". Update #3715.
    Comment 11
    1. Sebastian Huber, Mon, 01 Jun 2020 11:02:35 GMT

    In 459326c/rtems-docs:

    eng: Update requirements tooling section Update #3715.
    Comment 12
    1. Sebastian Huber, Mon, 01 Jun 2020 11:02:37 GMT

    In 9b269ad/rtems-docs:

    eng: Add interface specification how-to Update #3715.
    Comment 13
    1. Sebastian Huber, Mon, 08 Jun 2020 07:05:29 GMT

    In f547988/rtems-docs:

    eng: Simplify wording for specification items Update #3715.
    Comment 14
    1. Sebastian Huber, Mon, 08 Jun 2020 07:05:31 GMT

    In 0c43c52/rtems-docs:

    eng: Add generic attribute key types Update #3715.
    Comment 15
    1. Sebastian Huber, Mon, 08 Jun 2020 07:05:33 GMT

    In 0213e8e/rtems-docs:

    eng: Add a specification type for actions Add support to specify functional requirements for actions (functions or macros) via a transition map of pre-conditions to post-conditions. This will be the work horse for functional requirements. Generation of corresponding validation tests is supported. Update #3715.
    Comment 16
    1. Sebastian Huber, Mon, 08 Jun 2020 07:05:35 GMT

    In ca2f5e6/rtems-docs:

    eng: Update specification how-to section Update #3715.
    Comment 17
    1. Sebastian Huber, Wed, 10 Jun 2020 08:12:37 GMT

    In db3892b/rtems-docs:

    eng: Update action requirement specification Update #3715.
    Comment 18
    1. Sebastian Huber, Wed, 17 Jun 2020 07:11:35 GMT

    In 87a9478/rtems-docs:

    eng: Clarify action requirement specification Update #3715.
    Comment 19
    1. Sebastian Huber, Fri, 03 Jul 2020 08:34:03 GMT

    In 1bd14cd/rtems-docs:

    eng: Reformat to maximize the text width Remove extra "X" character in some labels. Update #3715.
    Comment 20
    1. Sebastian Huber, Fri, 03 Jul 2020 08:34:05 GMT

    In 0c13e94/rtems-docs:

    eng: Fix typo Update #3715.
    Comment 21
    1. Sebastian Huber, Tue, 28 Jul 2020 05:33:52 GMT

    In fd2fc50/rtems-docs:

    eng: Add requirement text to interface groups This allows to state the requirement for an interface group directly in the item. Update #3715.
    Comment 22
    1. Sebastian Huber, Tue, 28 Jul 2020 05:33:54 GMT

    In f12cae1/rtems-docs:

    eng: Add brief description to header file items Update #3715.
    Comment 23
    1. Sebastian Huber, Tue, 28 Jul 2020 05:33:56 GMT

    In c259563/rtems-docs:

    eng: Support N/A in the action transitions Sometimes the pre-conditions in an action requirement are not independent and it is necessary to mark pre-conditions as not applicable in a particular transition. Update #3715.
    Comment 24
    1. Sebastian Huber, Tue, 28 Jul 2020 05:33:58 GMT

    In 3f9fa47/rtems-docs:

    eng: Add ability to skip action transitions Sometimes the pre-conditions in an action requirement are not independent and it is necessary skip a certain set of pre-condition states. This should be used with care since no test code is run in these cases. There shall be a reason given why skipping a transition is justified. Update #3715.
    Comment 25
    1. Sebastian Huber, Tue, 28 Jul 2020 05:34:01 GMT

    In 1bb6947/rtems-docs:

    eng: Fix format of regular expressions Update #3715.
    Comment 26
    1. Sebastian Huber, Thu, 06 Aug 2020 07:12:00 GMT

    In bac4398/rtems-docs:

    eng: Fix typo Update #3715.
    Comment 27
    1. Sebastian Huber, Thu, 06 Aug 2020 07:18:47 GMT

    In e1e0408/rtems-docs:

    eng: Partially revert previous commit The previous commit contained more than just a typo fix. Remove this part. Update #3715.
    Comment 28
    1. Sebastian Huber, Fri, 07 Aug 2020 04:44:14 GMT

    In 83e13b7/rtems-docs:

    eng: Add application config options how-to Update #3715.
    Comment 29
    1. Sebastian Huber, Fri, 07 Aug 2020 05:15:28 GMT

    In 3e8e301/rtems-docs:

    eng: Add more variants of unspecified interfaces Update #3715.
    Comment 30
    1. Sebastian Huber, Fri, 07 Aug 2020 05:15:31 GMT

    In 5cb493e/rtems-docs:

    eng: Add reference to unspecified interfaces Update #3715.
    Comment 31
    1. Sebastian Huber, Thu, 20 Aug 2020 07:01:23 GMT

    In 9633e98/rtems-docs:

    eng: Add test case attributes Update #3715.
    Comment 32
    1. Sebastian Huber, Thu, 20 Aug 2020 07:01:25 GMT

    In 1a48655/rtems-docs:

    eng: Remove test name attribute Derive the test name from the item UID. Update #3715.
    Comment 33
    1. Sebastian Huber, Thu, 20 Aug 2020 07:01:27 GMT

    In 83a3522/rtems-docs:

    eng: Add test header to test case Update #3715.
    Comment 34
    1. Sebastian Huber, Thu, 20 Aug 2020 07:01:29 GMT

    In 93938c7/rtems-docs:

    eng: Unify test attribute keys Update #3715.
    Comment 35
    1. Sebastian Huber, Thu, 20 Aug 2020 07:01:32 GMT

    In 57fb30d/rtems-docs:

    eng: Add automatically generated warning Update #3715.
    Comment 36
    1. Sebastian Huber, Sun, 11 Oct 2020 13:20:43 GMT

    In c18215c/rtems-docs:

    eng: Move index-entries to all interfaces Update #3715.
    Comment 37
    1. Sebastian Huber, Sun, 11 Oct 2020 13:20:45 GMT

    In bcf4a95/rtems-docs:

    eng: Add placement link role Update #3715.
    Comment 38
    1. Sebastian Huber, Sat, 24 Oct 2020 10:15:38 GMT

    In abc9c44/rtems-docs:

    eng: Replace spec2doc.py with spec2modules.py Update #3715.
    Comment 39
    1. Sebastian Huber, Mon, 09 Nov 2020 14:05:33 GMT

    In f610291/rtems-docs:

    eng: Add function attributes Update #3715.
    Comment 40
    1. Sebastian Huber, Thu, 19 Nov 2020 10:24:36 GMT

    In bbd8d4a/rtems-docs:

    eng: Fix typo Update #3715.
    Comment 41
    1. Sebastian Huber, Fri, 27 Nov 2020 08:17:00 GMT

    In 4b03ff7/rtems-docs:

    eng: Add performance specification items Add items to specify runtime performance requirements. Update #3715.
    Comment 42
    1. Sebastian Huber, Fri, 15 Jan 2021 05:40:59 GMT

    In a08e672/rtems-docs:

    eng: Add design group requirement item type Update #3715.
    Comment 43
    1. Sebastian Huber, Mon, 08 Feb 2021 14:02:53 GMT

    In 174444f/rtems-docs:

    eng: Update test case item Update #3715.
    Comment 44
    1. Sebastian Huber, Tue, 02 Mar 2021 07:29:25 GMT

    In fcac22e/rtems-docs:

    eng: Fix typo Update #3715.
    Comment 45
    1. Sebastian Huber, Mon, 08 Mar 2021 07:29:24 GMT

    In a4b3019/rtems-docs:

    eng: Add how-to for action requirements Update #3715.
    Comment 46
    1. Sebastian Huber, Mon, 08 Mar 2021 09:19:49 GMT

    In e05df28/rtems-docs:

    eng: Clarify how-to for action requirements Update #3715.
    Comment 47
    1. Sebastian Huber, Thu, 11 Mar 2021 05:57:22 GMT

    In 0518d94/rtems-docs:

    eng: Clarify how-to for action requirements Update #3715.
    Comment 48
    1. Sebastian Huber, Thu, 11 Mar 2021 06:54:01 GMT

    In bc0a857/rtems-docs:

    eng: Clarify how-to for action requirements Bring how-to in line with current action requirements. Update #3715.
    Comment 49
    1. Sebastian Huber, Fri, 19 Mar 2021 07:20:33 GMT

    In 239644b/rtems-docs:

    eng: Update EARS syntax The document used the EARS syntax from 2009 which slightly changed in 2016, see "Listens Learned (8 Lessons Learned Applying EARS)". The optional pre-conditions moved to the state-driven pattern. This refined syntax fits better to the action requirements. Update #3715.
    Comment 50
    1. Sebastian Huber, Fri, 19 Mar 2021 07:20:35 GMT

    In b580a6d/rtems-docs:

    eng: Add build/appl config clauses to how-to Update #3715.
    Comment 51
    1. Sebastian Huber, Fri, 19 Mar 2021 07:20:37 GMT

    In b40e043/rtems-docs:

    eng: Document expressions in action requirements Update #3715.
    Comment 52
    1. Sebastian Huber, Fri, 19 Mar 2021 07:20:40 GMT

    In 4476290/rtems-docs:

    eng: Add example to action requirements how-to Update #3715.
    Comment 53
    1. Sebastian Huber, Tue, 27 Apr 2021 07:46:36 GMT

    In 3fa9ed4/rtems-docs:

    eng: Allow multiple interface references Update #3715.
    Comment 54
    1. Sebastian Huber, Thu, 29 Apr 2021 05:31:36 GMT

    In 889a5ff/rtems-docs:

    eng: Remove embedded constraints Update #3715.
    Comment 55
    1. Sebastian Huber, Thu, 29 Apr 2021 05:31:39 GMT

    In e263e84/rtems-docs:

    eng: Add unit test link role Update #3715.
    Comment 56
    1. Sebastian Huber, Thu, 29 Apr 2021 09:05:21 GMT

    In b6cb057/rtems-docs:

    eng: Remove scope from constraints Use links instead of this special purpose attributes. Update #3715.
    Comment 57
    1. Sebastian Huber, Thu, 29 Apr 2021 09:05:24 GMT

    In a95c968/rtems-docs:

    eng: Add test suite name Update #3715.
    Comment 58
    1. Sebastian Huber, Fri, 30 Apr 2021 05:06:27 GMT

    In aa0c495/rtems-docs:

    eng: Remove text attribute from acfg options Update #3715.
    Comment 59
    1. Sebastian Huber, Sat, 08 May 2021 08:27:49 GMT

    In b797009/rtems-docs:

    eng: Add unspecified interface groups Update #3715.
    Comment 60
    1. Sebastian Huber, Tue, 03 Aug 2021 08:40:02 GMT

    In 76b5b81/rtems-docs:

    eng: Add freestanding test cases Update #3715.
    Comment 61
    1. Sebastian Huber, Fri, 10 Sep 2021 14:26:52 GMT

    In 7b2b1b4/rtems-docs:

    eng: Simplify interface return specification Update #3715.
    Comment 62
    1. Sebastian Huber, Fri, 10 Sep 2021 14:26:54 GMT

    In 9dd6135/rtems-docs:

    eng: Add interface params/return to typedefs Update #3715.
    Comment 63
    1. Sebastian Huber, Fri, 10 Sep 2021 14:26:57 GMT

    In 60e08fd/rtems-docs:

    eng: Make interface definitions optional Update #3715.
    Comment 64
    1. Sebastian Huber, Fri, 10 Sep 2021 14:26:59 GMT

    In 2df0d64/rtems-docs:

    eng: Add hidden interface group membership Update #3715.
    Comment 65
    1. Sebastian Huber, Mon, 24 Jan 2022 14:28:03 GMT

    In dd60a4a/rtems-docs:

    eng: Add script usage to how-to Update #3715.
    Comment 66
    1. Sebastian Huber, Tue, 04 Oct 2022 06:29:00 GMT

    In 889a498d/rtems-docs:

    eng: Remove interface container item type Update #3715.
    Comment 67
    1. Sebastian Huber, Tue, 04 Oct 2022 06:29:01 GMT

    In c812323/rtems-docs:

    eng: Unify interface function and macro This allows the documentation of parameter and return types for macros. Update #3715.
    Comment 68
    1. Sebastian Huber, Tue, 04 Oct 2022 06:29:02 GMT

    In 1d9f9af/rtems-docs:

    eng: Add function implementation link role Update #3715.
    Comment 69
    1. Sebastian Huber, Tue, 04 Oct 2022 06:29:03 GMT

    In c909228/rtems-docs:

    eng: Refine unspecified interfaces Update #3715.
    Comment 70
    1. Sebastian Huber, Tue, 04 Oct 2022 06:29:05 GMT

    In 4966ed0/rtems-docs:

    eng: Remove appl config group member link role Update #3715.
    Comment 71
    1. Sebastian Huber, Tue, 04 Oct 2022 06:29:06 GMT

    In b55c8bf/rtems-docs:

    eng: Use type refinement for validation method Update #3715.
    Comment 72
    1. Sebastian Huber, Tue, 04 Oct 2022 06:29:07 GMT

    In 4fddb23/rtems-docs:

    eng: Add memory benachmark type refinement Update #3715.
    Comment 73
    1. Sebastian Huber, Wed, 30 Nov 2022 08:52:47 GMT
    2. milestone: changed from 6.1 to 7.1
    Comment 74
    1. Sebastian Huber, Mon, 23 Jan 2023 06:38:37 GMT

    In 0b0dd79/rtems-docs:

    eng: Use a recommendation for requirement texts Update #3715.
    Comment 75
    1. Sebastian Huber, Fri, 19 May 2023 05:21:00 GMT
    2. milestone: changed from 7.1 to 6.1
    Comment 76
    1. Sebastian Huber, Fri, 19 May 2023 05:21:26 GMT

    In 6dc190b/rtems-docs:

    eng: Rework performance meansurement items Use links to specify runtime performance limits in target-specific items. Clarify wording. Update #3715.
    Comment 77
    1. Sebastian Huber, Fri, 19 May 2023 05:21:27 GMT

    In 5928d04/rtems-docs:

    eng: Generalize external references Use a common subtype for external references of interfaces and requirements. Add specializations for document and file references. Update #3715.
    Comment 78
    1. Sebastian Huber, Fri, 19 May 2023 05:21:29 GMT

    In c81a244/rtems-docs:

    eng: Add conditional build dependencies Update #3715.
    Comment 79
    1. Sebastian Huber, Fri, 19 May 2023 05:21:30 GMT

    In 98172bc/rtems-docs:

    eng: Use type refinement for validation method Update #3715.
    Comment 80
    1. Sebastian Huber, Fri, 19 May 2023 05:21:31 GMT

    In 77e8b56/rtems-docs:

    eng: Add optional floating-point number type Update #3715.
    Comment 81
    1. Sebastian Huber, Fri, 19 May 2023 05:21:32 GMT

    In 7158449/rtems-docs:

    eng: Update application configuration how-to Change paths to be in line with the actual specification. Fix group membership link role. Update #3715.
    Comment 82
    1. Sebastian Huber, Fri, 19 May 2023 05:21:34 GMT

    In c69046e/rtems-docs:

    eng: Remove obsolete type listing Update #3715.
    Comment 83
    1. Sebastian Huber, Fri, 19 May 2023 05:21:35 GMT

    In 2a5e59d/rtems-docs:

    eng: Add design target item type Update #3715.
    Comment 84
    1. Sebastian Huber, Fri, 19 May 2023 05:21:36 GMT

    In 8bc24e5/rtems-docs:

    eng: Add proxy item type Update #3715.
    Comment 85
    1. Sebastian Huber, Fri, 19 May 2023 05:21:37 GMT

    In 9a5fb29/rtems-docs:

    eng: Remove ambiguous interface types Use an item proxy instead. Update #3715.
    Comment 86
    1. Sebastian Huber, Fri, 19 May 2023 05:21:39 GMT

    In 63286a5/rtems-docs:

    eng: Add an item type for not defined defines This helps to deduce that a missing define in the software design is intended. Update #3715.
    Comment 87
    1. Sebastian Huber, Fri, 19 May 2023 05:21:40 GMT

    In 2fecb7a/rtems-docs:

    eng: Make design group identifiers optional Update #3715.
    Comment 88
    1. Sebastian Huber, Fri, 19 May 2023 05:21:41 GMT

    In 9c2498a/rtems-docs:

    eng: Add unspecified header file item type Update #3715.
    Comment 89
    1. Sebastian Huber, Fri, 19 May 2023 05:21:43 GMT

    In 2e939ff/rtems-docs:

    eng: Add register block specification types A register block may be used to specify the interface of devices which contain registers associated with an integer address. Register blocks consist of register block members specified by the definition attribute. Register block members are either instances of registers specified by the registers attribute or instances of other register blocks specified by links with the "register-block-include" link role. Registers consists of bit fields. The register block members are placed into the address space of the device relative to the base address of the register block. Register member offests and the register block size are specified in units of the address space granule. Update #3715.
    Comment 90
    1. Sebastian Huber, Fri, 19 May 2023 05:25:41 GMT
    2. status: changed from accepted to closed
    3. resolution: set to fixed

    The initial work for this chapter is now done. The specification of the specification items in rtems-central is in line with the rtems-docs repository. Further work in this area should be done under a new ticket.


    3717 - Add test guidelines chapter to RTEMS Software Engineering Handbook

    Link https://devel.rtems.org/ticket/3717
    Id 3717
    Reporter Sebastian Huber
    Created 4 March 2019 12:25:45
    Modified 23 October 2023 13:44:55
    Owner Sebastian Huber
    Type task
    Component doc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking 3716
    Blocked by  

    Description

    The test guidelines chapter should cover the following topics:

    • tools involved in testing
    • test classification
    • test organization
    • how to plan tests
    • how to write tests
    • how to run tests
    • how to report tests
    Comment 1
    1. Sebastian Huber, Wed, 30 Nov 2022 08:53:19 GMT
    2. milestone: changed from 6.1 to 7.1
    Comment 2
    1. Sebastian Huber, Mon, 26 Jun 2023 14:54:43 GMT

    In bb19475/rtems-docs:

    eng: Add guidelines for validation tests Update #3717.
    Comment 3
    1. Sebastian Huber, Mon, 23 Oct 2023 13:44:55 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed
    4. milestone: changed from 7.1 to 6.1

    There is always room improvement, however, the guidelines in the how-to section should do it for now:

    ​https://docs.rtems.org/branches/master/eng/req/howto.html#


    3718 - Add support for test plans

    Link https://devel.rtems.org/ticket/3718
    Id 3718
    Reporter Sebastian Huber
    Created 4 March 2019 13:02:17
    Modified 29 September 2021 13:31:41
    Owner Sebastian Huber
    Type task
    Component test
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking 3716
    Blocked by  

    Description

    Test plans are required by ​ECSS-Q-ST-40C:

    • 5.5.3.2, Software unit testing, a.
    • 5.5.4.1, Software integration test plan development
    • 5.6.3.1, Development and documentation of a software validation specification with respect to the technical specification, a.

    The test plans are a content of several documentation sets. Test plans are subject to verification activities:

    • 5.8.3.6, Verification of software unit testing (plan and results)
    • 5.8.3.7, Verification of software integration
    • 5.8.3.8, Verification of software validation with respect to the technical specifications and the requirements baseline

    It should be possible to create documents from individual test plan fragments for a particular test case. There are two approaches possible:

  • Add the test plan directly to the test code in form of a specially formatted comment.
  • Use separate files with a specific format for test plans.
  • The test plans should include a

    • test identifier,
    • test classification (unit, integration, validation),
    • test steps,
    • links to requirements, design, architecture, unit, component, etc.

    It should be possible to verify that a test is executed according to the plan from the test output. For example the test plan could specify test steps. The test output could print the test steps. A tool could check that the test steps in the output and the plan are consistent.

    Comment 1
    1. Sebastian Huber, Wed, 29 Sep 2021 13:31:41 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    Test cases are specified by specification items:

    ​https://docs.rtems.org/branches/master/eng/req/items.html#spectypetestcaseitemtype


    3719 - Update libcrypt to latest FreeBSD to address Coverity Scan Issues

    Link https://devel.rtems.org/ticket/3719
    Id 3719
    Reporter Joel Sherrill
    Created 7 March 2019 18:58:44
    Modified 31 October 2023 11:46:50
    Owner Sebastian Huber
    Type defect
    Component lib
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    Coverity issues 1018087, 1018088, 1018089, and 1018090 all appear to be addressed in the latest source code for libcrypt from FreeBSD. This code needs to be updated. This is one of the issues (1018087) in crypt-sha512.c from Scan but the same issues are in sha256.c

    275        if (copied_key != NULL)
    CID 1018088: 'Constant' variable guards dead code (DEADCODE) [select issue]
    276 memset(copied_key, '\0', key_len);
    null: At condition copied_salt != NULL, the value of copied_salt must be NULL.
    dead_error_condition: The condition copied_salt != NULL cannot be true.
    277 if (copied_salt != NULL)
    CID 1018087 (#1 of 1): 'Constant' variable guards dead code (DEADCODE)
    dead_error_line: Execution cannot reach this statement: memset(copied_salt, 0, salt....
    Local variable copied_salt is assigned only once, to a constant value, making it effectively constant throughout its scope. If this is not the intent, examine the logic to see if there is a missing assignment that would make copied_salt not remain constant.
    278 memset(copied_salt, '\0', salt_len);
    Comment 1
    1. Sebastian Huber, Thu, 19 Dec 2019 08:07:34 GMT
    2. milestone: changed from 5.1 to 6.1
    Comment 2
    1. Sebastian Huber, Fri, 09 Sep 2022 04:51:17 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    This should be fixed now.

    Comment 3
    1. Sebastian Huber, Thu, 22 Sep 2022 06:17:18 GMT

    In ade8d99/rtems:

    build: Install SHA header files Update #3719.
    Comment 4
    1. Sebastian Huber, Tue, 31 Oct 2023 11:46:50 GMT
    2. keywords: qualification added

    3726 - Select a requirements engineering tool

    Link https://devel.rtems.org/ticket/3726
    Id 3726
    Reporter Sebastian Huber
    Created 13 March 2019 06:37:47
    Modified 18 June 2021 08:08:00
    Owner Sebastian Huber
    Type task
    Component doc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking 3703
    Blocked by  

    Description

    In order to ease the requirements engineering process (such a process doesn't exist currently, see #3715) select a supporting tool (or tools). Define tool selection criteria. Do a market survey. Use the following wiki page for this work:

    Developer/RequirementsEngineering

    Comment 1
    1. Sebastian Huber, Fri, 18 Jun 2021 08:08:00 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    The work to select a requirements management tool was done:

    ​https://docs.rtems.org/branches/master/eng/req/tooling.html


    3818 - New build system

    Link https://devel.rtems.org/ticket/3818
    Id 3818
    Reporter Sebastian Huber
    Created 7 November 2019 08:28:42
    Modified 23 June 2021 07:16:03
    Owner Sebastian Huber
    Type enhancement
    Component build
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking 3250
    Blocked by  

    Description

    Replace the existing Autoconf and Automake based build system with something new. Goals:

    • Easier configuration of BSPs (BSP options)
    • Easier to maintain (nobody understands the details of the existing build system)
    • Faster builds (especially on Windows)
    • Reusable build specifications (e.g. generate documentation for BSP options for the user manual)
    • Validation of built artefacts (e.g. ensure that the objects are built as specified using the DWARF debug information)
    • Support building of BSPs external to the project
    • Customization of the build (e.g. build only a subset of the RTEMS functions)
    • Support alternative compilers such as clang instead of GCC

    Proposed solution:

    • Use waf for the build system
    • Specify the build through build specification items maintained by Doorstop
    Comment 1
    1. Sebastian Huber, Thu, 07 Nov 2019 08:30:03 GMT
    2. description: modified (diff)
    Comment 2
    1. Sebastian Huber, Thu, 07 Nov 2019 08:30:40 GMT
    2. status: changed from assigned to accepted
    Comment 3
    1. Sebastian Huber, Tue, 12 Nov 2019 09:07:11 GMT

    In 9f3c558/rtems:

    tests: Remove superfluous SMPTESTS define Update #3818.
    Comment 4
    1. Sebastian Huber, Tue, 12 Nov 2019 09:07:15 GMT

    In f32e119/rtems:

    psxtests: Avoid build system defined defines Update #3818.
    Comment 5
    1. Sebastian Huber, Tue, 12 Nov 2019 09:07:18 GMT

    In 150fbaf9/rtems:

    psxtmtests: Avoid build system defined defines Update #3818.
    Comment 6
    1. Sebastian Huber, Tue, 12 Nov 2019 09:07:22 GMT

    In a467f59/rtems:

    sptests: Avoid build system defined defines Update #3818.
    Comment 7
    1. Sebastian Huber, Tue, 12 Nov 2019 09:07:28 GMT

    In 51765553/rtems:

    sptests: Remove obsolete semaphore consume driver This driver is no longer used by a test program. Update #3818.
    Comment 8
    1. Sebastian Huber, Tue, 12 Nov 2019 09:07:31 GMT

    In 5ba4f383/rtems:

    libtests: Avoid build system defined defines Update #3818.
    Comment 9
    1. Sebastian Huber, Tue, 12 Nov 2019 09:07:34 GMT

    In c89a5dc8/rtems:

    samples: Avoid build system defined defines Update #3818.
    Comment 10
    1. Sebastian Huber, Tue, 12 Nov 2019 09:07:40 GMT

    In 34cbac1/rtems:

    tmtests: Avoid build system defined defines Update #3818.
    Comment 11
    1. Sebastian Huber, Tue, 12 Nov 2019 09:07:43 GMT

    In eae263c/rtems:

    mptests/mp14: Make MAX_LONG_TEST_DURATION constant If there is a real need, it can be made a configuration option again. Update #3818.
    Comment 12
    1. Sebastian Huber, Tue, 12 Nov 2019 09:07:46 GMT

    In 786ae3f/rtems:

    ada/samples: Avoid build system defined defines Update #3818.
    Comment 13
    1. Sebastian Huber, Tue, 12 Nov 2019 09:07:50 GMT

    In 0b520cb/rtems:

    mptests: Avoid build system defined defines Update #3818.
    Comment 14
    1. Sebastian Huber, Tue, 12 Nov 2019 09:07:53 GMT

    In b88c7583/rtems:

    fstests: Use tmacros.h instead of pmacros.h This avoids an extra include path. Update #3818.
    Comment 15
    1. Sebastian Huber, Tue, 12 Nov 2019 09:07:56 GMT

    In 37d509b/rtems:

    libtests: Remove superfluous include path Update #3818.
    Comment 16
    1. Sebastian Huber, Tue, 12 Nov 2019 09:07:59 GMT

    In 6da85f49/rtems:

    block08: Use local include Update #3818.
    Comment 17
    1. Sebastian Huber, Tue, 12 Nov 2019 09:08:03 GMT

    In 1e343825/rtems:

    tests: Simplify fatal error test support Move system.h to shared init.c. Update #3818.
    Comment 18
    1. Sebastian Huber, Tue, 12 Nov 2019 09:08:06 GMT

    In 1a48cbf/rtems:

    sptests: Avoid include path magic Update #3818.
    Comment 19
    1. Sebastian Huber, Tue, 12 Nov 2019 09:08:09 GMT

    In f515948/rtems:

    ada/mptests: Make them compile clean Fix all warnings. Update #3818.
    Comment 20
    1. Sebastian Huber, Thu, 14 Nov 2019 10:49:27 GMT

    In 984d7443/rtems:

    bsp/gumstix: Remove ON_SKYEYE Automake conditional It is fine to build the drivers always. Update #3818.
    Comment 21
    1. Sebastian Huber, Thu, 14 Nov 2019 14:10:37 GMT

    In bc28b65/rtems:

    bsp/beagle: Rename linker command file This BSP family uses only one linker command file. Use the standard name. Update #3818.
    Comment 22
    1. Sebastian Huber, Thu, 14 Nov 2019 14:10:40 GMT

    In 41ab50e4/rtems:

    bsp/t32mppc: Rename linker command file This BSP family uses only one linker command file. Use the standard name. Update #3818.
    Comment 23
    1. Sebastian Huber, Fri, 15 Nov 2019 06:46:01 GMT

    In 9c601b00/rtems:

    bsp/i386: Remove unused BSP_HAS_SMP Update #3818.
    Comment 24
    1. Sebastian Huber, Fri, 15 Nov 2019 06:46:04 GMT

    In b882b07/rtems:

    Remove BSP_SMALL_MEMORY BSP option Use the test state configuration instead. Update #3818.
    Comment 25
    1. Sebastian Huber, Fri, 15 Nov 2019 06:46:07 GMT

    In 75d9e79f/rtems:

    bsp/lpc32xx: Remove unused TESTS_USE_PRINTK Update #3818.
    Comment 26
    1. Sebastian Huber, Thu, 21 Nov 2019 07:06:00 GMT

    In af321aa/rtems:

    bsp/altcycv_devkit: Rename linker command file This BSP family uses only one linker command file. Use the standard name. Update #3818.
    Comment 27
    1. Sebastian Huber, Thu, 21 Nov 2019 07:06:04 GMT

    In a52d6174/rtems:

    bsp/imx7: Rename linker command file This BSP family uses only one linker command file. Use the standard name. Update #3818.
    Comment 28
    1. Sebastian Huber, Thu, 21 Nov 2019 07:06:11 GMT

    In 38207a31/rtems:

    Move feature macro before "config.h" include This allows to use header includes in "config.h" to reduce the build configuration checks. Update #3818.
    Comment 29
    1. Sebastian Huber, Thu, 21 Nov 2019 07:06:14 GMT

    In f377998/rtems:

    imfs: Add IMFS_make_linfile() Update #3818.
    Comment 30
    1. Sebastian Huber, Mon, 25 Nov 2019 10:45:38 GMT

    In 3e9f5a55/rtems:

    bsp/gen83xx: Remove obsolete linker command file Update #3818.
    Comment 31
    1. Sebastian Huber, Mon, 25 Nov 2019 10:45:42 GMT

    In 05a32e15/rtems:

    bsp/mpc55xxevb: Remove obsolete linker cmd file Update #3818.
    Comment 32
    1. Sebastian Huber, Mon, 25 Nov 2019 10:45:45 GMT

    In a0304e8d/rtems:

    libtest: Output basename of source files Output only the basename of source files to be independent of the build system source paths. In the future it may be better to use the GCC -fmacro-prefix-map option. This option is available in GCC 8 and later. It is not yet available in clang. Update #3818.
    Comment 33
    1. Sebastian Huber, Mon, 25 Nov 2019 10:45:55 GMT

    In 273e8b7/rtems:

    libtests/tar0[12]:: Use static archive content This simplifies the build process. Do not generate the archive content through the build system. Let the version control system deal with symbolic links. Update #3818.
    Comment 34
    1. Sebastian Huber, Mon, 25 Nov 2019 10:45:59 GMT

    In 8f021bd/rtems:

    libtests/dl*: Do not generate files via "echo" Add the static files to the repository. This simplifies the build. Update #3818.
    Comment 35
    1. Sebastian Huber, Mon, 25 Nov 2019 12:02:10 GMT

    In 5c2e7104/rtems:

    libtests: Use '-' for TAR file names Use uniform pattern for all TAR file names. Use the dl* tests as a template. Update #3818.
    Comment 36
    1. Sebastian Huber, Tue, 26 Nov 2019 07:35:02 GMT

    In 4a05652/rtems:

    libtests/dl*: Rename source files Rename source files to use a %.c -> %.o and %.cc -> %.o pattern. Use *.cc for C++ source files instead of *.cpp to be in line with other C++ source files. Update #3818.
    Comment 37
    1. Sebastian Huber, Wed, 27 Nov 2019 11:03:45 GMT

    In 1fca1665/rtems:

    testsuites/ada: Introduce init.c files Provide an init.c for each Ada test instead of the #include magic which works only due to hand crafted include paths. Update #3818.
    Comment 38
    1. Sebastian Huber, Fri, 29 Nov 2019 18:13:05 GMT

    In ae716da/rtems:

    ada/sp19: Add m4 generated sptest.adb Update #3818.
    Comment 39
    1. Sebastian Huber, Mon, 02 Dec 2019 06:47:45 GMT

    In 8f6b7abd/rtems:

    Move feature macro before "config.h" include This allows to use header includes in "config.h" to reduce the build configuration checks. Update #3818.
    Comment 40
    1. Sebastian Huber, Wed, 04 Dec 2019 06:43:57 GMT

    In a6879a4/rtems:

    testsuites: Remove rtems_test_pause*() The rtems_test_pause() and rtems_test_pause_and_screen_number() macros had different implementations depending on the RTEMS_TEST_NO_PAUSE define. This define was defined to 1 by default. The user was able to change this via the undocumented --disable-test-no-pause configure command line option. Pausing tests and waiting for user input contradicts the goal of having automated test runs. Remove this feature. Update #3818.
    Comment 41
    1. Sebastian Huber, Thu, 05 Dec 2019 06:52:52 GMT

    In 1380c822/rtems:

    bsp/xen: Use BSP options for all linkcmds vars Update #3818.
    Comment 42
    1. Sebastian Huber, Fri, 13 Dec 2019 09:10:28 GMT

    In f30dd1f/rtems:

    mptests: Fix configuration Update #3818.
    Comment 43
    1. Sebastian Huber, Tue, 25 Feb 2020 07:21:40 GMT
    2. version: changed from 5 to 6
    3. milestone: changed from 5.1 to 6.1
    Comment 44
    1. Sebastian Huber, Mon, 06 Apr 2020 14:01:59 GMT
    2. blocking: set to 3250
    Comment 45
    1. Sebastian Huber, Sun, 13 Sep 2020 12:01:52 GMT

    In 449fc74/rtems-docs:

    eng: Add BSP build system chapter Update #3818.
    Comment 46
    1. Sebastian Huber, Sun, 13 Sep 2020 12:01:54 GMT

    In 4ea43e3/rtems-docs:

    user: Document BSP new build system Update #3818.
    Comment 47
    1. Sebastian Huber, Mon, 14 Sep 2020 07:00:02 GMT

    In f3f0370f/rtems:

    build: Alternative build system based on waf Update #3818.
    Comment 48
    1. kgardas, Mon, 14 Sep 2020 21:14:39 GMT

    with new build system smp enabled build of pc686 fails. Linkage of samples fails with

    /export/home/karel/sfw/rtems/6-tools-core2/lib/gcc/i386-rtems6/10.2.1/../../../../i386-rtems6/bin/ld: ./librtemsbsp.a(smp-imps.c.10.o): in function `boot_cpu':
    /export/home/karel/git/rtems/rtems-head/build/i386/pc686/../../../bsps/i386/pc386/start/smp-imps.c:274: undefined reference to `_binary_appstart_bin_start'
    /export/home/karel/sfw/rtems/6-tools-core2/lib/gcc/i386-rtems6/10.2.1/../../../../i386-rtems6/bin/ld: /export/home/karel/git/rtems/rtems-head/build/i386/pc686/../../../bsps/i386/pc386/start/smp-imps.c:274: undefined reference to `_binary_appstart_bin_size'
    collect2: error: ld returned 1 exit status 

    that's due to fact this part of Makefile based build was not translated to the new build system:

    appcpustart.$(OBJEXT): ../../../../../../bsps/i386/pc386/start/startAP.S
            $(CPPASCOMPILE) $(AM_CPPFLAGS) -o $@ -c $<
    appstart.$(OBJEXT): appcpustart.$(OBJEXT)
            $(LD) -N  \
                -Ttext 0x70000 -e app_processor_start -nostdlib \
                -o appstart_tmp.exe $<
            $(OBJCOPY) -O binary appstart_tmp.exe appstart.bin
            $(OBJCOPY) -I binary -O elf32-i386 -B i386 appstart.bin $@ 

    besides this there is also error in files (getcpuid.c seems to be gone, bspsmp.c needs to be there:

    diff --git a/spec/build/bsps/i386/pc386/objsmp.yml b/spec/build/bsps/i386/pc386/objsmp.yml
    index af882cb425..9e83bd7a01 100644
    --- a/spec/build/bsps/i386/pc386/objsmp.yml
    +++ b/spec/build/bsps/i386/pc386/objsmp.yml
    @@ -11,6 +11,7 @@ includes: []
     install: []
     links: []
     source:
    -- bsps/i386/pc386/start/getcpuid.c
    +#- bsps/i386/pc386/start/getcpuid.c
    +- bsps/i386/pc386/start/bspsmp.c
     - bsps/i386/pc386/start/smp-imps.c
     type: build 

    unfortunately so far I struggle with translating this to waf, probably should look for some waf doc or so. E.g. linking steps of appcpustart.o into appstart.o is what makes me trouble. Also I'm not able to find out how rtemsbsp lib is linked and its dependency specified...

    Comment 49
    1. Sebastian Huber, Tue, 15 Sep 2020 07:20:48 GMT

    In 127c3ea5/rtems:

    build: Fix i386/pc386 with SMP enabled Update #3818.
    Comment 50
    1. Sebastian Huber, Tue, 15 Sep 2020 07:24:54 GMT

    Replying to kgardas:

    unfortunately so far I struggle with translating this to waf, probably should look for some waf doc or so. E.g. linking steps of appcpustart.o into appstart.o is what makes me trouble. Also I'm not able to find out how rtemsbsp lib is linked and its dependency specified...

    Thanks testing the new build system and for the bug report. I checked in a fix, could you please test if this fixes the issues on this BSP.

    Working with waf is also not easy for me. Fortunately, we don't have that many areas in the build which need a special treatment like this. It was the first spot which needed to include a specially build object file in a library.

    Comment 51
    1. kgardas, Tue, 15 Sep 2020 08:02:05 GMT

    Replying to Sebastian Huber:

    Replying to kgardas:

    unfortunately so far I struggle with translating this to waf, probably should look for some waf doc or so. E.g. linking steps of appcpustart.o into appstart.o is what makes me trouble. Also I'm not able to find out how rtemsbsp lib is linked and its dependency specified...

    Thanks testing the new build system and for the bug report. I checked in a fix, could you please test if this fixes the issues on this BSP.

    Working with waf is also not easy for me. Fortunately, we don't have that many areas in the build which need a special treatment like this. It was the first spot which needed to include a specially build object file in a library.

    Build builds both no-SMP and SMP BSPs fine, but neither of them runs on neither qemu nor on real hardware. If you find helpful, then qemu connected gdb shows those 3 traces over few seconds of BSP run:

    Program received signal SIGINT, Interrupt.
    0x00008d54 in _RBTree_Insert_inline (less=, key=, the_node=0x5ccc3d04, the_rbtree=0x736f4d74) at ../../../cpukit/include/rtems/score/rbtree.h:523
    523       while ( *link != NULL ) {
    (gdb) where
    #0  0x00008d54 in _RBTree_Insert_inline (less=, key=, the_node=0x5ccc3d04, the_rbtree=0x736f4d74) at ../../../cpukit/include/rtems/score/rbtree.h:523
    #1  _Priority_Plain_insert (priority=0, node=0x5ccc3d04, aggregation=0xc031 ) at ../../../cpukit/include/rtems/score/priorityimpl.h:417
    #2  _Thread_queue_Priority_do_enqueue (heads=0xc031 , queue_context=0x6c6c6544, the_thread=0x74 <_establish_stack+19>, queue=0x726f5020)
        at ../../../cpukit/score/src/threadqops.c:484
    #3  _Thread_queue_Queue_enqueue (enqueue=, initialize=, queue_context=0x6c6c6544, the_thread=0x74 <_establish_stack+19>, queue=0x726f5020)
        at ../../../cpukit/score/src/threadqops.c:96
    #4  _Thread_queue_Priority_enqueue (queue=0x726f5020, the_thread=0x74 <_establish_stack+19>, queue_context=0x6c6c6544) at ../../../cpukit/score/src/threadqops.c:566
    #5  0x6c616972 in ?? ()
    #6  0x00000000 in ?? ()
    (gdb) c
    Continuing.
    ^C
    Program received signal SIGINT, Interrupt.
    0x00008d48 in _Chain_Insert_unprotected (the_node=0x283d4 , after_node=0x9002d0ff) at ../../../cpukit/include/rtems/score/chainimpl.h:666
    666       before_node->previous = the_node;
    (gdb) where
    #0  0x00008d48 in _Chain_Insert_unprotected (the_node=0x283d4 , after_node=0x9002d0ff) at ../../../cpukit/include/rtems/score/chainimpl.h:666
    #1  _Chain_Prepend_unprotected (the_node=0x283d4 , the_chain=0x9002d0ff) at ../../../cpukit/include/rtems/score/chainimpl.h:737
    #2  _Thread_queue_Queue_enqueue (enqueue=, initialize=, queue_context=0x6c6c6544, the_thread=0x74 <_establish_stack+19>, queue=0x726f5020)
        at ../../../cpukit/score/src/threadqops.c:95
    #3  _Thread_queue_Priority_enqueue (queue=0x726f5020, the_thread=0x74 <_establish_stack+19>, queue_context=0x6c6c6544) at ../../../cpukit/score/src/threadqops.c:566
    #4  0x6c616972 in ?? ()
    #5  0x00000000 in ?? ()
    (gdb) c
    Continuing.
    ^C
    Program received signal SIGINT, Interrupt.
    0x00008d54 in _RBTree_Insert_inline (less=, key=, the_node=0x5ccc3d04, the_rbtree=0x736f4d74) at ../../../cpukit/include/rtems/score/rbtree.h:523
    523       while ( *link != NULL ) {
    (gdb) where
    #0  0x00008d54 in _RBTree_Insert_inline (less=, key=, the_node=0x5ccc3d04, the_rbtree=0x736f4d74) at ../../../cpukit/include/rtems/score/rbtree.h:523
    #1  _Priority_Plain_insert (priority=0, node=0x5ccc3d04, aggregation=0xc031 ) at ../../../cpukit/include/rtems/score/priorityimpl.h:417
    #2  _Thread_queue_Priority_do_enqueue (heads=0xc031 , queue_context=0x6c6c6544, the_thread=0x74 <_establish_stack+19>, queue=0x726f5020)
        at ../../../cpukit/score/src/threadqops.c:484
    #3  _Thread_queue_Queue_enqueue (enqueue=, initialize=, queue_context=0x6c6c6544, the_thread=0x74 <_establish_stack+19>, queue=0x726f5020)
        at ../../../cpukit/score/src/threadqops.c:96
    #4  _Thread_queue_Priority_enqueue (queue=0x726f5020, the_thread=0x74 <_establish_stack+19>, queue_context=0x6c6c6544) at ../../../cpukit/score/src/threadqops.c:566
    #5  0x6c616972 in ?? ()
    #6  0x00000000 in ?? ()
    (gdb) 
    Comment 52
    1. Sebastian Huber, Tue, 15 Sep 2020 08:09:11 GMT

    Replying to kgardas: [...]

    Build builds both no-SMP and SMP BSPs fine, but neither of them runs on neither qemu nor on real hardware. If you find helpful, then qemu connected gdb shows those 3 traces over few seconds of BSP run:

    With the old build system both configuration work I guess?

    What is the qemu command line to test this BSP?

    Comment 53
    1. kgardas, Tue, 15 Sep 2020 08:26:14 GMT

    Replying to Sebastian Huber:

    Replying to kgardas: [...]

    Build builds both no-SMP and SMP BSPs fine, but neither of them runs on neither qemu nor on real hardware. If you find helpful, then qemu connected gdb shows those 3 traces over few seconds of BSP run:

    With the old build system both configuration work I guess?

    Yes, hello/smp works

    What is the qemu command line to test this BSP?

    qemu-system-i386 -m 128 -no-reboot -nographic -append "--video=off --console=/dev/com1" -kernel ./hello.exe 
    Comment 54
    1. Sebastian Huber, Tue, 15 Sep 2020 11:33:18 GMT

    In 3be23809/rtems:

    build: Fix i386/pc386 ABI flags Update #3818.
    Comment 55
    1. Sebastian Huber, Tue, 15 Sep 2020 11:33:22 GMT

    In d9d31b3/rtems:

    build: Add RELOCADDR to i386/pc386 options Update #3818.
    Comment 56
    1. Sebastian Huber, Tue, 15 Sep 2020 13:14:56 GMT

    In 8f424e45/rtems:

    build: Fix i386/pc386 link of SMP start file Update #3818.
    Comment 57
    1. Sebastian Huber, Tue, 15 Sep 2020 13:15:00 GMT

    In 2a4ccc4/rtems:

    bsp/pc386: Remove support for obsolete Binutils Update #3818.
    Comment 58
    1. Sebastian Huber, Tue, 15 Sep 2020 13:16:33 GMT

    Replying to kgardas:

    Replying to Sebastian Huber:

    Replying to kgardas: [...]

    Build builds both no-SMP and SMP BSPs fine, but neither of them runs on neither qemu nor on real hardware. If you find helpful, then qemu connected gdb shows those 3 traces over few seconds of BSP run:

    With the old build system both configuration work I guess?

    Yes, hello/smp works

    With the recent fixes I was able to run the tests on Qemu.

    What is the qemu command line to test this BSP?

    qemu-system-i386 -m 128 -no-reboot -nographic -append "--video=off --console=/dev/com1" -kernel ./hello.exe 
    Comment 59
    1. kgardas, Tue, 15 Sep 2020 13:47:12 GMT

    Replying to Sebastian Huber:

    With the recent fixes I was able to run the tests on Qemu.

    Thanks a lot for fast fixes! I can confirm running no-SMP hello and SMP smp01 on both qemu and real hardware. Thanks!

    Comment 60
    1. Sebastian Huber, Thu, 17 Sep 2020 16:09:15 GMT

    In 845674e/rtems:

    build: Fix mghttpd01 test exclude Update #3818.
    Comment 61
    1. Sebastian Huber, Thu, 17 Sep 2020 16:09:18 GMT

    In 11c1b862/rtems:

    build: Allow test program item UIDs with a "-" Update #3818.
    Comment 62
    1. Sebastian Huber, Sun, 20 Sep 2020 15:32:24 GMT

    In 2b1a4ac/rtems:

    build: Fix linker path Use -B for the linker since some architectures use extra start files defined by the GCC specification and provided by the BSP, for example powerpc. Start files are not found by -L. In the long run, the GCC defined start files should be provided by GCC. This is a GCC 11 topic. Update #3818
    Comment 63
    1. Sebastian Huber, Mon, 21 Sep 2020 04:47:26 GMT

    In d110e6e3/rtems:

    bsp/gen83xx: Add missing source file Update #3818.
    Comment 64
    1. Sebastian Huber, Fri, 25 Sep 2020 16:51:26 GMT

    In 7392632/rtems:

    build: Add RTEMS_PROFILING Update #3818.
    Comment 65
    1. Sebastian Huber, Fri, 25 Sep 2020 16:56:48 GMT

    In 2fb86e2/rtems-docs:

    user: Add migration hints from old build system Update #3818.
    Comment 66
    1. Sebastian Huber, Sun, 27 Sep 2020 07:40:41 GMT

    In 9a27c9c/rtems:

    build: Simplify get_compiler() Update #3818.
    Comment 67
    1. Sebastian Huber, Sun, 27 Sep 2020 07:40:44 GMT

    In b8d8401/rtems:

    build: Fix enabled-by evaluation For the enabled-by evaluation we have to use the BSP name defined by the build specification and not the user. Update #3818.
    Comment 68
    1. Sebastian Huber, Sun, 27 Sep 2020 07:40:48 GMT

    In 71ccc15/rtems:

    build: Fix option default values For the option default values we have to use the BSP name defined by the build specification and not the user. Update #3818.
    Comment 69
    1. Sebastian Huber, Mon, 28 Sep 2020 04:21:56 GMT

    In cbd4f54/rtems:

    build: Add comment Update #3818.
    Comment 70
    1. Sebastian Huber, Wed, 30 Sep 2020 11:02:08 GMT

    In 31c333d/rtems:

    build: Include cpuopts.h in "config.h" The Autoconf/Automake? build system did something similar. This fixes the build of sigprogmask.c which uses RTEMS_POSIX_API and expects to get it defined via "config.h". Update #3818.
    Comment 71
    1. Sebastian Huber, Fri, 02 Oct 2020 14:30:05 GMT

    In f53712a/rtems:

    build: Use exact match by default for BSP names Update #3818.
    Comment 72
    1. Sebastian Huber, Wed, 07 Oct 2020 06:06:50 GMT

    In 94b8d85b/rtems:

    build: Fix BSP name Update #3818.
    Comment 73
    1. Sebastian Huber, Mon, 26 Apr 2021 12:06:12 GMT
    2. status: changed from accepted to closed
    3. resolution: set to fixed

    The new build system is operational. Issues with the new build system should use new tickets.

    Comment 74
    1. Sebastian Huber, Wed, 23 Jun 2021 07:16:03 GMT
    2. keywords: qualification added

    3828 - Switch over to new build system

    Link https://devel.rtems.org/ticket/3828
    Id 3828
    Reporter Sebastian Huber
    Created 2 December 2019 07:59:33
    Modified 17 December 2021 14:19:10
    Owner Sebastian Huber
    Type task
    Component build
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    During a four month period every RTEMS user is encouraged to test its BSPs of interest with the new build system. The user should use the following check list. Issues should be reported on devel@… or this ticket.

  • Review the build system specification in the user manual. If something is unclear, please complain.
  • Use "./waf bsp_defaults" to get a list of options with default values for the BSPs of interest. Check that all options are present. Check the type of the options in the build specification (e.g. actions get-integer, get-boolean, get-string). Review the description of the options. Review the default values. Add sanity checks to options (e.g. actions assert-*).
  • Build the BSPs of interest with all tests enabled (BUILD_TESTS = True). Review the ABI and linker options. Review the linker command files. Run the test on the boards.
  • Build the BSPs of interest with different permutations of build options. Make sure a sample set of tests runs for each permutation.
  • Check that all artefacts (libraries, header files, start files, linker command files, etc.) are properly installed.
  • Check that you can build your applications and third-party libraries with the installed BSPs of interest.
  • Comment 1
    1. Sebastian Huber, Thu, 19 Dec 2019 08:21:07 GMT
    2. version: changed from 5 to 6
    3. milestone: changed from 5.1 to 6.1
    Comment 2
    1. Christian Mauderer, Fri, 17 Dec 2021 08:01:03 GMT

    RTEMS commit ​https://git.rtems.org/rtems/commit/?id=db8f598d56951cf43f22a5e325e0d23c8f7559f9 removed the old build system so this ticket is most likely done?

    Comment 3
    1. Joel Sherrill, Fri, 17 Dec 2021 14:19:10 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    Agreeing with Christian that this ticket is complete. Any issues with the waf build system now are being treated as bugs and the autotools one has been removed.


    3846 - Build system does not track the dependencies of start.o files

    Link https://devel.rtems.org/ticket/3846
    Id 3846
    Reporter Sebastian Huber
    Created 18 December 2019 09:36:04
    Modified 23 June 2021 07:07:55
    Owner Sebastian Huber
    Type defect
    Component build
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    This defect relates to the new waf based build system.

    Most start.o are generated from start.S files which use the C preprocessor. The start.o files are not re-generated if header files (e.g. cpuopts.h, bspopts.h) change. The problem is that the automatic dependency generation via the GCC -MMD flags doesn't work with the current asm rule:

     def asm(self, bld, bic, source, target=None, deps=[], cppflags=[]):
    if target is None:
    target = os.path.splitext(source)[0] + ".o"
    bld(
    asflags=self.data["asflags"],
    before=["cstlib"],
    cppflags=cppflags + self.data["cppflags"],
    features="asm c",
    includes=bic.includes + self.data["includes"],
    rule="${CC} ${ASFLAGS} ${CPPFLAGS} ${DEFINES_ST:DEFINES} ${CPPPATH_ST:INCPATHS} -c ${SRC[0]} -o ${TGT}",
    source=[source] + deps,
    target=target,
    )
    return target
    Comment 1
    1. Sebastian Huber, Thu, 17 Sep 2020 06:58:03 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 4eea8d4/rtems:

    build: Fix dependencies for start and asm files Add a feature to enforce an explicit target file for assembler sources. Add a build start file node list and use it as a test program dependency. The fix for #3846 and #4080 needs to be combined, because the fix for #3846 requires the removal of 'before=cstlib?'. This patch fixes two issues: The tracking of start file dependencies. Reflect that executables depend on the start files. We need a start.o file in the right path so that the linker can find is as specified by the linker script, and not for example a start.S.17.o file in some path. This part is addressed by the "explicit_asm_target" feature. This build process extension @after("apply_link") @feature("cprogram", "cxxprogram") def process_start_files(self):
    if getattr(self, "start_files", False):
    self.link_task.dep_nodes.extend(self.bld.start_files)
    addresses 2. Close #3846. Close #4080.
    Comment 2
    1. Sebastian Huber, Wed, 23 Jun 2021 07:07:55 GMT
    2. keywords: qualification added

    3847 - Test programs are not re-linked if a start.o or linker command file changes

    Link https://devel.rtems.org/ticket/3847
    Id 3847
    Reporter Sebastian Huber
    Created 18 December 2019 09:39:08
    Modified 28 July 2022 07:17:35
    Owner Sebastian Huber
    Type defect
    Component build
    Status closed
    Resolution duplicate
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The test programs are not re-linked if a start.o or linker command file changes. The dependency tracking doesn't know anything about the linker command files or GCC specification files. The start files are normally included through the linker command file START() directive. Somehow these dependencies must be manually added to the test programs.

    Comment 1
    1. Sebastian Huber, Thu, 28 Jul 2022 07:17:35 GMT
    2. status: changed from assigned to closed
    3. resolution: set to duplicate

    The start.o dependency tracking works, see #4080. For linkcmds issue see #4681.


    3853 - Add and use project-wide glossary to documentation

    Link https://devel.rtems.org/ticket/3853
    Id 3853
    Reporter Sebastian Huber
    Created 7 January 2020 14:19:50
    Modified 18 June 2021 09:46:18
    Owner Sebastian Huber
    Type enhancement
    Component doc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    See discussion:

    ​https://lists.rtems.org/pipermail/devel/2020-January/056728.html

    Approach A

    Use c-user/glossary.rst as the project-wide glossary. Generate document-specific glossaries from this file and the use of :term: in the specific document. Add new waf target "./waf regenerate" to carry out the glossary generation.

    Approach B

    Move the glossary terms to the RTEMS specification (e.g. in the RTEMS sources "spec/glossary/*.yml") and generate the glossary.rst for the documents with a script. This gives us more flexibility and removes the need for the special parser code, see:

    ​https://lists.rtems.org/pipermail/devel/2020-January/056811.html

    The AV-2 mentioned of the DoD Architecture Framework (DoDAF) wants the glossary terms in categories. We could add categories to the glossary specification items. This would be difficult with a master glossary in reST.

    Comment 1
    1. Sebastian Huber, Wed, 08 Jan 2020 06:38:00 GMT
    2. description: modified (diff)
    Comment 2
    1. Sebastian Huber, Mon, 24 Feb 2020 13:58:46 GMT

    In 03facda/rtems-docs:

    c-user: Rework glossary Define exactly one term per definition. Use references for alternative terms. Add :term: text roles to acronym definitions of glossary defined terms. Update #3853.
    Comment 3
    1. Sebastian Huber, Thu, 27 Feb 2020 12:15:10 GMT

    In 732c570/rtems-docs:

    c-user: Canonicalize two glossary acronyms Add :term: text roles to acronym definitions of glossary defined terms. Update #3853.
    Comment 4
    1. Sebastian Huber, Mon, 02 Mar 2020 07:14:50 GMT

    In 43b7eeb/rtems-docs:

    c-user: Use four spaces per indent level Four spaces per indent level is used in most files. Update #3853.
    Comment 5
    1. Sebastian Huber, Mon, 02 Mar 2020 07:14:52 GMT

    In 834dcf5/rtems-docs:

    c-user: Clarify return code related terms Remove duplicate "return code" definition. Add all related terms and use references. Update #3853.
    Comment 6
    1. Sebastian Huber, Mon, 02 Mar 2020 07:14:54 GMT

    In d2acbca/rtems-docs:

    c-user: Sort glossary terms Update #3853.
    Comment 7
    1. Sebastian Huber, Mon, 02 Mar 2020 07:14:56 GMT

    In 9965922/rtems-docs:

    c-user: Merge parition term definitions Update #3853.
    Comment 8
    1. Sebastian Huber, Mon, 02 Mar 2020 07:14:58 GMT

    In bba4a8c/rtems-docs:

    c-user: Add copyrights to glossary Use the file history to derive the copyright information. Update #3853.
    Comment 9
    1. Sebastian Huber, Mon, 02 Mar 2020 07:15:00 GMT

    In 7d05a3d/rtems-docs:

    eng: Add glossary Update #3853.
    Comment 10
    1. Sebastian Huber, Tue, 03 Mar 2020 06:19:02 GMT
    2. version: changed from 5 to 6
    3. milestone: changed from 5.1 to 6.1

    A prototype for the RTEMS Specification Items and Qualification Tools is available here:

    ​https://git.rtems.org/sebh/rtems-qual.git/

    ​https://github.com/sebhub/rtems-qual

    Comment 11
    1. Sebastian Huber, Fri, 18 Jun 2021 09:24:45 GMT
    2. keywords: qualification added
    Comment 12
    1. Sebastian Huber, Fri, 18 Jun 2021 09:46:18 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    Glossary term handling is implemented in:

    ​https://git.rtems.org/rtems-central/


    3866 - Add support for GCC 10 noinit attribute

    Link https://devel.rtems.org/ticket/3866
    Id 3866
    Reporter Sebastian Huber
    Created 5 February 2020 09:43:33
    Modified 23 June 2021 07:16:03
    Owner Sebastian Huber
    Type enhancement
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    In GCC 10 there is a new common variable attribute noinit:

    ​https://gcc.gnu.org/onlinedocs/gcc/Common-Variable-Attributes.html#index-noinit-variable-attribute

    ​https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;a=commit;h=f0033821c1c9ba386a1983499a666d5759cdd943

    To support this, a change in the linker command files is necessary.

    Comment 1
    1. Chris Johns, Wed, 05 Feb 2020 21:47:47 GMT

    Does clang have this support?

    Comment 2
    1. Sebastian Huber, Sun, 09 Feb 2020 16:40:17 GMT

    clang doesn't support this attribute. I added an enhancement request for this:

    ​https://bugs.llvm.org/show_bug.cgi?id=44811

    As a workaround for clang and GCC < 10 you can use the section attribute. The key issue is to have support for .noinit section in the linker command files.

    Comment 3
    1. Sebastian Huber, Tue, 25 Feb 2020 07:22:23 GMT
    2. version: changed from 5 to 6
    3. milestone: changed from 5.1 to 6.1
    Comment 4
    1. Sebastian Huber, Sun, 02 May 2021 18:41:04 GMT

    In a84bf96/rtems:

    basedefs: Add RTEMS_NOINIT Update #3866.
    Comment 5
    1. Sebastian Huber, Sun, 02 May 2021 18:41:08 GMT

    In e10dec0/rtems:

    bsps: Support RTEMS_NOINIT in linkcmds Update #3866.
    Comment 6
    1. Sebastian Huber, Sun, 02 May 2021 18:41:12 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 2df9541/rtems:

    spmisc01: Test RTEMS_NOINIT Close #3866.
    Comment 7
    1. Sebastian Huber, Mon, 03 May 2021 12:05:34 GMT

    In eb7c33ad/rtems:

    bsps/riscv: Support RTEMS_NOINIT in linkcmds Update #3866.
    Comment 8
    1. Sebastian Huber, Wed, 23 Jun 2021 07:16:03 GMT
    2. keywords: qualification added

    3878 - rtems06: All BSPs Fail to build with BSP Builder on rtems 6

    Link https://devel.rtems.org/ticket/3878
    Id 3878
    Reporter Joel Sherrill
    Created 20 February 2020 14:12:10
    Modified 16 December 2021 15:48:27
    Owner  
    Type defect
    Component rtems
    Status closed
    Resolution worksforme
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    I think there are a couple of places in an rtems6 build of RTEMS itself where rtems5 is being used from some hard-coded. Not sure what's up but here's the message to the build@ list.

    ​https://lists.rtems.org/pipermail/build/2020-February/010431.html

    From the post above, you only see that all failed. Looking at the build log from a single BSP, I see is early which doesn't cause a visible failure

    gmake[4]: Entering directory `/home/joel/rtems-cron-6/b-jmr3904/mips-rtems6/c/jmr3904/make'
    sed \
    -e "s|[@]prefix[@]|/home/joel/rtems-cron-6/tools/6/bsp-install|" \
    -e "s|[@]exec_prefix[@]|/home/joel/rtems-cron-6/tools/6/bsp-install/mips-rtems6|" \
    -e "s|[@]pkgdatadir[@]|/home/joel/rtems-cron-6/tools/6/bsp-install/share/rtems5|" \

    and this one which is error inducing.

    : error trying to exec 'mips-rtems5-gcc': execvp: No such file or directory
    error: compiling wrapper: Compiler error
    gmake[5]: __* [dl08-sym.o] Error 10 __

    The first looks like a typo that isn't breaking anything but needs to be fixed.

    The latter is some issue during the dl tests using rtems5 or it is hard-coded in a tool somewhere.

    Comment 1
    1. Joel Sherrill, Thu, 16 Dec 2021 15:48:27 GMT
    2. status: changed from assigned to closed
    3. resolution: set to worksforme

    3883 - Trace linker is broken on small-data area targets

    Link https://devel.rtems.org/ticket/3883
    Id 3883
    Reporter Sebastian Huber
    Created 25 February 2020 08:17:11
    Modified 20 September 2020 15:32:28
    Owner Sebastian Huber
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The trace linker generates some data, e.g. __rtld_trace_names. The arrays are not declared in a header file as arrays of unspecified size. So, in rtems-trace-buffer-vars.c the compiler assumes that the size one weakly defined defaults reside in the small-data area. This leads to linker errors with the strong definitions:

    Waf: Entering directory `/scratch/git-rtems-examples/build/powerpc-rtems5-qoriq_e6500_32'
    [22/29] Processing rtrace: build/powerpc-rtems5-qoriq_e6500_32/filesystem/fat_ramdisk/init.c.6.o build/powerpc-rtems5-qoriq_e6500_32/filesystem/fat_ramdisk/fs-root-tar.c.6.o -> build/powerpc-rtems5-qoriq_e6500_32/filesystem/fat_ramdisk/fat_ramdisk.texe
    /opt/rtems/5/bin/powerpc-rtems5-gcc: /opt/rtems/5/lib64/gcc/powerpc-rtems5/7.5.0/../../../../powerpc-rtems5/bin/ld: /opt/rtems/5/powerpc-rtems5/qoriq_e6500_32/lib/librtemscpu.a(rtems-trace-buffer-vars.o): the target (__rtld_trace_names) of a R_PPC_SDAREL16 relocation is in the wrong output section (.data)
    /opt/rtems/5/bin/powerpc-rtems5-gcc: /opt/rtems/5/powerpc-rtems5/qoriq_e6500_32/lib/librtemscpu.a(rtems-trace-buffer-vars.o): in function `rtems_trace_names':
    /opt/rtems/5/bin/powerpc-rtems5-gcc: /home/EB/sebastian_h/git-rtems-5/c/src/../../cpukit/libmisc/capture/rtems-trace-buffer-vars.c:51:(.text.rtems_trace_names+0x2): relocation truncated to fit: R_PPC_SDAREL16 against symbol `__rtld_trace_names' defined in .data.__rtld_trace_names section in /tmp/ccu6uaaa.o
    /opt/rtems/5/bin/powerpc-rtems5-gcc: /opt/rtems/5/lib64/gcc/powerpc-rtems5/7.5.0/../../../../powerpc-rtems5/bin/ld: /opt/rtems/5/powerpc-rtems5/qoriq_e6500_32/lib/librtemscpu.a(rtems-trace-buffer-vars.o): the target (__rtld_trace_signatures) of a R_PPC_SDAREL16 relocation is in the wrong output section (.rodata)
    /opt/rtems/5/bin/powerpc-rtems5-gcc: /opt/rtems/5/powerpc-rtems5/qoriq_e6500_32/lib/librtemscpu.a(rtems-trace-buffer-vars.o): in function `rtems_trace_signatures':
    /opt/rtems/5/bin/powerpc-rtems5-gcc: /home/EB/sebastian_h/git-rtems-5/c/src/../../cpukit/libmisc/capture/rtems-trace-buffer-vars.c:81:(.text.rtems_trace_signatures+0x2): relocation truncated to fit: R_PPC_SDAREL16 against symbol `__rtld_trace_signatures' defined in .rodata.__rtld_trace_signatures section in /tmp/ccu6uaaa.o
    Comment 1
    1. Sebastian Huber, Sun, 20 Sep 2020 15:16:15 GMT
    2. owner: changed from Needs Funding to Sebastian Huber
    3. status: changed from assigned to accepted
    4. milestone: changed from Indefinite to 6.1
    Comment 2
    1. Sebastian Huber, Sun, 20 Sep 2020 15:32:28 GMT
    2. status: changed from accepted to closed
    3. resolution: set to fixed

    In 9f2a207/rtems:

    capture: Move default trace data Provide the default trace data in a separate file to avoid issues on targets with a small-data area. Close #3883.

    3886 - Fail an RSB build with --mail option if a repo is not clean

    Link https://devel.rtems.org/ticket/3886
    Id 3886
    Reporter Chris Johns
    Created 27 February 2020 22:40:21
    Modified 12 August 2020 06:56:09
    Owner Chris Johns
    Type defect
    Component tool/rsb
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Fail a build if a user has the --mail option to post the build results and repo is not clean. Public postings of results with local changes has no public value. Users cannot replicate the results if changes are not publicaly available.

    What about a repo that is clean but has changes that are not pushed?

    Comment 1
    1. Gedare Bloom, Sun, 05 Apr 2020 04:53:01 GMT

    What about for users that want to mail their builds to a non-public destination?

    Comment 2
    1. Gedare Bloom, Sun, 05 Apr 2020 04:53:43 GMT
    2. version: changed from 5 to 6
    3. milestone: changed from 5.1 to 6.1
    Comment 3
    1. Chris Johns, Wed, 12 Aug 2020 06:56:09 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    Replying to Gedare Bloom:

    What about for users that want to mail their builds to a non-public destination?

    The user could make a local commit? If this does not matter then this ticket can be closed with wontfix.


    3897 - Dhcpcd does not daemonize

    Link https://devel.rtems.org/ticket/3897
    Id 3897
    Reporter Ionut Vilsan
    Created 4 March 2020 10:29:59
    Modified 8 September 2022 08:15:06
    Owner Sebastian Huber
    Type defect
    Component network/libbsd
    Status closed
    Resolution wontfix
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Background: the DCHP client is started using the rc.conf script. In the background a new task dedicated to the dhcp client is created and then the dhcp client takes over this task. This works fine, we can get IP form the dhcp server and then take part in network communication based on IPv4.

    Problem: The dhcp client cannot be stopped any time. Any shell commands will never reach the dhcpcd task, but rather it will instantiate a new dhcpd task which will take over the current task. E.g: in rtems console if you enter dhcpd -x, instead of killing the dhcpcd task a new dhcpcd task will be created which will run from the console. This means that the console cannot be used anymore.

    There seems to be noway to communicate with the already created dhcpcd task.

    I took a look over the dhcpcd in libbsd code and some of the features are turned off. Can someone give more details regarding this ?

    Comment 1
    1. Sebastian Huber, Fri, 03 Apr 2020 15:01:19 GMT
    2. priority: changed from high to normal
    3. resolution: set to wontfix
    4. status: changed from assigned to closed
    5. component: changed from rtems to network/libbsd
    6. severity: changed from major to normal

    The dhcpcd is not intended to be started via a shell command. Maybe we should remove the shell command.

    Comment 2
    1. Chris Johns, Tue, 14 Apr 2020 22:47:44 GMT
    2. status: changed from closed to reopened
    3. version: set to 6
    4. resolution: wontfix deleted
    5. milestone: set to 6.1

    Replying to Sebastian Huber:

    The dhcpcd is not intended to be started via a shell command. Maybe we should remove the shell command.

    Reopening this bug. This is either a bug in dhcpcd (my view) or the rc.conf support needs to be enhanced to correctly support it. The rc.conf model uses working commands that are wrapped. On FreeBSD the wrapping is using shell scripts and on RTEMS it is a C framework. Another solution is to enhance the shell to push a command into the back ground.

    I have stated before now and I will repeat what I have said, rc.conf is the documented method to use libbsd. I know of no other documented method and I am reluctant to expose and support other methods built on RTEMS internal specifics. If other methods exist and are in use then it is those users who are at risk of things changing and breaking on them. We fell into this hole in the legacy stack and I do not wish to repeat doing that here.

    Comment 3
    1. Joel Sherrill, Tue, 14 Apr 2020 23:51:19 GMT

    Can you file a new ticket for a general solution to spawning a daemon that this ticket will use? Reference this ticket in that one.

    Comment 4
    1. Sebastian Huber, Wed, 15 Apr 2020 04:45:06 GMT

    The RTEMS shell and the RTEMS rc.conf parser are two different things. This bug here is about controlling (e.g. stopping) the dhcpcd from the RTEMS shell. The dhcpcd is intended to be started at most once and then run forever.

    Comment 5
    1. Chris Johns, Thu, 16 Apr 2020 03:32:27 GMT

    Replying to Sebastian Huber:

    The RTEMS shell and the RTEMS rc.conf parser are two different things.

    Is the rc.conf support for dhcpcd using the shell? I am not sure and I have not looked.

    This bug here is about controlling (e.g. stopping) the dhcpcd from the RTEMS shell. The dhcpcd is intended to be started at most once and then run forever.

    Is this related to our implementation or the upstream sources?

    Comment 6
    1. Sebastian Huber, Thu, 08 Sep 2022 08:15:06 GMT
    2. status: changed from reopened to closed
    3. resolution: set to wontfix

    The dhcpcd is intended to be started at most once and then run forever. This is a limitation of the libbsd port and related to the fact that RTEMS is a single process operating system.


    3910 - Add BSP for STM32H7

    Link https://devel.rtems.org/ticket/3910
    Id 3910
    Reporter Sebastian Huber
    Created 19 March 2020 08:31:22
    Modified 31 July 2023 16:12:08
    Owner Sebastian Huber
    Type project
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Add a BSP for the ​STM32H7 series. Import the HAL from ​https://github.com/STMicroelectronics/stm32h7xx_hal_driver. Add a VERSION file to allow future updates similar to ​https://git.rtems.org/rtems/tree/cpukit/dtc/VERSION. Add standard clock and console drivers.

    Comment 1
    1. Sebastian Huber, Thu, 02 Apr 2020 09:14:25 GMT

    In 2c7cd34/rtems-docs:

    eng: Add documentation guidelines Start with templates for the application configuration options. Remove "Format to be followed for making changes in this file" from c-user. Update #3910.
    Comment 2
    1. Mick, Tue, 20 Oct 2020 15:29:55 GMT

    Hi Sebastian, I was keen to use RTEMS on an STM32H7xx board and thought I would reach out and see how the effort was going. I'm not much of a C/C++ dev unfortunately but if there is anything I can do to assist please let me know.

    Cheers,

    Mick

    Comment 3
    1. Sebastian Huber, Wed, 21 Oct 2020 05:59:34 GMT

    In 3fccdc95/rtems:

    bsps/arm: Add support for MPU region alignment Update #3910.
    Comment 4
    1. Sebastian Huber, Tue, 27 Oct 2020 05:14:39 GMT

    In 2131228/rtems:

    bsp/stm32h7: Import from STM32CubeMX-5.6.0 Update #3910.
    Comment 5
    1. Sebastian Huber, Tue, 27 Oct 2020 05:14:43 GMT

    In 2cfcd00/rtems:

    bsp/stm32h7: Constify some functions Update #3910.
    Comment 6
    1. Sebastian Huber, Tue, 27 Oct 2020 05:14:46 GMT

    In 2f157e2/rtems:

    bsp/stm32h7: Move include This is necessary for libbsd compatibility. Update #3910.
    Comment 7
    1. Sebastian Huber, Tue, 27 Oct 2020 05:14:49 GMT

    In abb7858/rtems:

    bsp/stm32h7: Enable LL drivers Update #3910.
    Comment 8
    1. Sebastian Huber, Tue, 27 Oct 2020 05:14:53 GMT

    In e4ba06f/rtems:

    bsp/stm32h7: Disable unused functions Update #3910.
    Comment 9
    1. Sebastian Huber, Tue, 27 Oct 2020 05:14:56 GMT

    In c44e404/rtems:

    bsp/stm32h7: Fix warnings Update #3910.
    Comment 10
    1. Sebastian Huber, Tue, 27 Oct 2020 05:14:59 GMT

    In 99494370/rtems:

    bsp/stm32h7: New BSP Update #3910.
    Comment 11
    1. Sebastian Huber, Tue, 27 Oct 2020 06:51:45 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 8fe0da2/rtems-docs:

    user: Add arm/stm32h7 Close #3910.
    Comment 12
    1. Sebastian Huber, Thu, 26 Nov 2020 07:37:19 GMT

    In fe58f6ce/rtems:

    bsp/stm32h7: Add and use BSP Doxygen group Update #3910.
    Comment 13
    1. Karel Gardas, Mon, 31 Jul 2023 16:11:55 GMT

    In 4b3d799/rtems:

    bsp/stm32h7: Disable unused functions Re-apply based on:
    commit e4ba06f8b49da4334543f713ba437263c794d7ee Author: Sebastian Huber Date: Thu Apr 2 08:28:56 2020 +0200
    bsp/stm32h7: Disable unused functions
    Update #3910.
    Comment 14
    1. Karel Gardas, Mon, 31 Jul 2023 16:11:57 GMT

    In ed35850/rtems:

    bsp/stm32h7: Enable LL drivers Re-apply based on:
    commit abb78587b6d1be08697810cdae31cd2dbe35ee4a Author: Sebastian Huber Date: Wed Apr 1 11:11:59 2020 +0200
    bsp/stm32h7: Enable LL drivers
    Update #3910.
    Comment 15
    1. Karel Gardas, Mon, 31 Jul 2023 16:12:06 GMT

    In ba8ac65/rtems:

    bsp/stm32h7: Add and use BSP Doxygen group Inspired by: commit fe58f6ce4bf1ff5e92d64b9fee0cb46b6ac06e64 Author: Sebastian Huber Date: Thu Nov 26 08:13:52 2020 +0100
    bsp/stm32h7: Add and use BSP Doxygen group
    Update #3910.
    Comment 16
    1. Karel Gardas, Mon, 31 Jul 2023 16:12:08 GMT

    In f08f75f/rtems:

    bsps/stm32h7: fix compilation issue after HAL update Based on: commit 99494370d6124ef5d773119fa59f5bac4bbf395f Author: Sebastian Huber Date: Wed Mar 4 12:34:34 2020 +0100
    bsp/stm32h7: New BSP
    Update #3910.

    3924 - Test the application configuration options

    Link https://devel.rtems.org/ticket/3924
    Id 3924
    Reporter Sebastian Huber
    Created 2 April 2020 08:35:24
    Modified 8 September 2022 08:09:59
    Owner Sebastian Huber
    Type project
    Component doc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by 3836

    Description

    There exists a specification of the application configuration options (work in progress) here:

    ​https://git.rtems.org/sebh/rtems-qual.git/tree/spec/acfg/opt/

    For the RTEMS Qualification project we have to test the implementation according to the specification (validation and unit tests).

    A test plan needs to be developed. The tests should use the RTEMS Test Framework. Add C preprocessor error tests to the new build system, e.g. test #error and #warning directives.

    Comment 1
    1. Sebastian Huber, Thu, 02 Apr 2020 08:39:09 GMT
    2. description: modified (diff)
    Comment 2
    1. Sebastian Huber, Thu, 08 Sep 2022 08:09:59 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    The pre-qualified application configurations are fully specified and validiated.


    3925 - Optimize work area initialization

    Link https://devel.rtems.org/ticket/3925
    Id 3925
    Reporter Sebastian Huber
    Created 2 April 2020 08:48:23
    Modified 26 January 2022 10:10:10
    Owner Sebastian Huber
    Type enhancement
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by 3838

    Description

    The new work area initialization introduced by #3838 introduces a dependency on _Heap_Extend() for all BSPs. The BSP knows how many memory areas it delivers to the system. It should provide also the RTEMS Workspace and C Program Heap initialization functions to the system so that an unnecessary pull in of _Heap_Extend() can be avoided.

    Comment 1
    1. Sebastian Huber, Wed, 26 Jan 2022 10:10:10 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    This was fixed by d7205f0083f8fdd0408404ce99c6eab9b8d120c7 and 3d0620b607ff6459fec9d30efc1e0589bbd010f9.


    3929 - Document use of virtualenv

    Link https://devel.rtems.org/ticket/3929
    Id 3929
    Reporter Gedare Bloom
    Created 4 April 2020 18:15:30
    Modified 29 November 2022 22:04:28
    Owner Needs Funding
    Type enhancement
    Component doc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The use of python virtualenv to build docs or use RSB has been suggested a few times. We should provide a brief sketch in our documentation about that utility.

    For example, in modern versions of Arch Linux, python is now a shortcut to python3 from the python package. For tools that do not yet function in Python 3, users can set up a virtual environment with Python 2 as follows:

    At a root terminal, install python2-virtualenv with pacman.

    # pacman -S python2-virtualenv 

    Examples of other architectures and uses for virtualenv would round out a reasonable section in the user manual for Preparation.

    Comment 1
    1. Chris Johns, Tue, 29 Nov 2022 22:04:28 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    3935 - Remove use of RTEMS_INLINE_ROUTINE in the RTEMS sources

    Link https://devel.rtems.org/ticket/3935
    Id 3935
    Reporter Sebastian Huber
    Created 6 April 2020 07:08:19
    Modified 31 October 2023 11:47:17
    Owner Sebastian Huber
    Type task
    Component unspecified
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    Replace all uses of RTEMS_INLINE_ROUTINE with "static inline". This makes it a bit easier for third-party tools to parse the RTEMS sources.

    Comment 1
    1. Joel Sherrill, Mon, 06 Apr 2020 13:20:41 GMT

    Please cite where "static inline" became part of the C and C++ standards. Eons ago static inline meaning do not include method bodies in the generated object was a GNU extension. Other compilers had their own way of specifying this.

    Comment 2
    1. Sebastian Huber, Mon, 06 Apr 2020 13:25:42 GMT

    This is C99. The default language version is C11 since a while.

    Comment 3
    1. Joel Sherrill, Mon, 06 Apr 2020 13:33:01 GMT

    Citation please. Section and paragraph.

    Comment 4
    1. Sebastian Huber, Mon, 06 Apr 2020 13:40:56 GMT

    I don't understand the problem, we use this for a long time:

    /**
     *  The following (in conjunction with compiler arguments) are used
     *  to choose between the use of static inline functions and macro
     *  functions.   The static inline implementation allows better
     *  type checking with no cost in code size or execution speed.
     */
    `#ifdef __GNUC__`
    `#define RTEMS_INLINE_ROUTINE static __inline__`
    `#else`
    `#define RTEMS_INLINE_ROUTINE static inline`
    `#endif 

    Wikipedia has some background information: ​https://en.wikipedia.org/wiki/Inline_function

    `
    Comment 5
    1. Sebastian Huber, Mon, 19 Sep 2022 07:01:30 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In a660e9dc/rtems:

    Do not use RTEMS_INLINE_ROUTINE Directly use "static inline" which is available in C99 and later. This brings the RTEMS implementation closer to standard C. Close #3935.
    Comment 6
    1. Sebastian Huber, Tue, 31 Oct 2023 11:47:17 GMT
    2. keywords: qualification added

    3937 - Move content of bsp_specs to GCC

    Link https://devel.rtems.org/ticket/3937
    Id 3937
    Reporter Sebastian Huber
    Created 6 April 2020 13:59:39
    Modified 29 November 2021 14:48:15
    Owner Sebastian Huber <sebastian.huber@…>
    Type project
    Component tool/gcc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking 3250
    Blocked by  

    Description

    Move content of the bsp_specs to GCC 10. Once this is done, update the tools and delete the bsp_specs.

    On powerpc this means we have to move the content of rtems_crti.S to GCC. It may not be possible to back port this to GCC 10 and we may have to maintain this as a patch until GCC 11 is released.

    Add support for ​nostartfiles and ​nodefaultlibs.

    Attachments:

    1 Sebastian Huber, Tue, 07 Apr 2020 07:35:34 GMT
      attach: set to 0001-RTEMS-Improve-GCC-specification.patch
    2 Sebastian Huber, Wed, 08 Apr 2020 11:31:55 GMT
      attach: set to v2-0001-RTEMS-Improve-GCC-specification.patch
    Comment 1
    1. Joel Sherrill, Mon, 06 Apr 2020 14:01:29 GMT

    Dupe of #3250

    Comment 2
    1. Sebastian Huber, Mon, 06 Apr 2020 14:01:59 GMT
    2. blocking: set to 3250
    Comment 3
    1. Sebastian Huber, Mon, 06 Apr 2020 14:03:35 GMT

    Replying to Joel Sherrill:

    Dupe of #3250

    I think this is a subtask.

    Comment 4
    1. Sebastian Huber, Mon, 06 Apr 2020 14:49:54 GMT

    Since -qrtems is not used to build GCC/Newlib. The rtems_crti.S could probably stay in RTEMS.

    Comment 5
    1. Joel Sherrill, Mon, 06 Apr 2020 14:56:00 GMT

    The only crti/crtn not provided by GCC are these for the PowerPC. They really should move. Whatever is being done is a hack left over from the days when we were unwilling to modify GCC.

    $ find . -name rtems_crt*
    ./bsps/powerpc/shared/start/rtems_crti.S
    ./bsps/powerpc/shared/start/rtems_crtn.S 

    "Remove hacks left over from when we were unwilling to modify GCC" should be the name of this ticket. :)

    Comment 6
    1. Sebastian Huber, Mon, 06 Apr 2020 14:58:38 GMT

    I will try to get the RTEMS-only changes in GCC 10.2. This already requires release manager approval.

    I am not sure if they are happy if I try to change standard powerpc files for RTEMS on a release branch.

    Comment 7
    1. Sebastian Huber, Tue, 07 Apr 2020 08:18:30 GMT

    In b69f54d/rtems-source-builder:

    6: Update unstable RTEMS 6 tool chain Update #3937.
    Comment 8
    1. Sebastian Huber, Wed, 08 Apr 2020 11:34:34 GMT

    In f6286ff/rtems-source-builder:

    6: Update unstable RTEMS 6 tool chain Update #3937.
    Comment 9
    1. Sebastian Huber, Fri, 22 Jan 2021 09:52:53 GMT

    It turned out that the GCC specs processing is a bit more complicated and the current approach doesn't work:

    ​https://gcc.gnu.org/pipermail/gcc/2021-January/234728.html

    Comment 10
    1. Sebastian Huber, Fri, 22 Jan 2021 11:59:20 GMT

    Proposed workaround:

    ​https://gcc.gnu.org/pipermail/gcc-patches/2021-January/564101.html

    Comment 11
    1. Sebastian Huber, Tue, 26 Jan 2021 05:38:50 GMT
    2. owner: set to Sebastian Huber <sebastian.huber@…>
    3. status: changed from assigned to closed
    4. resolution: set to fixed

    In ade0892/rtems-source-builder:

    6: Update tool chain Close #3937.
    Comment 12
    1. Sebastian Huber, Wed, 23 Jun 2021 07:07:55 GMT
    2. keywords: qualification added
    Comment 13
    1. Joel Sherrill, Mon, 29 Nov 2021 14:48:15 GMT

    In dd70c81/rtems:

    bsp_specs: Delete last remnants of these. Updates #3937.

    3941 - Remove epiphany architecture support

    Link https://devel.rtems.org/ticket/3941
    Id 3941
    Reporter Sebastian Huber
    Created 8 April 2020 10:09:05
    Modified 7 July 2020 13:01:53
    Owner Hesham Almatary
    Type task
    Component arch/epiphany
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking 4022
    Blocked by 3974

    Description

    I tried to build the epiphany BSP with GCC 10 recently and a lot internal compiler errors appeared. If it is not possible to build the BSP with a released GCC 10.1, then I suggest to remove this architecture. The GDB was never supported by the FSF upstream. To me this looks like an unmaintained architecture.

    Comment 1
    1. Hesham Almatary, Wed, 08 Apr 2020 10:19:55 GMT

    I think the development of the Ephipany architecture and its toolchain is already seized. In this case, yes I agree it should be deleted.

    Comment 2
    1. Sebastian Huber, Wed, 08 Apr 2020 10:21:31 GMT

    Ok, good. You can still use RTEMS 5 for it. If necessary, the port can be resurrected from this release.

    Comment 3
    1. Joel Sherrill, Wed, 08 Apr 2020 12:07:31 GMT

    You can't build rtems5 for epiphany. Mongoose.c has long caused an ICE. GCC has just gotten worse. Removing it after the release is ok by me.

    Comment 4
    1. Sebastian Huber, Thu, 07 May 2020 04:36:41 GMT
    2. blockedby: set to 3974
    Comment 5
    1. Sebastian Huber, Fri, 03 Jul 2020 05:42:51 GMT
    2. blocking: set to 4022
    Comment 6
    1. Sebastian Huber, Sun, 05 Jul 2020 16:05:54 GMT

    In 401b237/rtems:

    epiphany: Remove support for this target Due to an unmaintained toolchain (internal errors in GCC, no FSF GDB integration) the Epiphany architecture was obsoleted in RTEMS 5.1. Update #3941.
    Comment 7
    1. Sebastian Huber, Sun, 05 Jul 2020 16:06:19 GMT

    In 2df6f90/rtems-docs:

    Reflect removal of the epiphany target Update #3941.
    Comment 8
    1. Sebastian Huber, Sun, 05 Jul 2020 16:06:39 GMT

    In dcceead/rtems-tools:

    Remove support for epiphany target Update #3941.
    Comment 9
    1. Sebastian Huber, Sun, 05 Jul 2020 16:07:55 GMT

    In 7f79fe9/rtems-source-builder:

    6/7: Remove support for epiphany target Update #3941.
    Comment 10
    1. Sebastian Huber, Sun, 05 Jul 2020 18:46:17 GMT

    In d76e7c1/rtems:

    build: Fix RTEMS_CHECK_NETWORKING Update #3941.
    Comment 11
    1. Sebastian Huber, Tue, 07 Jul 2020 13:01:53 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    I updated also the release notes.


    3942 - multiple definition of `pci_indirect_functions'

    Link https://devel.rtems.org/ticket/3942
    Id 3942
    Reporter Sebastian Huber
    Created 8 April 2020 10:14:16
    Modified 29 November 2022 22:07:19
    Owner Joel Sherrill
    Type defect
    Component arch/mips
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Building with GCC 10 showed a multiple definition error:

    /build/rtems/6/lib/gcc/mips-rtems6/10.0.1/../../../../mips-rtems6/bin/ld: ./librtemsbsp.a(i8259.c.19.o):/ramdisk/git-rtems-5/build/mips/malta/../../../bsps/mips/malta/include/bsp/pci.h:113: multiple definition of `pci_indirect_functions'; ./librtemsbsp.a(vectorisrs.c.19.o):/ramdisk/git-rtems-5/build/mips/malta/../../../bsps/mips/malta/include/bsp/pci.h:113: first defined here
    /build/rtems/6/lib/gcc/mips-rtems6/10.0.1/../../../../mips-rtems6/bin/ld:
    ./librtemsbsp.a(simple_access.c.19.o):/ramdisk/git-rtems-5/build/mips/malta/../../../bsps/mips/malta/include/bsp/pci.h:113: multiple definition of `pci_indirect_functions'; ./librtemsbsp.a(vectorisrs.c.19.o):/ramdisk/git-rtems-5/build/mips/malta/../../../bsps/mips/malta/include/bsp/pci.h:113: first defined here
    /build/rtems/6/lib/gcc/mips-rtems6/10.0.1/../../../../mips-rtems6/bin/ld: ./librtemsbsp.a(pci.c.19.o):/ramdisk/git-rtems-5/build/mips/malta/../../../bsps/mips/malta/include/bsp/pci.h:113: multiple definition of `pci_indirect_functions'; ./librtemsbsp.a(vectorisrs.c.19.o):/ramdisk/git-rtems-5/build/mips/malta/../../../bsps/mips/malta/include/bsp/pci.h:113: first defined here
    Comment 1
    1. Sebastian Huber, Wed, 08 Apr 2020 10:14:54 GMT
    2. description: modified (diff)
    Comment 2
    1. Gedare Bloom, Fri, 17 Apr 2020 03:48:04 GMT
    2. version: changed from 5 to 6
    3. milestone: changed from 5.1 to 6.1

    Bump to 6, gcc10 toolchain issue.

    Comment 3
    1. Chris Johns, Tue, 29 Nov 2022 22:07:19 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    Looks to be fixed. Please reopen if it is still a problem.


    3947 - fdt_rw.c: Unchecked return value (CID #1047324)

    Link https://devel.rtems.org/ticket/3947
    Id 3947
    Reporter Joel Sherrill
    Created 10 April 2020 15:33:05
    Modified 19 July 2022 07:29:23
    Owner Sebastian Huber
    Type defect
    Component lib
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords coverity, small, tasks
    Cc  
    Blocking  
    Blocked by  

    Description

    git blams says Sebastian.

    *** CID 1047324:  Error handling issues  (CHECKED_RETURN)
    /home/joel/rtems-work/rtems/cpukit/dtc/libfdt/fdt_rw.c: 351 in fdt_add_subnode_namelen()
    345 if (offset >= 0)
    346 return -FDT_ERR_EXISTS;
    347 else if (offset != -FDT_ERR_NOTFOUND)
    348 return offset;
    349
    350 /* Try to place the new node after the parent's properties */
    >>> CID 1047324: Error handling issues (CHECKED_RETURN)
    >>> Calling "fdt_next_tag" without checking return value (as is done elsewhere 7 out of 8 times).
    351 fdt_next_tag(fdt, parentoffset, &nextoffset); /* skip the BEGIN_NODE */
    352 do {
    353 offset = nextoffset;
    354 tag = fdt_next_tag(fdt, offset, &nextoffset);
    355 } while ((tag == FDT_PROP) || (tag == FDT_NOP));
    356
    Comment 1
    1. Joel Sherrill, Fri, 10 Apr 2020 15:34:56 GMT
    2. keywords: coverity small tasks added
    Comment 2
    1. Sebastian Huber, Fri, 10 Apr 2020 20:13:59 GMT

    Maybe this is already fixed in the upstream. Otherwise it should be reported.

    Comment 3
    1. Sebastian Huber, Fri, 10 Apr 2020 20:15:16 GMT
    2. component: changed from admin to unspecified
    3. milestone: changed from 5.1 to Indefinite
    Comment 4
    1. Sebastian Huber, Tue, 19 Jul 2022 07:29:23 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed
    4. component: changed from unspecified to lib
    5. milestone: changed from Indefinite to 6.1

    It is fixed for RTEMS 6.1 through updates from the dtc upstream. Fixing this in RTEMS 5 would require back porting several patches.


    3951 - Remove obsolete powerpc BSPs

    Link https://devel.rtems.org/ticket/3951
    Id 3951
    Reporter Sebastian Huber
    Created 14 April 2020 15:44:13
    Modified 26 January 2022 13:42:27
    Owner Sebastian Huber
    Type task
    Component arch/powerpc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Remove powerpc BSPs for unsupported ISA variants (e.g. SPE and the embedded FPU). Remove powerpc BSPs for dead projects. This includes:

    • brs5l
    • brs6l
    • dp2
    • mpc5566evb_spe
    • mpc5643l_dpu
    • mpc5643l_evb
    • mpc5674f_ecu508_app
    • mpc5674f_ecu508_boot
    • mpc5674fevb_spe
    • mpc5674f_rsm6
    Comment 1
    1. Sebastian Huber, Sun, 05 Jul 2020 16:01:15 GMT

    In 70b803b5/rtems:

    bsps/powerpc: Remove SPE enabled variants The PowerPC SPE support was removed from GCC. Update #3951.
    Comment 2
    1. Sebastian Huber, Sun, 05 Jul 2020 16:01:18 GMT

    In 523551cc/rtems:

    bsps/powerpc: Remove obsolete BSPs Update #3951.
    Comment 3
    1. Sebastian Huber, Thu, 10 Dec 2020 07:32:48 GMT

    In efda67b/rtems-tools:

    config: Remove obsolete BSPs Update #3951.
    Comment 4
    1. Sebastian Huber, Wed, 26 Jan 2022 13:42:27 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    3957 - Review wiki/Developer for deletion

    Link https://devel.rtems.org/ticket/3957
    Id 3957
    Reporter Joel Sherrill
    Created 16 April 2020 23:51:14
    Modified 15 December 2022 16:39:38
    Owner  
    Type enhancement
    Component doc
    Status closed
    Resolution fixed
    Version  
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords small, tasks, wiki
    Cc  
    Blocking  
    Blocked by  

    Description

    ​https://devel.rtems.org/wiki/Developer has minimal content. All should likely point to somewhere in the Users Guide now rather than the Wiki.

    Also this page is a candidate for deletion. Verify the references and delete it. Check rtems.org also.

    Comment 1
    1. Joel Sherrill, Thu, 15 Dec 2022 16:39:38 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed
    4. milestone: set to 6.1

    Done. Subtree removed and links now point to the Software Engineering Guide.


    3959 - Add rtems_task_construct()

    Link https://devel.rtems.org/ticket/3959
    Id 3959
    Reporter Sebastian Huber
    Created 17 April 2020 06:55:13
    Modified 2 September 2021 05:59:46
    Owner Sebastian Huber
    Type enhancement
    Component rtems
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    In RTEMS 5 a lot of development was done to allow a static allocation of resources provided by RTEMS and avoid the use of a heap. One missing piece is the support for statically allocated RTEMS tasks. The rtems_task_create() function allocates the task stack from a heap. We need an alternative function which allocates an RTEMS tasks with a user provided stack (similar to the POSIX threads).

    There does need to be documentation on the allocation
    strategies, when to use, limitations, and particularly the
    use of rtems-exeinfo to get the TLS size. This is one case
    for sure where an RTEMS Tool needs explicit mention in
    both the API and configure option sections.

    Proposed API:

    /**
    * @brief This structure defines the configuration of a task constructed by
    * rtems_task_construct().
    */
    typedef struct {
    /**
    * @brief This member defines the name of the task.
    */
    rtems_name name;
    /**
    * @brief This member defines the initial priority of the task.
    */
    rtems_task_priority initial_priority;
    /**
    * @brief This member shall point to the task storage area begin.
    *
    * The task storage area will contain the task stack, the thread-local storage,
    * and the floating-point context on architectures with a separate
    * floating-point context.
    *
    * The task storage area begin address and size should be aligned by
    * #RTEMS_TASK_STORAGE_ALIGNMENT. To avoid memory waste, use RTEMS_ALIGNED()
    * and #RTEMS_TASK_STORAGE_ALIGNMENT to enforce the recommended alignment of a
    * statically allocated task storage area.
    */
    void *storage_area;
    /**
    * @brief This member defines size of the task storage area in bytes.
    *
    * Use the RTEMS_TASK_STORAGE_SIZE() macro to determine the recommended task
    * storage area size.
    */
    size_t storage_size;
    /**
    * @brief This member defines the maximum thread-local storage size supported
    * by the task storage area.
    *
    * Use RTEMS_ALIGN_UP() and #RTEMS_TASK_STORAGE_ALIGNMENT to adjust the size to
    * meet the minimum alignment requirement of a thread-local storage area used
    * to construct a task.
    *
    * If the value is less than the actual thread-local storage size, then the
    * task construction by rtems_task_construct() fails.
    *
    * If the is less than the task storage area size, then the task construction
    * by rtems_task_construct() fails.
    *
    * The actual thread-local storage size is determined when the application
    * executable is linked. The ``rtems-exeinfo`` command line tool included in
    * the RTEMS Tools can be used to obtain the thread-local storage size and
    * alignment of an application executable.
    *
    * The application may configure the maximum thread-local storage size for all
    * threads explicitly through the #CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE
    * configuration option.
    */
    size_t maximum_thread_local_storage_size;
    /**
    * @brief This member defines the optional handler to free the task storage
    * area.
    *
    * It is called on exactly two mutually exclusive occasions. Firstly, when the
    * task construction aborts due to a failed task create extension, or secondly,
    * when the task is deleted. It is called from task context under protection
    * of the object allocator lock. It is allowed to call free() in this handler.
    * If handler is NULL, then no action will be performed.
    */
    void ( *storage_free )( void * );
    /**
    * @brief This member defines the initial modes of the task.
    */
    rtems_mode initial_modes;
    /**
    * @brief This member defines the attributes of the task.
    */
    rtems_attribute attributes;
    } rtems_task_config;
    /**
    * @brief Constructs a task from the specified the task configuration.
    *
    * In contrast to tasks created by rtems_task_create(), the tasks constructed
    * by this directive use a user-provided task storage area. The task storage
    * area contains the task stack, the thread-local storage, and the
    * floating-point context on architectures with a separate floating-point
    * context.
    *
    * This directive is intended for applications which do not want to use the
    * RTEMS Workspace and instead statically allocate all operating system
    * resources. It is not recommended to use rtems_task_create() and
    * rtems_task_construct() together in an application. It is also not
    * recommended to use rtems_task_construct() for drivers or general purpose
    * libraries. The reason for these recommendations is that the task
    * configuration needs settings which can be only given with a through
    * knowledge of the application resources.
    *
    * An application based solely on static allocation can avoid any runtime
    * memory allocators. This can simplfiy the application architecture as well
    * as any analysis that may be required.
    *
    * The stack space estimate done by assumes that all tasks
    * are created by rtems_task_create(). The estimate can be adjusted to take
    * user-provided task storage areas into account through the
    * #CONFIGURE_MINIMUM_TASKS_WITH_USER_PROVIDED_STORAGE application
    * configuration option.
    *
    * The #CONFIGURE_MAXIMUM_TASKS should include tasks constructed by
    * rtems_task_construct().
    *
    * @param config is the task configuration.
    *
    * @param[out] id is the pointer to an object identifier variable. The
    * identifier of the constructed task object will be stored in this variable,
    * in case of a successful operation.
    *
    * @retval ::RTEMS_SUCCESSFUL The requested operation was successful.
    *
    * @retval ::RTEMS_INVALID_ADDRESS The id parameter was NULL.
    *
    * @retval ::RTEMS_INVALID_NAME The task name was invalid.
    *
    * @retval ::RTEMS_INVALID_PRIORITY The initial task priority was invalid.
    *
    * @retval ::RTEMS_INVALID_SIZE The thread-local storage size is greater than
    * the maximum thread-local storage size specified in the task configuration.
    * The thread-local storage size is determined by the thread-local variables
    * used by the application and #CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE.
    *
    * @retval ::RTEMS_INVALID_SIZE The task storage area was too small to provide
    * a task stack of the configured minimum size, see
    * #CONFIGURE_MINIMUM_TASK_STACK_SIZE. The task storage area contains the
    * task stack, the thread-local storage, and the floating-point context on
    * architectures with a separate floating-point context.
    *
    * @retval ::RTEMS_TOO_MANY There was no inactive task object available to
    * construct a task.
    *
    * @retval ::RTEMS_TOO_MANY In multiprocessing configurations, there was no
    * inactive global object available to construct a global task.
    *
    * @retval ::RTEMS_UNSATISFIED One of the task create extensions failed during
    * the task construction.
    *
    * @retval ::RTEMS_UNSATISFIED In SMP configurations, the non-preemption mode
    * was not supported.
    *
    * @retval ::RTEMS_UNSATISFIED In SMP configurations, the interrupt level mode
    * was not supported.
    */
    rtems_status_code rtems_task_construct(
    const rtems_task_config *config,
    rtems_id *id
    );

    Attachments:

    1 Sebastian Huber, Fri, 17 Apr 2020 07:32:59 GMT
      attach: set to 0001-rtems-Add-rtems_task_build.patch
    Comment 1
    1. Sebastian Huber, Wed, 02 Sep 2020 16:03:13 GMT

    In 91c811a1/rtems:

    score: Add _Freechain_Push() Update #3959.
    Comment 2
    1. Sebastian Huber, Wed, 02 Sep 2020 16:03:17 GMT

    In 354c2b5/rtems:

    score: Add Hide implementation details. Update #3959.
    Comment 3
    1. Sebastian Huber, Wed, 02 Sep 2020 16:03:20 GMT

    In 159db411/rtems:

    score: Use _Freechain_Push() The nodes are never NULL. Update #3959.
    Comment 4
    1. Sebastian Huber, Wed, 02 Sep 2020 16:03:24 GMT

    In d817220/rtems:

    score: Add _Stack_Allocator_do_initialize() Do the stack allocator initialization and sanity check only if a user-provided stack allocator was configured. This avoids a dependency of _Thread_Handler_initialization() on the stack allocator. Update #3959.
    Comment 5
    1. Sebastian Huber, Wed, 02 Sep 2020 16:03:27 GMT

    In 2d551030/rtems:

    score: Move _Stack_Allocator_free to separate file This decouples the task stack allocation from the deallocation. Update #3959.
    Comment 6
    1. Sebastian Huber, Wed, 02 Sep 2020 16:03:30 GMT

    In aedd92d/rtems:

    score: Add stack free handler to TCB This avoids a dependency to the stack free function in the thread destruction. Update #3959.
    Comment 7
    1. Sebastian Huber, Thu, 03 Sep 2020 04:33:56 GMT
    2. description: modified (diff)
    3. summary: changed from Add rtems_task_build() to Add rtems_task_create_from_config()
    Comment 8
    1. Sebastian Huber, Fri, 11 Sep 2020 13:47:33 GMT

    In dd734d46/rtems:

    score: Fix _Thread_Initialize() Fix an error cleanup path in SMP configurations to avoid a NULL pointer access. Update #3959.
    Comment 9
    1. Sebastian Huber, Sun, 13 Sep 2020 08:25:35 GMT
    2. description: modified (diff)
    Comment 10
    1. Chris Johns, Sun, 13 Sep 2020 23:03:33 GMT

    The following are some suggested updates. It is hard to comment on stuff in the ticket header in a way that does not change it so I hope doing this is OK?

    Updated ....

    /**
     * @brief This structure defines a task configuration used to create
     *        a task with user provided storage.
     *   This structure defines the configuration of a task created by
     *   rtems_task_create_from_config().
     */ 

    With this ...

     * There are no alignment requirements for the task storage area.  To avoid
       * memory waste, use the #RTEMS_TASK_STORAGE_ALIGNMENT variable attribute to
       * enforce the recommended alignment of the task storage area. 

    ... I understand the alignment for a user is anything but internally the memory may be aligned and that will potentially create some waste. For example I could provide 0x1 as an address but the stack base or the start of the TLS may need to be aligned depending on the arch, _TLS_Alignment, or something. Does this need to be explained?

    Updated ...

     * It is called when the task creation aborts due to a failed task create
       * extension or the task is deleted.  It is called from task context under
       * protection of the object allocator lock.  It is allowed to call free() in
       * this handler.  The handler may be NULL to disable. 

    Updated ...

     * @brief Creates a task from the specified the task configuration.
     *
     * In contrast to tasks created by rtems_task_create(), the tasks created by
     * this directive use a user-provided task storage area.  The task storage area
     * contains the task stack, the thread-local storage, and the floating-point
     * context on architectures with a separate floating-point context.
     *
     * It is recommended rtems_task_create() and rtems_task_create_from_config()
     * are not used together in an application. This means
     * rtems_task_create_from_config() is not recommended for drivers or libraries
     * an application may use. This directive is intended for applications which
     * do not want to use the RTEMS Workspace and instead statically allocate all
     * operating system resources.
     *
     * An application based solely on static allocation can avoid any runtime
     * memory allocators. This can simplfiy the application architecture as well
     * as any analysis that may be required.
     *
     * The stack space estimate done by  assumes that all tasks
     * are created by rtems_task_create().  The estimate can be adjusted to take
     * user-provided task storage areas into account through the
     * #CONFIGURE_TASKS_CREATED_FROM_CONFIG application configuration option or a
     * custom task stack allocator, see #CONFIGURE_TASK_STACK_ALLOCATOR.
     *
     * The #CONFIGURE_MAXIMUM_TASKS should includes tasks created with
     * rtems_task_create_from_config(). 
    Comment 11
    1. Sebastian Huber, Mon, 14 Sep 2020 17:48:12 GMT

    Yes, the storage internal alignment is something which needs to be better explained.

    I think we should change RTEMS_TASK_STORAGE_ALIGNMENT to be just the alignment value and say that the maximum thread-local storage size shall have at least this alignment.

    CONTEXT_FP_SIZE should be aligned by RTEMS_TASK_STORAGE_ALIGNMENT. For RTEMS_TASK_STORAGE_ALIGNMENT we should use CPU_HEAP_ALIGNMENT.

    Comment 12
    1. Chris Johns, Tue, 15 Sep 2020 02:50:02 GMT

    Sure. What about adding "RTEMS_TASK_STORAGE_ALIGNMENT will optimally use the provided storage"? We do not need to hand hold into the detail but we should hint at the best approach.

    Comment 13
    1. Sebastian Huber, Thu, 17 Sep 2020 16:09:22 GMT

    In 641b31a4/rtems:

    rtems: Add RTEMS_ALIGN_DOWN() Update #3959. Update #4074.
    Comment 14
    1. Sebastian Huber, Thu, 17 Sep 2020 16:09:25 GMT

    In dce1cdf1/rtems:

    rtems: Add RTEMS_ALIGN_UP() Update #3959. Update #4074.
    Comment 15
    1. Sebastian Huber, Thu, 17 Sep 2020 16:09:32 GMT

    In 6942e5f/rtems:

    rtems: Add rtems_task_construct() In contrast to rtems_task_create() this function constructs a task with a user-provided task storage area. The new directive uses a configuration structure instead of individual parameters. Add RTEMS_TASK_STORAGE_SIZE() to calculate the recommended size of a task storage area based on the task attributes and the size dedicated to the task stack and thread-local storage. This macro may allow future extensions without breaking the API. Add application configuration option CONFIGURE_MINIMUM_TASKS_WITH_USER_PROVIDED_STORAGE to adjust RTEMS Workspace size estimate. Update #3959.
    Comment 16
    1. Sebastian Huber, Thu, 17 Sep 2020 16:09:36 GMT

    In ad22c65/rtems:

    doxygen: Move top-level group definitions Update #3959.
    Comment 17
    1. Sebastian Huber, Thu, 17 Sep 2020 16:09:39 GMT

    In 139ffa2/rtems:

    validation: Add general purpose test suite Add a general purpose test suite for validation tests. This is the first test suite generated from a specification item in the rtems-central repository. Update #3959.
    Comment 18
    1. Sebastian Huber, Thu, 17 Sep 2020 16:09:42 GMT

    In 3dd4cbb/rtems:

    validation: rtems_task_construct() errors This is the first test case generated from a specification item in the rtems-central repository. Update #3959.
    Comment 19
    1. Sebastian Huber, Thu, 17 Sep 2020 16:14:45 GMT

    In 28db972/rtems-docs:

    c-user: CONFIGURE_MINIMUM_TASKS_WITH_USER_PROVIDED_STORAGE Document this application configuration option. Update #3959.
    Comment 20
    1. Sebastian Huber, Thu, 17 Sep 2020 16:17:25 GMT
    2. description: modified (diff)
    3. summary: changed from Add rtems_task_create_from_config() to Add rtems_task_construct()
    Comment 21
    1. Sebastian Huber, Thu, 17 Sep 2020 18:08:26 GMT

    In 2f65e13/rtems:

    rtems: Fix typo Update #3959.
    Comment 22
    1. Sebastian Huber, Fri, 23 Apr 2021 06:25:33 GMT

    In f14cf0c/rtems:

    rtems: Check for NULL config in task construct Since there are already excessive NULL pointer checks in the Classic API, do this also in rtems_task_construct(). Update #3959.
    Comment 23
    1. Sebastian Huber, Fri, 18 Jun 2021 09:24:45 GMT
    2. keywords: qualification added
    Comment 24
    1. Sebastian Huber, Thu, 02 Sep 2021 05:59:46 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    The new directive was documented, implemented, and tested:

    ​https://docs.rtems.org/branches/master/c-user/task/directives.html#rtems-task-construct


    3962 - Licensing Requirements for Submissions Poorly Documented

    Link https://devel.rtems.org/ticket/3962
    Id 3962
    Reporter Joel Sherrill
    Created 20 April 2020 18:32:47
    Modified 1 May 2020 16:12:46
    Owner Gedare Bloom
    Type defect
    Component doc
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority high
    Severity major
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The discussion of licensing for code/docs in RTEMS is a bit of a mess right now. After posting this issue to the mailing list (​https://lists.rtems.org/pipermail/devel/2020-April/059489.html), Sebastian pointed out where the actual recommended text for code/docs was located.

    SW Engineering Guide sections 6.3.1.2 (Licenses) and 11 (Licensing Requirements) are somewhat overlapping and duplicative. In addition, Gedare's old blog ​http://gedare-csphd.blogspot.com/2013/05/software-licenses-with-rtems.html is still a decent discussion of the underlying issues and goals even though we have moved to BSD-2 and Creative Commons for documentation since he wrote that in 2013.

    The above references just describe the rationale and cite the licenses. For an example of what to put in the code, you have to visit ​https://docs.rtems.org/branches/master/eng/coding-file-hdr.html#copyright-and-license-block

    I __THINK__ a good solution would be to reference the Chapter 11 Licensing
    Requirements from the Coding Conventions chapter. And incorporate an
    updated version of Gedare's blog text.

    Comment 1
    1. Chris Johns, Sun, 26 Apr 2020 23:30:12 GMT

    Is this being worked on for the RTEMS 5 release?

    Comment 2
    1. Sebastian Huber, Mon, 27 Apr 2020 12:14:01 GMT

    Yes, this needs to be fixed, however, it is not release critical from my point of view. This stuff is important for new contributors and they should focus on the master. I would move the milestone to 6.1.

    Comment 3
    1. Gedare Bloom, Thu, 30 Apr 2020 03:36:35 GMT
    2. owner: set to Gedare Bloom
    3. status: changed from new to accepted
    4. milestone: changed from 5.1 to 6.1
    Comment 4
    1. Joel Sherrill, Fri, 01 May 2020 16:12:46 GMT
    2. status: changed from accepted to closed
    3. resolution: set to fixed

    In 2d22d74/rtems-docs:

    Rework RTEMS licensing discussions. This now captures historical rationale along with cross-linking code templates with license guidelines. Closes #3962.

    3977 - Add unexplained-failure as option for Test Configuration Files

    Link https://devel.rtems.org/ticket/3977
    Id 3977
    Reporter Joel Sherrill
    Created 10 May 2020 16:34:31
    Modified 29 November 2022 23:16:56
    Owner joel@…
    Type enhancement
    Component test
    Status closed
    Resolution invalid
    Version  
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    RTEMS has many BSPs and it is a large amount of work to investigate each test execution that has an unexpected result. The tcfg files were initially created to just avoid trying build tests where the executable did not fit into target memory. That has grown to incorporate knowledge about which tests require human input and are not automated. This ticket is to add a new test state for "unexplained failure".

    If a test has been investigated and has an explanation, it is a known failure. This could be associated with a ticket (e.g. dynamic loading or fenv not supported on an architecture) or just a comment explaining it (e.g. mips jmr3904 simulator trapping invalid memory accesses before the trap handler is tripped).

    But many tests are currently just marked as failures because they do fail but no one has investigated and explained it. The addition of "unexplained failure" is to capture those. This will make it possible for someone looking to know they need investigating but are known to fail. Marking these are "known failure" permanently puts them in a category where they will not get looked at again.

    This has two side-effects. The first is that we can have test results with no "unexpected failures." They are either known and explained or known and need investigation. This helps anyone looking at test results since there should be no unexpected failures. The second side-effect is that it hopefully captures the set of repeatedly failing tests and encourages us to investigate and file tickets or explain.

    The milestone for this is __NOT__ 5.x because this is moving the goalpost for test results. Release 5.x is the first with the body of test results data we have. The build@ mailing list has them and can be compared by any user interested. We also do not have a way to machine check results yet which would ease checking the test results for deviations.

    Note: As an odd case, there are multiple BSPs where the executables can run on hardware or 1+ simulators. Sometimes the results vary across the target environment even for the same executable. This is at least something to consider as we want to have a trustworthy and checkable set of test results available.

    Comment 1
    1. Chris Johns, Wed, 13 May 2020 01:32:55 GMT

    For the record the TCFG files were created to manage the states for the tester. The change included excluding a test. The tester command had the state checks and handling added in April 2017. The test states were also added to rtems.git at this time so all states have been present and documented in ​README.testdata together. I also raised #2962 at the time to indicate we need to manage this before we release.

    From my point of view and rtems-test nothing has changed. What was added did not set a policy for managing failures or the relationship to releasing and any failure, known, expected or otherwise is just a failure. The tester either expects to see a failure or it does not for accounting purposes only.

    I have gone away and spent time looking at adding this state and the change feels wrong because this state and any like it are basically a logical OR of expected-fail and the tester does not care about a policy that manages this or arrives at the expected fail state. The end goal is to have ./waf test that runs all the tests on a configured test harness and waf returns a non-zero exit code for any regressions from the build's baseline. I doubt we have single BSP that does this on any test harness.

    We should actively discourage specific test analysis from test results as they are simply a tool to account for a build's baseline. The result's stats should be bounded and consistent and provide a simple way to have a machine determine the state of a build.

    I have posted a ​detailed alternative. For these to work we will need a workable set of policies for the management of test failures.

    I think it is unrealistic to expect RTEMS to have 100% pass on all tests on all BSPs on all test platforms a BSP supports. There will be failures. There has been little or no analysis of existing tests that fail captured and accounted for so I dispute the assertion moving them to expected failures will stop any analysis. I believe the solution to this issue lies else where.

    I am fine with tests that have no analysis being left as unexpected failures but we need a way for buildbot or any other CI tool to run the test suite on selected profiles to know if a change has caused a regression. Any test failure in a clean clone from rtems.git breaks the ability to do this. This is the first thing we need to fix.

    Transitioning from the current state to one where the tester can detect regressions requires some effort. It is unfair to instantly say __"all commits to rtems.git must have no unexpected results for BSP XXX on YYY"__ if this is the policy. I do think we need to select a few key BSPs and test harnesses that are required to have no unexpected results befor a release can be made.

    I would like to close this ticket and open a new one for the tester state changes. I suggest a ticket to document the unexpected results policy be created.

    Comment 2
    1. Chris Johns, Fri, 25 Sep 2020 01:20:22 GMT

    This ticket should be closed. Please close.

    Comment 3
    1. Chris Johns, Tue, 29 Nov 2022 23:16:56 GMT
    2. status: changed from new to closed
    3. resolution: set to invalid

    3978 - Move _RTEMS_version to implementation header file

    Link https://devel.rtems.org/ticket/3978
    Id 3978
    Reporter Sebastian Huber
    Created 11 May 2020 05:48:32
    Modified 23 June 2021 07:07:55
    Owner Sebastian Huber
    Type enhancement
    Component rtems
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking 3972
    Blocked by 3970

    Description

    The global variable _RTEMS_version was declared via and may be used directly by application code. Applications should use rtems_get_version_string() instead. Move it to an implementation header file in RTEMS 6.

    Comment 1
    1. Sebastian Huber, Tue, 14 Jul 2020 05:26:24 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 9039011/rtems:

    rtems: Move declartion of _RTEMS_version Close #3978.
    Comment 2
    1. Sebastian Huber, Wed, 23 Jun 2021 07:07:55 GMT
    2. keywords: qualification added

    3979 - Remove RTEMS_MAXIMUM_NAME_LENGTH

    Link https://devel.rtems.org/ticket/3979
    Id 3979
    Reporter Sebastian Huber
    Created 11 May 2020 05:49:22
    Modified 23 June 2021 07:07:55
    Owner Sebastian Huber
    Type enhancement
    Component rtems
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking 3972, 3993
    Blocked by 3971

    Description

    Remove this deprecated define.

    Comment 1
    1. Sebastian Huber, Mon, 01 Jun 2020 11:16:17 GMT
    2. blocking: changed from 3972 to 3972, 3993
    Comment 2
    1. Sebastian Huber, Tue, 14 Jul 2020 05:26:28 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In b3686d7/rtems:

    rtems: Remove RTEMS_MAXIMUM_NAME_LENGTH Close #3979.
    Comment 3
    1. Sebastian Huber, Wed, 23 Jun 2021 07:07:55 GMT
    2. keywords: qualification added

    3980 - Remove deprecated <rtems/system.h>

    Link https://devel.rtems.org/ticket/3980
    Id 3980
    Reporter Sebastian Huber
    Created 11 May 2020 05:50:27
    Modified 23 June 2021 07:07:55
    Owner Sebastian Huber
    Type enhancement
    Component rtems
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking 3993
    Blocked by 3972

    Description

    This header file is included by and contains only deprecated or internal content. Remove this deprecated header file.

    Comment 1
    1. Sebastian Huber, Mon, 11 May 2020 06:15:27 GMT
    2. version: changed from 5 to 6
    3. milestone: changed from 5.1 to 6.1
    Comment 2
    1. Sebastian Huber, Mon, 01 Jun 2020 11:16:17 GMT
    2. blocking: set to 3993
    Comment 3
    1. Sebastian Huber, Tue, 14 Jul 2020 05:26:35 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 39c2e28/rtems:

    rtems: Remove deprecated Close #3980.
    Comment 4
    1. Sebastian Huber, Wed, 23 Jun 2021 07:07:55 GMT
    2. keywords: qualification added

    3981 - Remove _Copyright_Notice from API header file

    Link https://devel.rtems.org/ticket/3981
    Id 3981
    Reporter Sebastian Huber
    Created 11 May 2020 06:25:06
    Modified 23 June 2021 07:07:55
    Owner Sebastian Huber
    Type enhancement
    Component rtems
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking 3993
    Blocked by 3973

    Description

    Remove _Copyright_Notice from API header file. Applications should use rtems_get_copyright_notice() which is available since RTEMS 5.

    Comment 1
    1. Sebastian Huber, Mon, 01 Jun 2020 11:16:17 GMT
    2. blocking: set to 3993
    Comment 2
    1. Sebastian Huber, Tue, 14 Jul 2020 05:26:32 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 479b2bf/rtems:

    rtems: Remove _Copyright_Notice from API header Close #3981.
    Comment 3
    1. Sebastian Huber, Wed, 23 Jun 2021 07:07:55 GMT
    2. keywords: qualification added

    3982 - Test failures on BSPs with sbrk() support

    Link https://devel.rtems.org/ticket/3982
    Id 3982
    Reporter Sebastian Huber
    Created 12 May 2020 06:57:23
    Modified 10 February 2021 06:30:29
    Owner Sebastian Huber
    Type defect
    Component test
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    There are some test failures on BSPs with sbrk() support such as psim, for example psxpipe01:

    #0  rtems_heap_extend_via_sbrk (heap=0x30468 <_Malloc_Heap>, alloc_size=5) at /home/EB/sebastian_h/src/rtems/c/src/../../cpukit/libcsupport/src/rtems_heap_extend_via_sbrk.c:41
    #1 0x00005b48 in rtems_heap_allocate_aligned_with_boundary (size=size@entry=5, alignment=alignment@entry=0, boundary=boundary@entry=0) at /home/EB/sebastian_h/src/rtems/c/src/../../cpukit/libcsupport/src/malloc_deferred.c:116
    #2 0x00005930 in malloc (size=size@entry=5) at /home/EB/sebastian_h/src/rtems/c/src/../../cpukit/libcsupport/src/malloc.c:39
    #3 0x0001b720 in _malloc_r (ignored=ignored@entry=0x2fa68 <_RTEMS_tasks_Objects+736>, size=size@entry=5) at /home/EB/sebastian_h/src/rtems/c/src/../../cpukit/libcsupport/src/_malloc_r.c:26
    #4 0x00015ff4 in _strdup_r (reent_ptr=0x2fa68 <_RTEMS_tasks_Objects+736>, str=str@entry=0x1ce94 "/tmp") at ../../../../../../gcc-7.5.0/newlib/libc/string/strdup_r.c:10
    #5 0x00015fbc in strdup (str=str@entry=0x1ce94 "/tmp") at ../../../../../../gcc-7.5.0/newlib/libc/string/strdup.c:10
    #6 0x00011470 in rtems_mkdir (path=path@entry=0x1ce94 "/tmp", mode=mode@entry=511) at /home/EB/sebastian_h/src/rtems/c/src/../../cpukit/libcsupport/src/rtems_mkdir.c:133
    #7 0x0000a7c8 in pipe (filsdes=filsdes@entry=0x36ce8) at /home/EB/sebastian_h/src/rtems/c/src/../../cpukit/libfs/src/pipe/pipe.c:42
    #8 0x000004a0 in Init (ignored=) at /home/EB/sebastian_h/src/rtems/c/src/../../testsuites/psxtests/psxpipe01/init.c:65
    #9 0x0000c828 in _Thread_Handler () at /home/EB/sebastian_h/src/rtems/c/src/../../cpukit/score/src/threadhandler.c:139
    #10 0x0000c77c in _Thread_Get (id=, lock_context=) at /home/EB/sebastian_h/src/rtems/c/src/../../cpukit/score/src/threadget.c:43

    The problem is that an rtems_heap_greedy_allocate() is ineffective due to the automatic heap extension.

    Comment 1
    1. Chris Johns, Mon, 08 Feb 2021 06:47:43 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 7ca3b28/rtems:

    libcsupport: Have greedy allocations use consume extended memory Call the heap extend handler until all memory has been requested. Closes #3982
    Comment 2
    1. Chris Johns, Mon, 08 Feb 2021 22:33:47 GMT
    2. status: changed from closed to reopened
    3. resolution: fixed deleted

    This ticket is being reopened and extended to cover other greedy implementation. There is also rtems_workspace_greedy_allocate() and friends.

    Comment 3
    1. Chris Johns, Wed, 10 Feb 2021 06:30:29 GMT
    2. status: changed from reopened to closed
    3. resolution: set to fixed

    In 03dff201/rtems:

    libcsupport: Add sbrk greedy support to consume all sbrk memory Move the heap sbrk code into a separate routnine. Update heap and workspace greedy allocators to use the common sbrk greedy support. Closes #3982

    3988 - Remove deprecated rtems_extension

    Link https://devel.rtems.org/ticket/3988
    Id 3988
    Reporter Sebastian Huber
    Created 28 May 2020 12:17:13
    Modified 23 June 2021 07:07:55
    Owner Sebastian Huber
    Type task
    Component rtems
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking 3993
    Blocked by  

    Description

    Comment 1
    1. Sebastian Huber, Mon, 01 Jun 2020 11:16:17 GMT
    2. blocking: set to 3993
    Comment 2
    1. Sebastian Huber, Tue, 14 Jul 2020 05:26:49 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 6a3fcd4/rtems:

    rtems: Remove deprecated rtems_extension This type was deprecated in RTEMS 5.1. Close #3988.
    Comment 3
    1. Sebastian Huber, Wed, 23 Jun 2021 07:07:55 GMT
    2. keywords: qualification added

    3989 - Remove deprecated rtems_get_current_processor()

    Link https://devel.rtems.org/ticket/3989
    Id 3989
    Reporter Sebastian Huber
    Created 28 May 2020 13:28:09
    Modified 23 June 2021 07:07:55
    Owner Sebastian Huber
    Type task
    Component rtems
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking 3993
    Blocked by 3731

    Description

    Comment 1
    1. Sebastian Huber, Mon, 01 Jun 2020 11:16:17 GMT
    2. blocking: set to 3993
    Comment 2
    1. Sebastian Huber, Tue, 14 Jul 2020 05:26:42 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In e4215e43/rtems:

    rtems: Remove rtems_get_current_processor() This function was deprecated in RTEMS 5.1. Close #3989.
    Comment 3
    1. Sebastian Huber, Wed, 23 Jun 2021 07:07:55 GMT
    2. keywords: qualification added

    3990 - Remove deprecated rtems_get_processor_count()

    Link https://devel.rtems.org/ticket/3990
    Id 3990
    Reporter Sebastian Huber
    Created 28 May 2020 13:29:14
    Modified 23 June 2021 07:07:55
    Owner Sebastian Huber
    Type task
    Component rtems
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking 3993
    Blocked by 3732

    Description

    Comment 1
    1. Sebastian Huber, Mon, 01 Jun 2020 11:16:17 GMT
    2. blocking: set to 3993
    Comment 2
    1. Sebastian Huber, Tue, 14 Jul 2020 05:26:46 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 13a4b880/rtems:

    rtems: Remove rtems_get_processor_count() This function was deprecated in RTEMS 5.1. Close #3990.
    Comment 3
    1. Sebastian Huber, Wed, 23 Jun 2021 07:07:55 GMT
    2. keywords: qualification added

    3991 - Remove deprecated Thread typedef

    Link https://devel.rtems.org/ticket/3991
    Id 3991
    Reporter Sebastian Huber
    Created 28 May 2020 13:48:02
    Modified 23 June 2021 07:07:55
    Owner Sebastian Huber
    Type task
    Component score
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    Comment 1
    1. Sebastian Huber, Tue, 14 Jul 2020 05:27:17 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In a3ed4219/rtems:

    score: Remove deprecated Thread This type was deprecated in RTEMS 5.1. Close #3991.
    Comment 2
    1. Sebastian Huber, Wed, 23 Jun 2021 07:07:55 GMT
    2. keywords: qualification added

    3993 - Specify the RTEMS Classic API

    Link https://devel.rtems.org/ticket/3993
    Id 3993
    Reporter Sebastian Huber
    Created 29 May 2020 13:49:44
    Modified 4 October 2022 08:39:36
    Owner Sebastian Huber
    Type task
    Component rtems
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by 3584, 3586, 3588, 3590, 3592, 3594, 3596, 3979, 3980, 3981, 3988, 3989, 3990

    Description

    For the RTEMS Qualification project we need a specification of the RTEMS Classic API. This specification can be used to generate an Interface Control Document (ICD), header files with Doxygen markup and content for the RTEMS Classic API Guide. The RTEMS Classic API is mainly defined in the following header files:

    Examples for interface specification items are available here:

    ​https://git.rtems.org/sebh/rtems-qual.git/tree/spec/if/rtems/status

    You find an example for a generated header file here:

    ​https://git.rtems.org/sebh/rtems.git/tree/cpukit/include/rtems/rtems/status.h?h=qual

    The header files are generated by this script:

    ​https://git.rtems.org/sebh/rtems-qual.git/tree/spec2rtems.py

    As preliminary work, remove all RTEMS APIs deprecated in RTEMS 5.1.

    Use and improve the ​Interface Specification How-To during the work on this ticket.

    Carry out the following tasks for each header file:

  • Add a interface specification item for each variable, typedef, enum, enumerator, define, macro, function, struct, and union.
  • For each item analyse the change history using git log -p --follow to determine the copyright holders of the Doxygen markup. Use only Doxygen markup for the specification items from contributors which agreed on a dual-licensing (CC-BY-SA-4.0 OR BSD-2-Clause) in #3899. Use this information to provide copyright statements for the items. The API parts alone (e.g. function names, parameter names, type names, etc.) are not considered to be copyrightable information.
  • Use the RTEMS documentation sources to document the API. Use only content from contributors which agreed on a dual-licensing (CC-BY-SA-4.0 OR BSD-2-Clause) in #3899.
  • Add unspecified interface items for interfaces to the implementation, C language, compiler, user provided defines, build system provided defines, etc.
  • Run the RTEMS test suite with all tests enabled and check for regressions (in particular new warnings).
  • Create a commit for each header file and send it to the RTEMS mailing list for review.
  • Comment 1
    1. Sebastian Huber, Mon, 01 Jun 2020 11:16:17 GMT
    2. description: modified (diff)
    3. blockedby: set to 3584, 3588, 3590, 3592, 3594, 3596, 3686, 3979, 3980, 3981, 3988, 3989, 3990
    Comment 2
    1. Sebastian Huber, Mon, 01 Jun 2020 11:17:38 GMT
    2. blockedby: changed from 3584, 3588, 3590, 3592, 3594, 3596, 3686, 3979, 3980, 3981, 3988, 3989, 3990 to 3584, 3588, 3590, 3592, 3594, 3596, 3979, 3980, 3981, 3988, 3989, 3990
    Comment 3
    1. Sebastian Huber, Mon, 01 Jun 2020 11:19:05 GMT
    2. blockedby: changed from 3584, 3588, 3590, 3592, 3594, 3596, 3979, 3980, 3981, 3988, 3989, 3990 to 3584, 3586, 3588, 3590, 3592, 3594, 3596, 3979, 3980, 3981, 3988, 3989, 3990
    Comment 4
    1. Sebastian Huber, Mon, 01 Jun 2020 11:46:42 GMT
    2. description: modified (diff)
    Comment 5
    1. Sebastian Huber, Thu, 04 Jun 2020 12:32:13 GMT
    2. owner: set to Sebastian Huber
    3. status: changed from assigned to accepted
    4. description: modified (diff)
    Comment 6
    1. Sebastian Huber, Thu, 04 Jun 2020 17:38:29 GMT
    2. description: modified (diff)
    Comment 7
    1. Sebastian Huber, Thu, 03 Sep 2020 05:00:43 GMT

    In 16ee8cf/rtems-docs:

    c-user: Split up semaphore manager This makes it easier to automatically generate parts of the manager documentation in the future. Update #3993.
    Comment 8
    1. Sebastian Huber, Thu, 03 Sep 2020 05:00:46 GMT

    In ba6825c/rtems-docs:

    c-user: Split up event manager This makes it easier to automatically generate parts of the manager documentation in the future. Update #3993.
    Comment 9
    1. Sebastian Huber, Thu, 03 Sep 2020 05:00:48 GMT

    In 91f0f97/rtems-docs:

    c-user: Split up barrier manager This makes it easier to automatically generate parts of the manager documentation in the future. Update #3993.
    Comment 10
    1. Sebastian Huber, Thu, 03 Sep 2020 05:00:50 GMT

    In 86c39ef/rtems-docs:

    c-user: Split up clock manager This makes it easier to automatically generate parts of the manager documentation in the future. Update #3993.
    Comment 11
    1. Sebastian Huber, Thu, 03 Sep 2020 05:00:52 GMT

    In 623a9a1/rtems-docs:

    c-user: Split up dual-ported memory manager This makes it easier to automatically generate parts of the manager documentation in the future. Update #3993.
    Comment 12
    1. Sebastian Huber, Thu, 03 Sep 2020 05:00:54 GMT

    In 72295d4/rtems-docs:

    c-user: Split up interrupt manager This makes it easier to automatically generate parts of the manager documentation in the future. Update #3993.
    Comment 13
    1. Sebastian Huber, Thu, 03 Sep 2020 05:00:57 GMT

    In 980734f/rtems-docs:

    c-user: Split up IO manager This makes it easier to automatically generate parts of the manager documentation in the future. Update #3993.
    Comment 14
    1. Sebastian Huber, Thu, 03 Sep 2020 05:00:59 GMT

    In c75ded2/rtems-docs:

    c-user: Split up message manager This makes it easier to automatically generate parts of the manager documentation in the future. Update #3993.
    Comment 15
    1. Sebastian Huber, Thu, 03 Sep 2020 05:01:01 GMT

    In a4119a9/rtems-docs:

    c-user: Split up partition manager This makes it easier to automatically generate parts of the manager documentation in the future. Update #3993.
    Comment 16
    1. Sebastian Huber, Thu, 03 Sep 2020 05:01:03 GMT

    In 082054b/rtems-docs:

    c-user: Split up rate-monotonic manager This makes it easier to automatically generate parts of the manager documentation in the future. Update #3993.
    Comment 17
    1. Sebastian Huber, Thu, 03 Sep 2020 05:01:05 GMT

    In aebb6fd/rtems-docs:

    c-user: Split up region manager This makes it easier to automatically generate parts of the manager documentation in the future. Update #3993.
    Comment 18
    1. Sebastian Huber, Thu, 03 Sep 2020 05:01:08 GMT

    In e3523ed/rtems-docs:

    c-user: Split up signal manager This makes it easier to automatically generate parts of the manager documentation in the future. Update #3993.
    Comment 19
    1. Sebastian Huber, Thu, 03 Sep 2020 05:01:10 GMT

    In ccb384b/rtems-docs:

    c-user: Split up task manager This makes it easier to automatically generate parts of the manager documentation in the future. Update #3993.
    Comment 20
    1. Sebastian Huber, Thu, 03 Sep 2020 05:01:12 GMT

    In a99bbae/rtems-docs:

    c-user: Split up timer manager This makes it easier to automatically generate parts of the manager documentation in the future. Update #3993.
    Comment 21
    1. Sebastian Huber, Thu, 03 Sep 2020 05:01:14 GMT

    In 80df4d6/rtems-docs:

    c-user: Split up user extensions manager This makes it easier to automatically generate parts of the manager documentation in the future. Update #3993.
    Comment 22
    1. Sebastian Huber, Thu, 03 Sep 2020 05:01:16 GMT

    In ba9dfcf/rtems-docs:

    c-user: Split up scheduling concepts Introduce a background section. This makes it easier to automatically generate parts of the scheduling concepts documentation in the future. Update #3993.
    Comment 23
    1. Sebastian Huber, Fri, 18 Sep 2020 16:57:09 GMT

    In 0b410b8a/rtems:

    rtems: Generate Change license to BSD-2-Clause according to file history and documentation re-licensing agreement. Update #3053. Update #3899. Update #3993.
    Comment 24
    1. Sebastian Huber, Thu, 08 Oct 2020 05:40:38 GMT

    In f815d04/rtems:

    rtems: Add "Generated from ..." comments Improve file header comment. Update #3993.
    Comment 25
    1. Sebastian Huber, Sun, 11 Oct 2020 13:27:04 GMT

    In 4aae24d/rtems-docs:

    c-user: Generate I/O Manager documentation The manager documentation is a consolidation of the comments in Doxygen markup and the documentation sources in Sphinx markup. The documentation was transfered to interface specification items. This header file was generated from the items by a script. Update #3993.
    Comment 26
    1. Sebastian Huber, Sun, 11 Oct 2020 14:07:39 GMT

    In 8111a6ba/rtems:

    rtems: Generate The manager documentation is a consolidation of the comments in Doxygen markup and the documentation sources in Sphinx markup. The documentation was transfered to interface specification items. This header file was generated from the items by a script. Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
    Comment 27
    1. Sebastian Huber, Thu, 12 Nov 2020 06:47:02 GMT

    In ec4dcc0/rtems-docs:

    c-user: Generate Event Manager documentation The manager documentation is a consolidation of the comments in Doxygen markup and the documentation sources in Sphinx markup. The documentation was transfered to interface specification items. This header file was generated from the items by a script. Update #3993.
    Comment 28
    1. Sebastian Huber, Thu, 12 Nov 2020 06:47:04 GMT

    In 530bc2b/rtems-docs:

    c-user: Generate Partition Manager documentation The manager documentation is a consolidation of the comments in Doxygen markup and the documentation sources in Sphinx markup. The documentation was transfered to interface specification items. This header file was generated from the items by a script. Update #3993.
    Comment 29
    1. Sebastian Huber, Thu, 12 Nov 2020 07:55:26 GMT

    In 1af94608/rtems:

    rtems: Generate Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
    Comment 30
    1. Sebastian Huber, Thu, 12 Nov 2020 07:55:30 GMT

    In da44df3/rtems:

    rtems: Generate Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
    Comment 31
    1. Sebastian Huber, Thu, 12 Nov 2020 07:55:33 GMT

    In c0327d8/rtems:

    rtems: Generate Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
    Comment 32
    1. Sebastian Huber, Thu, 12 Nov 2020 07:55:37 GMT

    In e05b100/rtems:

    rtems: Generate Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
    Comment 33
    1. Sebastian Huber, Thu, 12 Nov 2020 07:55:40 GMT

    In 8de874b/rtems:

    rtems: Generate Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
    Comment 34
    1. Sebastian Huber, Thu, 12 Nov 2020 07:55:44 GMT

    In 9b4458e7/rtems:

    rtems: Generate Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
    Comment 35
    1. Sebastian Huber, Thu, 12 Nov 2020 07:55:47 GMT

    In f75e240/rtems:

    rtems: Generate Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
    Comment 36
    1. Sebastian Huber, Thu, 12 Nov 2020 07:55:50 GMT

    In 007ee13/rtems:

    rtems: Generate Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
    Comment 37
    1. Sebastian Huber, Thu, 12 Nov 2020 07:55:54 GMT

    In ecc6b2f/rtems:

    rtems: Generate Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
    Comment 38
    1. Sebastian Huber, Thu, 12 Nov 2020 07:55:57 GMT

    In 21af871/rtems:

    rtems: Generate Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
    Comment 39
    1. Sebastian Huber, Fri, 20 Nov 2020 13:27:03 GMT

    In 05f06aa/rtems-docs:

    c-user: Split up object services This makes it easier to automatically generate parts of the module documentation in the future. Update #3993.
    Comment 40
    1. Sebastian Huber, Tue, 01 Dec 2020 13:42:47 GMT

    In 7995329/rtems:

    rtems: Fix documentation in Update #3993.
    Comment 41
    1. Sebastian Huber, Tue, 01 Dec 2020 13:46:11 GMT

    In 284e8d0/rtems-docs:

    c-user: Fix format in Partition Manager Update #3993.
    Comment 42
    1. Sebastian Huber, Wed, 02 Dec 2020 07:20:08 GMT

    In 29e6caa/rtems-docs:

    c-user: Clarify rtems_partition_create() The rtems_partition_create() returns an object identifier and not just a partition identifier. Update #3993.
    Comment 43
    1. Sebastian Huber, Wed, 02 Dec 2020 07:20:10 GMT

    In 346bbe6/rtems-docs:

    c-user: Clarify rtems_partition_delete() Move the PTCB sentence to the notes to be in line with rtems_partition_create(). Update #3993.
    Comment 44
    1. Sebastian Huber, Wed, 02 Dec 2020 07:20:44 GMT

    In 8756d5c/rtems:

    rtems: Clarify rtems_partition_create() The rtems_partition_create() returns an object identifier and not just a partition identifier. Update #3993.
    Comment 45
    1. Sebastian Huber, Wed, 02 Dec 2020 07:20:47 GMT

    In 5a285e3/rtems:

    rtems: Clarify rtems_partition_delete() Move the PTCB sentence to the notes to be in line with rtems_partition_create(). Update #3993.
    Comment 46
    1. Sebastian Huber, Wed, 02 Dec 2020 07:31:31 GMT

    In 66bcecf/rtems-docs:

    c-user: Clarify invalid identifier descriptions Update #3993.
    Comment 47
    1. Sebastian Huber, Wed, 02 Dec 2020 07:34:30 GMT

    In 1af4493/rtems:

    rtems: Clarify invalid identifier descriptions Update #3993.
    Comment 48
    1. Sebastian Huber, Thu, 03 Dec 2020 06:25:06 GMT

    In 65969c1/rtems:

    rtems: Generate Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
    Comment 49
    1. Sebastian Huber, Thu, 03 Dec 2020 06:25:18 GMT

    In 768327d0/rtems:

    rtems: Generate Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
    Comment 50
    1. Sebastian Huber, Wed, 09 Dec 2020 08:20:55 GMT

    In dad89ce/rtems-docs:

    c-user: Generate Object Services documentation The documentation is a consolidation of the comments in Doxygen markup and the documentation sources in Sphinx markup. The documentation was transfered to interface specification items. The documentation source files were generated from the items by a script. Update #3993.
    Comment 51
    1. Sebastian Huber, Wed, 09 Dec 2020 08:20:57 GMT

    In d716c79/rtems-docs:

    c-user: Generate Timer Manager documentation The documentation is a consolidation of the comments in Doxygen markup and the documentation sources in Sphinx markup. The documentation was transfered to interface specification items. The documentation source files were generated from the items by a script. Update #3993.
    Comment 52
    1. Sebastian Huber, Wed, 27 Jan 2021 05:02:10 GMT

    In b35ac99/rtems:

    rtems: Add "Notes" paragraph header Place the paragraphs in the same order as the directive documentation in the RTEMS Classic API Guide. Update #3993.
    Comment 53
    1. Sebastian Huber, Wed, 03 Feb 2021 05:17:38 GMT

    In 8a95e6f8/rtems:

    rtems: Rework object services API Add a "Constraints" paragraph to the documentation. Provide prototypes for programming language bindings. Use the macro implementation to implement the corresponding functions. Update #3993.
    Comment 54
    1. Sebastian Huber, Wed, 03 Feb 2021 05:17:47 GMT

    In aa0060f4/rtems:

    rtems: Clarify partition manager documentation Unify the wording across similar directives of other managers. Add "Constraints" paragraph. Update #3993.
    Comment 55
    1. Sebastian Huber, Wed, 03 Feb 2021 05:20:14 GMT

    In 95e2f93/rtems-docs:

    c-user: Clarify object services Add a "Constraints" paragraph to the documentation. Use function prototypes for the directives. Update #3993.
    Comment 56
    1. Sebastian Huber, Wed, 03 Feb 2021 05:20:16 GMT

    In 66c9808/rtems-docs:

    c-user: Clarify partition manager documentation Unify the wording across similar directives of other managers. Add "CONSTRAINTS" section. Update #3993.
    Comment 57
    1. Sebastian Huber, Wed, 17 Feb 2021 17:46:39 GMT

    In 4d9b0b4/rtems-docs:

    c-user: Clarify timer manager documentation Unify the wording across similar directives of other managers. Add "CONSTRAINTS" section. Update #3993.
    Comment 58
    1. Sebastian Huber, Wed, 17 Feb 2021 17:46:42 GMT

    In 775380c/rtems-docs:

    c-user: Clarify event manager documentation Unify the wording across similar directives of other managers. Add "CONSTRAINTS" section. Update #3993.
    Comment 59
    1. Sebastian Huber, Wed, 17 Feb 2021 17:46:46 GMT

    In e357ccf/rtems-docs:

    c-user: Clarify IO manager documentation Unify the wording across similar directives of other managers. Update #3993.
    Comment 60
    1. Sebastian Huber, Wed, 17 Feb 2021 17:46:48 GMT

    In 261491f/rtems-docs:

    c-user: Clarify object services documentation Unify the wording across similar directives of other managers. Update #3993.
    Comment 61
    1. Sebastian Huber, Wed, 17 Feb 2021 17:46:50 GMT

    In 4e09c09/rtems-docs:

    c-user: Add labels to the manager chapters Update #3993.
    Comment 62
    1. Sebastian Huber, Wed, 17 Feb 2021 17:46:52 GMT

    In a1c5d68/rtems-docs:

    c-user: Add control block acronyms Update #3993.
    Comment 63
    1. Sebastian Huber, Wed, 17 Feb 2021 17:46:55 GMT

    In 6985800/rtems-docs:

    c-user: Move deprecated/removed directives This makes it easier to automatically generate parts of the manager documentation in the future. Update #3993.
    Comment 64
    1. Sebastian Huber, Wed, 17 Feb 2021 17:46:57 GMT

    In fd56f7e/rtems-docs:

    c-user: Generate semaphore manager documentation The documentation is a consolidation of the comments in Doxygen markup and the documentation sources in Sphinx markup. The documentation was transfered to interface specification items. The documentation source files were generated from the items by a script. Update #3993.
    Comment 65
    1. Sebastian Huber, Wed, 17 Feb 2021 17:46:59 GMT

    In 62718ad/rtems-docs:

    c-user: Generate barrier manager documentation The documentation is a consolidation of the comments in Doxygen markup and the documentation sources in Sphinx markup. The documentation was transfered to interface specification items. The documentation source files were generated from the items by a script. Update #3993.
    Comment 66
    1. Sebastian Huber, Wed, 17 Feb 2021 17:47:02 GMT

    In 4aead84/rtems-docs:

    c-user: Generate user extensions manager docs The documentation is a consolidation of the comments in Doxygen markup and the documentation sources in Sphinx markup. The documentation was transfered to interface specification items. The documentation source files were generated from the items by a script. Update #3993.
    Comment 67
    1. Sebastian Huber, Wed, 17 Feb 2021 17:47:04 GMT

    In a60c5b4/rtems-docs:

    c-user: Generate clock manager documentation The documentation is a consolidation of the comments in Doxygen markup and the documentation sources in Sphinx markup. The documentation was transfered to interface specification items. The documentation source files were generated from the items by a script. Update #3993.
    Comment 68
    1. Sebastian Huber, Wed, 17 Feb 2021 19:26:45 GMT

    In 2730599c/rtems:

    rtems: Clarify event manager documentation Unify the wording across similar directives of other managers. Add "CONSTRAINTS" section. Update #3993.
    Comment 69
    1. Sebastian Huber, Wed, 17 Feb 2021 19:26:49 GMT

    In f9dc44a/rtems:

    rtems: Clarify timer manager documentation Unify the wording across similar directives of other managers. Add "CONSTRAINTS" section. Update #3993.
    Comment 70
    1. Sebastian Huber, Wed, 17 Feb 2021 19:26:52 GMT

    In bf3b9f45/rtems:

    rtems: Clarify partition manager documentation Unify the wording across similar directives of other managers. Update #3993.
    Comment 71
    1. Sebastian Huber, Wed, 17 Feb 2021 19:26:55 GMT

    In 7a1828ac/rtems:

    rtems: Clarify IO manager documentation Unify the wording across similar directives of other managers. Update #3993.
    Comment 72
    1. Sebastian Huber, Wed, 17 Feb 2021 19:26:59 GMT

    In 97825da/rtems:

    rtems: Clarify object services documentation Unify the wording across similar directives of other managers. Update #3993.
    Comment 73
    1. Sebastian Huber, Wed, 17 Feb 2021 19:27:02 GMT

    In 0c4c035/rtems:

    rtems: Generate Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
    Comment 74
    1. Sebastian Huber, Wed, 17 Feb 2021 19:27:06 GMT

    In 2768280/rtems:

    rtems: Generate Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
    Comment 75
    1. Sebastian Huber, Wed, 17 Feb 2021 19:27:10 GMT

    In 407e351/rtems:

    rtems: Generate Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
    Comment 76
    1. Sebastian Huber, Fri, 19 Feb 2021 06:06:15 GMT

    In c87d8c2/rtems-docs:

    c-user: Generate signal manager documentation The documentation is a consolidation of the comments in Doxygen markup and the documentation sources in Sphinx markup. The documentation was transfered to interface specification items. The documentation source files were generated from the items by a script. Update #3993.
    Comment 77
    1. Sebastian Huber, Fri, 19 Feb 2021 06:09:24 GMT

    In 8b1b9872/rtems:

    rtems: Generate Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
    Comment 78
    1. Sebastian Huber, Mon, 19 Apr 2021 05:18:08 GMT

    In 9bf0184/rtems-docs:

    c-user: Document rtems_semaphore_obtain() errors Update #3993.
    Comment 79
    1. Sebastian Huber, Thu, 22 Apr 2021 05:13:44 GMT

    In f3262d4/rtems-docs:

    c-user: Split up initialization manager This makes it easier to automatically generate parts of the module documentation in the future. Update #3993.
    Comment 80
    1. Sebastian Huber, Thu, 22 Apr 2021 05:13:46 GMT

    In 62ca9c1/rtems-docs:

    c-user: Split up fatal error manager This makes it easier to automatically generate parts of the module documentation in the future. Update #3993.
    Comment 81
    1. Sebastian Huber, Thu, 22 Apr 2021 05:13:48 GMT

    In 86b48fb/rtems-docs:

    c-user: Split up multiprocessing manager This makes it easier to automatically generate parts of the module documentation in the future. Update #3993.
    Comment 82
    1. Sebastian Huber, Thu, 22 Apr 2021 05:13:52 GMT

    In 5a3cb76/rtems-docs:

    c-user: Generate initialization manager docs The documentation is a consolidation of the comments in Doxygen markup and the documentation sources in Sphinx markup. The documentation was transfered to interface specification items. The documentation source files were generated from the items by a script. Update #3993.
    Comment 83
    1. Sebastian Huber, Thu, 22 Apr 2021 05:13:54 GMT

    In d946f30/rtems-docs:

    c-user: Generate fatal error manager docs The documentation is a consolidation of the comments in Doxygen markup and the documentation sources in Sphinx markup. The documentation was transfered to interface specification items. The documentation source files were generated from the items by a script. Update #3993.
    Comment 84
    1. Sebastian Huber, Thu, 22 Apr 2021 05:13:57 GMT

    In a995620/rtems-docs:

    c-user: Generate multiprocessing manager docs The documentation is a consolidation of the comments in Doxygen markup and the documentation sources in Sphinx markup. The documentation was transfered to interface specification items. The documentation source files were generated from the items by a script. Update #3993.
    Comment 85
    1. Sebastian Huber, Thu, 22 Apr 2021 05:13:59 GMT

    In 03fc1d6/rtems-docs:

    c-user: Generate dual-ported memory manager docs The documentation is a consolidation of the comments in Doxygen markup and the documentation sources in Sphinx markup. The documentation was transfered to interface specification items. The documentation source files were generated from the items by a script. Update #3993.
    Comment 86
    1. Sebastian Huber, Thu, 22 Apr 2021 05:14:39 GMT

    In 97ba94b/rtems:

    rtems: Generate Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
    Comment 87
    1. Sebastian Huber, Thu, 22 Apr 2021 05:14:43 GMT

    In 71a2e7e/rtems:

    rtems: Generate Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
    Comment 88
    1. Sebastian Huber, Thu, 22 Apr 2021 05:14:47 GMT

    In 0be4b882/rtems:

    rtems: Generate Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
    Comment 89
    1. Sebastian Huber, Thu, 22 Apr 2021 05:14:50 GMT

    In e8be0047/rtems:

    rtems: Generate Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
    Comment 90
    1. Sebastian Huber, Thu, 22 Apr 2021 05:14:54 GMT

    In b229b4c/rtems:

    rtems: Generate Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
    Comment 91
    1. Sebastian Huber, Fri, 23 Apr 2021 06:32:43 GMT

    In 61cbbd2/rtems-docs:

    c-user: Generate rate-monotonic manager docs The documentation is a consolidation of the comments in Doxygen markup and the documentation sources in Sphinx markup. The documentation was transfered to interface specification items. The documentation source files were generated from the items by a script. Update #3993.
    Comment 92
    1. Sebastian Huber, Fri, 23 Apr 2021 06:32:45 GMT

    In 63a9e0c/rtems-docs:

    c-user: Generate message manager documentation The documentation is a consolidation of the comments in Doxygen markup and the documentation sources in Sphinx markup. The documentation was transfered to interface specification items. The documentation source files were generated from the items by a script. Update #3993.
    Comment 93
    1. Sebastian Huber, Fri, 23 Apr 2021 06:44:36 GMT

    In 73a0175/rtems:

    rtems: Generate Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
    Comment 94
    1. Sebastian Huber, Fri, 23 Apr 2021 06:44:40 GMT

    In de6e515/rtems:

    rtems: Generate Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
    Comment 95
    1. Sebastian Huber, Wed, 28 Apr 2021 07:02:58 GMT

    In 0b9e307/rtems:

    rtems: Generate Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
    Comment 96
    1. Sebastian Huber, Wed, 28 Apr 2021 07:03:03 GMT

    In b3d3186d/rtems:

    rtems: Generate Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
    Comment 97
    1. Sebastian Huber, Wed, 28 Apr 2021 07:03:07 GMT

    In a1679af3/rtems:

    rtems: Generate Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3899. Update #3993.
    Comment 98
    1. Sebastian Huber, Wed, 28 Apr 2021 07:04:10 GMT

    In f6b4337/rtems-docs:

    c-user: Generate interrupt manager documentation The documentation is a consolidation of the comments in Doxygen markup and the documentation sources in Sphinx markup. The documentation was transfered to interface specification items. The documentation source files were generated from the items by a script. Update #3993.
    Comment 99
    1. Sebastian Huber, Wed, 28 Apr 2021 07:04:13 GMT

    In 4a3259f/rtems-docs:

    c-user: Generate scheduling concepts documentation The documentation is a consolidation of the comments in Doxygen markup and the documentation sources in Sphinx markup. The documentation was transfered to interface specification items. The documentation source files were generated from the items by a script. Update #3993.
    Comment 100
    1. Sebastian Huber, Wed, 28 Apr 2021 07:04:19 GMT

    In 2ae3364/rtems-docs:

    c-user: Generate task manager documentation The documentation is a consolidation of the comments in Doxygen markup and the documentation sources in Sphinx markup. The documentation was transfered to interface specification items. The documentation source files were generated from the items by a script. Update #3993.
    Comment 101
    1. Sebastian Huber, Wed, 28 Apr 2021 07:04:21 GMT

    In 35cbb42/rtems-docs:

    c-user: Generate region manager documentation The documentation is a consolidation of the comments in Doxygen markup and the documentation sources in Sphinx markup. The documentation was transfered to interface specification items. The documentation source files were generated from the items by a script. Update #3993.
    Comment 102
    1. Sebastian Huber, Tue, 15 Jun 2021 05:47:59 GMT

    In c70715b/rtems-docs:

    c-user: Use a common phrase for pointer parameters Mention the type of the pointer in the parameter description. Use the more general term "object" instead of "variable". Update #3993.
    Comment 103
    1. Sebastian Huber, Tue, 15 Jun 2021 08:40:28 GMT

    In 6abdd89/rtems:

    Use a common phrase for pointer parameters Mention the type of the pointer in the parameter description. Use the more general term "object" instead of "variable". Update #3993.
    Comment 104
    1. Sebastian Huber, Tue, 27 Jul 2021 05:43:11 GMT

    In c4eafae2/rtems:

    rtems: Generate Use which just provides the data types and avoid a dependency on which contains the full chain implementation. Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Update #3269. Update #3899. Update #3993.
    Comment 105
    1. Sebastian Huber, Mon, 02 Aug 2021 05:15:51 GMT

    In d999f865/rtems:

    rtems: Generate Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Place the group into the I/O Manager group. Add all source files to the group. Update #3899. Update #3993. Update #4482.
    Comment 106
    1. Sebastian Huber, Wed, 26 Jan 2022 13:27:56 GMT
    2. status: changed from accepted to closed
    3. resolution: set to fixed

    Work is done.

    Comment 107
    1. Sebastian Huber, Wed, 26 Jan 2022 13:28:19 GMT
    2. keywords: qualification added
    Comment 108
    1. Sebastian Huber, Tue, 04 Oct 2022 08:39:36 GMT

    In cc43dc3e/rtems:

    rtems: Clarify application config info API Update #3993.

    3994 - Generate Doxygen markup for the application configuration options

    Link https://devel.rtems.org/ticket/3994
    Id 3994
    Reporter Sebastian Huber
    Created 1 June 2020 11:26:30
    Modified 23 June 2021 07:07:55
    Owner Sebastian Huber
    Type enhancement
    Component doc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    The application configuration options are now available as specification items. From these items, the documentation in the RTEMS Classic API Guide is generated. The same approach can be used to generate Doxygen markup.

    Comment 1
    1. Sebastian Huber, Fri, 07 Aug 2020 05:15:35 GMT

    In db22500/rtems-docs:

    c-user: Improve refs and formatting in appl config The formatting is generated through references within the specification. Update #3994.
    Comment 2
    1. Sebastian Huber, Fri, 07 Aug 2020 05:15:37 GMT

    In 63764a6/rtems-docs:

    c-user: Add automatically generated warning Update #3994.
    Comment 3
    1. Sebastian Huber, Fri, 07 Aug 2020 05:24:30 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In e812f81/rtems:

    Document application configuration options Add a new directory for Doxygen-specific documentation content. Add a Doxygen only header file containing documentation of the application configuration options. The header file is generated from specification items. Close #3994.
    Comment 4
    1. Sebastian Huber, Thu, 08 Oct 2020 05:40:41 GMT

    In e697baf/rtems:

    doxygen: Add "Generated from ..." comments Improve file header comment. Update #3994.
    Comment 5
    1. Sebastian Huber, Wed, 23 Jun 2021 07:07:55 GMT
    2. keywords: qualification added

    3996 - fenv support is missing on powerpc

    Link https://devel.rtems.org/ticket/3996
    Id 3996
    Reporter Sebastian Huber
    Created 5 June 2020 04:18:59
    Modified 29 November 2022 22:10:19
    Owner Joel Sherrill
    Type defect
    Component arch/powerpc
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The test program psxfenv01 fails on powerpc.

    Comment 1
    1. Chris Johns, Tue, 29 Nov 2022 22:10:19 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    Fixed in newlib in 2020.


    3997 - fenv support is missing on sparc

    Link https://devel.rtems.org/ticket/3997
    Id 3997
    Reporter Sebastian Huber
    Created 5 June 2020 04:20:16
    Modified 29 November 2022 22:10:47
    Owner Joel Sherrill
    Type defect
    Component arch/sparc
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The test program psxfenv01 fails on sparc.

    Comment 1
    1. Chris Johns, Tue, 29 Nov 2022 22:10:47 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    Fixed in newlib in 2020.


    3998 - fenv support is missing on arm

    Link https://devel.rtems.org/ticket/3998
    Id 3998
    Reporter Sebastian Huber
    Created 5 June 2020 04:20:45
    Modified 29 November 2022 22:11:08
    Owner Joel Sherrill
    Type defect
    Component arch/arm
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The test program psxfenv01 fails on arm.

    Comment 1
    1. Chris Johns, Tue, 29 Nov 2022 22:11:08 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    Fixed in newlib in 2020.


    4007 - Add rtems_message_queue_construct()

    Link https://devel.rtems.org/ticket/4007
    Id 4007
    Reporter Sebastian Huber
    Created 17 June 2020 08:08:44
    Modified 2 September 2021 06:00:40
    Owner Sebastian Huber
    Type enhancement
    Component rtems
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    In RTEMS 5 a lot of development was done to allow a static allocation of resources provided by RTEMS and avoid the use of a heap. Similar to #3959 a new directive to build Classic API message queues without using the workspace is proposed:

    /**
    * @brief The message queue configuration to construct a message queue.
    */
    typedef struct {
    /**
    * @brief The name of the message queue.
    */
    rtems_name name;
    /**
    * @brief The count of the provided buffers.
    *
    * This value defines the maximum number of pending messages.
    */
    size_t buffer_count;
    /**
    * @brief The size of the provided buffers in bytes.
    */
    size_t buffer_size;
    /**
    * @brief The array of count message buffers.
    *
    * Each buffer shall have the size of the buffer_size member. The maximum
    * message size is buffer_size minus sizeof( rtems_message_queue_buffer ).
    */
    rtems_message_queue_buffer *buffers;
    /**
    * @brief The attribute set of the message queue.
    */
    rtems_attribute attributes;
    } rtems_message_queue_config;
    /**
    * @brief Constructs a message queue according to the specified configuration.
    *
    * @param config The message queue configuration.
    * @param[out] id The message queue identifier of the new message queue.
    *
    * @retval RTEMS_SUCCESSFUL Successful operation.
    * @retval RTEMS_INVALID_ADDRESS The id parameter is @c NULL.
    * @retval RTEMS_INVALID_NAME The message queue name is invalid.
    * @retval RTEMS_TOO_MANY No message queue is available.
    */
    rtems_status_code rtems_message_queue_construct(
    const rtems_message_queue_config *config,
    rtems_id *id
    );
    Comment 1
    1. Sebastian Huber, Thu, 17 Sep 2020 16:18:59 GMT
    2. status: changed from assigned to accepted
    3. description: modified (diff)
    4. summary: changed from Add rtems_message_queue_build() to Add rtems_message_queue_construct()
    Comment 2
    1. Sebastian Huber, Thu, 17 Sep 2020 16:19:28 GMT
    2. description: modified (diff)
    Comment 3
    1. Sebastian Huber, Mon, 28 Sep 2020 05:17:56 GMT

    In 3c025576/rtems:

    score: Use RTEMS_ALIGN_UP() Update #4007.
    Comment 4
    1. Sebastian Huber, Mon, 28 Sep 2020 05:17:59 GMT

    In fe2cb7c4/rtems:

    score: Fix allocation size calculation The previous multiplication error check is broken on 64-bit machines. Use the recommended check from SEI CERT C Coding Standard, "INT30-C. Ensure that unsigned integer operations do not wrap". Make sure the message size computation does not overflow. Update #4007.
    Comment 5
    1. Sebastian Huber, Mon, 28 Sep 2020 05:18:03 GMT

    In 34dd90a5/rtems:

    score: Gather message queue control initialization Initialize the structure in a single code block after the error checks and calculations. Update #4007.
    Comment 6
    1. Sebastian Huber, Mon, 28 Sep 2020 05:18:06 GMT

    In 5bc7c37/rtems:

    score: Improve _CORE_message_queue_Initialize() Return a status code and differentiate between error conditions. Update #4007.
    Comment 7
    1. Sebastian Huber, Mon, 28 Sep 2020 05:18:09 GMT

    In 69b4fe59/rtems:

    score: Simplify CORE_message_queue_Buffer Merge CORE_message_queue_Buffer structure into CORE_message_queue_Buffer_control. Use a zero-length array for the actual message buffer. This reduces the structure size on all targets. Update #4007.
    Comment 8
    1. Sebastian Huber, Mon, 28 Sep 2020 05:18:13 GMT

    In 2c09f54f/rtems:

    score: Add Move the CORE_message_queue_Buffer definition to a separate header file to be able to use it independent of the remaining Message Queue Handler API. Change license to BSD-2-Clause according to file history. Update #3053. Update #4007.
    Comment 9
    1. Sebastian Huber, Mon, 28 Sep 2020 05:18:16 GMT

    In 24ea1ce/rtems:

    rtems: Remove Message_queue_Control::attribute_set Add Message_queue_Control::is_global if RTEMS_MULTIPROCESSING is defined. This reduces the Message_queue_Control size in standard RTEMS configurations. Update #4007.
    Comment 10
    1. Sebastian Huber, Mon, 28 Sep 2020 05:18:20 GMT

    In 4a4f41e/rtems:

    rtems: Add rtems_message_queue_construct() In contrast to message queues created by rtems_message_queue_create(), the message queues constructed by this directive use a user-provided message buffer storage area. Add RTEMS_MESSAGE_QUEUE_BUFFER() to define a message buffer type for message buffer storage areas. Update #4007.
    Comment 11
    1. Sebastian Huber, Mon, 28 Sep 2020 05:18:23 GMT

    In febc6604/rtems:

    validation: Test rtems_message_queue_construct() Update #4007.
    Comment 12
    1. Sebastian Huber, Fri, 23 Apr 2021 06:25:29 GMT

    In 03747b50/rtems:

    rtems: Check for NULL config in msgq construct Since there are already excessive NULL pointer checks in the Classic API, do this also in rtems_message_queue_construct(). Update #4007.
    Comment 13
    1. Sebastian Huber, Tue, 11 May 2021 05:49:48 GMT

    In ab5aeb1/rtems:

    score: Rename _Stack_Free_nothing() Rename _Stack_Free_nothing() in _Objects_Free_nothing() to make it reusable for the message queue buffers. Update #4007.
    Comment 14
    1. Sebastian Huber, Tue, 11 May 2021 05:49:51 GMT

    In c268766/rtems:

    rtems: Use _Objects_Free_nothing() for msg queues Use _Objects_Free_nothing() for rtems_message_queue_construct() to avoid unreachable code in _CORE_message_queue_Close() in case only user-provided message buffers are used. Update #4007.
    Comment 15
    1. Sebastian Huber, Fri, 18 Jun 2021 09:24:45 GMT
    2. keywords: qualification added
    Comment 16
    1. Sebastian Huber, Thu, 02 Sep 2021 06:00:40 GMT
    2. status: changed from accepted to closed
    3. resolution: set to fixed

    The new directive was documented, implemented, and tested:

    ​https://docs.rtems.org/branches/master/c-user/message/directives.html#rtems-message-queue-construct


    4018 - libcpusupport: Architecture defines are present outside CPU port

    Link https://devel.rtems.org/ticket/4018
    Id 4018
    Reporter Kinsey Moore
    Created 29 June 2020 15:29:40
    Modified 30 June 2020 15:39:32
    Owner Kinsey Moore <kinsey.moore@…>
    Type defect
    Component admin
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The handler code for global constructors (threadhandler.c) and destructors (newlibc_exit.c) uses compiler-provided architecture defines which should be limited to the CPU port as they are in other locations.

    Comment 1
    1. Kinsey Moore, Tue, 30 Jun 2020 07:46:41 GMT
    2. owner: set to Kinsey Moore <kinsey.moore@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 48dd7b8c/rtems:

    score: Add CPU_USE_LIBC_INIT_FINI_ARRAY This introduces the CPU_USE_LIBC_INIT_FINI_ARRAY define for use by CPU ports to determine which global constructor and destructor methods are used instead of placing architecture defines where they shouldn't be. Close #4018
    Comment 2
    1. Joel Sherrill, Tue, 30 Jun 2020 13:43:29 GMT

    Should this go on 5.x as well as 6?

    Comment 3
    1. Kinsey Moore, Tue, 30 Jun 2020 14:32:47 GMT

    It could, but it doesn't actually cause a bug. It's just a style deficiency making new ports harder.

    Comment 4
    1. Sebastian Huber, Tue, 30 Jun 2020 15:39:32 GMT

    In 3c78e93/rtems:

    score: Clarify CPU_USE_LIBC_INIT_FINI_ARRAY option Update #4018.

    4020 - Change all version numbers to RTEMS 6 on the master branches

    Link https://devel.rtems.org/ticket/4020
    Id 4020
    Reporter Sebastian Huber
    Created 30 June 2020 07:12:02
    Modified 26 January 2022 13:42:45
    Owner Sebastian Huber
    Type task
    Component build
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Comment 1
    1. Sebastian Huber, Tue, 30 Jun 2020 07:14:55 GMT

    In b89e62f/rtems-source-builder:

    Change version to RTEMS 6 Update #4020.
    Comment 2
    1. Sebastian Huber, Tue, 30 Jun 2020 07:20:48 GMT

    In 37c36de/rtems:

    Change version to RTEMS 6 Update #4020.
    Comment 3
    1. Sebastian Huber, Tue, 30 Jun 2020 07:32:05 GMT

    In 351bb7e/rtems-tools:

    Change version to RTEMS 6 Update #4020.
    Comment 4
    1. Sebastian Huber, Tue, 30 Jun 2020 07:40:30 GMT

    In 16f8cc4/rtems-docs:

    Change version to RTEMS 6 Update #4020.
    Comment 5
    1. Sebastian Huber, Mon, 10 Aug 2020 09:49:47 GMT

    In 6626ed50/rtems:

    Doxyfile: Change version to 6.0.0 Update #4020.
    Comment 6
    1. Sebastian Huber, Wed, 26 Jan 2022 13:42:45 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    This is probably done.


    4025 - NFS Client is broken on 64-bit targets

    Link https://devel.rtems.org/ticket/4025
    Id 4025
    Reporter Sebastian Huber
    Created 8 July 2020 11:35:07
    Modified 26 January 2022 13:44:40
    Owner Sebastian Huber
    Type defect
    Component network/libbsd
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Cloned from #4024.

    Comment 1
    1. Sebastian Huber, Wed, 26 Jan 2022 13:44:40 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    This was fixed by [03d7f76a810fe13c750afc3324f615b25fa7006b/rtems-libbsd].


    4029 - i386: SMP-System hangs with non-consecutive APIC IDs

    Link https://devel.rtems.org/ticket/4029
    Id 4029
    Reporter Jan Sommer
    Created 15 July 2020 15:48:17
    Modified 16 July 2020 13:01:33
    Owner Jan Sommer <jan.sommer@…>
    Type defect
    Component arch/i386
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    If a processor enumerates its cores non-consecutively (e.g. 0,2,4,8 for a tested Intel Atom) the target cpu for IPIs is mapped wrongly.

    Comment 1
    1. Jan Sommer, Wed, 15 Jul 2020 15:48:35 GMT
    2. component: changed from admin to arch/i386
    Comment 2
    1. Jan Sommer, Thu, 16 Jul 2020 13:01:33 GMT
    2. owner: set to Jan Sommer <jan.sommer@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 9cb107c9/rtems:

    bsps/pc386: Fix IPI for non-consecutive APICIDs properly use the cpu <-> apic maps for IPIs Closes #4029.

    4031 - i386: ISR can overwrite its own stack during system initialization (cloned)

    Link https://devel.rtems.org/ticket/4031
    Id 4031
    Reporter Jan Sommer
    Created 22 July 2020 12:38:21
    Modified 29 July 2020 09:39:17
    Owner Jan Sommer <jan.sommer@…>
    Type defect
    Component arch/i386
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity major
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Cloned from #4030:

    During testing the rtems-libbsd examples, we experienced GP exceptions from within the ISR from time to time during initalization.

    When the init task is restored for the first time and the a pending interrupt is available, an ISR could overwrite its own return address if it is spawned between restoring the eflags register and restoring the esp register.

    Comment 1
    1. Jan Sommer, Wed, 29 Jul 2020 09:39:17 GMT
    2. owner: set to Jan Sommer <jan.sommer@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 21c7e3a/rtems:

    i386: Fix possible race condition on first context restore Make sure that the esp is restored before the eflags register. When the init task is initially restored, system interrupts are activated when the eflags register is loaded. If the esp register still points to an address in the interrupt stack area (from early system initlization) the ISR might overwrite its own stack. Closes #4031

    4032 - Make deferred free in malloc() support optional

    Link https://devel.rtems.org/ticket/4032
    Id 4032
    Reporter Sebastian Huber
    Created 23 July 2020 11:54:48
    Modified 23 June 2021 07:07:55
    Owner Sebastian Huber
    Type enhancement
    Component lib
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    The free() implementation in RTEMS supports that allocated memory is freed in interrupt context. Since the heap is protected by a mutex, the frees issued in interrupt context cannot immediately be freed to the heap, instead they are placed on a deferred free list. This list is emptied by the core allocation function rtems_heap_allocate_aligned_with_boundary(). This adds a dependency to free() in rtems_heap_allocate_aligned_with_boundary(). In order to better support applications which only allocate memory an never free it, this dependency should be avoided. This can be done with a weak default implementation of _Malloc_Process_deferred_frees(). In the free() module a strong implementation can be provided.

    Comment 1
    1. Sebastian Huber, Fri, 24 Jul 2020 05:14:22 GMT

    In 6f94a83/rtems:

    score: Add RTEMS_WEAK Update #4032.
    Comment 2
    1. Sebastian Huber, Fri, 24 Jul 2020 05:14:26 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 7746b0de/rtems:

    malloc: Make deferred free support optional Only include the deferred free support if free() is actually used by the application. The free() implementation in RTEMS supports that allocated memory is freed in interrupt context. Since the heap is protected by a mutex, the frees issued in interrupt context cannot immediately be freed to the heap, instead they are placed on a deferred free list. This list is emptied by the core allocation function rtems_heap_allocate_aligned_with_boundary(). This adds a dependency to free() in rtems_heap_allocate_aligned_with_boundary(). In order to better support applications which only allocate memory and never free it, this dependency should be avoided. Provide a weak default implementation of _Malloc_Process_deferred_frees() for rtems_heap_allocate_aligned_with_boundary(). In the free() module provide the strong implementation. Close #4032.
    Comment 3
    1. Sebastian Huber, Fri, 24 Jul 2020 05:32:01 GMT

    In 4444094d/rtems:

    spmisc01: Include missing header file Update #4032.
    Comment 4
    1. Sebastian Huber, Wed, 23 Jun 2021 07:07:55 GMT
    2. keywords: qualification added

    4034 - Add rtems_interrupt_server_create() and rtems_interrupt_server_destroy() (cloned)

    Link https://devel.rtems.org/ticket/4034
    Id 4034
    Reporter Sebastian Huber
    Created 31 July 2020 06:54:01
    Modified 14 September 2020 07:00:08
    Owner Sebastian Huber
    Type enhancement
    Component lib
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Cloned from #4033. In addition to the implementation add also unit tests.

    Comment 1
    1. Sebastian Huber, Sat, 01 Aug 2020 09:56:10 GMT
    2. summary: changed from Add rtems_interrupt_server_build() and rtems_interrupt_server_destroy() (cloned) to Add rtems_interrupt_server_create() and rtems_interrupt_server_destroy() (cloned)
    Comment 2
    1. Sebastian Huber, Mon, 03 Aug 2020 06:52:57 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In c60942ea/rtems:

    rtems: Add rtems_interrupt_server_create() Add rtems_interrupt_server_destroy(). Before this patch, the only way to create interrupt servers was rtems_interrupt_server_initialize(). This function creates the default interrupt server and in SMP configurations additional interrupt servers for the additional processors. The interrupt server is heavily used by libbsd. This includes the epoch based reclamation which performs time consuming resource and memory deallocation work. This does not work well with time critical services, for example an UART over SPI or I2C. One approach to address this problem is to allow the application to create custom interrupt servers with the right priority and task properties. The interrupt server API accounted for this, however, it was not implemented before this patch. Close #4034.
    Comment 3
    1. Sebastian Huber, Mon, 03 Aug 2020 06:55:28 GMT
    2. status: changed from closed to reopened
    3. resolution: fixed deleted

    Tests are pending.

    Comment 4
    1. Sebastian Huber, Mon, 14 Sep 2020 07:00:08 GMT
    2. status: changed from reopened to closed
    3. resolution: set to fixed

    In 46477898/rtems:

    irqs01/smpirqs01: New tests Close #4034.

    4036 - Track dependency command for the RSB

    Link https://devel.rtems.org/ticket/4036
    Id 4036
    Reporter Chris Johns
    Created 1 August 2020 00:01:59
    Modified 12 August 2020 01:11:35
    Owner Chris Johns
    Type enhancement
    Component tool/rsb
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Add a command to track dependencies in the RSB. Scan all the bset files and see what they include. Build a list of dependencies and also a list of those configs that are not referenced. The configs not references can be removed.

    Errors in build sets can result in an invalid list so the scan needs to be clean. This is difficult when some build sets like rtems-defaults.bset are designed to be included and not used from the command line. As a result it generates an error. A list of these could be maintained or a tag added to the bset file to indicate it is not a top level build set file.

    Removal of unreferenced configs can occur in the RBS because we use a branch model for releases.

    Comment 1
    1. Joel Sherrill, Sat, 01 Aug 2020 00:19:53 GMT

    Is this going to result in a report that shows bsets and which source/patches they need?

    Is it going to be something like this?

    bset another bset source package diff1

    Or is the goal to look at a set of bsets and see what isn't needed?

    Comment 2
    1. Chris Johns, Sat, 01 Aug 2020 02:51:05 GMT

    It could and yes the goal was to remove the config files not referenced. Up to now I was only looking at the list but the tree could be captured. This is nice addition.

    A bset that is top level is difficult to remove because we do not know if it is being used.

    Comment 3
    1. Chris Johns, Thu, 06 Aug 2020 02:51:46 GMT
    2. owner: set to Chris Johns
    3. status: changed from new to assigned

    Joel, is this what you wanted?

    Include Tree(s):
     rtems/config/5/rtems-arm.bset
      rtems/config/5/rtems-default.bset
       bare/config/devel/expat-2.1.0-1.cfg
        source-builder/config/base.cfg
        source-builder/config/expat-2-1.cfg
       rtems/config/5/rtems-autotools.bset
        rtems/config/5/rtems-autotools-base.bset
         rtems/config/rtems-base.bset
          rtems/config/rtems-urls.bset
          rtems/config/rtems-version.bset
         rtems/config/tools/rtems-autoconf-2.69-1.cfg
          bare/config/devel/autoconf-2.69-1.cfg
           source-builder/config/autoconf-2-1.cfg
           source-builder/config/base.cfg
          source-builder/config/base.cfg
          source-builder/config/checks.cfg
          source-builder/config/versions.cfg
         rtems/config/tools/rtems-automake-1.12.6-1.cfg
          bare/config/devel/automake-1.12.6-1.cfg
           source-builder/config/automake-1-1.cfg
           source-builder/config/base.cfg
          source-builder/config/base.cfg
          source-builder/config/checks.cfg
          source-builder/config/versions.cfg
        rtems/config/5/rtems-autotools-internal.bset
         rtems/config/5/rtems-autotools-base.bset
          rtems/config/rtems-base.bset
           rtems/config/rtems-urls.bset
           rtems/config/rtems-version.bset
          rtems/config/tools/rtems-autoconf-2.69-1.cfg
           bare/config/devel/autoconf-2.69-1.cfg
            source-builder/config/autoconf-2-1.cfg
            source-builder/config/base.cfg
           source-builder/config/base.cfg
           source-builder/config/checks.cfg
           source-builder/config/versions.cfg
          rtems/config/tools/rtems-automake-1.12.6-1.cfg
           bare/config/devel/automake-1.12.6-1.cfg
            source-builder/config/automake-1-1.cfg
            source-builder/config/base.cfg
           source-builder/config/base.cfg
           source-builder/config/checks.cfg
           source-builder/config/versions.cfg
       rtems/config/rtems-base.bset
        rtems/config/rtems-urls.bset
        rtems/config/rtems-version.bset
       rtems/config/tools/rtems-binutils-2.34.cfg
        source-builder/config/base.cfg
        source-builder/config/binutils-2-1.cfg
         source-builder/config/checks.cfg
        source-builder/config/checks.cfg
       rtems/config/tools/rtems-gcc-7.5.0-newlib-7947581.cfg
        source-builder/config/base.cfg
        source-builder/config/checks.cfg
        source-builder/config/gcc-7.2-1.cfg
         source-builder/config/gcc-common-1.cfg
          source-builder/config/checks.cfg
       rtems/config/tools/rtems-gdb-9.1-1.cfg
        source-builder/config/base.cfg
        source-builder/config/checks.cfg
        source-builder/config/gdb-common-1.cfg
         source-builder/config/checks.cfg
       rtems/config/tools/rtems-tools-5-1.cfg
        rtems/config/tools/rtems-tools-common-1.cfg 
    Comment 4
    1. Chris Johns, Mon, 10 Aug 2020 23:03:11 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 1241819/rtems-source-builder:

    sb/track: Add a command to track build sets. Process a build set for a range of hosts and output a dependency tree, the used build set and configuration files. Output the configuration files that are no referenced Closes #4036
    Comment 5
    1. Chris Johns, Wed, 12 Aug 2020 01:11:35 GMT

    In 967999b/rtems-docs:

    user: Add the RSB sb-track command Updates #4036

    4037 - Python script distribution standardisation

    Link https://devel.rtems.org/ticket/4037
    Id 4037
    Reporter Chris Johns
    Created 1 August 2020 00:16:32
    Modified 29 November 2022 23:00:51
    Owner Chris Johns
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The RSB and Tools wrap python scripts in a shell script based wrapper that detects the installed version and uses it. Other python scripts in RTEMS do not. I would like to have a consistent model for all scripts.

    ​ PEP0394 discusses the issues and says a distro can decide not to provide a python command by default. It also says a virtualenv can be used to provide a consistent default environment.

    Do we assume #! /usr/bin/env python will always work in our script and we make sure we are python2 and python3 clean for user installed commands?

    If a user does not have a python command installed by default do we document how to install one or do we document using a virtualenv?

    A simple shebang is cleaner for us to maintain however it added an extra dependency we need to document.

    Note, development script and tools should follow the same model we decide on however they only need to support python3.

    Comment 1
    1. Chris Johns, Sat, 01 Aug 2020 00:17:16 GMT
    2. summary: changed from Python script distrubution standardisation to Python script distribution standardisation
    Comment 2
    1. Christian Mauderer, Sun, 02 Aug 2020 09:00:11 GMT
    2. One important point: : We start to use waf everywhere. waf starts with a #!/usr/bin/env python. So it assumes that python exists. That means as soon as a user wants to build something with waf he needs a python. I don't think that we want to provide a wrapper for waf?

    I'm currently a bit undecided. Both methods have advantages and disadvantages.

    Points that could be a reason _not_ to use a wrapper:

    Although you did a great job making it as simple as possible: A wrapper adds complexity. How many edge cases are missed in the wrappers? For example: If you try to call one of the source builder commands using a soft link in another directory, the $(dirname $0) of the wrapper will fail. Every supported system has to provide a /bin/sh and a dirname command. Can we be sure that's the case? What about Windows? If we enforce the wrapper we will always need a mingw or msys for Windows. If we remove it it might be possible to build RTEMS with only a python installation somewhen in the future (although you still need a cross-compiled gcc or llvm). Do we really want to support multiple python versions on the long term? It might start to get really complicated to test all relevant configurations. By the way: Does buildbot use python2, python3 or both?

    Points that could be a good reason for using a wrapper:

    Do all our scripts work with python3 already? The wrapper of the source builder currently defaults to python2. So most likely it is nearly untested with python3. I think I had trouble building rtems-docs with python3 in the past (and I always have been too lazy to fix them - sorry). That means that currently _not_ everything is ready to work with all python versions. A wrapper could select the best one. But that also means we basically depend on python2 _and_ python3 to be installed. We will have a really simple possibility to switch to python4 when it comes out. On systems without a python it will definitively make it simpler.

    Background questions:

    Do we know of distributions that don't provide a python (without version number) command?
    Comment 3
    1. Sebastian Huber, Mon, 03 Aug 2020 07:16:27 GMT

    openSUSE 15.2 installs Python 3 by default and Python 2 is __not__ available by default. There is no "python" command by default, only "python3".

    I think we should ask the waf community how they want to deal with this.

    About a year ago I started a discussion about "Which Python version for new tool code?". It seems RHEL 7 was the only relevant distribution not providing a Python 3, but this changed during the discussion:

    ​https://lists.rtems.org/pipermail/devel/2019-August/055010.html

    CentOS 7.7 ships it also. Is there anything left which doesn't ship Python 3? If not, then why don't we change the shebang to #!/usr/bin/env python3?

    Comment 4
    1. Chris Johns, Tue, 04 Aug 2020 07:37:25 GMT

    We need to support long life versions of host systems and I have understood this to mean python2. As a result we need to make sure our user facing tools run on Python 2 and 3 for a while yet. This ticket is about how we handle this and not that choice.

    The python command may not install by default but is there a package that does provide it?

    The waf point is a valid one. We need a python command while it requires it. If that changes then we can consider what happens then. If you wish to ask please do so.

    Comment 5
    1. Christian Mauderer, Tue, 04 Aug 2020 09:11:31 GMT

    Seems that I misinterpreted the intention of the ticket. You asked:

    Do we assume #! /usr/bin/env python will always work in our script and we make sure we are python2 and python3 clean for user installed commands?

    If a user does not have a python command installed by default do we document how to install one or do we document using a virtualenv?

    A simple shebang is cleaner for us to maintain however it added an extra dependency we need to document.

    From my point of view: As long as waf needs python, we can assume it for our scripts too. So we have to document that anyway as soon as we switch to waf for all core repos.

    From what you wrote we have to make sure that our scripts work with python2 and python3 anyway. I would reject a python2 only version with it beeing no maintained anymore and slowly removed from distributions and you don't like a python3 only version.

    The alternative would be to add a shell wrapper around waf too. But do we really want to maintain that with all edge cases? And again: That adds a fixed dependency to a shell. Without a wrapper we might be able to have packages for Windows that only contain a binary toolchain and a python installation. That could be useful for big teams that want to build the toolchain only on one host and distribute it in binary form to all developers.

    Comment 6
    1. Chris Johns, Wed, 05 Aug 2020 00:32:58 GMT

    I tend to agree. I would like to first know if CentOS7 and openSUSE 15.2 to have a package to install python?

    Comment 7
    1. Sebastian Huber, Wed, 05 Aug 2020 04:49:05 GMT

    On the waf issue tracker I found this:

    ​https://gitlab.com/ita1024/waf/-/issues/2259

    The suggested solution is to modify the shebang by hand for waf 2.*.

    On openSUSE 15.2 you have to install Python 2 to get a python command or add the symlink yourself as root.

    My preferred solution would be to change all shebangs to #!/usr/bin/env python3 and require all users of RTEMS to install Python 3.

    Comment 8
    1. Chris Johns, Wed, 05 Aug 2020 08:23:09 GMT

    I have re-read PEP 394 and I am starting to think we should document and provide support for our users to run virtual environments. This is a recommendation in the PEP and I think it makes sense. As stated previously we need to support Python2 and Python3 for a period of time. Users restricted to Python2 should have a python command or they should have a virtualenv package for Python2. Python3 users should be on python3.6 or later and that has the venv module which gives them a python command.

    I feel hard coding the version of python into the shebang restricts us and only creates further issues. Getting our users educated to use a virtual environment will pay off in the long term.

    Comment 9
    1. Sebastian Huber, Wed, 05 Aug 2020 08:30:03 GMT

    I am not against using virtual environments, however, we should really evaluate if we want to support Python 2 in RTEMS 6. Maybe we should ask on the users mailing list if there are still host computer systems in use without a Python 3 support.

    Comment 10
    1. Chris Johns, Thu, 06 Aug 2020 00:20:26 GMT

    A primary goal of RTEMS is to provide long life support for hardware and hosts.

    I see the major issue with Python2 and Python3 as the shebang and python support rather than the coding. There are some basic things we need to do to support both but it is not a big deal. At this point in time I do not support just Python3.

    As a result I prefer we focus on how we manage this situation. I believe virtual environments provide this. I see forcing the shebang to python3 as problematic long term.

    Comment 11
    1. Sebastian Huber, Thu, 06 Aug 2020 04:52:12 GMT

    I still think we should try to learn a bit more about which hosts are in use by the RTEMS users. If there are still users around which are stuck with Python 2, then fine, otherwise we have one problem less.

    How do you want to use the virtual environments? How is it set up? I have no experience in packaging and deploying Python projects. For me it would be a bit inconvenient if I have to activate a virtual environment just to run ./waf to build RTEMS for example.

    Comment 12
    1. Joel Sherrill, Thu, 06 Aug 2020 14:06:17 GMT

    Can we write a simple program as an alternative to env which answers the question of "which Python" in a way we want? rtems-which-python python[23] and let it answer the question?

    I am opposed to forcing use of virtualenv but only encouraging it. It is a nice feature and I am using it but I only use it because the host doesn't have everything in a complete (Tex packaging) or current way. If the host is sufficient, it shouldn't be needed.

    CentOS 7 does have a Python 3 but you have to install a "software collection" (​https://developers.redhat.com/products/softwarecollections/overview for a description and list). This is the RedHat? way of adding newer technologies as an option. This is what I have been doing on CentOS 7 combined with a virtualenv.

    scl enable rh-python36 bash 

    I have been doing the Python 3 Software Collection plus a virtualenv for Sphinx to build the RTEMS documentation.

    Comment 13
    1. Christian Mauderer, Thu, 06 Aug 2020 14:12:46 GMT

    CentOS 7 does have a Python 3 but you have to install a "software collection" (​​https://developers.redhat.com/products/softwarecollections/overview for a description and list). This is the RedHat?? way of adding newer technologies as an option.

    That's a bit odd. There is a python3 in the "os" repo of CentOS 7: ​http://mirror.centos.org/centos/7/os/x86_64/Packages/. That's the same repo where the kernel is (or at least a kernel). Is it possible that they added it?

    Comment 14
    1. Chris Johns, Thu, 06 Aug 2020 23:44:44 GMT

    Using a virtual env, selecting an OS or a specific distribution of an OS, using python3 waf or adding a symlink yourself are all user choices. No one is forcing anyone to select any specific option and in fact I am concern we limit the choices in what we do. We also need to consider users may have other Python tools and commands and we need to make sure users can still run those tools.

    The proposal I am putting forward is for user facing tools and scripts only and it is to shebang python only and we document a few of the approaches so it becomes a user choice. If you want to use CentOS with Python2 and python that is fine. If you want to install Python3 on CentOS that is no problem. If you use a bleeding edge Linux distro with a progressive set of packages and it only comes with Python3 that is also fine.

    What I would like to avoid is us selecting a specific case and mandating it. This means we cannot force the shebang to python3 and we cannot explicitly exploit something in a virtual env.

    Creating a specific env for us does not help other tools like waf.

    Comment 15
    1. Christian Mauderer, Fri, 07 Aug 2020 06:31:13 GMT

    Maybe let me summarize a bit:

    No one really fought for keeping the wrappers. Instead we should start documenting how to set up a good environment (either via virtualenv or installing directly on host systems). For our tools we should select a shebang that is used in all user facing tools. We have at least waf which uses just python in the shebang. So regardless what we chose: Our environment needs a python command as long as waf uses it. There is no consensus about which python version we should use for user facing tools. Maybe we should move that discussion to the mailing list like suggested multiple times?

    I think the first three points answer the original question of the ticket? Did I miss something from the discussion?

    The last point is definitively a controversial one. There are good reasons for both directions. But again: Maybe that should be discussed with a broader audience?

    Comment 16
    1. Chris Johns, Mon, 10 Aug 2020 06:06:10 GMT

    Replying to Christian Mauderer:

    I think the first three points answer the original question of the ticket? Did I miss something from the discussion?

    I agree and no I do not think you have.

    The last point is definitively a controversial one. There are good reasons for both directions. But again: Maybe that should be discussed with a broader audience?

    I think there will be some push back to dropping Python2 right now and this will fade as time goes on.

    Comment 17
    1. Christian Mauderer, Mon, 10 Aug 2020 06:23:04 GMT

    The last point is definitively a controversial one. There are good reasons for both directions. But again: Maybe that should be discussed with a broader audience?

    I think there will be some push back to dropping Python2 right now and this will fade as time goes on.

    There would be some advantages too. Maybe we should discuss an indicator that it is time to drop the python2 support (for example: as soon as waf does; or as soon as CentOS doesn't installs it by default; or in 1 year; or ...) so that there is a clear plan and it isn't discussed again and again every few months. But like you said: That's not the topic of this ticket and I think it would be better to discuss this on the mailing list.

    Comment 18
    1. Chris Johns, Mon, 10 Aug 2020 06:50:14 GMT

    Replying to Christian Mauderer:

    The last point is definitively a controversial one. There are good reasons for both directions. But again: Maybe that should be discussed with a broader audience?

    I think there will be some push back to dropping Python2 right now and this will fade as time goes on.

    There would be some advantages too. Maybe we should discuss an indicator that it is time to drop the python2 support (for example: as soon as waf does; or as soon as CentOS doesn't installs it by default; or in 1 year; or ...) so that there is a clear plan and it isn't discussed again and again every few months. But like you said: That's not the topic of this ticket and I think it would be better to discuss this on the mailing list.

    I think the new build system and the qual project need to be done and we have releases with them. I think at the core of this issue is releases with python 2 and 3 and once we know how they are traveling it will become apparent what we can do.

    I will remove the script support in the RSB and close this ticket when it is merged.

    Comment 19
    1. Chris Johns, Wed, 12 Aug 2020 01:11:32 GMT

    In b71f7f69/rtems-docs:

    user, README: Add Python script host set up information Add Python3 and venv to the README Add a section on how to set up a host if the python command is not available. Update #4037
    Comment 20
    1. Chris Johns, Wed, 12 Aug 2020 03:20:12 GMT
    2. owner: set to Chris Johns
    3. status: changed from new to assigned
    4. component: changed from admin to tool
    Comment 21
    1. Chris Johns, Tue, 25 Aug 2020 23:59:31 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 650c6f9/rtems-source-builder:

    sb: Use shebang env python Closes #4037
    Comment 22
    1. Chris Johns, Fri, 28 Aug 2020 00:13:54 GMT
    2. status: changed from closed to reopened
    3. resolution: fixed deleted

    The rtems-tools.git repo needs to be changed to a shebang env python.

    Comment 23
    1. Chris Johns, Fri, 28 Aug 2020 01:48:45 GMT

    In c51f634/rtems-source-builder:

    sb: Fix the imports on Python2 Updates #4037
    Comment 24
    1. Chris Johns, Tue, 29 Nov 2022 23:00:51 GMT
    2. status: changed from reopened to closed
    3. resolution: set to fixed

    The user of a virtualenv is to be used to manage various versions of Python.


    4039 - arm/atsam/SC16IS752: Make interrupt server configurable (cloned)

    Link https://devel.rtems.org/ticket/4039
    Id 4039
    Reporter Sebastian Huber
    Created 3 August 2020 07:45:54
    Modified 5 August 2020 05:01:10
    Owner Sebastian Huber
    Type enhancement
    Component arch/arm
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Cloned from #4038.

    Comment 1
    1. Sebastian Huber, Wed, 05 Aug 2020 05:01:10 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 1b421585/rtems:

    arm/atsam: Make interrupt server configurable The external UART over SPI device SC16IS752 uses the interrupt server for interrupt processing. The interrupt server is also heavily used by libbsd. The interrupt processing for the SC16IS752 is time critical and doesn't work if network traffic is processed at the same priority. With #4033 custom interrupt servers are available. Change atsam_sc16is752_spi_create() to support user-defined interrupt servers. Introduced atsam_sc16is752_spi_config to cut down the argument count of this function. Close #4039.

    4040 - coverhd.h remnants left to remove

    Link https://devel.rtems.org/ticket/4040
    Id 4040
    Reporter Joel Sherrill
    Created 3 August 2020 19:00:38
    Modified 11 September 2020 13:54:33
    Owner joel@…
    Type defect
    Component test
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    coverhd.h has been removed but there are as least two remnants to address:

    • tmoverhd is not needed and still is present.
    • (done) m68k/mcf52235/README references coverhd.h
    $ grep -r coverhd ..
    ../rtems/bsps/m68k/mcf52235/README:*) Update the coverhd.h (calling overheads) page 21 of the BSP guide
    ../rtems/bsps/m68k/mcf5225x/README:*) Update the coverhd.h (calling overheads) page 21 of the BSP guide
    Comment 1
    1. Joel Sherrill, Thu, 10 Sep 2020 16:42:28 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed

    In e563e61/rtems:

    Remove remaining references to coverhd.h Closes #4040.
    Comment 2
    1. Joel Sherrill, Thu, 10 Sep 2020 16:43:24 GMT
    2. status: changed from closed to reopened
    3. resolution: fixed deleted
    4. description: modified (diff)
    Comment 3
    1. Joel Sherrill, Fri, 11 Sep 2020 13:54:33 GMT
    2. status: changed from reopened to closed
    3. resolution: set to fixed

    In 5959b1e/rtems:

    Remove tmoverhd which existed to produce the obsolete coverhd.h Closes #4040.

    4043 - Update software eng manual to rtems-central

    Link https://devel.rtems.org/ticket/4043
    Id 4043
    Reporter Chris Johns
    Created 5 August 2020 00:25:24
    Modified 7 August 2020 04:43:48
    Owner Sebastian Huber
    Type defect
    Component doc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    ​https://docs.rtems.org/branches/master/eng/req/howto.html

    Update to rtems-central

    Comment 1
    1. Sebastian Huber, Wed, 05 Aug 2020 04:38:33 GMT
    2. owner: set to Sebastian Huber
    3. status: changed from new to assigned
    Comment 2
    1. Sebastian Huber, Fri, 07 Aug 2020 04:43:48 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In e2abac7/rtems-docs:

    eng: Refer to the rtems-central repository Close #4043.

    4044 - Add RSB Track command

    Link https://devel.rtems.org/ticket/4044
    Id 4044
    Reporter Chris Johns
    Created 10 August 2020 05:45:40
    Modified 10 August 2020 06:16:48
    Owner Chris Johns
    Type defect
    Component tool/rsb
    Status closed
    Resolution duplicate
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Add a comment to track the RSB build set and configuration files.

    Comment 1
    1. Chris Johns, Mon, 10 Aug 2020 06:16:48 GMT
    2. status: changed from assigned to closed
    3. resolution: set to duplicate

    Duplicate of #4036.


    4045 - Remove RSB sb-builder command

    Link https://devel.rtems.org/ticket/4045
    Id 4045
    Reporter Chris Johns
    Created 10 August 2020 05:50:46
    Modified 12 August 2020 01:11:27
    Owner Chris Johns
    Type defect
    Component tool/rsb
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    This command is now always wrapped bu the set builder. There is no need to use the command line with configuration files.

    Comment 1
    1. Chris Johns, Mon, 10 Aug 2020 23:03:14 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 481bbd1/rtems-source-builder:

    sb/builder: Remove sb-builder command Closes #4045
    Comment 2
    1. Chris Johns, Wed, 12 Aug 2020 01:11:27 GMT

    In 089f619/rtems-docs:

    user: Remove RSB sb-builder command Updates #4045

    4046 - Remove RSB sb-bootstrap command

    Link https://devel.rtems.org/ticket/4046
    Id 4046
    Reporter Chris Johns
    Created 10 August 2020 05:52:21
    Modified 12 August 2020 01:11:29
    Owner Chris Johns
    Type defect
    Component tool/rsb
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Bootstrapping is going away with the new build system and until then the command in rtems.git should be used.

    Comment 1
    1. Chris Johns, Mon, 10 Aug 2020 23:03:16 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In a863b15/rtems-source-builder:

    sb/bootstrap: Remove the sb-bootstrap command Closes #4046
    Comment 2
    1. Chris Johns, Wed, 12 Aug 2020 01:11:29 GMT

    In 441d2e1/rtems-docs:

    user, eclipse: Remove RSB sb-bootstrap command Update #4046

    4048 - Move RTEMS 5 BSP and package build sets and configs to RTEMS 6

    Link https://devel.rtems.org/ticket/4048
    Id 4048
    Reporter Chris Johns
    Created 12 August 2020 06:58:50
    Modified 29 November 2022 22:17:01
    Owner Chris Johns
    Type task
    Component tool/rsb
    Status closed
    Resolution wontfix
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Move the BSP build sets with the related packages to RTEMS 6. Update the kernel and libbsd to point to RTEMS 6 commits.

    Drop the tier build sets as these are not being used. They can be brought back if we need them.

    Comment 1
    1. Chris Johns, Sat, 15 Aug 2020 00:24:27 GMT

    In 40af487/rtems-source-builder:

    Move 5 build sets to 6 Move 5/bsps/* to bsps/* Update package build references from 5 to 6 Remove 5 build sets. Update #4048
    Comment 2
    1. Chris Johns, Tue, 01 Sep 2020 01:46:06 GMT

    In 5528b17/rtems-docs:

    user: Change the BSP build set path Updates #4048
    Comment 3
    1. Chris Johns, Tue, 29 Nov 2022 22:17:01 GMT
    2. status: changed from assigned to closed
    3. resolution: set to wontfix

    I am closing this as the rtems-deployment project and repo should now be used to manage BSPs and vertical stacks. The repo is currently in my personal area.


    4052 - [libbsd] e1000 driver not working for i386 based BSP in current rtems-libbsd master

    Link https://devel.rtems.org/ticket/4052
    Id 4052
    Reporter Jan Sommer
    Created 14 August 2020 19:50:32
    Modified 29 November 2022 23:18:19
    Owner  
    Type defect
    Component network/libbsd
    Status closed
    Resolution wontfix
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking 2866
    Blocked by  

    Description

    Current rtems-libbsd master branch fails to compile the e1000 driver for i386 based BSPs.

    The corresponding patches from the 5-freebsd-12 branch need to be ported to master.

    Comment 1
    1. kgardas, Tue, 08 Sep 2020 15:31:23 GMT
    2. blocking: set to 2866
    Comment 2
    1. Chris Johns, Tue, 29 Nov 2022 23:18:19 GMT
    2. status: changed from new to closed
    3. resolution: set to wontfix

    Please reopoen with suitable patches for 6-freebsd-12


    4054 - RTEMS_BARRIER_AUTOMATIC_RELEASE and RTEMS_BINARY_SEMAPHORE options have the same value

    Link https://devel.rtems.org/ticket/4054
    Id 4054
    Reporter Sebastian Huber
    Created 17 August 2020 10:27:55
    Modified 23 June 2021 07:07:55
    Owner Sebastian Huber
    Type enhancement
    Component rtems
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    The RTEMS_BARRIER_AUTOMATIC_RELEASE and RTEMS_BINARY_SEMAPHORE options have the same value. In order to better detect a misuse of option values (for example using RTEMS_BINARY_SEMAPHORE for rtems_barrier_create()), the options should have unique values.

    Comment 1
    1. Sebastian Huber, Wed, 19 Aug 2020 04:48:49 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 593a67f6/rtems:

    rtems: Use unique option values The RTEMS_BARRIER_AUTOMATIC_RELEASE and RTEMS_BINARY_SEMAPHORE options had the same value. In order to better detect a misuse of option values (for example using RTEMS_BINARY_SEMAPHORE for rtems_barrier_create()), the options should have unique values. Close #4054.
    Comment 2
    1. Sebastian Huber, Wed, 23 Jun 2021 07:07:55 GMT
    2. keywords: qualification added

    4055 - bsps/xilinx-zynq: Flush TX-Buffer before initializing the zynq-uart

    Link https://devel.rtems.org/ticket/4055
    Id 4055
    Reporter Jan Sommer
    Created 20 August 2020 07:11:39
    Modified 22 August 2020 07:30:22
    Owner Jan Sommer <jan.sommer@…>
    Type defect
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    We experienced that u-boot (at least from Xilinx repositories) does not wait until all its output has left the TX Buffer of the stdout uart, before handing over to the RTEMS application

    This causes some garbage output at the begin of the RTEMS application in some cases and corrupts the test begin marker prohibiting rtems-test to recognize the test correctly.

    Proposed fix is to let RTEMS wait until the TX Buffer of the uart is empty before configuring and using it.

    Comment 1
    1. Jan Sommer, Sat, 22 Aug 2020 07:29:38 GMT
    2. owner: set to Jan Sommer <jan.sommer@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In b87efa7/rtems:

    bsp/xilinx-zynq: Flush TX-Buffer before initializing uart Closes #4055 Closes #4056
    Comment 2
    1. Jan Sommer, Sat, 22 Aug 2020 07:30:22 GMT

    In 61ccb9c0/rtems:

    bsp/xilinx-zynq: Flush TX-Buffer before initializing uart Closes #4055 Closes #4056

    4061 - The reworked <rtems/confdefs.h> has a cyclic dependency with RTEMS_MULTIPROCESSING enabled (cloned)

    Link https://devel.rtems.org/ticket/4061
    Id 4061
    Reporter Sebastian Huber
    Created 21 August 2020 06:47:39
    Modified 21 August 2020 06:57:49
    Owner Sebastian Huber
    Type defect
    Component config
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Cloned from #4060:

    The changes for #3875 introduced a cyclic dependency between and .

    Comment 1
    1. Sebastian Huber, Fri, 21 Aug 2020 06:57:49 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 81efe37c/rtems:

    confdefs: Fix cyclic dependency Close #4061.

    4063 - Change to a simpler TFTP server for rtems-test

    Link https://devel.rtems.org/ticket/4063
    Id 4063
    Reporter Chris Johns
    Created 27 August 2020 04:54:24
    Modified 31 August 2020 23:18:16
    Owner Chris Johns
    Type enhancement
    Component test
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Add a simpler TFTP server that can have multiple instances on different ports running at once. Allowing more than one TFTP server to run at once is the first step to letting rtems-test run parallel hardware test jobs if the user has more one piece of hardware available for testing. Parallel hardware testing will speed up the time it takes to run the tests on target hardware.

    This feature combined with the rtems-tftp-proxy lets a standard bootloader configuration be integrated into a parallel hardware test set up.

    Comment 1
    1. Chris Johns, Mon, 31 Aug 2020 23:18:16 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In eb36081/rtems-tools:

    tester: Change to a simpler TFTP server Add a simpler TFTP to allow parallel test hardware Remove the imported tftpy server Closes #4063

    4065 - Typo in rtems-boot.ini "ubootdior" should be "ubootdir"

    Link https://devel.rtems.org/ticket/4065
    Id 4065
    Reporter Heinz Junkes
    Created 28 August 2020 11:06:46
    Modified 29 November 2022 23:21:57
    Owner Joel Sherrill <joel@…>
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords rtems-boot-image
    Cc  
    Blocking  
    Blocked by  

    Description

    Typo in rtems-tools
    misc/tools/config/rtems-boot.ini

    diff rtems-boot.ini ./tools/misc/tools/config/rtems-boot.ini
    55c55
    < first_stage = %{ubootdir}/spl/boot.bin
    ---

    first_stage = %{ubootdior}/spl/boot.bin

    Attachments:

    1 Heinz Junkes, Fri, 08 Apr 2022 07:36:06 GMT
      attach: set to rtems-boot.ini.patch
     
    Comment 1
    1. Heinz Junkes, Fri, 08 Apr 2022 07:38:38 GMT
    2. version: changed from 5 to 6
    3. milestone: changed from 5.1 to 6.1

    Update, is still in master (6?)

    Comment 2
    1. Joel Sherrill, Tue, 29 Nov 2022 23:21:57 GMT
    2. owner: set to Joel Sherrill <joel@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In f29483d/rtems-tools:

    rtems-boot.ini: Correct spelling of %{ubootdir} Closes #4065.

    4066 - test running for too long

    Link https://devel.rtems.org/ticket/4066
    Id 4066
    Reporter Chris Johns
    Created 28 August 2020 23:10:21
    Modified 25 September 2020 01:16:43
    Owner Chris Johns
    Type defect
    Component test
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The spcache01 test on my PC test hardware is not finishing. It is looping generating output. Add a __Test too long__ error count and end the test after 5 minutes.

    Comment 1
    1. Sebastian Huber, Sun, 30 Aug 2020 14:51:51 GMT

    Which test case runs too long and why?

    Comment 2
    1. Chris Johns, Mon, 31 Aug 2020 03:27:33 GMT

    Replying to Sebastian Huber:

    Which test case runs too long and why?

    The test is spcache01. I do not know the reason but I am using it to add support to handle a stuck test that loops for ever generating output.

    Comment 3
    1. Sebastian Huber, Mon, 31 Aug 2020 06:34:43 GMT

    The spcache01 test program contains several test cases. If one of them loops forever, then there is a bug in the test or the cache support.

    For the test runner wouldn't this be a timed out test?

    Comment 4
    1. Chris Johns, Mon, 31 Aug 2020 07:52:45 GMT

    This ticket is about the tester being able to handle that case. The failure has highlighted a need for the tester to detect this, end the test and report the failure.

    Comment 5
    1. Chris Johns, Fri, 25 Sep 2020 01:16:43 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    4067 - Libbsd build system does not separate kernel and user land include paths

    Link https://devel.rtems.org/ticket/4067
    Id 4067
    Reporter Chris Johns
    Created 2 September 2020 07:43:45
    Modified 25 September 2020 01:16:16
    Owner Chris Johns
    Type defect
    Component network/libbsd
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    FreeBSD has duplicates kernel and user land header files. LibBSD build system currently supports only one set of header include and the kernel and user land include paths.

    Comment 1
    1. Chris Johns, Fri, 25 Sep 2020 01:16:16 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    4069 - dl06 does not link on RISCV

    Link https://devel.rtems.org/ticket/4069
    Id 4069
    Reporter Chris Johns
    Created 6 September 2020 08:13:07
    Modified 29 November 2022 23:03:11
    Owner Hesham Almatary <Hesham.Almatary@…>
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    rtems-ld -r /home/jiri/src/rtems/riscvmp/riscv-rtems6/c/griscv \
    -C riscv-rtems6-gcc -c "-march=rv32imafd -mabi=ilp32d" \
    -O rap -b dl06.pre -e rtems_main -s \
    -o dl06.rap dl06-o1.o dl06-o2.o -lm
    error: rap::object: Section index '0' not found: dl06-o1.o
    Makefile:8528: recipe for target 'dl06.rap' failed
    make[5]: *** [dl06.rap] Error 10

    Attachments:

    1 Jiri Gaisler, Sun, 06 Sep 2020 18:44:04 GMT
      attach: set to rld-rap.patch
    2 Jiri Gaisler, Tue, 08 Sep 2020 07:33:22 GMT
      attach: set to disable-dl-for-riscv.patch
     
    3 Chris Johns, Thu, 10 Sep 2020 05:07:34 GMT
      attach: set to 0001-libdl-riscv-Support-misaligned-read-and-write-access.patch
     
    4 Chris Johns, Thu, 10 Sep 2020 23:28:09 GMT
      attach: set to riscv-rtl-empty-symbols.diff
     
    5 Chris Johns, Fri, 11 Sep 2020 08:24:12 GMT
      attach: set to v2-0001-libdl-riscv-Fix-RISCV-issues-with-libdl-tests.patch
     
    Comment 1
    1. Jiri Gaisler, Sun, 06 Sep 2020 18:46:49 GMT

    By re-applying Hesham's earlier patch (above), dl06 builds again. The program fails however on griscv bsp:

    __* BEGIN OF TEST libdl (RTL) 6 __* __* TEST VERSION: 6.0.0.aedd92d1477df0025821b77c06b2f2b2dc7aaf67 __* TEST STATE: EXPECTED_PASS __* TEST BUILD: RTEMS_NETWORKING RTEMS_POSIX_API RTEMS_SMP __* TEST TOOLS: 10.2.1 20200904 (RTEMS 6, RSB 47f32b8b1a597b5ed3475722bdc155249ef51115, Newlib a0d7982)

    load: /dl06.rap dlopen failed: offset past end of file: offset=11716 size=11716

    __* FATAL __* fatal source: 5 (RTEMS_FATAL_SOURCE_EXIT) fatal code: 0 (0x00000000) RTEMS version: 6.0.0.aedd92d1477df0025821b77c06b2f2b2dc7aaf67 RTEMS tools: 10.2.1 20200904 (RTEMS 6, RSB 47f32b8b1a597b5ed3475722bdc155249ef51115, Newlib a0d7982) executing thread ID: 0x08a010001 executing thread name: UI1

    I guess this is not the intended behavior ...?

    Comment 2
    1. Hesham Almatary, Sun, 06 Sep 2020 21:12:01 GMT
    2. owner: set to Hesham Almatary <Hesham.Almatary@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 764ea578/rtems:

    htif_console_handler is defined in htif.c closes #4069.
    Comment 3
    1. Hesham Almatary, Mon, 07 Sep 2020 14:00:52 GMT
    2. status: changed from closed to reopened
    3. resolution: fixed deleted

    The HTIF fix doesn't fix this error. The new run-time error (after Jiri applied my patch) is probably because of:

    1) Some relocations not being supported in libdl/RISC-V implementation (e.g., RELAX) 2) I haven't tested/supported RAP format when I ported libdl for RISC-V.

    Comment 4
    1. Chris Johns, Tue, 08 Sep 2020 07:26:07 GMT

    If Jiri's patch builds dl06 then it can be pushed. The patch looks reasonable.

    Comment 5
    1. Jiri Gaisler, Tue, 08 Sep 2020 07:32:41 GMT

    The patch fixes the build of dl06, but several of the dlxx test then will fail during execution. If we push this patch, the the dl test must be marked as expected-fail for RISC-V. I would think that disabling building of dl tests is cleaner, see new suggested patch.

    Comment 6
    1. Chris Johns, Wed, 09 Sep 2020 02:11:01 GMT

    Replying to Jiri Gaisler:

    The patch fixes the build of dl06, but several of the dlxx test then will fail during execution. If we push this patch, the the dl test must be marked as expected-fail for RISC-V.

    Tagging the tests with expected-fail is my preferred approach.

    I would think that disabling building of dl tests is cleaner, see new suggested patch.

    I do not support doing this. Disabling or excluding tests because they fail hides the failures and does not encourage fixes. Why should RISCV be treated as special? I feel disabling tests sends the wrong message.

    I assume they passed once so regressions like this happen. I suspect if you wind back the tool sets to a previous version the tests might past. Should tools upgrades be linked to regressions? I do not think that would be helpful.

    Comment 7
    1. Chris Johns, Wed, 09 Sep 2020 04:06:29 GMT

    I built the tests and dl01 to dl04 pass and dl05 to dl09 fail. I tried to have a look at dl05 however gdb reported:

    (gdb) target remote :1234
    Remote debugging using :1234
    Truncated register 52 in remote 'g' packet 

    then disconnected me from sis.

    Comment 8
    1. Jiri Gaisler, Wed, 09 Sep 2020 07:35:50 GMT

    Replying to Chris Johns:

    I built the tests and dl01 to dl04 pass and dl05 to dl09 fail. I tried to have a look at dl05 however gdb reported:

    (gdb) target remote :1234
    Remote debugging using :1234
    Truncated register 52 in remote 'g' packet 

    then disconnected me from sis.

    Make sure you use the extended-remote target, and riscv-rtems5-sis:

    $ riscv-rtems5-sis -gdb . .

    $ riscv-rtems6-gdb ./riscv-rtems6/c/griscv/testsuites/psxtests/psxfenv01.exe

    $ (gdb) tar extended-remote localhost:1234 Remote debugging using localhost:1234 0x00000000 in ?? () (gdb) load Loading section .start, size 0xa8 lma 0x40000000 Loading section .text, size 0x15138 lma 0x400000a8 Loading section .rodata, size 0x1c1d lma 0x400151e0 Loading section .eh_frame, size 0x68 lma 0x40016e00 Loading section .init_array, size 0x4 lma 0x40016e68 Loading section .fini_array, size 0x4 lma 0x40016e6c Loading section .rtemsroset, size 0x74 lma 0x40016e70 Loading section .data, size 0x490 lma 0x40016ee8 Loading section .sdata, size 0xac lma 0x40017380 Start address 0x40000000, load size 95261 Transfer rate: 4429 KB/sec, 237 bytes/write. (gdb) run

    Comment 9
    1. Chris Johns, Thu, 10 Sep 2020 01:50:07 GMT

    Replying to Jiri Gaisler:

    Replying to Chris Johns:

    I built the tests and dl01 to dl04 pass and dl05 to dl09 fail. I tried to have a look at dl05 however gdb reported:

    (gdb) target remote :1234
    Remote debugging using :1234
    Truncated register 52 in remote 'g' packet 

    then disconnected me from sis.

    Make sure you use the extended-remote target, and riscv-rtems5-sis:

    $ riscv-rtems5-sis -gdb .

    I built it using the devel/sis RSB package and I only got an sis executable installed.

    $ ../source-builder/sb-set-builder --list-bsets | grep sis
        devel/sis.bset
    $ ls /opt/work/rtems/6/bin/ | grep sis
    sis
    sparc-rtems6-sis 

    I checked the build log and there is no riscv-rtems[56]-sis installed. I see a sparc-rtems-sis installed. Where do the those come from?

    I will push a change to the RSB to build 2.22.

    $ riscv-rtems6-gdb ./riscv-rtems6/c/griscv/testsuites/psxtests/psxfenv01.exe

    $ (gdb) tar extended-remote localhost:1234

    I added -riscv to the sis command line and it works. It must have been defaulting to the sparc simulation.

    Note, the -riscv option is spelt wrong in the usage help.

    Comment 10
    1. Chris Johns, Thu, 10 Sep 2020 04:17:07 GMT

    I have looked into the crash in dl05 and it is a misaligned access because the rela record has an offset of 7. You can see this here:

    $ riscv-rtems6-readelf -r riscv-rtems6/c/griscv/testsuites/libtests/dl05-o5.o
      [snip]
    Relocation section '.rela.gcc_except_table.exception_dl' at offset 0x8b98 contains 58 entries:
     Offset     Info    Type            Sym.Value  Sym. Name + Addend
    00000007  00006423 R_RISCV_ADD32     0000002c   .LEHB0 + 0
      [snip] 

    This is a relocation record for exception table.

    I have added reloc tracing to the RISCV backend the reloc that crashes is:

    rtl: reloc base_rel(/dl05-o5.o): ADD32: where=0x4006cc67, *where=0xdedeeded, addend=0x0, base 0x4006cc60 

    The *where=0xdedeeded can be ignored, the value is invalid because the address was detected as odd.

    I do not know the RISCV so does the write needs to be smarter or is the problem else where.

    I am wondering if a number of other crashes are the same or a similar issue.

    Comment 11
    1. Chris Johns, Thu, 10 Sep 2020 05:08:43 GMT

    The patch lets things get further along however there are other issues with the libdl tests 5 thru 9. I have no more time available to look into this.

    Comment 12
    1. Jiri Gaisler, Thu, 10 Sep 2020 07:21:02 GMT

    Replying to Chris Johns:

    Replying to Jiri Gaisler:

    Replying to Chris Johns:

    I built the tests and dl01 to dl04 pass and dl05 to dl09 fail. I tried to have a look at dl05 however gdb reported:

    (gdb) target remote :1234
    Remote debugging using :1234
    Truncated register 52 in remote 'g' packet 

    then disconnected me from sis.

    Make sure you use the extended-remote target, and riscv-rtems5-sis:

    $ riscv-rtems5-sis -gdb .

    I built it using the devel/sis RSB package and I only got an sis executable installed.

    $ ../source-builder/sb-set-builder --list-bsets | grep sis
        devel/sis.bset
    $ ls /opt/work/rtems/6/bin/ | grep sis
    sis
    sparc-rtems6-sis 

    I checked the build log and there is no riscv-rtems[56]-sis installed. I see a sparc-rtems-sis installed. Where do the those come from?

    I will push a change to the RSB to build 2.22.

    $ riscv-rtems6-gdb ./riscv-rtems6/c/griscv/testsuites/psxtests/psxfenv01.exe

    $ (gdb) tar extended-remote localhost:1234

    I added -riscv to the sis command line and it works. It must have been defaulting to the sparc simulation.

    Note, the -riscv option is spelt wrong in the usage help.

    I have updated RSB to also build sis for RISC-V. This was previously done only for rtems5, not rtems6.

    Comment 13
    1. Chris Johns, Thu, 10 Sep 2020 23:25:33 GMT

    Replying to Jiri Gaisler:

    I have updated RSB to also build sis for RISC-V. This was previously done only for rtems5, not rtems6.

    Thanks. Does this install as riscv-rtems6-sis?

    Comment 14
    1. Jiri Gaisler, Fri, 11 Sep 2020 06:49:07 GMT

    Replying to Chris Johns:

    Replying to Jiri Gaisler:

    I have updated RSB to also build sis for RISC-V. This was previously done only for rtems5, not rtems6.

    Thanks. Does this install as riscv-rtems6-sis?

    Yes, that is the whole idea with this patch... :-)

    Comment 15
    1. Chris Johns, Fri, 11 Sep 2020 07:06:23 GMT

    Replying to Jiri Gaisler:

    Yes, that is the whole idea with this patch... :-)

    Being able to have the SIS available like this when a RISCV tool chain is built is fantastic. Thank you for your support and the tool.

    Comment 16
    1. Jiri Gaisler, Fri, 11 Sep 2020 07:08:33 GMT

    The riscv-rtl-empty-symbols.diff​ patch gives me the following failures:

    Failures:

    dl01.exe dl02.exe dl05.exe dl08.exe

    User Input:

    dl10.exe monitor.exe termios.exe top.exe

    dl01, dl02 and dl08 now times-out rather than fails....

    Comment 17
    1. Chris Johns, Fri, 11 Sep 2020 07:36:26 GMT

    Yeah, something is wrong with the patch. I was seeing an unresolved symbol with a symbol name of "" being added and as you can imagine it is never resolved.

    Comment 18
    1. Chris Johns, Fri, 11 Sep 2020 08:07:21 GMT

    I am starting to suspect the issue is the R_RISCV_RELAX reloc records and the call sites. The simplest approach is to ignore those relocs and just use 32bit destinations or implement the 21bit relative offset if the target is in range.

    The RISCV relax approach is nicer to libdl than the ARM or PowerPC trampoline support.

    Comment 19
    1. Chris Johns, Fri, 11 Sep 2020 08:26:15 GMT

    dl05 has an issue in the unwind tables somewhere. An object's tables are added to the base tables so you can throw in a module and catch it elsewhere. dl06 is a RAP thing which requires some work to sort out.

    Comment 20
    1. Hesham Almatary, Tue, 15 Sep 2020 07:17:20 GMT

    Thanks, Chris for your fixes! I applied the last patch and tried to test rv64imafdc_medany on QEMU, but dl01 fails in run-time triggering an exception while loading the object. I'll debug that issue.

    Comment 21
    1. Chris Johns, Tue, 29 Nov 2022 23:03:11 GMT
    2. status: changed from reopened to closed
    3. resolution: set to fixed

    please reopen if it is still failing.


    4070 - RISC-V Multiple Definition Error (many BSPs)

    Link https://devel.rtems.org/ticket/4070
    Id 4070
    Reporter Joel Sherrill
    Created 6 September 2020 17:56:32
    Modified 16 December 2021 15:40:50
    Owner  
    Type defect
    Component arch/riscv
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    This error appears to occur on all RISC-V BSPs which do not fail at the dynamic loading rap section 0 error. I assume that eventually they may all hit this. List of BSPs failing below message.

    /home/joel/rtems-cron-6/tools/6/lib/gcc/riscv-rtems6/10.2.1/../../../../riscv-rtems6/bin/ld: ./../../lib/libbsp/riscv/riscv/librtemsbsp.a(htif.o):/home/joel/rtems-cron-6/rtems/bsps/riscv/riscv/include/dev/serial/htif.h:48: multiple definition of `htif_console_handler'; ./../../lib/libbsp/riscv/riscv/librtemsbsp.a(console-config.o):/home/joel/rtems-cron-6/rtems/bsps/riscv/riscv/include/dev/serial/htif.h:48: first defined here
    /home/joel/rtems-cron-6/tools/6/lib/gcc/riscv-rtems6/10.2.1/../../../../riscv-rtems6/bin/ld: ./../../lib/libbsp/riscv/riscv/librtemsbsp.a(htif.o):/home/joel/rtems-cron-6/rtems/bsps/riscv/riscv/include/dev/serial/htif.h:48: multiple definition of `htif_console_handler'; ./../../lib/libbsp/riscv/riscv/librtemsbsp.a(console-config.o):/home/joel/rtems-cron-6/rtems/bsps/riscv/riscv/include/dev/serial/htif.h:48: first defined here
    mv -f cdtest/.deps/cdtest-init.Tpo cdtest/.deps/cdtest-init.Po

    rv32iac_spike
    rv32imac_spike
    rv32imafc_spike
    rv32imafdc_spike
    rv32imafd_spike
    rv32im_spike
    rv32i_spike
    rv64imac_medany_spike
    rv64imac_spike
    rv64imafdc_medany_spike
    rv64imafdc_spike
    rv64imafd_medany_spike
    rv64imafd_spike

    Comment 1
    1. Joel Sherrill, Thu, 16 Dec 2021 15:40:50 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed

    Works now


    4072 - testsuite: Add ticket ids for expected-fail and indeterminate states, add annotations

    Link https://devel.rtems.org/ticket/4072
    Id 4072
    Reporter Chris Johns
    Created 9 September 2020 00:21:59
    Modified 27 July 2023 16:37:38
    Owner Chris Johns
    Type defect
    Component test
    Status assigned
    Resolution  
    Version 6
    Milestone 6.1
    Priority high
    Severity blocker
    Keywords test rtems-test
    Cc  
    Blocking  
    Blocked by  

    Description

    • Require a ticket id be present for any expected-fail and indeterminate test states.
    • Parse the ticket number from the .tcgf file and pass into the test.
    • Have rtems-test obtain the ticket number from the test when run and provide the ticket number in the results.
    • Add annotations for tests. The list is to be provided by Joel.
    Comment 1
    1. Chris Johns, Tue, 29 Nov 2022 22:18:54 GMT
    2. priority: changed from normal to high
    3. severity: changed from normal to blocker
    Comment 2
    1. Chris Johns, Thu, 29 Jun 2023 23:34:15 GMT

    This is now updated in the spec YAML files.

    Comment 3
    1. Kinsey Moore, Thu, 29 Jun 2023 23:40:04 GMT

    I have some to handle for AArch64 and ARM and any BSPs that run specifically on QEMU.

    Comment 4
    1. Kinsey Moore, Mon, 10 Jul 2023 13:49:21 GMT

    In f46c15f/rtems:

    spec: Add QEMU test annotations QEMU is known to fail certain tests intermittently due to clock tick delivery issues. This defines those tests as intermittent for BSPs intended to run on QEMU alone. Updates #4922 Updates #4072
    Comment 5
    1. Kinsey Moore, Mon, 10 Jul 2023 13:52:26 GMT

    The above commit takes care of all the indeterminate test states that I'm aware of in the AArch64 realm.

    Comment 6
    1. Kinsey Moore, Thu, 27 Jul 2023 16:37:38 GMT

    The only indeterminate test state is now documented properly. These are the remaining files that have a test state of expected-fail:

    spec/build/bsps/tst-xfail-intr.yml (validation-intr for powerpc/psim) spec/build/bsps/i386/pc386/tst-xfail-val.yml (various validation tests for i386/pc386) spec/build/bsps/tst-xfail-dl06.yml (dl06 for arm/imx7) spec/build/bsps/tst.yml (psxfenv01 for all arches)


    4074 - Add CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE

    Link https://devel.rtems.org/ticket/4074
    Id 4074
    Reporter Sebastian Huber
    Created 10 September 2020 13:17:40
    Modified 23 June 2021 07:07:55
    Owner Sebastian Huber
    Type enhancement
    Component config
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    This configuration option can be used to reserve space for the dynamic linking of modules with thread-local storage objects. See also:

    ​https://lists.rtems.org/pipermail/devel/2020-September/061867.html

    Comment 1
    1. Sebastian Huber, Thu, 10 Sep 2020 13:20:30 GMT
    2. description: modified (diff)
    Comment 2
    1. Chris Johns, Fri, 11 Sep 2020 07:09:20 GMT

    In f86a0ce/rtems-tools:

    linkers/exeinfo: Output TLS data Updates #4074
    Comment 3
    1. Sebastian Huber, Thu, 17 Sep 2020 16:09:22 GMT

    In 641b31a4/rtems:

    rtems: Add RTEMS_ALIGN_DOWN() Update #3959. Update #4074.
    Comment 4
    1. Sebastian Huber, Thu, 17 Sep 2020 16:09:25 GMT

    In dce1cdf1/rtems:

    rtems: Add RTEMS_ALIGN_UP() Update #3959. Update #4074.
    Comment 5
    1. Sebastian Huber, Thu, 17 Sep 2020 16:09:29 GMT

    In c312f31/rtems:

    CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE Add this application configuration option. This configuration option can be used to reserve space for the dynamic linking of modules with thread-local storage objects. Add RTEMS_TASK_STORAGE_ALIGNMENT to define the minium alignment of a thread-local storage size. Update #4074.
    Comment 6
    1. Sebastian Huber, Thu, 17 Sep 2020 16:14:43 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In a5fe9aa/rtems-docs:

    c-user: CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE Document this application configuration option. Close #4074.
    Comment 7
    1. Sebastian Huber, Wed, 23 Jun 2021 07:07:55 GMT
    2. keywords: qualification added

    4076 - i386: bad asm in smp mode

    Link https://devel.rtems.org/ticket/4076
    Id 4076
    Reporter Gedare Bloom
    Created 12 September 2020 04:58:58
    Modified 12 September 2020 15:13:14
    Owner Gedare Bloom
    Type defect
    Component arch/i386
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    A note for me (or someone) to make the fix outlined on the mailing list.

    cpukit/score/cpu/i386/include/rtems/asm.h:157   movb
    imps_apic_cpu_map(\REG),\REG        /* CPU ID in REG */

    The assembler is right to complain. movb has to target one of the
    1-byte mnemonics, so this should be %al for the LSB of %eax. One needs
    to check through this logic carefully, but I think the right thing to
    do here is:
    movzbl     imps_apic_cpu_map(\REG),\REG

    That should do the trick. Can you test it locally?

    Sure! Builds fine and testsuite testing reveals:

    Comment 1
    1. Gedare Bloom, Sat, 12 Sep 2020 14:26:07 GMT
    2. version: changed from 5 to 6
    3. description: modified (diff)
    4. milestone: changed from 5.1 to 6.1
    Comment 2
    1. Joel Sherrill, Sat, 12 Sep 2020 14:55:37 GMT

    This should be fixed on the 5 branch as well for safety.

    Comment 3
    1. Gedare Bloom, Sat, 12 Sep 2020 15:13:14 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 9f096f4/rtems:

    i386/score: fix assembly mnemonic Closes #4076.

    4077 - Implement LibBSD module dependencies in the build system

    Link https://devel.rtems.org/ticket/4077
    Id 4077
    Reporter Chris Johns
    Created 14 September 2020 05:39:34
    Modified 25 September 2020 01:17:15
    Owner Chris Johns
    Type defect
    Component network/libbsd
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The build system has a partially implemented module dependency system. Complete the implementation. Control tests being built. If a test depends on a module and the module is disabled do not build the test.

    Add dependency checking to the freebsd-to-rtems.py command. If the module definition is not consistent generate an error.

    Comment 1
    1. Chris Johns, Fri, 25 Sep 2020 01:17:15 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    4078 - GCC C++ compiler for powerpc defines _GNU_SOURCE as a built-in

    Link https://devel.rtems.org/ticket/4078
    Id 4078
    Reporter Sebastian Huber
    Created 14 September 2020 06:51:45
    Modified 8 September 2022 05:31:33
    Owner Sebastian Huber
    Type defect
    Component arch/powerpc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    For example:

    powerpc-rtems6-g++ -E -P -v -dD empty.cc 2>&1 | grep GNU_SOURCE

    Yields:

     /opt/rtems/6/libexec/gcc/powerpc-rtems6/10.2.1/cc1plus -E -quiet -v -P -D_GNU_SOURCE -Dmpc750 empty.cc -dD
    #define _GNU_SOURCE 1

    This is a GCC configuration bug. The reason is that the RTEMS GCC configuration includes gnu-user.h.

    Comment 1
    1. Sebastian Huber, Mon, 14 Sep 2020 06:52:17 GMT
    2. description: modified (diff)
    Comment 2
    1. Joel Sherrill, Mon, 14 Sep 2020 12:53:32 GMT

    I agree that this isn't right. We shouldn't be implicitly defining anything that enables extended APIs.

    How did you spot this?

    Comment 3
    1. Sebastian Huber, Mon, 14 Sep 2020 15:19:38 GMT

    I noticed this during the tests of the new build system. The powerpc is the only RTEMS target which defines _GNU_SOURCE.

    Comment 4
    1. Chris Johns, Tue, 15 Sep 2020 03:19:01 GMT

    Replying to Joel Sherrill:

    How did you spot this?

    I have updated rtems-exeinfo to optionally output the full flags used to build an object file.

    $ rtems-exeinfo -O --full-flags `find . -name hello.exe` 

    This is the output from hello.exe for the psim showing a mix of options:

     | wcrtomb.c                         : -mcpu=603e -mcpu=603e -g -O2 -fno-builtin -ffunction-sections -fdata-sections
       | wctomb_r.c                        : -mcpu=603e -mcpu=603e -g -O2 -fno-builtin -ffunction-sections -fdata-sections
       | wkspace.c                         : -mcall-sysv -meabi -mcpu=603e -msdata=sysv -g -O2 -fno-common -fno-keep-inline-functions -ffunction-sections -fdata-sections
       | wkspaceisunifieddefault.c         : -mcall-sysv -meabi -mcpu=603e -msdata=sysv -g -O2 -fno-common -fno-keep-inline-functions -ffunction-sections -fdata-sections
       | write.c                           : -mcall-sysv -meabi -mcpu=603e -msdata=sysv -g -O2 -fno-common -fno-keep-inline-functions -ffunction-sections -fdata-sections
       | write_r.c                         : -mcall-sysv -meabi -mcpu=603e -msdata=sysv -g -O2 -fno-common -fno-keep-inline-functions -ffunction-sections -fdata-sections
       | wsetup.c                          : -mcpu=603e -mcpu=603e -g -O2 -fno-builtin -ffunction-sections -fdata-sections 

    And there is the pc686 BSP with LibBSD showing the i386 issue:

     | tzset.c                               : -mtune=pentiumpro -march=i386 -g -O2 -fno-builtin -ffunction-sections -fdata-sections
       | tzset_r.c                             : -mtune=pentiumpro -march=i386 -g -O2 -fno-builtin -ffunction-sections -fdata-sections
       | tzvars.c                              : -mtune=pentiumpro -march=i386 -g -O2 -fno-builtin -ffunction-sections -fdata-sections
       | u_strerr.c                            : -mtune=pentiumpro -march=i386 -g -O2 -fno-builtin -ffunction-sections -fdata-sections
       | uart_bus_pci.c                        : -mtune=pentiumpro -march=pentium -g -O2 -ffunction-sections -fdata-sections
       | udp6_usrreq.c                         : -mtune=pentiumpro -march=pentium -g -O2 -ffunction-sections -fdata-sections -fno-strict-aliasing -ffreestanding -fno-common
       | udp_usrreq.c                          : -mtune=pentiumpro -march=pentium -g -O2 -ffunction-sections -fdata-sections -fno-strict-aliasing -ffreestanding -fno-common
       | uenvgetgroups.c                       : -mtune=pentiumpro -march=pentium -g -O2 -ffunction-sections -fdata-sections
       | uipc_accf.c                           : -mtune=pentiumpro -march=pentium -g -O2 -ffunction-sections -fdata-sections -fno-strict-aliasing -ffreestanding -fno-common
       | uipc_domain.c                         : -mtune=pentiumpro -march=pentium -g -O2 -ffunction-sections -fdata-sections -fno-strict-aliasing -ffreestanding -fno-common 

    I think preprocessor flags are not captured.

    Comment 5
    1. Sebastian Huber, Thu, 08 Sep 2022 05:31:33 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    Fixed in GCC 10, 11, 12, and 13.


    4079 - build: i386/pc686/appstart.o is created more than once

    Link https://devel.rtems.org/ticket/4079
    Id 4079
    Reporter Sebastian Huber
    Created 15 September 2020 13:20:08
    Modified 15 September 2020 18:08:01
    Owner Sebastian Huber <sebastian.huber@…>
    Type defect
    Component build
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    In this build specification item

    ​https://git.rtems.org/rtems/tree/spec/build/bsps/i386/pc386/objsmpstart.yml

    is an error:

    * Node /home/EB/sebastian_h/git-rtems-6/build/i386/pc686/appstart.o is created more than once. The task generators are:
    1. bld(target=['appstart.o'], idx=14, tg_idx_count=14, meths=['check_err_features', 'check_err_order', 'process_rule', 'process_source'], rule='${OBJCOPY} -I binary -O elf32-i386 -B i386 ${SRC} ${TGT}', _name='appstart.o', source=[], path=/home/EB/sebastian_h/git-rtems-6, posted=True, features=[]) in /home/EB/sebastian_h/git-rtems-6
    2. bld(target='/bsps/i386/pc386/objsmpstart', idx=15, tmp_use_objects=False, tg_idx_count=15, meths=['check_err_features', 'check_err_order', 'process_rule', 'process_source'], tmp_use_stlib=True, _name='/bsps/i386/pc386/objsmpstart', source=[/home/EB/sebastian_h/git-rtems-6/build/i386/pc686/appstart.o], tmp_use_var='', path=/home/EB/sebastian_h/git-rtems-6, posted=True, typ='objects', features=[]) in /home/EB/sebastian_h/git-rtems-6
    If you think that this is an error, set no_errcheck_out on the task instance

    All what we have to do is to add a specially produced appstart.o to librtemsbsp.a.

    Comment 1
    1. Sebastian Huber, Tue, 15 Sep 2020 18:08:01 GMT
    2. owner: set to Sebastian Huber <sebastian.huber@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 9979042/rtems:

    build: Fix multiple defintion error for i386/pc386 Make the objcopy an bld.objects() task generator. Close #4079.

    4080 - build: Add start.o dependency to the executable link step

    Link https://devel.rtems.org/ticket/4080
    Id 4080
    Reporter Sebastian Huber
    Created 16 September 2020 06:00:52
    Modified 23 June 2021 07:07:55
    Owner Sebastian Huber
    Type enhancement
    Component build
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    RTEMS is a real-time operating system and the applications using RTEMS end up in a single executable which contains also the full system initialization. The linker uses a start file to determine what should be linked into the executable. The start file is also built by the build system, however, it is only indirectly referenced via a linker script, for example:

    ​https://git.rtems.org/rtems/tree/bsps/arm/shared/start/linkcmds.base#n28

    So, every executable depends on the start file (start.o usually). If start.o changes, then the executable needs to be re-linked. Also the start file needs the name expected by the linker script, for example not start.S.17.o.

    The start files are build with this commands:

    ​https://git.rtems.org/rtems/tree/wscript#n535

    ​https://git.rtems.org/rtems/tree/wscript#n244

    Somehow we have to add a dependency on start.o to every executable.

    To experiment with the build system use the following commands to set it up:

    cd $HOME
    mkdir rtems-sdk
    mkdir rtems-sdk/src
    cd rtems-sdk/src
    git clone git://git.rtems.org/rtems.git
    git clone git://git.rtems.org/rtems-source-builder.git rsb
    cd rsb/rtems
    ../source-builder/sb-set-builder --prefix=$HOME/rtems-sdk/6 6/rtems-sparc
    cd ../../rtems
    echo "[sparc/leon3]" > config.ini
    ./waf configure --prefix=$HOME/rtems-sdk/6
    ./waf

    The host must be capable to build GCC and needs the Python development support (header files) installed.

    Comment 1
    1. Sebastian Huber, Wed, 16 Sep 2020 07:04:51 GMT
    2. description: modified (diff)
    Comment 2
    1. Sebastian Huber, Thu, 17 Sep 2020 06:58:03 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 4eea8d4/rtems:

    build: Fix dependencies for start and asm files Add a feature to enforce an explicit target file for assembler sources. Add a build start file node list and use it as a test program dependency. The fix for #3846 and #4080 needs to be combined, because the fix for #3846 requires the removal of 'before=cstlib?'. This patch fixes two issues: The tracking of start file dependencies. Reflect that executables depend on the start files. We need a start.o file in the right path so that the linker can find is as specified by the linker script, and not for example a start.S.17.o file in some path. This part is addressed by the "explicit_asm_target" feature. This build process extension @after("apply_link") @feature("cprogram", "cxxprogram") def process_start_files(self):
    if getattr(self, "start_files", False):
    self.link_task.dep_nodes.extend(self.bld.start_files)
    addresses 2. Close #3846. Close #4080.
    Comment 3
    1. Sebastian Huber, Wed, 23 Jun 2021 07:07:55 GMT
    2. keywords: qualification added

    4081 - Remove Autoconf/Automake based build system

    Link https://devel.rtems.org/ticket/4081
    Id 4081
    Reporter Sebastian Huber
    Created 17 September 2020 06:05:47
    Modified 29 November 2021 15:00:03
    Owner Sebastian Huber
    Type task
    Component build
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords wafblocker
    Cc  
    Blocking  
    Blocked by 4468

    Description

    Remove Autoconf/Automake? based build system after a testing phase of the waf based build system. The planned date to remove the old build system is 1st November 2020.

    For a status of the new build system see:

    ​https://devel.rtems.org/wiki/Release/6/Waf%20BSP%20Checklist

    Comment 1
    1. Chris Johns, Thu, 17 Sep 2020 06:11:14 GMT

    What will happen to ​https://git.rtems.org/rtems/tree/c/ACKNOWLEDGEMENTS ?

    Comment 2
    1. Sebastian Huber, Thu, 17 Sep 2020 06:13:04 GMT

    Move it to the top-level or the documentation?

    Comment 3
    1. Chris Johns, Thu, 17 Sep 2020 06:15:26 GMT

    Sorry, I do not know. It is out of date but historically important. I think this is one for Joel.

    I could not see anything else in the c tree.

    Comment 4
    1. Chris Johns, Fri, 26 Feb 2021 07:18:57 GMT

    The motorola_powerpc bootloader is looks like it is linking in some fake rom code and in the autoconf build system that is conditional on it being a qemu build.

    Comment 5
    1. Chris Johns, Wed, 14 Jul 2021 04:27:43 GMT
    2. keywords: wafblocker added
    Comment 6
    1. Chris Johns, Wed, 14 Jul 2021 04:28:20 GMT
    2. blockedby: set to 4468
    Comment 7
    1. Joel Sherrill, Mon, 13 Sep 2021 21:42:26 GMT
    2. summary: changed from Remove Autoconf/Aotomake based build system to Remove Autoconf/Automake based build system
    Comment 8
    1. Joel Sherrill, Mon, 13 Sep 2021 21:45:41 GMT

    Any objections to removing this now? :)

    The RTEMS kernel recipe is still broken but that's about the end of it.

    Comment 9
    1. Joel Sherrill, Sun, 19 Sep 2021 16:42:08 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In a178eba/rtems-source-builder:

    Remove automake/autoconf from rtems 6 tools These are unneeded with the waf build system. Closes #4081.
    Comment 10
    1. Sebastian Huber, Tue, 21 Sep 2021 08:25:58 GMT

    In db8f598/rtems:

    build: Remove old build system Close #3250. Close #4081.
    Comment 11
    1. Joel Sherrill, Mon, 29 Nov 2021 15:00:03 GMT

    In e945e3fc/rtems:

    */aclocal/*: Remove remnants of autoconf/automae build system Updates #4081.

    4084 - throwing std::runtime on PC BSP fails

    Link https://devel.rtems.org/ticket/4084
    Id 4084
    Reporter Joel Sherrill
    Created 21 September 2020 19:46:08
    Modified 1 October 2020 15:23:45
    Owner  
    Type defect
    Component tool/gcc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc Chris Johns Michael Davidsaver
    Blocking  
    Blocked by  

    Description

    Copied from #2830 for new release milestone. The solution is to update gcc/config/i386/t-rtems. Whether for gcc 10 or gcc master is the difference on this CR versus #2830 which had to be to gcc 7 as a patch via the RSB.

    Throwing a std::runtime() exception locks up.

    The lock up is in the exception clean up handler where the exception object is destructed. The destructor loops distructing the std::string object. The path ends up in libstdc++-v3/include/ext/atomicity.h line 48 or exchange_and_add.

    At a guess it would seem like the C++ atomics on i386 is broken or fragile.

    UPDATE: This was broken when gcc i386 eliminated -mcpu in favor of -march/-mtune. The multilibs were built with -mtune and not -march.

    Attachments:

    1 Joel Sherrill, Mon, 21 Sep 2020 20:17:06 GMT
      attach: set to gcc-10-i386march-1.diff
     
    Comment 1
    1. Michael Davidsaver, Mon, 21 Sep 2020 21:14:32 GMT

    In 1ea1c9c/rtems-source-builder:

    patch gcc i386 multiarch
    Add patch to change from mtune to march when building multilibs. The mtune argument tunes or optimizes for a specific CPU model but does not ensure the generated code is appropriate for the CPU model. Prior to this patch, i386 compatible code was always generated but tuned for later models.
    This is the same fix as #2830 but applying to gcc 10.
    Updates #4084.
    Comment 2
    1. Joel Sherrill, Mon, 21 Sep 2020 21:17:08 GMT

    Post for GCC 10 and master posted ​https://gcc.gnu.org/pipermail/gcc-patches/2020-September/554430.html

    Comment 3
    1. Joel Sherrill, Mon, 21 Sep 2020 21:17:50 GMT
    2. cc: Chris Johns Michael Davidsaver added
    Comment 4
    1. Joel Sherrill, Thu, 01 Oct 2020 15:23:45 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed

    I applied the GCC patch to the master and 10 release branch.

    ​https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=63a32847b0e8d14ae1eafe047ea43441f6e3a11c


    4093 - bsps/pc386: Add missing license header

    Link https://devel.rtems.org/ticket/4093
    Id 4093
    Reporter Joel Sherrill
    Created 23 September 2020 13:24:57
    Modified 23 September 2020 13:25:51
    Owner Jan Sommer <jan.sommer@…>
    Type defect
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    bspsmp.c is missing a licence header.

    Comment 1
    1. Jan Sommer, Wed, 23 Sep 2020 13:25:51 GMT
    2. owner: set to Jan Sommer <jan.sommer@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 1f77518/rtems:

    bsps/pc386: Add missing license header Closes #4093.

    4095 - Remove doc from rtems-tools

    Link https://devel.rtems.org/ticket/4095
    Id 4095
    Reporter Chris Johns
    Created 24 September 2020 23:53:13
    Modified 22 June 2023 21:21:57
    Owner Kinsey Moore
    Type task
    Component tool
    Status assigned
    Resolution  
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    This directory is not used and needs to go. I will push the change directly to the repo to avoid the clutter a review would generate as most of the files and imported.

    Comment 1
    1. Joel Sherrill, Thu, 03 Mar 2022 22:54:55 GMT

    Is this done? Easy to close?

    Comment 2
    1. Joel Sherrill, Wed, 28 Dec 2022 19:51:02 GMT

    Please check if this can be closed.

    Comment 3
    1. Gedare Bloom, Mon, 23 Jan 2023 20:41:52 GMT

    ​https://git.rtems.org/rtems-tools/tree/doc

    Still exists.

    Comment 4
    1. Joel Sherrill, Thu, 09 Feb 2023 16:04:32 GMT

    I think that much of the content in rtems-tools/doc is NOT in the Users Guide. The discussion of the RTEMS Tester in the Users Guide takes a different view and appears to never show how to use it which is the focus of much of this documentation. I don't think this is a simple remove some files.

    Comment 5
    1. Joel Sherrill, Thu, 22 Jun 2023 21:21:57 GMT
    2. owner: changed from Chris Johns to Kinsey Moore

    4097 - shell: CRTL-U sets the cursor to the wrong position (cloned)

    Link https://devel.rtems.org/ticket/4097
    Id 4097
    Reporter Frank Kuehndel
    Created 28 September 2020 12:13:46
    Modified 28 September 2020 12:17:27
    Owner Sebastian Huber
    Type defect
    Component shell
    Status closed
    Resolution fixed
    Version  
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Cloned from #4096:

    This patch fixes a tiny bug in the command line editing of the RTEMS shell.
    Typing CTRL-U in the shell should remove all characters left of the cursor.
    After pressing CTRL-U, the current implementation does wrongly place the cursor
    at the end of the line instead at its beginning.
    To reproduce the bug, start the shell and type 'abc123' (no ):

    ~/src/rtems $ qemu-system-arm -net none -nographic -M realview-pbx-a9 -m 256M -kernel build/arm/realview_pbx_a9_qemu/testsuites/libtests/dl10.exe
    *** BEGIN OF TEST libdl (RTL) 10 ***
    *** TEST VERSION: 6.0.0.d9bdf166644f612dd628fe4951c12c6f8e94ba5f
    *** TEST STATE: USER_INPUT
    *** TEST BUILD: RTEMS_DEBUG RTEMS_NETWORKING RTEMS_POSIX_API RTEMS_SMP
    *** TEST TOOLS: 10.2.1 20200904 \
    (RTEMS 6, RSB 31f936a7b74d60bda609a9960c6e1a705ba54974, Newlib a0d7982)
    RTL (libdl) commands: dl, rtl
    RTEMS Shell on /dev/foobar. Use 'help' to list commands.
    SHLL [/] # abc123

    Then move the cursor onto the '1' by hitting three times the key.
    Next type -U:

    SHLL [/] # 123 

    Note that the cursor is at the end of the line (after '3') instead of correctly
    at the beginning (on the '1'), now.
    Continuing typing 'echo ' incorrectly results in the output:

    SHLL [/] # 123echo 123 

    The patch changes this behavior so that the cursor in the second last step will
    be on the '1' and typing 'echo ' will then correctly reflected as:

    SHLL [/] # echo 123 
    Comment 1
    1. Frank Kühndel, Mon, 28 Sep 2020 12:17:27 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In ffc928b/rtems:

    Fixing bug in line editing of the shell with CTRL-U. This patch fixes a tiny bug in the command line editing of the RTEMS shell. Typing CTRL-U in the shell should remove all characters left of the cursor. After pressing CTRL-U, the current implementation does wrongly place the cursor at the end of the line instead at its beginning. To reproduce the bug, start the shell and type 'abc123' (no ):
    ~/src/rtems $ qemu-system-arm -net none -nographic -M realview-pbx-a9 \
    -m 256M -kernel build/arm/realview_pbx_a9_qemu/testsuites/libtests/dl10.exe
    __* BEGIN OF TEST libdl (RTL) 10 __* __* TEST VERSION: 6.0.0.d9bdf166644f612dd628fe4951c12c6f8e94ba5f __* TEST STATE: USER_INPUT __* TEST BUILD: RTEMS_DEBUG RTEMS_NETWORKING RTEMS_POSIX_API RTEMS_SMP __* TEST TOOLS: 10.2.1 20200904 \
    (RTEMS 6, RSB 31f936a7b74d60bda609a9960c6e1a705ba54974, Newlib a0d7982)
    RTL (libdl) commands: dl, rtl RTEMS Shell on /dev/foobar. Use 'help' to list commands. SHLL / # abc123
    Then move the cursor onto the '1' by hitting three times the key. Next type -U:
    SHLL / # 123
    Note that the cursor is at the end of the line (after '3') instead of correctly at the beginning (on the '1'), now. Continuing typing 'echo ' incorrectly results in the output:
    SHLL / # 123echo 123
    The patch changes this behavior so that the cursor in the second last step will be on the '1' and typing 'echo ' will then correctly reflected as:
    SHLL / # echo 123
    Close #4097.

    4098 - All BSP bsets fail to build on master

    Link https://devel.rtems.org/ticket/4098
    Id 4098
    Reporter Joel Sherrill
    Created 28 September 2020 20:59:40
    Modified 16 December 2021 16:50:18
    Owner  
    Type defect
    Component tool/rsb
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    On the master building for RTEMS 6, all of the BSP bsets fail like this:

    RTEMS Source Builder - Set Builder, 6 (ed5030bc24db)
    Build Set: 6/bsps/xilinx_zynq_zedboard
    error: no build set file found: 6/bsps/xilinx_zynq_zedboard.bset
    Mailing report: build@rtems.org
    Traceback (most recent call last):
    File "../source-builder/sb-set-builder", line 25, in
    sb.setbuilder.run()
    File "/home/joel/rtems-cron-6/rtems-source-builder/source-builder/sb/setbuilder.py", line 735, in run
    b.build(deps, mail = mail)
    File "/home/joel/rtems-cron-6/rtems-source-builder/source-builder/sb/setbuilder.py", line 633, in build
    if sizes_valid:
    UnboundLocalError: local variable 'sizes_valid' referenced before assignment
    Comment 1
    1. Ryan Long, Thu, 16 Dec 2021 16:50:18 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed

    4100 - arm/edb7312 Build Failure When SMP is Enabled

    Link https://devel.rtems.org/ticket/4100
    Id 4100
    Reporter Joel Sherrill
    Created 29 September 2020 17:14:49
    Modified 1 October 2020 20:05:57
    Owner  
    Type defect
    Component arch/arm
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    This is from the edb7312 but may apply to others. Build is still underway and this is a common file.

    ''''gmake[4]: Entering directory `/home/joel/rtems-cron-6/b-edb7312/arm-rtems6/c/edb7312/cpukit'
    depbase=`echo score/src/percpu.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
    arm-rtems6-gcc --pipe -DHAVE_CONFIG_H -I. -I/home/joel/rtems-cron-6/b-edb7312/arm-rtems6/c/edb7312/include -I/home/joel/rtems-cron-6/rtems/cpukit/include -I/home/joel/rtems-cron-6/rtems/cpukit/score/cpu/arm/include -mcpu=arm7tdmi -O2 -g -ffunction-sections -fdata-sections -Wall -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs -MT score/src/percpu.o -MD -MP -MF $depbase.Tpo -c -o score/src/percpu.o ../../../../../rtems/c/src/../../cpukit/score/src/percpu.c &&\
    mv -f $depbase.Tpo $depbase.Po
    {standard input}: Assembler messages:
    {standard input}:157: Error: selected processor does not support `sev' in ARM mode
    {standard input}:347: Error: selected processor does not support `wfe' in ARM mode
    {standard input}:525: Error: selected processor does not support `wfe' in ARM mode
    gmake[4]: *** [score/src/percpu.o] Error 1
    Comment 1
    1. Joel Sherrill, Tue, 29 Sep 2020 21:51:16 GMT

    I am not going through every failing ARM BSP but the csb337 family also fails similarly.

    Comment 2
    1. Sebastian Huber, Wed, 30 Sep 2020 05:51:04 GMT

    This BSP doesn't support SMP.

    Comment 3
    1. Joel Sherrill, Wed, 30 Sep 2020 12:59:39 GMT

    Why are these not configure time failures in waf and not build time failures?

    Comment 4
    1. Sebastian Huber, Wed, 30 Sep 2020 13:05:06 GMT

    This was also not a configure time error in the old build system I guess. The information if a BSP supports SMP is not explicitly available in the build specification. This information is currently present in the RTEMS Tools: config/rtems-bsps-arm.ini. This can be changed of course.

    Comment 5
    1. Sebastian Huber, Thu, 01 Oct 2020 20:05:57 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed

    Fixed by recent commit.


    4101 - atsamv fails to build on master

    Link https://devel.rtems.org/ticket/4101
    Id 4101
    Reporter Joel Sherrill
    Created 29 September 2020 19:45:27
    Modified 1 October 2020 20:10:15
    Owner  
    Type defect
    Component arch/arm
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    This may also fail on 5.

    $ ../rtems/configure --target=arm-rtems6 --enable-rtemsbsp=atsamv --prefix=/home/joel/rtems-cron-6/tools/6/bsp-install --disable-networking --enable-posix --enable-smp --disable-multiprocessing --disable-rtems-debug --disable-profiling --enable-tests --enable-cxx --enable-maintainer-mode

    rm-rtems6-gcc --pipe -DHAVE_CONFIG_H   -I. -I/home/joel/rtems-cron-6/b-atsamv/arm-rtems6/c/atsamv/include -I/home/joel/rtems-cron-6/rtems/cpukit/include -I/home/joel/rtems-cron-6/rtems/cpukit/score/cpu/arm/include   -mthumb -mcpu=cortex-m7 -mfpu=fpv5-d16 -mfloat-abi=hard -O2 -g -ffunction-sections -fdata-sections -Wall -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs -MT libcsupport/src/error.o -MD -MP -MF $depbase.Tpo -c -o libcsupport/src/error.o ../../../../../rtems/c/src/../../cpukit/libcsupport/src/error.c &&\
    mv -f $depbase.Tpo $depbase.Po
    In file included from /home/joel/rtems-cron-6/rtems/cpukit/include/rtems/score/threaddispatch.h:21,
    from /home/joel/rtems-cron-6/rtems/cpukit/include/rtems/score/objectimpl.h:29,
    from /home/joel/rtems-cron-6/rtems/cpukit/include/rtems/score/threadimpl.h:31,
    from ../../../../../rtems/c/src/../../cpukit/libcsupport/src/error.c:16:
    /home/joel/rtems-cron-6/rtems/cpukit/include/rtems/score/percpu.h:439:3: error: unknown type name 'CPU_Interrupt_frame'
    439 | CPU_Interrupt_frame Interrupt_frame;
    | ^~~~~~~~~~~~~~~~~~~
    Comment 1
    1. Joel Sherrill, Tue, 29 Sep 2020 21:53:17 GMT

    I am not going through every failing ARM BSP but spot checking shows that this impacts the lpc176x family also.

    Comment 2
    1. Joel Sherrill, Tue, 29 Sep 2020 22:03:41 GMT
    2. description: modified (diff)
    Comment 3
    1. Sebastian Huber, Wed, 30 Sep 2020 05:51:40 GMT

    These BSPs don't support SMP.

    Comment 4
    1. Joel Sherrill, Wed, 30 Sep 2020 12:59:08 GMT

    And why is this not a more obvious configure time problem in waf?

    I would report the failures against waf but since it uses the same build directory all the time, I can't rebuild those until all the builds fail and it is just now getting to mips.

    Comment 5
    1. Sebastian Huber, Thu, 01 Oct 2020 20:08:10 GMT

    Fixed by recent commit.

    Comment 6
    1. Sebastian Huber, Thu, 01 Oct 2020 20:10:15 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed

    4103 - BeagleBoard BSPs Fail to Build

    Link https://devel.rtems.org/ticket/4103
    Id 4103
    Reporter Joel Sherrill
    Created 29 September 2020 22:03:16
    Modified 1 October 2020 20:09:48
    Owner  
    Type defect
    Component admin
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    This may also fail on 5.

    ../rtems/configure --target=arm-rtems6 --enable-rtemsbsp=beagleboardorig --prefix=/home/joel/rtems-cron-6/tools/6/bsp-install --disable-networking --enable-posix --enable-smp --disable-multiprocessing --disable-rtems-debug --disable-profiling --enable-tests --enable-cxx --enable-maintainer-mode

    arm-rtems6-gcc  -mcpu=cortex-a8 -O2 -g -ffunction-sections -fdata-sections -Wall -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs -B./../../lib/libbsp/arm/beagle -B/home/joel/rtems-cron-6/rtems/bsps/arm/beagle/start -specs bsp_specs -qrtems -L./../../cpukit -L/home/joel/rtems-cron-6/rtems/bsps/arm/shared/start -Wl,--wrap=printf -Wl,--wrap=puts -Wl,--wrap=putchar -Wl,--gc-sections -o base_sp.exe base_sp/base_sp-init.o base_sp/base_sp-apptask.o ./../../lib/libbsp/arm/beagle/librtemsbsp.a ./../../cpukit/librtemscpu.a ./../../cpukit/librtemstest.a
    /home/joel/rtems-cron-6/tools/6/lib/gcc/arm-rtems6/10.2.1/../../../../arm-rtems6/bin/ld: ./../../cpukit/librtemscpu.a(threadrestart.o): in function `_Thread_Dispatch_request':
    /home/joel/rtems-cron-6/rtems/cpukit/include/rtems/score/threaddispatch.h:245: undefined reference to `_CPU_SMP_Send_interrupt'
    /home/joel/rtems-cron-6/tools/6/lib/gcc/arm-rtems6/10.2.1/../../../../arm-rtems6/bin/ld: ./../../cpukit/librtemscpu.a(smp.o): in function `_SMP_Handler_initialize':
    /home/joel/rtems-cron-6/b-beagleboardorig/arm-rtems6/c/beagleboardorig/cpukit/../../../../../rtems/c/src/../../cpukit/score/src/smp.c:135: undefined reference to `_CPU_SMP_Initialize'
    /home/joel/rtems-cron-6/tools/6/lib/gcc/arm-rtems6/10.2.1/../../../../arm-rtems6/bin/ld: ./../../cpukit/librtemscpu.a(smp.o): in function `_SMP_Start_processors':
    /home/joel/rtems-cron-6/b-beagleboardorig/arm-rtems6/c/beagleboardorig/cpukit/../../../../../rtems/c/src/../../cpukit/score/src/smp.c:78: undefined reference to `_CPU_SMP_Start_processor'
    /home/joel/rtems-cron-6/tools/6/lib/gcc/arm-rtems6/10.2.1/../../../../arm-rtems6/bin/ld: ./../../cpukit/librtemscpu.a(smp.o): in function `_SMP_Handler_initialize':
    /home/joel/rtems-cron-6/b-beagleboardorig/arm-rtems6/c/beagleboardorig/cpukit/../../../../../rtems/c/src/../../cpukit/score/src/smp.c:151: undefined reference to `_CPU_SMP_Finalize_initialization'
    /home/joel/rtems-cron-6/tools/6/lib/gcc/arm-rtems6/10.2.1/../../../../arm-rtems6/bin/ld: /home/joel/rtems-cron-6/b-beagleboardorig/arm-rtems6/c/beagleboardorig/cpukit/../../../../../rtems/c/src/../../cpukit/score/src/smp.c:135: undefined reference to `_CPU_SMP_Initialize'
    /home/joel/rtems-cron-6/tools/6/lib/gcc/arm-rtems6/10.2.1/../../../../arm-rtems6/bin/ld: ./../../cpukit/librtemscpu.a(smp.o): in function `_SMP_Send_message':
    /home/joel/rtems-cron-6/b-beagleboardorig/arm-rtems6/c/beagleboardorig/cpukit/../../../../../rtems/c/src/../../cpukit/score/src/smp.c:221: undefined reference to `_CPU_SMP_Send_interrupt'
    /home/joel/rtems-cron-6/tools/6/lib/gcc/arm-rtems6/10.2.1/../../../../arm-rtems6/bin/ld: ./../../cpukit/librtemscpu.a(threadstartmultitasking.o): in function `_Thread_Start_multitasking':
    /home/joel/rtems-cron-6/b-beagleboardorig/arm-rtems6/c/beagleboardorig/cpukit/../../../../../rtems/c/src/../../cpukit/score/src/threadstartmultitasking.c:44: undefined reference to `_CPU_SMP_Prepare_start_multitasking'
    collect2: error: ld returned 1 exit status
    gmake[5]: *** [base_sp.exe] Error 1
    Comment 1
    1. Chris Johns, Wed, 30 Sep 2020 03:13:48 GMT

    The BBB is a single core SoC and so the SMP option has no meaning.

    Comment 2
    1. Sebastian Huber, Thu, 01 Oct 2020 20:09:48 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed

    Fixed by recent commit.


    4105 - Add RTEMS_PARTITION_ALIGNMENT

    Link https://devel.rtems.org/ticket/4105
    Id 4105
    Reporter Sebastian Huber
    Created 30 September 2020 11:55:29
    Modified 2 September 2021 06:03:19
    Owner Sebastian Huber
    Type enhancement
    Component rtems
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    The storage area for partitions is usually statically allocated. Add RTEMS_PARTITION_ALIGNMENT so that these areas can meet the minimum alignment required by rtems_partition_create().

    This is related to #4013.

    Comment 1
    1. Sebastian Huber, Wed, 07 Oct 2020 06:11:41 GMT

    In 97e9728/rtems:

    rtems: Add RTEMS_PARTITION_ALIGNMENT Update #4105.
    Comment 2
    1. Sebastian Huber, Fri, 18 Jun 2021 09:24:45 GMT
    2. keywords: qualification added
    Comment 3
    1. Sebastian Huber, Thu, 02 Sep 2021 06:03:19 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    4107 - waf -j24 fails on powerpc/psim -- probable dependency issue

    Link https://devel.rtems.org/ticket/4107
    Id 4107
    Reporter Joel Sherrill
    Created 30 September 2020 19:08:05
    Modified 1 October 2020 05:47:05
    Owner Sebastian Huber
    Type defect
    Component build
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    While experimenting with -j options since waf defaults to fewer jobs than I have been using with make, I tripped across this failure on powerpc/psim which I assume is a missing dependency somewhere:

    1561/4127] Linking build/powerpc/psim/testsuites/fstests/fsjffs2gc01.exe
    [1562/4127] Linking build/powerpc/psim/testsuites/fstests/fsclose01.exe
    [1563/4127] Linking build/powerpc/psim/libdebugger.a
    [1564/4127] Linking build/powerpc/psim/libz.a
    [1565/4127] Compiling testsuites/fstests/fslink/test.c
    /home/joel/rtems-work/tools/6/lib/gcc/powerpc-rtems6/10.2.1/../../../../powerpc-rtems6/bin/ld: cannot find -ljffs2
    collect2: error: ld returned 1 exit status
    ../../../testsuites/fstests/fsdosfsname01/init.c: In function 'test_creating_invalid_directories':
    ../../../testsuites/fstests/fsdosfsname01/init.c:430:19: warning: '%s' directive output may be truncated writing up to 6424 bytes into a region of size 257 [-Wformat-truncation=]
    430 | "%s/%s",
    | ^~
    ../../../testsuites/fstests/fsdosfsname01/init.c:428:5: note: 'snprintf' output between 6 and 6430 bytes into a destination of size 262
    428 | snprintf( dirname,
    | ^~~~~~~~~~~~~~~~~~
    429 | sizeof( dirname ),
    | ~~~~~~~~~~~~~~~~~~
    430 | "%s/%s",
    | ~~~~~~~~
    431 | MOUNT_DIR,
    | ~~~~~~~~~~
    432 | DIRECTORY_NAMES_INVALID[index] );
    | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ../../../cpukit/mghttpd/mongoose.c: In function 'handle_request':
    ../../../cpukit/mghttpd/mongoose.c:1919:45: warning: '.gz' directive output may be truncated writing 3 bytes into a region of size between 1 and 255 [-Wformat-truncation=]
    1919 | snprintf(gz_path, sizeof(gz_path), "%s.gz", buf);
    | ^~~
    ../../../cpukit/mghttpd/mongoose.c:1919:7: note: 'snprintf' output between 4 and 258 bytes into a destination of size 255
    1919 | snprintf(gz_path, sizeof(gz_path), "%s.gz", buf);
    | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Waf: Leaving directory `/home/joel/rtems-work/rtems/build/powerpc/psim'
    Build failed
    -> task in 'testsuites/fstests/fsjffs2gc01.exe' failed with exit status 1 (run with -v to display more information)

    INI file was:

    [powerpc/psim]
    # Selects the compiler used to build the BSP (allowed values are "gcc" and
    # "clang"). Please note that the values of some options depend on the compiler
    # selection and changing the compiler may lead to unpredictable behaviour if
    # these options are not adjusted as well. Use the --rtems-compiler command line
    # option to get the default values for a particular compiler via
    # ./waf bsp_defaults.
    COMPILER = gcc
    # Flags passed to the library archiver
    ARFLAGS = crD
    # Warning flags passed to the C and C++ compiler
    WARNING_FLAGS = -Wall
    # Warning flags passed to the C compiler
    CC_WARNING_FLAGS = -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs
    # Warning flags passed to the C++ compiler
    CXX_WARNING_FLAGS =
    # Enable the Ada support
    __RTEMS_ADA__ = False
    # Enable the RTEMS internal debug support
    RTEMS_DEBUG = False
    # Enable the Driver Manager startup
    RTEMS_DRVMGR_STARTUP = False
    # Enable the message passing based multiprocessing support (MPCI); do
    # not confuse this with the SMP support
    RTEMS_MULTIPROCESSING = False
    # Enable the legacy TCP/IP network support
    RTEMS_NETWORKING = False
    # Enable the Newlib C library support
    RTEMS_NEWLIB = True
    # Enable the para-virtualization support
    RTEMS_PARAVIRT = False
    # Enable support for POSIX signals
    RTEMS_POSIX_API = True
    # Enable the SMP lock profiling support
    RTEMS_PROFILING = False
    # Enable the Symmetric Multiprocessing (SMP) support
    RTEMS_SMP = False
    # Build the Ada test programs (may be also enabled by BUILD_TESTS)
    BUILD_ADATESTS = False
    # Build the test programs
    BUILD_TESTS = True
    # Build the benchmark programs (may be also enabled by BUILD_TESTS)
    BUILD_BENCHMARKS = False
    # Build the file system test programs (may be also enabled by
    # BUILD_TESTS)
    BUILD_FSTESTS = False
    # Build the library test programs (may be also enabled by BUILD_TESTS)
    BUILD_LIBTESTS = False
    # Build the MPCI test programs (may be also enabled by BUILD_TESTS)
    BUILD_MPTESTS = False
    # Build the POSIX test programs (may be also enabled by BUILD_TESTS)
    BUILD_PSXTESTS = False
    # Build the POSIX timing test programs (may be also enabled by
    # BUILD_TESTS)
    BUILD_PSXTMTESTS = False
    # Build the Rhealstone benchmark programs (may be also enabled by
    # BUILD_TESTS)
    BUILD_RHEALSTONE = False
    # Build the sample programs (may be also enabled by BUILD_TESTS)
    BUILD_SAMPLES = True
    # Build the SMP test programs (may be also enabled by BUILD_TESTS)
    BUILD_SMPTESTS = False
    # Build the single-processor test programs (may be also enabled by
    # BUILD_TESTS)
    BUILD_SPTESTS = False
    # Build the timing test programs (may be also enabled by BUILD_TESTS)
    BUILD_TMTESTS = False
    # Build the validation test programs (may be also enabled by
    # BUILD_TESTS)
    BUILD_VALIDATIONTESTS = False
    # Optimization flags passed to the C and C++ compiler
    OPTIMIZATION_FLAGS = -O2 -g -fdata-sections -ffunction-sections
    # ABI flags
    ABI_FLAGS = -Dppc603e -meabi -mcpu=603e -msdata=sysv
    # This sets a mode where the time runs as fast as possible when a
    # clock ISR occurs while the IDLE thread is executing. This can
    # significantly reduce simulation times.
    CLOCK_DRIVER_USE_FAST_IDLE = True
    # If defined then the BSP may reduce the available memory size
    # initially. This can be useful for debugging (reduce the core size)
    # or dynamic loading (std gcc text offsets/jumps are < +/-32M). Note
    # that the policy can still be defined by the application (see sbrk.c,
    # BSP_sbrk_policy). By undefining CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK
    # this feature is removed and a little memory is saved.
    CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK = True
    # If defined, then the PowerPC specific code in RTEMS will use some of
    # the special purpose registers to slightly optimize interrupt
    # response time. The use of these registers can conflict with other
    # tools like debuggers.
    PPC_USE_SPRG = False
    # This defines the base address of the exception table. NOTE: Vectors
    # are actually at 0xFFF00000 but file starts at offset.
    PPC_VECTOR_FILE_BASE = 0xfff00100
    # If defined to a non-zero value, prints the some information in case
    # of a fatal error.
    BSP_VERBOSE_FATAL_EXTENSION = 1
    # Flags passed to the linker (GNU ld)
    LDFLAGS = -Wl,--gc-sections
    # Install the legacy application Makefile framework.
    INSTALL_LEGACY_MAKEFILES = True
    # If defined to a non-zero value, prints the exception context when an
    # unexpected exception occurs.
    BSP_PRINT_EXCEPTION_CONTEXT = 1
    # If defined to a non-zero value, reset the board when the application
    # exits.
    BSP_RESET_BOARD_AT_EXIT = 1
    # If defined to a non-zero value, print a message and wait until
    # pressed before resetting board when application exits.
    BSP_PRESS_KEY_FOR_RESET = 0
    Comment 1
    1. Joel Sherrill, Wed, 30 Sep 2020 19:08:19 GMT
    2. owner: set to Sebastian Huber
    3. status: changed from new to assigned
    Comment 2
    1. Sebastian Huber, Thu, 01 Oct 2020 05:39:30 GMT

    In 9628dfd/rtems-docs:

    eng: Clarify stlib build attribute Update #4107.
    Comment 3
    1. Sebastian Huber, Thu, 01 Oct 2020 05:47:05 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 16b29af2/rtems:

    build: Fix build dependencies of JFFS2 tests Close #4107.

    4108 - Review minimum and ensure it really is a minimum configuration

    Link https://devel.rtems.org/ticket/4108
    Id 4108
    Reporter Joel Sherrill
    Created 1 October 2020 16:25:45
    Modified 8 September 2022 14:29:37
    Owner Sebastian Huber
    Type defect
    Component test
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Does minimum actually reflect what you think is the smallest possible configuration now? That as always the test's purpose -- to have a single that was the smallest we thought we could produce. It seems all your changes that it needs a review for tweaks to the configuration.

    Inspecting the size of this test should tell you the smallest executable possible on this BSP with the current configuration settings.

    There is a version in rtems-examples/misc which will either need to be synchronized or deleted.

    This needs to be checked on 5 and 6.

    Comment 1
    1. Joel Sherrill, Thu, 01 Oct 2020 16:25:56 GMT
    2. owner: changed from joel@… to Sebastian Huber
    3. status: changed from new to assigned
    Comment 2
    1. Sebastian Huber, Thu, 01 Oct 2020 17:08:50 GMT
    2. version: changed from 5 to 6
    3. milestone: changed from 5.2 to 6.1
    Comment 3
    1. Sebastian Huber, Thu, 08 Sep 2022 14:29:37 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 120c857e/rtems:

    minimum: Do not use unified work areas The CONFIGURE_UNIFIED_WORK_AREAS option pulls in a system initialization handler which initializes the unified heap. Close #4108.

    4110 - Ubuntu package list is broken

    Link https://devel.rtems.org/ticket/4110
    Id 4110
    Reporter Chris Johns
    Created 2 October 2020 02:33:59
    Modified 22 December 2021 15:28:57
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component unspecified
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The list found here:

    ​https://docs.rtems.org/branches/master/user/hosts/posix.html#xubuntu

    failed with libpython-dev. A Linux user needs to check this and update the list.

    Comment 1
    1. Chris Johns, Fri, 02 Oct 2020 02:39:02 GMT

    I suggest adding:

    sudo apt-get install python3-venv
    python3 -m venv py
    . ./py/bin/activate 

    because there is no python command

    Comment 2
    1. Ryan Long, Wed, 22 Dec 2021 15:28:57 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 4e22dfe/rtems-docs:

    Update package list for Ubuntu Updated the latest version referenced of Ubuntu to 20.04, updated package list, and identified what packages need to still be installed afterwards to pass sb-check. Closes #4110

    4115 - Cortex-A9 MPCore based BSPs should include the workaround for Errata 794072 and 845369

    Link https://devel.rtems.org/ticket/4115
    Id 4115
    Reporter Sebastian Huber
    Created 2 October 2020 09:37:01
    Modified 16 October 2020 04:39:17
    Owner Sebastian Huber
    Type defect
    Component arch/arm
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Cloned from #4114:

    The workaround may be already set up by the bootloader. Not having the workaround applied may lead to system crashes, so make sure the BSP does it during system startup.

    Comment 1
    1. Sebastian Huber, Fri, 02 Oct 2020 09:37:11 GMT
    2. owner: set to Sebastian Huber
    3. status: changed from new to assigned
    Comment 2
    1. Sebastian Huber, Mon, 05 Oct 2020 06:47:22 GMT
    2. description: modified (diff)
    3. summary: changed from Cortex-A9 MPCore based BSPs should include the workaround for Errata 845369 (cloned) to Cortex-A9 MPCore based BSPs should include the workaround for Errata 794072 and 845369
    Comment 3
    1. Sebastian Huber, Fri, 16 Oct 2020 04:39:13 GMT

    In e7b878e/rtems:

    bsps/arm: Workaround for Errata 845369 Add a workaround for Cortex-A9 Errata 845369: Under Very Rare Timing Circumstances Transition into Streaming Mode Might Create Data Corruption. Update #4115.
    Comment 4
    1. Sebastian Huber, Fri, 16 Oct 2020 04:39:17 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In cf16821/rtems:

    bsps/arm: Add workaround for Errata 794072 Add a workaround for Cortex-A9 Errata 845369: A short loop including a DMB instruction might cause a denial of service on another which executes a CP15 broadcast operation. Close #4115.

    4116 - raspberrypi fails to build on waf and autoconf

    Link https://devel.rtems.org/ticket/4116
    Id 4116
    Reporter Joel Sherrill
    Created 2 October 2020 14:15:32
    Modified 7 October 2020 05:45:58
    Owner Sebastian Huber
    Type defect
    Component arch/arm
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords wafblocker
    Cc  
    Blocking  
    Blocked by  

    Description

    This may apply to 5 as well but I didn't check.

    The following configurations for pi didn't build:

    FAILED (2)  autoconf build of arm raspberrypi (SMP/NOMP/DEBUG/PROFILE)
    FAILED (1) waf build of arm raspberrypi (SMP/NOMP/DEBUG/PROFILE)
    FAILED (2) autoconf build of arm raspberrypi (SMP/NOMP/DEBUG/NOPROFILE)
    FAILED (1) waf build of arm raspberrypi (SMP/NOMP/DEBUG/NOPROFILE)
    FAILED (2) autoconf build of arm raspberrypi (SMP/NOMP/NODEBUG/PROFILE)
    FAILED (1) waf build of arm raspberrypi (SMP/NOMP/NODEBUG/PROFILE)
    FAILED (2) autoconf build of arm raspberrypi (SMP/NOMP/NODEBUG/NOPROFILE)
    FAILED (1) waf build of arm raspberrypi (SMP/NOMP/NODEBUG/NOPROFILE)

    This one of the configure commands:

     ../rtems/configure --target=arm-rtems6 --enable-rtemsbsp=raspberrypi --prefix=/home/joel/rtems-cron-6/tools/6/bsp-install --disable-networking --enable-posix --enable-smp --disable-multiprocessing --enable-rtems-debug --enable-profiling --enable-tests --enable-cxx --enable-maintainer-mode 

    And this is the failure:

    gmake[4]: Entering directory `/home/joel/rtems-cron-6/b-raspberrypi/arm-rtems6/c/raspberrypi/cpukit'
    depbase=`echo score/cpu/arm/cpu_asm.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
    arm-rtems6-gcc --pipe -DHAVE_CONFIG_H -I. -I/home/joel/rtems-cron-6/b-raspberrypi/arm-rtems6/c/raspberrypi/include -I/home/joel/rtems-cron-6/rtems/cpukit/include -I/home/joel/rtems-cron-6/rtems/cpukit/score/cpu/arm/include -DASM -mcpu=arm1176jzf-s -O2 -g -ffunction-sections -fdata-sections -Wall -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs -mcpu=arm1176jzf-s -O2 -g -ffunction-sections -fdata-sections -Wall -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs -MT score/cpu/arm/cpu_asm.o -MD -MP -MF $depbase.Tpo -c -o score/cpu/arm/cpu_asm.o ../../../../../rtems/c/src/../../cpukit/score/cpu/arm/cpu_asm.S &&\
    mv -f $depbase.Tpo $depbase.Po
    ../../../../../rtems/c/src/../../cpukit/score/cpu/arm/cpu_asm.S: Assembler messages:
    ../../../../../rtems/c/src/../../cpukit/score/cpu/arm/cpu_asm.S:75: Error: selected processor does not support `dmb' in ARM mode
    ../../../../../rtems/c/src/../../cpukit/score/cpu/arm/cpu_asm.S:93: Error: selected processor does not support `dmb' in ARM mode
    gmake[4]: *** [score/cpu/arm/cpu_asm.o] Error 1
    Comment 1
    1. Joel Sherrill, Tue, 06 Oct 2020 22:22:02 GMT
    2. keywords: wafblocker added

    Confirming this still fails in all autoconf and waf builds with SMP enabled.

    Comment 2
    1. Joel Sherrill, Tue, 06 Oct 2020 22:22:13 GMT
    2. owner: set to Sebastian Huber
    3. status: changed from new to assigned
    Comment 3
    1. Sebastian Huber, Wed, 07 Oct 2020 05:45:58 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In ca9b2e3/rtems:

    build: Remove raspberrypi from RTEMS_SMP Close #4116.

    4117 - lpc1768_mbed_ahb_ram_eth sp01 and others fail to link

    Link https://devel.rtems.org/ticket/4117
    Id 4117
    Reporter Joel Sherrill
    Created 2 October 2020 15:50:32
    Modified 5 October 2020 17:34:48
    Owner Sebastian Huber
    Type defect
    Component arch/arm
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    This fails on both waf and autoconf. This is troubling because the test is sp01 which should build and link.

    Did not check if this also applies to 5 branch.

    ../rtems/configure --target=arm-rtems6 --enable-rtemsbsp=lpc1768_mbed_ahb_ram_eth --prefix=/home/joel/rtems-cron-6/tools/6/bsp-install --disable-networking --enable-posix --disable-smp --disable-multiprocessing --disable-rtems-debug --disable-profiling --enable-tests --enable-cxx --enable-maintainer-mode 

    Fails with:

    arm-rtems6-gcc  -mthumb -mcpu=cortex-m3 -O2 -ggdb3 -ffunction-sections -fdata-sections -Wall -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs -B./../../lib/libbsp/arm/lpc176x -B/home/joel/rtems-cron-6/rtems/bsps/arm/lpc176x/start -specs bsp_specs -qrtems -L./../../cpukit -L/home/joel/rtems-cron-6/rtems/bsps/arm/shared/start -Wl,--wrap=printf -Wl,--wrap=puts -Wl,--wrap=putchar -Wl,--gc-sections -o sp01.exe sp01/sp01-init.o sp01/sp01-task1.o ./../../lib/libbsp/arm/lpc176x/librtemsbsp.a ./../../cpukit/librtemscpu.a ./../../cpukit/librtemstest.a
    /home/joel/rtems-cron-6/tools/6/lib/gcc/arm-rtems6/10.2.1/../../../../arm-rtems6/bin/ld: sp01.exe section `.bss' will not fit in region `RAM_AHB1'
    /home/joel/rtems-cron-6/tools/6/lib/gcc/arm-rtems6/10.2.1/../../../../arm-rtems6/bin/ld: region `RAM_AHB1' overflowed by 2324 bytes
    collect2: error: ld returned 1 exit status
    gmake[5]: *** [sp01.exe] Error 1
    Comment 1
    1. Joel Sherrill, Fri, 02 Oct 2020 15:50:49 GMT
    2. owner: set to Sebastian Huber
    3. status: changed from new to assigned
    Comment 2
    1. Sebastian Huber, Fri, 02 Oct 2020 15:52:59 GMT

    Are you sure it fails with waf?

    spec/build/bsps/arm/lpc176x/tstlpc1768mbedahbrameth.yml: sp01: exclude

    Comment 3
    1. Joel Sherrill, Fri, 02 Oct 2020 16:39:29 GMT

    Because waf uses the same build tree, I can't reproduce the waf build until the complete sweep finishes. It is a lost feature not to have the ability to have the build tree vary from build to build. :(

    Anyway, this is what I have in the build log. Maybe you can reproduce more:

     grep FAILED all-bsps-log.txt | grep lpc1768_mbed_ahb_ram_eth
    FAILED (2)  autoconf build of arm lpc1768_mbed_ahb_ram_eth (NOSMP/NOMP/DEBUG/PROFILE)
    FAILED (1)  waf build of arm lpc1768_mbed_ahb_ram_eth (NOSMP/NOMP/DEBUG/PROFILE)
    FAILED (2)  autoconf build of arm lpc1768_mbed_ahb_ram_eth (NOSMP/NOMP/DEBUG/NOPROFILE)
    FAILED (1)  waf build of arm lpc1768_mbed_ahb_ram_eth (NOSMP/NOMP/DEBUG/NOPROFILE)
    FAILED (2)  autoconf build of arm lpc1768_mbed_ahb_ram_eth (NOSMP/NOMP/NODEBUG/PROFILE)
    FAILED (1)  waf build of arm lpc1768_mbed_ahb_ram_eth (NOSMP/NOMP/NODEBUG/PROFILE)
    FAILED (2)  autoconf build of arm lpc1768_mbed_ahb_ram_eth (NOSMP/NOMP/NODEBUG/NOPROFILE)
    FAILED (1)  waf build of arm lpc1768_mbed_ahb_ram_eth (NOSMP/NOMP/NODEBUG/NOPROFILE) 

    Please go ahead and add sp01 to the tcfg so the builds can get closer to matching. There was also at least one other test that didn't fit into the memory. We must achieve parity before the switchover. Minor issues must be addressed in the autoconf side. Major ones we will work around (like the smp/mp option).

    Comment 4
    1. Sebastian Huber, Mon, 05 Oct 2020 17:34:48 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In a9995f1/rtems:

    bsp/lpc176x: Fix memory map Due to the static allocation of operating system resources the .bss section needs more space than the .work section. Close #4117.

    4118 - Add clang variants for sparc BSPs

    Link https://devel.rtems.org/ticket/4118
    Id 4118
    Reporter Joel Sherrill
    Created 2 October 2020 15:53:11
    Modified 2 October 2020 15:55:17
    Owner  
    Type defect
    Component arch/sparc
    Status closed
    Resolution wontfix
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    There are clang variants for RISV-V BSPs but not SPARC BSPs even though clang is supported on them.

    If there are other architectures with clang support, I don't know.

    Comment 1
    1. Sebastian Huber, Fri, 02 Oct 2020 15:55:17 GMT
    2. status: changed from new to closed
    3. resolution: set to wontfix

    There is no need to add clang BSPs. The new build system has an option to select the compiler.


    4120 - altcycv_devkit and imx7 fail to build all tests on master

    Link https://devel.rtems.org/ticket/4120
    Id 4120
    Reporter Joel Sherrill
    Created 3 October 2020 21:40:21
    Modified 5 October 2020 10:01:00
    Owner Sebastian Huber
    Type defect
    Component arch/arm
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    This appears to not happen with waf but it needs to be resolved or we don't have parity to achieve a switchover.

    Happens to at least two BSPs. Not sure if more until all arm BSP configurations finish.

    Configuration:

    ../rtems/configure --target=arm-rtems6 --enable-rtemsbsp=altcycv_devkit --prefix=/home/joel/rtems-cron-6/tools/6/bsp-install --disable-networking --enable-posix --enable-smp --disable-multiprocessing --enable-rtems-debug --enable-profiling --enable-tests --enable-cxx --enable-maintainer-mode 

    Results in:

    arm-rtems6-gcc -DHAVE_CONFIG_H -I. -I../../../../../../rtems/c/src/../../testsuites/smptests   -I. -I/home/joel/rtems-cron-6/b-altcycv_devkit/arm-rtems6/c/altcycv_devkit/include -I/home/joel/rtems-cron-6/rtems/cpukit/include -I/home/joel/rtems-cron-6/rtems/cpukit/score/cpu/arm/include -I/home/joel/rtems-cron-6/b-altcycv_devkit/arm-rtems6/c/altcycv_devkit/lib/libbsp/arm/altera-cyclone-v/include -I/home/joel/rtems-cron-6/rtems/bsps/include -I/home/joel/rtems-cron-6/rtems/bsps/arm/include -I/home/joel/rtems-cron-6/rtems/bsps/arm/altera-cyclone-v/include -DT_FILE_NAME='"init.c"'  -I../../../../../../rtems/c/src/../../testsuites/smptests/../support/include   -march=armv7-a -mthumb -mfpu=neon -mfloat-abi=hard -mtune=cortex-a9 -O2 -g -ffunction-sections -fdata-sections -Wall -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs -MT smpmulticast01/smpmulticast01-init.o -MD -MP -MF smpmulticast01/.deps/smpmulticast01-init.Tpo -c -o smpmulticast01/smpmulticast01-init.o `test -f 'smpmulticast01/init.c' || echo '../../../../../../rtems/c/src/../../testsuites/smptests/'`smpmulticast01/init.c
    ../../../../../../rtems/c/src/../../testsuites/smptests/smpmulticast01/init.c:37:10: fatal error: rtems/testopts.h: No such file or directory
    37 | #include
    | ^~~~~~~~~~~~~~~~~~
    compilation terminated.
    gmake[5]: *** [smpmulticast01/smpmulticast01-init.o] Error 1
    Comment 1
    1. Joel Sherrill, Sat, 03 Oct 2020 21:46:42 GMT
    2. description: modified (diff)
    3. summary: changed from altcycv_devkit famils to build all tests on master to altcycv_devkit and imx7 fail to build all tests on master
    Comment 2
    1. Sebastian Huber, Mon, 05 Oct 2020 10:01:00 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 2c367617/rtems:

    build: Add testopts.h to configure script Close #4120.

    4121 - lm3s3749 fails to build all tests on master

    Link https://devel.rtems.org/ticket/4121
    Id 4121
    Reporter Joel Sherrill
    Created 4 October 2020 01:24:57
    Modified 5 October 2020 17:34:51
    Owner Sebastian Huber
    Type defect
    Component arch/arm
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    FAILED (2) autoconf build of arm lm3s3749 (NOSMP/NOMP/DEBUG/PROFILE)
    FAILED (1) waf build of arm lm3s3749 (NOSMP/NOMP/DEBUG/PROFILE)
    FAILED (2) autoconf build of arm lm3s3749 (NOSMP/NOMP/DEBUG/NOPROFILE)
    FAILED (1) waf build of arm lm3s3749 (NOSMP/NOMP/DEBUG/NOPROFILE)

    ../rtems/configure --target=arm-rtems6 --enable-rtemsbsp=lm3s3749 OPERATION_COUNT=10 --prefix=/home/joel/rtems-cron-6/tools/6/bsp-install --disable-networking --enable-posix --disable-smp --disable-multiprocessing --enable-rtems-debug --enable-profiling --enable-tests --enable-cxx --enable-maintainer-mode 
    arm-rtems6-gcc  -mthumb -mcpu=cortex-m3 -O2 -g -ffunction-sections -fdata-sections -Wall -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs -B./../../lib/libbsp/arm/lm3s69xx -B/home/joel/rtems-cron-6/rtems/bsps/arm/lm3s69xx/start -specs bsp_specs -qrtems -L./../../cpukit -L/home/joel/rtems-cron-6/rtems/bsps/arm/shared/start -Wl,--wrap=printf -Wl,--wrap=puts -Wl,--wrap=putchar -Wl,--gc-sections -o math.exe math/math-init.o math/math-domath.o -lm ./../../lib/libbsp/arm/lm3s69xx/librtemsbsp.a ./../../cpukit/librtemscpu.a ./../../cpukit/librtemstest.a
    /home/joel/rtems-cron-6/tools/6/lib/gcc/arm-rtems6/10.2.1/../../../../arm-rtems6/bin/ld: math.exe section `.rodata' will not fit in region `ROM_INT'
    /home/joel/rtems-cron-6/tools/6/lib/gcc/arm-rtems6/10.2.1/../../../../arm-rtems6/bin/ld: region `ROM_INT' overflowed by 2872 bytes
    Comment 1
    1. Sebastian Huber, Mon, 05 Oct 2020 17:34:51 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 83278070/rtems:

    build: Add test excludes for RTEMS_DEBUG Close #4121.

    4122 - Change RTEMS_NO_RETURN to use C11 and C++11 standard means

    Link https://devel.rtems.org/ticket/4122
    Id 4122
    Reporter Sebastian Huber
    Created 6 October 2020 06:04:45
    Modified 23 June 2021 07:07:55
    Owner Sebastian Huber
    Type enhancement
    Component rtems
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    C11 has a _Noreturn keyword and C++11 has a noreturn? attribute. The standards are a bit less flexible than the GNU attribute with respect to the position of the attribute.

    Comment 1
    1. Sebastian Huber, Sat, 10 Oct 2020 12:01:39 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In d7a48e1/rtems:

    rtems: Improve RTEMS_NO_RETURN attribute Provide RTEMS_NO_RETURN also in case RTEMS_DEBUG is defined to prevent errors like this: error: no return statement in function returning non-void [-Werror=return-type] Use C11 and C++11 standard means to declare a no-return function. Close #4122.
    Comment 2
    1. Sebastian Huber, Wed, 23 Jun 2021 07:07:55 GMT
    2. keywords: qualification added

    4123 - rtems-bsps needs to be switched to look at waf info for BSPs

    Link https://devel.rtems.org/ticket/4123
    Id 4123
    Reporter Joel Sherrill
    Created 6 October 2020 18:06:02
    Modified 5 November 2020 20:16:18
    Owner Sebastian Huber <sebastian.huber@…>
    Type enhancement
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords wafblocker
    Cc  
    Blocking  
    Blocked by  

    Description

    rtems-bsps depends on autoconf. It must be fixed to depend on waf BSP configuration information before we can switch from autoconf.

    Comment 1
    1. Chris Johns, Wed, 07 Oct 2020 00:19:24 GMT

    The rtems-bsps command needs to have some python code to read the spec YAML files. This is currently in the wscript along with the generated pickle data optimisation. I would like to have a common piece of python code in the spec directory rtems-bsps and wscript can share so the generated data can be shared.

    The rtems-bsps code needs to use the same pickled data waf uses. Without this rtems-bsps would suffer the same performance issues waf had early in it's development that lead to the generation solution. Invoking rtems-bsps may result in the same regeneration message waf produces but that is OK.

    A common python module for wscript and rtems-bsps follows the model used in the spec data where something is defined once and reused. I believe there is code in rtems-central that could be exported (copied into rtems.git) and used but I have not looked into this. The exporting could be handled in a similar way to the generation procedures in place for documentation and headers.

    Comment 2
    1. Sebastian Huber, Thu, 05 Nov 2020 20:16:18 GMT
    2. owner: set to Sebastian Huber <sebastian.huber@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 4cd885c/rtems:

    rtems-bsps: Use build specification items Close #4123.

    4124 - rtems-bsp-builder needs to be switched to waf builds

    Link https://devel.rtems.org/ticket/4124
    Id 4124
    Reporter Joel Sherrill
    Created 6 October 2020 18:06:59
    Modified 25 May 2021 17:41:39
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords wafblocker
    Cc  
    Blocking  
    Blocked by  

    Description

    rtems-bsp-tester depends on autoconf. It must be fixed to depend on waf BSP configuration information before we can switch from autoconf.

    Comment 1
    1. Chris Johns, Wed, 07 Oct 2020 00:21:02 GMT

    Do you mean rtems-bsp-builder?

    Comment 2
    1. Joel Sherrill, Tue, 18 May 2021 14:19:30 GMT
    2. summary: changed from rtems-bsp-tester needs to be switched to waf builds to rtems-bsp-builder needs to be switched to waf builds
    Comment 3
    1. Ryan Long, Tue, 25 May 2021 17:41:39 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 527848d/rtems-tools:

    rtems-bsp-builder: Change to waf build system Closes #4124

    4125 - Update wiki pages to reference waf not autoconf based build

    Link https://devel.rtems.org/ticket/4125
    Id 4125
    Reporter Joel Sherrill
    Created 6 October 2020 18:27:32
    Modified 29 November 2022 23:23:25
    Owner Joel Sherrill
    Type defect
    Component doc
    Status assigned
    Resolution  
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords wafblocker
    Cc  
    Blocking  
    Blocked by  

    Description

    Since configure is a horrible thing to search for, I searched for "enable-rtems" in the wiki. The results are ​https://devel.rtems.org/search?q=enable-rtems&noquickjump=1&wiki=on and show about 20 pages that need review.

    Some may be ok since they are historical on GSoC projects but others will need updating. Some are BSP pages which really should be converted to the Users Guide and updated.

    We have an ongoing effort to reduce the wiki and some of these pages may be good candidates. Let's use this as an excuse to do some clean up.

    Comment 1
    1. Joel Sherrill, Tue, 06 Oct 2020 18:27:51 GMT
    2. summary: changed from Update wiki to reference waf to Update wiki pages to reference waf not autoconf based build
    Comment 2
    1. Sebastian Huber, Mon, 02 Nov 2020 18:48:43 GMT

    I don't think this is a blocker to remove the old build system. The user manual is the source of reference.

    Comment 3
    1. Chris Johns, Tue, 29 Nov 2022 23:23:25 GMT
    2. owner: set to Joel Sherrill
    3. status: changed from new to assigned

    4126 - Remove legacy networking stack from rtems.git and place in a new repo

    Link https://devel.rtems.org/ticket/4126
    Id 4126
    Reporter Chris Johns
    Created 6 October 2020 23:58:25
    Modified 16 December 2021 15:36:46
    Owner  
    Type task
    Component network/legacy
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Remove the legacy networking stack from rtems.git and place it in new top level repo rtems-legacy-network.git.

    The initial tasks are:

  • Move the code to a new repo
  • Add rtems_waf support to build it
  • Clean out BSP references to network interfaces or drivers
  • Merge in the network demos repo
  • Comment 1
    1. Chris Johns, Wed, 07 Oct 2020 00:08:03 GMT
    2. description: modified (diff)
    Comment 2
    1. Joel Sherrill, Thu, 16 Dec 2021 15:36:46 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed

    Already done.


    4127 - x86_64/amd64 fails to build

    Link https://devel.rtems.org/ticket/4127
    Id 4127
    Reporter Joel Sherrill
    Created 7 October 2020 13:36:06
    Modified 10 October 2020 12:02:52
    Owner Sebastian Huber
    Type defect
    Component test
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    This is with waf and autoconf on master.

    Short versions of failing configurations:

    FAILED (2)  autoconf build of x86_64 amd64 (NOSMP/NOMP/DEBUG/PROFILE)
    FAILED (1) waf build of x86_64 amd64 (NOSMP/NOMP/DEBUG/PROFILE)
    FAILED (2) autoconf build of x86_64 amd64 (NOSMP/NOMP/DEBUG/NOPROFILE)
    FAILED (1) waf build of x86_64 amd64 (NOSMP/NOMP/DEBUG/NOPROFILE)

    This is the error:

    In file included from ../../../testsuites/libtests/termios11/init.c:2:
    ../../../testsuites/libtests/termios11/../termios10/termios10impl.h: In function 'POSIX_Init':
    ../../../testsuites/libtests/termios11/../termios10/termios10impl.h:171:1: error: no return statement in function returning non-void [-Werror=return-type]
    171 | }
    | ^
    cc1: some warnings being treated as errors
    In file included from ../../../testsuites/libtests/termios10/init.c:1:
    ../../../testsuites/libtests/termios10/termios10impl.h: In function 'POSIX_Init':
    ../../../testsuites/libtests/termios10/termios10impl.h:171:1: error: no return statement in function returning non-void [-Werror=return-type]
    171 | }
    | ^

    This is the waf ini file for this specific build:

     [x86_64/amd64]
    # Selects the compiler used to build the BSP (allowed values are "gcc" and
    # "clang"). Please note that the values of some options depend on the compiler
    # selection and changing the compiler may lead to unpredictable behaviour if
    # these options are not adjusted as well. Use the --rtems-compiler command line
    # option to get the default values for a particular compiler via
    # ./waf bsp_defaults.
    COMPILER = gcc
    # Flags passed to the library archiver
    ARFLAGS = crD
    # Warning flags passed to the C and C++ compiler
    WARNING_FLAGS = -Wall
    # Warning flags passed to the C compiler
    CC_WARNING_FLAGS = -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs
    # Warning flags passed to the C++ compiler
    CXX_WARNING_FLAGS =
    # Enable the Ada support
    __RTEMS_ADA__ = False
    # Enable the RTEMS internal debug support
    RTEMS_DEBUG = True
    # Enable the Driver Manager startup
    RTEMS_DRVMGR_STARTUP = False
    # Enable the legacy TCP/IP network support
    RTEMS_NETWORKING = False
    # Enable the Newlib C library support
    RTEMS_NEWLIB = True
    # Enable the para-virtualization support
    RTEMS_PARAVIRT = False
    # Enable support for POSIX signals
    RTEMS_POSIX_API = True
    # Enable the SMP lock profiling support
    RTEMS_PROFILING = False
    # Build the Ada test programs (may be also enabled by BUILD_TESTS)
    BUILD_ADATESTS = False
    # Build the test programs
    BUILD_TESTS = True
    # Build the benchmark programs (may be also enabled by BUILD_TESTS)
    BUILD_BENCHMARKS = False
    # Build the file system test programs (may be also enabled by
    # BUILD_TESTS)
    BUILD_FSTESTS = False
    # Build the library test programs (may be also enabled by BUILD_TESTS)
    BUILD_LIBTESTS = False
    # Build the MPCI test programs (may be also enabled by BUILD_TESTS)
    BUILD_MPTESTS = False
    # Build the POSIX test programs (may be also enabled by BUILD_TESTS)
    BUILD_PSXTESTS = False
    # Build the POSIX timing test programs (may be also enabled by
    # BUILD_TESTS)
    BUILD_PSXTMTESTS = False
    # Build the Rhealstone benchmark programs (may be also enabled by
    # BUILD_TESTS)
    BUILD_RHEALSTONE = False
    # Build the sample programs (may be also enabled by BUILD_TESTS)
    BUILD_SAMPLES = True
    # Build the SMP test programs (may be also enabled by BUILD_TESTS)
    BUILD_SMPTESTS = False
    # Build the single-processor test programs (may be also enabled by
    # BUILD_TESTS)
    BUILD_SPTESTS = False
    # Build the timing test programs (may be also enabled by BUILD_TESTS)
    BUILD_TMTESTS = False
    # Build the validation test programs (may be also enabled by
    # BUILD_TESTS)
    BUILD_VALIDATIONTESTS = False
    # Sets the test verbosity of the RTEMS Test Framework. Valid values
    # are "Verbose", "Normal", and "Quiet". For normal test runs you can
    # use a verbosity of "Normal". If you need a more detailed output,
    # then you can set it to "Verbose". For example, in case a regression
    # ocurred. Reducing the verbosity level can significantly reduce the
    # test duration especially on targets with a slow serial output
    # device. All verbosity levels produce enough output to notice failed
    # test cases. In particular, the begin and end of test information is
    # not affected by the verbosity level.
    RTEMS_TEST_VERBOSITY = Normal
    # Optimization flags passed to the C and C++ compiler
    OPTIMIZATION_FLAGS = -O2 -g -fdata-sections -ffunction-sections
    # ABI flags
    ABI_FLAGS = -mno-red-zone -mcmodel=large -Werror=return-type
    # If defined to a non-zero value, prints the some information in case
    # of a fatal error.
    BSP_VERBOSE_FATAL_EXTENSION = 1
    # Flags passed to the linker (GNU ld)
    LDFLAGS = -Wl,--gc-sections
    # Install the legacy application Makefile framework.
    INSTALL_LEGACY_MAKEFILES = True
    # If defined to a non-zero value, prints the exception context when an
    # unexpected exception occurs.
    BSP_PRINT_EXCEPTION_CONTEXT = 1
    # If defined to a non-zero value, reset the board when the application
    # exits.
    BSP_RESET_BOARD_AT_EXIT = 1
    # If defined to a non-zero value, print a message and wait until
    # pressed before resetting board when application exits.
    BSP_PRESS_KEY_FOR_RESET = 0
    Comment 1
    1. Sebastian Huber, Wed, 07 Oct 2020 13:37:24 GMT

    This would be fixed by:

    ​https://lists.rtems.org/pipermail/devel/2020-October/062577.html

    Comment 2
    1. Sebastian Huber, Sat, 10 Oct 2020 12:02:52 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    Fixed by #4122.


    4128 - all griscv variants fail to build on master

    Link https://devel.rtems.org/ticket/4128
    Id 4128
    Reporter Joel Sherrill
    Created 7 October 2020 13:52:16
    Modified 10 October 2020 12:01:36
    Owner Jiri Gaisler
    Type defect
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords wafblocker
    Cc  
    Blocking  
    Blocked by  

    Description

    Looks to be independent of waf or autoconf or configuration settings since a code issue in the BSP:

    ./../../../../../../../rtems/c/src/lib/libbsp/riscv/griscv/../../../../../../bsps/riscv/griscv/clock/clockdrv.c: In function 'grlib_clock_initialize':
    ../../../../../../../../rtems/c/src/lib/libbsp/riscv/griscv/../../../../../../bsps/riscv/griscv/clock/clockdrv.c:174:10: warning: implicit declaration of function 'grlib_irqmp_has_timestamp' [-Wimplicit-function-declaration]
    174 | if (!grlib_irqmp_has_timestamp(irqmp_ts)) {
    | ^~~~~~~~~~~~~~~~~~~~~~~~~
    ../../../../../../../../rtems/c/src/lib/libbsp/riscv/griscv/../../../../../../bsps/riscv/griscv/clock/clockdrv.c:174:10: warning: nested extern declaration of 'grlib_irqmp_has_timestamp' [-Wnested-externs]
    ../../../../../../../../rtems/c/src/lib/libbsp/riscv/griscv/../../../../../../bsps/riscv/griscv/clock/clockdrv.c:175:17: error: 'GRLIB_FATAL_CLOCK_NO_IRQMP_TIMESTAMP_SUPPORT' undeclared (first use in this function); did you mean 'LEON3_FATAL_CLOCK_NO_IRQMP_TIMESTAMP_SUPPORT'?
    175 | bsp_fatal(GRLIB_FATAL_CLOCK_NO_IRQMP_TIMESTAMP_SUPPORT);
    | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    | LEON3_FATAL_CLOCK_NO_IRQMP_TIMESTAMP_SUPPORT
    ../../../../../../../../rtems/c/src/lib/libbsp/riscv/griscv/../../../../../../bsps/riscv/griscv/clock/clockdrv.c:175:17: note: each undeclared identifier is reported only once for each function it appears in
    gmake[6]: *** [clockdrv.o] Error 1

    Attachments:

    1 Joel Sherrill, Wed, 07 Oct 2020 15:36:19 GMT
      attach: set to 0001-bsps-include-bsp-fatal.h-Add-GRLIB-specific-fatal-er.patch
     
    Comment 1
    1. Joel Sherrill, Wed, 07 Oct 2020 15:38:09 GMT

    With the attached patch, it builds further but fails with this which appears to be triggered because SMP is enabled (configure command below):

    riscv-rtems6-gcc  -march=rv32imafd -mabi=ilp32d -O2 -g -ffunction-sections -fdata-sections -Wall -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs -B./../../lib/libbsp/riscv/griscv -B/home/joel/rtems-cron-6/rtems/bsps/riscv/griscv/start -specs bsp_specs -qrtems -L./../../cpukit -L/home/joel/rtems-cron-6/rtems/bsps/riscv/shared/start -Wl,--wrap=printf -Wl,--wrap=puts -Wl,--wrap=putchar -Wl,--gc-sections -o base_sp.exe base_sp/base_sp-init.o base_sp/base_sp-apptask.o ./../../lib/libbsp/riscv/griscv/librtemsbsp.a ./../../cpukit/librtemscpu.a ./../../cpukit/librtemstest.a
    /home/joel/rtems-cron-6/tools/6/lib/gcc/riscv-rtems6/10.2.1/../../../../riscv-rtems6/bin/ld: ./../../lib/libbsp/riscv/griscv/librtemsbsp.a(clockdrv.o): in function `grlib_clock_initialize':
    /home/joel/rtems-cron-6/b-griscv/riscv-rtems6/c/griscv/lib/libbsp/riscv/griscv/../../../../../../../../rtems/c/src/lib/libbsp/riscv/griscv/../../../../../../bsps/riscv/griscv/clock/clockdrv.c:167: undefined reference to `grlib_irqmp_has_timestamp'
    collect2: error: ld returned 1 exit status
    gmake[5]: *** [base_sp.exe] Error 1 

    The configuration is:

    ../rtems/configure --target=riscv-rtems6 --enable-rtemsbsp=griscv --prefix=/home/joel/rtems-cron-6/tools/6/bsp-install --disable-networking --enable-posix --enable-smp --disable-multiprocessing --enable-rtems-debug --enable-profiling --enable-tests --enable-cxx --enable-maintainer-mode 
    Comment 2
    1. Joel Sherrill, Wed, 07 Oct 2020 15:38:22 GMT
    2. owner: set to Jiri Gaisler
    3. status: changed from new to assigned
    Comment 3
    1. Jiri Gaisler, Thu, 08 Oct 2020 07:44:57 GMT

    Replying to Joel Sherrill:

    I don't get this far, my compilation fails on:

    riscv-rtems6-gcc -march=rv32imafd -mabi=ilp32d -O2 -g -ffunction-sections -fdata-sections -Wall -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs -B./../../lib/libbsp/riscv/griscv -B/home/jiri/ibm/src/rtems/rtems/bsps/riscv/griscv/start -specs bsp_specs -qrtems -L./../../cpukit -L/home/jiri/ibm/src/rtems/rtems/bsps/riscv/shared/start -Wl,--wrap=printf -Wl,--wrap=puts -Wl,--wrap=putchar -Wl,--gc-sections -o base_sp.exe base_sp/base_sp-init.o base_sp/base_sp-apptask.o ./../../lib/libbsp/riscv/griscv/librtemsbsp.a ./../../cpukit/librtemscpu.a ./../../cpukit/librtemstest.a /home/jiri/src/rtems/6/bin/../lib/gcc/riscv-rtems6/10.2.1/../../../../riscv-rtems6/bin/ld: ./../../cpukit/librtemscpu.a(free.o): in function `free': /home/jiri/ibm/src/rtems/rtems/c/src/../../cpukit/libcsupport/src/free.c:79: undefined reference to `RTEMS_Malloc_Heap'

    I updated rsb and rtems from git head and re-built the tool-chain today ...

    Comment 4
    1. Sebastian Huber, Sat, 10 Oct 2020 12:01:36 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In e1a0e0c3/rtems:

    grlib: Add and use irqmp_has_timestamp() Replace leon3_irqmp_has_timestamp() with irqmp_has_timestamp() and move it to grlib.h. Close #4128.

    4129 - x86_64 not listed as architecture in components in Trac

    Link https://devel.rtems.org/ticket/4129
    Id 4129
    Reporter Joel Sherrill
    Created 7 October 2020 13:55:05
    Modified 17 December 2021 14:23:53
    Owner  
    Type defect
    Component tool/website
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc Karel Gardas
    Blocking  
    Blocked by  

    Description

    Just needs to be added.

    Comment 1
    1. Joel Sherrill, Fri, 17 Dec 2021 14:23:53 GMT
    2. cc: Karel Gardas added
    3. status: changed from new to closed
    4. resolution: set to fixed

    Added the component and cc'ed Karel so he would know about it. :)


    4131 - "fdisk DISK_NAME mount" in bdpart-mount.c uses non-existing file system type "msdos"

    Link https://devel.rtems.org/ticket/4131
    Id 4131
    Reporter Frank Kuehndel
    Created 7 October 2020 14:27:18
    Modified 12 October 2020 11:19:08
    Owner Frank Kühndel <frank.kuehndel@…>
    Type defect
    Component shell
    Status closed
    Resolution fixed
    Version  
    Milestone 6.1
    Priority normal
    Severity minor
    Keywords fdisk shell bdpart mount bdpart-mount.c msdos
    Cc  
    Blocking  
    Blocked by  

    Description

    The function rtems_bdpart_mount() seems to be only used by the 'fdisk' shell command to mount all partitions of a disk with a single command:

    fdisk DISK_NAME mount
    mounts the file system of each partition of the disk
    fdisk DISK_NAME unmount
    unmounts the file system of each partition of the disk

    The whole command does not work because in file cpukit/libblock/src/bdpart-mount.c line 103 specifies the file system type of each partition to be "msdos". Yet, "msdos" does not exist. The name must be "dosfs".

    Beside of this fundamental problem, there are more issues with the code in bdpart-mount.c:

    1) The function returns RTEMS_SUCCESSFUL despite the mount always fails.

    2) The reason for errors is not written to the terminal.

    3) The directory '/mnt' is created but not deleted later on (failure or not).

    3) There is no documentation about this special 'fdisk' feature in the ​RTEMS Shell Guide. ('fdisk' is mentioned but its documentation is a bit short).

    4) Only "msdos" formatted partitions can be mounted and all partitions are mounted read only. This is hard coded and cannot be changed by options. Moreover, there is no information about this to the user of the shell (i.e. using 'fdisk' mount requires insider knowledge).

    How to reproduce:

    1) For testing I use the 'testsuites/samples/fileio/init.c' sample and since I do not know the 'root' password, the password must be removed from that file to login as 'root' without password:

    index 86b34b99dd..51507f9a53 100644
    --- a/testsuites/samples/fileio/init.c
    +++ b/testsuites/samples/fileio/init.c
    @@ -563,8 +563,7 @@ static void fileio_start_shell(void)
    writeFile(
    "/etc/passwd",
    0644,
    - "root:$6$$FuPOhnllx6lhW2qqlnmWvZQLJ8Thr/09I7ESTdb9VbnTOn5.65"
    - "/Vh2Mqa6FoKXwT0nHS/O7F0KfrDc6Svb/sH.:0:0:root::/:/bin/sh\n"
    + "root::0:0:root::/:/bin/sh\n"
    "rtems::1:1:RTEMS Application::/:/bin/sh\n"
    "test:$1$$oPu1Xt2Pw0ngIc7LyDHqu1:2:2:test account::/:/bin/sh\n"
    "tty:*:3:3:tty owner::/:/bin/false\n"

    2) I run the fileio sample using qemu:

    cd rtems
    env QEMU_AUDIO_DRV="none" qemu-system-arm -net none -nographic -M realview-pbx-a9 -m 256M -kernel build/arm/realview_pbx_a9_qemu/testsuites/samples/fileio.exe

    3) Type any key to stop the timer and enter the sample tool. Type 's' to enter the shell, login as 'root' with empty password.

    4) Type the following shell commands (they create a RAM disk, partition it, regsiter it, format it and try to mount it):

    mkrd
    fdisk /dev/rda fat32 16 write mbr
    fdisk /dev/rda register
    mkdos /dev/rda1
    fdisk /dev/rda mount

    5) The last line above is the command which fails - without an error message. There exists a '/mnt' directory but no '/mnt/rda1' directory as it shoud be:

    ls -la /mnt 

    6) If you change line 103 of 'cpukit/libblock/src/bdpart-mount.c' from "msdos" to "dosfs", compile and build the executable and re-run the above test, '/mnt/rda1' exists (but the file system is mounted read-only).

    Comment 1
    1. Frank Kühndel, Mon, 12 Oct 2020 11:19:08 GMT
    2. owner: set to Frank Kühndel <frank.kuehndel@…>
    3. status: changed from assigned to closed
    4. resolution: set to fixed

    In a479686/rtems:

    shell: Remove not functioning fdisk mount/unmount The shell has an 'fdisk' command which has sub-commands 'mount' and 'unmount'. These two sub-commands have a bug which causes them to be not able to mount anything. This proposed patch removes the buggy file cpukit/libblock/src/bdpart-mount.c and the mount/unmount commands from 'fdisk' as bug fix. The 'fdisk' command itself is not removed. The reasons for removing the sub-commands (instead of fixing the issue) are:
    1) The bug has been introduced on 2010-May-31 with commit
    29e92b090c8bc35745aa5c89231ce806bcb11e57. Since ten years no one can use this feature, nor has anybody complained about it.
    2) Besides of the 'fdisk' 'mount' sub-command, the shell has the
    usual 'mount' and 'unmount' commands which can serve as substitutes.
    3) There are additional minor issues (see further down) which needed to
    be addressed when the file will be kept.
    What follows below is the precise bug description. The bug is in function rtems_bdpart_mount() which is only be used by the 'fdisk' shell command to mount all partitions of a disk with a single command:
    fdisk DISK_NAME mount
    mounts the file system of each partition of the disk
    fdisk DISK_NAME unmount
    unmounts the file system of each partition of the disk
    The whole command does not work because in file cpukit/libblock/src/bdpart-mount.c line 103 specifies the file system type of each partition to be "msdos". Yet, "msdos" does not exist. The name must be "dosfs". Beside of this fundamental problem, there are more issues with the code in bdpart-mount.c:
    1) The function returns RTEMS_SUCCESSFUL despite the mount always fails.
    2) The reason for errors is not written to the terminal.
    3) The directory '/mnt' is created but not deleted later on (failure or not).
    3) There is no documentation about this special 'fdisk' feature in the
    RTEMS Shell Guide ('fdisk' is mentioned but its documentation is a bit short): ​https://docs.rtems.org/branches/master/shell/ file_and_directory.html#fdisk-format-disk
    4) Only "msdos" formatted partitions can be mounted and all partitions
    are mounted read-only. This is hard coded and cannot be changed by options. Moreover, there is no information about this to the user of the shell (i.e. using 'fdisk' mount requires insider knowledge).
    How to reproduce:
    1) For testing, I use the 'testsuites/samples/fileio.exe' sample with qemu:
    cd rtems env QEMU_AUDIO_DRV="none" qemu-system-arm -net none -nographic \ -M realview-pbx-a9 -m 256M -kernel \ build/arm/realview_pbx_a9_qemu/testsuites/samples/fileio.exe
    2) Type any key to stop the timer and enter the sample tool.
    Type 's' to enter the shell, login as 'root' with the password shown in the terminal.
    3) Type the following shell commands (they create a RAM disk,
    partition it, register it, format it and try to mount it):
    mkrd fdisk /dev/rda fat32 16 write mbr fdisk /dev/rda register mkdos /dev/rda1 fdisk /dev/rda mount
    4) The last line above is the command which fails - without an error message. There exists a '/mnt' directory but no '/mnt/rda1' directory as it should be:
    ls -la /mnt
    5) If you change line 103 of 'cpukit/libblock/src/bdpart-mount.c'
    from "msdos" to "dosfs", compile and build the executable and re-run the above test, '/mnt/rda1' exists (but the file system is mounted read-only).
    Close #4131

    4134 - rtemsspec: Support user-defined ordering of directives in header files (Doxygen)

    Link https://devel.rtems.org/ticket/4134
    Id 4134
    Reporter Sebastian Huber
    Created 8 October 2020 06:17:56
    Modified 11 October 2020 14:21:50
    Owner Sebastian Huber
    Type enhancement
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Currently, the generated interfaces in header files are defined by their dependencies and a topological sorting (alphabetical order is applied to unrelated interfaces). In order to be in line with the Sphinx documentation it would be nice to apply also the user-defined ordering specified in groups.

    Comment 1
    1. Sebastian Huber, Sun, 11 Oct 2020 13:21:13 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 3f3e088/rtems-central:

    interface: Improve ordering Close #4134.
    Comment 2
    1. Sebastian Huber, Sun, 11 Oct 2020 14:21:50 GMT
    2. milestone: changed from Indefinite to 6.1

    4140 - waf install of RTEMS breaks Makefile system in rtems-examples

    Link https://devel.rtems.org/ticket/4140
    Id 4140
    Reporter Joel Sherrill
    Created 9 October 2020 22:19:19
    Modified 10 October 2020 11:50:54
    Owner Sebastian Huber <sebastian.huber@…>
    Type defect
    Component build
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords wafblocker
    Cc  
    Blocking  
    Blocked by  

    Description

    This boils down to bsp_specs being referenced in Makefile.inc and it no longer being at the install point. This can be worked around by copying an empty file to the install location for bsp_specs enough to compile the programs but I assume that the -B... list of arguments needs to be replaced

    Properly the BSP compile flags need to be processed into the installed target.cfg and the line with -B.. modified as needed in gcc-target-default.cfg.

    i386-rtems6-gcc --pipe -B/home/joel/rtems-work/tools/6/bsp-install/i386-rtems6/pc686/lib/ -specs bsp_specs -qrtems   -Wall      -mtune=pentiumpro -march=pentium       -c   -o o-optimize/test.o test.c
    i386-rtems6-gcc: fatal error: cannot read spec file 'bsp_specs': No such file or directory
    compilation terminated.
    make: *** [o-optimize/test.o] Error 1
    [joel@localhost hello_world_c]$ cp /dev/null /home/joel/rtems-work/tools/6/bsp-install/i386-rtems6/pc686/lib/bsp_specs
    [joel@localhost hello_world_c]$ RTEMS_MAKEFILE_PATH=/home/joel/rtems-work/tools/6/bsp-install/i386-rtems6/pc686/ make clean all
    rm -f a.out core mon.out gmon.out
    rm -f -r
    rm -f -r a.out *.o *.BAK Depends-o-optimize.tmp
    rm -f -r o-optimize o-debug
    test -d o-optimize || mkdir o-optimize
    i386-rtems6-gcc --pipe -B/home/joel/rtems-work/tools/6/bsp-install/i386-rtems6/pc686/lib/ -specs bsp_specs -qrtems -Wall -mtune=pentiumpro -march=pentium -c -o o-optimize/test.o test.c
    i386-rtems6-gcc --pipe -B/home/joel/rtems-work/tools/6/bsp-install/i386-rtems6/pc686/lib/ -specs bsp_specs -qrtems -Wall -mtune=pentiumpro -march=pentium -qrtems -Wl,-Ttext,0x00100000 -mtune=pentiumpro -march=pentium -Wl,--gc-sections -L/home/joel/rtems-work/rtems/bsps/i386/shared/start -L/home/joel/rtems-work/rtems/bsps/i386/pc386/start -mtune=pentiumpro -march=pentium -o o-optimize/hello.exe o-optimize/test.o
    i386-rtems6-nm -g -n o-optimize/hello.exe > o-optimize/hello.num
    i386-rtems6-size o-optimize/hello.exe
    text data bss dec hex filename
    151790 9628 33056 194474 2f7aa o-optimize/hello.exe
    Comment 1
    1. Sebastian Huber, Sat, 10 Oct 2020 11:50:54 GMT
    2. owner: set to Sebastian Huber <sebastian.huber@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 6ca00e61/rtems:

    build: Fix legacy Makefile support Close #4140.

    4142 - Sparse disk destroys data when it grows

    Link https://devel.rtems.org/ticket/4142
    Id 4142
    Reporter Sebastian Huber
    Created 12 October 2020 06:08:50
    Modified 12 October 2020 06:23:10
    Owner Sebastian Huber
    Type defect
    Component lib/block
    Status closed
    Resolution fixed
    Version 4.11
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The qsort() in sparse_disk_get_new_block() may move the appended key which invalidates the pointer.

    Comment 1
    1. Sebastian Huber, Mon, 12 Oct 2020 06:23:10 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In b434dc1/rtems:

    libblock: Fix sparse disk The qsort() in sparse_disk_get_new_block() may move the appended key which invalidates the pointer. Close #4142.

    4143 - fileio - Stack too small for login with password

    Link https://devel.rtems.org/ticket/4143
    Id 4143
    Reporter Frank Kuehndel
    Created 12 October 2020 13:17:05
    Modified 12 October 2020 13:49:36
    Owner joel@…
    Type defect
    Component test
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity minor
    Keywords fileio,stack,password,login,root
    Cc  
    Blocking  
    Blocked by  

    Description

    When I use the 'shell' from the fileio sample with the command below:

     env QEMU_AUDIO_DRV="none" \
    qemu-system-arm -no-reboot -net none -nographic -M realview-pbx-a9 -m 256M \
    -kernel build/arm/realview_pbx_a9_qemu/testsuites/samples/fileio.exe

    The executable crashes with an "BLOWN STACK!!!" as soon as I try to login
    as 'root' with password. (The logins without password work fine.) Increasing
    the stack size of the affected thread a bit (to 5 times RTEMS_MINIMUM_STACK_SIZE) solves the issue.

    How to reproduce:

  • Start the fileio sample in QEMU with the above command.
  • Type a key to stop the timer.
  • Type "s" to enter the shell.
  • Login as "root" with the password printed to the terminal.
  • In the line with the first shell prompt, the text "BLOWN STACK!!!" appears unexpectedly followed by further crash information.
  • [...]
    /dev/foobar login: root
    Password:
    RTEMS Shell on /dev/foobar. Use 'help' to list commands.
    SHLL [/] # BLOWN STACK!!!
    task control block: 0x00205278
    [...]

    My config.ini was

    [arm/realview_pbx_a9_qemu]
    RTEMS_DEBUG = True
    RTEMS_NETWORKING = True
    RTEMS_POSIX_API = True
    RTEMS_SMP = True
    BUILD_TESTS = True

    RTEMS origin.master at 558a19d3adff6a3ecf678f94408b48beccbbc9fb

    Comment 1
    1. Frank Kühndel, Mon, 12 Oct 2020 13:49:36 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed

    In ec13365/rtems:

    testsuites/samples/fileio - Increase of stack size When I use the 'shell' from the fileio sample with the command below:
    env QEMU_AUDIO_DRV="none" \ qemu-system-arm -no-reboot -net none -nographic -M realview-pbx-a9 \ -m 256M \ -kernel build/arm/realview_pbx_a9_qemu/testsuites/samples/fileio.exe
    The executable crashes with an "BLOWN STACK!!!" as soon as I try to login as 'root' with password. (The logins without password work fine.) Increasing the stack size of the affected thread a bit solves the issue. Hence, I suggest this patch.
    My config.ini was
    [arm/realview_pbx_a9_qemu] RTEMS_DEBUG = True RTEMS_NETWORKING = True RTEMS_POSIX_API = True RTEMS_SMP = True BUILD_TESTS = True RTEMS origin.master at a479686c112144119866391ceb21c48be6a3eca9 Close #4143

    4145 - rtems-source-builder: Update RTEMS Kernel Recipe to Use waf for RTEMS

    Link https://devel.rtems.org/ticket/4145
    Id 4145
    Reporter Joel Sherrill
    Created 14 October 2020 16:57:11
    Modified 9 November 2021 17:06:43
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component tool/rsb
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords wafblocker
    Cc  
    Blocking  
    Blocked by  

    Description

    kernel configuration builds using autoconf-based build system. Needs to be switched to waf. Hopefully contained to rtems-kernel-common.cfg.

    Comment 1
    1. Joel Sherrill, Wed, 14 Oct 2020 17:17:25 GMT
    2. summary: changed from rtems-source-builder: RTEMS Kernel Recipe to rtems-source-builder: Update RTEMS Kernel Recipe to Use waf for RTEMS
    Comment 2
    1. Chris Johns, Mon, 09 Nov 2020 04:54:19 GMT

    This is not as easy as I thought it might be. Let me explain ...

    The config.ini file hides some important detail the RSB needs. The RSB currently names the package as:

    rtems-%{rtems_version}-%{_target}-%{rtems_bsp}-%{_host}-%{release} 

    The target and BSP are in the build config file and a config file could build a mix of architectures breaking this naming.

    The simplest approach is to take the arguments provided to the RSB and create a config.ini file but this would be limiting where complex BSP options are needed.

    I could check if the --with-rtems-bspopts option is a path and that could be a list of specific BSP options appended into the BSP specific area.

    Should the following options print a depreciate warning:

    --with-rtems-legacy-network --with-rtems-cxx

    I am not sure about --with-rtems-posix. I think it should be removed and POSIX always be enabled.

    Comment 3
    1. Ryan Long, Tue, 09 Nov 2021 17:06:43 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In def9347/rtems-source-builder:

    rtems-kernel: Implement kernel recipe using waf Closes #4145

    4148 - RFS bit map search buffer overflow

    Link https://devel.rtems.org/ticket/4148
    Id 4148
    Reporter Chris Johns
    Created 15 October 2020 06:12:13
    Modified 16 October 2020 23:54:50
    Owner Chris Johns
    Type defect
    Component fs/rfs
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The bit search create writes past the end of its buffer. See:

    ​https://lists.rtems.org/pipermail/devel/2020-October/062701.html

    Comment 1
    1. Chris Johns, Fri, 16 Oct 2020 23:54:50 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In f514092/rtems:

    libfs/rfs: Check search bit map end on last bit Do not write past the last location of the search bit map whe nit is being created. Closes #4148

    4155 - Add a workaround for the LEON3FT RETT Restart errata: TN-0018

    Link https://devel.rtems.org/ticket/4155
    Id 4155
    Reporter Sebastian Huber
    Created 16 October 2020 05:47:11
    Modified 23 June 2021 07:07:55
    Owner Daniel Hellstrom
    Type defect
    Component arch/sparc
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    See also:

    ​https://www.gaisler.com/doc/antn/GRLIB-TN-0018.pdf

    Comment 1
    1. Daniel Hellstrom, Fri, 16 Oct 2020 14:58:41 GMT

    This is the proposed GCC10 patch for master, it shuold be applied for RSB/sparc too.

    ​https://lists.rtems.org/pipermail/devel/2020-October/062837.html

    Comment 2
    1. Sebastian Huber, Fri, 16 Oct 2020 15:12:09 GMT

    The patch looks fine.

    Comment 3
    1. Daniel Hellstrom, Sun, 07 Mar 2021 15:29:16 GMT

    The GCC patch has been accepted upstreams into master and GCC-10 branch:

    ​https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=4b690f161b82e428dbe648075da215daa52be0ea ​https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=1aed3f059ebd08fffe1346ac7ecf8e8606359875

    Comment 4
    1. Daniel Hellstrom, Thu, 11 Mar 2021 16:52:57 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In b2da982/rtems:

    leon,tn-0018: work around GRLIB-TN-0018 errata Overview ======== The errata is worked around in the kernel without requiring toolchain modifications. It is triggered the JMPL/RETT return from trap instruction sequence never generated by the compiler and. There are also other conditions that must must be true to trigger the errata, for example the instruction that the trap returns to has to be a JMPL instruction. The errata can only be triggered if certain data is corrected by ECC (inflicted by radiation), thus it can not be triggered under normal operation. For more information see:
    www.gaisler.com/notes
    Affected RTEMS target BSPs: GR712RC UT699 UT700/699E The work around is enabled by defining FIX_LEON3_TN0018 at build time. After applying the following GCC patch, GCC will set the define when compiling for an affected multilib: GR712RC (-mcpu=leon3 -mfix-gr712rc) UT700/UT699E (-mpcu=leon3 -mfix-ut700) UT699 (-mcpu=leon -mfix-ut699) When building for another multilib and TN0018 is still required, it is possible to enable it on the RTEMS kernel configure line using the TARGET_CFLAGS (-DFIX_LEON3FT_TN0018) or other by other means. The following GCC patch sets FIX_LEON3FT_TN0018 for the affected RTEMS multilibs: diff --git a/gcc/config/sparc/rtemself.h b/gcc/config/sparc/rtemself.h index 6570590..ddec98c 100644 --- a/gcc/config/sparc/rtemself.h +++ b/gcc/config/sparc/rtemself.h @@ -33,6 +33,8 @@
    builtin_assert ("system=rtems"); \ if (sparc_fix_b2bst) \
    builtin_define ("FIX_LEON3FT_B2BST"); \
    + if (sparc_fix_gr712rc sparc_fix_ut700 sparc_fix_ut699) \ + builtin_define ("FIX_LEON3FT_TN0018"); \
    } \
    while (0)
    Workaround Implementation ========================= In general there are two approaches that the workaround uses:
    A) avoid ECC restarting the RETT instruction B) avoid returning from trap to a JMPL instruction
    Where A) comes at a higher performance cost than B), so B) is used where posssible. B) can be achived for certain returns from trap handlers if trap entry is controlled by assembly, such as system calls. A) A special JMPL/RETT sequence where instruction cache is disabled temporarily to avoid RETT containing ECC errors, and reading of RETT source registers to "clean" them from incorrect ECC just before RETT is executed. B) The work around prevents JMPL after system calls (TA instruction) and modifies assembly code on return from traps jumping back to application code. Note that for some traps the trapped instruction is always re-executed and can therefore not trigger the errata, for example the SAVE instruction causing window overflow or an float instruction causing FPU disabled trap. RTEMS SPARC traps workaround implementation:
    NAME NOTE TRAP COMMENT
    window overflow 1 - 0x05 always returns to a SAVE window underflow 1 - 0x06 always returns to a RESTORE interrupt traps 2 - 0x10..1f special rett sequence workaround syscall 3 - 0x80 shutdown system - never returns ABI flush windows 2 - 0x83 special rett sequence workaround syscall_irqdis 4 - 0x89 syscall_irqen 4 - 0x8A syscall_irqdis_fp 1 - 0x8B always jumps back to FP instruction syscall_lazy_fp_switch 5 - 0x04 A) jumps back to FP instruction, or to
    B) _Internal_error() starting with SAVE
    Notes: 1) no workaround needed because trap always returns to non-JMPL instruction 2) workaround implemented by special rett sequence 3) no workaround needed because system call never returns 4) workaround implemented by inserting NOP in system call generation. Thus
    fall into 1) when workaround is enabled and no trap handler fix needed.
    5) trap handler branches into both 1) and returning to _Internal_error()
    which starts with a SAVE and besides since it shuts down the system that RETT should never be in cache (only executed once) so fix not necessary in this case.
    Any custom trap handlers may also have to be updated. To simplify that, helper work around assembly code in macros are available in a separate include file . Close #4155.
    Comment 5
    1. Sebastian Huber, Wed, 23 Jun 2021 07:07:55 GMT
    2. keywords: qualification added

    4157 - pthread_spin_unlock() may corrupt the thread stack if RTEMS_PROFILING and RTEMS_SMP is enabled

    Link https://devel.rtems.org/ticket/4157
    Id 4157
    Reporter Sebastian Huber
    Created 19 October 2020 15:33:11
    Modified 23 June 2021 07:07:55
    Owner Sebastian Huber
    Type defect
    Component posix
    Status closed
    Resolution fixed
    Version 4.11
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    The call to _SMP_lock_Stats_register_or_max_section_time() registers a dummy statistics block which resides on the thread stack.

    Comment 1
    1. Sebastian Huber, Mon, 19 Oct 2020 15:33:52 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 2b9fb314/rtems:

    posix: Fix pthread_spin_unlock() Prevent a call to _SMP_lock_Stats_register_or_max_section_time(). This fixes a thread stack corruption in case RTEMS_PROFILING and RTEMS_SMP is enabled. Close #4157.
    Comment 2
    1. Sebastian Huber, Wed, 23 Jun 2021 07:07:55 GMT
    2. keywords: qualification added

    4158 - rtems_interrupt_server_delete() does not destroy the ISR lock of the server control

    Link https://devel.rtems.org/ticket/4158
    Id 4158
    Reporter Sebastian Huber
    Created 19 October 2020 15:44:02
    Modified 19 October 2020 15:45:03
    Owner Sebastian Huber
    Type defect
    Component bsps
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    This leads to memory corruption if RTEMS_PROFILING and RTEMS_SMP is enabled.

    Comment 1
    1. Sebastian Huber, Mon, 19 Oct 2020 15:45:03 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In bb4e534/rtems:

    bsps: Fix rtems_interrupt_server_delete() The ISR lock must be destroyed to prevent memory corruption if RTEMS_PROFILING and RTEMS_SMP is enabled. Close #4158.

    4164 - Fix NVMe disk synchronization and media block handling

    Link https://devel.rtems.org/ticket/4164
    Id 4164
    Reporter Sebastian Huber
    Created 27 October 2020 05:24:03
    Modified 27 October 2020 05:28:05
    Owner Sebastian Huber
    Type defect
    Component network/libbsd
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Comment 1
    1. Sebastian Huber, Tue, 27 Oct 2020 05:28:05 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    4166 - rtems-bsp-builder: Add way to select rtems version (6 vs 7)

    Link https://devel.rtems.org/ticket/4166
    Id 4166
    Reporter Joel Sherrill
    Created 28 October 2020 13:04:23
    Modified 29 November 2022 23:25:39
    Owner  
    Type enhancement
    Component tool
    Status closed
    Resolution duplicate
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    When testing the RTEMS master, one can use the rtems6 or rtems7 tools. The rtems-bsp-builder is hard-coded to rtems6.

    As part of doing this, the version should be in the email subject and report so that similar reports can be distinguished.

    Comment 1
    1. Chris Johns, Tue, 29 Nov 2022 23:25:39 GMT
    2. status: changed from new to closed
    3. resolution: set to duplicate

    Duplicate of #3671


    4167 - Coverity Scan Does Not Run on rtems6

    Link https://devel.rtems.org/ticket/4167
    Id 4167
    Reporter Joel Sherrill
    Created 28 October 2020 16:14:14
    Modified 9 February 2022 14:52:58
    Owner Joel Sherrill
    Type enhancement
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    This is a ticket to note that Coverity does not appear to like the gcc version going from one to two digits. Since the Coverity Scan support for free users is minimal, I asked on the GCC mailing list if anyone had insight (​https://gcc.gnu.org/pipermail/gcc/2020-October/234073.html).

    This is completely outside our control and this is just a tracking ticket to note that Coverity Scan reports will be run against the 5 branch until this is fixed. This will likely be of limited use since rtems 5 is stable and changes are minimal compared to the rtems master.

    If it really is a two digit major issue (unconfirmed if this works for gcc 9), I could do Coverity builds using a special toolchain based on gcc 9.

    Comment 1
    1. Joel Sherrill, Thu, 29 Oct 2020 15:19:10 GMT

    I have done some more analysis which I reported in the GCC mailing list thread. I build sparc-rtems6 tools using gcc 7, 8, 9, and 10. Coverity worked using GCC 7, 8, and 9 but not 10 using the autoconf build since that made it more similar to gcc 7 on rtems5. It required uninstalling Coverity and reinstalling each time I switched GCC versions. There must be some residual configuration left between runs which this addresses.

    I did try the waf build with gcc 7, 9, and 10. Same behavior as with the autoconf build.

    The questions going forward are:

    Is there a way to make Coverity aware of a bug like this? Support for the open source projects using Coverity Scan is minimal. Do we want to switch to the master for Coverity runs? This would require me using a special gcc9 build. The code on rtems5 is stable and any fixes/changes are much more likely to be on the master so I tend to lean to switching.

    This is going to be an issue until Coverity updates the binary for Scan to support GCC 10.

    Comment 2
    1. Joel Sherrill, Thu, 16 Dec 2021 20:02:55 GMT
    2. type: changed from defect to enhancement

    Coverity Scan has been running on RTEMS for a while now. Closing.

    Comment 3
    1. Joel Sherrill, Wed, 09 Feb 2022 14:52:58 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    Didn't get closed last time.


    4175 - Resolve warning during AArch64 build

    Link https://devel.rtems.org/ticket/4175
    Id 4175
    Reporter Kinsey Moore
    Created 10 November 2020 15:40:39
    Modified 16 November 2020 16:17:43
    Owner  
    Type defect
    Component arch/aarch64
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    When compiling under the ILP32 mulitilib variant, the build generates a warning related to the saved stack pointer. This resolves the warning by sizing the saved stack pointer appropriately instead of it always being 64bits long.

    Attachments:

    1 Kinsey Moore, Tue, 10 Nov 2020 15:46:16 GMT
      attach: set to 0001-score-aarch64-Size-saved-SP-register-for-ABI.patch
     
    Comment 1
    1. Kinsey Moore, Tue, 10 Nov 2020 20:21:23 GMT
    2. component: changed from admin to arch/aarch64
    Comment 2
    1. Kinsey Moore, Mon, 16 Nov 2020 16:17:43 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed

    4180 - Add BSP for i.MXRT1050

    Link https://devel.rtems.org/ticket/4180
    Id 4180
    Reporter Christian Mauderer
    Created 17 November 2020 10:16:50
    Modified 17 December 2021 07:40:16
    Owner Christian Mauderer
    Type enhancement
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Add a BSP for the ​i.MXRT1050 series. The default settings for the BSP will run on the IMXRT1050-EVKB evaluation board.

    Comment 1
    1. Christian Mauderer, Fri, 20 Nov 2020 07:54:42 GMT

    In e00f443/rtems:

    imx: Move imx_iomux to arm/shared Update #4180
    Comment 2
    1. Christian Mauderer, Fri, 20 Nov 2020 07:54:45 GMT

    In 6cece585/rtems:

    bsps/imx: Move imx-gpio to arm/shared Update #4180
    Comment 3
    1. Christian Mauderer, Fri, 20 Nov 2020 07:54:49 GMT

    In b169095c/rtems:

    cpu/armv7m: Add table based init for ARMV7M_MPU Modify the MPU functions of the stm32h7 BSP to be table based and available for all ARMV7M BSPs. Update #4180
    Comment 4
    1. Christian Mauderer, Fri, 20 Nov 2020 07:54:53 GMT

    In 48f6a6c/rtems:

    bsp/imxrt: Import files from MCUXpresso SDK V2.8.5 The following files have been imported: cp ${SDK}/boards/evkbimxrt1050/project_template/clock_config.c nxp/boards/evkbimxrt1050 cp ${SDK}/boards/evkbimxrt1050/project_template/clock_config.h include/fsl_clock_config.h cp ${SDK}/boards/evkbimxrt1050/project_template/dcd.c start/flash-dcd.c cp ${SDK}/boards/evkbimxrt1050/project_template/pin_mux.c nxp/boards/evkbimxrt1050 cp ${SDK}/boards/evkbimxrt1050/project_template/pin_mux.h include/fsl_pin_mux.h cp ${SDK}/boards/evkbimxrt1050/xip/evkbimxrt1050_flexspi_nor_config.h include/fsl_flexspi_nor_config.h cp ${SDK}/devices/MIMXRT1052/MIMXRT1052.h include cp ${SDK}/devices/MIMXRT1052/MIMXRT1052_features.h include cp ${SDK}/devices/MIMXRT1052/drivers/fsl_*.c nxp/devices/MIMXRT1052/drivers cp ${SDK}/devices/MIMXRT1052/drivers/fsl_*.h include cp ${SDK}/devices/MIMXRT1052/fsl_device_registers.h include cp ${SDK}/devices/MIMXRT1052/system_MIMXRT1052.h include/ cp ${SDK}/devices/MIMXRT1052/xip/fsl_flexspi_nor_boot.c nxp/devices/MIMXRT1052/xip/fsl_flexspi_nor_boot.c cp ${SDK}/devices/MIMXRT1052/xip/fsl_flexspi_nor_boot.h include Update #4180
    Comment 5
    1. Christian Mauderer, Fri, 20 Nov 2020 07:54:56 GMT

    In 8abf858c/rtems:

    bsp/imxrt: Fix warnings for imported files Update #4180
    Comment 6
    1. Christian Mauderer, Fri, 20 Nov 2020 07:54:59 GMT

    In 57b5b29c/rtems:

    bsp/imxrt: Adapt imported files Update #4180
    Comment 7
    1. Christian Mauderer, Fri, 20 Nov 2020 07:55:03 GMT

    In 7141afbb/rtems:

    bsp/imxrt: Add new BSP Update #4180
    Comment 8
    1. Christian Mauderer, Fri, 20 Nov 2020 08:07:53 GMT

    In e95d992/rtems-docs:

    user/bsps: Add imxrt Update #4180
    Comment 9
    1. Christian Mauderer, Mon, 14 Dec 2020 11:54:55 GMT

    In b63a187/rtems:

    bsps/imxrt: Split up dts. This allows simpler creation of own dts files for custom boards. Update #4180
    Comment 10
    1. Christian Mauderer, Mon, 14 Dec 2020 11:54:59 GMT

    In 9b3def2/rtems:

    bsps/arm/imx*: Fix location of shared headers When moving the headers from the imx BSP to the shared area, the wrong directory has been selected. This patch fixes that problem. Update #4180
    Comment 11
    1. Christian Mauderer, Mon, 14 Dec 2020 11:55:02 GMT

    In eb2b915/rtems:

    cpu/armv7m: Fix table based init for ARMV7M_MPU Somehow the table index has been missing in the latest patch version. With that, the configuration for the first region has been applied multiple times. Update #4180
    Comment 12
    1. Christian Mauderer, Mon, 14 Dec 2020 11:55:29 GMT

    In 2cf3076/rtems-docs:

    user/bsp/imxrt: Information for custom FDT Update #4180
    Comment 13
    1. Christian Mauderer, Thu, 21 Jan 2021 09:26:38 GMT

    In 22e9dafb/rtems:

    bsps/imxrt: Use standard names to avoid warnings If spi or i2c slaves are "connected" to the spi or i2c bus, the device tree compiler complains if the busses are not named spi or i2c. Update #4180
    Comment 14
    1. Christian Mauderer, Thu, 21 Jan 2021 09:26:42 GMT

    In 301bbc3/rtems:

    bsps/shared: Copy fsl-edma from mpc55xx This is a preparation for making the driver universal. Update #4180
    Comment 15
    1. Christian Mauderer, Thu, 21 Jan 2021 09:26:45 GMT

    In a434cc8/rtems:

    bsps/shared: Adapt fsl-edma driver for imxrt Note: The changes have been done with portability in mind. The driver should (in theory) be able to replace the original one in the MPC BSPs too. For full compatibility an adaption layer and especially a test would be necessary. Because both are missing, don't integrate it into the MPC BSP now. Update #4180
    Comment 16
    1. Christian Mauderer, Thu, 21 Jan 2021 09:26:48 GMT

    In d9794a1/rtems:

    bsps/imxrt: Add DMA numbers to dtsi Also currently no driver uses these numbers, it is usefull for applications that want to use the DMA. Update #4180
    Comment 17
    1. Christian Mauderer, Thu, 21 Jan 2021 09:26:55 GMT

    In 36b4e8c/rtems:

    bsps/imxrt: Add ioctl to LPSPI to get registers This allows an application to get the registers of the LPSPI. That is usefull for applications that want to use DMA for a very specialized and highly optimized communication. Update #4180
    Comment 18
    1. Christian Mauderer, Mon, 17 May 2021 07:13:13 GMT

    In 08e4e6f2/rtems:

    bsps/imxrt: Fix documentation error Update #4180
    Comment 19
    1. Christian Mauderer, Mon, 17 May 2021 07:13:16 GMT

    In c3056666/rtems:

    bsps/imxrt: Reduce devicetree size Remove symbols that would be necessary for overlays and decrease padding that would be necessary for adding stuff during run-time. Update #4180
    Comment 20
    1. Christian Mauderer, Mon, 17 May 2021 07:13:20 GMT

    In 988cc1a/rtems:

    bsps/imxrt: Add addresses and interrupts to dts Add addresses and interrupts for most internal peripherals to the dts. The additional aliases make it possible for an application to easily access these informations. Update #4180
    Comment 21
    1. Christian Mauderer, Mon, 17 May 2021 07:13:23 GMT

    In 691fec40/rtems:

    bsps/imxrt: Fix OCRAM, ITCM and DTCM sizes The sizes are configurable via fuses or per software via some registers. At the moment the registers are not changed. Changing the registers destroys data stored in the RAM areas (like application code or data). So either the fuses or some bootloader should be used to set them before the application starts. This also adds an OCRAM only linker command file. Update #4180
    Comment 22
    1. Christian Mauderer, Mon, 17 May 2021 07:13:27 GMT

    In 15e26f4/rtems:

    bsps/imxrt: Enable DMA clock The EDMA is intialized so make sure the the clock is initialized too. Update #4180
    Comment 23
    1. Christian Mauderer, Fri, 28 May 2021 06:27:33 GMT

    In a3ebe17/rtems-docs:

    bsps/imxrt: Remove superfluous options from dtc The -@ option adds symbols that are used when applying an overlay. RTEMS doesn't support overlays or re-parsing of device trees. So the symbols only increase the size of the binary. The same is true for the padding. It would be useful if the device tree is changed during run time which is not supported in RTEMS. Update #4180
    Comment 24
    1. Christian Mauderer, Fri, 02 Jul 2021 11:51:06 GMT

    In 95a38dd/rtems:

    bsps/imxrt: Allow different ARM PLL setting Update #4180
    Comment 25
    1. Christian Mauderer, Fri, 02 Jul 2021 11:51:10 GMT

    In 0d3453a4/rtems:

    bsps/imxrt: Simplify linkcmds and make it flexible Calling the memory FLASH and EXTRAM instead of FLEXSPI and SDRAM makes it simpler to support other types of external RAM. This patch also removes some of the calculations and improves names and documentation to avoid pitfalls. It removes a unnecessary memory definition. Update #4180
    Comment 26
    1. Christian Mauderer, Fri, 02 Jul 2021 11:53:08 GMT

    In 72ae964/rtems-docs:

    user/bsps/imxrt: Info about ARM PLL frequency Update #4180
    Comment 27
    1. Christian Mauderer, Thu, 02 Sep 2021 06:38:40 GMT

    In e495633/rtems:

    bsps/imxrt: Improve SPI driver It wasn't possible to keep the CS line low between multiple message descriptors in one transfer. This patch reworks the driver so that it is possible. Update #4180
    Comment 28
    1. Christian Mauderer, Fri, 17 Dec 2021 07:39:50 GMT

    The base BSP works since quite some time now. Further changes to this BSP are improvements. Therefore closing this ticket now.

    Comment 29
    1. Christian Mauderer, Fri, 17 Dec 2021 07:40:16 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    4181 - Add CONFIGURE_INIT_TASK_STORAGE_SIZE

    Link https://devel.rtems.org/ticket/4181
    Id 4181
    Reporter Sebastian Huber
    Created 20 November 2020 07:31:23
    Modified 23 June 2021 07:07:55
    Owner Sebastian Huber
    Type enhancement
    Component admin
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    Currently, the Classic API initialization task is created with rtems_task_create(). In order to better support applications which use the new rtems_task_construct() directive add a configuration options which constructs the Classic API initialization task with rtems_task_construct():

    /* Generated from spec:/acfg/if/init-task-storage-size */
    /**
    * @brief This configuration option is an integer define.
    *
    * The value of this configuration option defines the task storage size of the
    * Classic API initialization task. If this configuration option is specified,
    * then the Classic API initialization task is constructed by
    * rtems_task_construct() instead of using rtems_task_create().
    *
    * @par Default Value
    * The default value is 0.
    *
    * @par Value Constraints
    * @parblock
    * The value of this configuration option shall satisfy all of the following
    * constraints:
    *
    * * It shall be greater than or equal to #CONFIGURE_MINIMUM_TASK_STACK_SIZE.
    *
    * * It shall be defined using RTEMS_TASK_STORAGE_SIZE().
    * @endparblock
    *
    * @par Notes
    * @parblock
    * A task storage area of the specified size is defined by the configuration
    * for the Classic API initialization task. The
    *
    * * #CONFIGURE_INIT_TASK_STACK_SIZE and
    *
    * * ``CONFIGURE_INIT_TASK_STORAGE_SIZE``
    *
    * configuration options are mutually exclusive.
    * @endparblock
    */
    #define CONFIGURE_INIT_TASK_STORAGE_SIZE
    Comment 1
    1. Sebastian Huber, Fri, 27 Nov 2020 07:47:03 GMT

    In bc175a1/rtems:

    Avoid INTERNAL_ERROR_RTEMS_INIT_TASK_ENTRY_IS_NULL Replace a runtime check with a compile time assertion. This makes the INTERNAL_ERROR_RTEMS_INIT_TASK_ENTRY_IS_NULL obsolete. Update #4181.
    Comment 2
    1. Sebastian Huber, Fri, 27 Nov 2020 07:47:07 GMT

    In 657e30c1/rtems:

    config: CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE In order to better support applications which use the new rtems_task_construct() directive add the CONFIGURE_INIT_TASK_CONSTURCT_STORAGE_SIZE configuration option. If this option is specified, then the Classic API initialization task is constructed with rtems_task_construct(). Update #4181.
    Comment 3
    1. Sebastian Huber, Fri, 27 Nov 2020 07:47:13 GMT

    In 06386fc7/rtems:

    Use CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE Update #4181.
    Comment 4
    1. Sebastian Huber, Fri, 27 Nov 2020 08:16:58 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 00b3444/rtems-docs:

    c-user: CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE Document new configuration option CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE. Close #4181.
    Comment 5
    1. Sebastian Huber, Fri, 27 Nov 2020 08:52:57 GMT

    In 6e566bad/rtems:

    config: CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE Fix the documentation. Update #4181.
    Comment 6
    1. Sebastian Huber, Sat, 12 Dec 2020 12:53:44 GMT

    In fcd9618a/rtems:

    config: Fix invalid static assertions in C Expressions in static assertions must be integral constant expressions. In integral constant expressions the use of address constant expressions is not allowed. In static initializers the address constant expressions are allowed. Introduce a new macro _CONFIGURE_ASSERT_NOT_NULL() which leads to a compile time error if the second parameter is NULL. It generates error messages like this if for example
    `#define CONFIGURE_INIT_TASK_ENTRY_POINT NULL `
    is provided by the application: cpukit/include/rtems/confdefs/inittask.h:51:26: error: size of unnamed array is negative
    51 | ( _type ) sizeof( int[ ( _value ) != NULL ? 1 : -1 ] ) )
    |
    cpukit/include/rtems/confdefs/inittask.h:170:3: note: in expansion of macro '_CONFIGURE_ASSERT_NOT_NULL'
    170 | _CONFIGURE_ASSERT_NOT_NULL(
    | ~
    This fix relates to CID 1470570 (PARSE_ERROR). Update #4181.
    Comment 7
    1. Sebastian Huber, Wed, 23 Jun 2021 07:07:55 GMT
    2. keywords: qualification added

    4184 - arm/bsps: Small MMU pages are rounded to 1 MiB

    Link https://devel.rtems.org/ticket/4184
    Id 4184
    Reporter Jan Sommer
    Created 24 November 2020 08:33:45
    Modified 15 December 2020 10:26:14
    Owner Jan Sommer <jan.sommer@…>
    Type defect
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The function arm_cp15_start_set_translation_table_entries rounds the end address of a section up to 1 MiB even if small 4kiB pages are used (i.e. ARM_MMU_USE_SMALL_PAGES enabled).

    Will submit a patch which only rounds the end address to 4kiB boundary.

    Comment 1
    1. Jan Sommer, Wed, 02 Dec 2020 12:38:22 GMT

    To keep track of it during the Christmas break: The patch is here:

    ​https://lists.rtems.org/pipermail/devel/2020-November/063461.html

    Comment 2
    1. Jan Sommer, Fri, 11 Dec 2020 05:54:46 GMT
    2. owner: set to Jan Sommer <jan.sommer@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 1a7afb5/rtems:

    bsps/arm: Fix MMU small pages support For small tables only round to the next 4kiB instead of 1MiB Close #4184.
    Comment 3
    1. Sebastian Huber, Tue, 15 Dec 2020 10:26:14 GMT

    In 0deeb02/rtems:

    bsps/arm: Fix MMU configuration Update #4184.

    4192 - bsp/xilinx_zynq: Enable support for small MMU pages

    Link https://devel.rtems.org/ticket/4192
    Id 4192
    Reporter Jan Sommer
    Created 27 November 2020 13:34:57
    Modified 16 December 2021 16:11:44
    Owner  
    Type enhancement
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity minor
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Enable the xilinx_zynq based BSPs to support the configuration of the MMU to use small 4 kiB pages.

    By default 1 MB pages will be used. The 4 kiB pages have to be enabled with the ARM_MMU_USE_SMALL_PAGES configuration option.

    Comment 1
    1. Jan Sommer, Fri, 27 Nov 2020 13:45:49 GMT

    Patch submitted: ​https://lists.rtems.org/pipermail/devel/2020-November/063517.html

    Comment 2
    1. Kinsey Moore, Thu, 16 Dec 2021 16:11:44 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed

    This should have been closed with commit cadbd7d15086b76dc4e5dd199e47b68d40006e6d


    4193 - devctl.h does not compile from C++ (cloned)

    Link https://devel.rtems.org/ticket/4193
    Id 4193
    Reporter Joel Sherrill
    Created 1 December 2020 13:48:43
    Modified 1 December 2020 13:49:24
    Owner Sebastian Huber <sebastian.huber@…>
    Type defect
    Component tool/newlib
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Cloned from #4174:

    The closing boilerplate of the C++ extern C wrapper is out of order with another #endif and the resulting code does not compile.

    The attached patch addresses this but it needs to be merged to newlib and the RSB updated before this ticket closed.

    Comment 1
    1. Sebastian Huber, Tue, 01 Dec 2020 13:49:24 GMT
    2. owner: set to Sebastian Huber <sebastian.huber@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In c576ec2/rtems-source-builder:

    6/7: Update unstable RTEMS 6/7 tool chain Close #4193.

    4194 - RSB failed with mail subject: Build Linux: PASSED 6/rtems-arm on x86_64-linux-gnu

    Link https://devel.rtems.org/ticket/4194
    Id 4194
    Reporter Sebastian Huber
    Created 1 December 2020 18:17:15
    Modified 16 December 2021 15:47:03
    Owner  
    Type defect
    Component tool/rsb
    Status closed
    Resolution worksforme
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    error: config error: gdb-common-1.cfg:99: "gdb: python: header file not found: python2.7/Python.h, please install"
    Build FAILED
    Mailing report: build@rtems.org

    The mail subject should indicated that the build failed.

    Comment 1
    1. Joel Sherrill, Thu, 16 Dec 2021 15:47:03 GMT
    2. status: changed from new to closed
    3. resolution: set to worksforme

    Haven't seen a failed build with an incorrect header recently.


    4195 - Add gr740 support available in SIS 2.25 to the RTEMS Tester

    Link https://devel.rtems.org/ticket/4195
    Id 4195
    Reporter Sebastian Huber
    Created 2 December 2020 09:16:21
    Modified 23 June 2021 07:07:55
    Owner Sebastian Huber
    Type enhancement
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    Comment 1
    1. Sebastian Huber, Wed, 02 Dec 2020 09:39:10 GMT

    In 97fe5bf/rtems-tools:

    tester: Add support for sparc/gr740 BSP Update #4195.
    Comment 2
    1. Sebastian Huber, Wed, 02 Dec 2020 09:42:28 GMT

    In 675e73f/rtems-source-builder:

    devel/sis: Update to 2.25 Update #4195.
    Comment 3
    1. Sebastian Huber, Wed, 02 Dec 2020 09:42:30 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In d79b044/rtems-source-builder:

    6/7: Update to the latest rtems-tools Close #4195.
    Comment 4
    1. Sebastian Huber, Wed, 23 Jun 2021 07:07:55 GMT
    2. keywords: qualification added

    4196 - Improve gcov support provided by GCC for RTEMS

    Link https://devel.rtems.org/ticket/4196
    Id 4196
    Reporter Sebastian Huber
    Created 2 December 2020 09:38:15
    Modified 29 June 2022 09:29:52
    Owner Sebastian Huber
    Type enhancement
    Component tool/gcc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking 4670
    Blocked by  

    Description

    If we want to use gcov in RTEMS to get code coverage in all system states, then we need some tweaks in GCC:

    ​https://gcc.gnu.org/pipermail/gcc/2020-November/234164.html

    The linker set based gcov information registration is already included in GCC:

    ​https://gcc.gnu.org/onlinedocs/gcc/Instrumentation-Options.html#index-fprofile-info-section

    There is a discussion about how the gcov information can be transferred from the embedded system to the host:

    ​https://gcc.gnu.org/pipermail/gcc-patches/2020-November/559342.html

    The following patch set was integrated in GCC 13:

    ​https://gcc.gnu.org/pipermail/gcc-patches/2022-April/593536.html

    ​https://gcc.gnu.org/onlinedocs/gcc/Freestanding-Environments.html#Freestanding-Environments

    Attachments:

    1 Sebastian Huber, Wed, 02 Dec 2020 09:54:29 GMT
      attach: set to 0001-gcov-Add-fprofile-info-section-support.patch
    2 Sebastian Huber, Wed, 21 Jul 2021 09:44:53 GMT
      attach: set to 0001-gcov-Fix-use-of-profile-info-section.patch
    3 Sebastian Huber, Wed, 21 Jul 2021 09:45:10 GMT
      attach: set to 0002-gcov-Add-__gcov_info_to_gdca.patch
    4 Sebastian Huber, Wed, 21 Jul 2021 13:33:53 GMT
      attach: set to 0001-Remove-wrong-bail-out-in-prune_topn_counter.patch
    5 Sebastian Huber, Fri, 06 Aug 2021 15:24:11 GMT
      attach: set to 0001-Back-port-__gcov_info_to_gcda-to-GCC-10.patch
    6 Sebastian Huber, Mon, 09 Aug 2021 15:29:56 GMT
      attach: set to 0001-Back-port-v2-of-__gcov_info_to_gcda-to-GCC-10.patch
    7 Sebastian Huber, Mon, 09 Aug 2021 18:44:12 GMT
      attach: set to 0001-Back-port-v3-of-__gcov_info_to_gcda-to-GCC-10.patch
    8 Sebastian Huber, Mon, 30 Aug 2021 08:48:43 GMT
      attach: set to 0001-Back-port-v4-of-__gcov_info_to_gcda-to-GCC-10.patch
    9 Sebastian Huber, Mon, 30 Aug 2021 12:02:33 GMT
      attach: set to 0001-Back-port-v5-of-__gcov_info_to_gcda-to-GCC-10.patch
    10 Sebastian Huber, Tue, 03 May 2022 06:13:16 GMT
      attach: set to 0001-Back-port-v1-of-gcov-tool-merge-stream-to-GCC-12.patch
    11 Sebastian Huber, Tue, 21 Jun 2022 07:15:58 GMT
      attach: set to 0001-Back-port-v6-of-gcov-improvements-to-GCC-10.patch
    12 Sebastian Huber, Wed, 29 Jun 2022 07:19:49 GMT
      attach: set to 0001-Back-port-v7-of-gcov-improvements-to-GCC-10.patch
    13 Sebastian Huber, Wed, 29 Jun 2022 08:31:28 GMT
      attach: set to 0001-Back-port-v8-of-gcov-improvements-to-GCC-10.patch
    Comment 1
    1. Sebastian Huber, Wed, 02 Dec 2020 10:24:27 GMT

    In 1d9f5d0/rtems-source-builder:

    6: Add support for gcov info section Update #4196.
    Comment 2
    1. Sebastian Huber, Fri, 18 Jun 2021 09:24:45 GMT
    2. keywords: qualification added
    Comment 3
    1. Sebastian Huber, Fri, 06 Aug 2021 05:33:18 GMT

    The __gcov_info_to_gcda() function is now integrated in GCC:

    ​https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=9124bbe1857f0d3a3015d6461d5f8d04f07cab85

    Comment 4
    1. Sebastian Huber, Fri, 06 Aug 2021 16:39:49 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 6c0d7b6/rtems-source-builder:

    6: Back port gcov_info_to_gcda() to GCC 10 Close #4196.
    Comment 5
    1. Sebastian Huber, Mon, 09 Aug 2021 15:21:01 GMT

    There are issues with multi-threaded programs:

    ​https://gcc.gnu.org/pipermail/gcc/2021-August/237058.html

    Comment 6
    1. Sebastian Huber, Mon, 09 Aug 2021 15:59:04 GMT

    In ca5c27d/rtems-source-builder:

    6: Back port v2 of gcov_info_to_gcda() to GCC 10 Update #4196.
    Comment 7
    1. Sebastian Huber, Mon, 09 Aug 2021 19:05:23 GMT

    In ec495e0/rtems-source-builder:

    6: Back port v3 of gcov_info_to_gcda() to GCC 10 Update #4196.
    Comment 8
    1. Sebastian Huber, Wed, 01 Sep 2021 15:50:46 GMT

    In a1f7b3b/rtems-source-builder:

    6: Back port v5 of gcov_info_to_gcda() to GCC 10 Update #4196.
    Comment 9
    1. Sebastian Huber, Tue, 03 May 2022 06:01:44 GMT
    2. description: modified (diff)
    Comment 10
    1. Sebastian Huber, Wed, 04 May 2022 05:47:29 GMT

    In 22e32ec/rtems-source-builder:

    7: Back port gcov-tool merge-stream to GCC 12 Update #4196.
    Comment 11
    1. Sebastian Huber, Tue, 21 Jun 2022 14:16:49 GMT

    In cf0914f/rtems-source-builder:

    6: Back port v6 of gcov improvements to GCC 10 Update #4196.
    Comment 12
    1. Sebastian Huber, Tue, 28 Jun 2022 06:38:43 GMT
    2. blocking: set to 4670
    Comment 13
    1. Sebastian Huber, Wed, 29 Jun 2022 09:29:52 GMT

    In 9474bb8/rtems-source-builder:

    6: Back port v8 of gcov improvements to GCC 10 Update #4196.

    4197 - testsuite: ts-validation-0 broken on AArch64 due to SIZE_MAX issues in the test design

    Link https://devel.rtems.org/ticket/4197
    Id 4197
    Reporter Kinsey Moore
    Created 2 December 2020 20:28:40
    Modified 4 March 2021 08:12:53
    Owner  
    Type defect
    Component arch/aarch64
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The ts-validation-0 test is broken on AArch64 LP64 ABI due to issues with unexpected values of SIZE_MAX. I was not familiar enough with the test architecture in use to debug it properly. This test passes under the ILP32 ABI due to the 32bit pointers and differing value of SIZE_MAX.

    Comment 1
    1. Chris Johns, Mon, 15 Feb 2021 06:51:39 GMT

    Which test architecture are you referring too?

    Comment 2
    1. Sebastian Huber, Mon, 15 Feb 2021 09:36:48 GMT

    This is a general 64-bit issue.

    Comment 3
    1. Kinsey Moore, Mon, 15 Feb 2021 14:39:48 GMT

    We actually found some time to dive into this recently and, as expected, it's just a one-line tweak to fix it. I'll post a patch shortly.

    Chris, The test architecture I'm referring to is how the validation test sets up a large battery of repetitive checks.

    Comment 4
    1. Sebastian Huber, Thu, 04 Mar 2021 08:12:53 GMT
    2. status: changed from new to closed
    3. version: set to 6
    4. resolution: set to fixed
    5. milestone: set to 6.1

    Fixed by 8fe59be236e7f2047adb6e393639bbf56bbd996d.


    4198 - arm: Add multilib for Cortex-R52 processor

    Link https://devel.rtems.org/ticket/4198
    Id 4198
    Reporter Sebastian Huber
    Created 3 December 2020 07:59:08
    Modified 26 January 2022 10:01:55
    Owner Sebastian Huber
    Type enhancement
    Component arch/arm
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    This processor uses the ARMv8-R instruction set.

    Comment 1
    1. Sebastian Huber, Thu, 03 Dec 2020 19:34:38 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 9ef9956/rtems-source-builder:

    6/7: Add multilib for ARM Cortex-R52 processor Close #4198.
    Comment 2
    1. Sebastian Huber, Fri, 04 Dec 2020 06:16:30 GMT
    2. status: changed from closed to reopened
    3. resolution: fixed deleted

    There is an issue with the memchr() implementation provided by Newlib:

    File: /opt/rtems/6/lib/gcc/arm-rtems6/10.2.1/../../../../arm-rtems6/lib/thumb/cortex-r52/hard/libc.a(lib_a-memchr.o)
    Attribute Section: aeabi
    File Attributes
      Tag_CPU_name: "7-A"
      Tag_CPU_arch: v7
      Tag_CPU_arch_profile: Application
      Tag_ARM_ISA_use: Yes
      Tag_THUMB_ISA_use: Thumb-2
      Tag_FP_arch: VFPv3
      Tag_Advanced_SIMD_arch: NEONv1 
    Comment 3
    1. Sebastian Huber, Tue, 15 Dec 2020 09:35:09 GMT

    In 96c1e17/rtems-source-builder:

    6/7: Update unstable RTEMS 6/7 tool chain This update includes a fix for the ARM Cortex-R52 support in Newlib. Update #4198.
    Comment 4
    1. Sebastian Huber, Wed, 26 Jan 2022 10:01:55 GMT
    2. status: changed from reopened to closed
    3. resolution: set to fixed

    4200 - Build system doco link in the User Guide is broken

    Link https://devel.rtems.org/ticket/4200
    Id 4200
    Reporter Chris Johns
    Created 9 December 2020 00:59:36
    Modified 29 November 2022 23:26:11
    Owner  
    Type defect
    Component doc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    ​https://docs.rtems.org/branches/master/user/bld/index.html#commands

    The "RTEMS Software Engineering" guide link at the end of this section is to a .rst file.

    I think cross-doc links is broken no matter how you attempt to solve this, ie PDF files will never work.

    Comment 1
    1. Chris Johns, Wed, 09 Dec 2020 01:02:36 GMT

    There are cross doco links in the engineering manual. These are also broken.

    Comment 2
    1. Chris Johns, Tue, 29 Nov 2022 23:26:11 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed

    4201 - waf building out of source tree does not find all configured bsps

    Link https://devel.rtems.org/ticket/4201
    Id 4201
    Reporter Chris Johns
    Created 9 December 2020 01:46:10
    Modified 29 November 2022 23:27:25
    Owner  
    Type defect
    Component build
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    config.ini is:

    [DEFAULT]
    BUILD_TESTS = False
    RTEMS_DEBUG = True
    RTEMS_POSIX_API = True
    [arm/beagleboneblack]
    [arm/xilinx_zynq_a9_qemu]
    [i386/pc686]
    [powerpc/mvme2307]

    And configure is:

    $ /opt/work/chris/rtems/kernel/rtems.git/waf \
    --top=/opt/work/chris/rtems/kernel/rtems.git \
    --out=build configure \
    --rtems-config=config.ini \
    --prefix=/opt/work/chris/rtems/nfs/6
    Setting top to : /opt/work/chris/rtems/kernel/rtems.git
    Setting out to : /opt/work/chris/rtems/nfs/bsps/build
    Configure board support package (BSP) : powerpc/mvme2307
    Checking for program 'powerpc-rtems6-gcc' : /opt/work/chris/rtems/nfs/6/bin/powerpc-rtems6-gcc
    Checking for program 'powerpc-rtems6-g++' : /opt/work/chris/rtems/nfs/6/bin/powerpc-rtems6-g++
    Checking for program 'powerpc-rtems6-ar' : /opt/work/chris/rtems/nfs/6/bin/powerpc-rtems6-ar
    Checking for program 'powerpc-rtems6-ld' : /opt/work/chris/rtems/nfs/6/bin/powerpc-rtems6-ld
    Checking for program 'ar' : /opt/work/chris/rtems/nfs/6/bin/powerpc-rtems6-ar
    Checking for program 'g++, c++' : /opt/work/chris/rtems/nfs/6/bin/powerpc-rtems6-g++
    Checking for program 'ar' : /opt/work/chris/rtems/nfs/6/bin/powerpc-rtems6-ar
    Checking for program 'gas, gcc' : /opt/work/chris/rtems/nfs/6/bin/powerpc-rtems6-gcc
    Checking for program 'ar' : /opt/work/chris/rtems/nfs/6/bin/powerpc-rtems6-ar
    Checking for program 'gcc, cc' : /opt/work/chris/rtems/nfs/6/bin/powerpc-rtems6-gcc
    Checking for program 'ar' : /opt/work/chris/rtems/nfs/6/bin/powerpc-rtems6-ar
    Checking for asm flags '-MMD' : yes
    Checking for c flags '-MMD' : yes
    Checking for cxx flags '-MMD' : yes
    Checking for program 'rtems-bin2c' : /opt/work/chris/rtems/nfs/6/bin/rtems-bin2c
    Checking for program 'gzip' : /usr/bin/gzip
    Checking for program 'rtems-ld' : /opt/work/chris/rtems/nfs/6/bin/rtems-ld
    Checking for program 'rtems-syms' : /opt/work/chris/rtems/nfs/6/bin/rtems-syms
    Checking for program 'xz' : /usr/bin/xz
    'configure' finished successfully (0.245s)

    The same config.ini in the source tree finds all configured bsps.

    Being able to cleanly sandbox builds is a feature of the autotools build system.

    Comment 1
    1. Sebastian Huber, Wed, 09 Dec 2020 05:55:53 GMT

    I guess the issue is that it finds a "config.ini" in the source tree since this is the current working directory of the wscript process.

    For a discussion of out of tree builds see:

    ​https://lists.rtems.org/pipermail/devel/2020-November/063066.html

    Comment 2
    1. Chris Johns, Tue, 29 Nov 2022 23:27:25 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed

    4202 - Add BSP for ARM Fixed Virtual Platform with a Cortex-R52

    Link https://devel.rtems.org/ticket/4202
    Id 4202
    Reporter Sebastian Huber
    Created 9 December 2020 13:31:40
    Modified 22 September 2022 05:55:24
    Owner Sebastian Huber
    Type enhancement
    Component arch/arm
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Comment 1
    1. Sebastian Huber, Wed, 09 Dec 2020 16:32:14 GMT

    In 9ce47a5/rtems:

    bsps: Add SMP support to ARM GICv3 Update #4202.
    Comment 2
    1. Sebastian Huber, Thu, 10 Dec 2020 08:08:19 GMT

    In 9955487d/rtems:

    arm: Support Armv8 in Update #4202.
    Comment 3
    1. Sebastian Huber, Thu, 10 Dec 2020 08:08:22 GMT

    In e68827e/rtems:

    arm/cache-cp15: Support Armv8 Update #4202.
    Comment 4
    1. Sebastian Huber, Thu, 10 Dec 2020 08:08:26 GMT

    In 5efa15b/rtems:

    bsps/arm: Unify ARM Generic Timer options Update #4202.
    Comment 5
    1. Sebastian Huber, Thu, 10 Dec 2020 08:08:29 GMT

    In bd7bef52/rtems:

    bsps/arm: Support system level ARM Generic Timer Update #4202.
    Comment 6
    1. Sebastian Huber, Thu, 10 Dec 2020 08:08:32 GMT

    In 617aeaf5/rtems:

    bsps/arm: Move BSP_START_IN_HYP_SUPPORT option Clarify documentation. Update #4202.
    Comment 7
    1. Sebastian Huber, Thu, 10 Dec 2020 15:19:15 GMT

    In b6925e1/rtems:

    bsps: Fix GICv3 arm_gic_trigger_sgi() Use the targets parameter to determine the targets of the SGI. Change targets parameter type to 32-bit to ease the parameter passing. GICv3 supports up to 16 targets. Update #4202.
    Comment 8
    1. Sebastian Huber, Thu, 10 Dec 2020 15:19:18 GMT

    In 105e520/rtems:

    bsps: Remove ARM GIC SGI target filter Remove the target filter for software-generated interrupts since this feature is not supported by the affinity routing in GICv3. Update #4202.
    Comment 9
    1. Sebastian Huber, Thu, 17 Dec 2020 14:32:46 GMT

    In 747fb65/rtems:

    bsps: Add GICv3 arm_gic_irq_processor_count() Update #4202.
    Comment 10
    1. Sebastian Huber, Thu, 17 Dec 2020 14:32:50 GMT

    In b5aceef/rtems:

    bsps: Remove gicvx_interrupt_dispatch() Avoid one level of indirection. Update #4202.
    Comment 11
    1. Sebastian Huber, Thu, 17 Dec 2020 14:32:53 GMT

    In a299c4fe/rtems:

    arm: Optimize arm_interrupt_disable() Update #4202.
    Comment 12
    1. Sebastian Huber, Wed, 23 Dec 2020 09:26:50 GMT

    In be5eee57/rtems:

    libdebugger: Fix for Armv8-R This architecture variant has no MMU. Update #4202.
    Comment 13
    1. Sebastian Huber, Wed, 23 Dec 2020 09:26:54 GMT

    In 39ef7e5/rtems:

    bsps: Fix includes Update #4202.
    Comment 14
    1. Sebastian Huber, Wed, 23 Dec 2020 09:26:57 GMT

    In 6944cd10/rtems:

    arm: Add header file for AArch32 System Registers Update #4202.
    Comment 15
    1. Sebastian Huber, Wed, 23 Dec 2020 09:27:00 GMT

    In 854ea2b/rtems:

    arm: Add support for Arm PMSAv8-32 Update #4202.
    Comment 16
    1. Sebastian Huber, Wed, 23 Dec 2020 09:27:03 GMT

    In 272534e/rtems:

    bsps/arm: Set VBAR in start.S Set the VBAR to the vector table in the start section before bsp_start_hook_0() is called to earlier handle exceptions in RTEMS. Set the VBAR to the normal vector table in start.S for the main processor. Secondary processors set it in bsp_start_hook_0(). Update #4202.
    Comment 17
    1. Sebastian Huber, Wed, 23 Dec 2020 09:27:07 GMT

    In 76a1a53/rtems:

    bsps/arm: Invalidate branch predictors earlier Make sure the branch predictors are invalidated before the first branch is executed. Update #4202.
    Comment 18
    1. Sebastian Huber, Wed, 23 Dec 2020 09:27:10 GMT

    In 46a3c04/rtems:

    bsps/arm: Remove optional start hook arguments The start hook arguments are not used by a BSP. Removing them avoids the need for a stack during the very early system initialization. Update #4202.
    Comment 19
    1. Sebastian Huber, Wed, 23 Dec 2020 09:27:13 GMT

    In b32fd227/rtems:

    bsps/arm: Add arm-data-cache-loop-set-way.h This makes it possible to reuse this loop. Update #4202.
    Comment 20
    1. Sebastian Huber, Wed, 23 Dec 2020 09:27:17 GMT

    In e164df5e/rtems:

    bsps/arm: Clear SCTLR[M, I, A, C] in start.S Initialize the data and unified cache levels. Invalidate the instruction cache levels. Update #4202.
    Comment 21
    1. Sebastian Huber, Wed, 23 Dec 2020 09:27:20 GMT

    In 23d9223a/rtems:

    bsps/arm: Invalidate TLB in start.S Update #4202.
    Comment 22
    1. Sebastian Huber, Wed, 23 Dec 2020 09:27:23 GMT

    In 9f3a08e/rtems:

    bsps: Use header file for GIC architecture support This avoids a function call overhead in the interrupt dispatching. Update #4202.
    Comment 23
    1. Sebastian Huber, Wed, 23 Dec 2020 09:27:27 GMT

    In 016bcb3/rtems:

    bsps/arm: Rely on initialized vector table The arm_cp15_set_exception_handler() is a complicated function which should be avoided if possible. Update #4202.
    Comment 24
    1. Sebastian Huber, Wed, 23 Dec 2020 09:27:30 GMT

    In 81c7f5be/rtems:

    arm/fvp: New BSP This BSP supports the Arm Fixed Virtual Platform. Only the Cortex-R52 processor configuration is supported by the BSP. It should be easy to add support for other variants if needed. Update #4202.
    Comment 25
    1. Sebastian Huber, Mon, 04 Jan 2021 05:12:11 GMT

    In 90342fe/rtems-tools:

    tester: Add support for arm/fvp_cortex_r52 BSP Update #4202.
    Comment 26
    1. Sebastian Huber, Mon, 04 Jan 2021 09:59:30 GMT

    In 1e9c608/rtems-source-builder:

    6/7: Update to the latest rtems-tools Update #4202.
    Comment 27
    1. Sebastian Huber, Mon, 07 Jun 2021 07:41:26 GMT

    In 2d1c494f/rtems:

    arm/fvp: Remove unused GICv2 BSP option Update #4202.
    Comment 28
    1. Sebastian Huber, Mon, 07 Jun 2021 07:41:29 GMT

    In 55ce66ca/rtems:

    arm/fvp: Fix integer from pointer without a cast Update #4202.
    Comment 29
    1. Sebastian Huber, Wed, 16 Jun 2021 15:49:05 GMT

    In f89a527/rtems:

    arm: Fix parameter use in AARCH32_PMSA_MEM_ATTR() Update #4202.
    Comment 30
    1. Sebastian Huber, Tue, 29 Jun 2021 12:59:30 GMT

    In 13b18d12/rtems:

    arm: Disable alignment check in PMSA init Disable the alignment check through SCTLR[A] in _AArch32_PMSA_Initialize(). Update #4202.
    Comment 31
    1. Sebastian Huber, Tue, 29 Jun 2021 12:59:34 GMT

    In b357680/rtems:

    arm: Fix AArch32 memory attribute defines Update #4202.
    Comment 32
    1. Sebastian Huber, Tue, 29 Jun 2021 12:59:37 GMT

    In 9b84adb/rtems:

    arm: Fix AARCH32_PMSA_ATTR_XN value Update #4202.
    Comment 33
    1. Sebastian Huber, Tue, 29 Jun 2021 12:59:41 GMT

    In bb9a4b8/rtems:

    arm: For AArch32 use non-shareable memory The Cortex-R52 does not support cache coherency and the shareable memory attribute. If a region is configured to be shareable, then it falls back to use non-cacheable memory. Update #4202.
    Comment 34
    1. Sebastian Huber, Tue, 30 Nov 2021 07:11:55 GMT

    In 7fec89e2/rtems:

    arm: Fix AARCH32_PMSA_DATA_READ_WRITE_CACHED Fix definition of AARCH32_PMSA_DATA_READ_WRITE_CACHED. Since AARCH32_PMSA_ATTR_AP_EL1_RW_EL0_NO is zero, this fix is only cosmetic. Update #4202.
    Comment 35
    1. Sebastian Huber, Tue, 30 Nov 2021 07:11:59 GMT

    In 73305a1/rtems:

    arm: Add AARCH32_PMSA_DATA_READ_WRITE_DEFAULT Add default memory attributes for read-write data. The actual attributes depend on the RTEMS_SMP build option. Update #4202.
    Comment 36
    1. Sebastian Huber, Wed, 08 Jun 2022 07:04:47 GMT

    In 0b9497a/rtems:

    arm: Fix PMSA region mapping with 0x0 end address A section may span up to the end of the address range. In this case the end address is zero. Use the base address to check if a region should be before another region. Update #4202.
    Comment 37
    1. Sebastian Huber, Wed, 08 Jun 2022 07:04:49 GMT

    In c93f0f01/rtems:

    arm: Fix PMSA regions for contiguous sections Sections with identical attributes may be contiguous with a respective begin and end address which is not on a minimum region boundary. The begin address is aligned down to the region base address. The end address is aligned up to the region end address. Account for this in the check for contiguous sections. Update #4202.
    Comment 38
    1. Sebastian Huber, Fri, 09 Sep 2022 05:41:43 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 13be9a2/rtems-docs:

    user: Document arm/fvp BSP Close #4202.
    Comment 39
    1. Sebastian Huber, Thu, 22 Sep 2022 05:55:24 GMT

    In f6e7c627/rtems:

    bsps/arm: Mark functions in start.S Add the function type to _start() and bsp_start_hook_0_done() so that the linker can generate ARM/Thumb interworking code. Update #4202.

    4204 - Make Termination Handler which Prints Exit Information Less Scary

    Link https://devel.rtems.org/ticket/4204
    Id 4204
    Reporter Joel Sherrill
    Created 9 December 2020 23:54:18
    Modified 16 December 2021 15:39:48
    Owner  
    Type defect
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    This task is change the default termination handler to print successful exit when the cause was exit(0). It scares users to see it and requires explanation.

    Comment 1
    1. Joel Sherrill, Thu, 16 Dec 2021 15:39:48 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed

    This was implemented by Chris Johns.


    4206 - aarch64/xilinx_zynqmp_lp64 does not run with RTEMS_DEBUG enabled

    Link https://devel.rtems.org/ticket/4206
    Id 4206
    Reporter Sebastian Huber
    Created 22 December 2020 12:45:04
    Modified 5 March 2021 14:06:35
    Owner Joel Sherrill
    Type defect
    Component arch/aarch64
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    qemu-system-aarch64 -serial null -serial mon:stdio -machine xlnx-zcu102 -m 4096 -kernel build/aarch64/xilinx_zynqmp_lp64/testsuites/samples/ticker.exe -nographic

    *** FATAL ***
    fatal source: 7 (RTEMS_FATAL_SOURCE_ASSERT)
    fatal code: 1074874896 (0x40114a10)
    RTEMS version: 6.0.0.644cd68d8ce0044f78f095a648bfe4c1567f351b
    RTEMS tools: 10.2.1 20201215 (RTEMS 6, RSB 6d0bff0eb6ed35d180491614b976277d5469a302, Newlib 6cc47c4)
    executing thread ID: 0x08a010001
    executing thread name: UI1
    assertion "cpu_self->thread_dispatch_disable_level == 1" failed: file "/home/EB/sebastian_h/src/rtems/cpukit/score/src/threadhandler.c", line 120, function: _Thread_Handler
    Comment 1
    1. Sebastian Huber, Tue, 22 Dec 2020 12:45:23 GMT
    2. owner: set to Joel Sherrill
    Comment 2
    1. Sebastian Huber, Fri, 05 Mar 2021 14:06:35 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 61d688bf/rtems:

    aarch64: Fix context switch The Per_CPU_Control::isr_dispatch_disable is a 32-bit integer. Close #4206.

    4207 - PZERO define in RTEMS is wrong

    Link https://devel.rtems.org/ticket/4207
    Id 4207
    Reporter Chris Johns
    Created 23 December 2020 19:07:30
    Modified 7 January 2021 22:54:34
    Owner Chris Johns <chrisj@…>
    Type defect
    Component network/libbsd
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Our libbsd support in RTEMS defines PZERO to be zero. FreeBSD defines PZERO to be (PRI_MIN_KERN + 20) and PRI_MIN_KERN is 80.

    The __sleep() call uses bits allocated above the bits used to hold the highest priority to signal things to do. The PDROP (0x200) bit causes a lock to be dropped before sleeping and not reclaimed after.

    Setting PZERO to 0 breaks FreeBSD code in libbsd because calls that end up in __sleep() can incorrectly have the PDROP bit set. A grep of FreeBSD shows how this happens:

     (void) nfsmsleep(&lp->nfslock_lock, mutex,
    PZERO - 1, "nfsv4gr", NULL);
     error = msleep(msqkptr, &msq_mtx, (PZERO - 4) | PCATCH,
    msgsnd", hz);

    This examples shows how either side is used...

     selwakeuppri(&tp->tun_rsel, PZERO + 1); 
    Comment 1
    1. Chris Johns, Wed, 23 Dec 2020 19:23:03 GMT
    2. description: modified (diff)
    3. summary: changed from PZERO define in newlib is wrong to PZERO define in RTEMS is wrong
    Comment 2
    1. Chris Johns, Thu, 07 Jan 2021 22:54:34 GMT
    2. owner: set to Chris Johns <chrisj@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 7696533/rtems:

    cpukit: Merge FreeBSD values for the priorities It seems we need valid values or assumptions in the FreeBSD about these values breaks some of the code. Closes #4207

    4209 - STM32H743ZI Nucleo Consle support not working without workaround

    Link https://devel.rtems.org/ticket/4209
    Id 4209
    Reporter rmueller
    Created 2 January 2021 14:39:38
    Modified 29 November 2022 22:51:15
    Owner Joel Sherrill
    Type defect
    Component arch/arm
    Status closed
    Resolution invalid
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords stm32
    Cc  
    Blocking  
    Blocked by  

    Description

    I think here is still some issue with the HUART3 console support, at least for the STM32H743ZI-Nucleo board.

    I solves the issue by calling some hardware initializaton functions and override void HAL_UART_MspInit(UART_HandleTypeDef* huart) like this:

    #include "hardware_init.h"
    #include
    #include
    void hardware_init() {
    MX_USART3_UART_Init(115200);
    }
    /**
    * ST-LINK UART3
    * CN5 pins on board
    */
    UART_HandleTypeDef huart3;
    GPIO_InitTypeDef gpio_uart_init_struct;
    void MX_USART3_UART_Init(uint32_t baudRate)
    {
    __HAL_RCC_USART3_CONFIG(RCC_USART3CLKSOURCE_HSI);
    __HAL_RCC_GPIOD_CLK_ENABLE();
    __HAL_RCC_USART3_CLK_ENABLE();
    int result;
    huart3.Instance = USART3;
    huart3.Init.BaudRate = baudRate;
    huart3.Init.WordLength = UART_WORDLENGTH_8B;
    huart3.Init.StopBits = UART_STOPBITS_1;
    huart3.Init.Parity = UART_PARITY_NONE;
    huart3.Init.Mode = UART_MODE_TX_RX;
    huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE;
    huart3.Init.OverSampling = UART_OVERSAMPLING_16;
    huart3.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
    huart3.Init.ClockPrescaler = UART_PRESCALER_DIV1;
    //huart3.Init.FIFOMode = UART_FIFOMODE_DISABLE;
    //huart3.Init.TXFIFOThreshold = UART_TXFIFO_THRESHOLD_1_8;
    //huart3.Init.RXFIFOThreshold = UART_RXFIFO_THRESHOLD_1_8;
    huart3.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
    // we can't do error handling (simple print out first) here because UART3 is our print interface
    result = HAL_UART_Init(&huart3);
    if(result == HAL_OK) {
    printf("\rUART3 configured successfully!\r\n");
    }
    }
    // Will be called by HAL_UART_Init
    void HAL_UART_MspInit(UART_HandleTypeDef* huart) {
    /*Configure GPIO pins : PD8 PD9 */
    gpio_uart_init_struct.Pin = GPIO_PIN_8|GPIO_PIN_9;
    gpio_uart_init_struct.Mode = GPIO_MODE_AF_PP;
    gpio_uart_init_struct.Pull = GPIO_NOPULL;
    gpio_uart_init_struct.Speed = GPIO_SPEED_FREQ_LOW;
    gpio_uart_init_struct.Alternate = GPIO_AF7_USART3;
    HAL_GPIO_Init(GPIOD, &gpio_uart_init_struct);
    }

    I then call hardware_init() from my main application and after that, printf is working properly. Maybe the problem is also related to using the Nucleo board?

    Kind Regards
    Robin

    Attachments:

    1 rmueller, Sat, 02 Jan 2021 14:41:11 GMT
      attach: set to hardware_init.c
     
    2 rmueller, Sat, 02 Jan 2021 14:42:08 GMT
      attach: set to hardware_init.h
     
    3 rmueller, Mon, 04 Jan 2021 15:16:22 GMT
      attach: set to nucleo-stm32.patch
     
    4 rmueller, Tue, 05 Jan 2021 22:50:06 GMT
      attach: set to nucleo-stm32-patch2.patch
     
    5 rmueller, Wed, 06 Jan 2021 11:46:55 GMT
      attach: set to stm32h7-doc.patch
     
    Comment 1
    1. rmueller, Sat, 02 Jan 2021 18:33:13 GMT

    I found the UART config in console-uart3.c

     static const stm32h7_uart_config stm32h7_usart3_config = {
      .gpio = {
        .regs = GPIOB,
        .config = {
          .Pin = GPIO_PIN_9 | GPIO_PIN_10,
          .Mode = GPIO_MODE_AF_PP,
          .Pull = GPIO_NOPULL,
          .Speed = GPIO_SPEED_FREQ_LOW,
          .Alternate = GPIO_AF7_USART3
        }
      },
      .irq = USART3_IRQn,
      .device_index = 2
    }; 

    and tried to replace it with this:

    static const stm32h7_uart_config stm32h7_usart3_config = {
      .gpio = {
        .regs = GPIOD,
        .config = {
          .Pin = GPIO_PIN_8 | GPIO_PIN_9,
          .Mode = GPIO_MODE_AF_PP,
          .Pull = GPIO_NOPULL,
          .Speed = GPIO_SPEED_FREQ_LOW,
          .Alternate = GPIO_AF7_USART3
        }
      },
      .irq = USART3_IRQn,
      .device_index = 2
    }; 

    Recompiled the BSP but it still is not working without the workaround from above. If I call printf, the function also never exits and something appears to be broken.. I don't really know why..

    Comment 2
    1. Sebastian Huber, Sun, 03 Jan 2021 10:14:39 GMT

    The clocks are not initialized by the current console driver.

    For a custom board initialization, you can provide the data structures defined in bsps/arm/stm32h7/start/stm32h7-config.c in your application configuration.

    Comment 3
    1. rmueller, Mon, 04 Jan 2021 15:19:13 GMT

    Thanks, it works now. I am not sure, maybe I did not rebuild the BSP properly. I supplied a patch for this particular STM32H7 board configuration so users just have to set an option in config.ini to true for the STM32H743ZI-Nucleo board.

    Kind Regards Robin

    Comment 4
    1. Sebastian Huber, Mon, 04 Jan 2021 18:23:47 GMT

    In affc8de/rtems:

    bsp/stm32h7: Split start configuration This allows applications to individually provide configuration structures. Update #4209.
    Comment 5
    1. Sebastian Huber, Mon, 04 Jan 2021 18:23:50 GMT

    In 6600585f/rtems:

    bsp/stm32h7: Split console configuration This allows applications to individually provide configuration structures. Update #4209.
    Comment 6
    1. Sebastian Huber, Thu, 08 Sep 2022 14:31:42 GMT

    There were some updates to the BSP. Is this issue still open?

    Comment 7
    1. Chris Johns, Tue, 29 Nov 2022 22:25:20 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed
    4. component: changed from admin to arch/arm

    Closing as the patches have not been applied.

    If these changes are still valid please reopen and apply the attached patches.

    Comment 8
    1. Chris Johns, Tue, 29 Nov 2022 22:44:32 GMT
    2. status: changed from closed to reopened
    3. resolution: fixed deleted

    Te patches have been confirmed as suitable to be applied.

    Comment 9
    1. Chris Johns, Tue, 29 Nov 2022 22:44:50 GMT
    2. owner: changed from Sebastian Huber to Joel Sherrill
    3. status: changed from reopened to assigned
    Comment 10
    1. Joel Sherrill, Tue, 29 Nov 2022 22:51:15 GMT
    2. status: changed from assigned to closed
    3. resolution: set to invalid

    Neither patch is applying cleanly for me. Please update them, reopen the ticket, and attach them.


    4212 - libio leaks location clones

    Link https://devel.rtems.org/ticket/4212
    Id 4212
    Reporter Chris Johns
    Created 7 January 2021 07:00:21
    Modified 29 November 2022 22:27:24
    Owner Chris Johns
    Type defect
    Component fs
    Status closed
    Resolution invalid
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    rtems_filesystem_location_copy overwrites a location that may have been cloned via the ops handler leaking the destination node. If a file system has allocated resources in a location node when cloned it will leak. I assume there is a free for every clone?

    An example of a leak is to mount of file system under IMFS and then open a file under the mounted file system. The path eval restart in the IMFS will clone a node and then open will:

     rtems_filesystem_eval_path_extract_currentloc( &ctx, &iop->pathinfo );
    rtems_filesystem_eval_path_cleanup( &ctx );

    The ctx contains a cloned location.

    Allocating resources to a location may be required because of the limited available file system fields and the opaque nature of the fields or a file system may have data it locks or reference counts and that needs to be managed.

    I do not fully understand the semantics around the location object and while I could guess at a fix there are a number functions related to locations and a large number of use cases that I would not know if my fix is OK. For example should the copy function free the destination location and then clone the source location or should it just free the destination location or should all the places a copy is done be updated to manage the free and cloning based on the context? Or is the issue in the open call and the lines pasted here be swapped?

    Comment 1
    1. Sebastian Huber, Thu, 07 Jan 2021 08:16:42 GMT

    Do we have this resource leak with one of the current file systems? If yes, could you please add test case for this resource leak.

    Comment 2
    1. Chris Johns, Thu, 07 Jan 2021 22:20:27 GMT

    Replying to Sebastian Huber:

    Do we have this resource leak with one of the current file systems?

    Yes I believe there is a leak with open as stated above.

    If yes, could you please add test case for this resource leak.

    A test is a good idea however as stated I do not understand the __locations__ struct and the eval code in libio. I could create a test and provide a fix and break an existing file system.

    Maybe the following will help explain why I am confused:

    Is this simply a bug in open? Does ...
     rtems_filesystem_eval_path_cleanup( &ctx );
      rtems_filesystem_eval_path_extract_currentloc( &ctx, &iop->pathinfo ); 
    ... resolve the leak? Does that create another leak and so should the code be ...
     rtems_filesystem_eval_path_cleanup( &ctx );
      rtems_filesystem_eval_path_extract_currentloc( &ctx, &iop->pathinfo );
      rtems_filesystem_eval_path_cleanup( &ctx ); 
    ... ? Would fixing the copy also resolve this leak? I have no idea which of these is right solution because I do not understand how this is suppose to work. The call rtems_filesystem_location_copy() does not __free__ the resource. The only doco with this function says it is a bitwise copy yet the resource will be added to the corresponding mount. This is confusing because the resource is accounted for yet it does not perform a deep copy of the contents when the file system is required to provide an interface to do this.
    Comment 3
    1. Sebastian Huber, Fri, 08 Jan 2021 05:28:40 GMT

    I am not sure if we have an unintentional resource leak in open() with the current file systems. I would be good to have a test case. The purpose of open() is to create a location for a file which is released to the system through a call to close(). If errors happen during the path evaluation, the rtems_filesystem_eval_path_error() should be called which uses rtems_filesystem_location_detach() if necessary.

    Comment 4
    1. Chris Johns, Sat, 09 Jan 2021 01:24:43 GMT

    I agree we need a test, there is no objection here. I will look at this when I have time.

    The bug is in the eval restart call in the IMFS. When a mount point is found the eval restart call clones the root loc. The open code ends up calling copy which wipes the clone out. A test is needed to expose the leak.

    Putting the test case side, I would like to know if the copy should be deep? The test could then check for it being shallow or deep.

    Comment 5
    1. Sebastian Huber, Mon, 11 Jan 2021 05:25:37 GMT

    From looking at the code, I don't see an issue in the restart code:

    void rtems_filesystem_eval_path_restart(
      rtems_filesystem_eval_path_context_t *ctx,
      rtems_filesystem_global_location_t **newstartloc_ptr
    )
    {
      free_location(&ctx->currentloc);
      rtems_filesystem_instance_unlock(&ctx->startloc->location);
      rtems_filesystem_global_location_assign(
        &ctx->startloc,
        rtems_filesystem_global_location_obtain(newstartloc_ptr)
      );
      rtems_filesystem_instance_lock(&ctx->startloc->location);
      rtems_filesystem_location_clone(&ctx->currentloc, &ctx->startloc->location);
    } 

    It first frees the current location and then continues with a clone of the new start location. A test case would definitely help.

    The locations are just pointers which are registered in the system. I think the documentation of rtems_filesystem_location_copy() is in line with its implementation.

    Comment 6
    1. Chris Johns, Tue, 12 Jan 2021 01:36:02 GMT

    It might have been the optimiser had not shown the path in the debugger and I was seeing something else. A review of this and then the path clean up in open does seem OK. The struct vnode counts will highlight an issue once I have that integrated. When I saw the problem and noted it I did not see the free but I saw the copy.

    Comment 7
    1. Joel Sherrill, Fri, 17 Dec 2021 17:05:49 GMT

    Is this still an issue?

    Comment 8
    1. Sebastian Huber, Wed, 26 Jan 2022 13:54:33 GMT
    2. owner: set to Chris Johns
    3. status: changed from new to assigned

    Please close if possible.

    Comment 9
    1. Chris Johns, Tue, 29 Nov 2022 22:27:24 GMT
    2. status: changed from assigned to closed
    3. resolution: set to invalid

    Please reopen if this is still a valid issue.


    4214 - nios2: Add thread-local storage support

    Link https://devel.rtems.org/ticket/4214
    Id 4214
    Reporter Sebastian Huber
    Created 8 January 2021 08:26:31
    Modified 9 June 2022 13:58:28
    Owner Sebastian Huber
    Type enhancement
    Component arch/nios2
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Comment 1
    1. Joel Sherrill, Fri, 08 Jan 2021 13:54:58 GMT

    Could you add a link to where the ABI for this is defined? Last time I looked for what the mechanics were for TLS for various architectures, I didn't find it for many. Is there a generic mechanism in GCC I have missed?

    Comment 2
    1. Sebastian Huber, Fri, 08 Jan 2021 14:07:45 GMT

    It is a pretty standard approach:

    ​https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/nios2/n2cpu_nii51016.pdf

    Comment 3
    1. Joel Sherrill, Fri, 08 Jan 2021 15:51:24 GMT

    Great! I am sure you will include that link and summarize the pertinent info in the CPU Guide.

    Comment 4
    1. Sebastian Huber, Mon, 01 Feb 2021 06:21:24 GMT

    In c968b27/rtems:

    nios2: Add TLS support Update #4214.
    Comment 5
    1. Sebastian Huber, Thu, 09 Jun 2022 13:58:28 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 5a7acfc/rtems-docs:

    cpu-supplement: Mention that nios2 supports TLS Close #4214.

    4215 - nios2: Add multilib with all custom floating-point instructions supported by GCC

    Link https://devel.rtems.org/ticket/4215
    Id 4215
    Reporter Sebastian Huber
    Created 14 January 2021 10:19:47
    Modified 29 June 2022 09:05:49
    Owner Sebastian Huber
    Type enhancement
    Component arch/nios2
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    See Table 13. "Floating Point Custom Instruction 2 Operation Summary" in the Nios II Custom Instruction User Guide:

    ​https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/ug/ug_nios2_custom_instruction.pdf

    Attachments:

    1 Sebastian Huber, Sun, 17 Jan 2021 18:47:18 GMT
      attach: set to 0001-nios2-Remove-custom-instruction-warnings.patch
    Comment 1
    1. Sebastian Huber, Sat, 16 Jan 2021 16:57:12 GMT

    Changes for GCC 11:

    ​https://gcc.gnu.org/git?p=gcc.git;a=commit;h=7e02426ba0cc4f97ed347f963a6409b32c3c0c88 ​https://gcc.gnu.org/git?p=gcc.git;a=commit;h=42f4e23992487ecacba70575bf88af11288f557f ​https://gcc.gnu.org/git?p=gcc.git;a=commit;h=5e5d56919dd544a530445cfd8c3f6264f3d706f3

    Comment 2
    1. Sebastian Huber, Sun, 17 Jan 2021 20:19:05 GMT

    In e6f29b3/rtems-source-builder:

    6: Add FPH2 multilib for nios2 Update #4215.
    Comment 3
    1. Sebastian Huber, Wed, 29 Jun 2022 09:05:49 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    It is available through the RSB provided GCC 12.


    4217 - Change status code for nested obtain of MrsP semaphores

    Link https://devel.rtems.org/ticket/4217
    Id 4217
    Reporter Sebastian Huber
    Created 20 January 2021 09:36:07
    Modified 29 September 2021 14:12:22
    Owner Sebastian Huber
    Type enhancement
    Component rtems
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    Return RTEMS_INCORRECT_STATE to indicate a nested obtain since this is a kind of deadlock. This status code is also used for other deadlocks.

    Comment 1
    1. Sebastian Huber, Thu, 21 Jan 2021 09:11:11 GMT

    In 8ee22b2/rtems:

    mrsp: Change error status for a nested seize Return STATUS_DEADLOCK (RTEMS_INCORRECT_STATE) to indicate a nested seize since this is a kind of deadlock. This status code is also used for other deadlocks. Update #4217.
    Comment 2
    1. Sebastian Huber, Fri, 18 Jun 2021 09:24:45 GMT
    2. keywords: qualification added
    Comment 3
    1. Sebastian Huber, Wed, 29 Sep 2021 14:12:22 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    Documentation was also adjusted.


    4218 - aarch64 as internal error with spconfig01

    Link https://devel.rtems.org/ticket/4218
    Id 4218
    Reporter Joel Sherrill
    Created 20 January 2021 18:11:24
    Modified 19 October 2021 13:49:43
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component tool/binutils
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    This is to track ​https://sourceware.org/bugzilla/show_bug.cgi?id=27217 where there are more details on the actual failure.

    This impacts spconfig01 and spmisc01 on all aarch64 BSPs.

    Comment 1
    1. Joel Sherrill, Fri, 22 Jan 2021 15:23:01 GMT
    2. description: modified (diff)
    Comment 2
    1. Ryan Long, Tue, 19 Oct 2021 13:49:43 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In e04fddc/rtems-source-builder:

    rtems-binutils: Update to 2.37 and update head Update to binutils 2.37 for RTEMS 6 to fix an issue when building tests for AArch64. Also updated the commit and hash for binutils in rtems-binutils-head. Closes #4218

    4219 - gdb master does not compile on CentOS 7

    Link https://devel.rtems.org/ticket/4219
    Id 4219
    Reporter Joel Sherrill
    Created 20 January 2021 18:12:41
    Modified 22 January 2021 15:22:22
    Owner  
    Type defect
    Component tool/gdb
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    There is a enumerated type and method with the same name. The CentOS 7 gdb does not like this. This ticket is to track the upstream ticket ​https://sourceware.org/bugzilla/show_bug.cgi?id=27219

    Comment 1
    1. Joel Sherrill, Fri, 22 Jan 2021 15:22:13 GMT

    Fixed and RSB bumped.

    Comment 2
    1. Joel Sherrill, Fri, 22 Jan 2021 15:22:22 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed

    4221 - dtc recipe issue -- dependency on yaml.h

    Link https://devel.rtems.org/ticket/4221
    Id 4221
    Reporter Joel Sherrill
    Created 22 January 2021 19:52:32
    Modified 18 November 2021 17:05:44
    Owner kgardas
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    This shows up on FreeBSD and may just be a matter of me not knowing the right package to install. Which yaml development package should be loaded. But it does fail.

     CC fstree.o
    CC livetree.o
    CC treesource.o
    gmake: *** No rule to make target 'yaml.h', needed by 'yamltree.o'. Stop.
    shell cmd failed: /bin/sh -ex /usr/home/joel/rtems-cron-6/rtems-source-builder/rtems/build/dtc-1.6.0-x86_64-freebsd12.2-1/do-build
    error: building dtc-1.6.0-x86_64-freebsd12.2-1
    Suggestions appreciated.
    See error report: rsb-report-dtc-1.6.0-x86_64-freebsd12.2-1.txt
    Comment 1
    1. Chris Johns, Sat, 23 Jan 2021 23:32:28 GMT
    $ find /usr/local/include -name yaml.h
    /usr/local/include/yaml.h
    $ pkg which /usr/local/include/yaml.h
    /usr/local/include/yaml.h was installed by package libyaml-0.2.2 

    A patch to the user manual would be welcome

    Comment 2
    1. Chris Johns, Sat, 23 Jan 2021 23:33:27 GMT
    2. description: modified (diff)
    Comment 3
    1. Sebastian Huber, Mon, 25 Jan 2021 05:44:59 GMT
    2. owner: set to Sebastian Huber <sebastian.huber@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In c709017/rtems:

    Fix RTEMS_LINKER_ROSET_ITEM_ORDERED_DECLARE() Add "extern" similar to RTEMS_LINKER_RWSET_ITEM_ORDERED_DECLARE(). Close #4221.
    Comment 4
    1. Sebastian Huber, Mon, 25 Jan 2021 05:46:44 GMT
    2. status: changed from closed to reopened
    3. resolution: fixed deleted

    Sorry, wrong number in commit.

    Comment 5
    1. kgardas, Sat, 13 Nov 2021 11:45:48 GMT
    2. owner: changed from Sebastian Huber <sebastian.huber@…> to kgardas
    3. status: changed from reopened to accepted

    This is a bug in dtc 1.6.0 which shows when yaml library is installed on FreeBSD. I already created a patch for it just to realize that 1.6.1 contains the same fix. Working on dtc-1.6.0 -> 1.6.1 update patch.

    Comment 6
    1. Karel Gardas, Thu, 18 Nov 2021 17:05:44 GMT
    2. status: changed from accepted to closed
    3. resolution: set to fixed

    In f2a8973/rtems-source-builder:

    RSB: update dtc 1.6.0 -> dtc 1.6.1 Fixes #4221 Note: the patch updates only dtc 1.6.0 occurrences. It leaves all other dtc (1.4.x) usages as they are just to not break anything which depends on older dtc versions.

    4222 - Add a per mount flag to not create a node on O_CREAT in open

    Link https://devel.rtems.org/ticket/4222
    Id 4222
    Reporter Chris Johns
    Created 23 January 2021 23:41:29
    Modified 8 February 2021 02:12:49
    Owner Chris Johns
    Type enhancement
    Component fs
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The libio rtems_filesystem_eval_path_context_t context uses a token left after a path evaluation to indicate the path to the leaf node is valid and the path leaf does not exist. System calls such as mknod, mkdir and open uses this to return EEXIST or in the case of open to create a S_IFREG node for a file. Some file systems do not support creating an S_IFREG node and the open handler is required to do this.

    [ An aside, libio should leave the EEXIST detection to the file system and its evaluation handlers. The EEXIST error is one of many that could be returned yet it is specifically singled out using a fragile interface of a path token remaining. Anyway back to the change ... ]

    The open call has:

     if ( rtems_filesystem_eval_path_has_token( &ctx ) ) {
    create_regular_file( &ctx, mode );
    }

    and create_regular_file makes a node:

     rv = rtems_filesystem_mknod(
    currentloc,
    token,
    tokenlen,
    S_IFREG | mode,
    0
    );

    then wipes the evaluation context of any real and valid flags and settings:

     rtems_filesystem_eval_path_set_flags( ctx, 0 );
    rtems_filesystem_eval_path_set_path( ctx, token, tokenlen );
    rtems_filesystem_eval_path_continue( ctx );

    then continues the path evaluation. The continues path evaluation is suppose to find the new node. If a file system does not support making a regular file node and the mknod call is stubbed out to lie about making the node continuing the path evaluation fails with a not found error. I cannot see a way to code around this with the current libio code.

    I propose adding a bool flag called no_reg_make_node to the rtems_filesystem_mount_table_entry_t struct that defaults to false. If true open does not call create_regular_file.

    Comment 1
    1. Chris Johns, Mon, 25 Jan 2021 02:06:21 GMT
    2. owner: set to Chris Johns
    3. status: changed from new to accepted
    Comment 2
    1. Chris Johns, Mon, 08 Feb 2021 02:12:49 GMT
    2. status: changed from accepted to closed
    3. resolution: set to fixed

    In 822cad89/rtems:

    libcsupport: Add no_regular_file_mknod as a mount option to the mount table Add the bool flag no_regular_file_mknod to the mount table so a file system can indicate creating regular files is not done by use the mknod handler. The file system will handle creating a file node in the open handler. Note, the mount option is an enum which means there is only one exclusive option supported. As a result no encapsulation is provided and file systems need to set no_regular_file_mknod directly. Closes #4222

    4223 - Missing "extern" in RTEMS_LINKER_ROSET_ITEM_ORDERED_DECLARE()

    Link https://devel.rtems.org/ticket/4223
    Id 4223
    Reporter Sebastian Huber
    Created 25 January 2021 05:43:09
    Modified 23 June 2021 07:07:55
    Owner Sebastian Huber
    Type defect
    Component rtems
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    The fix for #3865 contains a typo. In RTEMS_LINKER_ROSET_ITEM_ORDERED_DECLARE() there is a missing "extern".

    Comment 1
    1. Sebastian Huber, Mon, 25 Jan 2021 05:47:20 GMT

    Fixed by c709017efba6de38225afc697a5ed2381cc12071.

    Comment 2
    1. Sebastian Huber, Mon, 25 Jan 2021 05:47:30 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed
    Comment 3
    1. Sebastian Huber, Wed, 23 Jun 2021 07:07:55 GMT
    2. keywords: qualification added

    4225 - Cobham Gaisler NOEL-V RISC-V 32- and 64-bit processor BSP

    Link https://devel.rtems.org/ticket/4225
    Id 4225
    Reporter Daniel Hellstrom
    Created 27 January 2021 15:19:04
    Modified 6 September 2022 14:08:36
    Owner Daniel Hellstrom
    Type enhancement
    Component bsps
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    To add a BSP configurations for Cobham Gaisler's NOEL-V processor IP. The NOEL-V processor is compliant with the open RISC-V 32/64-bit ISA. Depending on the soft-core IP configuration different RISC-V extensions may or may not be available, a matching RTEMS BSP build configuration must be selected accordingly. Similar to Cobham Gaisler's LEON3/4/5 processor designs, the NOEL-V is also a part of GRLIB providing building blocks such as I/O peripherals and L2-cache etc. that is typically used with the processor in SoC solutions. For more information about GRLIB and the current state and road-map of NOEL-V:

    • ​https://www.gaisler.com/grlib
    • ​https://www.gaisler.com/noel-v

    The NOEL-V and GRLIB are available either under open-source GPL or commercial license. Demonstration designs with pre-built bit-streams, DTS/DTB, user's manuals, quick-start guides, etc. are freely available for the FPGA development boards listed under the NOEL-V page above. For example:

    • Arty A7: Artix-7 FPGA Development Board (​https://www.gaisler.com/NOEL-ARTYA7)
    • PolarFire? FPGA Splash Kit (​https://www.gaisler.com/NOEL-PF)
    • Xilinx Kintex UltraScale? FPGA KCU105 Evaluation Kit (​https://www.gaisler.com/NOEL-XCKU)

    All the above demonstration designs have the same base memory layout and peripherals based on GRLIB. A DTS/DTB is needed to describe the system for RTEMS. The first BSP implementation targets only a minimal system with Memory Controller, Processor, IRQ Controller and Timer (RISC-V plic, clint, mtime). Thus the GRLIB drivers based on the driver manager is not needed to run RTEMS on NOEL-V.

    The free GRMON eval hardware debugger can be used with the above demonstration designs to initialize, upload RTEMS images, execute RTEMS and debug the new NOEL-V BSPs.

    Comment 1
    1. Daniel Hellstrom, Mon, 08 Feb 2021 19:48:28 GMT

    Patches are now posted here:

    ​https://lists.rtems.org/pipermail/devel/2021-February/064343.html

    Comment 2
    1. Joel Sherrill, Thu, 10 Feb 2022 22:19:41 GMT

    Pinging after chatting with Daniel. Hopefully updated patches will show up in the next few weeks.

    Comment 3
    1. Martin Aberg, Tue, 06 Sep 2022 14:08:36 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 9ec9be83/rtems:

    bsp/riscv: Add NOEL-V BSP Added support for Cobham Gaisler NOEL-V systems. The NOEL-V support is implemented as a riscv BSP. Both 32-bit and 64-bit processor systems are supported. Cobham Gaisler's NOEL-V RISC-V processor IP is described here:
    ​https://www.gaisler.com/NOELV
    Compatible with the following NOEL-V FPGA example design ranges available from Cobham Gaisler. Follow the links for free bit-streams, DTS/DTB, user's manuals and quick-start guides: NOEL-ARTYA7-EX (​https://www.gaisler.com/NOEL-ARTYA7) NOEL-PF-EX (​https://www.gaisler.com/NOEL-PF) NOEL-XCKU-EX (​https://www.gaisler.com/NOEL-XCKU) Uses the shared GRLIB APBUART console driver "apbuart_termios.c". APBUART devices are probed using device tree. Closes #4225.

    4226 - Buildbot needs a tool chain update

    Link https://devel.rtems.org/ticket/4226
    Id 4226
    Reporter Sebastian Huber
    Created 28 January 2021 05:52:42
    Modified 29 November 2022 22:29:15
    Owner Amar Takhar
    Type defect
    Component admin
    Status closed
    Resolution invalid
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    On 28/01/2021 06:37, buildbot@… wrote:

    The Buildbot has detected a failed build on builder CHECK sparc/erc32 FreeBSD
    10.1-STABLE GCC 7.3.0 POSIX while building rtems.
    Full details are available at:

    ​https://buildbot.rtems.org/#builders/20/builds/440

    Buildbot URL: ​https://buildbot.rtems.org/

    Worker for this Build: build-1

    Build Reason:
    Blamelist: Sebastian Huber

    BUILD FAILED: make (failure)

    Sincerely,

    -The Buildbot

    The Buildbot needs a tool chain update. It still uses GCC 7.5. For RTEMS 6, GCC
    10 is required (RSB ade089253e70d75105a8311844f82f6d20cc30a8).

    Comment 1
    1. Amar Takhar, Sun, 31 Jan 2021 08:22:00 GMT

    I'm updating this now.

    Comment 2
    1. Amar Takhar, Mon, 01 Feb 2021 07:01:22 GMT

    All the tools are updated I'll wait to see if the builds pass before closing this.

    Comment 3
    1. Sebastian Huber, Mon, 01 Feb 2021 09:37:38 GMT

    Thanks for the update, but something went wrong:

    checking for sparc-rtems5-gcc... no configure: error: no acceptable cc found in $PATH

    ​https://buildbot.rtems.org/#builders/20/builds/446

    Comment 4
    1. Sebastian Huber, Mon, 01 Feb 2021 09:39:33 GMT

    The problem is the configure command line:

    configure: running /bin/sh '../../../rtems-snap-test-6.0.0-2021-02-01_093250-05da65c/c/configure' '--prefix=/opt/rtems-6' '--host=sparc-rtems5' '--build=x86_64-unknown-freebsd10.1' '--target=sparc-rtems5' '--enable-rtemsbsp=erc32' '--enable-posix' '--enable-tests' '--with-target-subdir=sparc-rtems5' '--exec-prefix=/opt/rtems-6/sparc-rtems5' '--includedir=/opt/rtems-6/sparc-rtems5/include' '--cache-file=/dev/null' '--srcdir=../../../rtems-snap-test-6.0.0-2021-02-01_093250-05da65c/c'

    It should use "sparc-rtems6". It would be also good to use the new build system instead of the old one.

    Comment 5
    1. Chris Johns, Tue, 29 Nov 2022 22:29:15 GMT
    2. status: changed from assigned to closed
    3. resolution: set to invalid

    We are getting errors on each repo push because buildbot's sockets are not accessible. Please reopen once buildbot is available and able to be used.


    4228 - rtems_build_name() depends on the signedness of char type

    Link https://devel.rtems.org/ticket/4228
    Id 4228
    Reporter Sebastian Huber
    Created 2 February 2021 14:35:42
    Modified 23 June 2021 07:07:55
    Owner Sebastian Huber
    Type defect
    Component rtems
    Status closed
    Resolution fixed
    Version  
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    The rtems_build_name() is implemented by:
    `!c
    #define _Objects_Build_name( _C1, _C2, _C3, _C4 ) \

    ( (uint32_t)(_C1) << 24 | \

    (uint32_t)(_C2) << 16 | \
    (uint32_t)(_C3) << 8 | \
    (uint32_t)(_C4) )

    `
    If the name is build from four "char" components, then the result depends on the signedness of the char type. The macro should first cast the chars to uint8_t.

    Comment 1
    1. Sebastian Huber, Wed, 03 Feb 2021 05:17:44 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 98549e45/rtems:

    score: _Objects_Build_name() signed/unsigned char Change _Objects_Build_name() so that the result is independent of the signedness of char. Close #4228.
    Comment 2
    1. Sebastian Huber, Wed, 23 Jun 2021 07:07:55 GMT
    2. keywords: qualification added

    4229 - conf.py files need updated for sphinxcontrib-bibtex ver. 2.0.0 and greater

    Link https://devel.rtems.org/ticket/4229
    Id 4229
    Reporter Ryan Long
    Created 2 February 2021 15:18:51
    Modified 18 February 2021 20:03:47
    Owner Gedare Bloom <gedare@…>
    Type defect
    Component doc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    I followed the instructions in the README, but I still ran across this error. I was able to get around it by specifying the version ofsphinxcontrib-bibtex to be 1.0.0. This fix might probably needs to be applied to the 5 release branch as well.

    __Command line output__

    Checking for 'sphinxcontrib.bibtex'      : not found (see README.txt)
    The configuration failed
    (complete log in /home/rlong/nta-workspace/nta-docs/build/config.log)

    __Output in ${TOP}/build/config.log__

    err: WARNING: Since v2.0, Sphinx uses "index" as master_doc by default. Please add "master_doc = 'contents'" to your conf.py.
    found
    ----------------------------------------
    Checking for 'sphinxcontrib.bibtex'
    [1/1] Processing ^[[01;34mbuild/.conf_check_70571fadfd25a3c4e29a4087f18cfa38/testbuild/contents.rst^[[0m
    /home/rlong/nta-workspace/nta-docs/sphinx/bin/sphinx-build -b html -D extensions=sphinxcontrib.bibtex -C . out
    out: Running Sphinx v3.4.3
    making output directory... done
    err:
    Extension error:
    You must configure the bibtex_bibfiles setting
    from /home/rlong/nta-workspace/nta-docs/user: Test does not build: Traceback (most recent call last):
    File "/home/rlong/nta-workspace/nta-docs/.waf3-2.0.19-1f3c580272b15a03d2566843c5fe872a/waflib/Configure.py", line 333, in run_build
    bld.compile()
    File "/home/rlong/nta-workspace/nta-docs/.waf3-2.0.19-1f3c580272b15a03d2566843c5fe872a/waflib/Build.py", line 176, in compile
    raise Errors.BuildError(self.producer.error)
    waflib.Errors.BuildError: Build failed
    -> task in '' failed with exit status 2 (run with -v to display more information)
    not found (see README.txt)
    from /home/rlong/nta-workspace/nta-docs/user: The configuration failed
    Comment 1
    1. Gedare Bloom, Thu, 18 Feb 2021 20:03:47 GMT
    2. owner: set to Gedare Bloom <gedare@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 4563bb6/rtems-docs:

    common: use bibtex_bibfiles for newer bibtex Closes #4229.

    4230 - Timeout for automatic barriers is broken

    Link https://devel.rtems.org/ticket/4230
    Id 4230
    Reporter Sebastian Huber
    Created 5 February 2021 12:57:52
    Modified 23 June 2021 07:07:55
    Owner Sebastian Huber
    Type defect
    Component score
    Status closed
    Resolution fixed
    Version 4.11
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    A barrier wait timeout at an automatic barrier doesn't decrement the count of waiting threads.

    Comment 1
    1. Sebastian Huber, Sat, 06 Feb 2021 19:56:40 GMT

    In 2b5ce23b/rtems:

    score: Constify Thread_queue_First_operation Update #4230.
    Comment 2
    1. Sebastian Huber, Sat, 06 Feb 2021 19:56:43 GMT

    In 9477d9ae/rtems:

    score: Make FIFO thread queue ops public Update #4230.
    Comment 3
    1. Sebastian Huber, Sat, 06 Feb 2021 19:56:47 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 96ea09ac/rtems:

    score: Add barrier thread queue operations This fixes a missing decrement of the number of waiting threads during a barrier wait timeout. Close #4230.
    Comment 4
    1. Sebastian Huber, Wed, 23 Jun 2021 07:07:55 GMT
    2. keywords: qualification added

    4231 - MVME 2600/2700 has no console output

    Link https://devel.rtems.org/ticket/4231
    Id 4231
    Reporter Chris Johns
    Created 6 February 2021 19:33:47
    Modified 7 February 2021 23:26:16
    Owner Chris Johns
    Type defect
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    A single character is output then nothing further. Tests output using the printk but spconsole01 fails.

    It seems there is a problem with the UART driver interrupts.

    Comment 1
    1. Chris Johns, Sat, 06 Feb 2021 23:07:27 GMT

    The issue is the wrong BSP_PCI_ISA_BRIDGE_IRQ value was being passed to the openpic_enable_irq() call in bsps/powerpc/shared/irq/openpic_i8259_irq.c. The define is offset by the max ISA bus IRQ value and the openpic call expects IRQ values relative to its signals, ie 0.

    Comment 2
    1. Chris Johns, Sun, 07 Feb 2021 23:26:16 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 450e238/rtems:

    powerpc/shared: ISA bus bridge fails to enable the openpic irq The call to enable the openpic irq for the ISA bridge fails because the IRQ used is offset by the ISA bus signals and the openpic call expects an IRQ relative to its signals. Add the MVME 2600/2700 to the list of boards with an ISA bridge. Closes #4231

    4237 - consolesimpletask.c: Two Unchecked Return Values Spotted by Coverity

    Link https://devel.rtems.org/ticket/4237
    Id 4237
    Reporter Ryan Long
    Created 12 February 2021 18:19:32
    Modified 12 February 2021 23:13:50
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component lib
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1437625: Unchecked return value from call to rtems_task_create().
    CID 1472765: Unchecked return value from call to rtems_task_start().

    Snippet from Coverity output.

    234  IMFS_add_node( "/dev", &cons->Node, NULL );
    235
    CID 1437625 (#1 of 1): Unchecked return value (CHECKED_RETURN)
    1. check_return: Calling rtems_task_create without checking return value (as is done elsewhere 22 out of 25 times).
    236 rtems_task_create(
    237 rtems_build_name('C', 'O', 'N', 'S'),
    238 RTEMS_MAXIMUM_PRIORITY - 1,
    239 RTEMS_MINIMUM_STACK_SIZE,
    240 RTEMS_DEFAULT_ATTRIBUTES,
    241 RTEMS_DEFAULT_MODES,
    242 &cons->task
    243 );
    244
    CID 1472765: Unchecked return value (CHECKED_RETURN) [select issue]
    245 rtems_task_start(
    246 cons->task,
    247 _Console_simple_task_Task,
    248 (rtems_task_argument) cons
    249 );
    250}
    Comment 1
    1. Joel Sherrill, Fri, 12 Feb 2021 20:16:29 GMT
    2. description: modified (diff)
    3. summary: changed from Fix CID #1437625 to consolesimpletask.c: Unchecked Return Value (CID #1437625)
    Comment 2
    1. Joel Sherrill, Fri, 12 Feb 2021 20:20:26 GMT
    2. description: modified (diff)
    3. summary: changed from consolesimpletask.c: Unchecked Return Value (CID #1437625) to consolesimpletask.c: Two Unchecked Return Values (CID #1437625 and #1472765)
    Comment 3
    1. Joel Sherrill, Fri, 12 Feb 2021 20:31:47 GMT
    2. summary: changed from consolesimpletask.c: Two Unchecked Return Values (CID #1437625 and #1472765) to consolesimpletask.c: Two Unchecked Return Values Spotted by Coverity
    Comment 4
    1. Ryan Long, Fri, 12 Feb 2021 23:13:50 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 14f5a05/rtems:

    consolesimpletask.c: Fix Two Unchecked Return Values (CID #1437625 and #1472765) CID 1437625: Unchecked return value from call to rtems_task_create(). CID 1472765: Unchecked return value from call to rtems_task_start(). Closes #4237.

    4238 - Change motorola_powerpc bsp to support irq-generic

    Link https://devel.rtems.org/ticket/4238
    Id 4238
    Reporter Chris Johns
    Created 12 February 2021 19:27:53
    Modified 15 February 2021 21:14:33
    Owner Chris Johns
    Type enhancement
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Update the motorola_powerpc to support irq-generic moving the IRQ management to the IRQ server. This enables libbsd support for interrupts.

    Comment 1
    1. Chris Johns, Mon, 15 Feb 2021 21:14:33 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In e1676c1/rtems:

    Update motorola_power to irq-generic interrupt management Add support to the BSP to enable irq-generic management Update the powerpc shared irq code to support irq-generic. This is an opt in option for existing powerpc bsps. This change should be simpler now Fix a number of issues in ISA IRQ controller handling by porting fixes from the i386 (PC) BSP Closes #4238 Closes #4239

    4239 - PowerPC shared ISA IRQ support is broken

    Link https://devel.rtems.org/ticket/4239
    Id 4239
    Reporter Chris Johns
    Created 12 February 2021 19:35:08
    Modified 15 February 2021 21:14:33
    Owner Chris Johns
    Type defect
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords i8258 irq interrupt
    Cc  
    Blocking  
    Blocked by  

    Description

    The PowerPC shared ISA IRQ management in i8259s.c is broken. It fails to handle:

    • Interrupt acknowledgements for the slave controller when the master has a lower priority pending interrupt acknowledge the slave and the master controllers
    • The nesting support to suspend and resume an interrupt does not correctly handle the enable/disable
    • The initialise of an interrupt does not handle any pending request
    • Locks up when using with the IRQ server which is executing the handler in a task context

    All these issues have been fixed in the i386 BSP however the code between is not shared as the i386 BSP has BSP specific IRQ management code as well.

    Comment 1
    1. Chris Johns, Fri, 12 Feb 2021 19:35:28 GMT
    2. owner: set to Chris Johns
    3. status: changed from new to accepted
    Comment 2
    1. Chris Johns, Mon, 15 Feb 2021 21:14:33 GMT
    2. status: changed from accepted to closed
    3. resolution: set to fixed

    In e1676c1/rtems:

    Update motorola_power to irq-generic interrupt management Add support to the BSP to enable irq-generic management Update the powerpc shared irq code to support irq-generic. This is an opt in option for existing powerpc bsps. This change should be simpler now Fix a number of issues in ISA IRQ controller handling by porting fixes from the i386 (PC) BSP Closes #4238 Closes #4239

    4240 - rtems-debugger-target.c: Dereference before null check spotted by Coverity

    Link https://devel.rtems.org/ticket/4240
    Id 4240
    Reporter Ryan Long
    Created 12 February 2021 20:55:29
    Modified 12 February 2021 23:13:53
    Owner Chris Johns
    Type defect
    Component lib/debugger
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1468682: swbreaks is assigned a value dereferenced from target before it has been verified that target is not null.

    173  rtems_debugger_target*         target = rtems_debugger->target;
    deref_ptr: Directly dereferencing pointer target.
    174 rtems_debugger_target_swbreak* swbreaks = target->swbreaks.block;
    175 size_t swbreak_size;
    176 uint8_t* loc = (void*) addr;
    177 size_t i;
    178 int r;
    179
    CID 1468682 (#1 of 1): Dereference before null check (REVERSE_INULL)check_after_deref: Null-checking target suggests that it may be null, but it has already been dereferenced on all paths leading to the check.
    180 if (target == NULL || swbreaks == NULL || kind != target->breakpoint_size) {
    181 errno = EIO;
    182 return -1;
    183 }
    Comment 1
    1. Ryan Long, Fri, 12 Feb 2021 23:13:53 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed

    In 3f4cdd8/rtems:

    rtems-debugger-target.c: Fix Dereference before null check (CID #1468682) CID 1468682: swbreaks is assigned a value dereferenced from target before it has been verified that target is not null. Closes #4240.

    4241 - rtems-debugger-threads.c: Three Dereference before null check errors spotted by Coverity

    Link https://devel.rtems.org/ticket/4241
    Id 4241
    Reporter Ryan Long
    Created 12 February 2021 21:29:34
    Modified 12 February 2021 23:13:56
    Owner Chris Johns
    Type defect
    Component lib/debugger
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1468681: Dereference before null check in rtems_debugger_thread_continue().
    CID 1468690: Dereference before null check in rtems_debugger_thread_system_resume().
    CID 1468694: Dereference before null check in rtems_debugger_thread_find_index().

    430  rtems_debugger_threads* threads = rtems_debugger->threads;
    431 rtems_debugger_thread* current;
    432 int r = 0;
    deref_ptr_in_call: Dereferencing pointer threads. [show details]
    433 current = rtems_debugger_thread_current(threads);
    CID 1468681 (#1 of 1): Dereference before null check (REVERSE_INULL)check_after_deref: Null-checking threads suggests that it may be null, but it has already been dereferenced on all paths leading to the check.
    434 if (threads != NULL && current != NULL) {
    347  rtems_debugger_threads* threads = rtems_debugger->threads;
    348 rtems_debugger_thread* current;
    349 int r = 0;
    deref_ptr_in_call: Dereferencing pointer threads. [show details]
    350 current = rtems_debugger_thread_current(threads);
    CID 1468690 (#1 of 1): Dereference before null check (REVERSE_INULL)check_after_deref: Null-checking threads suggests that it may be null, but it has already been dereferenced on all paths leading to the check.
    351 if (threads != NULL && current != NULL) {
    150  rtems_debugger_threads* threads = rtems_debugger->threads;
    deref_ptr_in_call: Dereferencing pointer threads. [show details]
    151 rtems_debugger_thread* current = rtems_debugger_thread_current(threads);
    152 int r = -1;
    CID 1468694 (#1 of 1): Dereference before null check (REVERSE_INULL)check_after_deref: Null-checking threads suggests that it may be null, but it has already been dereferenced on all paths leading to the check.
    153 if (threads != NULL) {
    Comment 1
    1. Ryan Long, Fri, 12 Feb 2021 23:13:56 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed

    In f65d3384/rtems:

    rtems-debugger-threads.c: Fix three Dereference before null check errors CID 1468681: Dereference before null check in rtems_debugger_thread_continue(). CID 1468690: Dereference before null check in rtems_debugger_thread_system_resume(). CID 1468694: Dereference before null check in rtems_debugger_thread_find_index(). Closes #4241.

    4242 - rtems-debugger-threads.c: Three Dereference before null check errors spotted by Coverity

    Link https://devel.rtems.org/ticket/4242
    Id 4242
    Reporter Ryan Long
    Created 12 February 2021 21:30:58
    Modified 12 February 2021 21:32:49
    Owner Chris Johns
    Type defect
    Component lib/debugger
    Status closed
    Resolution duplicate
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1468681: Dereference before null check in rtems_debugger_thread_continue().
    CID 1468690: Dereference before null check in rtems_debugger_thread_system_resume().
    CID 1468694: Dereference before null check in rtems_debugger_thread_find_index().

    430  rtems_debugger_threads* threads = rtems_debugger->threads;
    431 rtems_debugger_thread* current;
    432 int r = 0;
    deref_ptr_in_call: Dereferencing pointer threads. [show details]
    433 current = rtems_debugger_thread_current(threads);
    CID 1468681 (#1 of 1): Dereference before null check (REVERSE_INULL)check_after_deref: Null-checking threads suggests that it may be null, but it has already been dereferenced on all paths leading to the check.
    434 if (threads != NULL && current != NULL) {
    347  rtems_debugger_threads* threads = rtems_debugger->threads;
    348 rtems_debugger_thread* current;
    349 int r = 0;
    deref_ptr_in_call: Dereferencing pointer threads. [show details]
    350 current = rtems_debugger_thread_current(threads);
    CID 1468690 (#1 of 1): Dereference before null check (REVERSE_INULL)check_after_deref: Null-checking threads suggests that it may be null, but it has already been dereferenced on all paths leading to the check.
    351 if (threads != NULL && current != NULL) {
    150  rtems_debugger_threads* threads = rtems_debugger->threads;
    deref_ptr_in_call: Dereferencing pointer threads. [show details]
    151 rtems_debugger_thread* current = rtems_debugger_thread_current(threads);
    152 int r = -1;
    CID 1468694 (#1 of 1): Dereference before null check (REVERSE_INULL)check_after_deref: Null-checking threads suggests that it may be null, but it has already been dereferenced on all paths leading to the check.
    153 if (threads != NULL) {
    Comment 1
    1. Joel Sherrill, Fri, 12 Feb 2021 21:32:49 GMT
    2. status: changed from new to closed
    3. resolution: set to duplicate

    4244 - Possible infinite recursion in Classic API Signal handling

    Link https://devel.rtems.org/ticket/4244
    Id 4244
    Reporter Sebastian Huber
    Created 15 February 2021 06:46:56
    Modified 23 June 2021 07:07:55
    Owner Sebastian Huber
    Type defect
    Component rtems
    Status closed
    Resolution fixed
    Version  
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    Due to implementation flaws, there may be an infinite recursion in the signal processing even if ASR mode is disabled during signal processing. The problem is that rtems_task_mode() is used to set up and tear down the ASR-specific task mode. This needs to be changed to set the modes under protection of the right locks and using a loop instead of recursion to schedule the next ASR processing step if needed.

    Comment 1
    1. Sebastian Huber, Sat, 20 Feb 2021 14:25:27 GMT

    In f38c0de4/rtems:

    validation: Add Validation1 test suite Update #4244.
    Comment 2
    1. Sebastian Huber, Sat, 20 Feb 2021 14:25:31 GMT

    In 3e7d658/rtems:

    validation: Add signal manager tests Update #4244.
    Comment 3
    1. Sebastian Huber, Sat, 20 Feb 2021 14:25:34 GMT

    In fea848b/rtems:

    score: Change thread action locking Require that the corresponding lock is acquired before the action handler returns. This helps to avoid recursion in the signal processing. Update #4244.
    Comment 4
    1. Sebastian Huber, Sat, 20 Feb 2021 14:25:37 GMT

    In f9a59164/rtems:

    score: Add _Thread_Append_post_switch_action() Update #4244.
    Comment 5
    1. Sebastian Huber, Sat, 20 Feb 2021 14:25:41 GMT

    In 600360d/rtems:

    rtems: Remove unused _Modes_Mask_changed() Update #4244.
    Comment 6
    1. Sebastian Huber, Sat, 20 Feb 2021 14:25:44 GMT

    In 9d5d73b/rtems:

    rtems: Remove unused _Modes_Change() Update #4244.
    Comment 7
    1. Sebastian Huber, Sat, 20 Feb 2021 14:25:47 GMT

    In a52e5d9/rtems:

    rtems: Remove unused ASR_Information::nest_level Update #4244.
    Comment 8
    1. Sebastian Huber, Sat, 20 Feb 2021 14:25:51 GMT

    In 74ca8b7/rtems:

    rtems: Move _Signal_Action_handler() Move _Signal_Action_handler() and signal MP initialization to rtems_signal_send(). The goal is to make _Signal_Action_handler() a static function in a follow up patch. Update #4244.
    Comment 9
    1. Sebastian Huber, Sat, 20 Feb 2021 14:25:54 GMT

    In f6a97f5/rtems:

    rtems: Simplify signal handling Remove superfluous ASR_Information::signals_posted. Move code out of trivial inline functions. Update #4244.
    Comment 10
    1. Sebastian Huber, Sat, 20 Feb 2021 14:25:57 GMT

    In b207b37/rtems:

    posix: Remove superfluous check The api pointer is never NULL. Update #4244.
    Comment 11
    1. Sebastian Huber, Sat, 20 Feb 2021 14:26:00 GMT

    In 1739bd2/rtems:

    rtems: Remove _Modes_Set_interrupt_level() This call just obfuscated the call to _ISR_Set_level(). Update #4244.
    Comment 12
    1. Sebastian Huber, Sat, 20 Feb 2021 14:26:04 GMT

    In 8778a0e/rtems:

    rtems: New errors for rtems_signal_catch() Ensure that no invalid modes are set during ASR processing. Update #4244.
    Comment 13
    1. Sebastian Huber, Sat, 20 Feb 2021 14:26:07 GMT

    In 08adc0d/rtems:

    rtems: Add _Modes_Apply_timeslice_to_thread() Update #4244.
    Comment 14
    1. Sebastian Huber, Sat, 20 Feb 2021 14:26:10 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In a7e180b/rtems:

    rtems: Avoid potential recursion in ASR handling Do the mode changes necessary for the ASR processing directly under protection of the thread state lock to avoid the recursive calls to thread dispatching done in rtems_task_mode(). Close #4244.
    Comment 15
    1. Sebastian Huber, Fri, 19 Mar 2021 16:08:37 GMT

    In 53bd5e32/rtems:

    rtems: Relax mode checks in rtems_signal_catch() Check only for invalid modes if a valid handler is presented to rtems_signal_catch(). When NULL is used for the handler, ASR processing is disabled and the mode is not used. Update #4244.
    Comment 16
    1. Sebastian Huber, Wed, 23 Jun 2021 07:07:55 GMT
    2. keywords: qualification added

    4245 - Add PCI regions support to RTEMS nexus bus support

    Link https://devel.rtems.org/ticket/4245
    Id 4245
    Reporter Chris Johns
    Created 15 February 2021 21:28:56
    Modified 22 September 2021 01:05:13
    Owner Chris Johns
    Type enhancement
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords powerpc libbsd pci mapping
    Cc  
    Blocking  
    Blocked by  

    Description

    The RTEMS Nexus bus support in LibBSD assumes a linear address map with a !:1 address mapping between the PCI bus master and CPU. Some target hardware has a different PCI bus master address space to the CPU memory address space.

    • Provide a BSP means to enable PCI support in machine/bus.h in LibBSD
    • Update powerpc/motorola_powerpc to support cache coherent memory
    • Change any PowerPC internal calls that clash with the Linux IO interface used in LibBSD. The PowerPC shared BSP calls have a different call signature
    Comment 1
    1. Chris Johns, Tue, 16 Feb 2021 20:31:57 GMT

    In 6e3c6e04/rtems:

    powerpc/io: Make [out/in] le and be calls conditional These calls clash with the Linux IO header in LibBSD. Making these conditional here means BSPs build and the imported Linux header is untouched. Updates #4245
    Comment 2
    1. Chris Johns, Tue, 16 Feb 2021 20:32:01 GMT

    In 23aad64/rtems:

    powerpc/motorola_powerpc: Enable bus PCI support in LibBSD Updates #4245
    Comment 3
    1. Chris Johns, Tue, 16 Feb 2021 20:32:05 GMT

    In 026eb3db/rtems:

    powerpc/motorola_powerpc: Add cache coherent memory to the allocator Updates #4245 Updates #4243
    Comment 4
    1. Chris Johns, Thu, 02 Sep 2021 02:43:07 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 3f1e128/rtems-libbsd:

    rtemsbsd/bus: Add PCI support to the nexus bus Add PCI IO region support Add support map buffers to PCI address space Add BSP conditional IO space support. Some PC implementations have PCI IO space mapped differently to memory space and this needs to be reflected in the busspace. Include bsp.h to pick per BSP configuration. Closes #4245
    Comment 5
    1. Chris Johns, Wed, 22 Sep 2021 01:05:13 GMT

    In cfef84a0/rtems:

    powerpc/io: Make [out/in] le and be calls conditional These calls clash with the Linux IO header in LibBSD. Making these conditional here means BSPs build and the imported Linux header is untouched. Updates #4245

    4246 - Add libbsd DC NIC support to mvme2700 board

    Link https://devel.rtems.org/ticket/4246
    Id 4246
    Reporter Chris Johns
    Created 16 February 2021 01:07:47
    Modified 29 November 2022 22:29:45
    Owner Chris Johns
    Type enhancement
    Component network/libbsd
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Add support for the Tulip NIC to LibBSD for the MVME 2700 (the mvme2307 bsp).

    Comment 1
    1. Chris Johns, Tue, 29 Nov 2022 22:29:45 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    Added and working.


    4250 - b1553brm.c: Dereference before null check error spotted by Coverity

    Link https://devel.rtems.org/ticket/4250
    Id 4250
    Reporter Ryan Long
    Created 16 February 2021 20:43:31
    Modified 19 February 2021 20:06:12
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1399829: Dereference before null check in brm_control().

    rtems_libio_ioctl_args_t *ioarg = (rtems_libio_ioctl_args_t *) arg;
    deref_ptr: Directly dereferencing pointer ioarg.
    997 unsigned int *data = ioarg->buffer;
    998 struct bc_msg *cmd_list = (struct bc_msg *) ioarg->buffer;
    999 brm_priv *brm;
    1000 struct drvmgr_dev *dev;
    1001 rtems_device_driver ret;
    1002 int len, msglen;
    1003
    1004 FUNCDBG("brm_control[%d]: [%i,%i]\n", minor, major, minor);
    1005
    1006 if ( drvmgr_get_dev(&b1553brm_drv_info.general, minor, &dev) ) {
    1007 return RTEMS_UNSATISFIED;
    1008 }
    1009 brm = (brm_priv *)dev->priv;
    1010
    CID 1399829 (#1 of 1): Dereference before null check (REVERSE_INULL)check_after_deref: Null-checking ioarg suggests that it may be null, but it has already been dereferenced on all paths leading to the check.
    1011 if (!ioarg) {
    Comment 1
    1. Ryan Long, Fri, 19 Feb 2021 20:06:12 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In eff3d7c/rtems:

    b1553brm.c: Fix Dereference before null check (CID #1399829) CID 1399829: Dereference before null check in brm_control(). Closes #4250

    4251 - b1553rt.c: Dereference before null check error spotted by Coverity

    Link https://devel.rtems.org/ticket/4251
    Id 4251
    Reporter Ryan Long
    Created 16 February 2021 20:46:40
    Modified 19 February 2021 20:06:16
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1399830: Dereference before null check in rt_control().

    621    rtems_libio_ioctl_args_t *ioarg = (rtems_libio_ioctl_args_t *) arg;
    deref_ptr: Directly dereferencing pointer ioarg.
    622 unsigned int *data = ioarg->buffer;
    623
    624 rt_priv *rt;
    625 struct drvmgr_dev *dev;
    626
    627 FUNCDBG("rt_control[%d]: [%i,%i]\n", minor, major, minor);
    628
    629 if ( drvmgr_get_dev(&b1553rt_drv_info.general, minor, &dev) ) {
    630 return RTEMS_UNSATISFIED;
    631 }
    632 rt = (rt_priv *)dev->priv;
    633
    CID 1399830 (#1 of 1): Dereference before null check (REVERSE_INULL)check_after_deref: Null-checking ioarg suggests that it may be null, but it has already been dereferenced on all paths leading to the check.
    634 if (!ioarg) {
    Comment 1
    1. Ryan Long, Fri, 19 Feb 2021 20:06:16 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 4edcdf43/rtems:

    b1553rt.c: Fix Deference before null check (CID #1399830) CID 1399830: Dereference before null check in rt_control(). Closes #4251

    4252 - grtc.c: Dereference before null check error spotted by Coverity

    Link https://devel.rtems.org/ticket/4252
    Id 4252
    Reporter Ryan Long
    Created 16 February 2021 20:50:40
    Modified 19 February 2021 20:06:20
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1399840: Dereference before null check in grtc_ioctl().

    1534        rtems_libio_ioctl_args_t *ioarg = (rtems_libio_ioctl_args_t *)arg;
    deref_ptr: Directly dereferencing pointer ioarg.
    1535 unsigned int *data = ioarg->buffer;
    1536 int status,frm_len,i,ret;
    1537 struct grtc_ioc_buf_params *buf_arg;
    1538 struct grtc_ioc_config *cfg;
    1539 struct grtc_ioc_hw_status *hwregs;
    1540 struct grtc_ioc_pools_setup *pocfg;
    1541 struct grtc_ioc_assign_frm_pool *poassign;
    1542 struct grtc_frame *frm, *frms;
    1543 struct grtc_frame_pool *pool;
    1544 struct grtc_list *frmlist;
    1545 struct grtc_ioc_stats *stats;
    1546 unsigned int mem;
    1547 IRQ_LOCAL_DECLARE(oldLevel);
    1548
    1549 FUNCDBG();
    1550
    1551 if ( drvmgr_get_dev(&grtc_drv_info.general, minor, &dev) ) {
    1552 return RTEMS_INVALID_NUMBER;
    1553 }
    1554 pDev = (struct grtc_priv *)dev->priv;
    1555
    CID 1399840 (#1 of 1): Dereference before null check (REVERSE_INULL)check_after_deref: Null-checking ioarg suggests that it may be null, but it has already been dereferenced on all paths leading to the check.
    1556 if (!ioarg)
    Comment 1
    1. Ryan Long, Fri, 19 Feb 2021 20:06:20 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 1fd56a96/rtems:

    grtc.c: Fix Dereference before null check (CID #1399840) CID 1399840: Dereference before null check in grtc_ioctl(). Closes #4252

    4253 - grspw_pkt.c: Dereference before null check error spotted by Coverity

    Link https://devel.rtems.org/ticket/4253
    Id 4253
    Reporter Ryan Long
    Created 16 February 2021 20:54:52
    Modified 19 February 2021 20:06:24
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1399846: Dereference before null check in grspw_addr_ctrl().

    657        struct grspw_priv *priv = d;
    deref_ptr: Directly dereferencing pointer priv.
    658 struct grspw_regs *regs = priv->regs;
    659 unsigned int ctrl, nodeaddr;
    660 SPIN_IRQFLAGS(irqflags);
    661 int i;
    662
    CID 1399846 (#1 of 1): Dereference before null check (REVERSE_INULL)check_after_deref: Null-checking priv suggests that it may be null, but it has already been dereferenced on all paths leading to the check.
    663 if (!priv || !cfg)
    Comment 1
    1. Ryan Long, Fri, 19 Feb 2021 20:06:24 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In fac1ff1/rtems:

    grspw_pkt.c: Fix Dereference before null check (CID #1399846) CID 1399846: Dereference before null check in grspw_addr_ctrl(). Closes #4253

    4254 - shell.c: Dereference before null check error spotted by Coverity

    Link https://devel.rtems.org/ticket/4254
    Id 4254
    Reporter Ryan Long
    Created 16 February 2021 21:00:54
    Modified 18 February 2021 19:39:33
    Owner Ryan Long <thisisryanlong@…>
    Type defect
    Component lib
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1467420: Dereference before null check in rtems_shell_line_editor().

    322  int          in_fileno = fileno(in);
    deref_ptr_in_call: Dereferencing pointer out.
    323 int out_fileno = fileno(out);
    324
    325 /*
    326 * Only this task can use this file descriptor because calling
    327 * fileno will block if another thread call made a call on this
    328 * descriptor.
    329 */
    CID 1467420 (#1 of 1): Dereference before null check (REVERSE_INULL)check_after_deref: Null-checking out suggests that it may be null, but it has already been dereferenced on all paths leading to the check.
    330 output = (out && isatty(in_fileno));
    Comment 1
    1. Ryan Long, Thu, 18 Feb 2021 19:39:33 GMT
    2. owner: set to Ryan Long <thisisryanlong@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In fa25b73/rtems:

    shell.c: Fix Dereference before null check (CID #1467420) CID 1467420: Dereference before null check in rtems_shell_line_editor(). Closes #4254

    4258 - printertask.c: Unchecked return value errors spotted by Coverity

    Link https://devel.rtems.org/ticket/4258
    Id 4258
    Reporter Ryan Long
    Created 19 February 2021 20:55:06
    Modified 26 February 2021 22:56:18
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component lib
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1399710: Unchecked return value in printer_task().

    138      switch ( buffer->action_kind ) {
    139 case ACTION_WRITE:
    140 write( fd, &buffer->data[ 0 ], buffer->action_data.size );
    141 printer_task_append_buffer( ctx, &ctx->free_buffers, buffer );
    4. Breaking from switch.
    8. Breaking from switch.
    15. Breaking from switch.
    142 break;
    143 case ACTION_DRAIN:
    CID 1399710 (#1 of 1): Unchecked return value (CHECKED_RETURN)19. check_return: Calling fsync without checking return value (as is done elsewhere 4 out of 5 times).
    144 fsync(fd);
    Comment 1
    1. Ryan Long, Fri, 19 Feb 2021 21:47:12 GMT
    2. summary: changed from printertask.c: Unchecked return value spotted by Coverity to printertask.c: Unchecked return value errors spotted by Coverity

    CID 1472764: Unchecked return value in rtems_print_printer_task().

    183  ctx->buffer_size -= sizeof( printer_task_buffer );
    184
    185  printer->context = ctx;
    186  printer->printer = printer_task_printer;
    187
       CID 1472764 (#1 of 1): Unchecked return value (CHECKED_RETURN)3. check_return: Calling rtems_task_start without checking return value (as is done elsewhere 22 out of 25 times).
    188  rtems_task_start( ctx->task, printer_task, (rtems_task_argument) ctx ); 
    Comment 2
    1. Ryan Long, Fri, 26 Feb 2021 22:56:18 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 1b322a6/rtems:

    printertask.c: Fix Unchecked return value (CID #1399710) CID 1399710: Unchecked return value in printer_task(). CID 1472764: Unchecked return value in rtems_print_printer_task(). Closes #4258

    4259 - grspw.c: Unchecked return value error spotted by Coverity

    Link https://devel.rtems.org/ticket/4259
    Id 4259
    Reporter Ryan Long
    Created 19 February 2021 21:06:23
    Modified 5 March 2021 20:19:43
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1399781: Unchecked return value in grspw_device_init().

    551        if ( value )
    552 pDev->bd_dma_area = value->i;
    553
    13. Condition grspw_buffer_alloc(pDev), taking false branch.
    554 if (grspw_buffer_alloc(pDev))
    555 return RTEMS_NO_MEMORY;
    556
    557 /* Create semaphores */
    CID 1399781 (#2 of 2): Unchecked return value (CHECKED_RETURN)14. check_return: Calling rtems_semaphore_create without checking return value (as is done elsewhere 15 out of 17 times).
    558 rtems_semaphore_create(
    Comment 1
    1. Ryan Long, Fri, 05 Mar 2021 20:19:43 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 1eaf4e46/rtems:

    grspw.c: Fix Unchecked return value (CID #1399781) CID 1399781: Unchecked return value in grspw_device_init(). Closes #4259

    4260 - record-client.c: Unchecked return value error spotted by Coverity

    Link https://devel.rtems.org/ticket/4260
    Id 4260
    Reporter Ryan Long
    Created 19 February 2021 21:16:24
    Modified 26 February 2021 22:56:22
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component lib
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1456677: Unchecked return value in resolve_hold_back().

    191    for ( index = begin_index; index < per_cpu->item_index; ++index ) {
    192 const rtems_record_item_64 *item;
    193
    194 item = &per_cpu->items[ index ];
    CID 1456677 (#1 of 1): Unchecked return value (CHECKED_RETURN)12. check_return: Calling visit without checking return value (as is done elsewhere 4 out of 5 times).
    195 visit( ctx, item->event, item->data );
    Comment 1
    1. Ryan Long, Fri, 26 Feb 2021 22:56:22 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In be3b87d/rtems:

    record-client.c: Fix Unchecked return value (CID #1456677) CID 1456677: Unchecked return value in resolve_hold_back(). Closes #4260

    4261 - getgrent.c: Unchecked return value error spotted by Coverity

    Link https://devel.rtems.org/ticket/4261
    Id 4261
    Reporter Ryan Long
    Created 19 February 2021 21:24:15
    Modified 26 February 2021 22:56:25
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component lib
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1459004: Unchecked return value in endgrent().

    102  if (ctx->fp != NULL) {
    103 fclose(ctx->fp);
    104 }
    105
    106 free(ctx);
    CID 1459004 (#1 of 1): Unchecked return value (CHECKED_RETURN)3. check_return: Calling pthread_setspecific without checking return value (as is done elsewhere 5 out of 6 times).
    107 pthread_setspecific(grp_key, NULL);
    Comment 1
    1. Ryan Long, Fri, 26 Feb 2021 22:56:25 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In e5e58da/rtems:

    getgrent.c: Fix Unchecked return value error (CID #1459004) CID 1459004: Unchecked return value in endgrent(). Closes #4261

    4262 - rtems-debugger-threads.c: Unchecked return value error spotted by Coverity

    Link https://devel.rtems.org/ticket/4262
    Id 4262
    Reporter Ryan Long
    Created 19 February 2021 21:36:14
    Modified 26 February 2021 22:56:29
    Owner Chris Johns
    Type defect
    Component lib/debugger
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1468688: Unchecked return value in snapshot_thread().

    262    else {
    263 rtems_status_code sc;
    264 sc = rtems_task_suspend(id);
    265 if (sc != RTEMS_SUCCESSFUL && sc != RTEMS_ALREADY_SUSPENDED) {
    266 rtems_debugger_printf("error: rtems-db: thread: suspend: %08" PRIx32 ": %s\n",
    267 id, rtems_status_text(sc));
    268 r = -1;
    269 }
    270 }
    271
    272 /*
    273 * Read the target registers into the thread register array.
    274 */
    CID 1468688 (#1 of 1): Unchecked return value (CHECKED_RETURN)17. check_return: Calling rtems_debugger_target_read_regs without checking return value (as is done elsewhere 4 out of 5 times).
    275 rtems_debugger_target_read_regs(thread);
    Comment 1
    1. Ryan Long, Fri, 26 Feb 2021 22:56:29 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed

    In e2002659/rtems:

    rtems-debugger-threads.c: Fix Unchecked return value error (CID #1468688) CID 1468688: Unchecked return value in snapshot_thread(). Closes #4262

    4264 - Activate ehci_pci in rtems-libbsd (cloned)

    Link https://devel.rtems.org/ticket/4264
    Id 4264
    Reporter GabrielMoyano
    Created 22 February 2021 11:46:03
    Modified 9 March 2021 10:36:41
    Owner Jan Sommer
    Type enhancement
    Component network/libbsd
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Cloned from #4263:

    Import ehci_pci from freebsd-org using freebsd-to-rtems.py

    Comment 1
    1. Jan Sommer, Mon, 08 Mar 2021 17:17:56 GMT
    2. component: changed from admin to network/libbsd
    Comment 2
    1. Jan Sommer, Tue, 09 Mar 2021 10:35:11 GMT
    2. owner: set to Jan Sommer
    3. status: changed from new to accepted
    Comment 3
    1. Jan Sommer, Tue, 09 Mar 2021 10:36:22 GMT

    Fixed with ​https://git.rtems.org/rtems-libbsd/commit/?id=aee7b9291ca7f8cb2748dad94a89200326bbb17b and ​https://git.rtems.org/rtems-libbsd/commit/?h=6-freebsd-12&id=5b50a5181a6327db2613b010b0117a6286ff54a6

    Comment 4
    1. Jan Sommer, Tue, 09 Mar 2021 10:36:41 GMT
    2. status: changed from accepted to closed
    3. resolution: set to fixed

    4265 - Add rtems_get_build_hash()

    Link https://devel.rtems.org/ticket/4265
    Id 4265
    Reporter Sebastian Huber
    Created 23 February 2021 09:38:48
    Modified 23 November 2021 13:52:54
    Owner Sebastian Huber
    Type enhancement
    Component rtems
    Status closed
    Resolution wontfix
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    Add a function to report a hash value of the build environment in the test suite results.

    /* Generated from spec:/rtems/config/if/get-build-hash */
    /**
    * @ingroup RTEMSAPIConfig
    *
    * @brief Gets the RTEMS build hash.
    *
    * The build hash is calculated from all key-value pairs of the build
    * environment. Local file system paths in the values do not contribute to the
    * hash value.
    *
    * @return Returns the pointer to the RTEMS build hash.
    *
    * @par Notes
    * The build hash can be used to distinguish test suite results obtained from
    * different build environments.
    *
    * @par Constraints
    * @parblock
    * The following constraints apply to this directive:
    *
    * * The directive may be called from within any runtime context.
    *
    * * The directive will not cause the calling task to be preempted.
    * @endparblock
    */
    const char *rtems_get_build_hash( void );
    Comment 1
    1. Chris Johns, Wed, 24 Feb 2021 04:01:12 GMT

    Is there a list that defines all key-value pairs in the build environment?

    Comment 2
    1. Sebastian Huber, Wed, 24 Feb 2021 07:04:45 GMT

    Yes, you can iterate over conf.env:

    wscript
    diff --git a/wscript b/wscript
    index 6626fafb74..84b845dce4 100755
    a b __ def get_compiler(conf, cp, variant):__ 13591359 return value 13601360 13611361 1362def _generate_build_hash(conf): 1363 import hashlib 1364 import base64 1365 1366 build_hash = "" 1367 for key in sorted(conf.env): 1368 build_hash = build_hash + key + str(conf.env[key]) 1369 for discard in [ 1370 conf.env.PREFIX, 1371 conf.bldnode.make_node(conf.env.VARIANT).abspath(), 1372 conf.path.abspath(), 1373 ]: 1374 build_hash = build_hash.replace(discard, "") 1375 state = hashlib.sha256() 1376 state.update(build_hash.encode("utf-8")) 1377 conf.define("RTEMS_BUILD_HASH", base64.urlsafe_b64encode(state.digest())) 1378 conf.write_config_header( 1379 conf.env.VARIANT + "/cpukit/include/rtems/build-hash.h" 1380 ) 1381 1382 13621383def configure_variant(conf, cp, bsp_map, path_list, top_group, variant): 13631384 conf.msg("Configure board support package (BSP)", variant, color="YELLOW") 13641385 … … __ def configure_variant(conf, cp, bsp_map, path_list, top_group, variant):__ 13911412 conf.fatal("No such base BSP: '{}'".format(variant)) 13921413 bsp_item.configure(conf, cic) 13931414 1394 options = set([o[0].upper() for o in cp.items(variant)]) 1415 options = set(o[0].upper() for o in cp.items(variant)) 13951416 for o in options.difference(cic.options): 13961417 conf.msg("Unknown configuration option", o.upper(), color="RED") 1418 _generate_build_hash(conf) 13971419 13981420 13991421def check_forbidden_options(ctx, opts):

    An alternative would be to explicitly add (or remove) build options.

    Comment 3
    1. Chris Johns, Thu, 25 Feb 2021 00:32:31 GMT

    This captures a user's environment variables?

    Comment 4
    1. Sebastian Huber, Thu, 25 Feb 2021 07:22:20 GMT

    There are always means to sabotage something. We don't recommend the use of environment variables and a waf configure warns about them. I will add a note that environment variables are not recommended and not used for the build hash.

    Comment 5
    1. Sebastian Huber, Thu, 25 Feb 2021 15:13:58 GMT

    As discussed on the mailing list I tried the following approach. Iterate over all start files and libraries generated by the build and then create a hash of all executable sections. Then we recompile one object with a command line define with the build hash and replace this object in librtemscpu.a. Unfortunately, this exceeds my waf skills at the moment. I think it is feasible, but you really have to know how to adjust the waf tasks through meta programming.

    Comment 6
    1. Sebastian Huber, Fri, 18 Jun 2021 09:24:45 GMT
    2. keywords: qualification added
    Comment 7
    1. Sebastian Huber, Tue, 23 Nov 2021 13:52:54 GMT
    2. status: changed from assigned to closed
    3. resolution: set to wontfix

    The rtems_get_build_hash() was dropped in favour of #4269.


    4267 - Add rtems_get_target_hash()

    Link https://devel.rtems.org/ticket/4267
    Id 4267
    Reporter Sebastian Huber
    Created 24 February 2021 07:20:40
    Modified 4 October 2022 08:19:19
    Owner Sebastian Huber
    Type enhancement
    Component rtems
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    Add a function to report a hash value characterizing the target system in the test suite results.

    /* Generated from spec:/rtems/config/if/get-target-hash */
    /**
    * @ingroup RTEMSAPIConfig
    *
    * @brief Gets the RTEMS target hash.
    *
    * The target hash is calculated from BSP-specific values which characterize a
    * target system.
    *
    * @return Returns the pointer to the RTEMS target hash.
    *
    * @par Notes
    * @parblock
    * For example, the device tree, settings of the memory controller, a serial
    * number of a chip may be used to calculate the target hash.
    *
    * The target hash can be used to distinguish test suite results obtained from
    * different target systems.
    * @endparblock
    *
    * @par Constraints
    * @parblock
    * The following constraints apply to this directive:
    *
    * * The directive may be called from within any runtime context.
    *
    * * The directive will not cause the calling task to be preempted.
    * @endparblock
    */
    const char *rtems_get_target_hash( void );
    Comment 1
    1. Sebastian Huber, Fri, 26 Feb 2021 08:26:06 GMT

    In 5f8bc83/rtems:

    score: Add _IO_Base64url() Update #4267.
    Comment 2
    1. Sebastian Huber, Fri, 26 Feb 2021 08:26:09 GMT

    In dea125d0/rtems:

    score: Add Hash Handler Update #4267.
    Comment 3
    1. Sebastian Huber, Fri, 26 Feb 2021 08:26:13 GMT

    In fb17af2/rtems:

    rtems: Add rtems_get_target_hash() Update #4267.
    Comment 4
    1. Sebastian Huber, Fri, 26 Feb 2021 08:26:16 GMT

    In bc6ffc3/rtems:

    Add system initialization step for target hash Update #4267.
    Comment 5
    1. Sebastian Huber, Fri, 26 Feb 2021 08:26:20 GMT

    In 7480c34/rtems:

    bsps: Add default rtems_get_target_hash() Update #4267.
    Comment 6
    1. Sebastian Huber, Fri, 26 Feb 2021 08:26:24 GMT

    In 74eff26c/rtems:

    libtest: Report target hash Update #4267.
    Comment 7
    1. Sebastian Huber, Fri, 26 Feb 2021 08:57:31 GMT

    In 2428a8ca/rtems:

    build: Install Update #4267.
    Comment 8
    1. Sebastian Huber, Thu, 22 Apr 2021 05:46:34 GMT

    In 29ce290/rtems-docs:

    bsp-howto: Add target hash chapter Update #4267.
    Comment 9
    1. Sebastian Huber, Fri, 18 Jun 2021 09:24:45 GMT
    2. keywords: qualification added
    Comment 10
    1. Sebastian Huber, Tue, 04 Oct 2022 08:19:19 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 0fc5c03/rtems-docs:

    c-user: Add application config info directives Close #4267. Close #4269.

    4269 - Add rtems_get_build_label()

    Link https://devel.rtems.org/ticket/4269
    Id 4269
    Reporter Sebastian Huber
    Created 25 February 2021 15:16:01
    Modified 4 October 2022 08:19:19
    Owner Sebastian Huber
    Type enhancement
    Component rtems
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    Add the following directive:

    /* Generated from spec:/rtems/config/if/get-build-label */
    /**
    * @ingroup RTEMSAPIConfig
    *
    * @brief Gets the RTEMS build label.
    *
    * The build label is a user-provided string defined by the build
    * configuration.
    *
    * @return Returns the pointer to the RTEMS build label.
    *
    * @par Notes
    * The build label can be used to distinguish test suite results obtained from
    * different build configurations. A use case is to record test results with
    * performance data to track performance regressions. For this a database of
    * performance limits is required. The build label and the target hash
    * obtained from rtems_get_target_hash() can be used as a key to obtain
    * performance limits.
    *
    * @par Constraints
    * @parblock
    * The following constraints apply to this directive:
    *
    * * The directive may be called from within any runtime context.
    *
    * * The directive will not cause the calling task to be preempted.
    * @endparblock
    */
    const char *rtems_get_build_label( void );
    Comment 1
    1. Sebastian Huber, Fri, 26 Feb 2021 08:25:58 GMT

    In d8bfa5a/rtems:

    rtems: Add rtems_get_build_label() Update #4269.
    Comment 2
    1. Sebastian Huber, Fri, 26 Feb 2021 08:26:02 GMT

    In da8ad67e/rtems:

    libtest: Report build label Update #4269.
    Comment 3
    1. Sebastian Huber, Fri, 18 Jun 2021 09:24:45 GMT
    2. keywords: qualification added
    Comment 4
    1. Sebastian Huber, Tue, 04 Oct 2022 08:19:19 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 0fc5c03/rtems-docs:

    c-user: Add application config info directives Close #4267. Close #4269.

    4270 - A failing task extension produces zombi objects and resource leaks

    Link https://devel.rtems.org/ticket/4270
    Id 4270
    Reporter Sebastian Huber
    Created 25 February 2021 17:40:21
    Modified 23 June 2021 07:07:55
    Owner Sebastian Huber
    Type defect
    Component score
    Status closed
    Resolution fixed
    Version  
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    In _Thread_Initialize() we have this code:

     _Objects_Open_u32( &information->Objects, &the_thread->Object, config->name );
    /*
    * We assume the Allocator Mutex is locked and dispatching is
    * enabled when we get here. We want to be able to run the
    * user extensions with dispatching enabled. The Allocator
    * Mutex provides sufficient protection to let the user extensions
    * run safely.
    */
    extension_status = _User_extensions_Thread_create( the_thread );
    if ( extension_status )
    return true;

    If an extension fails, then the thread object is not closed. Also the delete extensions are not called. If a later create extension fails, the earlier create extensions may have allocated resources which could be freed by a corresponding delete extension.

    Comment 1
    1. Sebastian Huber, Fri, 26 Feb 2021 07:51:50 GMT
    2. description: modified (diff)
    Comment 2
    1. Sebastian Huber, Fri, 26 Feb 2021 08:26:30 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 1ac4a85/rtems:

    score: Fix thread initialization Close the thread object if a thread create extension fails. Also call the delete extension to avoid resource leaks in early extensions if a late extension fails. Close #4270.
    Comment 3
    1. Sebastian Huber, Wed, 23 Jun 2021 07:07:55 GMT
    2. keywords: qualification added

    4277 - grtc.c: Missing break in switch errors spotted by Coverity

    Link https://devel.rtems.org/ticket/4277
    Id 4277
    Reporter Ryan Long
    Created 1 March 2021 20:22:13
    Modified 5 March 2021 20:19:46
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1399761: Missing break in switch in process_dma().
    CID 1399765: Missing break in switch in process_dma().
    CID 1399766: Missing break in switch in process_dma().
    CID 1399777: Missing break in switch in process_dma().

    CID 1399761

    1366                pDev->frm = NULL;
    1367 pDev->frame_state = FRM_STATE_HDR;
    1368
    CID 1399761: Missing break in switch (MISSING_BREAK) [select issue]
    fallthrough: The above case falls through to this one.
    1369 case FRM_STATE_HDR:
    1370 DBG2("FRAME_STATE_HDR\n");

    CID 1399765

    1450                pDev->frame_state = FRM_STATE_PAYLOAD;
    1451 pDev->frm = frm;
    1452
    1453 case FRM_STATE_PAYLOAD:
    1454 DBG2("FRAME_STATE_PAYLOAD\n");

    CID 1399766

    1450                pDev->frame_state = FRM_STATE_PAYLOAD;
    1451 pDev->frm = frm;
    1452
    CID 1399766 (#1 of 1): Missing break in switch (MISSING_BREAK)unterminated_case: The case for value FRM_STATE_PAYLOAD is not terminated by a break statement.
    1453 case FRM_STATE_PAYLOAD:
    1454 DBG2("FRAME_STATE_PAYLOAD\n");

    CID 1399767

    1354        switch( pDev->frame_state ) {
    CID 1399777 (#1 of 1): Missing break in switch (MISSING_BREAK)unterminated_case: The case for value FRM_STATE_NONE is not terminated by a break statement.
    1355 case FRM_STATE_NONE:
    1356 DBG2("FRAME_STATE_NONE\n");
    1357
    1358 /* Find Start of next frame by searching for 0x01 */
    1359 ret = grtc_hw_find_frm(pDev);
    1360 if ( ret != 0 ) {
    1361 /* Frame start not found */
    1362 return 0;
    1363 }
    1364
    1365 /* Start of frame found, Try to copy header */
    1366 pDev->frm = NULL;
    1367 pDev->frame_state = FRM_STATE_HDR;
    Comment 1
    1. Ryan Long, Mon, 01 Mar 2021 20:48:04 GMT
    2. summary: changed from grtc.c: Missing break in switch error spotted by Coverity to grtc.c: Missing break in switch errors spotted by Coverity
    Comment 2
    1. Ryan Long, Fri, 05 Mar 2021 20:19:46 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 13d6fae/rtems:

    grtc.c: Fix four Missing break in switch Coverity errors CID 1399761: Missing break in switch in process_dma(). CID 1399765: Missing break in switch in process_dma(). CID 1399766: Missing break in switch in process_dma(). CID 1399777: Missing break in switch in process_dma(). Closes #4277

    4278 - cpuusagetop.c: Missing break in switch errors spotted by Coverity

    Link https://devel.rtems.org/ticket/4278
    Id 4278
    Reporter Ryan Long
    Created 1 March 2021 21:01:48
    Modified 5 March 2021 20:19:50
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component lib
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1399726: Missing break in switch in task_usage().
    CID 1399728: Missing break in switch in task_usage().
    CID 1399742: Missing break in switch in task_usage().

    CID 1399726

    233            continue;
    CID 1399726 (#1 of 1): Missing break in switch (MISSING_BREAK)unterminated_case: The case for value 2U is not terminated by a break statement.
    234 case RTEMS_TOP_SORT_CURRENT_PRI:
    235 if (
    236 _Thread_Get_priority( thread )
    237 > _Thread_Get_priority( data->tasks[j] )
    238 ) {
    239 continue;
    240 }
    fallthrough: The above case falls through to this one.

    CID 1399728

    230            continue;
    CID 1399728 (#1 of 1): Missing break in switch (MISSING_BREAK)unterminated_case: The case for value 1U is not terminated by a break statement.
    231 case RTEMS_TOP_SORT_REAL_PRI:
    232 if (thread->Real_priority.priority > data->tasks[j]->Real_priority.priority)
    233 continue;
    fallthrough: The above case falls through to this one.
    234 case RTEMS_TOP_SORT_CURRENT_PRI:

    CID 1399742

    226            continue;
    CID 1399742 (#1 of 1): Missing break in switch (MISSING_BREAK)unterminated_case: The case for value 3U is not terminated by a break statement.
    227 case RTEMS_TOP_SORT_TOTAL:
    228 if (CPU_usage_Equal_to(&usage, &data->zero) ||
    229 CPU_usage_Less_than(&usage, &data->usage[j]))
    230 continue;
    fallthrough: The above case falls through to this one.
    231 case RTEMS_TOP_SORT_REAL_PRI:
    Comment 1
    1. Ryan Long, Mon, 01 Mar 2021 21:19:34 GMT
    2. summary: changed from cpuusagetop.c to cpuusagetop.c: Missing break in switch errors spotted by Coverity
    Comment 2
    1. Ryan Long, Fri, 05 Mar 2021 20:19:50 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In c7eb89f8/rtems:

    cpuusagetop.c: Fix three Missing break in switch Coverity errors CID 1399726: Missing break in switch in task_usage(). CID 1399728: Missing break in switch in task_usage(). CID 1399742: Missing break in switch in task_usage(). Closes #4278

    4279 - pci_cfg_read.c: Missing break in switch error spotted by Coverity

    Link https://devel.rtems.org/ticket/4279
    Id 4279
    Reporter Ryan Long
    Created 1 March 2021 21:25:50
    Modified 5 March 2021 20:20:00
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component lib
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1399723: Missing break in switch in pci_read_addressable().

     70        switch (type) {
    71 case PCI_RES_IO:
    72 range0 = &bus->dev.resources[BRIDGE_RES_IO];
    73 break;
    CID 1399723 (#1 of 1): Missing break in switch (MISSING_BREAK)unterminated_case: The case for value 3 is not terminated by a break statement.
    74 case PCI_RES_MEM:
    75 range1 = &bus->dev.resources[BRIDGE_RES_MEM];
    fallthrough: The above case falls through to this one.
    76 default:
    77 case PCI_RES_MEMIO:
    Comment 1
    1. Ryan Long, Fri, 05 Mar 2021 20:20:00 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 0d33d10/rtems:

    pci_cfg_read.c: Fix Missing break in switch (CID #1399723) CID 1399723: Missing break in switch in pci_read_addressable(). Closes #4279

    4280 - gen_uuid.c: Unchecked return value from library errors spotted by Coverity

    Link https://devel.rtems.org/ticket/4280
    Id 4280
    Reporter Ryan Long
    Created 2 March 2021 14:26:44
    Modified 28 May 2021 17:29:41
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component lib
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1049146: Unchecked return value from library in get_clock().
    CID 1049147: Unchecked return value from library in get_random_fd().

    CID 1049146

    427                rewind(state_f);
    428 fl.l_type = F_UNLCK;
    CID 1049146 (#1 of 1): Unchecked return value from library (CHECKED_RETURN)18. check_return: Calling fcntl(state_fd, 8, &fl) without checking return value. This library function may fail and return an error code. [Note: The source code implementation of the function has been overridden by a builtin model.]
    429 fcntl(state_fd, F_SETLK, &fl);
    430 }
    431
    432 *clock_high = clock_reg >> 32;

    CID 1049147

    167                        if (i >= 0)
    CID 1049147 (#1 of 1): Unchecked return value from library (CHECKED_RETURN)5. check_return: Calling fcntl(fd, 2, i | 1) without checking return value. This library function may fail and return an error code. [Note: The source code implementation of the function has been overridden by a builtin model.]
    168 fcntl(fd, F_SETFD, i | FD_CLOEXEC);
    169 }
    Comment 1
    1. Ryan Long, Mon, 08 Mar 2021 20:56:17 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 597e4f4/rtems:

    gen_uuid.c: Fix two Unchecked return value from library errors CID 1049146: Unchecked return value from library in get_clock(). CID 1049147: Unchecked return value from library in get_random_fd(). Closes #4280
    Comment 2
    1. Joel Sherrill, Wed, 24 Mar 2021 13:03:24 GMT

    In 62bbb0c/rtems:

    gen_uuid.c: Revert previous patch (597e4f476568a225d14dfaff02074cf269ad62ac) The patch was:
    gen_uuid.c: Fix two Unchecked return value from library errors
    CID 1049146: Unchecked return value from library in get_clock(). CID 1049147: Unchecked return value from library in get_random_fd().
    Reopen #4280
    Comment 3
    1. Joel Sherrill, Wed, 24 Mar 2021 13:06:13 GMT
    2. status: changed from closed to reopened
    3. resolution: fixed deleted

    The fix was incorrect. It did not include the rtems assert.h header. Assuming the paths were testable, it would be checking return values on fcntl() commands that RTEMS does not support.

    A more likely approach is to ifndef rtems the unsupported fcntl's and see how that goes.

    It is unclear if there was communication with the upstream project which would have been needed.

    Comment 4
    1. Ryan Long, Fri, 28 May 2021 17:29:41 GMT
    2. status: changed from reopened to closed
    3. resolution: set to fixed

    In a187b09/rtems:

    gen_uuid.c: Ignore return values from fcntl() CID 1049146: Unchecked return value from library in get_clock(). CID 1049147: Unchecked return value from library in get_random_fd(). Closes #4280

    4281 - main_chmod.c: Unchecked return value from library error spotted by Coverity

    Link https://devel.rtems.org/ticket/4281
    Id 4281
    Reporter Ryan Long
    Created 2 March 2021 14:30:30
    Modified 8 March 2021 20:56:21
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component lib
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1063856: Unchecked return value from library in rtems_shell_main_chmod().

    55  for (n=2 ; n < argc ; n++)
    CID 1063856 (#1 of 1): Unchecked return value from library (CHECKED_RETURN)4. check_return: Calling chmod(argv[n++], mode) without checking return value. This library function may fail and return an error code. [Note: The source code implementation of the function has been overridden by a builtin model.]
    56 chmod(argv[n++], mode);
    57
    58 return 0;
    59}
    Comment 1
    1. Ryan Long, Mon, 08 Mar 2021 20:56:21 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 8e34aa3/rtems:

    main_chmod.c: Fix Unchecked return value from library (CID #1063856) CID 1063856: Unchecked return value from library in rtems_shell_main_chmod(). Closes #4281

    4282 - pwdgrp.c: Unchecked return value from library error spotted by Coverity

    Link https://devel.rtems.org/ticket/4282
    Id 4282
    Reporter Ryan Long
    Created 2 March 2021 15:01:37
    Modified 23 March 2021 17:02:15
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component lib
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1255518: Unchecked return value from library in pwdgrp_init().

     65  /*
    66 * Do the best to create this directory.
    67 */
    CID 1255518 (#1 of 1): Unchecked return value from library (CHECKED_RETURN)1. check_return: Calling mkdir("/etc", 493U) without checking return value. This library function may fail and return an error code. [Note: The source code implementation of the function has been overridden by a builtin model.]
    68 mkdir("/etc", S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH);
    Comment 1
    1. Ryan Long, Mon, 08 Mar 2021 20:56:24 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 55ba229/rtems:

    pwdgrp.c: Fix Unchecked return value from library (CID #1255518) CID 1255518: Unchecked return value from library in pwdgrp_init(). Closes #4282
    Comment 2
    1. Joel Sherrill, Tue, 23 Mar 2021 13:45:55 GMT
    2. status: changed from closed to reopened
    3. resolution: fixed deleted

    It turns out that at least /etc can be created in multiple places depending on the RTEMS application structure. It was discussed that a standard mechanism is needed to address additional base file system directories. Ticket #4354 has been created for that which allows this issue to be strictly about the Coverity issue.

    Changing the _Assert which was used to (void) mkdir should be sufficient to close this ticket again. Improvements to the base file system directory create can occur under #4354

    Comment 3
    1. Ryan Long, Tue, 23 Mar 2021 17:02:15 GMT
    2. status: changed from reopened to closed
    3. resolution: set to fixed

    In 37fc651/rtems:

    pwdgrp.c: Remove _Assert. /etc may already exist Removed the _Assert_unused_variable_equals macro due to /etc having already been created by the network stack initialization or an initial filesystem image. Closes #4282

    4283 - gr_rasta_spw_router.c: Unchecked return value from library error spotted by Coverity

    Link https://devel.rtems.org/ticket/4283
    Id 4283
    Reporter Ryan Long
    Created 2 March 2021 15:06:11
    Modified 5 March 2021 20:19:53
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1399760: Unchecked return value from library in gr_rasta_spw_router_init1().

    412        priv->prefix[14] += dev->minor_drv;
    CID 1399760 (#1 of 1): Unchecked return value from library (CHECKED_RETURN)2. check_return: Calling mkdir(priv->prefix, 511U) without checking return value. This library function may fail and return an error code. [Note: The source code implementation of the function has been overridden by a builtin model.]
    413 mkdir(priv->prefix, S_IRWXU | S_IRWXG | S_IRWXO);
    414 priv->prefix[15] = '/';
    415 priv->prefix[16] = '\0';
    416
    Comment 1
    1. Ryan Long, Fri, 05 Mar 2021 20:19:53 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 04436013/rtems:

    gr_rasta_spw_router.c: Fix Unchecked return value from library (CID #1399760) CID 1399760: Unchecked return value from library in gr_rasta_spw_router_init1(). Closes #4283

    4284 - gr_rasta_io.c: Unchecked return value from library error spotted by Coverity

    Link https://devel.rtems.org/ticket/4284
    Id 4284
    Reporter Ryan Long
    Created 2 March 2021 15:09:01
    Modified 5 March 2021 20:19:56
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1399763: Unchecked return value from library in gr_rasta_io_init1().

    575        strcpy(priv->prefix, "/dev/rastaio0");
    576 priv->prefix[12] += dev->minor_drv;
    CID 1399763 (#1 of 1): Unchecked return value from library (CHECKED_RETURN)2. check_return: Calling mkdir(priv->prefix, 511U) without checking return value. This library function may fail and return an error code. [Note: The source code implementation of the function has been overridden by a builtin model.]
    577 mkdir(priv->prefix, S_IRWXU | S_IRWXG | S_IRWXO);
    578 priv->prefix[13] = '/';
    579 priv->prefix[14] = '\0';
    Comment 1
    1. Ryan Long, Fri, 05 Mar 2021 20:19:56 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In b84ce61/rtems:

    gr_rasta_io.c: Fix Unchecked return value from library (CID #1399763) CID 1399763: Unchecked return value from library in gr_rasta_io_init1(). Closes #4284

    4285 - gr_leon4_n2x.c: Unchecked return value error from library error spotted by Coverity

    Link https://devel.rtems.org/ticket/4285
    Id 4285
    Reporter Ryan Long
    Created 2 March 2021 15:16:14
    Modified 5 March 2021 20:20:03
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1399767: Unchecked return value error from library in gr_cpci_leon4_n2x_init1().

    495        strcpy(priv->prefix, "/dev/leon4n2x0");
    496 priv->prefix[13] += dev->minor_drv;
    CID 1399767 (#1 of 1): Unchecked return value from library (CHECKED_RETURN)2. check_return: Calling mkdir(priv->prefix, 511U) without checking return value. This library function may fail and return an error code. [Note: The source code implementation of the function has been overridden by a builtin model.]
    497 mkdir(priv->prefix, S_IRWXU | S_IRWXG | S_IRWXO);
    498 priv->prefix[14] = '/';
    499 priv->prefix[15] = '\0';
    Comment 1
    1. Ryan Long, Fri, 05 Mar 2021 20:20:03 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 570b558/rtems:

    gr_leon4_n2x.c: Fix Unchecked return value from library (CID #1399767) CID 1399767: Unchecked return value error from library in gr_cpci_leon4_n2x_init1(). Closes #4285

    4286 - gr_rasta_tmtc.c: Unchecked return value from library error spotted by Coverity

    Link https://devel.rtems.org/ticket/4286
    Id 4286
    Reporter Ryan Long
    Created 2 March 2021 15:23:14
    Modified 5 March 2021 20:20:06
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1399771: Unchecked return value from library in gr_rasta_tmtc_init1().

    588        strcpy(priv->prefix, "/dev/rastatmtc0");
    589 priv->prefix[14] += dev->minor_drv;
    CID 1399771 (#1 of 1): Unchecked return value from library (CHECKED_RETURN)2. check_return: Calling mkdir(priv->prefix, 511U) without checking return value. This library function may fail and return an error code. [Note: The source code implementation of the function has been overridden by a builtin model.]
    590 mkdir(priv->prefix, S_IRWXU | S_IRWXG | S_IRWXO);
    591 priv->prefix[15] = '/';
    592 priv->prefix[16] = '\0';
    Comment 1
    1. Ryan Long, Fri, 05 Mar 2021 20:20:06 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 17d525b5/rtems:

    gr_rasta_tmtc.c: Fix Unchecked return value from library (CID #1399771) CID 1399771: Unchecked return value from library in gr_rasta_tmtc_init1(). Closes #4286

    4287 - gr_rasta_adcdac.c: Unchecked return value from library error spotted by Coverity

    Link https://devel.rtems.org/ticket/4287
    Id 4287
    Reporter Ryan Long
    Created 2 March 2021 15:29:21
    Modified 5 March 2021 20:20:10
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1399780: Unchecked return value from library in gr_rasta_adcdac_init1().

    396        strcpy(priv->prefix, "/dev/rastaadcdac0");
    397 priv->prefix[16] += dev->minor_drv;
    CID 1399780 (#1 of 1): Unchecked return value from library (CHECKED_RETURN)2. check_return: Calling mkdir(priv->prefix, 511U) without checking return value. This library function may fail and return an error code. [Note: The source code implementation of the function has been overridden by a builtin model.]
    398 mkdir(priv->prefix, S_IRWXU | S_IRWXG | S_IRWXO);
    399 priv->prefix[17] = '/';
    400 priv->prefix[18] = '\0';
    Comment 1
    1. Ryan Long, Fri, 05 Mar 2021 20:20:10 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 91e38f8/rtems:

    gr_rasta_adcdac.c: Fix Unchecked return value from library (CID #1399780) CID 1399780: Unchecked return value from library in gr_rasta_adcdac_init1(). Closes #4287

    4288 - gr_701.c: Unchecked return value from library error spotted by Coverity

    Link https://devel.rtems.org/ticket/4288
    Id 4288
    Reporter Ryan Long
    Created 2 March 2021 15:35:32
    Modified 5 March 2021 20:20:13
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1399783: Unchecked return value from library in gr701_init1().

    331        strcpy(priv->prefix, "/dev/gr701_0");
    332 priv->prefix[11] += dev->minor_drv;
    CID 1399783 (#1 of 1): Unchecked return value from library (CHECKED_RETURN)2. check_return: Calling mkdir(priv->prefix, 511U) without checking return value. This library function may fail and return an error code. [Note: The source code implementation of the function has been overridden by a builtin model.]
    333 mkdir(priv->prefix, S_IRWXU | S_IRWXG | S_IRWXO);
    334 priv->prefix[12] = '/';
    335 priv->prefix[13] = '\0';
    Comment 1
    1. Ryan Long, Fri, 05 Mar 2021 20:20:13 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 4c0d9c5a/rtems:

    gr_701.c: Unchecked return value from library (CID #1399783) CID 1399783: Unchecked return value from library in gr701_init1(). Closes #4288

    4289 - gr_tmtc_1553.c: Unchecked return value from library error spotted by Coverity

    Link https://devel.rtems.org/ticket/4289
    Id 4289
    Reporter Ryan Long
    Created 2 March 2021 15:38:33
    Modified 5 March 2021 20:20:16
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1399785: Unchecked return value from library in gr_tmtc_1553_init1().

    315        strcpy(priv->prefix, "/dev/tmtc1553_0");
    316 priv->prefix[14] += dev->minor_drv;
    CID 1399785 (#1 of 1): Unchecked return value from library (CHECKED_RETURN)2. check_return: Calling mkdir(priv->prefix, 511U) without checking return value. This library function may fail and return an error code. [Note: The source code implementation of the function has been overridden by a builtin model.]
    317 mkdir(priv->prefix, S_IRWXU | S_IRWXG | S_IRWXO);
    318 priv->prefix[15] = '/';
    319 priv->prefix[16] = '\0';
    Comment 1
    1. Ryan Long, Fri, 05 Mar 2021 20:20:16 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 5f0a7ceb/rtems:

    gr_tmtc_1553.c: Unchecked return value from library (CID #1399785) CID 1399785: Unchecked return value from library in gr_tmtc_1553_init1(). Closes #4289

    4290 - gr_cpci_gr740.c: Unchecked return value from library error spotted by Coverity

    Link https://devel.rtems.org/ticket/4290
    Id 4290
    Reporter Ryan Long
    Created 2 March 2021 15:41:07
    Modified 5 March 2021 20:20:19
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1437630: Unchecked return value from library in gr_cpci_gr740_inti1().

    472        strcpy(priv->prefix, "/dev/gr740_0");
    473 priv->prefix[11] += dev->minor_drv;
    CID 1437630 (#1 of 1): Unchecked return value from library (CHECKED_RETURN)2. check_return: Calling mkdir(priv->prefix, 511U) without checking return value. This library function may fail and return an error code. [Note: The source code implementation of the function has been overridden by a builtin model.]
    474 mkdir(priv->prefix, S_IRWXU | S_IRWXG | S_IRWXO);
    475 priv->prefix[12] = '/';
    476 priv->prefix[13] = '\0';
    Comment 1
    1. Ryan Long, Tue, 02 Mar 2021 18:22:21 GMT
    2. summary: changed from gr_cpi_gr740.c: Unchecked return value from library error spotted by Coverity to gr_cpci_gr740.c: Unchecked return value from library error spotted by Coverity
    Comment 2
    1. Ryan Long, Fri, 05 Mar 2021 20:20:19 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In f8047788/rtems:

    gr_cpci_gr740.c: Unchecked return value from library (CID #1437630) CID 1437630: Unchecked return value from library in gr_cpci_gr740_init1(). Closes #4290

    4291 - main_help.c: Unchecked return value from library error spotted by Coverity

    Link https://devel.rtems.org/ticket/4291
    Id 4291
    Reporter Ryan Long
    Created 2 March 2021 15:49:21
    Modified 28 May 2021 17:29:48
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component lib
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1437650: Unchecked return value from library in rtems_shell_help().

    472        strcpy(priv->prefix, "/dev/gr740_0");
    473 priv->prefix[11] += dev->minor_drv;
    CID 1437630 (#1 of 1): Unchecked return value from library (CHECKED_RETURN)2. check_return: Calling mkdir(priv->prefix, 511U) without checking return value. This library function may fail and return an error code. [Note: The source code implementation of the function has been overridden by a builtin model.]
    474 mkdir(priv->prefix, S_IRWXU | S_IRWXG | S_IRWXO);
    475 priv->prefix[12] = '/';
    476 priv->prefix[13] = '\0';
    Comment 1
    1. Ryan Long, Tue, 02 Mar 2021 18:31:51 GMT

    Accidentally put in the wrong reference to the error in the source.

    121    if (lines && (line > lines)) {
       CID 1437650 (#2 of 2): Unchecked return value from library (CHECKED_RETURN)7. check_return: Calling getchar() without checking return value. This library function may fail and return an error code.
    122      printf("Press any key to continue...");getchar();
    123      printf("\n"); 
    Comment 2
    1. Ryan Long, Mon, 08 Mar 2021 20:56:27 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In fbab832/rtems:

    main_help.c: Unchecked return value from library (CID #1437650) CID 1437650: Unchecked return value from library in rtems_shell_help(). Closes #4291
    Comment 3
    1. Ryan Long, Wed, 10 Mar 2021 17:49:17 GMT
    2. status: changed from closed to reopened
    3. resolution: fixed deleted
    Comment 4
    1. Ryan Long, Tue, 30 Mar 2021 15:11:17 GMT

    Another issue was found at line 150 after submitting the first patch

    150        printf("Press any key to continue...");
       CID 1437650 (#1 of 1): Unchecked return value from library (CHECKED_RETURN)29. check_return: Calling getchar() without checking return value. This library function may fail and return an error code.
    151        getchar(); 
    Comment 5
    1. Ryan Long, Fri, 28 May 2021 17:29:48 GMT
    2. status: changed from reopened to closed
    3. resolution: set to fixed

    In 2deba02/rtems:

    main_help.c: Do not care what char is returned by getchar() CID 1437650: Unchecked return value from library in rtems_shell_help(). Closes #4291

    4292 - rtems-rfs-bitmaps.c: Useless call (CID 1399749)

    Link https://devel.rtems.org/ticket/4292
    Id 4292
    Reporter Joel Sherrill
    Created 3 March 2021 21:04:09
    Modified 3 March 2021 21:04:21
    Owner Chris Johns
    Type defect
    Component fs/rfs
    Status assigned
    Resolution  
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Coverity Scan spotted this in rtems-rfs-bitmaps.c as CID 1399749). On the face of it, Scan appears to be correct but this issue should be reviewed by the original author of this code.

     }
    623 else
    624 {
    625 bits = *map;
    626 available = rtems_rfs_bitmap_element_bits ();
    627 }
    628
    629 if (rtems_rfs_bitmap_match (bits, RTEMS_RFS_BITMAP_ELEMENT_SET))
    CID 1399749 (#1 of 1): Useless call (USELESS_CALL)
    side_effect_free: Calling rtems_rfs_bitmap_set(*search_map, bit) is only useful for its return value, which is ignored. [show details]
    630 rtems_rfs_bitmap_set (*search_map, bit);
    631 else
    632 {
    Comment 1
    1. Joel Sherrill, Wed, 03 Mar 2021 21:04:21 GMT
    2. owner: set to Chris Johns
    3. status: changed from new to assigned

    4294 - satcan.c: Unsigned compared against 0 error spotted by Coverity

    Link https://devel.rtems.org/ticket/4294
    Id 4294
    Reporter Ryan Long
    Created 4 March 2021 15:03:12
    Modified 5 March 2021 20:20:23
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1399768: Unsigned compared against 0 in satcan_ioctl().

    303                DBG("SatCAN: ioctl: masking register %d, with value %x\n\r",
    304 regmod->reg, regmod->val);
    unsigned_compare: This less-than-zero comparison of an unsigned value is never true. regmod->reg < 0U.
    305 if (regmod->reg < 0)
    306 return RTEMS_INVALID_NAME;
    307 else if (regmod->reg <= SATCAN_FILTER_STOP)
    Comment 1
    1. Ryan Long, Fri, 05 Mar 2021 20:20:23 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 1f29ee4/rtems:

    satcan.c: Fix Unsigned compared against 0 (CID #1399768) CID 1399768: Unsigned compared against 0 in satcan_ioctl(). Closes #4294

    4295 - b1553brm.c: Unsigned compared against 0 error spotted by Coverity

    Link https://devel.rtems.org/ticket/4295
    Id 4295
    Reporter Ryan Long
    Created 4 March 2021 15:08:42
    Modified 5 March 2021 20:20:26
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1399773: Unsigned compared against 0 in brm_write().

    983        rw_args->bytes_moved = count;
    984
    CID 1399773 (#1 of 1): Unsigned compared against 0 (NO_EFFECT)unsigned_compare: This greater-than-or-equal-to-zero comparison of an unsigned value is always true. count >= 0U.
    985 if (count >= 0) {
    986 return RTEMS_SUCCESSFUL;
    987 }
    Comment 1
    1. Ryan Long, Fri, 05 Mar 2021 20:20:26 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In c57079a/rtems:

    b1553brm.c: Fix Unsigned compared against 0 (CID #1399773) CID 1399773: Unsigned compared against 0 in brm_write(). Closes #4295

    4301 - grcan.c: Unused value error spotted by Coverity

    Link https://devel.rtems.org/ticket/4301
    Id 4301
    Reporter Ryan Long
    Created 4 March 2021 18:43:12
    Modified 5 March 2021 20:20:29
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1437613: Unused value in grcan_set_sfilter().

    1788                /* disable TX/RX SYNC filtering */
    CID 1437613 (#1 of 1): Unused value (UNUSED_VALUE)assigned_value: Assigning value 4294967295ULL to pDev->sfilter.mask here, but that stored value is overwritten before it can be used.
    1789 pDev->sfilter.mask = 0xffffffff;
    value_overwrite: Overwriting previous write to pDev->sfilter.mask with value 0ULL.
    1790 pDev->sfilter.mask = 0;
    Comment 1
    1. Ryan Long, Fri, 05 Mar 2021 20:20:29 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In f762b7c2/rtems:

    grcan.c: Fix Unused value (CID #1437613) CID 1437613: Unused value in grcan_set_filter(). This fix was recommended by Daniel Hellstrom (daniel@…). Closes #4301

    4302 - Obsolete powerpc/haleakala board

    Link https://devel.rtems.org/ticket/4302
    Id 4302
    Reporter Joel Sherrill
    Created 4 March 2021 19:40:49
    Modified 19 January 2022 17:53:04
    Owner Joel Sherrill <joel@…>
    Type defect
    Component arch/powerpc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    This BSP was merged in 1995 and there has been no mention of it recently. There do not appear to be any recent modifications to this BSP that are not part of a generic sweep of BSPs.

    Removing this will reduce the number of BSPs which need modification to account for changes being introduced to support libbsd bus interface properly on PowerPC.

    Comment 1
    1. Joel Sherrill, Tue, 21 Dec 2021 15:04:49 GMT
    2. owner: set to Joel Sherrill <joel@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In e92bc254/rtems:

    Remove powerpc/haleakala board Closes #4302.
    Comment 2
    1. Joel Sherrill, Wed, 19 Jan 2022 17:53:04 GMT

    In f228227/rtems-tools:

    rtems-bsps-powerpc.ini: Remove powerpc/halekala Updates #4302.

    4320 - Add driver for cadence-spi device for xilinx based BSPs

    Link https://devel.rtems.org/ticket/4320
    Id 4320
    Reporter Jan Sommer
    Created 9 March 2021 10:41:19
    Modified 10 March 2021 19:14:17
    Owner Jan Sommer
    Type enhancement
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Implement a spidev compatible driver for using the cadence-spi device of the Zynq devices in standard SPI mode.

    Comment 1
    1. Jan Sommer, Tue, 09 Mar 2021 10:41:30 GMT
    2. owner: set to Jan Sommer
    3. status: changed from new to accepted
    Comment 2
    1. Jan Sommer, Wed, 10 Mar 2021 19:13:54 GMT

    In cc825d0/rtems:

    bsps/xilinx_zynq: Add SPI driver for cadence-spi Updates #4320
    Comment 3
    1. Jan Sommer, Wed, 10 Mar 2021 19:14:06 GMT

    In 06129897/rtems:

    bsps/xilinx_zynq: Add SPI driver to waf Updates #4320
    Comment 4
    1. Jan Sommer, Wed, 10 Mar 2021 19:14:17 GMT
    2. status: changed from accepted to closed
    3. resolution: set to fixed

    In 9223931/rtems:

    bsps/xilinx_zynq: Add SPI driver to autotools build Closes #4320

    4321 - Add spi driver for AXI SPI ip core from Xilinx

    Link https://devel.rtems.org/ticket/4321
    Id 4321
    Reporter Jan Sommer
    Created 9 March 2021 10:43:23
    Modified 30 March 2021 15:03:39
    Owner Jan Sommer
    Type enhancement
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Add a spidev compatible driver for the xilinx axi quad spi ip core for standard SPI mode

    Comment 1
    1. Jan Sommer, Tue, 09 Mar 2021 10:43:36 GMT
    2. owner: set to Jan Sommer
    3. status: changed from new to accepted
    Comment 2
    1. Jan Sommer, Tue, 30 Mar 2021 15:03:14 GMT

    In 70667b55/rtems:

    bsps/xilinx_zynq: Add SPI driver for xilinx-axi-spi Updates #4321
    Comment 3
    1. Jan Sommer, Tue, 30 Mar 2021 15:03:27 GMT

    In 7a1edf11/rtems:

    bsps/shared: Add Xilinx-AXI SPI driver to waf Updates #4321
    Comment 4
    1. Jan Sommer, Tue, 30 Mar 2021 15:03:39 GMT
    2. status: changed from accepted to closed
    3. resolution: set to fixed

    In 33fd915/rtems:

    bsps/xilinx_zynq: Add Xilinx AXI SPI driver to autotools build Closes #4321

    4323 - grlib,can: introduce a new common CAN baud-rate timing calculating functions

    Link https://devel.rtems.org/ticket/4323
    Id 4323
    Reporter Daniel Hellstrom
    Created 9 March 2021 14:30:14
    Modified 11 March 2021 16:52:08
    Owner Daniel Hellstrom
    Type defect
    Component bsps
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    There is no point in having two different implementations specific per GRLIB CAN device driver (OCCAN and GRCAN). Instead we can use the common CAN timing definitions and translate that into the device specific parameters using a new common calculation function.

    Comment 1
    1. Daniel Hellstrom, Thu, 11 Mar 2021 16:52:01 GMT

    In cff99cf/rtems:

    leon,can: introduce common CAN baud-rate calculation function Reimplemented the baud-rate algorithm from scratch to cope with GRCAN, GRCANFD and OC_CAN devices. Update #4323.
    Comment 2
    1. Daniel Hellstrom, Thu, 11 Mar 2021 16:52:05 GMT

    In 4d192207/rtems:

    leon,grcan: use common CAN baud-rate calculation routine Update #4323.
    Comment 3
    1. Daniel Hellstrom, Thu, 11 Mar 2021 16:52:08 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 65237ba0/rtems:

    leon,occan: use common CAN baud-rate calculation routine Close #4323.

    4324 - grlib,grcanfd: extend the GRCAN driver with GRCANFD support

    Link https://devel.rtems.org/ticket/4324
    Id 4324
    Reporter Daniel Hellstrom
    Created 9 March 2021 14:31:37
    Modified 11 March 2021 16:52:21
    Owner Daniel Hellstrom
    Type enhancement
    Component bsps
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The new GRCAN_FD IP supports CAN FD standard and is mostly backwards compatible with GRCAN SW interface. It introduces support for CAN-FD frames and a new bit-rate timing registers for new baud-rate.

    The GRCAN driver have been extended to support the GRCANFD IP using the same API. Device IP-core specific functions are split into different files (grcanstd.c and grcanfd.c).

    (this was fixed in 5 branch, see ticket #4307).

    Comment 1
    1. Daniel Hellstrom, Thu, 11 Mar 2021 16:52:11 GMT

    In b98d6b67/rtems:

    grlib: added 64-bit read no-cache function Update #4324.
    Comment 2
    1. Daniel Hellstrom, Thu, 11 Mar 2021 16:52:14 GMT

    In 43c903a1/rtems:

    leon,grcan: added support for GRCANFD The new GRCAN_FD IP supports CAN FD standard and is mostly backwards compatible with GRCAN SW interface. The GRCAN driver have been extended to support the GRCANFD IP using the same driver. Additional functions have been added that uses a new CAN FD frame format and read/write/baud-rate functions that supports both GRCANFD and GRCAN. To keep the SW API fully backwards compatible with GRCAN, the old functions remain. Update #4324.
    Comment 3
    1. Daniel Hellstrom, Thu, 11 Mar 2021 16:52:18 GMT

    In 9c76ca0/rtems:

    leon,grcanfd: split out GRCANFD specific support in separate file Update #4324.
    Comment 4
    1. Daniel Hellstrom, Thu, 11 Mar 2021 16:52:21 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 9bf8a9d/rtems:

    leon,grcan: split out GRCAN non-FD specific support in separate file Close #4324.

    4326 - objectextendinformation.c: Dereference after null check error spotted by Coverity

    Link https://devel.rtems.org/ticket/4326
    Id 4326
    Reporter Ryan Long
    Created 10 March 2021 13:56:34
    Modified 29 April 2021 15:27:08
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component score
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 26033: Dereference after null check in _Objects_Extend_information().

    172    if ( old_maximum > extend_count ) {
    173 /*
    174 * Copy each section of the table over. This has to be performed as
    175 * separate parts as size of each block has changed.
    176 */
    CID 26033 (#1 of 1): Dereference after null check (FORWARD_NULL)11. var_deref_model: Passing null pointer information->object_blocks to memcpy, which dereferences it.
    177 memcpy(
    178 object_blocks,
    179 information->object_blocks,
    180 block_count * sizeof( *object_blocks )
    181 );
    Comment 1
    1. Ryan Long, Thu, 29 Apr 2021 15:27:08 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In cdf66529/rtems:

    objectextendinformation.c: Ensure information->object_blocks is not NULL CID 26033: Dereference after null check in _Objects_Extend_information(). Closes #4326

    4329 - main_rtrace.c: Dereference after null check error spotted by Coverity

    Link https://devel.rtems.org/ticket/4329
    Id 4329
    Reporter Ryan Long
    Created 10 March 2021 18:42:23
    Modified 29 April 2021 15:27:12
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component lib
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1399709: Dereference after null check in rtems_trace_buffering_shell_save().

     6. var_compare_op: Comparing buf to null implies that buf might be null.
    472 if (!buf)
    473 {
    474 close (out);
    475 printf ("error: no memory\n");
    476 }
    477
    CID 1399709 (#1 of 1): Dereference after null check (FORWARD_NULL)7. var_deref_model: Passing null pointer buf to memset, which dereferences it.
    478 memset (buf, 0, SAVE_BUF_SIZE);
    Comment 1
    1. Ryan Long, Thu, 29 Apr 2021 15:27:12 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 8cf30c4/rtems:

    main_rtrace.c: Add error return when malloc fails CID 1399709: Dereference after null check in rtems_trace_buffering_shell_save(). Closes #4329

    4331 - main_pci.c: Dereference after null check error spotted by Coverity

    Link https://devel.rtems.org/ticket/4331
    Id 4331
    Reporter Ryan Long
    Created 10 March 2021 19:06:50
    Modified 10 February 2023 15:01:17
    Owner Daniel Hellstrom
    Type defect
    Component lib
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1399716: Dereference after null check in shell_pci_infodev().

     10. var_compare_op: Comparing bus to null implies that bus might be null.
    358 if (!bus) {
    CID 1399716 (#1 of 1): Dereference after null check (FORWARD_NULL)11. var_deref_op: Dereferencing null pointer bus.
    359 printf(" AT BUS: 0x%x via Host Bridge\n", bus->num);
    360 } else {
    Comment 1
    1. Ryan Long, Wed, 10 Mar 2021 19:27:59 GMT
    2. owner: set to Daniel Hellstrom
    3. status: changed from new to assigned
    Comment 2
    1. Joel Sherrill, Fri, 10 Feb 2023 15:01:17 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    Commit had typo and closed the wrong ticket.

    In 26e1610/rtems:

    (The changeset message doesn't reference this ticket)


    4336 - Improve the workaround for the LEON3FT store-store errata: TN-0009 on master

    Link https://devel.rtems.org/ticket/4336
    Id 4336
    Reporter Daniel Hellstrom
    Created 11 March 2021 15:16:45
    Modified 11 March 2021 16:52:53
    Owner Daniel Hellstrom
    Type defect
    Component arch/sparc
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    See also:

    ​​https://www.gaisler.com/doc/antn/GRLIB-TN-0009.pdf

    Some areas were already fixed by #3057.
    RTEMS-5 branch ticket #4154.

    Comment 1
    1. Daniel Cederman, Thu, 11 Mar 2021 16:51:40 GMT

    In 0cae482a/rtems:

    sparc: Remove sequences that the B2BST scan script warns about Update #4336.
    Comment 2
    1. Daniel Hellstrom, Thu, 11 Mar 2021 16:52:50 GMT

    In acad761/rtems:

    sparc,leon: avoid triggering TN-0009 bad sequence Update #4336.
    Comment 3
    1. Daniel Hellstrom, Thu, 11 Mar 2021 16:52:53 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 89d90c0/rtems:

    sparc,leon: avoid triggering LEON3FT errata TN-0009 Close #4336.

    4338 - rtems_clock_set(): Cannot set future dates later than approximately 2105

    Link https://devel.rtems.org/ticket/4338
    Id 4338
    Reporter Frank Kuehndel
    Created 12 March 2021 13:52:51
    Modified 20 July 2022 07:39:37
    Owner Sebastian Huber
    Type defect
    Component rtems
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords rtems_clock_set, 2514, _TOD_To_seconds, qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    Short Problem Description

    ​RTEMS Classic API Guide says:

    RTEMS can represent time points of this clock in nanoseconds ranging from 1988-01-01T00:00:00.000000000Z to 2514-05-31T01:53:03.999999999Z.

    • Yet, years larger than roughly 2105 to 2110 cannot be set
      (or at least the date should be wrong but this never
      occured in my tests).

    The possible RETURN VALUES are RTEMS_SUCCESSFUL, RTEMS_INVALID_ADDRESS, RTEMS_INVALID_CLOCK

    • Yet, rtems_clock_set() can return status RTEMS_INVALID_NUMBER, too.
      (Only for such dates in the far future.)
    How To Replicate?

    Call rtems_clock_set() with this time_of-day:
    {

    year = 2514,
    month = 5,
    day = 31,
    hour = 1,
    minute = 53,
    second = 3,
    ticks = 995

    }
    The return value will be RTEMS_INVALID_NUMBER.

    Bugs in _TOD_To_seconds()

    cpukit/rtems/src/clockset.c: rtems_clock_set() calls

    • cpukit/rtems/src/clocktodvalidate.c: _TOD_Validate() and
    • cpukit/rtems/src/clocktodtoseconds.c: _TOD_To_seconds() and
    • cpukit/score/src/coretodset.c: _TOD_Set()

    First issue:

    _TOD_To_seconds() converts the time_of_day structure into seconds using a variable time of type uint32_t. This simply overflows when in comes close to year 2110.

    Debugger output at the end of _TOD_To_seconds():

    (gdb) print the_tod->year
    $16 = 2104
    (gdb) print time
    $17 = 4233686400

    with a higher year:

    (gdb) print the_tod->year
    $28 = 2514
    (gdb) print *the_tod
    $31 = {
    year = 2514,
    month = 5,
    day = 31,
    hour = 1,
    minute = 53,
    second = 3,
    ticks = 995
    }
    (gdb) print time
    $29 = 192272

    Second issue:

    _TOD_To_seconds() can (most likely) not handle the leap year issues of the years 2200, 2300, 2400, 2500 because it has dedicated code for the 2100 case only:

     /* The year 2100 is not a leap year */
    if ( time
    >= (TOD_SECONDS_AT_2100_03_01_00_00 - TOD_SECONDS_1970_THROUGH_1988)) {
    time -= TOD_SECONDS_PER_DAY;
    }
    _TOD_Check_time_of_day_and_run_hooks() causes STATUS_INVALID_NUMBER

    cpukit/score/src/coretodset.c: _TOD_Set() calls

    • cpukit/score/src/coretodset.c:
      _TOD_Check_time_of_day_and_run_hooks()

    in this code snippet (note return status):

     status = _TOD_Check_time_of_day_and_run_hooks( tod );
    if ( status != STATUS_SUCCESSFUL ) {
    _TOD_Release( lock_context );
    return status;
    }

    _TOD_Check_time_of_day_and_run_hooks( tod ) can return status STATUS_INVALID_NUMBER which is not documented for rtems_clock_set(). The small time in seconds value 192272 from the integer overrun discussed above triggers the middle if clause:

    static Status_Control _TOD_Check_time_of_day_and_run_hooks(
    const struct timespec *tod
    )
    {
    if ( !_Watchdog_Is_valid_timespec( tod ) ) {
    return STATUS_INVALID_NUMBER;
    }
    if ( tod->tv_sec < TOD_SECONDS_1970_THROUGH_1988 ) {
    return STATUS_INVALID_NUMBER;
    }
    if ( _Watchdog_Is_far_future_timespec( tod ) ) {
    return STATUS_INVALID_NUMBER;
    }
    return _TOD_Hook_Run( TOD_ACTION_SET_CLOCK, tod );
    }
    Final Notes
    • I found #2665 and #2548 but I do not say these are relevant here.
    • #define WATCHDOG_MAX_SECONDS 0x3ffffffff in cpukit/include/rtems/score/watchdogimpl.h covers 17179869183 seconds which are some 544 years
    • _TOD_Check_time_of_day_and_run_hooks() seems to be only used by _TOD_Set() but _TOD_Set() has three users.
    • I did not check whether the invers conversation (rtems_clock_get_tod()) works for dates which are centuries in the future.
    Comment 1
    1. Joel Sherrill, Fri, 12 Mar 2021 14:02:46 GMT

    Will switching to time_t instead of uint32_t largely resolve this?

    I think you might have missed some Classic API methods which might overflow. I think anything using uint32_t or rtems_interval related to seconds or ticks over long intervals is suspect. I spotted these:

    rtems_clock_get_seconds_since_epoch() uses rtems_interval. rtems_clock_get_ticks_since_boot() also uses rtems_interval but I think this overflows sooner than we'd like

    I think the Classic API time of day structure is OK.

    Comment 2
    1. Frank Kuehndel, Fri, 12 Mar 2021 15:30:38 GMT
    time_t - I presume 64 bit - will avoid the overflow in _TOD_To_seconds() but ... there are still the not correctly handled far away leap years. ... there is STATUS_INVALID_NUMBER (Should not occur when the overflow is fixed. Yet, I do not like such incorrect code even if it should not trigger.) Overruns in rtems_clock_get_ticks_since_boot() are OK because the Classic API Guide says:

    With a 1ms clock tick, this counter overflows after 50 days since boot. This is the historical measure of uptime in an RTEMS system. The newer service rtems_clock_get_uptime() is another and potentially more accurate way of obtaining similar information.

    At other functions like rtems_clock_get_seconds_since_epoch() I had not have a look, yet.
    Comment 3
    1. Joel Sherrill, Fri, 12 Mar 2021 15:51:58 GMT

    OK. I was unclear but I was asking if it is time to move rtems_interval to 64-bits. This would address the historical ticks since boot and other intervals being 32 bits. The limit also applied to rtems_task_wake_after() and other APIs using rtems_interval for number of ticks.

    Comment 4
    1. Sebastian Huber, Fri, 12 Mar 2021 16:25:14 GMT

    Could we please separate the 32-bit rtems_interval issues from this ticket.

    If we need a 64-bit division we should think about limiting the time of day to the year 2104. If it is just a multiplication and a couple of leap year fixes, then we should keep the full watchdog range.

    Comment 5
    1. Frank Kühndel, Wed, 21 Apr 2021 05:19:03 GMT

    In 7bbbe42/rtems:

    clock:_TOD_To_seconds(): Fix year 2514 overflow This patch fixes issue #4338 by changing _TOD_Validate() to only accept years till 2105. This requires another patch to change the documentation of rtems_clock_set() and other affected API functions (indicating the end date is 2105 not 2514). I tried to support till year 2514 but it turned out that this needs changing the Timer Manager too. That in turn would mean to change _TOD_Seconds_since_epoch( void ) from 32 to 64 bit. Sebastian pointed out that a naive extension leads to trouble with 32 bit processors. He deemed a safe re-implementation too costly performance wise considering that year 2106 is far away and current binaries using RTEMS Classic API are unlikely to be in use by 2106. The constant TOD_SECONDS_AT_2100_03_01_00_00 in cpukit/rtems/src/clocktodtoseconds.c happens to be wrong by 1 hour. When setting the date 2100-Feb-28 23:59:59 and then reading the date again you will find yourself in 2100-Feb-27. Update #4338
    Comment 6
    1. Frank Kuehndel, Thu, 06 May 2021 13:20:56 GMT

    Update on status:

    This is fixed in code. What is missing is to update the documentation (i.e. removing the 2514-05-31T01:53:03.999999999Z in favor of 2104-12-31T23:59:59.999999999Z in Classic API and may be explaining that the internal clock will run beyond this limit and POSIX API can work with dates beyond 2105). A colleague of mine promised to do that.

    Comment 7
    1. Sebastian Huber, Fri, 18 Jun 2021 09:24:45 GMT
    2. keywords: qualification added
    Comment 8
    1. Sebastian Huber, Mon, 06 Sep 2021 10:25:56 GMT

    In ad41c179/rtems:

    score: Change TOD_LATEST_YEAR to 2099 This simplifies the implementation a bit. Declare _TOD_Days_to_date[] in . Make _TOD_Days_per_month[] and _TOD_Days_since_last_leap_year[] static. Update #4338.
    Comment 9
    1. Sebastian Huber, Mon, 06 Sep 2021 10:27:18 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 081ec5d/rtems-docs:

    c-user: Document time of day constraints Close #4338.
    Comment 10
    1. Sebastian Huber, Mon, 06 Sep 2021 10:40:03 GMT

    In c0435b5e/rtems:

    rtems: Document time of day constraints Update #4338.
    Comment 11
    1. Sebastian Huber, Wed, 20 Jul 2022 07:39:37 GMT

    In d4c21e5/rtems:

    ada/sp09: The year 2100 cannot be set Update #4338.

    4339 - main_cp.c: Unused value error spotted by Coverity

    Link https://devel.rtems.org/ticket/4339
    Id 4339
    Reporter Ryan Long
    Created 12 March 2021 16:29:10
    Modified 8 April 2021 23:02:06
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component lib
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1255344: Unused value in copy().

    315                case FTS_DC:                    /* Warn, continue. */
    316 warnx("%s: directory causes a cycle", curr->fts_path);
    CID 1255344 (#5 of 5): Unused value (UNUSED_VALUE)assigned_value: Assigning value from rval to badcp here, but that stored value is overwritten before it can be used.
    317 badcp = rval = 1;
    318 continue;
    Comment 1
    1. Ryan Long, Thu, 08 Apr 2021 23:02:06 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In fbc76440/rtems:

    main_cp.c: Unused value (CID #1255344) CID 1255344: Unused value in copy(). Closes #4339

    4340 - print-ls.c: Unused value error spotted by Coverity

    Link https://devel.rtems.org/ticket/4340
    Id 4340
    Reporter Ryan Long
    Created 12 March 2021 16:45:41
    Modified 8 April 2021 23:02:09
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component lib
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1255346: Unused value in rtems_shell_ls_printacol

    327                if (col >= numcols) {
    CID 1255346 (#1 of 1): Unused value (UNUSED_VALUE)assigned_value: Assigning value from col to chcnt here, but that stored value is overwritten before it can be used.
    328 chcnt = col = 0;
    329 (void)putchar('\n');
    330 }
    value_overwrite: Overwriting previous write to chcnt with value from printaname(globals, p, dp->s_inode, ((globals->f_humanize && 0) ? dp->s_size : dp->s_block)).
    331 chcnt = printaname(globals, p, dp->s_inode,
    Comment 1
    1. Ryan Long, Thu, 08 Apr 2021 23:02:09 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 0b23660/rtems:

    print-ls.c: Unused value (CID #1255346) CID 1255346: Unused value in rtems_shell_ls_printacol(). Closes #4340

    4341 - fastlz.c: Unused value error spotted by Coverity

    Link https://devel.rtems.org/ticket/4341
    Id 4341
    Reporter Ryan Long
    Created 12 March 2021 16:47:57
    Modified 8 April 2021 23:02:13
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component lib/dl
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1399751: Unused value in fastlz2_compress().

    219    if(ip[0] == ip[-1] && FASTLZ_READU16(ip-1)==FASTLZ_READU16(ip+1))
    220 {
    221 distance = 1;
    CID 1399751 (#1 of 1): Unused value (UNUSED_VALUE)assigned_pointer: Assigning value from ip + 3 to ip here, but that stored value is overwritten before it can be used.
    222 ip += 3;
    Comment 1
    1. Ryan Long, Thu, 08 Apr 2021 23:02:13 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 09d811b/rtems:

    fastlz.c: Unused value (CID #1399751) CID 1399751: Unused value in fastlz2_compress(). Closes #4341

    4342 - disp_hcms29xx.c: Unused value error spotted by Coverity

    Link https://devel.rtems.org/ticket/4342
    Id 4342
    Reporter Ryan Long
    Created 12 March 2021 16:50:51
    Modified 8 April 2021 23:02:16
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1399752: Unused value in disp_hcms29xx_update_task().

    598      if (rc == RTEMS_SUCCESSFUL) {
    CID 1399752 (#1 of 1): Unused value (UNUSED_VALUE)returned_value: Assigning value from rtems_semaphore_release(softc_ptr->disp_param.trns_sema_id) to rc here, but that stored value is overwritten before it can be used.
    599 rc = rtems_semaphore_release(softc_ptr->disp_param.trns_sema_id);
    600 }
    Comment 1
    1. Ryan Long, Thu, 08 Apr 2021 23:02:16 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 3cd58bd/rtems:

    disp_hcms29xx.c: Unused value (CID #1399752) CID 1399752: Unused value in disp_hcms29xx_update_task(). Closes #4342

    4345 - Nexus Driver for Marvell mv643xx Ethernet Adapter (powerpc/beatnik BSP, MVME6100 board)

    Link https://devel.rtems.org/ticket/4345
    Id 4345
    Reporter Till Straumann
    Created 16 March 2021 09:37:03
    Modified 7 March 2022 09:43:45
    Owner Heinz Junkes <junkes@…>
    Type enhancement
    Component network/libbsd
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    This ​pull request implements a nexus driver (on top of the 5-freebsd-12 branch) for the Marvell 643xx ethernet adapter which is used on the MVME6100 board (powerpc/beatnik BSP).

    Note that this driver builds on top of the low-level driver which is part of the beatnik BSP and requires a patch to the rtems bsp which was submitted in a related ​ticket.

    Comment 1
    1. Sebastian Huber, Mon, 07 Mar 2022 09:42:58 GMT
    2. milestone: changed from 5.1 to 6.1
    Comment 2
    1. Heinz Junkes, Mon, 07 Mar 2022 09:43:24 GMT

    In de0badf/rtems-libbsd:

    if_mve: Add MV643XX Ethernet driver Update #4345.
    Comment 3
    1. Heinz Junkes, Mon, 07 Mar 2022 09:43:45 GMT
    2. owner: set to Heinz Junkes <junkes@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 878713b/rtems-libbsd:

    if_mve: Add MV643XX Ethernet driver Close #4345.

    4346 - Require RTEMS_PRIORITY for MrsP semaphores

    Link https://devel.rtems.org/ticket/4346
    Id 4346
    Reporter Sebastian Huber
    Created 16 March 2021 13:25:03
    Modified 23 June 2021 07:07:55
    Owner Sebastian Huber
    Type enhancement
    Component rtems
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    The MrsP semaphores are a generalization the priority ceiling semaphores for SMP configurations. Priority ceiling semaphores are required to use the priority task wait queue discipline. Require this discipline also for MrsP semaphores.

    Comment 1
    1. Sebastian Huber, Wed, 17 Mar 2021 09:48:57 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 3a66586/rtems:

    rtems: Allow RTEMS_PRIORITY for MrsP semaphores In order to improve the compatibility of RTEMS 5.2 with future version of RTEMS which fixed #4346 allow MrsP semaphores to be created with RTEMS_PRIORITY. Close #4347.
    Comment 2
    1. Sebastian Huber, Wed, 17 Mar 2021 09:51:43 GMT

    Issue was fixed by 0965b7c8b7956846167f43b813d68f8b5f2a60a1.

    Comment 3
    1. Sebastian Huber, Wed, 17 Mar 2021 13:01:43 GMT

    In f2bbea6/rtems-docs:

    c-user: Update semaphore example Update #4346.
    Comment 4
    1. Sebastian Huber, Wed, 23 Jun 2021 07:07:55 GMT
    2. keywords: qualification added

    4355 - Remove leon3 test configurations which assume sis is built into gdb from rtems-test

    Link https://devel.rtems.org/ticket/4355
    Id 4355
    Reporter Ryan Long
    Created 23 March 2021 15:55:39
    Modified 23 March 2021 20:05:29
    Owner joel@…
    Type defect
    Component test
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    When trying to run the tests with rtems-test on leon3, every test was invalid except for minimum. rtems-test is still using sis through gdb when it should be using the dedicated sis executable.

    Comment 1
    1. Ryan Long, Tue, 23 Mar 2021 20:05:29 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed

    In 64ad86c/rtems-tools:

    bsps/sparc: Remove INI files using SIS in GDB Removed the INI files that use the "target sim" option since the SIS sparc simulator in GDB is no longer used with RTEMS. A newer version of SIS is built separately. Closes #4355

    4356 - rtems_semaphore_set_priority() uses an invalid SMP lock

    Link https://devel.rtems.org/ticket/4356
    Id 4356
    Reporter Sebastian Huber
    Created 23 March 2021 17:14:03
    Modified 15 November 2021 11:39:10
    Owner Sebastian Huber
    Type defect
    Component rtems
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    If the priority of a locked priority ceiling mutex is set, the used SMP lock sequence is invalid.

    Comment 1
    1. Sebastian Huber, Fri, 18 Jun 2021 09:24:45 GMT
    2. keywords: qualification added
    Comment 2
    1. Sebastian Huber, Mon, 15 Nov 2021 11:39:10 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In ee57a7f1/rtems:

    score: Fix _CORE_ceiling_mutex_Set_priority() We have to use a second thread queue context to acquire and release the thread wait lock. Close #4356.

    4358 - Priority discipline is broken for semaphores and message queues in SMP configurations

    Link https://devel.rtems.org/ticket/4358
    Id 4358
    Reporter Sebastian Huber
    Created 25 March 2021 08:08:58
    Modified 2 September 2021 05:53:41
    Owner Sebastian Huber
    Type defect
    Component admin
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    The priority queues in clustered scheduling configurations use a per scheduler priority queue rotation to ensure FIFO fairness across schedulers. This mechanism is implemented in the thread queue surrender operation. Unfortunately some semaphore and message queue directives use wrongly the thread queue extract operation.

    Comment 1
    1. Sebastian Huber, Fri, 18 Jun 2021 09:24:45 GMT
    2. keywords: qualification added
    Comment 2
    1. Sebastian Huber, Thu, 02 Sep 2021 05:48:04 GMT

    In 9c0591f1/rtems:

    score: Fix priority discipline handling The priority queues in clustered scheduling configurations use a per scheduler priority queue rotation to ensure FIFO fairness across schedulers. This mechanism is implemented in the thread queue surrender operation. Unfortunately some semaphore and message queue directives used wrongly the thread queue extract operation. Fix this through the use of _Thread_queue_Surrender(). Update #4358.
    Comment 3
    1. Sebastian Huber, Thu, 02 Sep 2021 05:53:41 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    Message queues were fixed by #4509.


    4363 - GDB does not build on Windows for MSYS2

    Link https://devel.rtems.org/ticket/4363
    Id 4363
    Reporter Chris Johns
    Created 28 March 2021 06:08:46
    Modified 29 November 2022 22:34:32
    Owner Chris Johns
    Type defect
    Component tool/gdb
    Status closed
    Resolution wontfix
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The details are in the GDB bug ...

    ​https://sourceware.org/bugzilla/show_bug.cgi?id=27657

    Comment 1
    1. Chris Johns, Tue, 29 Nov 2022 22:34:32 GMT
    2. status: changed from assigned to closed
    3. resolution: set to wontfix

    Not sure if this is valid. Please reopen if it is broken.


    4364 - rtems-test Fails to list failed tests to user

    Link https://devel.rtems.org/ticket/4364
    Id 4364
    Reporter Joel Sherrill
    Created 28 March 2021 15:51:47
    Modified 28 March 2021 15:51:47
    Owner Chris Johns
    Type defect
    Component tool/rsb
    Status assigned
    Resolution  
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    rtems-test does not report the set of failed tests to the user at the conclusion of its run. It only gives a summary by category. They ARE in the log file. I assume this is a minor issue now that I have spotted the pattern.

    I assume this also applies to 5 but I spotted it on 6 during the recent heavy round of manual testing.


    4365 - main_cp.c: Ignore return value from stat()

    Link https://devel.rtems.org/ticket/4365
    Id 4365
    Reporter Ryan Long
    Created 30 March 2021 14:44:30
    Modified 28 May 2021 17:29:44
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component lib
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 26051: Unchecked return value from library in main_cp().

    257                        if (Rflag && (Lflag || Hflag))
    CID 26051 (#1 of 1): Unchecked return value from library (CHECKED_RETURN)34. check_return: Calling stat(*argv, &tmp_stat) without checking return value. This library function may fail and return an error code. [Note: The source code implementation of the function has been overridden by a builtin model.]
    258 stat(*argv, &tmp_stat);
    Comment 1
    1. Ryan Long, Fri, 28 May 2021 17:29:44 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In f29b312e/rtems:

    main_cp.c: Ignore return value from stat() CID 26051: Unchecked return value from library in main_cp(). Closes #4365

    4368 - rtems--tools tool kit temp file constructor does nothing

    Link https://devel.rtems.org/ticket/4368
    Id 4368
    Reporter Chris Johns
    Created 31 March 2021 03:26:34
    Modified 1 April 2021 17:43:50
    Owner Joel Sherrill
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    A change to add an overloaded constructor ...

    ​https://git.rtems.org/rtems-tools/commit/?id=420d7a13672991a1480d06ac02190f2976b9253b

    does not do anything. The body of the constructor is empty.

    Thinking about this I think the change is not right because the code depends on libiberty make temp call to find the temp directory and that is designed to crate safe temp files.

    I am now wondering how the code was tested? The files registered are not known to the clean up handler that runs on exit.

    Comment 1
    1. Alex White, Thu, 01 Apr 2021 17:43:50 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    This patch set up the interfaces used in the "covoar: Add option to create named objdumps" patch that I sent. We determined that patch was not needed given its hacked-togetherness along with future speedups that we had in mind which would make it obsolete anyway.

    This patch should have been removed from the set to be committed, but I forgot to send out a notice to exclude it. Sorry for the confusion.

    This commit should be reverted.


    4374 - Handle symbol sets in covoar

    Link https://devel.rtems.org/ticket/4374
    Id 4374
    Reporter Alex White
    Created 5 April 2021 17:59:13
    Modified 7 April 2021 15:35:06
    Owner Alex White
    Type task
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords coverage
    Cc  
    Blocking  
    Blocked by  

    Description

    The covoar tool should be changed to handle all symbol sets for a coverage run rather than being called by coverage.py for each symbol set.

    Currently, coverage.py calls covoar once for each symbol set found in the symbol-sets.ini configuration file. This leads to a lot of redundancy. For each symbol set, covoar has to process the objdumps and the coverage information of all the executables even though they do not change.

    Changing covoar to process all symbol sets and generate reports in one invocation will result in a large speedup.

    This will also require a minor modification to coverage.py to generate the correct .ini file and only call covoar once.

    Comment 1
    1. Alex White, Mon, 05 Apr 2021 18:00:17 GMT
    2. owner: set to Alex White
    3. status: changed from new to accepted
    Comment 2
    1. Alex White, Tue, 06 Apr 2021 19:22:58 GMT

    In b02600a/rtems-tools:

    covoar: Split symbols by symbol set This changes the way covoar organizes the symbols. Instead of treating all symbols as one set, covoar is now aware of multiple symbol sets and tracks statistics for each set. It now also generates reports for each symbol set. This change relieves the caller of covoar of the reponsibility of managing the symbol sets. As a result, covoar can minimize the work done for each symbol set, yielding a significant speedup. Updates #4374
    Comment 3
    1. Alex White, Tue, 06 Apr 2021 19:23:00 GMT

    In b3fcd10/rtems-tools:

    coverage.py: Call covoar once Updates #4374
    Comment 4
    1. Alex White, Wed, 07 Apr 2021 15:35:06 GMT
    2. status: changed from accepted to closed
    3. resolution: set to fixed

    In de185fe/rtems-tools:

    covoar: Use range-based for loops in ReportsBase? Some of the loops in the ReportsBase::Write* methods contained both regular and range-based for loops. This changes them to use only range- based for loops. Closes #4374

    4375 - Add futimens() and utimensat()

    Link https://devel.rtems.org/ticket/4375
    Id 4375
    Reporter Joel Sherrill
    Created 5 April 2021 17:59:27
    Modified 16 December 2021 15:54:33
    Owner  
    Type enhancement
    Component fs
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords file system
    Cc  
    Blocking  
    Blocked by  

    Description

    RTEMS currently only supports utimes() which is marked as Legacy in the POSIX standard. Support needs to be added for futimens() and utimensat() per the following specification:

    ​https://pubs.opengroup.org/onlinepubs/9699919799/functions/futimens.html

    utimes() only has second granularity on its times. The newer methods greatly improve on that even if many of the RTEMS file systems do not support nanosecond times on the file access, create, etc timestamps.

    The following changes have been identified:

    • The utimes file handler entry will need to be replaced with a handler geared to the futimens() API.
    • File systems will have to be updated to account for the new handler.
    • Existing methods like utimes() will have to be adjusted to be implemented in terms of the futimens() style method.
    • File system test cases will have to be added to the fstests.
    Comment 1
    1. Joel Sherrill, Tue, 06 Apr 2021 13:30:26 GMT
    2. keywords: SoC removed
    Comment 2
    1. Joel Sherrill, Thu, 16 Dec 2021 15:54:33 GMT
    2. status: changed from new to closed
    3. type: changed from defect to enhancement
    4. resolution: set to fixed

    This was implemented and this ticket should have been closed.


    4376 - covoar/ReportsBase Coverage::GenerateReports() uses raw pointer to std::list

    Link https://devel.rtems.org/ticket/4376
    Id 4376
    Reporter Alex White
    Created 5 April 2021 18:29:36
    Modified 22 December 2021 14:35:57
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords coverage, covoar
    Cc  
    Blocking  
    Blocked by  

    Description

    The Coverage::GenerateReports() function uses a variable of type std::list to store the ReportsBase-derived classes used to generate the reports. The function should use an std::vector> instead.

    An std::vector is the preferred container type in this case because the constant-time insertion and removal properties of std::list are not needed. The smart pointer type std::unique_ptr is preferred over ReportsBase * because it eliminates the need for manual pointer deletion at the end of the function.

    Comment 1
    1. Joel Sherrill, Mon, 05 Apr 2021 18:35:16 GMT
    2. keywords: covoar added
    3. component: changed from admin to tool
    4. description: modified (diff)
    5. summary: changed from covoar/ReportsBase Coverage::GenerateReports() uses raw pointer std::list to covoar/ReportsBase Coverage::GenerateReports() uses raw pointer to std::list
    Comment 2
    1. Ryan Long, Wed, 22 Dec 2021 14:35:57 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 8167ad2/rtems-tools:

    ReportsBase?: Change raw pointer to unique_ptr Replaced raw pointer used with ReportsBase?-derived classes to make code cleaner and make it to where pointers do not have to be manually deleted. Closes #4376

    4377 - covoar/Explanations Explanations::writeNotFound() NULL check of wrong variable

    Link https://devel.rtems.org/ticket/4377
    Id 4377
    Reporter Alex White
    Created 5 April 2021 18:54:03
    Modified 7 April 2021 20:36:39
    Owner Alex White
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords coverage, covoar
    Cc  
    Blocking  
    Blocked by  

    Description

    The Explanations::writeNotFound() method contains two NULL checks for the fileName variable. The second check should be checking if notFoundFile is NULL because it relates to the error being reported in the true case.

    It appears that this was a simple mistake that was never caught until now.

    Comment 1
    1. Alex White, Wed, 07 Apr 2021 15:21:05 GMT
    2. owner: set to Alex White
    3. status: changed from new to accepted
    Comment 2
    1. Joel Sherrill, Wed, 07 Apr 2021 15:23:52 GMT

    Didn't this get caught as part of reviewing a Coverity issue? Please cite one.

    Comment 3
    1. Alex White, Wed, 07 Apr 2021 15:26:54 GMT

    No, it got caught as part of my testing. It may have also been a Coverity issue, but I ran into a NULL pointer dereference with this.

    Comment 4
    1. Joel Sherrill, Wed, 07 Apr 2021 15:49:26 GMT

    CID #1399602 is about a NULL reference in the same method which traces back to the incorrect variable being checked. Coverity didn't realize it was the wrong variable but did find something wrong that could lead to a NULL pointer dereference.

    Check me and please cite it in the ticket and git commit message.

    Comment 5
    1. Alex White, Wed, 07 Apr 2021 20:36:39 GMT
    2. status: changed from accepted to closed
    3. resolution: set to fixed

    In e84b9f3/rtems-tools:

    covoar: Fix NULL check of wrong variable (CID #1399602) CID 1399602: Dereference null return value in Explanations::writeNotFound(). In Explanations::writeNotFound() there were two NULL checks of the fileName variable where only one is needed. The second check has been changed to a NULL check of notFoundFile to match the original intent. Closes #4377

    4378 - covoar/symbol-sets add libuuid to symbol-sets.ini

    Link https://devel.rtems.org/ticket/4378
    Id 4378
    Reporter Alex White
    Created 5 April 2021 18:58:31
    Modified 18 May 2021 14:22:19
    Owner  
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords coverage, covoar
    Cc  
    Blocking  
    Blocked by  

    Description

    libuuid should be added to the list of symbol sets in the symbol-sets.ini configuration file.

    Comment 1
    1. Alex White, Tue, 18 May 2021 14:22:19 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed

    Fixed in ​https://git.rtems.org/rtems-tools/commit/?id=eecde471ccd4a87d9f51f6f0cce9e6791bf27835


    4380 - Update RTEMS POSIX Compliance Spreadsheet

    Link https://devel.rtems.org/ticket/4380
    Id 4380
    Reporter Joel Sherrill
    Created 6 April 2021 21:25:18
    Modified 7 April 2021 18:58:39
    Owner Joel Sherrill
    Type enhancement
    Component doc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    There have been additions to RTEMS and the tracking spreadsheet now includes FACE Technical Standard, Edition 3.1

    Comment 1
    1. Joel Sherrill, Wed, 07 Apr 2021 18:58:39 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In b43fe70/rtems-docs:

    posix-compliance: Update tracking spreadsheet to v12 The new version of the API tracking spreadsheet includes FACE Technical Standard, Edition 3.1 as well as a few additions to what RTEMS supports. The generation script and discussion of standards was updated to reflect the inclusion of a new Edition of the FACE Technical Standard. Closes #4380.

    4382 - mingw - add flex to packages needed

    Link https://devel.rtems.org/ticket/4382
    Id 4382
    Reporter Joel Sherrill
    Created 7 April 2021 23:12:00
    Modified 30 November 2022 23:26:28
    Owner Joel Sherrill
    Type defect
    Component doc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    New install of msys2 and pacman instructions in manual missed flex.

    Comment 1
    1. Chris Johns, Tue, 29 Nov 2022 22:37:38 GMT
    2. owner: set to Joel Sherrill
    Comment 2
    1. Joel Sherrill, Wed, 30 Nov 2022 23:26:28 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 5a54847/rtems-docs:

    user/hosts/windows.rst: flex needs to be installed for msys2 Closes #4382.

    4383 - covoar keeps DWARF info in memory too long

    Link https://devel.rtems.org/ticket/4383
    Id 4383
    Reporter Alex White
    Created 8 April 2021 17:50:07
    Modified 17 June 2021 21:05:39
    Owner Alex White
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords coverage, covoar
    Cc  
    Blocking  
    Blocked by  

    Description

    To get covoar working again, the ELF and DWARF info cleanup was moved from the ExecutableInfo constructor to the ExecutableInfo destructor. Without this change, covoar would report the locations of symbols as unknown:-1. This is because the DWARF info is used later in the ExecutableInfo::getSourceAndLine() method with a call to debug.get_source().

    This caused a new issue: the ELF and DWARF info is now held in memory for the life of the program. This causes very high memory usage when running covoar, more than 10 GB for some BSPs.

    A quick and dirty solution is to find what is being referenced in debug.get_source() and preserve it after debug.end() is called. It appears that refraining from calling cus.clear() in rld::dwarf::file::end() would be a good place to start. Additionally, the rld::dwarf::sources class will likely need to be changed to copy out the DWARF source file info.

    Comment 1
    1. Alex White, Thu, 08 Apr 2021 17:50:19 GMT
    2. owner: set to Alex White
    3. status: changed from new to accepted
    Comment 2
    1. Alex White, Thu, 17 Jun 2021 21:05:37 GMT

    In a88be93/rtems-tools:

    covoar: Store only the file name in ExecutableInfo? This changes the ExecutableInfo? class to only store the executable file's name rather than an entire instance of rld::files::object. This allows the rld::files::object to be cleaned up in the ExecutableInfo? constructor. Updates #4383
    Comment 3
    1. Alex White, Thu, 17 Jun 2021 21:05:39 GMT
    2. status: changed from accepted to closed
    3. resolution: set to fixed

    In ac56fce/rtems-tools:

    covoar: Store address-to-line info outside of DWARF This adds the AddressToLineMapper? class and supporting classes to assume responsibility of tracking address-to-line information. This allows the DWARF library to properly cleanup all of its resources and leads to significant memory savings. Closes #4383

    4384 - Add SMTP login to rtems-tools mailer

    Link https://devel.rtems.org/ticket/4384
    Id 4384
    Reporter Alex White
    Created 12 April 2021 18:34:08
    Modified 14 April 2021 14:32:23
    Owner Alex White
    Type enhancement
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The ability to provide a username and password to perform an SMTP login should be added so that rtems-test results can be mailed via an external SMTP server that requires authentication.

    The following additional command line options should be enough to make it work:
    --smtp-port
    --smtp-user
    --smtp-password

    The mail-related command line options should be filtered from the mailed logs so that credentials do not get leaked.

    Comment 1
    1. Alex White, Mon, 12 Apr 2021 18:34:20 GMT
    2. owner: set to Alex White
    3. status: changed from new to accepted
    Comment 2
    1. Alex White, Mon, 12 Apr 2021 18:36:29 GMT

    Replying to Alex White:

    The following additional command line options should be enough to make it work: --smtp-port --smtp-user --smtp-password

    Additionally, a --smtp-use-gitconfig option to use the information found in ~/.gitconfig would be nice.

    Comment 3
    1. Alex White, Tue, 13 Apr 2021 21:45:02 GMT

    In 1a575af/rtems-tools:

    rtemstoolkit/mailer.py: Return full smtp-host arg value This fixes mail.smtp_host() so that it returns the full argument value rather than just the second character. Updates #4384
    Comment 4
    1. Alex White, Tue, 13 Apr 2021 21:45:04 GMT

    In 92f7f67/rtems-tools:

    rtemstoolkit: Filter mail options from log output This filters mail-related options out before logging the command line options. This is needed to prevent leaking potentially sensitive information via logs and emails. Updates #4384
    Comment 5
    1. Alex White, Tue, 13 Apr 2021 21:45:06 GMT

    In 3b1407f/rtems-tools:

    rtemstoolkit/mailer.py: Add SMTP login options This adds more options so that the user can authenticate with the SMTP server. Updates #4384
    Comment 6
    1. Alex White, Wed, 14 Apr 2021 14:32:23 GMT
    2. status: changed from accepted to closed
    3. resolution: set to fixed

    In 82b752a/rtems-tools:

    rtemstoolkit/mailer.py: Add --use-gitconfig option This adds the option to pull mail-related configuration values from the user's git configuration. Closes #4384

    4386 - covoar missing conditional branch instructions on ARM

    Link https://devel.rtems.org/ticket/4386
    Id 4386
    Reporter Alex White
    Created 16 April 2021 14:36:58
    Modified 16 April 2021 22:29:01
    Owner Alex White
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords coverage, covoar
    Cc  
    Blocking  
    Blocked by  

    Description

    Two ARM instructions, cbz and cbnz, are not being treated as conditional branch instructions by covoar currently. They should be added to the list of conditional branch instructions in Target_arm.

    Comment 1
    1. Alex White, Fri, 16 Apr 2021 14:37:50 GMT
    2. owner: set to Alex White
    3. status: changed from new to accepted
    Comment 2
    1. Alex White, Fri, 16 Apr 2021 22:29:01 GMT
    2. status: changed from accepted to closed
    3. resolution: set to fixed

    In 292363d/rtems-tools:

    covoar/Target_arm: Add cbz and cbnz as branch instructions This adds cbz and cbnz as conditional branch instructions for ARM as they appear to have been missed. Closes #4386

    4387 - covoar marks taken/not taken incorrectly for AArch64

    Link https://devel.rtems.org/ticket/4387
    Id 4387
    Reporter Alex White
    Created 16 April 2021 18:11:01
    Modified 16 April 2021 22:29:05
    Owner Alex White
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords coverage, covoar
    Cc  
    Blocking  
    Blocked by  

    Description

    The AArch64 annotated assembly produced by covoar reveals that branches that are never taken are marked "ALWAYS TAKEN" and branches that are always taken are marked "NEVER TAKEN".

    It appears that this is caused by incorrect return values in TargetBase::qemuTakenBit() and TargetBase::qemuNotTakenBit(). These methods should be overridden in Target_aarch64 so that the return values are switched.

    Comment 1
    1. Alex White, Fri, 16 Apr 2021 18:11:12 GMT
    2. owner: set to Alex White
    3. status: changed from new to accepted
    Comment 2
    1. Alex White, Fri, 16 Apr 2021 22:29:05 GMT
    2. status: changed from accepted to closed
    3. resolution: set to fixed

    In 0c4884a/rtems-tools:

    covoar/Target_aarch64: Swap QEMU taken/not taken bits This overrides the TargetBase behavior to allow branches to be marked correctly as either taken or not taken. Closes #4387

    4388 - Copy improved mailer.py from rtems-tools

    Link https://devel.rtems.org/ticket/4388
    Id 4388
    Reporter Alex White
    Created 19 April 2021 17:37:41
    Modified 26 May 2021 21:34:44
    Owner Alex White
    Type enhancement
    Component build
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The mailer.py script from rtems-tools has had various improvements made to it that have been left out of the mailer.py script in rtems-source-builder.

    The mailer.py in rtems-source-builder should be made to mirror the mailer.py script in rtems-tools so that it incorporates the same improvements.

    Comment 1
    1. Alex White, Mon, 19 Apr 2021 17:37:51 GMT
    2. owner: set to Alex White
    3. status: changed from new to accepted
    Comment 2
    1. Alex White, Wed, 26 May 2021 21:34:44 GMT
    2. status: changed from accepted to closed
    3. resolution: set to fixed

    In 4e6dc64/rtems-source-builder:

    sb: Merge mailer changes from rtems-tools This adds the improved mailer.py script from rtems-tools. Closes #4388

    4389 - Undefined behaviour if the area size calculation in calloc() and rtems_calloc() overflows

    Link https://devel.rtems.org/ticket/4389
    Id 4389
    Reporter Sebastian Huber
    Created 20 April 2021 18:32:51
    Modified 23 June 2021 07:07:55
    Owner Sebastian Huber
    Type defect
    Component lib
    Status closed
    Resolution fixed
    Version  
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    Comment 1
    1. Sebastian Huber, Wed, 21 Apr 2021 05:03:30 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 51defd92/rtems:

    Fix calloc() behaviour in case of overflow The multiplication to calculate the length of the memory area to allocate may overflow. Return NULL in case of an overflow. Close #4389.
    Comment 2
    1. Sebastian Huber, Wed, 23 Jun 2021 07:07:55 GMT
    2. keywords: qualification added

    4390 - Make zero size allocation result consistent across directives

    Link https://devel.rtems.org/ticket/4390
    Id 4390
    Reporter Sebastian Huber
    Created 20 April 2021 18:37:10
    Modified 23 June 2021 07:07:55
    Owner Sebastian Huber
    Type enhancement
    Component admin
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    There is a special case in malloc() which results in a malloc( 0 ) == NULL invariant. This special case should move to rtems_heap_allocate_aligned_with_boundary() to have a consistent behaviour across the API level memory allocation directives.

    Comment 1
    1. Sebastian Huber, Tue, 20 Apr 2021 18:37:24 GMT
    2. summary: changed from Make zero size allocation result consistent accross directives to Make zero size allocation result consistent across directives
    Comment 2
    1. Joel Sherrill, Tue, 20 Apr 2021 22:41:58 GMT

    This is an area of undefined behavior per POSIX. It might be worth considering having this be a debug failure.

    ​https://pubs.opengroup.org/onlinepubs/009695399/functions/malloc.html

    Comment 3
    1. Sebastian Huber, Wed, 21 Apr 2021 04:43:41 GMT

    It is not undefined behaviour in the latest POSIX edition:

    ​https://pubs.opengroup.org/onlinepubs/9699919799/functions/malloc.html

    It is implementation-defined behaviour. The implementation has two options. The RTEMS malloc( 0 ) returns NULL. Linux seems to return a unique pointer.

    The rtems_memalign(&p, 8, 0) returns a unique pointer. I think this size == 0 behaviour should be consistent in RTEMS.

    Comment 4
    1. Sebastian Huber, Tue, 04 May 2021 11:08:10 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In d692c62d/rtems:

    Make zero size allocation result consistent The zero size allocations had no consistent behaviour in RTEMS. For example, malloc( 0 ) returned NULL and posix_memalign( &p, align, 0 ) returned in p a unique pointer (or NULL if no memory is available). In POSIX, zero size memory allocations are implementation-defined behaviour. The implementation has two options: ​https://pubs.opengroup.org/onlinepubs/9699919799/functions/malloc.html ​https://pubs.opengroup.org/onlinepubs/9699919799/functions/posix_memalign.html Linux and FreeBSD return a unique pointer for zero size memory allocations. Use this approach for RTEMS as well throughout the memory allocation directives Close #4390.
    Comment 5
    1. Sebastian Huber, Thu, 06 May 2021 13:15:09 GMT

    In 2c5199b/rtems:

    Return NULL for zero size allocations In POSIX, zero size memory allocations are implementation-defined behaviour. The implementation has two options: ​https://pubs.opengroup.org/onlinepubs/9699919799/functions/malloc.html ​https://pubs.opengroup.org/onlinepubs/9699919799/functions/posix_memalign.html Linux and FreeBSD return a unique pointer for zero size memory allocations. Return NULL on RTEMS to more likely catch the use of a zero size memory area by erroneous applications. Update #4390.
    Comment 6
    1. Sebastian Huber, Fri, 07 May 2021 05:08:44 GMT

    In c46d125/rtems:

    Check the alignment in posix_memalign() earlier Make sure all conditions to do a proper memory allocation are satisfied before a zero size memory allocation is performed. Update #4390.
    Comment 7
    1. Sebastian Huber, Wed, 23 Jun 2021 07:07:55 GMT
    2. keywords: qualification added

    4391 - SPARC GCC no longer needs sysconf(515) (_SC_STACK_PROT)

    Link https://devel.rtems.org/ticket/4391
    Id 4391
    Reporter Joel Sherrill
    Created 23 April 2021 20:22:39
    Modified 9 June 2021 16:52:40
    Owner Ryan Long <ryan.long@…>
    Type enhancement
    Component posix
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    In reviewing Ryan's rework of psx13, Gedare asked why there was a test for sysconf(515) conditionally compiled for SPARC. The answer was GCC needed it. But investigated showed that GCC has not had code to call this for over 20 years. It was removed per this commit.

    commit ac4904440b4733f461bcd2c45915f502b0345f80
    Author: Alexandre Oliva
    Date: Mon Jan 24 00:47:38 2000 +0000
    sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved...
    * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved...
    * config/sparc/sol2.h: ... here.
    From-SVN: r31578

    This ticket is to remove the code from posix/src/sysconf.c and update psx13 accordingly.

    Comment 1
    1. Ryan Long, Wed, 09 Jun 2021 16:52:40 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In f83676d/rtems:

    sysconf: Remove sysconf(515) GCC originally needed this 20 years ago. No longer needed, so it is being removed. Closes #4391

    4392 - rtems: Constify timer fire when directives

    Link https://devel.rtems.org/ticket/4392
    Id 4392
    Reporter Sebastian Huber
    Created 27 April 2021 17:33:36
    Modified 23 June 2021 07:07:55
    Owner Sebastian Huber
    Type enhancement
    Component rtems
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    The time of day pointer can be made constant in the timer fire when directives.

    Comment 1
    1. Sebastian Huber, Tue, 27 Apr 2021 17:34:49 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 2684f2a3/rtems:

    rtems: Constify timer fire when directives Close #4392.
    Comment 2
    1. Sebastian Huber, Wed, 28 Apr 2021 07:04:08 GMT

    In de8fe65/rtems-docs:

    c-user: Constify timer fire when directives Update #4392.
    Comment 3
    1. Sebastian Huber, Wed, 23 Jun 2021 07:07:55 GMT
    2. keywords: qualification added

    4393 - rtems: Change rtems_task_get_affinity() status

    Link https://devel.rtems.org/ticket/4393
    Id 4393
    Reporter Sebastian Huber
    Created 27 April 2021 17:37:41
    Modified 23 June 2021 07:07:55
    Owner Sebastian Huber
    Type enhancement
    Component rtems
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    In case the processor set is not large enough to contain the processor affinity set of the task return RTEMS_INVALID_SIZE instead of RTEMS_INVALID_NUMBER. This is more in line with other directives since the issue is related to the size of an object.

    Comment 1
    1. Sebastian Huber, Tue, 27 Apr 2021 17:53:19 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 4b7c77b/rtems:

    rtems: Change rtems_task_get_affinity() status In case the processor set is not large enough to contain the processor affinity set of the task return RTEMS_INVALID_SIZE instead of RTEMS_INVALID_NUMBER. This is more in line with other directives since the issue is related to the size of an object. Close #4393.
    Comment 2
    1. Sebastian Huber, Wed, 23 Jun 2021 07:07:55 GMT
    2. keywords: qualification added

    4395 - Workspace initialization is broken for arm/imx7 and arm/raspberrypi

    Link https://devel.rtems.org/ticket/4395
    Id 4395
    Reporter Sebastian Huber
    Created 29 April 2021 11:38:47
    Modified 29 April 2021 11:43:04
    Owner Sebastian Huber
    Type defect
    Component arch/arm
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Cloned from #4394:

    The ARMV7_CP15_START_WORKSPACE_ENTRY_INDEX has a wrong value. The bug was introduced by the fix for #4185.

    Comment 1
    1. Sebastian Huber, Thu, 29 Apr 2021 11:43:04 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 263e00b/rtems:

    bsps/arm: ARMV7_CP15_START_WORKSPACE_ENTRY_INDEX Change the ARMV7_CP15_START_WORKSPACE_ENTRY_INDEX value to be in line with the workspace entry in ARMV7_CP15_START_DEFAULT_SECTIONS. Close #4395.

    4396 - Add futimens() and utimensat()

    Link https://devel.rtems.org/ticket/4396
    Id 4396
    Reporter Ryan Long
    Created 29 April 2021 18:29:12
    Modified 28 May 2021 21:29:11
    Owner Ryan Long <ryan.long@…>
    Type enhancement
    Component lib
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Implement the futimens and utimensat APIs

    Comment 1
    1. Ryan Long, Fri, 28 May 2021 21:29:11 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 335f705/rtems:

    libcsupport: Added futimens() and utimensat() Created futimens.c and utimensat.c to add support for the POSIX methods futimens() and utimensat(). utime() and utimes() are considered obsolote by POSIX, but RTEMS will continue to support them. Closes #4396

    4397 - Make utime() use utimensat()

    Link https://devel.rtems.org/ticket/4397
    Id 4397
    Reporter Ryan Long
    Created 29 April 2021 18:30:34
    Modified 28 May 2021 21:29:14
    Owner Ryan Long <ryan.long@…>
    Type enhancement
    Component lib
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Make utime use the utimensat API

    Comment 1
    1. Ryan Long, Fri, 28 May 2021 21:29:14 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In bb704123/rtems:

    libcsupport: Implement utime() in terms of utimensat() utime() now calls utimensat() to update file access and modification timestamps. Updated license. Closes #4397

    4398 - Make utimes() use utimensat()

    Link https://devel.rtems.org/ticket/4398
    Id 4398
    Reporter Ryan Long
    Created 29 April 2021 18:31:18
    Modified 28 May 2021 21:29:18
    Owner Ryan Long <ryan.long@…>
    Type enhancement
    Component lib
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Make utimes use the utimensat API

    Comment 1
    1. Ryan Long, Fri, 28 May 2021 21:29:18 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In ea881bf/rtems:

    libcsupport: Implement utimes() in terms of utimensat() utimes() now calls utimensat() to update file access and modification timestamps. Updated license. Closes #4398

    4399 - Add tests for futimens() and utimensat()

    Link https://devel.rtems.org/ticket/4399
    Id 4399
    Reporter Ryan Long
    Created 29 April 2021 18:50:00
    Modified 28 May 2021 21:29:21
    Owner Ryan Long <ryan.long@…>
    Type enhancement
    Component lib
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Create tests to test the futimens() and utimensat() APIs

    Comment 1
    1. Ryan Long, Fri, 28 May 2021 21:29:21 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 6171a88/rtems:

    psx13: Added tests for utimensat() and futimens() Improved tests for utime() and utimes() and update license. Close #4399

    4400 - Change filesystem utime_h to utimens_h to support nanosecond granularity

    Link https://devel.rtems.org/ticket/4400
    Id 4400
    Reporter Ryan Long
    Created 29 April 2021 19:09:39
    Modified 28 May 2021 21:29:25
    Owner Ryan Long <ryan.long@…>
    Type enhancement
    Component lib
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Change utime_h to utimens_h for the new nanosecond granularity APIs

    Comment 1
    1. Ryan Long, Fri, 28 May 2021 21:29:25 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In ea41722c/rtems:

    Change filesystem utime_h handler to utimens_h Also updated licenses. Closes #4400 Updates #3899

    4401 - rtems: Change rtems_scheduler_get_processor_set() status

    Link https://devel.rtems.org/ticket/4401
    Id 4401
    Reporter Sebastian Huber
    Created 5 May 2021 11:33:35
    Modified 23 June 2021 07:07:55
    Owner Sebastian Huber
    Type enhancement
    Component rtems
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    In case the processor set is not large enough to contain the processor set of the scheduler return RTEMS_INVALID_SIZE instead of RTEMS_INVALID_NUMBER. This is more in line with other directives since the issue is related to the size of an object.

    A similar change was done in #4393.

    Comment 1
    1. Sebastian Huber, Thu, 06 May 2021 13:15:03 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 48898b3/rtems:

    rtems: rtems_scheduler_get_processor_set() status In case the processor set is not large enough to contain the processor set owned by the scheduler return RTEMS_INVALID_SIZE instead of RTEMS_INVALID_NUMBER. This is more in line with other directives since the issue is related to the size of an object. Close #4401.
    Comment 2
    1. Sebastian Huber, Fri, 07 May 2021 06:09:35 GMT

    In 6822af7/rtems:

    rtems: rtems_scheduler_get_processor_set() docs Document changed error status. Update #4401.
    Comment 3
    1. Sebastian Huber, Fri, 07 May 2021 06:19:33 GMT

    In e8cd4d3/rtems-docs:

    c-user: rtems_scheduler_get_processor_set() Document changed error status. Update #4401.
    Comment 4
    1. Sebastian Huber, Wed, 23 Jun 2021 07:07:55 GMT
    2. keywords: qualification added

    4402 - rtemstoolkit/mailer.py option added twice

    Link https://devel.rtems.org/ticket/4402
    Id 4402
    Reporter Alex White
    Created 5 May 2021 14:00:34
    Modified 10 May 2021 16:47:35
    Owner Alex White
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    In the add_arguments function, the intent is that the first two options are added to the arguments before the rest of them are iterated and added. The iteration of the remaining options, however, starts with the first option when it should start with the second.

    Additionally, the order of keys in a dictionary cannot be relied on for all versions of Python we support. The dictionary should be changed to an OrderedDict to preserve key order to facilitate iteration.

    Comment 1
    1. Alex White, Wed, 05 May 2021 14:00:46 GMT
    2. owner: set to Alex White
    3. status: changed from new to accepted
    Comment 2
    1. Alex White, Mon, 10 May 2021 16:47:35 GMT
    2. status: changed from accepted to closed
    3. resolution: set to fixed

    In f18e6d8/rtems-tools:

    rtemstoolkit/mailer.py: Fix option ordering for add_arguments The ordering of keys cannot be guaranteed in a dictionary. This changes the options iteration to no longer rely on key ordering. Closes #4402

    4403 - rtems_timer_fire_when() returns wrong status code when wall_time argument is NULL

    Link https://devel.rtems.org/ticket/4403
    Id 4403
    Reporter Frank Kuehndel
    Created 6 May 2021 14:16:59
    Modified 12 May 2021 04:41:26
    Owner Sebastian Huber
    Type defect
    Component rtems
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity trivial
    Keywords rtems_timer_fire_when, RTEMS_INVALID_CLOCK, wall_time
    Cc  
    Blocking  
    Blocked by  

    Description

    The __RTEMS Classic API Guide__ (​https://docs.rtems.org/branches/master/c-user/timer/directives.html#rtems-timer-fire-when) elaborates for rtems_timer_fire_when():

    RTEMS_INVALID_ADDRESS

    The wall_time parameter was NULL.

    RTEMS_INVALID_CLOCK

    The time of day was invalid.

    Yet, calling rtems_timer_fire_when() with wall_time = NULL and all other parameters valid results in RTEMS_INVALID_CLOCK. Have a look into cpukit/rtems/src/timercreate.c function _Timer_Fire_when() to see the cause for this behavior.

    I attach two patches:

    • sptimer_err01.patch -- extends an existing test to reproduce this issue
    • timercreate.patch -- fixes the issue

    There are at least two ways to handle this bug and I do not want to decide which way to choose:

  • Change the documentation
  • Change the code
  • For the records:

    RTEMS_VERSION    = 6.0.0
    remote origin = git://git.rtems.org/rtems.git
    commit HEAD = 2c5199bb049efe8e29cd12461dc57bd6e30388e8 (HEAD -> master, origin/master, origin/HEAD)
    config.ini =
    [arm/realview_pbx_a9_qemu]
    RTEMS_DEBUG = True
    RTEMS_NETWORKING = True
    RTEMS_POSIX_API = True
    RTEMS_SMP = True
    BUILD_TESTS = True
    NEWLIB_VERSION = 3.2.0
    SOURCE_BUILDER = Set Builder, 6 (5e449fb5c2cb)
    GCC_VERSION = arm-rtems6-gcc (GCC) 10.2.1 20210309 (RTEMS 6, RSB 5e449fb5c2cb6812a238f9f9764fd339cbbf05c2, Newlib d10d0d9)
    BINUTILS_VERSION = GNU ld (GNU Binutils) 2.36.1.20210309

    Attachments:

    1 Frank Kuehndel, Thu, 06 May 2021 14:18:12 GMT
      attach: set to sptimer_err01.patch
     
    2 Frank Kuehndel, Thu, 06 May 2021 14:19:12 GMT
      attach: set to timercreate.patch
     
    Comment 1
    1. Frank Kühndel, Wed, 12 May 2021 04:41:26 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 3af2dc7/rtems:

    _TOD_Validate(): Fix incorrect return code This patch fixes bug #4403. Directives rtems_timer_fire_when() rtems_timer_server_fire_when() rtems_task_wake_when() are documented to return RTEMS_INVALID_ADDRESS when their time-of-day argument is NULL. But actually they return RTEMS_INVALID_CLOCK. To fix the issue this patch changes _TOD_Validate() to return a status code instead of just true/false. Close #4403

    4406 - rtems: Constify rtems_task_wake_when()

    Link https://devel.rtems.org/ticket/4406
    Id 4406
    Reporter Sebastian Huber
    Created 11 May 2021 11:40:31
    Modified 23 June 2021 07:07:55
    Owner Sebastian Huber
    Type enhancement
    Component rtems
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    The time of day pointer can be made constant in this directive.

    Comment 1
    1. Sebastian Huber, Wed, 12 May 2021 19:27:04 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 523867d/rtems:

    rtems: Constify rtems_task_wake_when() Add a parameter to _TOD_Validate() to disable the validation of the ticks member. There are two reasons for this change. Firstly, in rtems_task_wake_when() was a double check for time_buffer == NULL (one in rtems_task_wake_when() and one in _TOD_Validate()). Secondly, the ticks member is ignored by rtems_task_wake_when(). This was done with a write of zero to the ticks member and thus a modification of the user-provided structure. Now the structure is no longer modified. Using a mask parameter is quite efficient. You just have to load an immediate value and there are no additional branches in _TOD_Validate(). Close #4406.
    Comment 2
    1. Sebastian Huber, Wed, 12 May 2021 19:32:26 GMT

    In 2588e8b/rtems-docs:

    c-user: Constify rtems_task_wake_when() Update #4406.
    Comment 3
    1. Sebastian Huber, Fri, 14 May 2021 06:10:25 GMT

    In 45a34953/rtems:

    rtems: Add TOD_Ticks_validation Replace defines with an enum. Update #4406.
    Comment 4
    1. Sebastian Huber, Mon, 17 May 2021 06:05:46 GMT

    In 98cb84e/rtems:

    arm/altera-cyclone-v: Fix compile error Update #4406.
    Comment 5
    1. Sebastian Huber, Wed, 23 Jun 2021 07:07:55 GMT
    2. keywords: qualification added

    4410 - rtems_task_start() does not check that the entry point is not equal to NULL (cloned)

    Link https://devel.rtems.org/ticket/4410
    Id 4410
    Reporter Sebastian Huber
    Created 14 May 2021 07:13:01
    Modified 14 May 2021 07:23:40
    Owner Sebastian Huber
    Type defect
    Component admin
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Cloned from #4409:

    Bug was introduced by commit 33829ce155069462ba410d396da431386369ed08 related to #2555.

    Comment 1
    1. Sebastian Huber, Fri, 14 May 2021 07:23:40 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In b87d2a6/rtems:

    rtems: Check entry point in rtems_task_start() Close #4410.

    4411 - rtems_task_restart() should set the real priority to the initial priority

    Link https://devel.rtems.org/ticket/4411
    Id 4411
    Reporter Sebastian Huber
    Created 14 May 2021 11:58:30
    Modified 23 June 2021 07:07:55
    Owner Sebastian Huber
    Type defect
    Component rtems
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    The rtems_task_restart() directive should set the real priority to the initial priority. If another task is restarted this is only under certain conditions. The RTEMS 4.5.0 behaviour was to unconditionally set the real priority to the initial priority during a task restart.

    Comment 1
    1. Sebastian Huber, Fri, 14 May 2021 12:46:18 GMT
    2. description: modified (diff)
    Comment 2
    1. Sebastian Huber, Fri, 14 May 2021 15:05:27 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In b9083c55/rtems:

    rtems: Always set the real priority during restart Unconditionally set the real priority of the task to its initial priority during a task restart. Close #4411.
    Comment 3
    1. Sebastian Huber, Wed, 23 Jun 2021 07:07:55 GMT
    2. keywords: qualification added

    4412 - Unexpected rtems_task_restart() behaviour if called from within interrrupt context

    Link https://devel.rtems.org/ticket/4412
    Id 4412
    Reporter Sebastian Huber
    Created 14 May 2021 12:49:57
    Modified 23 June 2021 07:07:55
    Owner Sebastian Huber
    Type defect
    Component rtems
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    In rtems_task_restart() there is a check if the executing thread is restarted. However, in interrupt context, this simple check results in an internal error INTERNAL_ERROR_BAD_THREAD_DISPATCH_DISABLE_LEVEL if the executing thread is restarted. Check also if an ISR is in progress to make sure the thread restart works within interrupt context.

    Comment 1
    1. Joel Sherrill, Fri, 14 May 2021 13:01:36 GMT

    This service is not documented as being allowed from an ISR. Only task suspend and resume are documented as allowed. I assume by "works" you mean that it returns an error without an internal error.

    Comment 2
    1. Sebastian Huber, Fri, 14 May 2021 13:08:57 GMT

    The rtems_task_restart() works well if called from within interrupt context if you use _ISR_Is_in_progress() to determine a self restart. This directive doesn't use a mutex internally only ISR locks.

    Comment 3
    1. Sebastian Huber, Fri, 14 May 2021 15:05:31 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 73ebf9a/rtems:

    rtems: Fix task restart within interrupt context rtems_task_restart() may be called from within interrupt context. So checking only that the thread to restart is equal to the executing thread is insufficient to determine a self restart. We have to also check that no ISR is in progress. Merge _Thread_Restart_other() and _Thread_Restart_self() into one _Thread_Restart() since they share a lot of common code. Close #4412.
    Comment 4
    1. Sebastian Huber, Wed, 26 May 2021 12:41:27 GMT

    In de694b75/rtems:

    score: Direct thread dispatch in a self restart Commit 73ebf9a27ed5cd0fd3e0dc0da98345d7faa610a2 accidentally removed the direct thread dispatch in a self thread restart. In case of a self restart (always in task context) the directive shall not return. If this is not possible due to a bad thread dispatch disable level, then a fatal error shall occur. Update #4412.
    Comment 5
    1. Sebastian Huber, Wed, 23 Jun 2021 07:07:55 GMT
    2. keywords: qualification added

    4413 - Allow pthread_cancel() from within interrupt context

    Link https://devel.rtems.org/ticket/4413
    Id 4413
    Reporter Sebastian Huber
    Created 14 May 2021 15:39:21
    Modified 23 June 2021 07:07:55
    Owner Sebastian Huber
    Type enhancement
    Component rtems
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    The pthread_cancel() does not immediately delete resources if invoked for threads other than the executing thread. With minor changes it may be called also from within interrupt context.

    Comment 1
    1. Sebastian Huber, Fri, 14 May 2021 16:35:56 GMT
    2. description: modified (diff)
    3. summary: changed from Allow rtems_task_delete() and pthread_cancel() from within interrupt context to Allow pthread_cancel() from within interrupt context
    Comment 2
    1. Sebastian Huber, Wed, 26 May 2021 12:41:20 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 29187be/rtems:

    posix: Allow pthread_cancel() from within ISRs Close #4413.
    Comment 3
    1. Sebastian Huber, Wed, 23 Jun 2021 07:07:55 GMT
    2. keywords: qualification added

    4414 - Return RTEMS_CALLED_FROM_ISR in rtems_task_delete()

    Link https://devel.rtems.org/ticket/4414
    Id 4414
    Reporter Sebastian Huber
    Created 14 May 2021 16:52:47
    Modified 23 June 2021 07:07:55
    Owner Sebastian Huber
    Type enhancement
    Component rtems
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    Calling rtems_task_delete() from within interrupt context has an unpredictable behaviour. It depends on which thread is interrupted. Return an error status instead.

    Comment 1
    1. Sebastian Huber, Wed, 26 May 2021 12:41:13 GMT

    In b81d1ffd/rtems:

    rtems: Return RTEMS_CALLED_FROM_ISR If rtems_task_delete() is called from within interrupt context, then return RTEMS_CALLED_FROM_ISR. This makes the behaviour predictable. Update #4414.
    Comment 2
    1. Sebastian Huber, Thu, 27 May 2021 05:08:57 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 2509b62/rtems-docs:

    c-user: Document new rtems_task_delete() error Close #4414.
    Comment 3
    1. Sebastian Huber, Thu, 27 May 2021 05:13:14 GMT

    In 2fdd00f/rtems:

    rtems: Document new rtems_task_delete() error Update #4414.
    Comment 4
    1. Sebastian Huber, Wed, 23 Jun 2021 07:07:55 GMT
    2. keywords: qualification added

    4415 - ReportsBase.cc: Division or modulo by float zero error spotted by Coverity

    Link https://devel.rtems.org/ticket/4415
    Id 4415
    Reporter Ryan Long
    Created 17 May 2021 14:47:47
    Modified 29 June 2021 21:01:09
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords Coverity
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1503709: Division or modulo by float zero in WriteSummaryReport?().

    485  percentage = (double) notExecuted;
    CID 1503709 (#1 of 1): Division or modulo by float zero (DIVIDE_BY_ZERO)7. divide_by_zero: In expression percentage /= (double)totalBytes, division by expression totalBytes which may be zero has undefined behavior.
    486 percentage /= (double) totalBytes;
    487 percentage *= 100.0;
    Comment 1
    1. Ryan Long, Tue, 18 May 2021 15:51:04 GMT
    2. keywords: Coverity added
    Comment 2
    1. Ryan Long, Tue, 29 Jun 2021 21:01:09 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In ffbf313/rtems-tools:

    ReportsBase?.cc: Remove possible division by zero CID 1503709: Division or modulo by float zero Closes #4415

    4416 - rtems-exeinfo.cpp: Division or modulo by zero errors spotted by Coverity

    Link https://devel.rtems.org/ticket/4416
    Id 4416
    Reporter Ryan Long
    Created 17 May 2021 15:29:32
    Modified 29 June 2021 21:01:12
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords Coverity
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1503008: Division or modulo by zero in output_inlined().

     CID 1503008 (#1 of 1): Division or modulo by zero (DIVIDE_BY_ZERO)9. divide_by_zero: In expression funcs_inlined.size() * 100UL / total, division by expression total which may be zero has undefined behavior.
    801 std::cout << "inlined funcs : " << funcs_inlined.size () << std::endl
    802 << " total funcs : " << total << std::endl
    803 << " % inline funcs : " << (funcs_inlined.size () * 100) / total << '%'
    804 << std::endl

    CID 1503015: Division or modulo by zero in output_inlined().

     CID 1503015 (#1-2 of 2): Division or modulo by zero (DIVIDE_BY_ZERO)18. divide_by_zero: In expression inlined_size * 100UL / total_size, division by expression total_size which may be zero has undefined behavior.
    805 << " total size : " << total_size << std::endl
    806 << " inline size : " << inlined_size << std::endl
    807 << " % inline size : " << (inlined_size * 100) / total_size << '%'
    808 << std::endl;
    Comment 1
    1. Ryan Long, Tue, 18 May 2021 15:52:11 GMT
    2. keywords: Coverity added
    Comment 2
    1. Ryan Long, Tue, 29 Jun 2021 21:01:12 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 7d3b8ac/rtems-tools:

    rtems-exeinfo.cpp: Fix division by zero errors CID 1503008: Division or modulo by zero CID 1503015: Division or modulo by zero Closes #4416

    4417 - Explanations.cc: Resource leak error spotted by Coverity

    Link https://devel.rtems.org/ticket/4417
    Id 4417
    Reporter Ryan Long
    Created 17 May 2021 16:17:31
    Modified 4 June 2021 17:23:17
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords Coverity
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1399608: Resource leak in load().

    CID 1399608 (#1 of 1): Resource leak (RESOURCE_LEAK)9. leaked_storage: Variable explain going out of scope leaks the storage it points to. 
    Comment 1
    1. Ryan Long, Mon, 17 May 2021 16:21:48 GMT

    Replying to Ryan Long:

    CID 1399608: Resource leak in load().

    CID 1399608 (#1 of 1): Resource leak (RESOURCE_LEAK)9. leaked_storage: Variable explain going out of scope leaks the storage it points to. 

    Also, CID 1399611: Resource leak in load().

    48    while ( 1 ) {
       4. alloc_fn: Storage is returned from allocation function operator new.
       5. var_assign: Assigning: e = storage returned from new Coverage::Explanation.
       CID 1399611 (#2 of 2): Resource leak (RESOURCE_LEAK)21. overwrite_var: Overwriting e in e = new Coverage::Explanation leaks the storage that e points to.
     49      e = new Explanation; 
    Comment 2
    1. Ryan Long, Tue, 18 May 2021 15:53:42 GMT
    2. keywords: Coverity added
    Comment 3
    1. Ryan Long, Fri, 04 Jun 2021 17:23:17 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 9f4887c/rtems-tools:

    Explanations.cc: Fix resource leaks CID 1399608: Resource leak in load(). CID 1399611: Resource leak in load(). Closes #4417

    4418 - GcovData.cc: Resource leak error spotted by Coverity

    Link https://devel.rtems.org/ticket/4418
    Id 4418
    Reporter Ryan Long
    Created 17 May 2021 16:20:07
    Modified 4 June 2021 17:23:22
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords Coverity
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1399610: Resource leak in readFrame().

    250        newFunction = new GcovFunctionData;
    5. noescape: Resource newFunction is not freed or pointed-to in readFunctionFrame. [show details]
    6. Condition !this->readFunctionFrame(header, gcovFile, newFunction), taking true branch.
    251 if ( !readFunctionFrame(header, gcovFile, newFunction) ){
    252 fprintf( stderr, "Error while reading FUNCTION from gcov file...\n" );
    CID 1399610 (#1 of 1): Resource leak (RESOURCE_LEAK)7. leaked_storage: Variable newFunction going out of scope leaks the storage it points to.
    253 return false;
    254 }
    Comment 1
    1. Ryan Long, Tue, 18 May 2021 15:54:12 GMT
    2. keywords: Coverity added
    Comment 2
    1. Ryan Long, Fri, 04 Jun 2021 17:23:22 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 08d9f37/rtems-tools:

    GcovData?.cc: Fix resource leak CID 1399610: Resource leak in readFrame(). Closes #4418

    4419 - TraceReaderLogQEMU.cc: Resource leak error spotted by Coverity

    Link https://devel.rtems.org/ticket/4419
    Id 4419
    Reporter Ryan Long
    Created 17 May 2021 16:28:49
    Modified 4 June 2021 17:23:19
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords Coverity
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1399615: Resource leak in processFile().

    113    //
    114 // Discard Header section
    115 //
    6. noescape: Resource logFile is not freed or pointed-to in ReadUntilFound. [show details]
    7. Condition !ReadUntilFound(logFile, "----------------"), taking true branch.
    116 if (! ReadUntilFound( logFile, QEMU_LOG_SECTION_END ) ) {
    117 fprintf( stderr, "Unable to locate end of log file header\n" );
    CID 1399615 (#2 of 2): Resource leak (RESOURCE_LEAK)8. leaked_storage: Variable logFile going out of scope leaks the storage it points to.
    118 return false;
    Comment 1
    1. Ryan Long, Tue, 18 May 2021 15:54:42 GMT
    2. keywords: Coverity added
    Comment 2
    1. Ryan Long, Fri, 04 Jun 2021 17:23:19 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In dfe012d/rtems-tools:

    TraceReaderLogQEMU.cc: Fix resource leak CID 1399615: Resource leak in processFile(). Closes #4419

    4420 - TraceWriterQEMU.cc: Resource leak error spotted by Coverity

    Link https://devel.rtems.org/ticket/4420
    Id 4420
    Reporter Ryan Long
    Created 17 May 2021 16:35:57
    Modified 4 June 2021 17:23:24
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords Coverity
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1399621: Resource leak in writeFile().

     5. noescape: Resource traceFile is not freed or pointed-to in fwrite.
    116 status = ::fwrite( &header, sizeof(trace_header), 1, traceFile );
    6. Condition status != 1, taking true branch.
    117 if (status != 1) {
    118 std::cerr << "Unable to write header to " << file << std::endl;
    CID 1399621 (#1 of 1): Resource leak (RESOURCE_LEAK)7. leaked_storage: Variable traceFile going out of scope leaks the storage it points to.
    119 return false;
    Comment 1
    1. Ryan Long, Tue, 18 May 2021 15:55:13 GMT
    2. keywords: Coverity added
    Comment 2
    1. Ryan Long, Fri, 04 Jun 2021 17:23:24 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In a0b54f0/rtems-tools:

    TraceWriterQEMU.cc: Fix resource leak CID 1399621: Resource leak in writeFile(). Closes #4420

    4421 - DesiredSymbols.cc: Resource leak error spotted by Coverity

    Link https://devel.rtems.org/ticket/4421
    Id 4421
    Reporter Ryan Long
    Created 17 May 2021 16:48:44
    Modified 4 June 2021 17:23:26
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords Coverity
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1503018: Resource leak in load().

     13. alloc_fn: Storage is returned from allocation function operator new.
    14. noescape: Resource new Coverage::SymbolInformation is not freed or pointed-to in operator =. [show details]
    CID 1503018 (#2 of 2): Resource leak (RESOURCE_LEAK)15. leaked_storage: Failing to save or free storage allocated by new Coverage::SymbolInformation leaks it.
    104 set[sym.name()] = *(new SymbolInformation);
    Comment 1
    1. Ryan Long, Tue, 18 May 2021 15:55:40 GMT
    2. keywords: Coverity added
    Comment 2
    1. Ryan Long, Fri, 04 Jun 2021 17:23:26 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 9527f65/rtems-tools:

    DesiredSymbols?.cc: Fix resource leak CID 1503018: Resource leak in load(). Closes #4421

    4422 - ReportsBase.cc: Resource leak error spotted by Coverity

    Link https://devel.rtems.org/ticket/4422
    Id 4422
    Reporter Ryan Long
    Created 17 May 2021 16:50:30
    Modified 4 June 2021 17:23:28
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords Coverity
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1503711: Resource leak in WriteSummaryReport?().

    548    fprintf(
    549 report,
    550 "Percentage branch paths covered : %4.4g\n",
    551 100.0 - percentageBranches
    552 );
    553 }
    CID 1503711 (#1 of 1): Resource leak (RESOURCE_LEAK)34. leaked_storage: Variable report going out of scope leaks the storage it points to.
    554}
    555
    Comment 1
    1. Ryan Long, Tue, 18 May 2021 15:56:04 GMT
    2. keywords: Coverity added
    Comment 2
    1. Ryan Long, Fri, 04 Jun 2021 17:23:28 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 52780608/rtems-tools:

    ReportsBase?.cc: Fix Resource leak CID 1503711: Resource leak in WriteSummaryReport?(). Closes #4422

    4423 - record-client.c: Unchecked return value error spotted by Coverity

    Link https://devel.rtems.org/ticket/4423
    Id 4423
    Reporter Ryan Long
    Created 17 May 2021 19:14:04
    Modified 30 September 2021 16:07:40
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords Coverity
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1503011: Unchecked return value in resolve_hold_back().

    191    for ( index = begin_index; index < per_cpu->item_index; ++index ) {
    192 const rtems_record_item_64 *item;
    193
    194 item = &per_cpu->items[ index ];
    CID 1503011 (#1 of 1): Unchecked return value (CHECKED_RETURN)12. check_return: Calling visit without checking return value (as is done elsewhere 4 out of 5 times).
    195 visit( ctx, item->event, item->data );
    Comment 1
    1. Ryan Long, Tue, 18 May 2021 15:56:40 GMT
    2. keywords: Coverity added
    Comment 2
    1. Ryan Long, Thu, 30 Sep 2021 16:07:40 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 7c37893/rtems-tools:

    record-client.c: Ignore return value from visit() CID 1503011: Unchecked return value in resolve_hold_back(). Closes #4423

    4424 - rtems-bin2c.c: Copy into fixed size buffer spotted by Coverity

    Link https://devel.rtems.org/ticket/4424
    Id 4424
    Reporter Ryan Long
    Created 17 May 2021 20:57:47
    Modified 29 September 2021 14:58:29
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords Coverity
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1063892: Copy into fixed size buffer in process().

    141  char *ifbasename;
    142 ifbasename = basename(ifbasename_to_free);
    143
    CID 1063892 (#1 of 1): Copy into fixed size buffer (STRING_OVERFLOW)13. fixed_size_dest: You might overrun the 1025-character fixed-size string buf by copying ifbasename without checking the length.
    144 strcpy(buf, ifbasename);
    Comment 1
    1. Ryan Long, Tue, 18 May 2021 15:57:16 GMT
    2. keywords: Coverity added
    Comment 2
    1. Ryan Long, Wed, 29 Sep 2021 14:58:29 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 05dab02/rtems-tools:

    rtems-bin2c.c: Check length of buffer to be copied
    CID 1063892: Copy into fixed size buffer in process().
    Closes #4424

    4425 - GcovFunctionData.cc: Copy into fixed size buffer errors spotted by Coverity

    Link https://devel.rtems.org/ticket/4425
    Id 4425
    Reporter Ryan Long
    Created 17 May 2021 21:51:03
    Modified 16 December 2021 20:49:57
    Owner  
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords Coverity
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1063892: Copy into fixed size buffer in addBlock().

     CID 1399613 (#1 of 1): Copy into fixed size buffer (STRING_OVERFLOW)1. fixed_size_dest: You might overrun the 256-character fixed-size string block.sourceFileName by copying sourceFileName without checking the length.
    2. parameter_as_source: Note: This defect has an elevated risk because the source argument is a parameter of the current function.
    184 strcpy (block.sourceFileName, sourceFileName);

    CID 1399616: Copy into fixed size buffer in setBlockFileName().

     CID 1399616 (#1 of 1): Copy into fixed size buffer (STRING_OVERFLOW)1. fixed_size_dest: You might overrun the 256-character fixed-size string block->sourceFileName by copying fileName without checking the length.
    2. parameter_as_source: Note: This defect has an elevated risk because the source argument is a parameter of the current function.
    298 strcpy(block->sourceFileName, fileName);
    Comment 1
    1. Ryan Long, Mon, 17 May 2021 21:57:02 GMT

    Replying to Ryan Long:

    CID 1063892: Copy into fixed size buffer in addBlock().

    CID is actually 1399613

     CID 1399613 (#1 of 1): Copy into fixed size buffer (STRING_OVERFLOW)1. fixed_size_dest: You might overrun the 256-character fixed-size string block.sourceFileName by copying sourceFileName without checking the length.
       2. parameter_as_source: Note: This defect has an elevated risk because the source argument is a parameter of the current function.
    184    strcpy (block.sourceFileName, sourceFileName); 

    CID 1399616: Copy into fixed size buffer in setBlockFileName().

     CID 1399616 (#1 of 1): Copy into fixed size buffer (STRING_OVERFLOW)1. fixed_size_dest: You might overrun the 256-character fixed-size string block->sourceFileName by copying fileName without checking the length.
       2. parameter_as_source: Note: This defect has an elevated risk because the source argument is a parameter of the current function.
    298    strcpy(block->sourceFileName, fileName); 
    Comment 2
    1. Ryan Long, Tue, 18 May 2021 15:57:49 GMT
    2. keywords: Coverity added
    Comment 3
    1. Ryan Long, Thu, 16 Dec 2021 20:49:57 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed

    4426 - clock_nanosleep() may use wrong clock for relative times

    Link https://devel.rtems.org/ticket/4426
    Id 4426
    Reporter Sebastian Huber
    Created 18 May 2021 11:09:45
    Modified 23 June 2021 07:07:55
    Owner Sebastian Huber
    Type defect
    Component posix
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    For relative times, the clock identifier is not used to select the clock and instead always the CLOCK_MONOTONIC is used. A side-effect is that sleep() and nanosleep() use the wrong clock (CLOCK_MONOTONIC instead of CLOCK_REALTIME).

    Comment 1
    1. Sebastian Huber, Tue, 18 May 2021 11:55:05 GMT
    2. description: modified (diff)
    Comment 2
    1. Sebastian Huber, Tue, 18 May 2021 18:32:39 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 24c62932/rtems:

    posix: Fix use of clock for relative times Close #4426.
    Comment 3
    1. Sebastian Huber, Wed, 23 Jun 2021 07:07:55 GMT
    2. keywords: qualification added

    4427 - GcovData.cc: Dereference after null check error spotted by Coverity

    Link https://devel.rtems.org/ticket/4427
    Id 4427
    Reporter Ryan Long
    Created 18 May 2021 16:19:41
    Modified 4 August 2021 17:59:59
    Owner  
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords Coverity
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1399597: Dereference after null check in readGcnoFile().

     53    strcpy( gcnoFileName, fileName );
    54 strcpy( gcdaFileName, fileName );
    55 strcpy( textFileName, fileName );
    56 strcpy( cFileName, fileName );
    57 tempString = strstr( gcdaFileName,".gcno" );
    58 tempString2 = strstr( textFileName,".gcno" );
    59 tempString3 = strstr( cFileName,".gcno" );
    60
    2. Condition tempString == NULL, taking true branch.
    3. var_compare_op: Comparing tempString to null implies that tempString might be null.
    4. Condition tempString2 == NULL, taking false branch.
    61 if ( (tempString == NULL) && (tempString2 == NULL) ){
    62 fprintf(stderr, "ERROR: incorrect name of *.gcno file\n");
    63 }
    64 else
    65 {
    CID 1399597 (#1 of 1): Dereference after null check (FORWARD_NULL)5. var_deref_model: Passing null pointer tempString to strcpy, which dereferences it.
    66 strcpy( tempString, ".gcda"); // construct gcda file name
    67 strcpy( tempString2, ".txt"); // construct report file name
    68 strcpy( tempString3, ".c"); // construct source file name
    69 }
    Comment 1
    1. Ryan Long, Wed, 04 Aug 2021 17:59:59 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed

    4428 - ReportsBase.cc: Dereference after null check error spotted by Coverity

    Link https://devel.rtems.org/ticket/4428
    Id 4428
    Reporter Ryan Long
    Created 18 May 2021 16:24:15
    Modified 7 October 2021 14:29:59
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords Coverity
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1503710: Dereference after null check in WriteAnnotatedReport?().

     12. var_compare_op: Comparing info.uncoveredRanges to null implies that info.uncoveredRanges might be null.
    13. Condition info.uncoveredBranches == NULL, taking false branch.
    219 if ((info.uncoveredRanges == NULL) &&
    220 (info.uncoveredBranches == NULL))
    5. Continuing loop.
    9. Continuing loop.
    221 continue;
    222
    223 // If uncoveredRanges and uncoveredBranches are empty, then everything
    224 // must have been covered for this symbol. Just skip it.
    CID 1503710 (#1 of 1): Dereference after null check (FORWARD_NULL)14. var_deref_model: Passing null pointer info.uncoveredRanges->set to empty, which dereferences it. [show details]
    225 if ((info.uncoveredRanges->set.empty()) &&
    226 (info.uncoveredBranches->set.empty()))
    227 continue;
    Comment 1
    1. Ryan Long, Thu, 07 Oct 2021 14:29:59 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 7245050/rtems-tools:

    ReportsBase?.cc: Add assert for member variables The uncoveredRanges and uncoveredBranch member variables are allocated as a pair. They are both either NULL or not NULL. Coverity does not know this though, so this assert is added to ensure they are not NULL before being dereferenced. CID 1503710: Dereference after null check Closes #4428

    4430 - DesiredSymbols.cc: Uninitialized pointer read error spotted by Coverity

    Link https://devel.rtems.org/ticket/4430
    Id 4430
    Reporter Ryan Long
    Created 19 May 2021 14:14:38
    Modified 4 August 2021 18:04:04
    Owner  
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords Coverity
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1503005: Uninitialized pointer read in load().

    111        if (sym.type() == sym.st_func) {
    20. alloc_fn: Calling operator new which returns uninitialized memory.
    CID 1503005 (#2 of 2): Uninitialized pointer read (UNINIT)21. uninit_use_in_call: Using uninitialized value (new Coverage::SymbolInformation).sourceFile when calling operator =. [show details]
    112 set[sym.name()] = *(new SymbolInformation);
    Comment 1
    1. Ryan Long, Wed, 04 Aug 2021 18:04:04 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed

    4432 - GcovFunctionData.cc: Uninitialized pointer field error spotted by coverity

    Link https://devel.rtems.org/ticket/4432
    Id 4432
    Reporter Ryan Long
    Created 19 May 2021 16:08:42
    Modified 27 September 2021 22:18:28
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords Coverity
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1399640: Uninitialized pointer field in GcovFunctionData?().

     20  GcovFunctionData::GcovFunctionData()
    21 {
    22 numberOfArcs = 0;
    23 numberOfBlocks = 0;
    24 coverageMap = NULL;
    2. uninit_member: Non-static class member id is not initialized in this constructor nor in any functions that it calls.
    4. uninit_member: Non-static class member checksum is not initialized in this constructor nor in any functions that it calls.
    6. uninit_member: Non-static class member firstLineNumber is not initialized in this constructor nor in any functions that it calls.
    CID 1399640 (#1 of 1): Uninitialized pointer field (UNINIT_CTOR)8. uninit_member: Non-static class member symbolInfo is not initialized in this constructor nor in any functions that it calls.
    25 }
    Comment 1
    1. Ryan Long, Wed, 19 May 2021 16:09:58 GMT
    2. summary: changed from DesiredSymbols.h: Uninitialized pointer field error spotted by coverity to GcovFunctionData.cc: Uninitialized pointer field error spotted by coverity
    Comment 2
    1. Ryan Long, Mon, 27 Sep 2021 22:18:28 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 247d39a/rtems-tools:

    GcovFunctionData?.cc: Initialize member variables CID 1399640: Uninitialized pointer field Closes #4432

    4433 - DesiredSymbols.h: Uninitialized pointer field error spotted by coverity

    Link https://devel.rtems.org/ticket/4433
    Id 4433
    Reporter Ryan Long
    Created 19 May 2021 16:13:54
    Modified 27 September 2021 22:18:26
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1399637: Uninitialized pointer field in SymbolInformation?().

    176    SymbolInformation() :
    177 baseAddress( 0 ),
    178 uncoveredBranches( NULL ),
    179 uncoveredRanges( NULL ),
    180 unifiedCoverageMap( NULL )
    181 {
    CID 1399637 (#1 of 1): Uninitialized pointer field (UNINIT_CTOR)2. uninit_member: Non-static class member sourceFile is not initialized in this constructor nor in any functions that it calls.
    182 }
    Comment 1
    1. Ryan Long, Mon, 27 Sep 2021 22:18:26 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 06a39db/rtems-tools:

    DesiredSymbols?.h: Initialize symbolInfo CID 1399627: Uninitialized pointer field Closes #4433

    4434 - record-filter-zlib.cc: Uninitialized pointer field error spotted by Coverity

    Link https://devel.rtems.org/ticket/4434
    Id 4434
    Reporter Ryan Long
    Created 19 May 2021 16:29:34
    Modified 27 September 2021 22:18:30
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1503020: Uninitialized pointer field in ZlibFilter?().

    36ZlibFilter::ZlibFilter() : buffer_(65536)
    37{
    CID 1503013: Unchecked return value from library (CHECKED_RETURN) [select issue]
    38 inflateInit(&stream_);
    2. uninit_member: Non-static class member stream_.next_in is not initialized in this constructor nor in any functions that it calls.
    4. uninit_member: Non-static class member stream_.avail_in is not initialized in this constructor nor in any functions that it calls.
    6. uninit_member: Non-static class member stream_.total_in is not initialized in this constructor nor in any functions that it calls.
    8. uninit_member: Non-static class member stream_.next_out is not initialized in this constructor nor in any functions that it calls.
    10. uninit_member: Non-static class member stream_.avail_out is not initialized in this constructor nor in any functions that it calls.
    12. uninit_member: Non-static class member stream_.total_out is not initialized in this constructor nor in any functions that it calls.
    14. uninit_member: Non-static class member stream_.msg is not initialized in this constructor nor in any functions that it calls.
    16. uninit_member: Non-static class member stream_.zalloc is not initialized in this constructor nor in any functions that it calls.
    18. uninit_member: Non-static class member stream_.zfree is not initialized in this constructor nor in any functions that it calls.
    20. uninit_member: Non-static class member stream_.opaque is not initialized in this constructor nor in any functions that it calls.
    22. uninit_member: Non-static class member stream_.data_type is not initialized in this constructor nor in any functions that it calls.
    24. uninit_member: Non-static class member stream_.adler is not initialized in this constructor nor in any functions that it calls.
    CID 1503020 (#1 of 1): Uninitialized pointer field (UNINIT_CTOR)26. uninit_member: Non-static class member stream_.reserved is not initialized in this constructor nor in any functions that it calls.
    39}
    Comment 1
    1. Ryan Long, Mon, 27 Sep 2021 22:18:30 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 7b5dc22/rtems-tools:

    record-filter-zlib.cc: Initialize stream_'s fields CID 1503020: Uninitialized pointer field Closes #4434

    4435 - Thread cancellation may produce ready threads with an active thread timer

    Link https://devel.rtems.org/ticket/4435
    Id 4435
    Reporter Sebastian Huber
    Created 20 May 2021 15:15:13
    Modified 23 June 2021 07:07:55
    Owner Sebastian Huber
    Type defect
    Component score
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    The _Thread_Cancel() (in contrast to _Thread_Restart() which uses a similar code block) may produce ready threads with an active timer in case the thread to cancel has its thread life protection enabled. The problem is this code block:

     Priority_Control priority;
    _Thread_Add_life_change_request( the_thread );
    if ( _Thread_Is_life_change_allowed( previous ) ) {
    _Thread_State_release( the_thread, &lock_context );
    _Thread_queue_Extract_with_proxy( the_thread );
    _Thread_Timer_remove( the_thread );
    } else {
    _Thread_Clear_state_locked( the_thread, STATES_SUSPENDED );
    _Thread_State_release( the_thread, &lock_context );
    }
    priority = _Thread_Get_priority( executing );
    _Thread_Raise_real_priority( the_thread, priority );
    _Thread_Remove_life_change_request( the_thread );

    The life change request should only be added/removed if a life change is allowed (see _Thread_Restart()).

    Comment 1
    1. Sebastian Huber, Wed, 26 May 2021 12:41:24 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In ce6319a/rtems:

    score: Fix _Thread_Cancel() The _Thread_Cancel() (in contrast to _Thread_Restart() which used a similar code block) may have produced ready threads with an active timer in case the thread to cancel had its thread life protection enabled. The problem was this code block:
    Priority_Control priority;
    _Thread_Add_life_change_request( the_thread );
    if ( _Thread_Is_life_change_allowed( previous ) ) {
    _Thread_State_release( the_thread, &lock_context );
    _Thread_queue_Extract_with_proxy( the_thread ); _Thread_Timer_remove( the_thread );
    } else {
    _Thread_Clear_state_locked( the_thread, STATES_SUSPENDED ); _Thread_State_release( the_thread, &lock_context );
    }
    priority = _Thread_Get_priority( executing ); _Thread_Raise_real_priority( the_thread, priority ); _Thread_Remove_life_change_request( the_thread );
    The life change request should only be added/removed if a life change is allowed (see _Thread_Restart()). Add _Thread_Try_life_change_request() and use it in _Thread_Cancel() and _Thread_Restart(). Close #4435.
    Comment 2
    1. Sebastian Huber, Wed, 23 Jun 2021 07:07:55 GMT
    2. keywords: qualification added

    4437 - powerpc/shared/sbrk.c: Do not reference errno

    Link https://devel.rtems.org/ticket/4437
    Id 4437
    Reporter Joel Sherrill
    Created 21 May 2021 21:24:50
    Modified 16 December 2021 16:32:43
    Owner  
    Type defect
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Using errno implicitly references the newlib reentrancy structure. Changing this eliminates one reason the reentrancy code may be pulled into minimum.exe.

    Comment 1
    1. Kinsey Moore, Thu, 16 Dec 2021 16:32:43 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed

    This should have been closed by 402a206a1b1ff984b14c3321f0bc1340c4873147 but the close tag was malformed.


    4438 - powerpc/shared/irq/ppc-irq-legacy.c: Use rtems_malloc() not malloc()

    Link https://devel.rtems.org/ticket/4438
    Id 4438
    Reporter Joel Sherrill
    Created 21 May 2021 21:24:57
    Modified 25 May 2021 13:33:50
    Owner Joel Sherrill <joel@…>
    Type defect
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    malloc() is required to set errno which implicitly references the newlib reentrancy structure. Changing this eliminates one reason the reentrancy code may be pulled into minimum.exe.

    Comment 1
    1. Joel Sherrill, Tue, 25 May 2021 13:33:50 GMT
    2. owner: set to Joel Sherrill <joel@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In f9d59075/rtems:

    ppc-irq-legacy.c: Use rtems_malloc() instead of malloc(). Closes #4438.

    4439 - Open of /dev/console should only be in SysInit List if Console Enabled

    Link https://devel.rtems.org/ticket/4439
    Id 4439
    Reporter Joel Sherrill
    Created 21 May 2021 21:28:46
    Modified 25 May 2021 13:33:57
    Owner Joel Sherrill <joel@…>
    Type defect
    Component rtems
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The current code implicitly requires that the code to open /dev/console be included in the system initialization set anytime a dependency exists on the newlib reentrancy structure. This means that referencing errno pulls in at least open(), libio code, close(), atexit(), and unmount support.

    This was shown to result in about 20K of text an 5K of data being included in powerpc/psim minimum.exe. A similar impact would happen on all BSPs.

    Comment 1
    1. Joel Sherrill, Tue, 25 May 2021 13:33:57 GMT
    2. owner: set to Joel Sherrill <joel@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 76d5722b/rtems:

    sysinit: Do not open console when just referencing reentrancy structure. This change eliminates a system initialization dependentcy which resulted in an application without a file system or console referencing errno being forced to include the code to open(/dev/console), close(), atexit(), and the unmount infrastructure. Closes #4439.

    4442 - CID 1399721: Copy into fixed size buffer

    Link https://devel.rtems.org/ticket/4442
    Id 4442
    Reporter Harrison Gerber
    Created 26 May 2021 17:52:45
    Modified 26 May 2021 22:45:46
    Owner Gedare Bloom
    Type defect
    Component lib
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority low
    Severity normal
    Keywords coverity
    Cc  
    Blocking  
    Blocked by  

    Description

    In pci_cfg_print_device: A source buffer of statically unknown size is copied into a fixed-size destination buffer (CWE-120)

    Comment 1
    1. Gedare Bloom, Wed, 26 May 2021 18:10:12 GMT
    2. status: changed from new to accepted
    3. severity: changed from minor to normal
    4. component: changed from admin to lib
    5. owner: set to Gedare Bloom
    6. milestone: set to 6.1
    7. keywords: coverity added
    Comment 2
    1. Harrison Edward Gerber, Wed, 26 May 2021 22:45:46 GMT
    2. status: changed from accepted to closed
    3. resolution: set to fixed

    In e2011dc/rtems:

    cpukit/libpci: fix potential buffer overflow in pci_cfg_print_code.c See also CID 1399721 Closes #4442

    4444 - CID 1399727: Copy into fixed size buffer

    Link https://devel.rtems.org/ticket/4444
    Id 4444
    Reporter Harrison Gerber
    Created 26 May 2021 22:21:33
    Modified 28 May 2021 22:00:54
    Owner Gedare Bloom
    Type defect
    Component rtems
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    In rtems_monitor_line_editor: A source buffer of statically unknown size is copied into a fixed-size destination buffer (CWE-120)

    NOTE: Issue is more regarding source/dest overlapping with use of strcpy: needs change to use memory copy for overlapping source/dest

    Comment 1
    1. Harrison Edward Gerber, Fri, 28 May 2021 22:00:54 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 6a56fd9/rtems:

    cpukit/libmisc/monitor: Fix src/dest overlap of strcpy in mon-editor.c See also CID 1399727 Closes #4444

    4445 - CID 1468684: Uninitialized scalar variable

    Link https://devel.rtems.org/ticket/4445
    Id 4445
    Reporter Harrison Gerber
    Created 26 May 2021 23:20:54
    Modified 2 June 2021 15:31:59
    Owner Gedare Bloom
    Type defect
    Component lib/debugger
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    In tcp_remote_connect: Use of an uninitialized variable (CWE-457)

    Comment 1
    1. Harrison Edward Gerber, Wed, 02 Jun 2021 15:31:59 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 9429115c/rtems:

    cpukit/libdebugger: Fix for sockaddr_in not being initialized See also CID 1468684 Closes #4445

    4448 - covoar reports uncovered ranges of size 1

    Link https://devel.rtems.org/ticket/4448
    Id 4448
    Reporter Alex White
    Created 2 June 2021 14:15:25
    Modified 4 June 2021 19:25:14
    Owner Alex White
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords coverage, covoar
    Cc  
    Blocking  
    Blocked by  

    Description

    The uncovered range reports produced by covoar for the ARM architecture contain ranges of size 1. When clicked, they link to instructions that appears to be covered.

    This should be fixed to remove these erroneous ranges.

    Comment 1
    1. Alex White, Wed, 02 Jun 2021 14:15:35 GMT
    2. owner: set to Alex White
    3. status: changed from new to accepted
    Comment 2
    1. Alex White, Fri, 04 Jun 2021 19:25:14 GMT
    2. status: changed from accepted to closed
    3. resolution: set to fixed

    In c17664f/rtems-tools:

    covoar: Fix single-byte uncovered ranges This fixes a bug where covoar reports uncovered ranges of size 1. When a NOP instruction is encountered at the end of a function, the remaining non-instruction bytes are marked as executed. The loop that marks the remaining bytes as executed was not considering the last address of the function. Closes #4448

    4451 - DesiredSymbols: Implement move assignment operator

    Link https://devel.rtems.org/ticket/4451
    Id 4451
    Reporter Ryan Long
    Created 8 June 2021 13:49:28
    Modified 16 September 2021 17:30:05
    Owner  
    Type defect
    Component tool
    Status closed
    Resolution wontfix
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1505133: Missing move assignment operator for SymbolInformation? class.

    128   */
    CID 1505133 (#1 of 1): Missing move assignment operator (MISSING_MOVE_ASSIGNMENT)missing_move_assignment: Class Coverage::SymbolInformation may benefit from adding a move assignment operator. See other events which show the copy assignment operator being applied to rvalues, where a move assignment may be faster.
    129 class SymbolInformation {
    Comment 1
    1. Ryan Long, Thu, 16 Sep 2021 17:30:05 GMT
    2. status: changed from new to closed
    3. resolution: set to wontfix

    4453 - Global vs Local Attribute Unclear for SMP/Distributed MP

    Link https://devel.rtems.org/ticket/4453
    Id 4453
    Reporter Joel Sherrill
    Created 9 June 2021 18:31:46
    Modified 7 December 2022 18:22:01
    Owner Joel Sherrill
    Type enhancement
    Component doc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The description for global vs local attributes on objects do not make it clear whether they apply to SMP or distributed multiprocessing configuration. This applies to at least the rtems_task_create description but likely needs to be addressed in the description in every create with global/local and in the SMP section.

    Comment 1
    1. Sebastian Huber, Thu, 10 Jun 2021 13:28:04 GMT

    In the rtems_task_create() description we have:

    The task has a local or global scope in a multiprocessing network (this attribute does not refer to SMP systems). The scope is selected by the mutually exclusive RTEMS_LOCAL and RTEMS_GLOBAL attributes.

    Maybe we should add local scope and global scope glossary terms. Maybe we should replace scope with something more specific.

    Comment 2
    1. Chris Johns, Tue, 29 Nov 2022 23:43:13 GMT
    2. owner: set to Joel Sherrill
    3. status: changed from new to assigned
    Comment 3
    1. Joel Sherrill, Wed, 07 Dec 2022 18:22:01 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 32de9ff/rtems-docs:

    c-user: Add Local vs Global to Key Concepts Chapter Add multiple new index entries and cite them where RTEMS_LOCAL and RTEMS_GLOBAL are cited. Closes #4453.

    4454 - bsps/i386: TSC calibration inaccurate

    Link https://devel.rtems.org/ticket/4454
    Id 4454
    Reporter Jan Sommer
    Created 11 June 2021 06:31:44
    Modified 6 January 2022 08:35:21
    Owner  
    Type defect
    Component bsps
    Status closed
    Resolution duplicate
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords i386 clock
    Cc  
    Blocking  
    Blocked by  

    Description

    The current implementation of the TSC calibration during startup yields inaccurate results.

    There are 2 issues:

    1. Rounding error:

    The calibrate_tsc function calibrates for 1s by waiting for rtems_clock_get_ticks_per_second() ticks via the PIT.

    The PIT has a frequency of 1193182 Hz. For a rtems tick of 1ms this yields 1193. Waiting for 1s means then waiting for 1193000 PIT ticks (instead of the full 1193182).
    For a 1 GHz TSC clock this would yield already ~150 kHz less then the correct TSC frequency.

    2. Waiting for the first loop at begin of timer period
    for (i = rtems_clock_get_ticks_per_second() * pc386_isrs_per_tick;
    i != 0; --i ) {
    /* We know we've just completed a tick when timer goes from low to high */
    then_lsb = then_msb = 0xff;
    do { <== First loop does not start at begin of clock period
    READ_8254(now_lsb, now_msb);
    if ((then_msb < now_msb) ||
    ((then_msb == now_msb) && (then_lsb < now_lsb)))
    break;
    then_lsb = now_lsb;
    then_msb = now_msb;
    } while (1);
    }

    This can yield deviations of several MHz for the TSC frequency.
    For example, for a tested CPU with a TSC frequency of 19167.1 MHz yields a calibration result of 1912.3 MHz.

    Proposed solution
    • Just wait 1193182 PIT ticks for 1 s instead of a number of rtems ticks
    • Use the raw timer value instead of waiting for clock ticks.
    Comment 1
    1. Joel Sherrill, Fri, 17 Dec 2021 17:21:14 GMT
    2. component: changed from admin to bsps

    Any progress on this?

    Comment 2
    1. Jan Sommer, Thu, 06 Jan 2022 08:35:02 GMT

    Seems I created this ticket twice by accident. It is a duplicate of #4455 which was fixed by this commit ​https://git.rtems.org/rtems/commit/?id=93f96455957a943f1a4c17655a09612a93a34bf4 .

    Comment 3
    1. Jan Sommer, Thu, 06 Jan 2022 08:35:21 GMT
    2. status: changed from new to closed
    3. resolution: set to duplicate

    4455 - bsps/i386: TSC calibration inaccurate

    Link https://devel.rtems.org/ticket/4455
    Id 4455
    Reporter Jan Sommer
    Created 11 June 2021 06:31:54
    Modified 21 June 2021 08:11:43
    Owner Jan Sommer
    Type defect
    Component admin
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords i386 clock
    Cc  
    Blocking  
    Blocked by  

    Description

    The current implementation of the TSC calibration during startup yields inaccurate results.

    There are 2 issues:

    1. Rounding error:

    The calibrate_tsc function calibrates for 1s by waiting for rtems_clock_get_ticks_per_second() ticks via the PIT.

    The PIT has a frequency of 1193182 Hz. For a rtems tick of 1ms this yields 1193. Waiting for 1s means then waiting for 1193000 PIT ticks (instead of the full 1193182).
    For a 1 GHz TSC clock this would yield already ~150 kHz less then the correct TSC frequency.

    2. Waiting for the first loop at begin of timer period
    for (i = rtems_clock_get_ticks_per_second() * pc386_isrs_per_tick;
    i != 0; --i ) {
    /* We know we've just completed a tick when timer goes from low to high */
    then_lsb = then_msb = 0xff;
    do { <== First loop does not start at begin of clock period
    READ_8254(now_lsb, now_msb);
    if ((then_msb < now_msb) ||
    ((then_msb == now_msb) && (then_lsb < now_lsb)))
    break;
    then_lsb = now_lsb;
    then_msb = now_msb;
    } while (1);
    }

    This can yield deviations of several MHz for the TSC frequency.
    For example, for a tested CPU with a TSC frequency of 19167.1 MHz yields a calibration result of 1912.3 MHz.

    Proposed solution
    • Just wait 1193182 PIT ticks for 1 s instead of a number of rtems ticks
    • Use the raw timer value instead of waiting for clock ticks.
    Comment 1
    1. Jan Sommer, Fri, 11 Jun 2021 06:32:17 GMT
    2. owner: set to Jan Sommer
    3. status: changed from new to accepted
    Comment 2
    1. Jan Sommer, Mon, 21 Jun 2021 08:11:43 GMT
    2. status: changed from accepted to closed
    3. resolution: set to fixed

    In 93f9645/rtems:

    bsps/i386: Update calibration of TSC to be more accurate Closes #4455

    4458 - Simplify trap table initialization

    Link https://devel.rtems.org/ticket/4458
    Id 4458
    Reporter Sebastian Huber
    Created 18 June 2021 13:57:12
    Modified 15 June 2023 17:43:50
    Owner Sebastian Huber
    Type enhancement
    Component arch/sparc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    Currently, the trap table is statically initialized (see start.S). Unexpected traps end up in system error mode. Later during startup most traps are changed to jump to _ISR_Handler(). This is a side-effect of bsp_spurious_initialize(). The used functions for this dynamic initialization are a bit complex and need cache manager directives which involve all online processors. This should be simplified to cover only basic requirements.

  • The _ISR_Vector_table should be initialized by _CPU_Initialize_vectors() to an new default handler _SPARC_ISR_handler_default() which just invokes _Terminate().
  • The traps associated with external interrupts (0x11 up to including 0x1f) should be statically initialized in start.S to jump to _ISR_Handler().
  • Standard synchronous exceptions such as
    • 0x01 instruction access exception
    • 0x02 illegal instruction
    • 0x03 privileged instruction
    • 0x04 fp disabled
    • 0x07 memory address not aligned
    • 0x08 fp exception
    • 0x09 data access exception
    • 0x0A tag overflow
    • 0x24 cp_disabled
    • 0x28 cp_exception
  • should also be statically initialize to jump to _ISR_Handler() to invoke the fatal error handler.

    If software needs to change the default initialization, then it can use set_vector() or alternatives on demand.

    Comment 1
    1. Sebastian Huber, Fri, 18 Jun 2021 15:20:54 GMT
    2. description: modified (diff)
    Comment 2
    1. Sebastian Huber, Fri, 18 Jun 2021 15:22:45 GMT
    2. description: modified (diff)
    Comment 3
    1. Sebastian Huber, Thu, 24 Jun 2021 10:30:27 GMT

    In 7a140e2/rtems:

    bsps/sparc: Add a symbol for each trap table entry This makes it easier to review start.o and set break points to trap table entries. This change was checked by inspecting the trap table in start.o with objdump. Update #4458.
    Comment 4
    1. Sebastian Huber, Thu, 24 Jun 2021 10:30:30 GMT

    In 955c045b/rtems:

    sparc: Move ISR handler install routines Move _CPU_ISR_install_raw_handler() and _CPU_ISR_install_vector() to separate files. The goal is to make their use optional. Update #4458. Update #4459.
    Comment 5
    1. Sebastian Huber, Thu, 24 Jun 2021 10:30:37 GMT

    In 5c30e3d3/rtems:

    bsps/sparc: Use rtems_interrupt_handler_install() Avoid using set_vector() which depends on _ISR_Vector_table(). Prepare for a statically initialized trap table. Update #4458.
    Comment 6
    1. Sebastian Huber, Thu, 24 Jun 2021 10:30:40 GMT

    In b9d5f516/rtems:

    sparc: Move FP frame offset defines to cpuimpl.h This makes them usable in multiple files. Update #4458.
    Comment 7
    1. Sebastian Huber, Thu, 24 Jun 2021 10:30:47 GMT

    In be96cb43/rtems:

    sparc: Simplify trap table initialization Move _ISR_Handler() to a separate file since it is now only used if a handler is installed by _CPU_ISR_install_raw_handler(). Statically initialize the traps for external interrupts to use the new _SPARC_Interrupt_trap() which directly dispatches the interrupt handlers installed by rtems_interrupt_handler_install() via the BSP-provided _SPARC_Interrupt_dispatch(). Since the trap table is now fully statically initialized, there is no longer a dependency on the Cache Manager in the default configuration. Update #4458.
    Comment 8
    1. Sebastian Huber, Thu, 12 Aug 2021 12:49:04 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    The trap table is now statically initialized.

    Comment 9
    1. Sebastian Huber, Thu, 15 Jun 2023 17:43:50 GMT

    In 97a4b306/rtems:

    bsp/leon2: Include missing header file Update #4458.

    4460 - CID 1437647: Explicit null dereferenced

    Link https://devel.rtems.org/ticket/4460
    Id 4460
    Reporter Harrison Gerber
    Created 22 June 2021 19:57:20
    Modified 31 October 2022 15:00:24
    Owner Gedare Bloom
    Type defect
    Component admin
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    A null pointer dereference will occur.

    In rtems_fdt_unload: Dereference of an explicit null value (CWE-476)

    Comment 1
    1. Kinsey Moore, Mon, 03 Oct 2022 18:13:47 GMT

    In 05461aa4/rtems:

    cpukit/fdt: Free index before container Ensure that the index is released before the structure containing it is freed and NULLed. Updates #4460
    Comment 2
    1. Kinsey Moore, Mon, 03 Oct 2022 18:14:06 GMT

    In 3af84c1/rtems:

    cpukit/fdt: Free index before container Ensure that the index is released before the structure containing it is freed and NULLed. Updates #4460
    Comment 3
    1. Gedare Bloom, Mon, 31 Oct 2022 14:54:26 GMT
    2. milestone: changed from 6.1 to 7.1
    Comment 4
    1. Gedare Bloom, Mon, 31 Oct 2022 15:00:24 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed
    4. milestone: changed from 7.1 to 6.1

    4461 - grlib: Register system console as "/dev/console"

    Link https://devel.rtems.org/ticket/4461
    Id 4461
    Reporter Sebastian Huber
    Created 24 June 2021 06:25:53
    Modified 24 June 2021 06:54:02
    Owner Sebastian Huber
    Type defect
    Component arch/sparc
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The driver manager console driver did not register the system console as "/dev/console" this resulted in some test failures (for example spconsole01.exe).

    Comment 1
    1. Sebastian Huber, Thu, 24 Jun 2021 06:54:02 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 499a89b/rtems:

    grlib: Register system console as /dev/console Close #4461.

    4462 - CID 1437638: Logically dead code

    Link https://devel.rtems.org/ticket/4462
    Id 4462
    Reporter Harrison Gerber
    Created 28 June 2021 23:48:06
    Modified 31 October 2022 15:02:09
    Owner Gedare Bloom
    Type defect
    Component admin
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    In rtems-fdt.c:

    The indicated dead code may have performed some action; that action will never occur.

    In rtems_fdt_init_index: Code can never be reached because of a logical contradiction (CWE-561)

    159  entries = calloc(num_entries, sizeof(rtems_fdt_index_entry));
    cond_notnull: Condition entries, taking true branch. Now the value of entries is not NULL.
    160 if (!entries)
    161 {
    162 return -RTEMS_FDT_ERR_NO_MEMORY;
    163 }
    164
    165 names = calloc(1, total_name_memory);
    notnull: At condition entries, the value of entries cannot be NULL.
    dead_error_condition: The condition !entries cannot be true.
    166 if (!entries)
    167 {
    CID 1437638 (#1 of 1): Logically dead code (DEADCODE)
    dead_error_begin: Execution cannot reach this statement: free(entries);.
    168 free(entries);
    169 return -RTEMS_FDT_ERR_NO_MEMORY;
    170 }
    Comment 1
    1. Joel Sherrill, Tue, 29 Jun 2021 00:31:27 GMT

    Shouldn't it be freeing the first variable allocated -- names?

    Comment 2
    1. Kinsey Moore, Mon, 03 Oct 2022 18:13:45 GMT

    In cab00c70/rtems:

    cpukit/fdt: Check correct allocation The second allocation check was mistakenly rechecking the first allocation. It now checks the correct allocation and ensures that names is not NULL. Updates #4462
    Comment 3
    1. Kinsey Moore, Mon, 03 Oct 2022 18:14:04 GMT

    In 584f5bc9/rtems:

    cpukit/fdt: Check correct allocation The second allocation check was mistakenly rechecking the first allocation. It now checks the correct allocation and ensures that names is not NULL. Updates #4462
    Comment 4
    1. Gedare Bloom, Mon, 31 Oct 2022 15:02:09 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    4463 - rtems_condition_variable_signal() is implemented as a broadcast

    Link https://devel.rtems.org/ticket/4463
    Id 4463
    Reporter Sebastian Huber
    Created 1 July 2021 11:20:43
    Modified 1 July 2021 11:58:44
    Owner Sebastian Huber
    Type defect
    Component rtems
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    rtems_condition_variable_signal() should use _Condition_Signal().

    Comment 1
    1. Sebastian Huber, Thu, 01 Jul 2021 11:58:44 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 737e18d/rtems:

    rtems: Do not broadcast to signal a condition var Close #4463.

    4468 - waf build system does not generate the same bspopts.h

    Link https://devel.rtems.org/ticket/4468
    Id 4468
    Reporter Chris Johns
    Created 14 July 2021 04:28:20
    Modified 30 August 2021 09:03:04
    Owner Chris Johns <chrisj@…>
    Type defect
    Component build
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority high
    Severity normal
    Keywords wafblocker
    Cc  
    Blocking 4081
    Blocked by  

    Description

    Building with autoconf and the command line of:

    $ ../rtems.git/configure --target=powerpc-rtems6 --enable-rtemsbsp=mvme2307 

    gives:

    $ grep BSP_CONSOLE_BAUD `find . -name bspopts.h`
    #define BSP_CONSOLE_BAUD 9600

    Building with waf and a config of ...

    [DEFAULT]
    BUILD_TESTS = True
    RTEMS_POSIX_API = True
    [powerpc/mvme2307]

    gives:

    $ grep BSP_CONSOLE_BAUD `find . -name bspopts.h`
    #define BSP_CONSOLE_BAUD 115200

    The default should be 9600 and the motorola_powerpc BSP is listed in the options under 9600. Something is broken in the waf BSP opts handling.

    Comment 1
    1. Chris Johns, Wed, 14 Jul 2021 04:44:57 GMT

    The options code is not being passed the variant, it is passed the BSP ....

     def default_value(self, variant):
            value = self.data["default"]
            for default in self.data["default-by-variant"]:
                print(']] %s %r' % (variant, default), OptionItem._is_variant(default["variants"], variant))
                if OptionItem._is_variant(default["variants"], variant): 

    gives:

    ]] powerpc/mvme2307 {'value': 9600, 'variants': ['m68k/m5484FireEngine', 'powerpc/hsc_cm01', 'powerpc/beatnik', 'powerpc/haleakala', 'powerpc/motorola_powerpc', 'powerpc/mvme3100', 'powerpc/mvme5500']} False 
    Comment 2
    1. Chris Johns, Wed, 14 Jul 2021 05:01:02 GMT

    The optconsolebaud.yml file lists powerpc/motorola_powerpc as a variant and it is a family. The ability to specify a family for default is something I think is needed. I do not like needing to list all BSPs is something we should require we do?

    Are BSPs that INHERIT supported?

    I wonder how you take a family given the variant?

    Comment 3
    1. Chris Johns, Wed, 14 Jul 2021 06:38:28 GMT

    Hmmm it seems the options are all required to have a default-by-variant. I am not sure if this is by design and for a reason, a hang over from the path to these spec files or it could be optional?

    I will make it optional and I will make default-by-family optional.

    Comment 4
    1. Chris Johns, Thu, 15 Jul 2021 00:03:15 GMT
    2. owner: set to Chris Johns <chrisj@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 6f2aa8ad/rtems:

    build: Use BSP family for options Optionally add support for 'default-by-family' to allow option to be set by a family and so all related BSPs Close #4468
    Comment 5
    1. Sebastian Huber, Thu, 15 Jul 2021 06:07:50 GMT

    In 6107148/rtems:

    build: Add missing default-by-family Update #4468.
    Comment 6
    1. Sebastian Huber, Thu, 15 Jul 2021 06:07:54 GMT

    In b6092cb/rtems:

    build: Fix bsp_defaults command Update #4468.
    Comment 7
    1. Sebastian Huber, Thu, 15 Jul 2021 06:10:06 GMT

    In 6c1928c/rtems:

    build: Prefer variant default value over family Update #4468.
    Comment 8
    1. Sebastian Huber, Wed, 18 Aug 2021 09:26:43 GMT

    In ebdfa24b/rtems:

    build: Merge default-by-family into by-variant Prefix the BSP family name with "bsps/" to make it distinct to the BSP variant names. Update #4468.
    Comment 9
    1. Sebastian Huber, Mon, 30 Aug 2021 09:03:04 GMT

    In d223ec9/rtems-docs:

    eng: Document use of BSP family for defaults Update #4468.

    4469 - rtems-exeinfo.cpp: Not restoring ostream format errors spotted by Coverity

    Link https://devel.rtems.org/ticket/4469
    Id 4469
    Reporter Ryan Long
    Created 15 July 2021 14:46:52
    Modified 13 August 2021 19:55:51
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1503006: Not restoring ostream format in output_compilation_unit().

     185. format_changed: left changes the format state of std::cout for category adjustfield.
    478 std::cout << " | "
    479 << std::setw (source_max + 1) << std::left
    480 << rld::path::basename (s.source);

    CID 1503007: Not restoring ostream format in output_tls().

     11. format_changed: right changes the format state of std::cout for category adjustfield.
    12. format_changed: hex changes the format state of std::cout for category basefield.
    13. format_changed: setfill changes the format state of std::cout for category fill.
    14. format_restored: dec changes the format state of std::cout for category basefield.
    15. format_restored: setfill changes the format state of std::cout for category fill.
    704 std::cout << " data size : " << tls_data_size->value () << std::endl
    705 << " bss size : " << tls_bss_size->value () << std::endl
    706 << " alignment : " << tls_alignment->value () << std::endl
    707 << std::right << std::hex << std::setfill ('0')
    708 << " data addr : 0x" << std::setw (8) << tls_data_begin->value ()
    709 << std::endl
    710 << std::dec << std::setfill (' ')
    711 << std::endl;
    Comment 1
    1. Ryan Long, Tue, 27 Jul 2021 18:42:06 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In e146927/rtems-tools:

    rtems-exeinfo.cpp: Restore ostream format CID 1503006: Not restoring ostream format CID 1503007: Not restoring ostream format Used a variable to store the format of the ostream before any changes, and copied what was originally there back into the stream before returning from the function. Closes #4469
    Comment 2
    1. Ryan Long, Thu, 29 Jul 2021 14:43:57 GMT
    2. status: changed from closed to reopened
    3. resolution: fixed deleted
    Comment 3
    1. Ryan Long, Fri, 13 Aug 2021 19:55:51 GMT
    2. status: changed from reopened to closed
    3. resolution: set to fixed

    4470 - CoverageMapBase.cc: Not restoring ostream format error spotted by Coverity

    Link https://devel.rtems.org/ticket/4470
    Id 4470
    Reporter Ryan Long
    Created 15 July 2021 14:49:11
    Modified 13 August 2021 19:56:40
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1503022: Not restoring ostream format in dump().

    1. format_changed: hex changes the format state of out for category basefield.
    2. format_changed: setfill changes the format state of out for category fill.
    78 out << std::hex << std::setfill('0')
    79 << "Address range: low = " << std::setw(8) << lowAddress
    80 << " high = " << std::setw(8) << highAddress
    81 << std::endl;
    Comment 1
    1. Ryan Long, Tue, 27 Jul 2021 18:42:08 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In d417918/rtems-tools:

    CoverageMapBase?.cc: Restore ostream format CID 1503022: Not restoring ostream format Save format of stream before changing it, and change it back before returning. Closes #4470
    Comment 2
    1. Ryan Long, Thu, 29 Jul 2021 14:43:37 GMT
    2. status: changed from closed to reopened
    3. resolution: fixed deleted
    Comment 3
    1. Ryan Long, Fri, 13 Aug 2021 19:56:40 GMT
    2. status: changed from reopened to closed
    3. resolution: set to fixed

    4471 - ReportsHtml.cc: Not restoring ostream format error spotted by Coverity

    Link https://devel.rtems.org/ticket/4471
    Id 4471
    Reporter Ryan Long
    Created 15 July 2021 14:50:47
    Modified 13 August 2021 19:57:26
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1505939: Not restoring ostream format in PutSymbolSummaryLine?().

     5. format_changed: fixed changes the format state of report for category floatfield.
    6. format_changed: setprecision changes the format state of report for category precision.
    782 report << ""
    783 << std::fixed << std::setprecision( 2 )
    784 << ( symbolInfo.stats.uncoveredInstructions * 100.0 ) /
    785 symbolInfo.stats.sizeInInstructions
    786 << "" << std::endl;
    Comment 1
    1. Ryan Long, Tue, 27 Jul 2021 18:42:11 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In f7887ec/rtems-tools:

    ReportsHtml?.cc: Restore ostream format CID 1505939: Not restoring ofstream format Save format of stream before changing it, and change it back before returning. Closes #4471
    Comment 2
    1. Ryan Long, Thu, 29 Jul 2021 14:43:09 GMT
    2. status: changed from closed to reopened
    3. resolution: fixed deleted
    Comment 3
    1. Ryan Long, Fri, 13 Aug 2021 19:57:26 GMT
    2. status: changed from reopened to closed
    3. resolution: set to fixed

    4472 - ReportsText.cc: Not restoring ostream format error spotted by Coverity

    Link https://devel.rtems.org/ticket/4472
    Id 4472
    Reporter Ryan Long
    Created 15 July 2021 14:52:45
    Modified 13 August 2021 19:02:01
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1505940: Not restoring ostream format in PutSymbolSummaryLine?().

     5. format_changed: fixed changes the format state of report for category floatfield.
    6. format_changed: setprecision changes the format state of report for category precision.
    231 report << "============================================" << std::endl
    232 << "Symbol : "
    233 << symbolName << std::endl
    234 << "Total Size in Bytes : "
    235 << symbolInfo.stats.sizeInBytes << std::endl
    236 << "Total Size in Instructions : "
    237 << symbolInfo.stats.sizeInInstructions << std::endl
    238 << "Total number Branches : "
    239 << symbolInfo.stats.branchesNotExecuted +
    240 symbolInfo.stats.branchesExecuted
    241 << std::endl
    242 << "Total Always Taken : "
    243 << symbolInfo.stats.branchesAlwaysTaken << std::endl
    244 << "Total Never Taken : "
    245 << symbolInfo.stats.branchesNeverTaken << std::endl
    246 << std::fixed << std::setprecision( 2 )
    247 << "Percentage Uncovered Instructions : "
    248 << uncoveredInstructions << std::endl
    249 << "Percentage Uncovered Bytes : "
    250 << uncoveredBytes << std::endl;
    Comment 1
    1. Ryan Long, Tue, 27 Jul 2021 18:42:13 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In df484a5/rtems-tools:

    ReportsText?.cc: Restore ostream format CID 1505940: Not restoring ostream format Save format of stream before changing it, and change it back before returning. Closes #4472
    Comment 2
    1. Ryan Long, Thu, 29 Jul 2021 14:42:40 GMT
    2. status: changed from closed to reopened
    3. resolution: fixed deleted
    Comment 3
    1. Ryan Long, Fri, 13 Aug 2021 19:02:01 GMT
    2. status: changed from reopened to closed
    3. resolution: set to fixed

    In 632414d/rtems-tools:

    ReportsText?.cc: Add ostream_guard CID 1505940: Not restoring ostream format Closes #4472

    4473 - AddressToLineMapper.h: Pointer to local outside scope error spotted by Coverity

    Link https://devel.rtems.org/ticket/4473
    Id 4473
    Reporter Alex White
    Created 16 July 2021 17:58:03
    Modified 20 July 2021 18:27:12
    Owner Alex White
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1505281: Pointer to local outside scope

     SourceLine()
    28 : address(0),
    CID 1505281 (#1 of 1): Pointer to local outside scope (RETURN_LOCAL)
    1. escape_local_addr: Returning, through this->path_, the address of stack variable .
    29 path_("unknown"),
    30 line_num(-1),
    31 is_end_sequence(true)
    32 {
    2. return: Returning here.
    33 }
    Comment 1
    1. Alex White, Fri, 16 Jul 2021 17:58:23 GMT
    2. owner: set to Alex White
    3. status: changed from new to accepted
    Comment 2
    1. Alex White, Tue, 20 Jul 2021 18:27:12 GMT
    2. status: changed from accepted to closed
    3. resolution: set to fixed

    In 2380886/rtems-tools:

    AddressToLineMapper?.h: Remove pointer to temporary string CID 1505281: Pointer to local outside scope Closes #4473

    4475 - Add NFSv4 client support to libbsd

    Link https://devel.rtems.org/ticket/4475
    Id 4475
    Reporter Chris Johns
    Created 19 July 2021 08:57:15
    Modified 8 June 2022 13:11:44
    Owner Chris Johns
    Type task
    Component network/libbsd
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords nfs-v4
    Cc  
    Blocking  
    Blocked by  

    Description

    Add NFSv4 client support to libbsd. The client support is part of kernel and provides support for a range of the NFS protocol version including version 4.

    The task is made of the following:

  • Update the locks and locking to support the lock manager. VFS requires this be supported
  • Add support for the FreeBSD Virtual File System (VFS)
  • Add the kernel RPC implementation
  • Add NFS client support
  • VFS

    VFS is built around the FB's file structure and file descriptor structure. These need to be supported. The file struct and file descriptor form the basis for all fd based interactions with the FB kernel code such as files, devices and sockets.

    LibIO and FB fd

    The FB fd and file support clashes with the existing libio implementations used for things like socket, kqueue and select. The work to port the VFS requires:

  • socket, kqueue, select support FB fd support. This is closer to the kernel. No direct libio access
  • Provide an interface to libio mapping the iop descriptors to FB descriptors.
  • This approach nests the FB file descriptors inside the libio support. This is not optimal in terms of some activities but the hot paths in the code should not see a significant change in performance. Some paths like open are not optimal because the RTEMS file system op handlers imply a specific implementation that does not match up well with the FB namei interface. The long term approach is to look at libio and the handlers and consider allowing closer integration of FB's fd support.

    BIO and Paging

    The bio layer is required for VFS. No paging support other than the calls needed to have VFS link are provided. No VM paging is need and none of that code need be ported.

    System Calls

    Collect all the syscall functionality exported to RTEMS into a single place. Currently the calls are spread around the code and this:

  • Does not centralize the code
  • Add a lot of code to FB being ported
  • Proc0

    FreeBSD's initialization creates the initial process called proc0. Add support to create proc0 and let all thread' reference it. This allow the creds to be managed, kernel trace to work and it removes a number of changes that do not need to be made.

    File Descripter Reuse

    The libio functionality of cycling across the fd range rather than reusing lower fd numbers is not compatible with the select call. Not reusing fd numbers once closed until the range as been used provides some protection against bugs where a user does not cleanly handle the fd they own however this is not compatible with FB and makes supporting select harder.

    The select interface should not be used on RTEMS and users should be encourages to use threads for concurrent IO or kqueue. The means select may exist for legacy code porting reasons however the cycling fd count reduces how well the code ported will actually work. For example port a piece of select code, open a socket and use, it may work. Then open and close a file 64 times then run the same code. It will fail.

    FB fd's are reused.

    RPC

    The legacy NFSv2 client the the NFSv4 cannot be built at the same time.

    The kernel RPC and the user land RPC cannot exist in the same build. I have not looked extensively into this but I was seeing clashes with headers for the same types but different contents. The legacy NFSv2 client uses the user land RPC code while the kernel NFSv4 uses the kernel's RPC.

    Module support is already in libbsd to handle the separate building of each piece.

    Security

    NFSv4 provides a number of extra security features. The code will be ported is possible but little or no security tested is planned at this point in time.

    Testing

    The NFSv4 stack will be tested against Linux and FreeBSD servers.

    Comment 1
    1. Chris Johns, Tue, 20 Jul 2021 07:36:52 GMT
    2. description: modified (diff)
    Comment 2
    1. Joel Sherrill, Tue, 20 Jul 2021 14:51:34 GMT
    2. summary: changed from Add NFSv4 client support to libbds to Add NFSv4 client support to libbsd
    Comment 3
    1. Chris Johns, Thu, 02 Sep 2021 02:43:16 GMT

    In 59f652fe/rtems-libbsd:

    Implement portable kernel symbol namespace tool The script's use of sort proved to not be portable No need to check the commits as symbols are only added Regenerated kernel header to reset the sort order Update #4475
    Comment 4
    1. Chris Johns, Thu, 02 Sep 2021 02:43:19 GMT

    In f700edc/rtems-libbsd:

    waf: Fix clashing symbols in the user land symbols Update #4475
    Comment 5
    1. Chris Johns, Thu, 02 Sep 2021 02:43:21 GMT

    In 5ef23a2/rtems-libbsd:

    sys/netinet/libalias: Fix symbols clashes Update #4475
    Comment 6
    1. Chris Johns, Thu, 02 Sep 2021 02:43:24 GMT

    In 974742d/rtems-libbsd:

    kern-symbols: Add symbols from the everything build set Update #4475
    Comment 7
    1. Chris Johns, Thu, 02 Sep 2021 02:43:27 GMT

    In 684cf3c/rtems-libbsd:

    rtemsbsd: Add FrreBSD's clang-format style Update #4475
    Comment 8
    1. Chris Johns, Thu, 02 Sep 2021 02:43:29 GMT

    In 2a01430/rtems-libbsd:

    rtemsbsd: Catch timeout overflows Update #4475
    Comment 9
    1. Chris Johns, Thu, 02 Sep 2021 02:43:32 GMT

    In e1ca99b/rtems-libbsd:

    testsuite: Optionally allow all command in a shell Update #4475
    Comment 10
    1. Chris Johns, Thu, 02 Sep 2021 02:43:35 GMT

    In 46a15fa/rtems-libbsd:

    sys/kern: Add lockmgr support See man lockmgr Implement the lock_object and move the RTEMS mutex to that object Add debug support to track the locks with gdb Update #4475
    Comment 11
    1. Chris Johns, Thu, 02 Sep 2021 02:43:38 GMT

    In 761fd693/rtems-libbsd:

    kern: Import kern_prot.c fnd kern_resource.c for proc0 Update #4475
    Comment 12
    1. Chris Johns, Thu, 02 Sep 2021 02:43:40 GMT

    In c7427fc/rtems-libbsd:

    kern: Add a proc0 Provides the thread's proc pointer and with that access to creds Update #4475
    Comment 13
    1. Chris Johns, Thu, 02 Sep 2021 02:43:43 GMT

    In 9800a0f/rtems-libbsd:

    kern: Import kern_ktr.c Update #4475
    Comment 14
    1. Chris Johns, Thu, 02 Sep 2021 02:43:46 GMT

    In e56b5cb/rtems-libbsd:

    kern: Add kernel trace support (KTR) Update #4475
    Comment 15
    1. Chris Johns, Thu, 02 Sep 2021 02:43:48 GMT

    In 1739d74/rtems-libbsd:

    freebsd/sys: Import VFS support Update #4475
    Comment 16
    1. Chris Johns, Thu, 02 Sep 2021 02:43:51 GMT

    In ac4db4c/rtems-libbsd:

    rtemsbsd: Remove DHCP init wrapper Object files cannot config init and resided in libbsd.a Update #4475
    Comment 17
    1. Chris Johns, Thu, 02 Sep 2021 02:43:53 GMT

    In 6514d56/rtems-libbsd:

    sys/kern: Add VFS support Refactor the libio interface Move syscalls into an rtemsbsd location Provide a root directory mount point Update #4475
    Comment 18
    1. Chris Johns, Thu, 02 Sep 2021 02:43:56 GMT

    In 3da45ae/rtems-libbsd:

    freebsd/sys: Import RPC and XDR support Update #4475
    Comment 19
    1. Chris Johns, Thu, 02 Sep 2021 02:43:59 GMT

    In c6dbc96/rtems-libbsd:

    kern/sys: Add the kernel RPC and XDR support Updates #4475
    Comment 20
    1. Chris Johns, Thu, 02 Sep 2021 02:44:01 GMT

    In 6138f24/rtems-libbsd:

    kern/sys: Import NFS and NFS file system client Update #4475
    Comment 21
    1. Chris Johns, Thu, 02 Sep 2021 02:44:04 GMT

    In 882425f/rtems-libbsd:

    kern/sys: Add NFSv4 client Update #4475
    Comment 22
    1. Chris Johns, Thu, 02 Sep 2021 02:44:07 GMT

    In 7e282d2/rtems-libbsd:

    rtemsbsd/nfs: Add support to mount NFSv2 NFSv2 requires userland RPC calls to determine the version of NFS and the FH. This is passed to the kernel. Port more libc/rpc. Update #4475
    Comment 23
    1. Chris Johns, Fri, 24 Sep 2021 00:00:06 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed
    Comment 24
    1. Sebastian Huber, Wed, 08 Jun 2022 13:11:44 GMT

    In dba9346/rtems-libbsd:

    uma_core.c: Fix use of uninitialized variable Update #4475.

    4482 - Document kernel character I/O support in Classic API Guide

    Link https://devel.rtems.org/ticket/4482
    Id 4482
    Reporter Sebastian Huber
    Created 30 July 2021 06:44:20
    Modified 3 August 2021 08:40:04
    Owner Sebastian Huber
    Type enhancement
    Component doc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    Directives like printk() are available for a long time. Document them in the Classic API Guide.

    Comment 1
    1. Sebastian Huber, Mon, 02 Aug 2021 05:15:51 GMT

    In d999f865/rtems:

    rtems: Generate Change license to BSD-2-Clause according to file histories and documentation re-licensing agreement. Place the group into the I/O Manager group. Add all source files to the group. Update #3899. Update #3993. Update #4482.
    Comment 2
    1. Sebastian Huber, Tue, 03 Aug 2021 08:40:04 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In efb8e7c/rtems-docs:

    c-user: Add "Kernel Character I/O Support" chapter Close #4482.

    4483 - GcovData.cc: Not restoring ostream format error spotted by Coverity

    Link https://devel.rtems.org/ticket/4483
    Id 4483
    Reporter Ryan Long
    Created 4 August 2021 18:08:56
    Modified 13 August 2021 19:01:57
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1506202: Not restoring ostream format

     3. format_changed: hex changes the format state of std::cerr for category basefield.
    407 std::cerr << "File is not a valid *.gcno output (magic: 0x"
    408 << std::hex << std::setw( 4 ) << preamble->magic
    409 << ")" << std::endl;
    CID 1506202 (#1 of 1): Not restoring ostream format (STREAM_FORMAT_STATE)4. end_of_path: Changing format state of stream std::cerr for category basefield without later restoring it.
    Comment 1
    1. Ryan Long, Fri, 13 Aug 2021 19:01:57 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 415a2b6/rtems-tools:

    GcovData?.cc: Add ostream_guard CID 1506202: Not restoring ostream format Closes #4483

    4484 - GcovFunctionData.cc: Not restoring ostream format error spotted by Coverity

    Link https://devel.rtems.org/ticket/4484
    Id 4484
    Reporter Ryan Long
    Created 4 August 2021 18:14:25
    Modified 13 August 2021 19:01:59
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1506205: Not restoring ostream format

     1. format_changed: hex changes the format state of textFile for category basefield.
    360 textFile << " > BLOCK " << std::setw( 3 ) << block->id
    361 << " from " << block->sourceFileName << std::endl
    362 << " -counter: " << std::setw( 5 ) << block->counter << std::endl
    363 << " -flags: 0x" << std::hex << block->flags << std::endl
    364 << " -lines: ";
    Comment 1
    1. Ryan Long, Fri, 13 Aug 2021 19:01:59 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In dc5e1fc/rtems-tools:

    GcovFunctionData?.cc: Add ostream_guard CID 1506205: Not restoring ostream format Closes #4484

    4485 - GcovData.cc: Out-of-bounds acces errors spotted by Coverity

    Link https://devel.rtems.org/ticket/4485
    Id 4485
    Reporter Ryan Long
    Created 4 August 2021 18:22:36
    Modified 20 August 2021 17:47:01
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1506208: Out-of-bounds access

     CID 1506208 (#1 of 1): Out-of-bounds access (OVERRUN)2. overrun-buffer-arg: Overrunning struct type _ZN4Gcov13gcov_preambleE of 12 bytes by passing it to a function which accesses it at byte offset 47 using argument 48L.
    132 gcdaFile.write( (char *) &preamble , 4 * sizeof( preamble ) );
    133 if ( gcdaFile.fail() ) {
    134 std::cerr << "Error while writing gcda preamble to a file "
    135 << gcdaFileName << std::endl;
    136 }

    CID 1506209: Out-of-bounds access

     CID 1506209 (#1 of 1): Out-of-bounds access (OVERRUN)1. overrun-buffer-arg: Overrunning buffer pointed to by (char *)&preamble of 8 bytes by passing it to a function which accesses it at byte offset 47 using argument 48L.
    400 gcovFile.read( (char *) &preamble, 4 * sizeof( gcov_preamble ) );
    401 if ( gcovFile.gcount() != 4 * sizeof( gcov_preamble ) ) {
    402 std::cerr << "Error while reading file preamble" << std::endl;
    403 return -1;
    404 }
    Comment 1
    1. Ryan Long, Fri, 20 Aug 2021 17:47:01 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 0ab060f/rtems-tools:

    GcovData?.cc: Fix out-of-bounds access errors Adjusted number of bytes to be read, removed length variable CID 1506208: Out-of-bounds access CID 1506209: Out-of-bounds access Closes #4485

    4486 - TraceWriterQEMU.cc: String not null terminated issue spotted by Coverity

    Link https://devel.rtems.org/ticket/4486
    Id 4486
    Reporter Ryan Long
    Created 4 August 2021 18:31:34
    Modified 20 August 2021 17:47:03
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1506203: String not null terminated

     CID 1506203 (#1 of 1): String not null terminated (STRING_NULL)6. string_null: Passing unterminated string header.magic to operator <<, which expects a null-terminated string. [Note: The source code implementation of the function has been overridden by a builtin model.]
    124 std::cerr << "magic = " << header.magic << std::endl
    125 << "version = " << header.version << std::endl
    126 << "kind = " << header.kind << std::endl
    127 << "sizeof_target_pc = " << header.sizeof_target_pc << std::endl
    128 << "big_endian = " << header.big_endian << std::endl
    129 << std::hex << std::setfill('0')
    130 << "machine = " << std::setw(2) << header.machine[0]
    131 << ':' << header.machine[1]
    132 << std::dec << std::setfill(' ')
    133 << std::endl;
    Comment 1
    1. Ryan Long, Fri, 20 Aug 2021 17:47:03 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In f316d16/rtems-tools:

    TraceWriterQEMU.cc: Remove unterminated string Replaced header.magic with QEMU_TRACE_MAGIC to get rid of "String not null terminated" Coverity issue. CID 1506203: String not null terminated Closes #4486

    4487 - GcovData.cc: Uninitialized scalar field error spotted by Coverity

    Link https://devel.rtems.org/ticket/4487
    Id 4487
    Reporter Ryan Long
    Created 4 August 2021 18:39:53
    Modified 1 September 2021 15:31:05
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1506206: Uninitialized scalar field

     22  GcovData::GcovData( Coverage::DesiredSymbols& symbolsToAnalyze ):
    23 numberOfFunctions( 0 ),
    24 symbolsToAnalyze_m( symbolsToAnalyze )
    25 {
    2. uninit_member: Non-static class member gcnoPreamble.magic is not initialized in this constructor nor in any functions that it calls.
    4. uninit_member: Non-static class member gcnoPreamble.version is not initialized in this constructor nor in any functions that it calls.
    CID 1506206 (#1 of 1): Uninitialized scalar field (UNINIT_CTOR)6. uninit_member: Non-static class member gcnoPreamble.timestamp is not initialized in this constructor nor in any functions that it calls.
    26 }
    Comment 1
    1. Ryan Long, Wed, 01 Sep 2021 15:31:05 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 7ccbcd89/rtems-tools:

    GcovData?.cc: Initialize gcnoPreamble CID 1506206: Uninitialized scalar field Closes #4487

    4488 - TraceWriterQEMU.cc: Uninitialized scalar variable issue spotted by Coverity

    Link https://devel.rtems.org/ticket/4488
    Id 4488
    Reporter Ryan Long
    Created 4 August 2021 18:55:42
    Modified 27 September 2021 22:18:24
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1506204: Uninitialized scalar variable

    115    header.machine[1] = 0; // XXX ??
    CID 1506204 (#1 of 1): Uninitialized scalar variable (UNINIT)4. uninit_use_in_call: Using uninitialized value header. Field header._pad is uninitialized when calling fwrite.
    116 status = ::fwrite( &header, sizeof(trace_header), 1, traceFile );
    Comment 1
    1. Ryan Long, Mon, 27 Sep 2021 22:18:24 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 70088f6/rtems-tools:

    TraceWriterQEMU.cc: Initialize header._pad CID 1506204: Uninitialized scalar variable Closes #4488

    4489 - waf configure's --rtems-config and build create an error

    Link https://devel.rtems.org/ticket/4489
    Id 4489
    Reporter Chris Johns
    Created 5 August 2021 07:30:27
    Modified 29 November 2022 23:47:23
    Owner  
    Type defect
    Component build
    Status closed
    Resolution wontfix
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Waf allows distclean, configure, build and install on a single command line however adding --rtems-config to the configure stage generates this error:

    The --rtems-config command line option is not allowed in the build command 

    This is error is incorrect.

    Comment 1
    1. Chris Johns, Tue, 29 Nov 2022 23:47:23 GMT
    2. status: changed from new to closed
    3. resolution: set to wontfix

    I am closing this as it will not be fixed for now. It is not right in the normal context of waf command lines but it is a corner case to fix.

    Please reopen if this is important.


    4490 - rtems_partition_return_buffer() wrongly accepts buffers which are exactly at the buffer area end

    Link https://devel.rtems.org/ticket/4490
    Id 4490
    Reporter Sebastian Huber
    Created 10 August 2021 10:41:25
    Modified 12 August 2021 12:26:28
    Owner Sebastian Huber
    Type defect
    Component rtems
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    The range checking in rtems_partition_return_buffer() is wrong.

    Comment 1
    1. Sebastian Huber, Thu, 12 Aug 2021 12:25:43 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 9399e12c/rtems:

    rtems: Fix rtems_partition_return_buffer() The rtems_partition_return_buffer() wrongly accepted which were exactly at the buffer area end. Use the buffer area limit address for the range checking. Close #4490.
    Comment 2
    1. Sebastian Huber, Thu, 12 Aug 2021 12:26:28 GMT
    2. keywords: qualification added

    4491 - TraceWriterQEMU.cc: Buffer not null terminated issue spotted by Coverity

    Link https://devel.rtems.org/ticket/4491
    Id 4491
    Reporter Ryan Long
    Created 10 August 2021 14:57:35
    Modified 27 September 2021 22:18:21
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1506207: Buffer not null terminated

     CID 1506207 (#1 of 1): Buffer not null terminated (BUFFER_SIZE)3. buffer_size: Calling strncpy with a source string whose length (12 chars) is greater than or equal to the size argument (12) will fail to null-terminate header.magic.
    109 strncpy( header.magic, QEMU_TRACE_MAGIC, sizeof(header.magic) );
    Comment 1
    1. Ryan Long, Mon, 27 Sep 2021 22:18:21 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In a06f48a/rtems-tools:

    TraceWriterQEMU.cc: Change strncpy to memcpy CID 1506207: Buffer not null terminated Closes #4491

    4492 - ObjdumpProcessor.cc: Uninitialized pointer field

    Link https://devel.rtems.org/ticket/4492
    Id 4492
    Reporter Ryan Long
    Created 11 August 2021 18:37:57
    Modified 30 September 2021 13:10:54
    Owner  
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1506210: Uninitialized pointer field

    125  ObjdumpProcessor::ObjdumpProcessor(
    126 DesiredSymbols& symbolsToAnalyze,
    127 std::shared_ptr& targetInfo
    128 ): symbolsToAnalyze_m( symbolsToAnalyze ),
    129 targetInfo_m( targetInfo )
    130 {
    CID 1506210 (#1 of 1): Uninitialized pointer field (UNINIT_CTOR)2. uninit_member: Non-static class member inputBuffer_m is not initialized in this constructor nor in any functions that it calls.
    131 }
    Comment 1
    1. Ryan Long, Thu, 30 Sep 2021 13:10:54 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed

    4499 - rtems-exeinfo.cpp: Uninitialized scalar field error spotted by Coverity

    Link https://devel.rtems.org/ticket/4499
    Id 4499
    Reporter Ryan Long
    Created 18 August 2021 13:40:17
    Modified 1 September 2021 15:31:02
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1471637: Uninitialized scalar field

    211    section::section (const section& orig)
    212 : sec (orig.sec),
    213 data (orig.data)
    214 {
    CID 1471637 (#1 of 1): Uninitialized scalar field (UNINIT_CTOR)2. uninit_member: Non-static class member byteorder is not initialized in this constructor nor in any functions that it calls.
    215 }
    Comment 1
    1. Ryan Long, Wed, 01 Sep 2021 15:31:02 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 1d4edfb/rtems-tools:

    rtems-exeinfo.cpp: Initialize byteorder CID 1471637: Uninitialized scalar field Closes #4499

    4500 - rld-dwarf.cpp: Uninitialized scalar field

    Link https://devel.rtems.org/ticket/4500
    Id 4500
    Reporter Ryan Long
    Created 18 August 2021 15:12:11
    Modified 1 September 2021 15:31:07
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1503019: Uninitialized scalar field

    677    function::function (file& debug, debug_info_entry& die)
    678 : debug (debug),
    679 machine_code_ (false),
    680 external_ (false),
    681 declaration_ (false),
    682 inline_ (DW_INL_not_inlined),
    683 entry_pc_ (0),
    684 has_entry_pc_ (false),
    685 pc_low_ (0),
    686 pc_high_ (0),
    687 ranges_ (debug),
    688 call_line_ (0)
    CID 1503019 (#1 of 1): Uninitialized scalar field (UNINIT_CTOR)14. uninit_member: Non-static class member prototyped_ is not initialized in this constructor nor in any functions that it calls.
    Comment 1
    1. Ryan Long, Wed, 18 Aug 2021 15:14:11 GMT

    CID 1503021: Uninitialized scalar field

     817    function::function (const function& orig)
     818      : debug (orig.debug),
     819        machine_code_ (orig.machine_code_),
     820        external_ (orig.external_),
     821        declaration_ (orig.declaration_),
     822        inline_ (orig.inline_),
     823        entry_pc_ (orig.entry_pc_),
     824        has_entry_pc_ (orig.has_entry_pc_),
     825        pc_low_ (orig.pc_low_),
     826        pc_high_ (orig.pc_high_),
     827        ranges_ (orig.ranges_),
     828        name_ (orig.name_),
     829        linkage_name_ (orig.linkage_name_),
     830        call_file_ (orig.call_file_),
     831        call_line_ (orig.call_line_)
     832    {
        2. uninit_member: Non-static class member prototyped_ is not initialized in this constructor nor in any functions that it calls.
        CID 1503021 (#1 of 1): Uninitialized scalar field (UNINIT_CTOR)4. uninit_member: Non-static class member decl_line_ is not initialized in this constructor nor in any functions that it calls.
     833    } 
    Comment 2
    1. Ryan Long, Wed, 01 Sep 2021 15:31:07 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 2cf693a/rtems-tools:

    rld-dwarf.cpp: Initialize member variables Initialize member variables not listed. CID 1503019: Uninitialized scalar field. Closes #4500

    4501 - TraceConverter.cc: Uncaught exception issue spotted by Coverity

    Link https://devel.rtems.org/ticket/4501
    Id 4501
    Reporter Ryan Long
    Created 19 August 2021 19:21:36
    Modified 15 December 2021 16:35:20
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1471639: Uncaught exception

     CID 1471639 (#1-9 of 9): Uncaught exception (UNCAUGHT_EXCEPT)root_function: In function main(int, char **) an exception of type rld::error is thrown and never caught.
    .
    .
    .
    fun_call_w_exception: Called function throws an exception of type rld::error. [show details]
    144 executableInfo = new Coverage::ExecutableInfo(
    145 executable,
    146 "",
    147 false,
    148 symbolsToAnalyze
    149 );
    Comment 1
    1. Ryan Long, Fri, 08 Oct 2021 13:58:46 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 234c19e/rtems-tools:

    TraceConverter?.cc: Add catch for exception CID 1471639: Uncaught exception Closes #4501
    Comment 2
    1. Ryan Long, Fri, 08 Oct 2021 19:17:21 GMT
    2. status: changed from closed to reopened
    3. resolution: fixed deleted
    Comment 3
    1. Ryan Long, Wed, 13 Oct 2021 17:05:08 GMT
    2. status: changed from reopened to closed
    3. resolution: set to fixed

    In 958aa5b/rtems-tools:

    TraceConverter?.cc: Add catch for exception CID 1471639: Add catch for exception Closes #4501
    Comment 4
    1. Ryan Long, Mon, 18 Oct 2021 15:32:48 GMT
    2. status: changed from closed to reopened
    3. resolution: fixed deleted
    Comment 5
    1. Ryan Long, Thu, 04 Nov 2021 15:43:20 GMT
    2. status: changed from reopened to closed
    3. resolution: set to fixed

    In d1df4f6/rtems-tools:

    TraceConverter?.cc: Add catch for exception CID 1471639: Add catch for exception Closes #4501
    Comment 6
    1. Ryan Long, Mon, 15 Nov 2021 20:13:41 GMT
    2. status: changed from closed to reopened
    3. resolution: fixed deleted
    Comment 7
    1. Ryan Long, Tue, 30 Nov 2021 16:00:21 GMT
    2. status: changed from reopened to closed
    3. resolution: set to fixed

    In 59ca889/rtems-tools:

    TraceConverter?.cc: Add final catch for exceptions CID 1471639: Add catch for exception Closes #4501
    Comment 8
    1. Ryan Long, Mon, 13 Dec 2021 13:34:03 GMT
    2. status: changed from closed to reopened
    3. resolution: fixed deleted
    Comment 9
    1. Ryan Long, Wed, 15 Dec 2021 16:35:20 GMT
    2. status: changed from reopened to closed
    3. resolution: set to fixed

    In c9aefbb/rtems-tools:

    TraceConverter?.cc: Fix Uncaught exception issue CID 1471639: Uncaught exception Closes #4501

    4502 - rld-rap.cpp: Uncaught exception issue spotted by Coverity

    Link https://devel.rtems.org/ticket/4502
    Id 4502
    Reporter Ryan Long
    Created 19 August 2021 19:26:56
    Modified 8 October 2021 13:58:49
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1471643: Uncaught exception

     CID 1471643 (#1 of 1): Uncaught exception (UNCAUGHT_EXCEPT)exn_spec_violation: An exception of type rld::error is thrown but the throw list noexcept doesn't allow it to be thrown. This will cause a call to unexpected() which usually calls terminate().
    724 section_merge::~section_merge ()
    725 {
    726 if (rld::verbose () >= RLD_VERBOSE_FULL_DEBUG)
    fun_call_w_exception: Called function throws an exception of type rld::error. [show details]
    727 std::cout << "rap:section-merge: " << sec.name
    728 << " size=" << sec.size ()
    729 << " offset=" << sec.offset
    730 << " " << obj.obj.name ().full () << std::endl;
    731 }
    Comment 1
    1. Ryan Long, Fri, 08 Oct 2021 13:58:49 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 5519a63/rtems-tools:

    rld-rapp.cpp: Add catch for exception CID 1471643: Uncaught exception Closes #4502

    4506 - posix_devctl() should return the errno directly not -1 and set errno

    Link https://devel.rtems.org/ticket/4506
    Id 4506
    Reporter Joel Sherrill
    Created 20 August 2021 19:24:23
    Modified 20 September 2021 18:37:56
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component posix
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The RTEMS implementation of posix_devctl() from POSIX 1003.26 does not return error codes as required by the standard.

    "Upon successful completion, posix_devctl() shall return zero; otherwise an error number shall be returned to indicate the error. The value returned via the dev_info_ptr argument is driver dependent."

    It should return the errno value and not -1 and set the errno variable. The current behavior is wrong but understandable because the implementation is a wrapper for close() and ioctl() which do set errno and return -1.

    Comment 1
    1. Joel Sherrill, Sat, 21 Aug 2021 19:25:36 GMT
    2. description: modified (diff)
    Comment 2
    1. Ryan Long, Mon, 20 Sep 2021 18:37:56 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 3951d4d/rtems:

    pxcdevctl: Adjust for standard psxdevctl is supposed to return the value in errno. Before, it was returning -1 and setting errno. Changed the tests to reflect these changes. Added code from RRADE's posix_devctl.c. Closes #4506

    4507 - mount call retruns error number and it should return -1

    Link https://devel.rtems.org/ticket/4507
    Id 4507
    Reporter Chris Johns
    Created 28 August 2021 08:04:31
    Modified 23 September 2021 23:57:21
    Owner Chris Johns
    Type defect
    Component fs
    Status closed
    Resolution wontfix
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords mount libcsupport
    Cc  
    Blocking  
    Blocked by  

    Description

    The mount call should return -1 for an any error with the errno set. Some paths in the mount do this and others so not.

    The implementation needs to be changed to only return -1 when there is an error.

    Comment 1
    1. Joel Sherrill, Sat, 28 Aug 2021 22:31:05 GMT
    2. description: modified (diff)
    Comment 2
    1. Chris Johns, Thu, 23 Sep 2021 23:57:21 GMT
    2. status: changed from assigned to closed
    3. resolution: set to wontfix
    4. description: modified (diff)

    The current behavior is correct. The NFS mounter is not correct.


    4508 - rtems_message_queue_receive(): flush() does not release waiting tasks

    Link https://devel.rtems.org/ticket/4508
    Id 4508
    Reporter Frank Kuehndel
    Created 30 August 2021 14:21:12
    Modified 16 September 2021 07:37:35
    Owner Sebastian Huber
    Type defect
    Component doc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority low
    Severity trivial
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    The __RTEMS Classic API Guide__ ​https://docs.rtems.org/branches/master/c-user/index.html in __Message Manager__ → __Directives__ → section 14.4.8 __rtems_message_queue_receive()__ says:

    RTEMS_UNSATISFIED:

    The queue was flushed while the calling task was waiting to receive a message.

    Yet, when I tested it, this does not happen. A waiting task is not released from the message queue when calling rtems_message_queue_flush(). Moreover, I did not find any sign in the source code of rtems_message_queue_flush() which look liked it would dequeue waiting threads. (In contrast rtems_message_queue_delete() does!) Furthermore, there is no other hint in the documentation of either function that flush() would kick out waiting receivers.

    I may misinterpret the documentation above or oversee something in the code. Yet, I believe the text I cited above is a mistake in the documentation and should simply be removed.

    How to reproduce/How I tested:

    # I created a message queue and a second task with a higher priority than the first one.
    # I made the second task wait on the message empty queue by calling rtems_message_queue_receive().
    # Mean while the first task called rtems_message_queue_flush() on the empty queue.
    # Result: The second task does still wait on the queue after rtems_message_queue_flush() returned. It does __not__ return with RTEMS_UNSATISFIED.

    The debug output of my test looks like (the worker task is not released by rtems_message_queue_flush() but afterwards by a timeout of 3 ticks):

    P:574:0:UI1/Valid/Valid/Valid/Flushed/Local/Fifo/Timeout/Empty/Nop:tc-message-re
    ceive.c:1316
    L:#### rtems_message_queue_construct() with
    L:#### .maximum_pending_messages = 3
    L:#### .maximum_message_size = 5
    L:#### .storage_size = 72
    L:#### .storage_free = 0
    L:#### .attributes = 0 (LOCAL=0, FIFO=0, PRIORITY=4)
    L:#### rtems_task_restart BEFORE
    L:#### rtems_message_queue_receive(option_set=0, timeout_param=3 ) BEGIN
    L:#### rtems_task_restart AFTER
    L:#### rtems_message_queue_flush() BEFORE
    L:#### rtems_message_queue_flush() AFTER
    L:#### WaitForWorker wait ticks BEFORE
    L:#### rtems_message_queue_receive() END status = 6 (0=RTEMS_SUCCESSFUL, 13=RTEMS_UNSATISFIED, 6=RTEMS_TIMEOUT )
    L:#### WorkerTask send event
    L:#### WaitForWorker wait ticks AFTER
    F:586:0:UI1/Valid/Valid/Valid/Flushed/Local/Fifo/Timeout/Empty/Nop:tc-message-receive.c:1004:RTEMS_TIMEOUT == RTEMS_UNSATISFIED
    F:587:0:UI1/Valid/Valid/Valid/Flushed/Local/Fifo/Timeout/Empty/Nop:tc-message-receive.c:1043:3 == 0
    L:#### rtems_message_queue_delete()

    For the records:

    RTEMS_VERSION = 6.0.0
    remote origin = ​git://git.rtems.org/sebh/rtems.git /* The HASH is also in ​git://git.rtems.org/rtems.git */
    commit HEAD = bb77a82f619752ba147c317d982ac47f56f4afec config.ini =

    [arm/realview_pbx_a9_qemu]
    RTEMS_DEBUG = True
    RTEMS_NETWORKING = True
    RTEMS_POSIX_API = True
    RTEMS_SMP = True
    BUILD_TESTS = True

    NEWLIB_VERSION = 3.2.0
    SOURCE_BUILDER = Set Builder, 6 (f12dee02d52d)
    GCC_VERSION = arm-rtems6-gcc (GCC) 10.3.1 20210409 (RTEMS 6, RSB c938bd7cbe16bd03d3b382f2d7cfee6a86aa9424, Newlib 0c0f3df)
    BINUTILS_VERSION = GNU ld (GNU Binutils) 2.36.1.20210409

    Comment 1
    1. Frank Kuehndel, Tue, 14 Sep 2021 15:19:16 GMT
    2. keywords: qualification added
    Comment 2
    1. Sebastian Huber, Thu, 16 Sep 2021 07:34:37 GMT

    In dbb7c956/rtems:

    rtems: Fix message manager documentation Correct the description of the count parameter of rtems_message_queue_flush(). Update #4508.
    Comment 3
    1. Sebastian Huber, Thu, 16 Sep 2021 07:37:35 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 7afc7a0/rtems-docs:

    rtems: Fix message manager documentation Correct the description of the count parameter of rtems_message_queue_flush(). Close #4508.

    4509 - Message queue priority dicipline is broken in SMP configurations

    Link https://devel.rtems.org/ticket/4509
    Id 4509
    Reporter Sebastian Huber
    Created 31 August 2021 08:18:18
    Modified 2 September 2021 05:51:53
    Owner Sebastian Huber
    Type defect
    Component score
    Status closed
    Resolution fixed
    Version 4.11
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    The message queue handler uses the thread queue extract operation to dequeue a receiver thread. This is wrong in SMP configurations since the extract thread queue operation does not ensure FIFO fairness across schedulers. The thread queue surrender operation should be used instead.

    Comment 1
    1. Sebastian Huber, Thu, 02 Sep 2021 05:48:07 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In d9249c9/rtems:

    score: Fix blocking message queue receive In order to ensure FIFO fairness across schedulers, the thread queue surrender operation must be used to dequeue a thread from the thread queue. The thread queue extract operation is intended for timeouts. Add _Thread_queue_Resume() which may be used to make extracted or surrendered threads ready again. Remove the now unused _Thread_queue_Extract_critical() function. Close #4509.
    Comment 2
    1. Sebastian Huber, Thu, 02 Sep 2021 05:51:53 GMT
    2. keywords: qualification added

    4510 - Fix ILP32 multilib variant in newlib for AArch64

    Link https://devel.rtems.org/ticket/4510
    Id 4510
    Reporter Ryan Long
    Created 31 August 2021 20:01:54
    Modified 22 November 2023 06:12:50
    Owner Sebastian Huber
    Type defect
    Component arch/aarch64
    Status assigned
    Resolution  
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    This flag is needed to force the generation of AArch64 assembly from C sources instead of using the hand-optimized code in newlib. The existing hand-optimized code has bugs for ILP32. There are multiple technical options to address this and lots of discussion:

    • Update newlib from upstream ARM source code
    • Add -DPREFER_SIZE_OVER_SPEED and always use C versions on aarch64
    • Fix existing code

    Attachments:

    1 Ryan Long, Fri, 03 Sep 2021 12:31:34 GMT
      attach: set to 0001-configure.host-Add-DPREFER_SIZE_OVER_SPEED.patch
    2 Ryan Long, Fri, 10 Sep 2021 21:42:33 GMT
      attach: set to 0001-aarch64-Add-ILP32-ABI-support-in-assembly.patch
    3 Kinsey Moore, Thu, 17 Mar 2022 21:17:26 GMT
      attach: set to 0001-aarch64-Add-ILP32-ABI-support-in-assembly-v2.patch
     
    Comment 1
    1. Ryan Long, Fri, 03 Sep 2021 16:36:21 GMT

    This patch is only temporary. It will be removed once it is fixed upstream.

    Comment 2
    1. Chris Johns, Tue, 07 Sep 2021 22:56:37 GMT

    Who is fixing the upstream?

    I have not been following newlib so is there a link to the discussion about this?

    Comment 3
    1. Ryan Long, Wed, 08 Sep 2021 13:25:42 GMT

    Replying to Chris Johns:

    Who is fixing the upstream?

    Kinsey has already gotten a fix merged with ARM. Newlib hasn't pulled those changes in yet though.

    I have not been following newlib so is there a link to the discussion about this?

    Here are the links to the discussions

    ​https://sourceware.org/pipermail/newlib/2020/017781.html ​https://sourceware.org/pipermail/newlib/2020/018169.html ​https://sourceware.org/pipermail/newlib/2020/018197.html

    Comment 4
    1. Chris Johns, Thu, 09 Sep 2021 08:28:12 GMT

    As discussed on devel@ the ILP32 support should be fixed or patched in newlib and we should not cause an performance regressions for LP64 targets.

    Comment 5
    1. Joel Sherrill, Thu, 09 Sep 2021 13:42:54 GMT
    2. description: modified (diff)
    3. summary: changed from Add -DPREFER_SIZE_OVER_SPEED for AArch64 builds to Fix ILP32 multilib variant in newlib for AArch64
    Comment 6
    1. Ryan Long, Mon, 20 Sep 2021 20:37:49 GMT

    In 0e54d58/rtems-source-builder:

    rtems-gcc-10-newlib-head.cfg: Add newlib patch Adds patch to add sanitation to the padding of bits and size_t types for AArch64 tools builds with newlib. These changes have been made in ARM, but newlib has yet to pull them. This can be removed once newlib has pulled the code. Updates #4510
    Comment 7
    1. Ryan Long, Mon, 20 Sep 2021 20:37:52 GMT

    In 3950b1e/rtems-source-builder:

    rtems-gcc-head-newlib-head.cfg: Add newlib patch Adds patch to add sanitation to the padding of bits and size_t types for AArch64 tools builds with newlib. These changes have been made in ARM, but newlib has yet to pull them. This can be removed once newlib has pulled the code. Updates #4510
    Comment 8
    1. Kinsey Moore, Thu, 16 Dec 2021 15:56:03 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed

    This has been verified as fixed thanks to Ryan's patches.

    Comment 9
    1. Kinsey Moore, Thu, 17 Mar 2022 21:53:24 GMT
    2. status: changed from closed to reopened
    3. resolution: fixed deleted

    Reopening this since it needs to be tracked until the patch is merged with newlib from the upstream optimized-routines repo.

    Comment 10
    1. Chris Johns, Tue, 29 Nov 2022 23:04:24 GMT
    2. version: changed from 6 to 7
    3. milestone: changed from 6.1 to 7.1

    Moved until ARM adds a correct patch to newlib.

    Comment 11
    1. Sebastian Huber, Thu, 27 Jul 2023 15:01:56 GMT
    2. owner: set to Sebastian Huber
    3. status: changed from reopened to assigned
    4. version: changed from 7 to 6
    5. milestone: changed from 7.1 to 6.1

    I guess you can wait forever if you want ARM to get this fixed. There are open issues in the ARM code:

    ​https://github.com/ARM-software/optimized-routines/issues/56

    ​https://github.com/ARM-software/optimized-routines/pull/57

    Comment 12
    1. Kinsey Moore, Thu, 27 Jul 2023 15:11:38 GMT

    I've actually had some luck getting changes into optimized-routines. The hard part is getting them merged into newlib.

    Comment 13
    1. Sebastian Huber, Thu, 27 Jul 2023 15:12:55 GMT

    I prepared some patches for Newlib, however, there is this open issue with the notes.

    Comment 14
    1. Sebastian Huber, Wed, 22 Nov 2023 06:12:50 GMT

    In 07be298/rtems-source-builder:

    6/7: Update Newlib Pick up fixes for ARM/optimized-routines and the memory reclamation at thread exit. Update #4510. Update #4967.

    4511 - Count of postponed jobs is not set to zero for a newly created rate-monotonic period object

    Link https://devel.rtems.org/ticket/4511
    Id 4511
    Reporter Sebastian Huber
    Created 9 September 2021 13:00:32
    Modified 6 October 2021 06:50:11
    Owner Sebastian Huber
    Type defect
    Component rtems
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    rtems_rate_monotonic_get_status() returns an arbitrary number for the count of postponed jobs if it is called for a newly created period object. The count of postponed jobs should be cleared to zero at object creation.

    Comment 1
    1. Sebastian Huber, Thu, 09 Sep 2021 13:07:17 GMT
    2. keywords: qualification added
    Comment 2
    1. Sebastian Huber, Thu, 09 Sep 2021 13:08:09 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 82a61af/rtems:

    rtems: Initialize count of postponed jobs The rtems_rate_monotonic_get_status() directive returns an arbitrary number for the count of postponed jobs if it is called for a newly created period object. Set the count of postponed jobs to zero during object creation. Close #4511.
    Comment 3
    1. Sebastian Huber, Wed, 06 Oct 2021 06:50:11 GMT

    In 38c2147/rtems:

    rtems: Set postponed jobs in rate-monotonic cancel Set the postponed jobs count to zero in rtems_rate_monotonic_cancel() so that rtems_rate_monotonic_get_status() returns a consistent status for inactive periods. Update #4511.

    4513 - Document parts of the Cache Manager in the Classic API Guide

    Link https://devel.rtems.org/ticket/4513
    Id 4513
    Reporter Sebastian Huber
    Created 10 September 2021 08:29:13
    Modified 16 September 2021 07:43:08
    Owner Sebastian Huber
    Type enhancement
    Component doc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    The Cache Manager directives are available via . Document most of them in the Classic API Guide.

    Comment 1
    1. Sebastian Huber, Thu, 16 Sep 2021 07:43:08 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    The documentation was updated.


    4517 - Build failures for MacOS

    Link https://devel.rtems.org/ticket/4517
    Id 4517
    Reporter Chris Johns
    Created 20 September 2021 00:15:33
    Modified 29 November 2022 23:41:56
    Owner  
    Type defect
    Component tool
    Status closed
    Resolution wontfix
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    This ticket is a collection of the following archs that fail to build:

    • bfin
    • lm32
    • mips
    • or1k
    • powerpc
    • v850
    bfin
    ../../../sourceware-mirror-binutils-gdb-7ab567f/sim/bfin/dv-bfin_dma.c:124:35: error: implicitly declaring library function 'abs' with type 'int (int)' [-Werror,-Wimplicit-function-declaration]
    if (dma->ele_size != (unsigned) abs (dma->x_modify))
    lm32
    ../../../sourceware-mirror-binutils-gdb-7ab567f/sim/lm32/dv-lm32cpu.c:151:8: error: implicit declaration of function 'lm32bf_h_csr_get' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    im = lm32bf_h_csr_get (cpu, LM32_CSR_IM);
    mip
    ../../../sourceware-mirror-binutils-gdb-7ab567f/sim/mips/cp1.c:495:7: error: implicitly declaring library function 'abort' with type 'void (void) __attribute 
    or1k
    ../../../sourceware-mirror-binutils-gdb-7ab567f/sim/or1k/../common/cgen-trace.c:213:6: error: implicitly declaring library function 'abort' with type 'void (void) __attribute__((noreturn))' [-Werror,-Wimplicit-function-declaration]
    abort ();
    powerpc
    semantics.c:42:7: error: implicit declaration of function 'tree_find_property' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    if (tree_find_property(root, "/options/mpc860c0"))
    v850
    ../../../sourceware-mirror-binutils-gdb-7ab567f/sim/v850/simops.c:1651:6: error: implicit declaration of function 'free' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    free (path);
    Comment 1
    1. Chris Johns, Mon, 20 Sep 2021 07:54:33 GMT
    2. description: modified (diff)
    Comment 2
    1. Chris Johns, Mon, 20 Sep 2021 07:55:01 GMT
    2. description: modified (diff)
    Comment 3
    1. Chris Johns, Tue, 29 Nov 2022 23:41:56 GMT
    2. status: changed from new to closed
    3. resolution: set to wontfix

    There may be issues. Reopen if a specific build is needed.


    4518 - RTEMS and LibBSD both provide competing pipe() interfaces

    Link https://devel.rtems.org/ticket/4518
    Id 4518
    Reporter Chris Johns
    Created 23 September 2021 05:29:15
    Modified 24 September 2021 00:07:33
    Owner Chris Johns
    Type defect
    Component network/libbsd
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    RTEMS provides a pipe() call in cpukit/libfs/src/pipe/pipe.c and LibBSD also provides a call in rtemsbsd/rtems/rtems-bsd-syscall-api.c. We should not have competing interfaces.

    The selection of the version you get depends on the link order and the linker version. The RTEMS 6 linker seems to have a different preference to RTEMS 5. Apart from this fragility LibBSD should not be providing this interface.

    A LibBSD pipe() is problematic for a number of reasons and so I am going to remove the call from it.

    If LibBSD support is needed it needs to be via a file system op handles like all other file system interfaces for descriptor based access. I will not be adding this support.

    The removal of pipe() from LibBSD removes the kqueue support for pipes. See the test selectpollkqueue01. If this support is needed please contact the RTEMS developers.

    Comment 1
    1. Chris Johns, Thu, 23 Sep 2021 05:32:50 GMT
    2. description: modified (diff)
    Comment 2
    1. Chris Johns, Thu, 23 Sep 2021 05:34:24 GMT
    2. description: modified (diff)
    Comment 3
    1. Chris Johns, Thu, 23 Sep 2021 09:16:00 GMT
    2. description: modified (diff)
    Comment 4
    1. Chris Johns, Fri, 24 Sep 2021 00:03:48 GMT
    2. description: modified (diff)
    3. summary: changed from RTEMS and LibBSD both provide pipe() to RTEMS and LibBSD both provide competing pipe() interfaces
    Comment 5
    1. Chris Johns, Fri, 24 Sep 2021 00:06:48 GMT

    The removal of pipe() from LibBSD does effect the kqueue support but it also lets the RTEMS version get linked in and do it's work. Pipe for libio descriptors and libmisc/redirector work nicely well before LibBSD is initialised and this is important in some applications. Especially ones that capture the console early to implement a dmesg type of support.

    I am happy to see a file op added for pipe however I view RTEMS as having priority over the same call signature in LibBSD if there is a clash and there is.

    I have an app that crashes because of this. I have no idea why on RTEMS 5 the RTEMS one is linked in and the same app and build system now results the LibBSD one. Having 2 interfaces is wrong.

    Comment 6
    1. Chris Johns, Fri, 24 Sep 2021 00:07:33 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 2e5f808/rtems-libbsd:

    rtemsbsd/syscalls: Remove pipe() This call is provided by RTEMS and that is preferred Closes #4518

    4519 - record-main-lttng.cc: Out-of-bounds access

    Link https://devel.rtems.org/ticket/4519
    Id 4519
    Reporter Ryan Long
    Created 30 September 2021 19:55:28
    Modified 7 October 2021 14:25:10
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1503017: Out-of-bounds access in CopyThreadName?().

     1. Condition api_index < 3, taking false branch.
    298 if (api_index < THREAD_API_COUNT) {
    299 name = thread_names_[api_index][GetObjIndexOfID(item.data)];
    300 } else {
    2. alias: Assigning: name = kEmptyThreadName. name now points to byte 0 of kEmptyThreadName (which consists of 3 bytes).
    301 name = kEmptyThreadName;
    302 }
    303
    CID 1503017 (#1 of 1): Out-of-bounds access (OVERRUN)3. overrun-buffer-arg: Overrunning buffer pointed to by name of 3 bytes by passing it to a function which accesses it at byte offset 15 using argument 16UL.
    304 std::memcpy(dst, name, THREAD_NAME_SIZE);
    Comment 1
    1. Ryan Long, Thu, 07 Oct 2021 14:25:10 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 83b3d58/rtems-tools:

    record-main-lttng.cc: Change size of empty string CID 1503017: Out-of-bounds access in CopyThreadName?(). Change size of kEmptyThreadName from THREAD_API_COUNT to THREAD_NAME_SIZE. Closes #4519

    4522 - Optimize red-black tree insert/extract

    Link https://devel.rtems.org/ticket/4522
    Id 4522
    Reporter Sebastian Huber
    Created 5 October 2021 14:16:32
    Modified 7 October 2021 19:39:19
    Owner Sebastian Huber
    Type enhancement
    Component tool/newlib
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    Code coverage analysis of the red-black tree insert/extract operations defined
    in showed that the macros contain dead code. To fix this simplify some expressions and add specialized rotations:

    ​https://sourceware.org/pipermail/newlib/2021/018599.html

    Comment 1
    1. Sebastian Huber, Thu, 07 Oct 2021 19:39:19 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 889cf95/rtems-source-builder:

    Update newlib to fetch optimizations Close #4522.

    4524 - Re-add lost capability for custom stack allocator to allocate IDLE thread stacks

    Link https://devel.rtems.org/ticket/4524
    Id 4524
    Reporter Joel Sherrill
    Created 7 October 2021 22:21:23
    Modified 2 May 2023 08:12:16
    Owner Joel Sherrill <joel@…>
    Type defect
    Component rtems
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    The move to statically allocate the stacks for the IDLE threads resulted in the loss of the capability for a custom stack allocator to be able to allocate the idle threads' stacks. This occurred close to the 5 branching point and is addressed for the 5 branch by #4520. This ticket is for the master (6).

    Comment 1
    1. Joel Sherrill, Mon, 11 Oct 2021 13:39:59 GMT
    2. owner: set to Joel Sherrill <joel@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 822ebb4c/rtems:

    Add support for IDLE Thread stack allocator Add a stack allocator hook specifically for allocation of IDLE thread stacks. This allows the user to decide if IDLE thread stacks are statically allocated or handled by the same custom allocator mechanism as other thread stacks. Closes #4524.
    Comment 2
    1. Joel Sherrill, Tue, 12 Oct 2021 18:44:34 GMT

    In df5be4c/rtems-docs:

    task-stack-alloc.rst: Add CONFIGURE_TASK_STACK_FROM_ALLOCATOR Updates #4524.
    Comment 3
    1. Sebastian Huber, Mon, 25 Oct 2021 06:00:27 GMT

    In 9be97a3/rtems:

    score: Optimize default idle task stack allocator Update #4524.
    Comment 4
    1. Sebastian Huber, Mon, 25 Oct 2021 06:00:37 GMT

    In f1723d12/rtems:

    rtems: Regenerate for IDLE task allocator option Update #4524.
    Comment 5
    1. Sebastian Huber, Mon, 25 Oct 2021 06:10:52 GMT

    In 46dbb6d/rtems-docs:

    c-user: Regenerate for IDLE task allocator option Update #4524.
    Comment 6
    1. Sebastian Huber, Wed, 23 Feb 2022 08:29:13 GMT

    In 2f8be4b/rtems-docs:

    c-user: Document CONFIGURE_SCHEDULER_TABLE_ENTRIES Update #4524.
    Comment 7
    1. Sebastian Huber, Wed, 23 Feb 2022 14:30:15 GMT

    The last commit does not belong to this ticket. It references the wrong ticket number.

    Comment 8
    1. Sebastian Huber, Fri, 14 Oct 2022 09:41:45 GMT

    In 2846b17/rtems:

    config: Changeable size for IDLE stack allocator Allow the IDLE stack allocator to change the stack size. This can be used by applications with a very dynamic thread-local storage size to adjust the thread storage area of the IDLE tasks dynamically. Update #4524.
    Comment 9
    1. Sebastian Huber, Fri, 14 Oct 2022 09:42:01 GMT

    In 45ee958/rtems:

    config: Add CONFIGURE_IDLE_TASK_STORAGE_SIZE By default, allocate the IDLE task storage areas from the RTEMS Workspace. This avoids having to estimate the thread-local storage size in the default configuration. Add the application configuration option CONFIGURE_IDLE_TASK_STORAGE_SIZE to request a static allocation of the task storage area for IDLE tasks. Update #3835. Update #4524.
    Comment 10
    1. Sebastian Huber, Fri, 14 Oct 2022 09:42:03 GMT

    In 64fbeaa/rtems:

    score: INTERNAL_ERROR_IDLE_THREAD_STACK_TOO_SMALL Ensure that the IDLE storage allocator did allocate a suffiently large area. Update #3835. Update #4524.
    Comment 11
    1. Sebastian Huber, Tue, 02 May 2023 08:12:16 GMT
    2. keywords: qualification added

    4525 - rtems-tld.cpp: Logically dead code error spotted by Coverity

    Link https://devel.rtems.org/ticket/4525
    Id 4525
    Reporter Ryan Long
    Created 8 October 2021 17:23:48
    Modified 12 October 2021 14:40:44
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    CID 1399595: Logically dead code in generate_traces().

    1263            if (sig.has_ret () && !generator_.ret_trace.empty ())
    1264 {
    1265 if (ds_added)
    1266 ds += " + ";
    1267 else
    1268 ds_added = true;
    const: At condition drs_added, the value of drs_added must be equal to 0.
    dead_error_condition: The condition drs_added cannot be true.
    1269 if (drs_added)
    CID 1399595 (#1 of 1): Logically dead code (DEADCODE)dead_error_line: Execution cannot reach this statement: drs += " + ";.
    1270 drs += " + ";
    1271 else
    1272 drs_added = true;
    1273 ds += "sizeof(" + sig.ret + ')';
    1274 drs += "sizeof(" + sig.ret + ')';
    1275 }
    Comment 1
    1. Ryan Long, Tue, 12 Oct 2021 14:40:44 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 0acb4d0/rtems-tools:

    rtems-tld.cpp: Remove logically dead code CID 1399595: Logically dead code in generate_traces(). Closes #4525

    4527 - Add new directives to get all time values provided by the timehands

    Link https://devel.rtems.org/ticket/4527
    Id 4527
    Reporter Sebastian Huber
    Created 11 October 2021 14:01:01
    Modified 19 November 2021 08:54:28
    Owner Sebastian Huber
    Type enhancement
    Component rtems
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Add directives for all time values provided by the timehands to the Clock Manager.

    Comment 1
    1. Sebastian Huber, Wed, 17 Nov 2021 08:11:55 GMT

    In ccbcfb6/rtems:

    rtems: Add new clock manager directives Update #4527.
    Comment 2
    1. Sebastian Huber, Fri, 19 Nov 2021 08:54:28 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 38ec48d/rtems-docs:

    c-user: Document new clock manager directives Add new clock manager directives to get all times provided by the timehands. Close #4527.

    4528 - rate monotonic: reset of CPU usage time not always detected

    Link https://devel.rtems.org/ticket/4528
    Id 4528
    Reporter Frank Kuehndel
    Created 11 October 2021 18:03:13
    Modified 25 October 2021 16:01:04
    Owner Sebastian Huber
    Type defect
    Component rtems
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity trivial
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    rtems_rate_monotonic_get_statistics() and rtems_rate_monotonic_get_status() must detect whether the used CPU time was resetted during a period (rtems_cpu_usage_reset()). This is achieved by storing the CPU usage time counter value when the period is started. To detect whether there was a reset, the CPU usage time value from the period start and the current value are compared. If the current value is lower than the one from the start there was a reset.

    The bug is that when the current CPU usage time value is greater than the value at the start, a reset may still have occurred.

    For example, when the period starts the used CPU time is at 1000 and 1000 is stored. Then the CPU time counter is resetted - so it is 0. Assume the period thread does some work and the CPU usage time is at 100 when rtems_rate_monotonic_get_status() is called. In this case the current code detects the reset and returns correctly RTEMS_NOT_DEFINED. Yet, when more CPU usage time passes without rtems_rate_monotonic_period() being called - lets say the used CPU time is at 1200 - and rtems_rate_monotonic_get_status() is called, the stored value (1000) is smaller than the current one (1200) so the reset is not detected.

    This bug has been found with a test which manipulates the time directly. I doubt this bug is very relevant in practice. It requires that there are periods with long intervals and much CPU load and that either the system is shortly started or rtems_cpu_usage_reset() is used frequently.

    The background:

    The Classic API guide ​https://docs.rtems.org/branches/master/c-user/rate-monotonic/directives.html#rtems-rate-monotonic-get-status says for rtems_rate_monotonic_get_status():

    RTEMS_NOT_DEFINED: There was no status available due to a reset of the processor time usage of the owner task of the period.

    The directive rtems_cpu_usage_reset() sets the_thread->cpu_time_used 0 in line 43 of cpukit/libmisc/cpuuse/cpuusagereset.c.

    The detection whether there was an reset or not is done in file cpukit/rtems/src/ratemonperiod.c line 56 in function _Rate_monotonic_Get_status():

     [...]
    /*
    * Determine cpu usage since period initiated.
    */
    _Thread_Get_CPU_time_used( owning_thread, &used );
    /*
    * The cpu usage info was reset while executing. Can't
    * determine a status.
    */
    if ( _Timestamp_Less_than( &used, &the_period->cpu_usage_period_initiated ) )
    return false;
    [...]

    The directive rtems_rate_monotonic_get_statistics() is affected indirectly because collecting its data is skipped when there was a reset. cpukit/rtems/src/ratemonperiod.c line 149 in function _Rate_monotonic_Update_statistics() (which in turn calls the above code).

    For the records:

    RTEMS_VERSION    = 6.0.0
    remote origin = git://git.rtems.org/sebh/rtems.git
    commit HEAD = 1df2666ca1d73807a338e0d209ed1f42f67f00a9 (HEAD, origin/qual-43)
    config.ini =
    [arm/realview_pbx_a9_qemu]
    RTEMS_DEBUG = True
    RTEMS_NETWORKING = True
    RTEMS_POSIX_API = True
    RTEMS_SMP = True
    BUILD_SAMPLES = False
    BUILD_VALIDATIONTESTS = True
    BUILD_UNITTESTS = True
    NEWLIB_VERSION = 3.2.0
    SOURCE_BUILDER = Set Builder, 6 (f12dee02d52d)
    GCC_VERSION = arm-rtems6-gcc (GCC) 10.3.1 20210409 (RTEMS 6, RSB c938bd7cbe16bd03d3b382f2d7cfee6a86aa9424, Newlib 0c0f3df)
    BINUTILS_VERSION = GNU ld (GNU Binutils) 2.36.1.20210409
    Comment 1
    1. Sebastian Huber, Tue, 12 Oct 2021 06:22:08 GMT
    2. keywords: qualification added
    3. status: changed from assigned to accepted
    4. milestone: changed from Indefinite to 6.1
    Comment 2
    1. Sebastian Huber, Mon, 25 Oct 2021 06:00:31 GMT

    In 0221da5f/rtems:

    rtems: Fix rate monotonic statistics The rate monotonic period statistics were affected by rtems_cpu_usage_reset(). The logic to detect and work around a CPU usage reset was broken. The Thread_Contol::cpu_time_used is changed to contain the processor time used throughout the entire lifetime of the thread. The new member Thread_Contol::cpu_time_used_at_last_reset is added to contain the processor time used at the time of the last reset through rtems_cpu_usage_reset(). This decouples the resets of the CPU usage and the rate monotonic period statistics. Update #4528.
    Comment 3
    1. Sebastian Huber, Mon, 25 Oct 2021 06:10:54 GMT
    2. status: changed from accepted to closed
    3. resolution: set to fixed

    In feb4687/rtems-docs:

    c-user: rtems_rate_monotonic_get_status() Mention that resetting the processor usage time of tasks has no impact on the period status and statistics. Remove no longer relevant RTEMS_NOT_DEFINED error status. Close #4528.
    Comment 4
    1. Sebastian Huber, Mon, 25 Oct 2021 06:12:52 GMT

    In 24922d0/rtems:

    rtems: rtems_rate_monotonic_get_status() Mention that resetting the processor usage time of tasks has no impact on the period status and statistics. Remove no longer relevant RTEMS_NOT_DEFINED error status. Update #4528.
    Comment 5
    1. Sebastian Huber, Mon, 25 Oct 2021 16:01:04 GMT

    In 75c133bd/rtems:

    sptests/sp69: Remove test case This error condition no longer exists. Update #4528.

    4531 - Data corruption in SMP schedulers

    Link https://devel.rtems.org/ticket/4531
    Id 4531
    Reporter Sebastian Huber
    Created 20 October 2021 05:32:12
    Modified 23 November 2021 13:36:27
    Owner Sebastian Huber
    Type defect
    Component score
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity critical
    Keywords SMP, qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    Certain operations involving sticky thread queues, thread to processor affinity changes, priority updates, or thread pinning lead to data corruption in SMP schedulers, in particular the default SMP scheduler (SMP EDF).

    Comment 1
    1. Sebastian Huber, Wed, 20 Oct 2021 05:37:48 GMT
    2. severity: changed from normal to critical
    Comment 2
    1. Sebastian Huber, Tue, 23 Nov 2021 13:35:06 GMT

    In 577262a7/rtems:

    score: Add red-black tree append/prepend These functions are a faster alternative to _RBTree_Insert_inline() if it is known that the new node is the maximum/minimum node. Update #4531.
    Comment 3
    1. Sebastian Huber, Tue, 23 Nov 2021 13:35:10 GMT

    In 45e942d/rtems:

    score: Rename _Scheduler_Set_idle_thread() Rename _Scheduler_Set_idle_thread() in _Scheduler_Node_set_idle_user() and move it to . Update #4531.
    Comment 4
    1. Sebastian Huber, Tue, 23 Nov 2021 13:35:13 GMT

    In 7ae4f569/rtems:

    score: Not set CPU in _Scheduler_Use_idle_thread() Do not set the CPU of the idle thread in _Scheduler_Use_idle_thread(). This helps to use _Scheduler_Try_to_schedule_node() under more general conditions in the future, for example in case the owner and user of a node are not the same. Update #4531.
    Comment 5
    1. Sebastian Huber, Tue, 23 Nov 2021 13:35:17 GMT

    In f0f60a1/rtems:

    score: Change _Scheduler_Try_to_schedule_node() Add the victim node as parameter instead of the idle thread. Update #4531.
    Comment 6
    1. Sebastian Huber, Tue, 23 Nov 2021 13:35:20 GMT

    In bd55f69/rtems:

    score: Simplify _Scheduler_Exchange_idle_thread() Remove superfluous idle parameter. Update #4531.
    Comment 7
    1. Sebastian Huber, Tue, 23 Nov 2021 13:35:24 GMT

    In e787091/rtems:

    score: Add missing idle thread releases Update #4531.
    Comment 8
    1. Sebastian Huber, Tue, 23 Nov 2021 13:35:28 GMT

    In 81659420/rtems:

    score: Add missing idle thread exchanges Update #4531.
    Comment 9
    1. Sebastian Huber, Tue, 23 Nov 2021 13:35:31 GMT

    In 6286a40/rtems:

    score: Scheduler insert after move Insert nodes after moving the second node to reduce the items in the data structure for the insert operation. This also avoids having two nodes for the same processor inserted into the scheduled chain. Update #4531.
    Comment 10
    1. Sebastian Huber, Tue, 23 Nov 2021 13:35:35 GMT

    In 757a1096/rtems:

    score: Remove return value from enqueue scheduled The return value was unused. Remove it. Update #4531.
    Comment 11
    1. Sebastian Huber, Tue, 23 Nov 2021 13:35:38 GMT

    In a53229bb/rtems:

    score: Use extract from scheduled callbacks Use the extract from scheduled callback provided by the scheduler implementation in the SMP scheduler framework. Update #4531.
    Comment 12
    1. Sebastian Huber, Tue, 23 Nov 2021 13:35:42 GMT

    In 9d3e8212/rtems:

    score: Rework affine ready queue handling Rework the handling of the affine ready queue for the EDF SMP scheduler. Do the queue handling in the node insert, move, and extract operations. Remove the queue handling from _Scheduler_EDF_SMP_Allocate_processor(). Update #4531.
    Comment 13
    1. Sebastian Huber, Tue, 23 Nov 2021 13:35:45 GMT

    In 75527ef3/rtems:

    score: Optimize SMP EDF move to ready operation If a node is moved from the scheduled chain to the ready queue, then we know that it is the highest priority ready node. So, it can be prepended to the ready queue without doing any comparisons. Update #4531.
    Comment 14
    1. Sebastian Huber, Tue, 23 Nov 2021 13:35:49 GMT

    In 3781709/rtems:

    score: Add SMP scheduler idle exchange callback Update #4531.
    Comment 15
    1. Sebastian Huber, Tue, 23 Nov 2021 13:35:56 GMT

    In ff20bc9/rtems:

    score: Rework idle handling in SMP schedulers This patch fixes an issue with the idle thread handling in the SMP scheduler framework used for the MrsP locking protocol. The approach to use a simple chain of unused idle threads is broken for schedulers which support thread to processor affinity. The reason is that the thread to processor affinity introduces another ordering indicator which may under certain conditions lead to a reordering of idle threads in the scheduled chain. This reordering is not propagated to the chain of unused idle threads. This could lead to use an idle thread for a sticky scheduler node which is already in use. This locks up the system in infinite loops in the thread context switch procedure. To fix this, the SMP scheduler implementations must now provide callbacks to get and release an unused idle thread. Update #4531.
    Comment 16
    1. Sebastian Huber, Tue, 23 Nov 2021 13:36:09 GMT

    In dcd8b93/rtems:

    score: Move _Scheduler_Block_node() Move _Scheduler_Block_node() into _Scheduler_SMP_Block(). This simplifies the code and makes it easier to review. Update #4531.
    Comment 17
    1. Sebastian Huber, Tue, 23 Nov 2021 13:36:13 GMT

    In c6362f6/rtems:

    score: Move _Scheduler_Unblock_node() Move _Scheduler_Unblock_node() into _Scheduler_SMP_Unblock(). This simplifies the code and makes it easier to review. Update #4531.
    Comment 18
    1. Sebastian Huber, Tue, 23 Nov 2021 13:36:16 GMT

    In d0434b88/rtems:

    score: Remove victim thread from CPU allocation Update #4531.
    Comment 19
    1. Sebastian Huber, Tue, 23 Nov 2021 13:36:20 GMT

    In 4d90289e/rtems:

    score: _Scheduler_SMP_Schedule_highest_ready() Simplify callers of _Scheduler_SMP_Schedule_highest_ready(). Move the node state change and the extraction from scheduled into _Scheduler_SMP_Schedule_highest_ready(). Move the idle thread release to the caller which have more information about the presence of an idle thread. Update #4531.
    Comment 20
    1. Sebastian Huber, Tue, 23 Nov 2021 13:36:23 GMT

    In fc64e837/rtems:

    score: Rework ask for help requests Process ask for help requests on the current processor. This avoids using inter-processor interrupts to make the system behaviour a bit more predictable. Update #4531.
    Comment 21
    1. Sebastian Huber, Tue, 23 Nov 2021 13:36:27 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 6443c9d/rtems:

    score: Fix assertion in SMP scheduler framework Properly assert that the scheduled chain is not empty. Fix formatting. Close #4531.

    4532 - Priority inversion issues with MrsP locking protocol implementation

    Link https://devel.rtems.org/ticket/4532
    Id 4532
    Reporter Sebastian Huber
    Created 20 October 2021 05:37:11
    Modified 23 November 2021 13:35:53
    Owner Sebastian Huber
    Type defect
    Component score
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity critical
    Keywords SMP, qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    While a thread is scheduled on a helping scheduler, while it does not own a MrsP semaphore, if it obtains a MrsP semaphore, then no scheduler node using an idle thread and the ceiling priority of the semaphore is unblocked for the home scheduler. This could lead to priority inversion issues and is not in line with the MrsP protocol.

    Comment 1
    1. Sebastian Huber, Tue, 23 Nov 2021 13:35:53 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 3d6ebde1/rtems:

    score: Add SMP scheduler make/clean sticky This patch fixes the following broken behaviour:
    While a thread is scheduled on a helping scheduler, while it does not own a MrsP semaphore, if it obtains a MrsP semaphore, then no scheduler node using an idle thread and the ceiling priority of the semaphore is unblocked for the home scheduler.
    This could lead to priority inversion issues and is not in line with the MrsP protocol. Introduce two new scheduler operations which are only enabled if RTEMS_SMP is defined. The operations are used to make the scheduler node of the home scheduler sticky and to clean the sticky property. This helps to keep the sticky handing out of the frequently used priority update operation. Close #4532.

    4533 - libdebugger should only build for archs with a backend

    Link https://devel.rtems.org/ticket/4533
    Id 4533
    Reporter Chris Johns
    Created 21 October 2021 02:04:25
    Modified 25 October 2021 02:55:00
    Owner Chris Johns
    Type defect
    Component lib/debugger
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Libdebugger has limited backend support however the generic parts are bring built for all architectures and libdebugger.a is being install however it will never link because of the missing backend support.

    LibBSD has been fixed to correctly detect libdebugger.a and enable the test. This now fails to build.

    Comment 1
    1. Chris Johns, Mon, 25 Oct 2021 02:55:00 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 3f0ad2b/rtems:

    spec/libdebugger: Only enable for supported architectures Closes #4533

    4534 - SMP EDF scheduler violates priority group ordering

    Link https://devel.rtems.org/ticket/4534
    Id 4534
    Reporter Sebastian Huber
    Created 27 October 2021 07:40:13
    Modified 23 November 2021 13:36:03
    Owner Sebastian Huber
    Type defect
    Component score
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords SMP, qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    The SMP EDF scheduler supports one-to-one and one-to-all thread to processor affinities. The one-to-one thread to processor affinity introduces a constraint on the ordering of threads. The implementation uses one ready queue for threads which have a one-to-all affinity and one for each one-to-one affinity group. To order threads across the ready queues, a generation number is used. However, the approach to update the generation number each time a thread is inserted into a ready queue is wrong. The generation number need to be updated only in the enqueue and enqueue scheduled operations where an insert priority is available. The scheduled chain needs to take the generation number into account.

    An example scenario which shows the bug is this. Let T be a high priority task affine to processor X. Let A be a lower priority task affine to processor X. Let B be a lower priority task with no affinity to a particular processor which executes on processor Y. Let B be in the same priority group than A and after A. Let T set the affinity to all processors. Now A (higher priority relative to B) should execute on X and T (high priority) should execute on Y.

    Comment 1
    1. Sebastian Huber, Wed, 27 Oct 2021 08:04:06 GMT
    2. description: modified (diff)
    Comment 2
    1. Sebastian Huber, Tue, 23 Nov 2021 13:35:59 GMT

    In 6d20f0c5/rtems:

    score: Add node to insert to Chain_Node_order This allows to use additional members of the nodes for comparision. Update #4534.
    Comment 3
    1. Sebastian Huber, Tue, 23 Nov 2021 13:36:03 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In b9990b8d/rtems:

    score: Fix SMP EDF priority group ordering The SMP EDF scheduler supports one-to-one and one-to-all thread to processor affinities. The one-to-one thread to processor affinity introduces a constraint on the ordering of threads. The implementation uses one ready queue for threads which have a one-to-all affinity and one for each one-to-one affinity group. To order threads across the ready queues, a generation number is used. However, the approach to update the generation number each time a thread is inserted into a ready queue was wrong. The generation number needs to be updated only in the enqueue and enqueue scheduled operations where an insert priority is available. The scheduled chain needs to take the generation number into account. An example scenario which shows the bug is this. Let T be a high priority task affine to processor X. Let A be a lower priority task affine to processor X. Let B be a lower priority task with no affinity to a particular processor which executes on processor Y. Let B be in the same priority group than A and after A. Let T set the affinity to all processors. Now A (higher priority relative to B) should execute on X and T (high priority) should execute on Y. Close #4534.

    4543 - cannot build multiprocessor application on eclipse

    Link https://devel.rtems.org/ticket/4543
    Id 4543
    Reporter mohamedosama94
    Created 3 November 2021 14:22:44
    Modified 16 December 2021 15:38:53
    Owner  
    Type task
    Component arch/aarch64
    Status closed
    Resolution worksforme
    Version 6
    Milestone 6.1
    Priority high
    Severity critical
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Hi,

    hope my mail finds you well, i have an issue as i am using rtems6 for zinq a53_lp64 i downloaded the source and installed the toolchain aarch64-rtems6 and i built the bsp successfully by using waf and i used the qemu to run the test samples exe files successfully , so i installed the eclipse and added rtems plugin to it and i built the sample rtems example successfully but when i try to build an application task has test_begin() or test_end() the make is uncomplete and error (.text.Init+0x50): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `rtems_test_begin' always appear i tried open declaration and i found the reference prototype
    int rtems_test_begin(const char* name, const RTEMS_TEST_STATE state);

    on test-info.h so eclipse refuse to build as cannot see the source code of the function and this also for rtems_test_end so what i have to do to make the eclipse build the rtems-application, kindly check the logs

    /home/mohamed/quick-starts/rtems/6/lib/gcc/aarch64-rtems6/10.3.1/../../../../aarch64-rtems6/bin/ld: o-optimize/init.o: in function `Init':
    /home/mohamed/eclipse-ground/rtems/rtems-app__init.c:64: undefined reference to `rtems_test_begin'
    /home/mohamed/eclipse-ground/rtems/rtems-app__init.c:64:(.text.Init+0x50): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `rtems_test_begin'
    /home/mohamed/quick-starts/rtems/6/lib/gcc/aarch64-rtems6/10.3.1/../../../../aarch64-rtems6/bin/ld: /home/mohamed/eclipse-ground/rtems/rtems-app__init.c:66: undefined reference to `locked_print_initialize'
    /home/mohamed/eclipse-ground/rtems/rtems-app__init.c:66:(.text.Init+0x54): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `locked_print_initialize'
    /home/mohamed/quick-starts/rtems/6/lib/gcc/aarch64-rtems6/10.3.1/../../../../aarch64-rtems6/bin/ld: o-optimize/init.o: in function `success':
    /home/mohamed/eclipse-ground/rtems/rtems-app__init.c:31: undefined reference to `rtems_test_end'
    /home/mohamed/eclipse-ground/rtems/rtems-app__init.c:31:(.text.Init+0x5c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `rtems_test_end'
    /home/mohamed/quick-starts/rtems/6/lib/gcc/aarch64-rtems6/10.3.1/../../../../aarch64-rtems6/bin/ld: /home/mohamed/eclipse-ground/rtems/rtems-app__init.c:32: undefined reference to `rtems_test_exit'
    /home/mohamed/eclipse-ground/rtems/rtems-app__init.c:32:(.text.Init+0x64): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `rtems_test_exit'
    /home/mohamed/quick-starts/rtems/6/lib/gcc/aarch64-rtems6/10.3.1/../../../../aarch64-rtems6/bin/ld: o-optimize/init.o:(.rodata._User_extensions_Initial_extensions+0x80): undefined reference to `rtems_test_fatal_extension'
    collect2: error: ld returned 1 exit status

    best regards,
    Mohamed

    Comment 1
    1. Joel Sherrill, Wed, 03 Nov 2021 16:11:38 GMT

    Those symbols are part of the RTEMS test support and would not have been included in whatever test directory you copied. They may be in a test support library. I don't know if it is installed.

    I hope you mean SMP and not multiprocessor. Those are different configurations in RTEMS terminology.

    Which test did you copy?

    Comment 2
    1. mohamedosama94, Thu, 04 Nov 2021 10:43:20 GMT

    Replying to Joel Sherrill:

    Those symbols are part of the RTEMS test support and would not have been included in whatever test directory you copied. They may be in a test support library. I don't know if it is installed.

    I hope you mean SMP and not multiprocessor. Those are different configurations in RTEMS terminology.

    Which test did you copy?

    Dear Joel Sherrill,

    thanks for your reply, yes I mean SMP, and this issue happens when I use any test suites samples that have test_begin() and test_end() functions like: "base_mp "test, "base_sp" test but test like "hello" that doesn't have these functions build normally on eclipse so how can I install the support library and make the eclipse can reach them

    Comment 3
    1. Joel Sherrill, Thu, 04 Nov 2021 13:29:30 GMT

    Replace test_begin() and test_end() with a print to denote beginning and end of the test.

    base_mp is for the distributed multiprocessing model in RTEMS. You want to build with SMP not multiprocessing (confusing I know). And I don't think there is an SMP sample. You may have to look at one of the tests smptest directory. These all use test support functions also but smpschedaffinity01 and smpschedaffinity01 are not large and show how to do affinity. smpthreadpin01 shows pinning but is a bit more complicated than just demonstrating that a collection of threads were properly assigned to the desired core.

    Comment 4
    1. Joel Sherrill, Thu, 16 Dec 2021 15:38:53 GMT
    2. status: changed from new to closed
    3. resolution: set to worksforme

    4544 - The last processor must not be removed if it is owned by a helping scheduler

    Link https://devel.rtems.org/ticket/4544
    Id 4544
    Reporter Sebastian Huber
    Created 8 November 2021 09:44:53
    Modified 23 November 2021 13:49:07
    Owner Sebastian Huber
    Type defect
    Component score
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords SMP, qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    The following error condition is currently not checked by rtems_scheduler_remove_processor(): While an attempt is made to remove a processor from a scheduler, while the processor is the only processor owned by the scheduler, if a thread exists which uses the scheduler as a helping scheduler, then shall not be removed.

    The reason is that ask for help requests and withdraw node requests are processed asynchronously in any order. An ask for help request carried out on a scheduler without a processor is undefined behaviour.

    Comment 1
    1. Sebastian Huber, Wed, 10 Nov 2021 08:21:56 GMT
    2. description: modified (diff)
    3. summary: changed from Incorrect state change in processor removal of SMP scheduler to The last processor must not be removed if it is owned by a helping scheduler
    Comment 2
    1. Sebastian Huber, Tue, 23 Nov 2021 13:36:30 GMT

    In c69a70a/rtems:

    rtems: Fix rtems_scheduler_remove_processor() Return an error status for the following error condition in rtems_scheduler_remove_processor(): While an attempt is made to remove a processor from a scheduler, while the processor is the only processor owned by the scheduler, if a thread exists which uses the scheduler as a helping scheduler, then the processor shall not be removed. The reason is that ask for help requests and withdraw node requests are processed asynchronously in any order. An ask for help request carried out on a scheduler without a processor is undefined behaviour. Update error status description. Update #4544.
    Comment 3
    1. Sebastian Huber, Tue, 23 Nov 2021 13:49:07 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 513b90d/rtems-docs:

    c-user: rtems_scheduler_remove_processor() Update error status description. Close #4544.

    4545 - The SMP EDF scheduler can only support more restricted affinity sets of a thread

    Link https://devel.rtems.org/ticket/4545
    Id 4545
    Reporter Sebastian Huber
    Created 10 November 2021 08:27:34
    Modified 23 November 2021 13:36:33
    Owner Sebastian Huber
    Type defect
    Component score
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords SMP, qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    The SMP EDF scheduler supports a one-to-one and one-to-all thread to processor affinity. Currently it accepts affinity sets which are a proper subset of the online processors containing at least two processors owned by the scheduler. In this case it sets a one-to-one thread to processor affinity. This leads to undefined behaviour if a processor is removed since the higher level check in rtems_scheduler_remove_processor() does not account for this implementation detail.

    Comment 1
    1. Sebastian Huber, Wed, 10 Nov 2021 08:29:06 GMT
    2. description: modified (diff)
    3. summary: changed from The SMP EDF scheduler has to better check the affinity set of a thread to The SMP EDF scheduler can only support more restricted affinity sets of a thread
    Comment 2
    1. Sebastian Huber, Tue, 23 Nov 2021 13:36:33 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 834a86fe/rtems:

    score: Restrict affinity for EDF SMP scheduler The SMP EDF scheduler supports a one-to-one and one-to-all thread to processor affinity. It accepted affinity sets which are a proper subset of the online processor containing at least two processors owned by the scheduler. In this case it used a one-to-one thread to processor affinity. This leads to undefined behaviour if a processor is removed since the higher level check in rtems_scheduler_remove_processor() does not account for this implementation detail. Restrict the affinity set accepted by the SMP EDF scheduler to all online processors, or exactly one processor owned by the scheduler. Close #4545.

    4546 - A thread restart does not update the priority of related threads

    Link https://devel.rtems.org/ticket/4546
    Id 4546
    Reporter Sebastian Huber
    Created 10 November 2021 17:00:55
    Modified 23 November 2021 13:36:54
    Owner Sebastian Huber
    Type defect
    Component score
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    Consider the following scenario. Let a high priority task H wait on a priority inheritance mutex M owned by a low priority task L. Restart task H. This should remove the priority inherited by H from L. This is currently not the case.

    Comment 1
    1. Sebastian Huber, Tue, 23 Nov 2021 13:36:37 GMT

    In cd791039/rtems:

    score: Remove thread timer earlier The earlier we remove the thread timer the less likely is a superfluous thread timeout processing. Update #4546.
    Comment 2
    1. Sebastian Huber, Tue, 23 Nov 2021 13:36:40 GMT

    In 50aef135/rtems:

    score: Add _Thread_MP_Extract_proxy() Remove _Thread_queue_Extract_with_proxy() and move the proxy extraction to _Thread_MP_Extract_proxy(). Move similar code blocks of the previous caller of _Thread_queue_Extract_with_proxy() to helper functions. Update #4546.
    Comment 3
    1. Sebastian Huber, Tue, 23 Nov 2021 13:36:44 GMT

    In e429e97/rtems:

    score: Simplify thread wait state handling Remove the THREAD_WAIT_STATE_READY_AGAIN and simply use the initial value to indicate that a thread does not wait on something. Rename THREAD_WAIT_FLAGS_INITIAL to THREAD_WAIT_STATE_READY. This change is necessary so that _Thread_Continue() can be called for threads which never waited on something (for example dormant threads). Update #4546.
    Comment 4
    1. Sebastian Huber, Tue, 23 Nov 2021 13:36:47 GMT

    In 2e56aab/rtems:

    score: Move _Thread_queue_Extract() Move _Thread_queue_Extract() since this function is not used by the core services (threads, semaphores, mutexes, message queues). Update #4546.
    Comment 5
    1. Sebastian Huber, Tue, 23 Nov 2021 13:36:51 GMT

    In 3b6e263a/rtems:

    score: _Thread_queue_Surrender_no_priority() Simplify _Thread_queue_Surrender_no_priority() and use _Thread_queue_Resume(). Update #4546.
    Comment 6
    1. Sebastian Huber, Tue, 23 Nov 2021 13:36:54 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 5468464/rtems:

    score: Properly continue the thread during restart The _Thread_queue_Extract() does not deal with potential priority updates and the SMP locking protocol handling. Use _Thread_queue_Continue(). For the POSIX signals processing this is currently probably unnecessary, however, the use case is similar to the restart so use the same appoach. Close #4546.

    4547 - dtc build failure on msys2 - all rtems6 target tools fail to build on Windows 10

    Link https://devel.rtems.org/ticket/4547
    Id 4547
    Reporter kgardas
    Created 11 November 2021 21:08:30
    Modified 17 February 2024 05:15:05
    Owner kgardas
    Type defect
    Component tool/rsb
    Status assigned
    Resolution  
    Version  
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords SoC, ecosystem, small, msys2
    Cc  
    Blocking  
    Blocked by  

    Description

    I'm testing RSB git source updated 2021-11-10 and it fails on freshly installed msys2/windows 10 platform with: `
    karel@DESKTOP-755H9VE MINGW64 /c/r/rtems-source-builder/rtems
    $ ../source-builder/sb-check
    RTEMS Source Builder - Check, 6 (efa44e47a7d2 modified)
    Environment is ok

    karel@DESKTOP-755H9VE MINGW64 /c/r/rtems-source-builder/rtems
    $ ../source-builder/sb-set-builder --prefix=/c/r/rr 6/rtems-sparc
    RTEMS Source Builder - Set Builder, 6 (efa44e47a7d2 modified)
    Build Set: 6/rtems-sparc
    config: devel/dtc-1.6.0-1.cfg
    package: dtc-1.6.0-x86_64-w64-mingw32-1
    building: dtc-1.6.0-x86_64-w64-mingw32-1
    error: building d1xwm1
    Build FAILED

    See error report: rsb-report-dtc-1.6.0-x86_64-w64-mingw32-1.txt

    error: building d1xwm1
    Build Set: Time 0:00:28.232196
    Build FAILED

    karel@DESKTOP-755H9VE MINGW64 /c/r/rtems-source-builder/rtems
    $ `
    the problem report is attached.

    Joel adds: dtc does not build on msys2. It requires fnmatch.h which is not present. Alternative fixes include finding an alternative for fnmatch on msys2, providing an implementation to be used on msys2, or adding gnulib which is a portability package to our RSB packages on msys2.

    Also there may be other tickets for the same issue.

    Possible Mentors: Karel Gardas
    Skills: C
    Difficulty: Medium

    Attachments:

    1 kgardas, Thu, 11 Nov 2021 21:09:20 GMT
      attach: set to rsb-report-dtc-1.6.0-x86_64-w64-mingw32-1.txt
     
    Comment 1
    1. Joel Sherrill, Wed, 02 Feb 2022 14:23:22 GMT
    2. keywords: SoC added
    3. milestone: set to 6.1

    Adding SoC as a ticket because I think this is a possible small SoC project. Possible solutions include adding gnulib to the RSB bset for msys2 or modifying dtc to use other APIs for this functionality.

    Comment 2
    1. Gedare Bloom, Fri, 04 Feb 2022 18:53:18 GMT
    2. keywords: ecosystem small added
    Comment 3
    1. Joel Sherrill, Fri, 04 Feb 2022 20:05:29 GMT
    2. keywords: msys2 added
    3. description: modified (diff)
    4. summary: changed from RSB can't build rtems-sparc target tools on Windows 10. to dtc build failure on msys2 - all rtems6 target tools fail to build on Windows 10
    Comment 4
    1. Joel Sherrill, Fri, 25 Feb 2022 21:15:50 GMT
    2. description: modified (diff)
    Comment 5
    1. Chris Johns, Tue, 29 Nov 2022 23:48:28 GMT

    status update?

    Comment 6
    1. Gedare Bloom, Sat, 17 Feb 2024 05:15:05 GMT
    2. owner: set to kgardas
    3. status: changed from new to assigned

    4548 - Add RTEMS version option to waf configure

    Link https://devel.rtems.org/ticket/4548
    Id 4548
    Reporter Chris Johns
    Created 12 November 2021 23:00:52
    Modified 18 March 2022 13:48:30
    Owner Sebastian Huber <sebastian.huber@…>
    Type enhancement
    Component build
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    We need a way to override the default release for testing. This is a developer option and is not for production. A waf option is considered the best way to manage this.

    Comment 1
    1. Sebastian Huber, Sat, 13 Nov 2021 13:53:19 GMT

    This enhancement should be solved in a more general setting. What we need is the ability for maintainers to alter build system variables which a user should not be able to change.

    What we could do is using an _ prefix for internal build system variables which may be changed by the config.ini file if an --rtems-maintainer-mode option is given at the configure command line.

    An alternative would be a get-option option action (similar to set-value) which uses a command line specified value if it is available. We could also add this feature to set-value.

    Comment 2
    1. Chris Johns, Sun, 14 Nov 2021 02:56:59 GMT

    I think maintainer experiments should be done with spec file changes on feature branches. My concern about a generic method from the command line, INI file or any other method is the testable dependencies it exposes. I feel what we have and where we are at is a good compromise between the web of options we had with __autoconf's__ configure and the ever present complexity of build and BSP options we have to have.

    I agree the implementation of how to manage this should follow reasonable design paths but I think the type of action needed has to be explicit with wscript or spec file changes.

    I have added a call named item_set_action_value() that takes a path and value. The value needs to be of a type and nature that matches the action. The code to set the major version from the command line is:

     if conf.options.rtems_version is not None:
            item_set_action_value(conf, '/cpukit/optvermaj/set-value', conf.options.rtems_version) 

    I think a path to address an item is a suitable abstraction. This version value update happens before the items are processed by configure which is important.

    Comment 3
    1. Sebastian Huber, Wed, 17 Nov 2021 08:12:02 GMT

    In a0650f5f/rtems:

    build: Support command line specified options Update #4548.
    Comment 4
    1. Sebastian Huber, Wed, 17 Nov 2021 08:12:05 GMT

    In f06dd3e/rtems:

    build: Optional RTEMS_MAJOR via command line Update #4548.
    Comment 5
    1. Sebastian Huber, Wed, 17 Nov 2021 08:12:09 GMT

    In c1395ca0/rtems:

    build: Add --rtems-version command line option Update #4548.
    Comment 6
    1. Joel Sherrill, Fri, 17 Dec 2021 17:22:19 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed

    Closing. This is in the tree now.

    Comment 7
    1. Sebastian Huber, Tue, 11 Jan 2022 15:47:42 GMT
    2. owner: set to Sebastian Huber <sebastian.huber@…>

    In fa1c18e/rtems-docs:

    eng: Document get-string-command-line action Close #4548.
    Comment 8
    1. Sebastian Huber, Tue, 11 Jan 2022 15:56:22 GMT

    In 1ba0f41/rtems-docs:

    eng: Document get-string-command-line action Update #4548.
    Comment 9
    1. Sebastian Huber, Fri, 18 Mar 2022 13:48:30 GMT

    In 1a5991e/rtems:

    build: Apply command line options to all variants Update #4548.

    4550 - Add --rtems-version to rtems-test

    Link https://devel.rtems.org/ticket/4550
    Id 4550
    Reporter Joel Sherrill
    Created 19 November 2021 22:02:13
    Modified 16 December 2021 20:34:35
    Owner Chris Johns
    Type defect
    Component tool
    Status closed
    Resolution duplicate
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords rtems-test
    Cc  
    Blocking  
    Blocked by  

    Description

    The rtems-test does not have a way to override the RTEMS version. This results in some tools defaulting to rtems6 when you want to test with the rtems7 version.

    Comment 1
    1. Kinsey Moore, Thu, 16 Dec 2021 20:34:35 GMT
    2. status: changed from assigned to closed
    3. resolution: set to duplicate

    This is a duplicate of #3671


    4551 - Workaround for GRLIB-TN-0011 required for sparc/leon3 BSPs in SMP configuration

    Link https://devel.rtems.org/ticket/4551
    Id 4551
    Reporter Sebastian Huber
    Created 23 November 2021 15:26:55
    Modified 26 November 2021 09:38:20
    Owner Sebastian Huber
    Type defect
    Component arch/sparc
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords SMP, qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    The check script tn-0011.tcl reported the following affected code block in cpu_asm.S:

    sparc-rtems6-objdump -d build/sparc/gr712rc/testsuites/validation/ts-validation-0.exe | tn-0011.tcl
    INFO: Scanning utility for
    INFO: GRLIB-TN-0011 - LEON3/FT AHB Lock Release during Atomic Operation
    INFO: Script revision: 3 (20180412)
    INFO:
    INFO: Scanning objdump -d output on standard input...
    0x400ad5f8 : seqa
    INFO: 400ad5f8: c2 7a 60 58 swap [ %o1 + 0x58 ], %g1
    INFO: 400ad5fc: 80 a0 60 00 cmp %g1, 0
    INFO: 400ad600: 12 80 00 14 bne 400ad650
    INFO:
    INFO: Error locations found: 1
    Comment 1
    1. Sebastian Huber, Fri, 26 Nov 2021 09:38:20 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In bdcc814/rtems:

    sparc: Add workaround for GRLIB-TN-0011 Affected components are the GR712RC, UT699, UT699E, UT700, and LEON3FT-RTAX. Strictly, the workaround is only necessary if the MMU is enabled. Use FIX_LEON3FT_B2BST to enable the workaround. This is not 100% appropriate, but the best thing we can use to enable the workaround. Close #4551.

    4556 - rtems_shell_main_mmove problem

    Link https://devel.rtems.org/ticket/4556
    Id 4556
    Reporter chenjin_zhong
    Created 2 December 2021 14:03:20
    Modified 23 December 2022 18:56:38
    Owner Chris Johns
    Type defect
    Component shell
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Hi, I think __mmove__ command in shell means that the memory can be overlapped when copy happens. but I find that when implementing this function, the __memcpy__ is used in RTEMS4.13/RTEMS5.1.Should the __memcpy__ be replaced with __memmove__ ? The src code is listed as follows.
    static int rtems_shell_main_mmove(

    int argc,
    char *argv[]

    )
    {

    unsigned long tmp;
    void *src;
    void *dst;
    size_t length;

    if ( argc < 4 ) {

    fprintf(stderr,"%s: too few arguments\n", argv[0]);
    return -1;

    }

    /*

    • Convert arguments into numbers
      */

    if ( rtems_string_to_pointer(argv[1], &dst, NULL) ) {

    printf( "Destination argument (%s) is not a number\n", argv[1] );
    return -1;

    }

    if ( rtems_string_to_pointer(argv[2], &src, NULL) ) {

    printf( "Source argument (%s) is not a number\n", argv[2] );
    return -1;

    }

    if ( rtems_string_to_unsigned_long(argv[3], &tmp, NULL, 0) ) {

    printf( "Length argument (%s) is not a number\n", argv[3] );
    return -1;

    }
    length = (size_t) tmp;

    /*

    • Now copy the memory.
      */

    __memcpy(dst, src, length)__;

    return 0;

    }

    Comment 1
    1. Chris Johns, Thu, 10 Nov 2022 00:44:36 GMT
    2. version: changed from 5 to 6
    3. milestone: changed from 5.1 to 6.1
    Comment 2
    1. Chris Johns, Tue, 29 Nov 2022 23:49:11 GMT
    2. owner: set to Chris Johns
    3. status: changed from new to assigned
    Comment 3
    1. zack leung, Fri, 23 Dec 2022 18:56:38 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 4523c713/rtems:

    rtems_shell_main_mmove problem --0000000000006acec205efd38cd6 Content-Type: text/plain; charset="UTF-8" Closes #4556

    4557 - medit problem in RTEMS6 (was 4.11/5.1)

    Link https://devel.rtems.org/ticket/4557
    Id 4557
    Reporter chenjin_zhong
    Created 2 December 2021 14:41:23
    Modified 15 February 2023 21:00:22
    Owner Chris Johns
    Type defect
    Component shell
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Hi, I find when open medit editor in shell console, and then input __CTRL+E/CTRL+X__ instructions in medit.the selected text cannot be cut. I review the code in main_medit file. First, when I input __CTRL+E__ instruction, the function __select_toggle__ is executed and selects the text. Second, when I input __CTRL+X__, the function __cut_selection__ copies the selected text to clipboard. but after copy, the selected text is non-selected. Therefore, the __erase_selection__ in __cut_selection__ cannot take effect. the src code is listed as follows. I suggest that remove __select_toggle__ in __copy_selection__ function. and add after __copy_selection__. the code frament is marked in bold.

    static void select_toggle(struct editor *ed) {

    ed->selecting = ed->selecting ? 0 : 1;
    update_selection(ed, ed->selecting);
    adjust(ed);

    }

    static void cut_selection(struct editor *ed) {

    copy_selection(ed);
    erase_selection(ed);
    select_toggle(ed);

    }

    static void copy_selection(struct editor *ed) {

    int selstart, selend;
    if (!get_selection(ed, &selstart, &selend)) return;
    ed->env->clipsize = selend - selstart;
    ed->env->clipboard = (unsigned char *) realloc(ed->env->clipboard, ed->env->clipsize);
    if (!ed->env->clipboard) return;
    copy(ed, ed->env->clipboard, selstart, ed->env->clipsize);
    select_toggle(ed);

    }

    __case ctrl('c'): copy_selection(ed); select_toggle; break;__

    Comment 1
    1. Joel Sherrill, Thu, 02 Dec 2021 15:50:20 GMT

    First I think you mean main_edit.c (​https://github.com/RTEMS/rtems/blob/master/cpukit/libmisc/shell/main_edit.c)

    Did you observe this on real hardware or a simulator? It is possible that the communications program (with hardware) or simulator is grabbing some characters.

    It is also possible this is a bug. If this is the case, the code originated from ​https://github.com/ringgaard/sanos/tree/master/src/utils/edit. If it is a bug, we would like to work with the upstream to get it fixed and then update the code in RTEMS.

    The code at the original repository can be compiled natively and you can check the behavior on that. The RTEMS derived version probably can be compiled similarly if that didn't get broken in the merge. Please try to follow up and let's see what is needed.

    Comment 2
    1. chenjin_zhong, Sun, 05 Dec 2021 13:34:32 GMT

    Thank you! I have observed this on real hardware. then, I have checked ​https://github.com/ringgaard/sanos/tree/master/src/utils/edit. This Bug has been fixed. the code fragment is listed as follows. The erase_selection function is called by the cut_selection function and is able to delete selected characters.

    void copy_selection(struct editor *ed) {

    int selstart, selend; if (!get_selection(ed, &selstart, &selend)) return; ed->env->clipsize = selend - selstart; ed->env->clipboard = (unsigned char *) realloc(ed->env->clipboard, ed->env->clipsize); if (!ed->env->clipboard) return; copy(ed, ed->env->clipboard, selstart, ed->env->clipsize);

    }

    void cut_selection(struct editor *ed) {

    copy_selection(ed); erase_selection(ed);

    }

    Comment 3
    1. Chris Johns, Thu, 10 Nov 2022 00:45:58 GMT
    2. summary: changed from medit problem in RTEMS4.11/5.1 to medit problem in RTEMS6 (was 4.11/5.1)
    3. version: set to 6
    4. milestone: changed from 5.1 to 6.1

    This should check in 6.

    Comment 4
    1. Chris Johns, Tue, 29 Nov 2022 23:49:49 GMT
    2. owner: set to Chris Johns
    3. status: changed from new to assigned
    Comment 5
    1. zack, Wed, 15 Feb 2023 21:00:22 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 809e34e5/rtems:

    libmisc/shell/main_edit.c: User cannot cut using ctrl e and x Closes #4557

    4560 - Use thread-local storage for Newlib reentrancy objects

    Link https://devel.rtems.org/ticket/4560
    Id 4560
    Reporter Sebastian Huber
    Created 3 December 2021 09:04:00
    Modified 11 October 2023 09:29:56
    Owner Sebastian Huber
    Type project
    Component tool/newlib
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords SoC, newlib, executive, large, qualification
    Cc  
    Blocking  
    Blocked by 4672

    Description

    Problem

    The state of the art architectures supported by RTEMS have all efficient support for thread-local storage (MIPS has issues with thread-local storage, however, is MIPS state of the art?).

    Newlib currently uses a huge object of type struct _reent to store thread-specific data. This object is returned by __getreent(). It is related to the __DYNAMIC_REENT__ Newlib configuration option which is always defined for RTEMS.

    The reentrancy structure contains errno and also the standard input, output, and error file streams. This means that if an application only uses errno it has a dependency on the file stream support event if it does not use it. This is an issue for lower end targets and the pre-qualification of RTEMS.

    Solution

    One approach to disentangle the dependencies introduced by struct _reent is to get rid of this structure and replace the individual members of the structure with thread-local objects. For example, instead of

    struct _reent {
    int _errno;
    __FILE *_stdin;
    __FILE *_stdout;
    __FILE *_stderr;
    };

    use

    _Thread_local int _errno;
    _Thread_local __FILE *_stdin;
    _Thread_local __FILE *_stdout;
    _Thread_local __FILE *_stderr;

    Newlib already has access macros for the struct _reent members, for example:

    #define _REENT_SIGNGAM(ptr)     ((ptr)->_new._reent._gamma_signgam)
    #define _REENT_RAND_NEXT(ptr) ((ptr)->_new._reent._rand_next)
    #define _REENT_RAND48_SEED(ptr) ((ptr)->_new._reent._r48._seed)
    #define _REENT_RAND48_MULT(ptr) ((ptr)->_new._reent._r48._mult)
    #define _REENT_RAND48_ADD(ptr) ((ptr)->_new._reent._r48._add)
    How-to Implement

    The member access macros are incomplete. The first step is to use the Newlib configuration for RTEMS as is and rename all struct _reent members, for example add an TEMPORARY prefix to all member names, _errno to TEMPORARY_errno. Then add member access macros until Newlib builds again. Install this Newlib and check that RTEMS and libbsd compiles. Run the RTEMS and libbsd test suites to check for regressions.

    In a second step to this for the _REENT_SMALL configuration of Newlib.

    The third step is to add a new Newlib configuration option, for example _REENT_THREAD_LOCAL which turns the struct _reent members into thread-local objects with corresponding "member" access macros. Define _REENT to NULL.

    Skills

    C and assembly

    Difficulty

    This is a large (350-hour) project of hard difficulty.

    Attachments:

    1 Sebastian Huber, Mon, 08 Aug 2022 11:00:15 GMT
      attach: set to gcc-10-RTEMS-Use-local-exec-TLS-model-by-default.patch
    2 Sebastian Huber, Mon, 08 Aug 2022 11:00:32 GMT
      attach: set to gcc-12-RTEMS-Use-local-exec-TLS-model-by-default.patch
    Comment 1
    1. Joel Sherrill, Fri, 03 Dec 2021 17:29:59 GMT

    One issue with this is that TLS is not supported on all architectures. We would either have to have two methods (current and TLS) to do this or fix TLS everywhere.

    Comment 2
    1. Sebastian Huber, Fri, 03 Dec 2021 19:20:33 GMT

    I am not sure what the Newlib maintainer say if we try to add a third reentrancy approach. I guess for backward compatibility they want to keep the existing methods anyway.

    Comment 3
    1. Joel Sherrill, Fri, 03 Dec 2021 20:07:52 GMT
    2. keywords: SoC newlib added
    Comment 4
    1. Chris Johns, Mon, 06 Dec 2021 08:19:37 GMT

    I would like to see libdl support for TLS added to RTEMS.

    Comment 5
    1. Sebastian Huber, Fri, 28 Jan 2022 07:35:58 GMT

    In b519e50/rtems:

    sptests: Avoid a dependency on errno Avoid a dependency on errno which might be a thread-local object. The tests sp01, spstkalloc02, and sptls03 assume that no thread-local storage object is present. Update #4560.
    Comment 6
    1. Sebastian Huber, Fri, 28 Jan 2022 07:38:25 GMT

    Related discussion on libc-coord:

    ​https://www.openwall.com/lists/libc-coord/2022/01/21/1

    Comment 7
    1. Gedare Bloom, Fri, 04 Feb 2022 18:54:45 GMT
    2. keywords: executive added
    Comment 8
    1. Gedare Bloom, Fri, 25 Feb 2022 18:27:59 GMT
    2. keywords: large added
    3. description: modified (diff)
    Comment 9
    1. Sebastian Huber, Wed, 29 Jun 2022 09:04:57 GMT
    2. version: changed from 7 to 6
    3. milestone: changed from 7.1 to 6.1
    Comment 10
    1. Sebastian Huber, Wed, 29 Jun 2022 09:13:44 GMT
    2. blockedby: set to 4672
    Comment 11
    1. Matt Joyce, Thu, 21 Jul 2022 05:15:04 GMT

    In 57a569e/rtems:

    sptests: Disable Newlib reentrancy Update #4560.
    Comment 12
    1. Matt Joyce, Thu, 21 Jul 2022 05:15:06 GMT

    In 6d4b390/rtems:

    Support _REENT_THREAD_LOCAL Newlib configuration In case the Newlib _REENT_THREAD_LOCAL configuration option is enabled, the struct _reent is not defined (there is only a forward declaration in ). Instead, the usual members of struct _reent are available as dedicatd thread-local storage objects. Update #4560.
    Comment 13
    1. Sebastian Huber, Thu, 21 Jul 2022 08:25:04 GMT

    In ae6e598/rtems-source-builder:

    6/7: Update Newlib This makes the --enable-newlib-reent-thread-local (_REENT_THREAD_LOCAL_STORAGE) Newlib configuration option available. Update #4560.
    Comment 14
    1. Sebastian Huber, Thu, 21 Jul 2022 08:25:05 GMT

    In 958de50/rtems-source-builder:

    newlib: Support --with/without-newlib-tls This RSB option defines if the --enable-newlib-reent-thread-local (_REENT_THREAD_LOCAL_STORAGE) Newlib configuration option is used or not. Update #4560.
    Comment 15
    1. Sebastian Huber, Thu, 21 Jul 2022 08:25:06 GMT

    In f4f5d43/rtems-source-builder:

    6/7: Use TLS in Newlib for some targets by default Use the --enable-newlib-reent-thread-local (_REENT_THREAD_LOCAL_STORAGE) Newlib configuration option on the aarch64, arm, nios2, powerpc, riscv, and sparc targets by default. Update #4560.
    Comment 16
    1. Sebastian Huber, Mon, 08 Aug 2022 18:23:20 GMT

    In eea3793/rtems-source-builder:

    6: Use local-exec TLS model by default Update #4560.
    Comment 17
    1. Sebastian Huber, Fri, 09 Sep 2022 05:32:55 GMT

    In 91e8654/rtems-docs:

    user: Document RSB --with/without-newlib-tls Update #4560.
    Comment 18
    1. Sebastian Huber, Fri, 14 Oct 2022 09:41:39 GMT

    In b9212e2/rtems:

    sptls01: Disable file system and Newlib reentrancy Update #4560.
    Comment 19
    1. Chris Johns, Tue, 29 Nov 2022 22:38:23 GMT

    Are we able to close this ticket?

    Comment 20
    1. Sebastian Huber, Wed, 30 Nov 2022 08:59:07 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    Yes, I recently were able to integrate the final patch for GCC 13. A follow up activity is #4765.

    Comment 21
    1. Sebastian Huber, Wed, 26 Apr 2023 05:14:33 GMT

    In 908efe4/rtems-source-builder:

    7: Use TLS in Newlib for m68k by default Update #4560.
    Comment 22
    1. Sebastian Huber, Wed, 11 Oct 2023 09:29:56 GMT
    2. keywords: qualification added

    4566 - Atomic store does not use the order parameter for C++

    Link https://devel.rtems.org/ticket/4566
    Id 4566
    Reporter Sebastian Huber
    Created 7 December 2021 11:06:56
    Modified 7 December 2021 11:25:05
    Owner Sebastian Huber
    Type defect
    Component score
    Status closed
    Resolution fixed
    Version 4.11
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords SMP, qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    This could result in invalid inline code for the SMP ticket locks if used from C++.

    Comment 1
    1. Sebastian Huber, Tue, 07 Dec 2021 11:07:12 GMT
    2. keywords: SMP qualification added
    Comment 2
    1. Sebastian Huber, Tue, 07 Dec 2021 11:25:05 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 69d643f7/rtems:

    score: Fix atomic stores for C++ Close #4566.

    4569 - aarch64 cache support does not provide rtems_cache_disable_data()

    Link https://devel.rtems.org/ticket/4569
    Id 4569
    Reporter Sebastian Huber
    Created 10 December 2021 13:52:44
    Modified 12 December 2021 17:58:14
    Owner Joel Sherrill
    Type defect
    Component arch/aarch64
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The aarch64 cache support defines:

    bsps/aarch64/shared/cache/cache.c:#define CPU_CACHE_SUPPORT_PROVIDES_DISABLE_DATA

    However, it does not provide rtems_cache_disable_data().

    Comment 1
    1. Kinsey Moore, Fri, 10 Dec 2021 15:31:20 GMT

    You are correct, while the AArch64 cache code provides _CPU_cache_disable_data(), it does not provide rtems_cache_disable_data(). I'll submit a patch to remove this define since the existing support via _CPU_cache_disable_data should be sufficient given that CPU_DATA_CACHE_ALIGNMENT is defined.

    Comment 2
    1. Kinsey Moore, Sun, 12 Dec 2021 17:58:14 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 68b0db35/rtems:

    bsps/aarch64: Remove erroneous cache feature The AArch64 cache implementation does not define rtems_cache_disable_data(), but declares that it does via CPU_CACHE_SUPPORT_PROVIDES_DISABLE_DATA. The existing implementation of _CPU_cache_disable_data() is sufficient to enable this functionality without the erroneous cache feature flag. Closes #4569

    4572 - Improve Clarity for New Clock Manager Directives

    Link https://devel.rtems.org/ticket/4572
    Id 4572
    Reporter Joel Sherrill
    Created 15 December 2021 22:27:35
    Modified 26 January 2022 18:36:34
    Owner Sebastian Huber
    Type defect
    Component doc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    Looking through the Clock Manager at the new APIs, I noticed that there is nothing about what bintime and sbintime are in the "Time and Date Data Structures" section. Explaining what these time representations are is needed.

    struct timeval and timespec are also not described in "Time and Data Data Structures" but this may be OK since they are from C and/or POSIX.

    There is no discussion of what coarse is versus the non-coarse and what this means in practice.

    There is no background on what the various clock sources are.

    There may be other similar typos but rtems_clock_get_monotonic() describes its sole argument as being of the wrong type.

    Without some background on the various time formats, sources, and terminology, the distinction between these APIs and their intended uses is impossible to figure out.

    Comment 1
    1. Sebastian Huber, Thu, 16 Dec 2021 06:41:56 GMT

    In 732d8bc/rtems-docs:

    c-user: Fix Clock Manager parameter descriptions Update #4572.
    Comment 2
    1. Sebastian Huber, Thu, 16 Dec 2021 07:16:25 GMT
    2. keywords: qualification added
    3. status: changed from assigned to accepted
    Comment 3
    1. Sebastian Huber, Thu, 16 Dec 2021 14:38:16 GMT

    In 786b89a/rtems-docs:

    c-user: Clarify time formats Update #4572.
    Comment 4
    1. Sebastian Huber, Wed, 22 Dec 2021 07:11:55 GMT

    In d404771/rtems:

    rtems: Fix Clock Manager parameter descriptions Update #4572.
    Comment 5
    1. Sebastian Huber, Tue, 11 Jan 2022 08:19:52 GMT

    In e77e04d/rtems-docs:

    c-user: Clarify Clock Manager dependencies Update #4572.
    Comment 6
    1. Sebastian Huber, Wed, 26 Jan 2022 13:27:01 GMT

    Joel, please close this issue or complain.

    Comment 7
    1. Joel Sherrill, Wed, 26 Jan 2022 18:36:34 GMT
    2. status: changed from accepted to closed
    3. resolution: set to fixed

    I think it covers the concepts now.


    4581 - Add AArch64 to Tier 1 BSPs

    Link https://devel.rtems.org/ticket/4581
    Id 4581
    Reporter Kinsey Moore
    Created 18 January 2022 16:08:13
    Modified 25 January 2022 23:44:37
    Owner Kinsey Moore <kinsey.moore@…>
    Type task
    Component admin
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    I finally got around to producing an emailed test run on the Avnet ZU3EG development board. ​The test results are available here

    Comment 1
    1. Kinsey Moore, Wed, 19 Jan 2022 17:53:07 GMT
    2. owner: set to Kinsey Moore <kinsey.moore@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In e0f9f8f/rtems-tools:

    tiers: Add AArch64 to tier 1 Hardware test results have recently been posted for AArch64. Closes #4581
    Comment 2
    1. Joel Sherrill, Tue, 25 Jan 2022 23:44:37 GMT

    In 91a58af/rtems-tools:

    rtems-bsps-tiers.ini: Move appropriate aarch64 BSPs to Tier 1 and 2 This also resulted in finding some BSPs listed which were no longer in the RTEMS source. Updates #4581.

    4583 - rtems-bsp-builder: Do not vary on network

    Link https://devel.rtems.org/ticket/4583
    Id 4583
    Reporter Joel Sherrill
    Created 20 January 2022 16:04:49
    Modified 25 January 2022 23:44:33
    Owner Joel Sherrill
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    With the network stack removed from the rtems.git repository, there is no need to build BSPs with and without networking. This should be removed. It should reduce the number of BSP build configurations in a run.

    Comment 1
    1. Joel Sherrill, Thu, 20 Jan 2022 18:01:44 GMT
    2. owner: changed from Chris Johns to Joel Sherrill

    I'll take a swing at this while testing the tier updates.

    Comment 2
    1. Joel Sherrill, Tue, 25 Jan 2022 23:44:33 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 519acfb/rtems-tools:

    rtems-bsps-arm.ini, config/rtems-bsps.ini: Remove build variance on network With the legacy TCP/IP stack no longer in rtems.git, there is nothing to turn on/off with regards to BSPs or the stack itself. Removing this significantly reduces the number of configurations built. Closes #4583.

    4585 - Multiple Prototype Issues/Mismatches in rtems-examples from trace linker

    Link https://devel.rtems.org/ticket/4585
    Id 4585
    Reporter Joel Sherrill
    Created 24 January 2022 22:38:14
    Modified 26 January 2022 18:29:01
    Owner Joel Sherrill <joel@…>
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    This is some of the build failures in rtems-examples if the BSP has POSIX turned on:

    /home/joel/rtems-class/tools/bin/aarch64-rtems6-gcc:  hello-test.c:185:199: error: expected declaration specifiers or '...' before 'Thread_CPU_budget_algorithm_callout'
    /home/joel/rtems-class/tools/bin/aarch64-rtems6-gcc: 185 | bool __wrap__Thread_Initialize(Objects_Information* a1, Thread_Control* a2, const Scheduler_Control* a3, void* a4, size_t a5, bool a6, Priority_Control a7, bool a8, Thread_CPU_budget_algorithms a9, Thread_CPU_budget_algorithm_callout a10, uint32_t a11, Objects_Name a12)
    /home/joel/rtems-class/tools/bin/aarch64-rtems6-gcc: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    error: compiling wrapper: Compiler error
    /home/joel/rtems-class/tools/bin/aarch64-rtems6-gcc: hello-deep.c:1296:6: error: conflicting types for '_Thread_Start'
    /home/joel/rtems-class/tools/bin/aarch64-rtems6-gcc: 1296 | bool _Thread_Start(Thread_Control* a1, const Thread_Entry_information* a2, ISR_lock_Context* a3);
    /home/joel/rtems-class/tools/bin/aarch64-rtems6-gcc: | ^~~~~~~~~~~~~
    /home/joel/rtems-class/tools/bin/aarch64-rtems6-gcc: In file included from hello-deep.c:30:
    /home/joel/rtems-class/tools/bin/aarch64-rtems6-gcc: /home/joel/rtems-class/bsp-install/aarch64-rtems6/xilinx_zynqmp_lp64_qemu/lib/include/rtems/score/threadimpl.h:279:16: note: previous declaration of '_Thread_Start' was here
    /home/joel/rtems-class/tools/bin/aarch64-rtems6-gcc: 279 | Status_Control _Thread_Start(
    /home/joel/rtems-class/tools/bin/aarch64-rtems6-gcc: | ^~~~~~~~~~~~~
    error: compiling wrapper: Compiler error
    Comment 1
    1. Joel Sherrill, Wed, 26 Jan 2022 18:29:01 GMT
    2. owner: set to Joel Sherrill <joel@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 75689781/rtems-tools:

    linkers/rtems-score/thread*.ini: Remove symbols no longer present. Close #4585.

    4588 - RTEMS Stack Checker Report Bad Access When Not Enabled

    Link https://devel.rtems.org/ticket/4588
    Id 4588
    Reporter Kinsey Moore
    Created 26 January 2022 20:40:58
    Modified 27 January 2022 18:59:40
    Owner Kinsey Moore <kinsey.moore@…>
    Type defect
    Component admin
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The RTEMS stack checker reporting function can be called without the stack checker infrastructure being enabled. This causes a bad access to 0x0 because the static interrupt stack checker data remains null instead of being initialized by rtems_stack_checker_begin_extension. The actual failure occurs in Stack_check_Find_high_water_mark while searching for U32_PATTERN.

    This was found when the trailing D was left off of the CONFIGURE_STACK_CHECKER_ENABLED define in a test program.

    Comment 1
    1. Kinsey Moore, Thu, 27 Jan 2022 18:59:40 GMT
    2. owner: set to Kinsey Moore <kinsey.moore@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In b539af8/rtems:

    cpukit: Prevent error with disabled stack checker When the stack checker is not enabled, the stack checker reporting function can still be called. This prevents that call from performing a null memory access in trying to find the high water mark if the stack checker was never initialized. This also introduces a test to ensure this call does not cause a crash. Closes #4588

    4607 - support for SATA(AHCI) drives

    Link https://devel.rtems.org/ticket/4607
    Id 4607
    Reporter ostyche
    Created 11 February 2022 03:44:37
    Modified 28 July 2022 06:40:44
    Owner  
    Type enhancement
    Component bsps
    Status closed
    Resolution wontfix
    Version  
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords SATA
    Cc  
    Blocking  
    Blocked by  

    Description

    Added support for SATA(AHCI) drives.The relevant file path is \cpukit\sata\
    The files involved in the question were uploaded by git user ostyche who created a branch at 10:55 am on February 11, 2022

    Comment 1
    1. Joel Sherrill, Thu, 10 Mar 2022 16:33:46 GMT
    2. type: changed from defect to enhancement
    3. version: 4.11 deleted
    4. component: changed from admin to bsps
    5. milestone: changed from 5.1 to 6.1

    Can you provide a URL? If this was a pull on github, then it would be appreciated to get the patches submitted via the devel@ mailing list.

    Comment 2
    1. Sebastian Huber, Thu, 28 Jul 2022 06:40:44 GMT
    2. status: changed from new to closed
    3. resolution: set to wontfix

    SATA support should be added through LibBSD.


    4613 - Deprecate sparc64 port in rtems6 and remove in rtems7

    Link https://devel.rtems.org/ticket/4613
    Id 4613
    Reporter Gedare Bloom
    Created 16 February 2022 20:17:36
    Modified 9 February 2023 15:58:51
    Owner Gedare Bloom
    Type defect
    Component arch/sparc64
    Status closed
    Resolution fixed
    Version  
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    This port is no longer maintained. No one has been testing it and it does not appear to have any users.

    Deprecate for RTEMS 6.x
    Remove in RTEMS 7.x

    Comment 1
    1. Chris Johns, Tue, 29 Nov 2022 22:41:24 GMT

    Please update ​https://git.rtems.org/rtems-release/tree/rtems-notes-6.md then close this ticket. please make a new ticket for the actual removal.

    Comment 2
    1. Joel Sherrill, Thu, 09 Feb 2023 15:58:51 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    ​https://git.rtems.org/rtems-release/commit/?id=11aa44e068fe133ce088070cb1f5882b775a3e56


    4614 - Deprecate sh port in rtems6 and remove in rtems7

    Link https://devel.rtems.org/ticket/4614
    Id 4614
    Reporter Gedare Bloom
    Created 16 February 2022 20:18:11
    Modified 9 February 2023 15:58:28
    Owner Gedare Bloom
    Type defect
    Component arch/sh
    Status closed
    Resolution fixed
    Version  
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    This port is no longer maintained. No one has been testing it and it does not appear to have any users.

    Deprecate for RTEMS 6.x
    Remove in RTEMS 7.x

    Comment 1
    1. Chris Johns, Tue, 29 Nov 2022 22:42:33 GMT

    Please update ​​https://git.rtems.org/rtems-release/tree/rtems-notes-6.md then close this ticket. please make a new ticket for the actual removal.

    Comment 2
    1. Joel Sherrill, Thu, 09 Feb 2023 15:58:28 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    ​https://git.rtems.org/rtems-release/commit/?id=dffcad2c38d8328a66efda6a421aa7e39226afa3


    4615 - Deprecate v850 port in rtems6 and remove in rtems7

    Link https://devel.rtems.org/ticket/4615
    Id 4615
    Reporter Gedare Bloom
    Created 16 February 2022 20:19:06
    Modified 9 February 2023 15:59:20
    Owner Gedare Bloom
    Type defect
    Component arch/v850
    Status closed
    Resolution fixed
    Version  
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    This port is no longer maintained. No one has been testing it and it does not appear to have any users.

    Deprecate for RTEMS 6.x
    Remove in RTEMS 7.x

    Comment 1
    1. Chris Johns, Tue, 29 Nov 2022 22:42:43 GMT

    Please update ​​https://git.rtems.org/rtems-release/tree/rtems-notes-6.md then close this ticket. please make a new ticket for the actual removal.

    Comment 2
    1. Joel Sherrill, Thu, 09 Feb 2023 15:59:20 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    ​https://git.rtems.org/rtems-release/commit/?id=d35d32f82182fd71bade181a09fbc9576d60116e


    4617 - Potential non-monotonic CLOCK_MONOTONIC

    Link https://devel.rtems.org/ticket/4617
    Id 4617
    Reporter Sebastian Huber
    Created 23 February 2022 08:52:16
    Modified 23 February 2022 08:53:07
    Owner Sebastian Huber
    Type defect
    Component score
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    The RTEMS timecounter implementation could lead to a non-monotonic CLOCK_MONOTONIC if the clock interrupt is delayed for more than one second.

    Comment 1
    1. Sebastian Huber, Wed, 23 Feb 2022 08:53:07 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    This bug was fixed by 870cf9695f688c06743dd7fe8a7113e0cb5e3607.


    4619 - riscv/rv32iac: minimum sample test fails to build

    Link https://devel.rtems.org/ticket/4619
    Id 4619
    Reporter Ryan Long
    Created 23 February 2022 16:53:41
    Modified 29 November 2022 23:52:49
    Owner  
    Type defect
    Component bsps
    Status closed
    Resolution worksforme
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc Hesham Almatary
    Blocking  
    Blocked by  

    Description

    This issue was found while investigating #4618. The specifics of the error are listed there.

    Comment 1
    1. Chris Johns, Tue, 29 Nov 2022 23:52:49 GMT
    2. status: changed from new to closed
    3. resolution: set to worksforme

    BSP builder is showing this as working.


    4627 - Multitasking start is broken on SMP targets which do not restore the interrupt state during context switching

    Link https://devel.rtems.org/ticket/4627
    Id 4627
    Reporter Sebastian Huber
    Created 8 March 2022 08:22:44
    Modified 9 March 2022 20:01:37
    Owner Sebastian Huber
    Type defect
    Component score
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    The current SMP multitasking start assumed that the initial heir thread of a processor starts execution in _Thread_Handler() which sets the interrupt state explicitly by _ISR_Set_level(). Under certain timing conditions processors may perform an initial context switch to a thread which already executes its thread body. In this case, interrupts are disabled after the context switch on targets which do not save/restore the interrupt state during a context switch (for example arm and riscv).

    Comment 1
    1. Sebastian Huber, Tue, 08 Mar 2022 08:37:38 GMT

    In b08ba92/rtems:

    smptests/smpstart01: New test program Update #4627.
    Comment 2
    1. Sebastian Huber, Wed, 09 Mar 2022 20:01:37 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 32f0f11/rtems:

    SMP: Fix start multitasking for some targets The previous SMP multitasking start assumed that the initial heir thread of a processor starts execution in _Thread_Handler(). The _Thread_Handler() sets the interrupt state explicitly by _ISR_Set_level() before it calls the thread entry. Under certain timing conditions, processors may perform an initial context switch to a thread which already executes its thread body (see smptests/smpstart01). In this case, interrupts are disabled after the context switch on targets which do not save/restore the interrupt state during a context switch (aarch64, arm, and riscv). Close #4627.

    4629 - shell: Potential stack corruption in rtems_shell_init()

    Link https://devel.rtems.org/ticket/4629
    Id 4629
    Reporter Sebastian Huber
    Created 15 March 2022 06:11:06
    Modified 18 March 2022 07:06:49
    Owner Sebastian Huber
    Type defect
    Component shell
    Status closed
    Resolution fixed
    Version  
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The rtems_shell_init() passes the address of a stack variable (exit_code) to rtems_shell_run(). If wait == false, then the stack variable goes out of scope but may be accessed by the created shell thread.

    Comment 1
    1. Sebastian Huber, Tue, 15 Mar 2022 06:11:35 GMT
    2. description: modified (diff)
    Comment 2
    1. Sebastian Huber, Fri, 18 Mar 2022 07:06:49 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In b837c83/rtems:

    shell: Avoid potential stack corruption The rtems_shell_init() passed the address of a stack variable (exit_code) to rtems_shell_run(). If wait == false, then the stack variable goes out of scope but may be accessed by the created shell thread. The rtems_shell_script() was affected by the same problem. Close #4629.

    4631 - RSB fails to build gdb with Python 3.10 (and newer)

    Link https://devel.rtems.org/ticket/4631
    Id 4631
    Reporter Frank Kuehndel
    Created 18 March 2022 12:09:33
    Modified 26 April 2022 23:12:34
    Owner Chris Johns
    Type defect
    Component tool/gdb
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The rtems-source-builder fails to build the tools in a Fedora 35 container. I am building ARM for RTEMS 6 and get this error message:

    config: tools/rtems-gdb-11.2.cfg
    error: shell macro failed: /home/minna/src/rtems-source-builder/source-builder/sb/rtems-build-dep -c gcc -l : 2: error: no library (-l) provided
    Build Set: Time 0:00:33.396165

    The same error appears for other architectures like AARCH64, POWERPC, RISCV on Fedora 35. The source for this error is in file source-builder/config/gdb-common-1.cfg in line 118:

     104   %ifnos darwin
    105 %if %{host_ldflags} == %{nil}
    106 %define gdb-host-libs %{nil}
    107 %else
    108 %define gdb-host-libs -L '%{host_ldflags}'
    109 %endif
    110 %if %{gdb-python-config} != %{nil}
    111 %define gdb-python-lib-filter awk 'BEGIN{FS=" "}/python/{for(i=1;i 112 %if %{gdb-python-ver-mm} < 3.8
    113 %define gdb-python-config-lib-check-flags --ldflags
    114 %else
    115 %define gdb-python-config-lib-check-flags --ldflags --embed
    116 %endif
    117 %define gdb-python-config-libs %(%{gdb-python-config} %{gdb-python-config-lib-check-flags} | %{gdb-python-lib-filter})
    118 %define gdb-python-lib-check %(%{_sbdir}/sb/rtems-build-dep -c %{__cc} %{gdb-host-libs} -l %{gdb-python-config-libs})
    119 %else
    120 %define gdb-python-lib-check %(%{_sbdir}/sb/rtems-build-dep -c %{__cc} %{gdb-host-libs} -l %{gdb-python-ver-lib})
    121 %endif
    122 %if %{gdb-python-lib-check} == not-found && !%{_rsb_getting_source}
    123 %error "gdb: python: library file not found: %{gdb-python-ver-lib}, please install"
    124 %endif
    125 %endif

    Some values of involved variables:

    gdb-python-ver-mm = 3.10
    gdb-python-config = /usr/bin/python3-config
    gdb-python-config-lib-check-flags = --ldflags
    gdb-python-lib-filter = awk 'BEGIN{FS=" "}/python/{for(i=1;igdb-python-config-libs = ''

    The trouble is that gdb-python-config-libs is empty when line 118 gets called. It is empty because there is no python-library in the output of this call on Fedora 35:

    $ /usr/bin/python3-config --ldflags
    -L/usr/lib64 -lcrypt -ldl -lm -lm

    Just to compare, on OpenSUSE 15.3 the same call returns (note the -lpython3.6m ):

    $ /usr/bin/python3-config --ldflags
    -L/usr/lib64 -lpython3.6m -lpthread -ldl -lutil -lm -Xlinker -export-dynamic

    Commenting out line 118 makes the build go through smoothly but I would prefer a permanent fix.

    • Would be skipping line 118 when gdb-python-config-libs is empty be an appropriate solution?
    • Is the "real" error in line 112? (%if 3.10 < 3.8 evaluates unexpectedly to true)
    • Would the "error" in line 123 print out the correct library name?
    • Does the whole check make sense when python3-config is obviously installed (both the command and the library are "usually" in the same pythonX-devel package)?

    Notes:

    • On Fedora 35 /usr/lib64/libpython3.10.so exists.
    • On Fedora 35 adding --embed provides the library:
    $ /usr/bin/python3-config --ldflags --embed
    -L/usr/lib64 -lpython3.10 -lcrypt -ldl -lm -lm

    For the records:

    Command:

    ../source-builder/sb-set-builder --rtems-version 6 --prefix /opt/rtems/6 --with_cxx --with_fortran --with_objc --jobs=12 --log ~/sb-set-builder.log 6/rtems-arm 

    RTEMS rtems-source-builder git: 6fe98f91d94bbf965bc0e78015585ff8823d17bd RTEMS: 6
    Target architecture: ARM
    Host architecture: x86_64
    Hoast Kernel: 5.3.18-150300.59.49-default OS: Fedora Linux 35 (Container Image)
    Container image base: docker.io/library/fedora:latest Python version in container: 3.10.2
    Test date: 2022-03-18T11:02:10+01:00 rtems-source-builder/source-builder/sb-check log:

    RTEMS Source Builder - Check, 6 (6fe98f91d94b modified)
    warning: exe: absolute exe found in path: (__chown) /usr/sbin/chown
    warning: exe: absolute exe found in path: (__install_info) /usr/bin/install-info
    Environment is ok
    Comment 1
    1. Frank Kuehndel, Mon, 21 Mar 2022 14:31:11 GMT
    2. summary: changed from RSB fails to build gdb on Fedora 35 to RSB fails to build gdb with Python 3.10 (and newer)
    Comment 2
    1. kgardas, Thu, 21 Apr 2022 07:42:35 GMT
    2. owner: set to Chris Johns
    3. status: changed from new to assigned
    Comment 3
    1. Chris Johns, Tue, 26 Apr 2022 23:12:33 GMT

    In 4c3708f/rtems-source-builder:

    sb: %if checks are numeric if the left and right values are numbers If the left and right values are numbers make the check numeric. Update #4631
    Comment 4
    1. Chris Johns, Tue, 26 Apr 2022 23:12:34 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 70f302e/rtems-source-builder:

    gdb: Split python's version into major/minor and check for embed option Closes #4631

    4632 - Error in rtems/thread.hpp with GCC 12

    Link https://devel.rtems.org/ticket/4632
    Id 4632
    Reporter Sebastian Huber
    Created 18 March 2022 13:59:22
    Modified 19 March 2022 09:24:02
    Owner Chris Johns
    Type defect
    Component lib
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    There is a compile error with GCC 12:

    In file included from /home/EB/sebastian_h/src/rtems/cpukit/librtemscxx/thread.cpp:35:
    /home/EB/sebastian_h/src/rtems/cpukit/include/rtems/thread.hpp:449:14: error: redefinition of default argument for 'class'
    449 | class = thread::enable_if_attributes>
    | ^~~~~
    /home/EB/sebastian_h/src/rtems/cpukit/include/rtems/thread.hpp:312:17: note: original definition appeared here
    312 | class = enable_if_attributes
    >
    | ^~~~~
    Comment 1
    1. Sebastian Huber, Sat, 19 Mar 2022 09:24:02 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 7fe3c62/rtems:

    thread.hpp: Fix redefinition of default argument A default argument shall be defined only once. Close #4632.

    4634 - Fix hash for glib-2.48

    Link https://devel.rtems.org/ticket/4634
    Id 4634
    Reporter Ryan Long
    Created 24 March 2022 15:15:31
    Modified 23 January 2023 20:49:08
    Owner  
    Type defect
    Component tool/rsb
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The hash needs updated in order for glib to be built. This is currently preventing

    Attachments:

    1 Ryan Long, Thu, 24 Mar 2022 15:16:13 GMT
      attach: set to 0001-devel-glib-2.48-Update-hash.patch
    2 Ryan Long, Thu, 24 Mar 2022 20:51:50 GMT
      attach: set to 566e1d61a500267c7849ad0b2552feec9c9a29a6.patch
    Comment 1
    1. Ryan Long, Thu, 24 Mar 2022 20:49:58 GMT

    This is currently preventing QEMU from being built. The hash of the patch changed for some unknown reason. Therefore, we are going to store a copy of that patch here so that it doesn't change. This patch will then be pulled down and applied in place of where it was originally done. The hash of the patch will still have to be updated, but hopefully this will prevent it from happening again.

    Comment 2
    1. Ryan Long, Fri, 25 Mar 2022 19:01:59 GMT

    In 49e3dac/rtems-source-builder:

    devel/glib-2.48: Update hash and patch Changes patch to be pulled from an RTEMS ticket and updated the hash of the patch. Updates #4634
    Comment 3
    1. Chris Johns, Tue, 29 Nov 2022 23:53:25 GMT

    Status update?

    Comment 4
    1. Joel Sherrill, Wed, 28 Dec 2022 17:45:56 GMT

    Looks like it got committed with "updates" not "closes"

    Comment 5
    1. Gedare Bloom, Mon, 23 Jan 2023 20:49:08 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed

    4635 - untar on JFFS slow down

    Link https://devel.rtems.org/ticket/4635
    Id 4635
    Reporter Chris Johns
    Created 29 March 2022 05:27:34
    Modified 5 April 2022 21:52:37
    Owner Chris Johns <chrisj@…>
    Type defect
    Component fs/jffs2
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Using untar on JFFS is slower on rtems 6 compared to 4.11. The application writes files to the flash disk from an in memory tarfile and the difference is easy to see for 10M or so of files.

    I reviewed the changes to JFFS in rtems 6 and they look OK so it is not a regression the libfs. I also timed the flash driver and it is the same on 6 as 4.11.

    I noticed on 6 there is a lot more blocks being written at the flash driver level compared to 4.11. Looking at untar I see the block size written is 512 bytes and with compression this results in a lot of small blocks. Changing the untar block write size to 8K speeds returns the performance.

    I am not sure why there are more blocks on 6. A guess is the compression is better, which is is nice. I will not look into this any more than changing untar to use 8K blocks.

    Comment 1
    1. Chris Johns, Tue, 05 Apr 2022 21:52:37 GMT
    2. owner: set to Chris Johns <chrisj@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 500e6963/rtems:

    libmisc/untar: Use a larger block size to read and write files A larger block size lets files systems work better. On JFFS a 512 byte compressed block means lots of small flash updates Closes #4635

    4639 - Error in imfs memfile when device is full

    Link https://devel.rtems.org/ticket/4639
    Id 4639
    Reporter Joel Sherrill
    Created 4 April 2022 13:31:12
    Modified 7 April 2022 08:27:37
    Owner Christian Mauderer
    Type defect
    Component fs
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Cloned from #4638:

    The problem from #2353 still exists in 5 and 6:

    Original description:

    From the reporter (Круглов Сергей ):

    • First bug I detect with attempt write file to full device (zero empty blocks).
    • And after I send too many files, disk overflow and system not responding (receive and write to disk have high priority). A test, and found block=0, after -- = too big value.
    • In imfs_memfile.c

    function IMFS_memfile_extend
    block declared: unsigned int block, and after block— work incorrect (if block = 0).
    for ( ; block>=old_blocks ; block-- ) {

    IMFS_memfile_remove_block( memfile, block );

    }
    Must be declare int block;

    Comment 1
    1. Christian Mauderer, Thu, 07 Apr 2022 08:27:37 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 43119193/rtems:

    imfs: Fix index underrun when extending empty file Currently the following sequence causes a endless loop when extending an IMFS file: Create a file with zero length and close it. Make sure nearly no allocatable memory is left. Open the file and write enough data into it that more than the remaining memory will be used. In that case when extending the IMFS file, the file currently need zero blocks. If allocating enough new blocks fails, the already allocated new blocks will be freed again. The comparison of block>=old_blocks that has been used prior to this patch compared two unsigned numbers. If old_blocks was zero, the comparison of these two numbers always evaluated to true. This patch frees the last block in a separate step to avoid this problem. Fixes #4639

    4641 - x86_64 elf_machdep header file missing body

    Link https://devel.rtems.org/ticket/4641
    Id 4641
    Reporter Ryan Long
    Created 7 April 2022 12:59:03
    Modified 8 April 2022 13:25:41
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component arch/x86_64
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The elf_machdep header file is missing the body under cpukit/score/cpu/x86_64/include/machine.

    Joel found the code that needed to be put in at ​http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/arch/amd64/include/elf_machdep.h.

    Comment 1
    1. Ryan Long, Fri, 08 Apr 2022 13:25:41 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 5efcd021/rtems:

    x86_64/elf_machdep.h: Replace stub with NetBSD version The other ports included that architecture's version of this file from NetBSD. This patch follows that pattern. closes #4641

    4644 - wkspace "failed allocations" increase with heap protection enabled (cloned)

    Link https://devel.rtems.org/ticket/4644
    Id 4644
    Reporter Matthew J Fletcher
    Created 28 April 2022 06:52:10
    Modified 28 April 2022 07:13:22
    Owner Sebastian Huber
    Type defect
    Component score
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority low
    Severity normal
    Keywords  
    Cc joel@…
    Blocking  
    Blocked by  

    Description

    Cloned from #4643:

    Investigating the "Total number of failed allocations:" from the wkspace cmd i see that;

    /* Statistics */
    ++stats->failed_allocs;

    Are incremented when _Heap_Allocate_aligned_with_boundary fails, however it seems this will routinely fail due to;

    _Heap_Protection_free_all_delayed_blocks seemingly on purpose creating an impossibly large allocation.

    uintptr_t large = 0

    • (uintptr_t) HEAP_BLOCK_HEADER_SIZE
    • (uintptr_t) HEAP_ALLOC_BONUS
    • (uintptr_t) 1;

    void *p = _Heap_Allocate( heap, large );

    This makes it difficult to place a breakpoint on failed_allocs to investigate true low memory situations with heap protection enabled.

    Comment 1
    1. Sebastian Huber, Thu, 28 Apr 2022 07:13:22 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 8b18037f/rtems:

    heap: Fix heap statistics with protection enabled Close #4644.

    4646 - Control buildsets using the --with-&#42 command line option

    Link https://devel.rtems.org/ticket/4646
    Id 4646
    Reporter Chris Johns
    Created 5 May 2022 01:03:50
    Modified 5 May 2022 22:03:49
    Owner Chris Johns
    Type enhancement
    Component tool/rsb
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The following thread has raise an important issue on how we can test newer versions of tools. This ticket is about providing a solution:

    ​https://lists.rtems.org/pipermail/devel/2022-May/071458.html

    The solution is allow users to specific a tool set on the command line for a build of tools. The standard option is --with-.*. For example a command line could be:

    ../source-builder/sb-set-builder \
    --prefix=/opt/rtems/6 \
    --log=arm.txt \
    --with-rtems-gcc=tools/rtems-gcc-head-newlib-head \
    6/rtems-arm

    The buildset logic is to be changed to expand macros for buildset file names and to add a new buildset specific keyword %defineifnot. The tools default file becomes:

    #
    # Default tools configuration.
    #
    %include 6/rtems-base.bset
    #
    # Default RTEMS build. Override on the command line to the
    # the RSB. For example to test the latest versino of gcc use:
    #
    # --with-rtems-gcc=tools/rtems-gcc-head-newlib-head
    #
    %defineifnot with_rtems_dtc devel/dtc-1.6.1-1
    %defineifnot with_rtems_expat devel/expat-2.4.8-1
    %defineifnot with_rtems_gmp devel/gmp-6.2.1
    %defineifnot with_rtems_gdb tools/rtems-gdb-11.2
    %defineifnot with_rtems_binutils tools/rtems-binutils-2.38
    %defineifnot with_rtems_gcc tools/rtems-gcc-10-newlib-head
    %defineifnot with_rtems_tools tools/rtems-tools-6
    #
    # Build gdb first to raise the Python install error as early as
    # possible. GDB needs expat so it needs to be built before.
    #
    %{with_rtems_dtc}
    %{with_rtems_expat}
    %{with_rtems_gmp}
    %{with_rtems_gdb}
    %{with_rtems_binutils}
    %{with_rtems_gcc}
    %{with_rtems_tools}

    This approach lets cron based CI flows configure a build with the latest gcc, binutils etc so they can always be tested as a workflow.

    The new keyword lets a define in a nested buildset file override a command line value. That may be needed.

    Comment 1
    1. Chris Johns, Thu, 05 May 2022 22:03:49 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 7d80719/rtems-source-builder:

    sb/setbuilder: Control buildsets using the --with-* command line option Expand macros in buildset file names Add support to buildsets for %defineifnot Update 6 and 7 to support command line build overrides Closes #4646

    4648 - Documentation Needs to Use Version Variables not Hard-Coded Numbers

    Link https://devel.rtems.org/ticket/4648
    Id 4648
    Reporter Chris Johns
    Created 8 May 2022 11:11:42
    Modified 22 June 2023 21:57:22
    Owner  
    Type defect
    Component doc
    Status new
    Resolution  
    Version 6
    Milestone 6.1
    Priority normal
    Severity blocker
    Keywords user manual doc
    Cc  
    Blocking  
    Blocked by  

    Description

    This ticket is to track all the documentation changes for the RTEMS 6 releases.

    Comment 1
    1. Chris Johns, Sun, 08 May 2022 11:18:31 GMT

    Update the build system to support substitution in areas of the text with:

    @rtems-version@ @rtems-ver-major@ @rtems-ver-minor@ @rtems-ver-revision@

    The support allows the source to contain in any area:

     $ sparc-rtems@rtems-ver-major@-gdb app.exe 
    Comment 2
    1. Chris Johns, Sun, 08 May 2022 11:20:39 GMT
    Topaz Hypervisor Guest

    Update to waf configure

    ​https://docs.rtems.org/branches/master/user/bsps/bsps-powerpc.html#topaz-hypervisor-guest

    Comment 3
    1. Chris Johns, Sun, 08 May 2022 11:22:58 GMT
    RISC-V

    No configure command line with waf.

    ​https://docs.rtems.org/branches/master/user/bsps/bsps-riscv.html#build-configuration-options

    Comment 4
    1. Chris Johns, Sun, 08 May 2022 11:25:57 GMT
    x86_64

    Configure options

    ​https://docs.rtems.org/branches/master/user/bsps/bsps-x86_64.html#build-configuration-options

    Comment 5
    1. Chris Johns, Mon, 09 May 2022 11:45:45 GMT

    The use of .. include:: in the nested index.rst files breaks the parsing of Sphinx. I have discovered the read in source that passes through the source-read hook is not in the some of the generated HTML pages. I cannot tell if this is a bug in Sphinx, the theme or something else but using the .. toctree:: works.

    We need to change the use includes and update the README.txt.

    Comment 6
    1. Joel Sherrill, Thu, 22 Jun 2023 21:01:23 GMT
    2. summary: changed from User manual documentation updates to User manual documentation updates for RTEMS 6 release
    Comment 7
    1. Joel Sherrill, Thu, 22 Jun 2023 21:56:19 GMT

    We need to use this extension:

    ​https://github.com/adamtheturtle/sphinx-substitution-extensions

    And then a documentation working session to switch the hard-coded versions and lengthy version specific output. Also remove the current hacked [per Chris :) ] solution.

    Comment 8
    1. Joel Sherrill, Thu, 22 Jun 2023 21:57:22 GMT
    2. summary: changed from User manual documentation updates for RTEMS 6 release to Documentation Needs to Use Version Variables not Hard-Coded Numbers

    4650 - tcpdump: Fix dumping to file and reading from file (cloned)

    Link https://devel.rtems.org/ticket/4650
    Id 4650
    Reporter Sebastian Huber
    Created 11 May 2022 06:44:34
    Modified 12 May 2022 05:44:39
    Owner Sebastian Huber
    Type defect
    Component network/libbsd
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Cloned from #4649:

    When dumping to file, the file needs to be closed at program exit. When reading from file, we do not need the loop monitor. Do not use signals, since they are not cleaned up at program exit.

    Comment 1
    1. Sebastian Huber, Thu, 12 May 2022 05:41:43 GMT

    In a4c3d74/rtems-libbsd:

    tcpdump01: New test Update #4650.
    Comment 2
    1. Sebastian Huber, Thu, 12 May 2022 05:41:44 GMT

    In 7bc7bae/rtems-libbsd:

    Add program destructor support Update #4650.
    Comment 3
    1. Sebastian Huber, Thu, 12 May 2022 05:41:46 GMT

    In bd2201b/rtems-libbsd:

    tcpdump: Make loop monitor cooperative This helps a bit if the fgetc() is non-blocking. Update #4650.
    Comment 4
    1. Sebastian Huber, Thu, 12 May 2022 05:41:47 GMT

    In face369/rtems-libbsd:

    tcpdump: Use rtems_task_exit() Update #4650.
    Comment 5
    1. Sebastian Huber, Thu, 12 May 2022 05:41:49 GMT

    In 869cb1a/rtems-libbsd:

    tcpdump: Close pcap dumper at program exit Update #4650.
    Comment 6
    1. Sebastian Huber, Thu, 12 May 2022 05:41:50 GMT

    In 70c9ac2/rtems-libbsd:

    tcpdump: No loop monitor if reading from file Update #4650.
    Comment 7
    1. Sebastian Huber, Thu, 12 May 2022 05:41:51 GMT

    In 45dfdc1/rtems-libbsd:

    tcpdump: Ensure loop monitor termination Update #4650.
    Comment 8
    1. Sebastian Huber, Thu, 12 May 2022 05:41:53 GMT

    In 584dd8d/rtems-libbsd:

    tcpdump: Do not use signals and chroot Update #4650.
    Comment 9
    1. Sebastian Huber, Thu, 12 May 2022 05:44:15 GMT

    In 544ba25/rtems-libbsd:

    tcpdump01: New test Update #4650.
    Comment 10
    1. Sebastian Huber, Thu, 12 May 2022 05:44:19 GMT

    In c621252/rtems-libbsd:

    Add program destructor support Update #4650.
    Comment 11
    1. Sebastian Huber, Thu, 12 May 2022 05:44:22 GMT

    In 479b4de/rtems-libbsd:

    tcpdump: Make loop monitor cooperative This helps a bit if the fgetc() is non-blocking. Update #4650.
    Comment 12
    1. Sebastian Huber, Thu, 12 May 2022 05:44:26 GMT

    In 6fb7134/rtems-libbsd:

    tcpdump: Use rtems_task_exit() Update #4650.
    Comment 13
    1. Sebastian Huber, Thu, 12 May 2022 05:44:29 GMT

    In 011f489/rtems-libbsd:

    tcpdump: Close pcap dumper at program exit Update #4650.
    Comment 14
    1. Sebastian Huber, Thu, 12 May 2022 05:44:33 GMT

    In c9b44ba/rtems-libbsd:

    tcpdump: No loop monitor if reading from file Update #4650.
    Comment 15
    1. Sebastian Huber, Thu, 12 May 2022 05:44:36 GMT

    In 32ebbd3/rtems-libbsd:

    tcpdump: Ensure loop monitor termination Update #4650.
    Comment 16
    1. Sebastian Huber, Thu, 12 May 2022 05:44:39 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 5ad77a9/rtems-libbsd:

    tcpdump: Do not use signals and chroot Close #4650.

    4652 - if_atsam: Fix checksum offload, add multicast and VLAN support (cloned)

    Link https://devel.rtems.org/ticket/4652
    Id 4652
    Reporter Sebastian Huber
    Created 11 May 2022 06:48:48
    Modified 1 June 2022 07:53:46
    Owner Sebastian Huber
    Type defect
    Component network/libbsd
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Cloned from #4651:

    The if_atsam network interface driver has several issues. Do not disable the FCS if the checksum offload is disabled. Make sure the interface capabilities are enabled. Add multicast and VLAN support. Use the interface transmit method instead of the interface start approach. Correct a potential receive starvation error. Fix the interface up/down.

    Comment 1
    1. Sebastian Huber, Wed, 11 May 2022 13:53:53 GMT

    In 2556c4c/rtems-libbsd:

    if_atsam: Fix warnings Update #4652.
    Comment 2
    1. Sebastian Huber, Wed, 11 May 2022 13:53:54 GMT

    In 7e082f6/rtems-libbsd:

    if_atsam: Enable all capabilities Update #4652.
    Comment 3
    1. Sebastian Huber, Wed, 11 May 2022 13:53:55 GMT

    In adda3a5/rtems-libbsd:

    if_atsam: Do not disable the Ethernet CRC The Ethernet CRC and padding must be always generated by the MAC. Update #4652.
    Comment 4
    1. Sebastian Huber, Wed, 11 May 2022 13:53:57 GMT

    In 975916a/rtems-libbsd:

    if_atsam: Fix interrupt setup The interrupt is enabled by rtems_interrupt_handler_install(). Update #4652.
    Comment 5
    1. Sebastian Huber, Wed, 11 May 2022 13:53:58 GMT

    In 1230011/rtems-libbsd:

    if_atsam: Fix start/stop of interface Update #4652.
    Comment 6
    1. Sebastian Huber, Wed, 11 May 2022 13:53:59 GMT

    In c944cb9/rtems-libbsd:

    if_atsam: Add multicast support Update #4652.
    Comment 7
    1. Sebastian Huber, Wed, 11 May 2022 13:54:01 GMT

    In 2cb974f/rtems-libbsd:

    if_atsam: Optimize transmit Use the transmit interface handler to avoid a transmit task/interrupt. Use a compile-time constant for the transmit DMA descriptor count to simplify calculations. Update #4652.
    Comment 8
    1. Sebastian Huber, Wed, 11 May 2022 13:54:02 GMT

    In 967613f/rtems-libbsd:

    if_atsam: Optimize receive Do not use the interface mutex in the receive loop. Avoid multiple reads of DMA descriptor words. Use a compile-time constant for the receive DMA descriptor count to simplify calculations. Update #4652.
    Comment 9
    1. Sebastian Huber, Wed, 11 May 2022 13:54:03 GMT

    In 821bcb7/rtems-libbsd:

    if_atsam: Support IFCAP_VLAN_HWTAGGING This is required to enable checksum offload for vlan interfaces. Update #4652.
    Comment 10
    1. Sebastian Huber, Wed, 11 May 2022 13:54:05 GMT

    In 989675e/rtems-libbsd:

    if_atsam: Do not use rtems_bsdnet_newproc() Update #4652.
    Comment 11
    1. Sebastian Huber, Wed, 11 May 2022 13:54:06 GMT

    In 4ad0961/rtems-libbsd:

    if_atsam: Support transmit bpf Update #4652.
    Comment 12
    1. Sebastian Huber, Wed, 11 May 2022 13:54:07 GMT

    In e992d45/rtems-libbsd:

    if_atsam: Fix interface stop Update #4652.
    Comment 13
    1. Sebastian Huber, Wed, 11 May 2022 14:01:46 GMT

    In 73c764a/rtems-libbsd:

    if_atsam: Fix warnings Update #4652.
    Comment 14
    1. Sebastian Huber, Wed, 11 May 2022 14:01:48 GMT

    In c58bb60/rtems-libbsd:

    if_atsam: Enable all capabilities Update #4652.
    Comment 15
    1. Sebastian Huber, Wed, 11 May 2022 14:01:49 GMT

    In 5b62a8b/rtems-libbsd:

    if_atsam: Do not disable the Ethernet CRC The Ethernet CRC and padding must be always generated by the MAC. Update #4652.
    Comment 16
    1. Sebastian Huber, Wed, 11 May 2022 14:01:50 GMT

    In 339ba3d/rtems-libbsd:

    if_atsam: Fix interrupt setup The interrupt is enabled by rtems_interrupt_handler_install(). Update #4652.
    Comment 17
    1. Sebastian Huber, Wed, 11 May 2022 14:01:51 GMT

    In f4efcbf/rtems-libbsd:

    if_atsam: Fix start/stop of interface Update #4652.
    Comment 18
    1. Sebastian Huber, Wed, 11 May 2022 14:01:53 GMT

    In 3150b37/rtems-libbsd:

    if_atsam: Add multicast support Update #4652.
    Comment 19
    1. Sebastian Huber, Wed, 11 May 2022 14:01:54 GMT

    In 6be24bd/rtems-libbsd:

    if_atsam: Optimize transmit Use the transmit interface handler to avoid a transmit task/interrupt. Use a compile-time constant for the transmit DMA descriptor count to simplify calculations. Update #4652.
    Comment 20
    1. Sebastian Huber, Wed, 11 May 2022 14:01:55 GMT

    In 62fc2b6/rtems-libbsd:

    if_atsam: Optimize receive Do not use the interface mutex in the receive loop. Avoid multiple reads of DMA descriptor words. Use a compile-time constant for the receive DMA descriptor count to simplify calculations. Update #4652.
    Comment 21
    1. Sebastian Huber, Wed, 11 May 2022 14:01:56 GMT

    In 202502a/rtems-libbsd:

    if_atsam: Support IFCAP_VLAN_HWTAGGING This is required to enable checksum offload for vlan interfaces. Update #4652.
    Comment 22
    1. Sebastian Huber, Wed, 11 May 2022 14:01:58 GMT

    In 5c4ac7a/rtems-libbsd:

    if_atsam: Do not use rtems_bsdnet_newproc() Update #4652.
    Comment 23
    1. Sebastian Huber, Wed, 11 May 2022 14:01:59 GMT

    In 8039d70/rtems-libbsd:

    if_atsam: Support transmit bpf Update #4652.
    Comment 24
    1. Sebastian Huber, Wed, 11 May 2022 14:02:00 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 38e1610/rtems-libbsd:

    if_atsam: Fix interface stop Close #4652.
    Comment 25
    1. Sebastian Huber, Wed, 01 Jun 2022 07:52:38 GMT

    In 07e2820/rtems-libbsd:

    if_atsam: Allow stats reset via sysctl Update #4652.
    Comment 26
    1. Sebastian Huber, Wed, 01 Jun 2022 07:52:39 GMT

    In 683bae9/rtems-libbsd:

    if_atsam: Add register sysctls Update #4652.
    Comment 27
    1. Sebastian Huber, Wed, 01 Jun 2022 07:52:40 GMT

    In bd56cb2/rtems-libbsd:

    if_atsam: Add tx/rx desc sysctls Update #4652.
    Comment 28
    1. Sebastian Huber, Wed, 01 Jun 2022 07:52:42 GMT

    In 8588e95/rtems-libbsd:

    if_atsam: Shorten sysctl names Update #4652.
    Comment 29
    1. Sebastian Huber, Wed, 01 Jun 2022 07:52:43 GMT

    In 61f646d/rtems-libbsd:

    if_atsam: Recover from receive freezes Under unknown conditions the receive path ended up in a frozen state. In this state, the DMA and driver descriptor head were equal and all receive descriptors had the used bit set. So, the DMA was unable to store received frames. However, the receive daemon was never woken up to refill the receive buffers. It seems that the RXUBR interrupt can be used to recover from this state. Update #4652.
    Comment 30
    1. Sebastian Huber, Wed, 01 Jun 2022 07:53:41 GMT

    In 5650e92/rtems-libbsd:

    if_atsam: Allow stats reset via sysctl Update #4652.
    Comment 31
    1. Sebastian Huber, Wed, 01 Jun 2022 07:53:42 GMT

    In eb58e82/rtems-libbsd:

    if_atsam: Add register sysctls Update #4652.
    Comment 32
    1. Sebastian Huber, Wed, 01 Jun 2022 07:53:43 GMT

    In 1ed12b8/rtems-libbsd:

    if_atsam: Add tx/rx desc sysctls Update #4652.
    Comment 33
    1. Sebastian Huber, Wed, 01 Jun 2022 07:53:45 GMT

    In eea3f0e/rtems-libbsd:

    if_atsam: Shorten sysctl names Update #4652.
    Comment 34
    1. Sebastian Huber, Wed, 01 Jun 2022 07:53:46 GMT

    In 9e87868/rtems-libbsd:

    if_atsam: Recover from receive freezes Under unknown conditions the receive path ended up in a frozen state. In this state, the DMA and driver descriptor head were equal and all receive descriptors had the used bit set. So, the DMA was unable to store received frames. However, the receive daemon was never woken up to refill the receive buffers. It seems that the RXUBR interrupt can be used to recover from this state. Update #4652.

    4654 - pfctl: Fix global state initialization (cloned)

    Link https://devel.rtems.org/ticket/4654
    Id 4654
    Reporter Sebastian Huber
    Created 11 May 2022 11:37:24
    Modified 13 May 2022 06:53:13
    Owner Sebastian Huber
    Type defect
    Component network/libbsd
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Cloned from #4653:

    The last update introduced a static variable in get_query_socket() which was not initialized.

    Comment 1
    1. Sebastian Huber, Wed, 11 May 2022 13:17:11 GMT

    In c9696eb/rtems-libbsd:

    pf02: Fix shell envirionment initialization Update #4654.
    Comment 2
    1. Sebastian Huber, Wed, 11 May 2022 13:17:13 GMT

    In 435b298/rtems-libbsd:

    pfctl: Fix global state initialization Update #4654.
    Comment 3
    1. Sebastian Huber, Wed, 11 May 2022 13:19:09 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 211c5ed/rtems-libbsd:

    pf02: Fix shell envirionment initialization Close #4654.
    Comment 4
    1. Sebastian Huber, Fri, 13 May 2022 06:53:13 GMT

    In ae635eb/rtems-libbsd:

    pfctl: Fix global state initialization Update #4654.

    4656 - sync() whould synchronize all file descriptors (cloned)

    Link https://devel.rtems.org/ticket/4656
    Id 4656
    Reporter Sebastian Huber
    Created 13 May 2022 10:58:51
    Modified 17 May 2022 13:20:31
    Owner Sebastian Huber
    Type defect
    Component fs
    Status closed
    Resolution fixed
    Version 4.5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Cloned from #4655:

    According to POSIX

    ​https://pubs.opengroup.org/onlinepubs/9699919799/functions/sync.html

    we have

    The sync() function shall cause all information in memory that updates file systems to be scheduled for writing out to all file systems. 

    Currently, the RTEMS sync() implementation synchronizes only the file descriptors associated with a FILE object. This should be changed to call fsync() and fdatasync() for all file descriptors.

    Comment 1
    1. Sebastian Huber, Tue, 17 May 2022 13:20:31 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 3ccfb583/rtems:

    Synchronize all file descriptors in sync() Synchronize all file descriptors and not just the ones associated with a FILE object. Close #4656.

    4658 - Fix build issue with riscv sample test

    Link https://devel.rtems.org/ticket/4658
    Id 4658
    Reporter Ryan Long
    Created 16 May 2022 17:40:10
    Modified 29 November 2022 23:55:04
    Owner  
    Type defect
    Component arch/riscv
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    When trying to build the minimum sample test for any RISC-V BSP, the following error occurs.

    start.o: in function .L0:
    /home/tester/rtems-cron-6/rtems/build/riscv/rv32i/../../../bsps/riscv/shared/start/start.S:84:(.bsp_start_text+0x2c): relocation truncated to fit: R_RISCV_GPREL_I against symbol 'bsp_section_bss_size' defined in *ABS* section in /home/tester/rtems-cron-6/rtems/build/riscv/rv32i/testsuites/samples/minimum.exe
    collect2: error: ld returned 1 exit status
    Comment 1
    1. Sebastian Huber, Wed, 18 May 2022 06:26:58 GMT

    I cannot reproduce this issue on my development machines. It could be an issue in the linker. I would run the linker in GDB and try to debug it to figure out what is going on.

    Comment 2
    1. Sebastian Huber, Fri, 28 Oct 2022 11:53:25 GMT

    In 89ba2a98/rtems:

    bsps/riscv: Workaround for sporadic linker issues Disable the linker relaxation in start.S to work around an issue described here: ​https://mail.gnu.org/archive/html/bug-binutils/2021-03/msg00164.html The real issue is probably in the linker command file or the linker itself. Update #4658.
    Comment 3
    1. Sebastian Huber, Fri, 04 Nov 2022 12:50:15 GMT

    In b4ffaa7c/rtems:

    bsps/riscv: Use start data for object Maybe this helps to ensure that the object is properly aligned. Update #4658.
    Comment 4
    1. Chris Johns, Tue, 29 Nov 2022 23:55:04 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed

    4661 - GCC 12 generates wrong code

    Link https://devel.rtems.org/ticket/4661
    Id 4661
    Reporter Chris Johns
    Created 8 June 2022 03:45:09
    Modified 19 July 2022 06:02:18
    Owner Chris Johns <chrisj@…>
    Type defect
    Component tool/gcc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority high
    Severity blocker
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Calling exit() in a C++ application results in std::terminate() being called.

    The std::ios_base::Init::~Init() destructor flushes std::cout, std::cerr and std::clog. The flush of std::cerr results in terminate being called.

    The ios_base class uses a sentry to check the state. The code in it's destructor is:

    if (bool(_M_os.flags() & ios_base::unitbuf) && !uncaught_exception()) 

    The std::cerr object has ios_base::unitbuf set so uncaught_exception() is called. This call gets the cxa globals:

    __cxa_eh_globals *globals = __cxa_get_globals (); 

    The __cxa_get_globals() checks if the ec_globals init object:

    static __eh_globals_init init; 

    to see if it is still valid and the state is:

    (gdb) p /x init
    $2 = {
    _M_key = 0x13010001,
    _M_init = 0x1
    }

    However the static destructor has run and the POSIX key has been deleted. This results in std::terminate() being called.

    The code for the destructor on ARM is:

    006562e0 <__eh_globals_init::~__eh_globals_init()>:
    6562e0: 7903 ldrb r3, [r0, #4]
    6562e2: b510 push {r4, lr}
    6562e4: 4604 mov r4, r0
    6562e6: b90b cbnz r3, 6562ec <__eh_globals_init::~__eh_globals_init()+0xc>
    6562e8: 4620 mov r0, r4
    6562ea: bd10 pop {r4, pc}
    6562ec: 6800 ldr r0, [r0, #0]
    6562ee: f04d fe6b bl 6a3fc8
    6562f2: 4620 mov r0, r4
    6562f4: bd10 pop {r4, pc}

    and for aarch64 it is:

    0000000010222c30 <__eh_globals_init::~__eh_globals_init()>:
    10222c30: 39401001 ldrb w1, [x0, #4]
    10222c34: 35000041 cbnz w1, 10222c3c <__eh_globals_init::~__eh_globals_init()+0xc>
    10222c38: d65f03c0 ret
    10222c3c: a9bf7bfd stp x29, x30, [sp, #-16]!
    10222c40: 910003fd mov x29, sp
    return pthread_key_delete (__key);
    10222c44: b9400000 ldr w0, [x0]
    10222c48: 94008806 bl 10244c60
    10222c4c: a8c17bfd ldp x29, x30, [sp], #16
    10222c50: d65f03c0 ret

    The _M_init boolean is not set to false.

    Comment 1
    1. Chris Johns, Wed, 08 Jun 2022 05:13:41 GMT

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

    Comment 2
    1. Chris Johns, Thu, 09 Jun 2022 02:21:00 GMT

    In 80aea6a/rtems:

    testsuite/libtests: Add exit03 to test exit() with C++ Updates #4661
    Comment 3
    1. Chris Johns, Tue, 19 Jul 2022 06:02:18 GMT
    2. owner: set to Chris Johns <chrisj@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In a2bda89/rtems-source-builder:

    gcc12/libstdc++: Fix lifetime bugs for non-TLS eh_globals This is the fix from PR105880:
    ​https://gcc.gnu.org/bugzilla/attachment.cgi?id=53103
    Closes #4661

    4662 - Fix GCC 12 warnings

    Link https://devel.rtems.org/ticket/4662
    Id 4662
    Reporter Chris Johns
    Created 8 June 2022 04:12:05
    Modified 31 October 2023 11:48:22
    Owner  
    Type defect
    Component tool/gcc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority highest
    Severity blocker
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    The move to GCC 12 has resulted in an increase in the number of warning. This ticket covers fixing these warning.

    Comment 1
    1. Chris Johns, Mon, 13 Jun 2022 22:22:46 GMT

    In 66dc06e/rtems:

    (The changeset message doesn't reference this ticket)

    Comment 2
    1. Chris Johns, Wed, 15 Jun 2022 02:56:27 GMT

    In 5262b9c/rtems:

    score/cpu: Silence ARM and AARCH64 GCC 12 false trigger array warning The false trigger is covered in: ​https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99578 GCC 11 and 12 has been patched for constant pointer casts above 4K. This code casts a constant pointer within the first 4K page. As a result the patch disables the warning. Updates #4662
    Comment 3
    1. Chris Johns, Wed, 15 Jun 2022 02:56:30 GMT

    In 0cf0914/rtems:

    cpukit: Change _COMPILING_NEWLIB to _LIBC for helper functions decls Updates #4662
    Comment 4
    1. Chris Johns, Mon, 20 Jun 2022 00:39:36 GMT

    The rtems/test.h code has a few warnings that are confusing:

    In file included from ../../../testsuites/libtests/ttest01/test-leak.c:1:
    ../../../cpukit/include/rtems/test.h: In function 'T_case_body_missing_free':
    ../../../cpukit/include/rtems/test.h:225:9: warning: 'p' may be used uninitialized [-Wmaybe-uninitialized]
      225 |         T_check_not_null(&T_check_instance, a);                         \
          |         ^~~~~~~~~~~~~~~~
    ../../../cpukit/include/rtems/test.h:219:6: note: by argument 2 of type 'const void *' to 'T_check_not_null' declared here
      219 | void T_check_not_null(const T_check_context_msg *, const void *);
          |      ^~~~~~~~~~~~~~~~ 

    There are some more. Why does the code have tabs? It makes it difficult to update.

    Comment 5
    1. Chris Johns, Mon, 20 Jun 2022 01:19:56 GMT

    The warning in comment:4 looks similar to:

    [3173/4451] Compiling testsuites/psxtests/psxkey07/init.c
    ../../../testsuites/psxtests/psxkey07/init.c: In function 'Test_Thread':
    ../../../testsuites/psxtests/psxkey07/init.c:59:8: warning: 'value_p' may be used uninitialized [-Wmaybe-uninitialized]
       59 |   sc = pthread_setspecific( Key, value_p );
          |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In file included from ../../../testsuites/psxtests/psxkey07/init.c:34:
    /opt/work/rtems/6/arm-rtems6/include/pthread.h:309:9: note: by argument 2 of type 'const void *' to 'pthread_setspecific' declared here
      309 | int     pthread_setspecific (pthread_key_t __key, const void *__value);
          |         ^~~~~~~~~~~~~~~~~~~ 

    The code is also similar to the comment:4 test case:

     int *value_p, *value_p2;
      value_p = malloc( sizeof( int ) );
      rtems_test_assert(value_p != NULL); 

    Note, I added the NULL assert. Is this a false trigger for gcc 12 or something related to the malloc decl?

    Comment 6
    1. Chris Johns, Mon, 20 Jun 2022 01:30:06 GMT

    There are a number of validation warnings. This is the bug notice of these warning as per the header.

    Comment 7
    1. Chris Johns, Wed, 03 Aug 2022 07:18:28 GMT

    I would prefer not to have to touch this trail:

    ../../../cpukit/score/src/percpudata.c: In function '_Per_CPU_Data_initialize':
    ../../../cpukit/score/src/percpudata.c:88:7: warning: 'memcpy' offset 0 is out of the bounds [0, 0] of object '_Linker_set__Per_CPU_Data_begin' with type 'char[0]' [-Warray-bounds]
       88 |       memcpy( cpu->data, RTEMS_LINKER_SET_BEGIN( _Per_CPU_Data ), size);
          |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In file included from ../../../cpukit/include/rtems/score/percpudata.h:41,
                     from ../../../cpukit/score/src/percpudata.c:41:
    ../../../cpukit/include/rtems/linkersets.h:38:3: note: '_Linker_set__Per_CPU_Data_begin' declared here
       38 |   _Linker_set_##set##_begin
          |   ^~~~~~~~~~~~
    ../../../cpukit/include/rtems/linkersets.h:95:39: note: in expansion of macro 'RTEMS_LINKER_SET_BEGIN'
       95 |   RTEMS_LINKER_SET_ALIGN( type ) type RTEMS_LINKER_SET_BEGIN( set )[ 0 ] \
          |                                       ^~~~~~~~~~~~~~~~~~~~~~
    ../../../cpukit/score/src/percpudata.c:49:1: note: in expansion of macro 'RTEMS_LINKER_RWSET'
       49 | RTEMS_LINKER_RWSET(
          | ^~~~~~~~~~~~~~~~~~ 

    Built with config.ini:

    [DEFAULT]
    RTEMS_DEBUG = True
    RTEMS_POSIX_API = True
    [arm/xilinx_zynq_a9_qemu]
    RTEMS_SMP = True
    BUILD_TESTS = True 
    Comment 8
    1. Chris Johns, Wed, 03 Aug 2022 07:44:09 GMT

    This warning looks like a bug in our heap allocator:

    ../../../testsuites/libtests/malloctest/init.c: In function 'test_early_malloc':                                                                                                                     |                                                                                                                                                                                                      |
    ../../../testsuites/libtests/malloctest/init.c:1531:7: warning: pointer 'q' used after 'free' [-Wuse-after-free]                                                                                     |  r = realloc( q, 128 );                                                                                                                                                                              |/**
     1531 |   r = realloc( q, 128 );                                                                                                                                                                     |  rtems_test_assert( r == q );                                                                                                                                                                        |-=--:----F1  libio_.h       12% (110,15)  Git-master  (C++//l Abbrev) [ruru] ------------------------------------------------------------------------------------------------------------------------
          |       ^~~~~~~~~~~~~~~~~                                                                                                                                                                      |                                                                                                                                                                                                      | * defined state even if no root file system was mounted.
    ../../../testsuites/libtests/malloctest/init.c:1529:3: note: call to 'free' here                                                                                                                     |  s = malloc( 1 );                                                                                                                                                                                    | */
     1529 |   free( q );                                                                                                                                                                                 |  rtems_test_assert( s != NULL );                                                                                                                                                                     |extern rtems_filesystem_global_location_t rtems_filesystem_global_location_null;
          |   ^~~~~~~~~                                                                                                                                                                                  |                                                                                                                                                                                                      | 

    The pointer q has been free so I am wondering if the realloc works because the same block in the heap is allocated?

    Comment 9
    1. Chris Johns, Wed, 03 Aug 2022 10:18:25 GMT

    I think this warning is due to the pointer being captured in a static const variable:

    In file included from ../../../testsuites/libtests/ttest01/test-leak.c:1:
    ../../../cpukit/include/rtems/test.h: In function 'T_case_body_missing_free':
    ../../../cpukit/include/rtems/test.h:225:9: warning: 'p' may be used uninitialized [-Wmaybe-uninitialized]
      225 |         T_check_not_null(&T_check_instance, a);                         \
          |         ^~~~~~~~~~~~~~~~
    ../../../cpukit/include/rtems/test.h:219:6: note: by argument 2 of type 'const void *' to 'T_check_not_null' declared here
      219 | void T_check_not_null(const T_check_context_msg *, const void *);
          |      ^~~~~~~~~~~~~~~~ 

    It should be OK so I am wondering if this is a false warning?

    Comment 10
    1. Chris Johns, Wed, 03 Aug 2022 10:24:17 GMT

    Replying to Chris Johns:

    I think this warning is due to the pointer being captured in a static const variable:

    The pointer is not part of the static const data.

    Comment 11
    1. Chris Johns, Thu, 04 Aug 2022 21:48:31 GMT

    In 46131ce0/rtems:

    libdl: Fix warnings on 64bit architectures Updates #4662
    Comment 12
    1. Chris Johns, Thu, 04 Aug 2022 21:48:34 GMT

    In c36d608/rtems:

    testsuite: Fix warnings Updates #4662
    Comment 13
    1. Ryan Long, Fri, 19 Aug 2022 20:46:14 GMT

    In ec7d6c0/rtems:

    threads.h: Add pragmas to get rid of gcc 12 errors Updates #4662
    Comment 14
    1. Ryan Long, Fri, 19 Aug 2022 20:46:17 GMT

    In f9302067/rtems:

    linkersets.h: Fix gcc 12 warning Changing the offset from 0 to 1 got rid of a warning stating that offset 0 is out of bounds. Updates #4662
    Comment 15
    1. Ryan Long, Fri, 19 Aug 2022 20:46:19 GMT

    In df3fa4e0/rtems:

    interr.h: Fix gcc 12 warning The warning that this fixes states that "ISO C restricts enumerator values to range of 'int'." Updates #4662
    Comment 16
    1. Ryan Long, Fri, 19 Aug 2022 20:46:21 GMT

    In c55bd160/rtems:

    percpu.h: Add pragma for gcc 12 warning Updates #4662
    Comment 17
    1. Ryan Long, Fri, 19 Aug 2022 20:46:23 GMT

    In 5b875915/rtems:

    schedulerpriority.h: Fix gcc 12 warning Changed the size of the array to 1 to get rid of the warning. Updates #4662
    Comment 18
    1. Ryan Long, Fri, 19 Aug 2022 20:46:26 GMT

    In 9e228978/rtems:

    test.h: Add pragma for gcc 12 warning Updates #4662
    Comment 19
    1. Ryan Long, Fri, 19 Aug 2022 20:46:28 GMT

    In b092ad57/rtems:

    cpu.h: Fix gcc 12 warnings Added two pragmas to address, and changed the value of AARCH64_EXCEPTION_MAKE_ENUM_64_BIT to INT_MAX because the old value was not in range of an int. Updates #4662
    Comment 20
    1. Ryan Long, Fri, 19 Aug 2022 20:46:30 GMT

    In dc0dccc/rtems:

    dl09/dl-load.c: Fix gcc 12 warning Changed format of size_t variable being printed. Updates #4662
    Comment 21
    1. Ryan Long, Fri, 19 Aug 2022 20:46:33 GMT

    In a447b9b3/rtems:

    malloctest/init.c: Added pragmas to address gcc 12 warnings Updates #4662
    Comment 22
    1. Ryan Long, Fri, 19 Aug 2022 20:46:35 GMT

    In 978022ee/rtems:

    ttest01/test-checks.c: Initialize variables These uninitialized variables were causing warnings to be generated. Updates #4662
    Comment 23
    1. Ryan Long, Fri, 19 Aug 2022 20:46:37 GMT

    In f60f349/rtems:

    psxclock/init.c: Change print format for warning Updates #4662
    Comment 24
    1. Ryan Long, Fri, 19 Aug 2022 20:46:39 GMT

    In f045b9d/rtems:

    psxkey07/init.c: Add pragma for gcc 12 warning Updates #4662
    Comment 25
    1. Sebastian Huber, Tue, 30 Aug 2022 04:50:29 GMT

    In c226990/rtems:

    score: Do not expose to The header file should not unnecessarily include standard C header files. The and header includes were removed in 2017. Update #4662.
    Comment 26
    1. Sebastian Huber, Tue, 30 Aug 2022 05:32:54 GMT

    In 44b3bc65/rtems:

    validation: Fix use of uninitialized variables Update #4662.
    Comment 27
    1. Sebastian Huber, Tue, 30 Aug 2022 13:11:48 GMT

    In c1453c6/rtems-central:

    spec: Fix warnings in validation code Update #4662.
    Comment 28
    1. Sebastian Huber, Wed, 31 Aug 2022 11:12:58 GMT

    In 1be6dc18/rtems:

    libtest: Fix warnings without a pragma It seems that recent GCC versions expect that functions with a "const type *" parameter will read from the referenced location. Update #4662.
    Comment 29
    1. Sebastian Huber, Wed, 31 Aug 2022 11:13:00 GMT

    In dad6d322/rtems:

    Fix pedanic warnings without a storage increase Use RTEMS_ZERO_LENGTH_ARRAY for flexible array member. Update #4662.
    Comment 30
    1. Sebastian Huber, Fri, 09 Sep 2022 05:59:44 GMT

    In 8d32b988/rtems:

    validation: Fix integer type warning Update #4662.
    Comment 31
    1. Chris Johns, Tue, 29 Nov 2022 23:55:39 GMT
    2. priority: changed from normal to highest
    Comment 32
    1. Joel Sherrill, Fri, 27 Jan 2023 23:37:14 GMT

    Filed #4833 for warnings in grlib/pci/grpci2dma.c which will require some insight to resolve properly. They look simple to fix for the __RIGHT__ person.

    Comment 33
    1. Joel Sherrill, Mon, 30 Jan 2023 16:28:57 GMT

    In 29a3ad1b/rtems:

    grlib: Fix snprintf() overflow warnings from gcc 12 Updates #4662.
    Comment 34
    1. Zhongjie Zhu, Tue, 07 Feb 2023 16:30:27 GMT

    In ebb9e8c/rtems:

    score: Fix maybe uninitialized warning There are different cases for _ISR_lock_ISR_disable() and _ISR_lock_ISR_enable() in the case RTEMS_SMP is defined or RTEMS_PROFILING is defined, so remove the related code. ../../../cpukit/include/rtems/score/threaddispatch.h: In function '_Thread_Dispatch_disable': ../../../cpukit/include/rtems/score/threaddispatch.h:231:14: warning: 'lock_context' may be used uninitialized [-Wmaybe-uninitialized]
    231 | cpu_self = _Thread_Dispatch_disable_critical( &lock_context );
    | ~
    ../../../cpukit/include/rtems/score/threaddispatch.h:210:32: note: by argument 1 of type 'const ISR_lock_Context *' to '_Thread_Dispatch_disable_critical' declared here
    210 | static inline Per_CPU_Control *_Thread_Dispatch_disable_critical(
    |
    ../../../cpukit/include/rtems/score/threaddispatch.h:225:21: note: 'lock_context' declared here
    225 | ISR_lock_Context lock_context;
    | ~
    Update #4662.
    Comment 35
    1. Joel Sherrill, Thu, 22 Jun 2023 20:55:25 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed

    Looks like most, if not all, have been resolved.

    Comment 36
    1. Sebastian Huber, Tue, 31 Oct 2023 11:48:22 GMT
    2. keywords: qualification added

    4666 - TFTP: Implement block and window size options

    Link https://devel.rtems.org/ticket/4666
    Id 4666
    Reporter Sebastian Huber
    Created 21 June 2022 07:25:19
    Modified 18 January 2024 16:36:42
    Owner Sebastian Huber
    Type enhancement
    Component fs
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Support the following TFTP options:

    • RFC 2347 TFTP Option Extension
    • RFC 2348 TFTP Blocksize Option
    • RFC 7440 TFTP Windowsize Option
    Comment 1
    1. Frank Kühndel, Tue, 21 Jun 2022 07:46:13 GMT

    In c044f050/rtems:

    TFTPFS: Cleanup: Remove spaces at lines ends Update #4666.
    Comment 2
    1. Frank Kühndel, Tue, 21 Jun 2022 07:46:16 GMT

    In 679e7f10/rtems:

    TFTPFS: Implement block and window size options The original file cpukit/libfs/src/ftpfs/tftpDriver.c is split into two: tftpfs.c - This file contains the code from tftpDriver.c
    related to file system operations such as mount(), open(), read(), and so on.
    tftpDriver.c - In the original file remains only the code related
    to networking. This code implements the Trivial File Transfer Protocol (TFTP).
    Moreover, the code is extended to support RFC 2347 TFTP Option Extension RFC 2348 TFTP Blocksize Option RFC 7440 TFTP Windowsize Option Update #4666.
    Comment 3
    1. Frank Kühndel, Tue, 21 Jun 2022 07:46:18 GMT

    In 3e2b4ec/rtems:

    TFTPFS: Add tests Update #4666.
    Comment 4
    1. Sebastian Huber, Tue, 21 Jun 2022 14:06:17 GMT

    In e38d4f7/rtems:

    TFTPFS: Reduce test configuration Update #4666.
    Comment 5
    1. Sebastian Huber, Tue, 21 Jun 2022 14:06:19 GMT

    In 085f363/rtems:

    TFTPFS: Fix test configuration for FP targets The test uses snprintf(). Update #4666.
    Comment 6
    1. Chris Johns, Tue, 29 Nov 2022 22:50:21 GMT

    Has this task been completed?

    Comment 7
    1. Joel Sherrill, Fri, 10 Feb 2023 13:51:58 GMT

    Pinging again. Has this task been completed? If so, please close. If not, will it be done by 6.1?

    Comment 8
    1. Frank Kuehndel, Mon, 27 Feb 2023 16:21:32 GMT

    All three RFCs have been implemented and the tests are also present and working. One additional patch was needed to provide a missing diagram for the documentation:

    ​https://lists.rtems.org/pipermail/devel/2022-October/073561.html

    Moreover, Coverity issues were fixed later on, see #4718.

    This work on TFTP is completed and this ticket can be closed.

    Comment 9
    1. Frank Kuehndel, Mon, 27 Feb 2023 16:22:47 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed
    Comment 10
    1. Sebastian Huber, Thu, 18 Jan 2024 16:36:42 GMT

    In 3626fe8/rtems:

    fstests/tftpfs: Fix build dependency Update #4666.

    4667 - include/sys/_bitset.h defines struct bitset, pollutes namespace

    Link https://devel.rtems.org/ticket/4667
    Id 4667
    Reporter Alexandre Oliva
    Created 22 June 2022 04:10:04
    Modified 31 October 2023 11:48:40
    Owner Sebastian Huber
    Type defect
    Component tool/newlib
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    sys/_bitset.h gets indirectly (*) included by sys/types.h, and should thus define only names that C and C++ standards reserve for the implementation. However, the line:

    BITSET_DEFINE(bitset, 1);

    expands to a definition of struct bitset in the global namespace.

    Some of GCC's libstdc++ tests were failing on aarch64-rtems6.0 because of the naming ambiguity that arises. ​https://gcc.gnu.org/pipermail/gcc-patches/2022-June/596918.html

    It would be best if user programs didn't have to resort to such trickery.
    In C++, it's not so hard; in C, it can be trickier.

    I have not checked whether this struct bitset is actually used for any purpose on aarch64-rtems, or whether it's present on other ports. Maybe it could just be removed or renamed? Maybe upstream (FreeBSD?) would consider dropping it?

    (*) sys/types.h includes sys/_pthreadtypes.h includes sys/cpuset.h includes sys/_cpuset.h includes sys/_bitset.h

    Comment 1
    1. Sebastian Huber, Wed, 22 Jun 2022 06:53:40 GMT

    It seems the namespace pollution is already fixed in FreeBSD. We have to add the FreeBSD patches to Newlib.

    Comment 2
    1. Sebastian Huber, Wed, 22 Jun 2022 08:23:03 GMT
    2. owner: set to Sebastian Huber
    3. status: changed from new to accepted
    Comment 3
    1. Sebastian Huber, Wed, 22 Jun 2022 08:23:24 GMT
    2. component: changed from arch/aarch64 to tool/newlib
    Comment 4
    1. Sebastian Huber, Fri, 24 Jun 2022 05:32:25 GMT

    In 89e910f1/rtems:

    spcpuset01: Account for API changes Update #4667.
    Comment 5
    1. Sebastian Huber, Fri, 24 Jun 2022 05:32:27 GMT

    In a76988c/rtems:

    score: Remove unused _Processor_mask_Nand() Update #4667.
    Comment 6
    1. Sebastian Huber, Fri, 24 Jun 2022 05:32:29 GMT

    In ba56e239/rtems:

    score: Account for API changes Update #4667.
    Comment 7
    1. Sebastian Huber, Fri, 24 Jun 2022 09:47:44 GMT
    2. status: changed from accepted to closed
    3. resolution: set to fixed

    In 5295c711/rtems-source-builder:

    6/7: Update Newlib This Newlib update fixes a namespace pollution issue with . Close #4667.
    Comment 8
    1. Sebastian Huber, Thu, 30 Jun 2022 15:33:56 GMT

    In 9a88b07/rtems-libbsd:

    user-space: Request FreeBSD bitset API This is required for recent Newlib versions. Update #4667.
    Comment 9
    1. Sebastian Huber, Thu, 30 Jun 2022 15:34:20 GMT

    In f009252/rtems-libbsd:

    user-space: Request FreeBSD bitset API This is required for recent Newlib versions. Update #4667.
    Comment 10
    1. Sebastian Huber, Fri, 01 Jul 2022 12:34:37 GMT

    In c8f49c2/rtems-source-builder:

    6/7: Update Newlib This Newlib update fixes a FreeBSD kernel space issue with . Update #4667.
    Comment 11
    1. Sebastian Huber, Tue, 31 Oct 2023 11:48:40 GMT
    2. keywords: qualification added

    4668 - Use thread-local storage in libstdc++

    Link https://devel.rtems.org/ticket/4668
    Id 4668
    Reporter Sebastian Huber
    Created 22 June 2022 05:56:28
    Modified 11 October 2023 09:30:13
    Owner Sebastian Huber
    Type enhancement
    Component tool/gcc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by 4672

    Description

    Fix the libstdc++ configuration so that TLS is used on targets with TLS support. Using TLS is more robust against shortages of system resources which lead to unexpected behaviour.

    Attachments:

    1 Sebastian Huber, Wed, 22 Jun 2022 05:57:29 GMT
      attach: set to v2-0001-Enable-some-features-for-RTEMS-in-libstdc.patch
    2 Sebastian Huber, Mon, 08 Aug 2022 10:53:13 GMT
      attach: set to gcc-10-RTEMS-Enable-some-features-in-libstdc.patch
    3 Sebastian Huber, Mon, 08 Aug 2022 10:53:33 GMT
      attach: set to gcc-12-RTEMS-Enable-some-features-in-libstdc.patch
    Comment 1
    1. Sebastian Huber, Fri, 01 Jul 2022 09:52:49 GMT
    2. blockedby: set to 4672
    Comment 2
    1. Sebastian Huber, Mon, 04 Jul 2022 06:03:20 GMT

    In d07d6498/rtems:

    samples/cdtest: Test exceptions during system init Update #4668. Update #4672.
    Comment 3
    1. Sebastian Huber, Wed, 17 Aug 2022 04:55:33 GMT

    In 4fd9fbd/rtems-source-builder:

    6: Enable some libstdc++ features Enable TLS support for all RTEMS targets except bfin, lm32, m68k, mips, moxie, or1k, and v850. For all RTEMS targets, define HAVE_ALIGNED_ALLOC, HAVE_AT_QUICK_EXIT, HAVE_LINK, HAVE_QUICK_EXIT, HAVE_READLINK, HAVE_SETENV, HAVE_SLEEP, HAVE_STRERROR_L, HAVE_SYMLINK, HAVE_TRUNCATE, and HAVE_USLEEP. Update #4668.
    Comment 4
    1. Sebastian Huber, Thu, 08 Sep 2022 05:24:43 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    Integrated in GCC master branch and RSB for GCC 10 and 12 as patches.

    Comment 5
    1. Sebastian Huber, Wed, 11 Oct 2023 09:30:13 GMT
    2. keywords: qualification added

    4669 - clock_nanosleep() uses the wrong clock to determine the start time point

    Link https://devel.rtems.org/ticket/4669
    Id 4669
    Reporter Sebastian Huber
    Created 22 June 2022 08:51:14
    Modified 26 July 2022 08:45:46
    Owner Sebastian Huber
    Type defect
    Component score
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc oliva@…
    Blocking  
    Blocked by  

    Description

    See gcc-patches mailing list:

    On 22/06/2022 08:22, Sebastian Huber wrote:
    > On 22/06/2022 08:01, Alexandre Oliva via Gcc-patches wrote:
    >>
    >> On rtems under qemu, the frequently-interrupted nanosleep ends up
    >> sleeping shorter than expected, by a margin of less than 0,3%.
    >>
    >> I figured failing the library test over a system (emulator?) bug is
    >> undesirable, so I put in some tolerance for the drift.
    >>
    >> Regstrapped on x86_64-linux-gnu, also tested with a cross to
    >> aarch64-rtems6. Ok to install?
    >>
    >> PS: I see nothing wrong with the implementation of clock_nanosleep (used
    >> by nanosleep) on rtems6 that could cause it to wake up too early. I
    >> suspect some artifact of the emulation environment.
    >>
    >>
    >> for libstdc++-v3/ChangeLog
    >>
    >> * testsuite/30_threads/this_thread/60421.cc: Tolerate a
    >> slightly early wakeup.
    >> ---
    >> .../testsuite/30_threads/this_thread/60421.cc | 3 ++-
    >> 1 file changed, 2 insertions(+), 1 deletion(-)
    >>
    >> diff --git a/libstdc++-v3/testsuite/30_threads/this_thread/60421.cc b/libstdc++-v3/testsuite/30_threads/this_thread/60421.cc
    >> index 12dbeba1cc492..f3a5af453c4ad 100644
    >> --- a/libstdc++-v3/testsuite/30_threads/this_thread/60421.cc
    >> +++ b/libstdc++-v3/testsuite/30_threads/this_thread/60421.cc
    >> @@ -51,9 +51,10 @@ test02()
    >> std::thread t([&result, &sleeping] {
    >> auto start = std::chrono::system_clock::now();
    >> auto time = std::chrono::seconds(3);
    >> + auto tolerance = std::chrono::milliseconds(10);
    >> sleeping = true;
    >> std::this_thread::sleep_for(time);
    >> - result = std::chrono::system_clock::now() >= (start + time);
    >> + result = std::chrono::system_clock::now() + tolerance >= (start + time);
    >> sleeping = false;
    >> });
    >> while (!sleeping)
    >
    > This looks like a bug in RTEMS or the BSP for the test platform. I would first investigate this and then change the test which looks all right to me.
    This is a problem in RTEMS. RTEMS uses the FreeBSD timecounters to maintain CLOCK_REALTIME and provides two methods to get the time in a coarse and fine resolution. The std::chrono::system_clock::now() uses the fine resolution (higher overhead). The clock_nanosleep() uses the coarse resolution which may give a time before now().
    Comment 1
    1. Alexandre Oliva, Thu, 23 Jun 2022 07:04:18 GMT
    2. cc: oliva@… added
    Comment 2
    1. Sebastian Huber, Thu, 23 Jun 2022 07:14:50 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In cd50bea/rtems:

    score: Use right clock for threadq timeouts Use CLOCK_REALTIME and CLOCK_MONOTONIC for relative thread queue timeouts instead of CLOCK_REALTIME_COARSE and CLOCK_MONOTONIC_COARSE. This fixes an issue with clock_nanosleep() in combination with clock_gettime(). Close #4669.
    Comment 3
    1. Sebastian Huber, Thu, 23 Jun 2022 07:38:39 GMT

    In 8c8ee47/rtems-central:

    spec: Adjust clock_nanosleep() test case Update #4669.
    Comment 4
    1. Sebastian Huber, Tue, 26 Jul 2022 08:45:46 GMT
    2. keywords: qualification added

    4670 - Add option to build RTEMS with coverage instrumentation

    Link https://devel.rtems.org/ticket/4670
    Id 4670
    Reporter Sebastian Huber
    Created 28 June 2022 06:38:31
    Modified 8 September 2022 06:27:10
    Owner Sebastian Huber
    Type enhancement
    Component test
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking 4671
    Blocked by 4196

    Description

    Add build options to build RTEMS with coverage instrumentation. Dump the gcov information after each test.

    Comment 1
    1. Sebastian Huber, Tue, 28 Jun 2022 06:38:43 GMT
    2. blockedby: set to 4196
    Comment 2
    1. Sebastian Huber, Tue, 28 Jun 2022 06:40:50 GMT
    2. blocking: set to 4671
    Comment 3
    1. Sebastian Huber, Mon, 04 Jul 2022 06:24:59 GMT

    In 857fb17/rtems:

    build: Add more flags to BuildItemContext? Add cppflags, cflags, and cxxflags to BuildItemContext?. This allows to propagate the flags from parent items to child items. Update #4670.
    Comment 4
    1. Sebastian Huber, Mon, 04 Jul 2022 06:25:03 GMT

    In 4aeebae/rtems:

    build: Fix identifier pattern Allow upper case characters in identifiers. Update #4670.
    Comment 5
    1. Sebastian Huber, Mon, 04 Jul 2022 06:25:06 GMT

    In 0bb7b84/rtems:

    build: Improve value substitution The waf build system uses lists for tool flags. The build items may use variable substitution. Add the ability to use the variable substitution in lists. For example: MORE_FLAGS = ['-more', '-flags'] flags: -some-flag ${MORE_FLAGS} Before this change, the ${MORE_FLAGS} was substituted to "-more -flags". This would be passed by waf as a single command line argument to the tool. After this change, the ${MORE_FLAGS} list extends the flags list: flags = ['-some-flag', '-more', '-flags'] This list extension is performed if a list element consists of exactly one variable. Update #4670.
    Comment 6
    1. Sebastian Huber, Mon, 04 Jul 2022 06:25:08 GMT

    In 42da08d/rtems:

    build: Add cppflags, cflags, cxxflags to groups Propagate the group defined cppflags, cflags, and cxxflags from parent groups to child items through the build item context. Update #4670.
    Comment 7
    1. Sebastian Huber, Mon, 04 Jul 2022 06:25:10 GMT

    In a0aaa39/rtems:

    build: Fix optimization flags definition order OPTIMIZATION_FLAGS must be defined before /build/bsp/bspopts is processed. Update #4670.
    Comment 8
    1. Sebastian Huber, Mon, 04 Jul 2022 06:25:12 GMT

    In a13047c/rtems:

    build: Allow separate optimization flags Allow separate optimization flags for the BSP, cpukit, and tests. For example, the BSP and cpukit may be built without optimization if coverage instrumentation is enabled, however, the tests may still use optimization. Update #4670.
    Comment 9
    1. Sebastian Huber, Mon, 04 Jul 2022 06:25:15 GMT

    In 2bc233fe/rtems:

    gcov: Add fork(), etc. gcov wrappers The compiler wraps fork(), etc. system calls if coverage generation is enabled. These functions must be provided by the system. For RTEMS, they just return an error status. Update #4670.
    Comment 10
    1. Sebastian Huber, Mon, 04 Jul 2022 06:25:17 GMT

    In 4f87edb/rtems:

    gcov: Add functions to dump the gcov information Update #4670.
    Comment 11
    1. Sebastian Huber, Mon, 04 Jul 2022 06:25:19 GMT

    In 7452f67d/rtems:

    gcov: Add wrapper to dump the gcov info Update #4670.
    Comment 12
    1. Sebastian Huber, Mon, 04 Jul 2022 06:25:22 GMT

    In 5c13a96/rtems:

    build: Add RTEMS_GCOV_COVERAGE option Update #4670.
    Comment 13
    1. Sebastian Huber, Tue, 05 Jul 2022 07:19:33 GMT

    In f048c15/rtems-central:

    spec: Update due to API changes Update #4670.
    Comment 14
    1. Sebastian Huber, Wed, 20 Jul 2022 06:38:48 GMT

    In 329a1ccf/rtems:

    build: Add missing cxxflags Update #4670.
    Comment 15
    1. Sebastian Huber, Thu, 04 Aug 2022 17:29:39 GMT

    In 52b7a58/rtems:

    build: Install Update #4670.
    Comment 16
    1. Sebastian Huber, Thu, 08 Sep 2022 06:26:43 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In c33cca3/rtems-docs:

    eng: Document new build item attributes Close #4670.
    Comment 17
    1. Sebastian Huber, Thu, 08 Sep 2022 06:27:10 GMT

    In 5ee830f/rtems-central:

    spec: Add attributes to build items Update #4670.

    4672 - Thread-local storage should be usable once an idle thread exists

    Link https://devel.rtems.org/ticket/4672
    Id 4672
    Reporter Sebastian Huber
    Created 29 June 2022 09:13:44
    Modified 11 October 2023 09:29:39
    Owner Sebastian Huber
    Type defect
    Component score
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking 4560, 4668
    Blocked by  

    Description

    At some point during system initialization the idle threads are created. Afterwards the boot processor basically executes within the context of an idle thread with thread dispatching disabled. On some architectures, the thread-local storage state must be applied to processor registers. Add a new CPU port function to do this: _CPU_Use_thread_local_storage( Context_Control *executing ).

    Comment 1
    1. Sebastian Huber, Fri, 01 Jul 2022 09:52:49 GMT
    2. blocking: changed from 4560 to 4560, 4668
    Comment 2
    1. Sebastian Huber, Mon, 04 Jul 2022 06:03:20 GMT

    In d07d6498/rtems:

    samples/cdtest: Test exceptions during system init Update #4668. Update #4672.
    Comment 3
    1. Sebastian Huber, Tue, 05 Jul 2022 05:38:53 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 03e4d1e9/rtems:

    score: Add _CPU_Use_thread_local_storage() At some point during system initialization, the idle threads are created. Afterwards, the boot processor basically executes within the context of an idle thread with thread dispatching disabled. On some architectures, the thread-local storage area of the associated thread must be set in dedicated processor registers. Add the new CPU port function to do this: void _CPU_Use_thread_local_storage( const Context_Control *context ) Close #4672.
    Comment 4
    1. Sebastian Huber, Wed, 11 Oct 2023 09:29:39 GMT
    2. keywords: qualification added

    4673 - Runtime loader exported symbols address size not consistent

    Link https://devel.rtems.org/ticket/4673
    Id 4673
    Reporter Ryan Long
    Created 30 June 2022 20:42:09
    Modified 29 July 2022 13:25:02
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component lib/dl
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    In rtl-sym.c, where the exported symbols table is read in rtems_rtl_symbol_global_add, the addresses are expected to be of size sizeof(unsigned long). This works fine for most architectures because most of them evaluate to 4. For Aarch64 however, this evaluates to 8.

    Comment 1
    1. Ryan Long, Fri, 29 Jul 2022 13:17:44 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In ace7db9/rtems-tools:

    rtems-syms.cpp: Change check to pointer size Changed from a RISC-V specific value being in the conditional to a check for the size of the architecture's pointer. Closes #4673
    Comment 2
    1. Ryan Long, Fri, 29 Jul 2022 13:25:02 GMT

    In 1c6ac88/rtems:

    cpukit/libdl/rtl-sym.c: Fix increment of variable In rtems_rtl_symbol_global_add() the loop that gets to the end of the symbol table used "unsigned long" to increment the index for the table. For most architectures this resulted in 4, but with AArch64, it results in 8. This resulted in the symbols being read in wrong. Changing this to void* along with changing the RISC-V specific code for 8 byte pointers in rtems-tools to work independent of the architecture. Updates #4673 Closes #4682

    4675 - sleep should be a thread cancellation point

    Link https://devel.rtems.org/ticket/4675
    Id 4675
    Reporter Alexandre Oliva
    Created 7 July 2022 10:17:28
    Modified 22 June 2023 20:52:53
    Owner Kinsey Moore
    Type defect
    Component posix
    Status assigned
    Resolution  
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    GCC has worked around, in the libstdc++ testsuite, the fact that nanosleep (as well as sleep and clock_nanosleep) should be thread cancellation points, per POSIX, but RTEMS may want to make them so. ​https://gcc.gnu.org/pipermail/gcc-patches/2022-June/597003.html

    (I haven't checked that other functions that should be thread cancellation points are, I only noticed that this one wasn't, and decided to file this ticket because for other issues in which I explicitly identified RTEMS I got a request to do so)

    Comment 1
    1. Sebastian Huber, Thu, 07 Jul 2022 12:40:48 GMT
    2. component: changed from admin to posix

    Thanks for reporting the issue. I think we have currently no cancellation points in RTEMS at all. I think this is intentional, so I would mark this bug as WONTFIX.

    Comment 2
    1. Joel Sherrill, Sat, 18 Mar 2023 17:43:07 GMT

    Do you have a test to show something isn't right? sleep() and nanonsleep() ultimately call clock_nanosleep() and the requested blocking state is "STATES_WAITING_FOR_TIME | STATES_INTERRUPTIBLE_BY_SIGNAL"

    ​https://git.rtems.org/rtems/tree/cpukit/posix/src/clocknanosleep.c#n77

    RTEMS state bits consist of the type of object is being blocked on and attributes such as interruptible. It has been this way for a LONG time.

    As a random thought, if you don't build RTEMS with POSIX enabled, then POSIX signals are disabled and then this likely wouldn't work.

    Comment 3
    1. Joel Sherrill, Sat, 18 Mar 2023 17:43:24 GMT
    2. milestone: set to 6.1
    Comment 4
    1. Alexandre Oliva, Sat, 22 Apr 2023 05:32:10 GMT

    The unpatched libstdc++ testcase is a test that shows the problem. An explicit pthread_testcancel shouldn't be needed. Functions that are cancellation points should (as-if) call it implicitly.

    Comment 5
    1. Joel Sherrill, Thu, 22 Jun 2023 20:52:53 GMT
    2. owner: set to Kinsey Moore
    3. status: changed from new to assigned

    4677 - incorrect handling of "inactive_per_block" from "Objects_Information" structure (cloned)

    Link https://devel.rtems.org/ticket/4677
    Id 4677
    Reporter Adrian Varlan
    Created 13 July 2022 06:10:51
    Modified 31 October 2023 11:49:16
    Owner Sebastian Huber
    Type defect
    Component score
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification, CONFIGURE_UNLIMITED_OBJECTS inactive_per_block
    Cc  
    Blocking  
    Blocked by  

    Description

    Cloned from #4676:

    The inactive_per_block for block 1 is not handled correctly.
    For the first object in the second block, the inactive_per_block value is not decremented. As a consequence, the block might be deleted when the second to last object from block 1 is deleted.
    This is only valid when the application is configured with "CONFIGURE_UNLIMITED_OBJECTS".

    The reason is the following:

    in function "_Objects_Activate_unlimited" from "objectimpl.h"

    block = _Objects_Get_index( the_object->id ) - OBJECTS_INDEX_MINIMUM;

    if ( block > objects_per_block ) {

    block /= objects_per_block;

    information->inactive_per_block[ block ]--;
    information->inactive--;

    }

    in a block with 8 objects per block, when creating the 9th object, _Objects_Get_index( the_object->id ) returns 9. Therefore, "block" will be 8 (9 - 1).
    The next "if" will not be taken (8 > 8 ? No) and the inactive_per_block will not be decremented to 7 and remains at 8.
    This means that block 1 is a candidate for "_Objects_Shrink_information" function although object id 9 is still valid.

    Steps to reproduce:
    -assuming 8 objects per allocation block
    -using semaphores as objects

  • create 17 "RTEMS_SIMPLE_BINARY_SEMAPHORE" semaphore objects id's 1 -> 17.
  • delete semaphores 11, 12, 13, 14, 15, 16, 17 (order is important)
  • lock semaphore 9
  • delete semaphore 10 -> at this point, block 1 is freed although semaphore 9 is still active
  • unlock semaphore 9 -> this can lead to errors. In my case due to the free the semaphore object was altered and changed from a "SEMAPHORE_VARIANT_SIMPLE_BINARY" to "SEMAPHORE_VARIANT_MUTEX_INHERIT_PRIORITY" resulting in a return value of "RTEMS_NOT_OWNER_OF_RESOURCE".
  • Simple fix:
    the condition for the "if" should be ">=" instead of ">".

    Comment 1
    1. Sebastian Huber, Mon, 18 Jul 2022 07:27:45 GMT

    In e094261/rtems:

    score: Fix _Objects_Active_count() With unlimited objects the object maximum may be larger than the sum of active and inactive objects. Update #4677.
    Comment 2
    1. Sebastian Huber, Mon, 18 Jul 2022 07:27:47 GMT

    In 3bb79aab/rtems:

    spunlimited01: New test Update #4677.
    Comment 3
    1. Sebastian Huber, Mon, 18 Jul 2022 07:27:50 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 12a03bea/rtems:

    score: Fix unlimited objects support Commit 21275b58a5a69c3c838082ffc8a7a3641f32ea9a ("score: Static Objects_Information initialization") introduced an off-by-one error in the maintenance of inactive objects. Close #4677.
    Comment 4
    1. Sebastian Huber, Tue, 31 Oct 2023 11:49:16 GMT
    2. keywords: qualification added

    4678 - System initialization time increased compared to RTEMS 4.11

    Link https://devel.rtems.org/ticket/4678
    Id 4678
    Reporter Sebastian Huber
    Created 15 July 2022 06:24:41
    Modified 31 October 2023 11:49:33
    Owner Sebastian Huber
    Type defect
    Component score
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    Since RTEMS 5, the objects based on Objects_Control are statically allocated in the .bss sections. The zero-initialization is unnecessary since each object is fully initialized after allocation by an object-specific initialization routine. The memory for objects is statically allocated or allocated from the workspace if the unlimited objects configuration option is used. Workspace memory is uninitialized by default. Optimize the static allocation to place the object controls, local tables, and thread queue heads into a .noinit section.

    The longer system initialization time compared to RTEMS 4.11 may lead to hardware watchdog problems.

    Comment 1
    1. Sebastian Huber, Fri, 15 Jul 2022 06:26:19 GMT
    2. description: modified (diff)
    Comment 2
    1. Sebastian Huber, Fri, 15 Jul 2022 08:42:56 GMT

    In 5ed00353/rtems:

    bsps: Sort .noinit* sections Sort the .noinit* input sections by name first, then by alignment if two sections have the same name. This allows the placement of begin/end symbols to initialize some areas with a special value. Update #4678.
    Comment 3
    1. Sebastian Huber, Fri, 15 Jul 2022 08:42:58 GMT

    In 4b911a75/rtems:

    score: Place object controls into .noinit sections Place the statically allocated object control blocks, local tables, and thread queue heads into the dedicated .noinit intput sections. The output section is not zero initialized. Placing these elements into the .noinit section reduces the system initialization time by decreasing the .bss section size. It may improve the cache efficiency since the mostly read local tables are placed in a contiguous memory area. Update #4678.
    Comment 4
    1. Sebastian Huber, Fri, 15 Jul 2022 08:43:01 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 1bf878f7/rtems:

    score: Extend memory dirty/zero actions Dirty or zero also the part of the .noinit section used by RTEMS. Close #4678.
    Comment 5
    1. Sebastian Huber, Mon, 18 Jul 2022 13:45:02 GMT

    In 0e5f4c5/rtems:

    spsysinit01: Account for use of .noinit section The objects control blocks cannot be used to check the pre-initialization state since they are allocated in a .noinit section. Update #4678.
    Comment 6
    1. Sebastian Huber, Wed, 20 Jul 2022 06:38:51 GMT

    In 25ccc19/rtems:

    bsps/riscv: Sort .noinit* sections Sort the .noinit* input sections by name first, then by alignment if two sections have the same name. This allows the placement of begin/end symbols to initialize some areas with a special value. Update #4678.
    Comment 7
    1. Sebastian Huber, Wed, 27 Jul 2022 06:51:59 GMT

    In 2501c64b/rtems:

    score: Fix objects local table initialization The objects local table must be statically zero-initialized so that _Objects_Get() and _Objects_Get_no_protection() return NULL if no object is associated with the identifier. Update #4678.
    Comment 8
    1. Sebastian Huber, Thu, 28 Jul 2022 06:50:25 GMT

    In 6a65803/rtems:

    score: Allow linker garbage collection Place the object control blocks in dedicated sections to allow a linker garbage collection. Update #4678.
    Comment 9
    1. Sebastian Huber, Mon, 01 Aug 2022 07:07:39 GMT

    In 4d77f725/rtems:

    sp54: Fix test case Since commit 6a6580331df3e09516d50f37d4dd5fd57825c08a, the local table is zero-initialized. Use an initial object control block instead. Update #4678.
    Comment 10
    1. Sebastian Huber, Tue, 31 Oct 2023 11:49:33 GMT
    2. keywords: qualification added

    4679 - Use priority inheritance for thread join

    Link https://devel.rtems.org/ticket/4679
    Id 4679
    Reporter Sebastian Huber
    Created 19 July 2022 06:40:24
    Modified 2 May 2023 08:18:35
    Owner Sebastian Huber
    Type enhancement
    Component score
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    Threads may join the thread termination of another thread using the pthread_join() or rtems_task_delete() directives. Currently, the thread cancel operation uses a special case priority boosting mechanism:

    static void _Thread_Raise_real_priority(
    Thread_Control *the_thread,
    Priority_Control priority
    )
    {
    Thread_queue_Context queue_context;
    _Thread_queue_Context_initialize( &queue_context );
    _Thread_queue_Context_clear_priority_updates( &queue_context );
    _Thread_Wait_acquire( the_thread, &queue_context );
    if ( priority < the_thread->Real_priority.priority ) {
    _Thread_Priority_change(
    the_thread,
    &the_thread->Real_priority,
    priority,
    PRIORITY_GROUP_LAST,
    &queue_context
    );
    }
    _Thread_Wait_release( the_thread, &queue_context );
    _Thread_Priority_update( &queue_context );
    }

    The problem is that this approach is not transitive, it does not account for priority adjustments of the calling task while waiting for the join, clustered scheduling is not supported, and deadlocks are not detected. All these problems are fixed by using a priority inheritance thread queue for the join operation.

    Comment 1
    1. Sebastian Huber, Tue, 19 Jul 2022 06:44:07 GMT
    2. description: modified (diff)
    Comment 2
    1. Sebastian Huber, Thu, 28 Jul 2022 05:36:09 GMT

    In 81fd510/rtems-docs:

    c-user: Document task life states Update #4679.
    Comment 3
    1. Sebastian Huber, Thu, 28 Jul 2022 05:36:11 GMT

    In f4377b4/rtems-docs:

    c-user: Document new rtems_task_delete() behaviour Update #4679.
    Comment 4
    1. Sebastian Huber, Thu, 28 Jul 2022 05:45:19 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 31036f1d/rtems:

    score: Use priority inheritance for thread join Threads may join the thread termination of another thread using the pthread_join() or rtems_task_delete() directives. The thread cancel operation used a special case priority boosting mechanism implemented by _Thread_Raise_real_priority(). The problem was that this approach is not transitive, does not account for priority adjustments of the calling task while waiting for the join, does not support clustered scheduling, and does not detect deadlocks. All these problems are fixed by using a priority inheritance thread queue for the join operation. Close #4679.
    Comment 5
    1. Sebastian Huber, Tue, 02 May 2023 08:18:35 GMT
    2. keywords: qualification added

    4680 - POSIX tasks cancelled through rtems_task_delete() should have an exit value of PTHREAD_CANCELED

    Link https://devel.rtems.org/ticket/4680
    Id 4680
    Reporter Sebastian Huber
    Created 19 July 2022 08:23:19
    Modified 2 May 2023 08:18:20
    Owner Sebastian Huber
    Type enhancement
    Component posix
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    The rtems_task_delete() directive is basically just a combined pthread_cancel() and pthread_join(). In addition, it removes the PTHREAD_DETACHED state. The exit value returned by pthread_join() of threads cancelled by rtems_task_delete() should reflect this by getting a PTHREAD_CANCELED value and not NULL.

    Comment 1
    1. Sebastian Huber, Thu, 28 Jul 2022 05:45:21 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 8a864bc6/rtems:

    score: Use PTHREAD_CANCELED for _Thread_Cancel() The rtems_task_delete() directive is basically just a combined pthread_cancel() and pthread_join(). In addition, it removes the PTHREAD_DETACHED state. The exit value returned by pthread_join() of threads cancelled by rtems_task_delete() should reflect this by getting a PTHREAD_CANCELED value instead of NULL which could be a normal exit value. Close #4680.
    Comment 2
    1. Sebastian Huber, Tue, 02 May 2023 08:18:20 GMT
    2. keywords: qualification added

    4682 - Add AArch64 support to libdl

    Link https://devel.rtems.org/ticket/4682
    Id 4682
    Reporter Ryan Long
    Created 20 July 2022 21:12:13
    Modified 29 July 2022 13:25:02
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component lib/dl
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Add AArch64 support to libdl using NetBSD code as necessary.

    Comment 1
    1. Ryan Long, Fri, 29 Jul 2022 13:24:52 GMT

    In ad94dc3/rtems:

    sys/exec_elf.h: Bring in newer file Updated this file with the newer version in NetBSD. Updates #4682
    Comment 2
    1. Ryan Long, Fri, 29 Jul 2022 13:24:54 GMT

    In f6432156/rtems:

    libdl/rtl-elf.h: Fix aarch64 define The aarch64 define was incorrect. This was causing the libdl tests to not work correctly. Updates #4682
    Comment 3
    1. Ryan Long, Fri, 29 Jul 2022 13:24:57 GMT

    In 0bd6514a/rtems:

    cpukit/libdl: Add support for AArch64 rtl-mdreloc-aarch64.c and elf_machdep.h came from NetBSD. Updates #4682
    Comment 4
    1. Ryan Long, Fri, 29 Jul 2022 13:24:59 GMT

    In 2ea37e8/rtems:

    libtests/dl*: Bump up the size of CONFIGURE_INIT_TASK_STACK_SIZE Updates #4682
    Comment 5
    1. Ryan Long, Fri, 29 Jul 2022 13:25:02 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 1c6ac88/rtems:

    cpukit/libdl/rtl-sym.c: Fix increment of variable In rtems_rtl_symbol_global_add() the loop that gets to the end of the symbol table used "unsigned long" to increment the index for the table. For most architectures this resulted in 4, but with AArch64, it results in 8. This resulted in the symbols being read in wrong. Changing this to void* along with changing the RISC-V specific code for 8 byte pointers in rtems-tools to work independent of the architecture. Updates #4673 Closes #4682

    4684 - Support Versal DDRMC0 regions 0 and 1

    Link https://devel.rtems.org/ticket/4684
    Id 4684
    Reporter Chris Johns
    Created 22 July 2022 06:04:41
    Modified 27 July 2022 23:00:10
    Owner Chris Johns
    Type defect
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The Versal's DDRMC0 supports region 0 and 1. Region 0's base address defaults to 0x00000000000 and can be up to 2G in length. If the hardware has more than 2G of DDR memory it is placed in region 1 and it's default base address is 0x00800000000 placing it in the A64 address space.

    Add support so the user defined memory length BSP_XILINX_VERSAL_RAM_LENGTH spans region 0 and 1.

    Extend the heap with the region 1 memory.

    Comment 1
    1. Chris Johns, Wed, 27 Jul 2022 23:00:07 GMT

    In b868d0a/rtems:

    basp/aarch64: Make the unexpected sections origin address 64bit Update #4684
    Comment 2
    1. Chris Johns, Wed, 27 Jul 2022 23:00:10 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 51ffa21/rtems:

    aarch64/versal: Support DDRMC0 region 0 and 1 Support DDRMC0 region 0 up to 2G in size Support DDRMC0 region 1 with DDR memory greater than 2G up to the DDRMC0 max amount Extend the heap with region 1's memory Closes #4684

    4686 - Refactor shared code in Arm and AArch64

    Link https://devel.rtems.org/ticket/4686
    Id 4686
    Reporter Ryan Long
    Created 26 July 2022 16:08:14
    Modified 8 August 2022 16:53:46
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component lib/dl
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    rtl-mdreloc-arm.c and rtl-mdreloc-aarch64.c share code. The shared code should be pulled out and included into each file.

    Comment 1
    1. Ryan Long, Mon, 08 Aug 2022 16:53:46 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 5500232/rtems:

    libdl: Refactor shared code in ARM and AArch64 rtl-mdreloc-arm.c was used as the basis for rtl-mdreloc-aarch64.c. This lead to some code being shared by the two files. The code was consolidated into rtl-unwind-arm.c. Closes #4686

    4689 - mips/jmr3904 Massive Number of Test Failures

    Link https://devel.rtems.org/ticket/4689
    Id 4689
    Reporter Joel Sherrill
    Created 30 July 2022 16:26:45
    Modified 27 October 2022 22:00:45
    Owner Joel Sherrill <joel@…>
    Type defect
    Component arch/mips
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    jmr3904 last had a good test run in January 2022 (now July). Since then, there has not been one in which more than 1 test pass and I suspect that's because the one doesn't expect output.

    ​https://lists.rtems.org/pipermail/build/2022-January/030809.html

    This has been tracked down to a gdb simulator bug which has been reported as:

    ​https://sourceware.org/bugzilla/show_bug.cgi?id=29439

    Many details follow in the comments.

    Attachments:

    1 Joel Sherrill, Mon, 01 Aug 2022 19:35:18 GMT
      attach: set to hello.exe.xz
     
    Comment 1
    1. Joel Sherrill, Sat, 30 Jul 2022 18:21:29 GMT
    2. summary: changed from mps/jmr3904 Massive Number of Test Failures to mips/jmr3904 Massive Number of Test Failures
    Comment 2
    1. Joel Sherrill, Sat, 30 Jul 2022 21:13:04 GMT

    I checked with the gdb 8 used with RTEMS 5 and the hello.exe runs. The same executable fails to run with the gdb 11.2 used with RTEMS 6 or the gdb 13 used with RTEMS 7.

    I will try to narrow it down some more before reporting to the gdb mailing list. At least it doesn't look like something broken in RTEMS itself.

    Comment 3
    1. Sebastian Huber, Mon, 01 Aug 2022 07:57:50 GMT

    This looks like a GDB or other tool issue. Maybe a sign extension bug:

    objdump -h build/mips/jmr3904/testsuites/samples/ticker.exe
    build/mips/jmr3904/testsuites/samples/ticker.exe:     file format elf32-tradbigmips
    Sections:
    Idx Name          Size      VMA       LMA       File off  Algn
      0 .text         000115a0  88000000  88000000  00001000  2**4
                      CONTENTS, ALLOC, LOAD, READONLY, CODE
      1 .rtemsroset   00000070  880115a0  880115a0  000125a0  2**2
                      CONTENTS, ALLOC, LOAD, READONLY, DATA
      2 .init         00000048  88011610  88011610  00012610  2**0
                      CONTENTS, ALLOC, LOAD, READONLY, CODE
      3 .fini         00000030  88011658  88011658  00012658  2**0
                      CONTENTS, ALLOC, LOAD, READONLY, CODE
      4 .ctors        00000008  88011688  88011688  00012688  2**2
                      CONTENTS, ALLOC, LOAD, DATA
      5 .dtors        00000008  88011690  88011690  00012690  2**2
                      CONTENTS, ALLOC, LOAD, DATA
      6 .rdata        00002030  880116a0  880116a0  000126a0  2**4
                      CONTENTS, ALLOC, LOAD, READONLY, DATA
      7 .MIPS.abiflags 00000018  880136d0  880136d0  000146d0  2**3
                      CONTENTS, ALLOC, LOAD, READONLY, DATA, LINK_ONCE_SAME_SIZE
      8 .data         000005c0  880136e8  880136e8  000146e8  2**3
                      CONTENTS, ALLOC, LOAD, DATA
      9 .bss          00001410  88013cb0  88013cb0  00014ca8  2**4
                      ALLOC
     10 .noinit       00001310  880150c0  880150c0  00014ca8  2**3
                      ALLOC
     11 .rtemsstack   00004000  880163d0  880163d0  00014ca8  2**4
                      ALLOC
     12 .debug_aranges 00002958  00000000  00000000  00014ca8  2**3
                      CONTENTS, READONLY, DEBUGGING, OCTETS
     13 .debug_info   00109cb1  00000000  00000000  00017600  2**0
                      CONTENTS, READONLY, DEBUGGING, OCTETS
     14 .debug_abbrev 00023397  00000000  00000000  001212b1  2**0
                      CONTENTS, READONLY, DEBUGGING, OCTETS
     15 .debug_line   0003dc56  00000000  00000000  00144648  2**0
                      CONTENTS, READONLY, DEBUGGING, OCTETS
     16 .debug_frame  000048f4  00000000  00000000  001822a0  2**2
                      CONTENTS, READONLY, DEBUGGING, OCTETS
     17 .debug_str    0001160c  00000000  00000000  00186b94  2**0
                      CONTENTS, READONLY, DEBUGGING, OCTETS
     18 .gnu.attributes 00000010  00000000  00000000  001981a0  2**0
                      CONTENTS, READONLY
     19 .comment      00000063  00000000  00000000  001981b0  2**0
                      CONTENTS, READONLY
     20 .debug_line_str 000001be  00000000  00000000  00198213  2**0
                      CONTENTS, READONLY, DEBUGGING, OCTETS
     21 .debug_loclists 00022d89  00000000  00000000  001983d1  2**0
                      CONTENTS, READONLY, DEBUGGING, OCTETS
     22 .debug_rnglists 0000605d  00000000  00000000  001bb15a  2**0
                      CONTENTS, READONLY, DEBUGGING, OCTETS
    ~/src/rtems (master) > /opt/rtems/6/bin/mipstx39-rtems6-gdb build/mips/jmr3904/testsuites/samples/ticker.exe
    GNU gdb (GDB) 11.2
    Copyright (C) 2022 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later 
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.
    Type "show copying" and "show warranty" for details.
    This GDB was configured as "--host=x86_64-linux-gnu --target=mipstx39-rtems6".
    Type "show configuration" for configuration details.
    For bug reporting instructions, please see:
    .
    Find the GDB manual and other documentation resources online at:
        .
    For help, type "help".
    Type "apropos word" to search for commands related to "word"...
    Reading symbols from build/mips/jmr3904/testsuites/samples/ticker.exe...
    (gdb) tar sim
    Connected to the simulator.
    (gdb) load
    Loading section .text, size 0x115a0 lma ffffffff88000000
    Loading section .rtemsroset, size 0x70 lma ffffffff880115a0
    Loading section .init, size 0x48 lma ffffffff88011610
    Loading section .fini, size 0x30 lma ffffffff88011658
    Loading section .ctors, size 0x8 lma ffffffff88011688
    Loading section .dtors, size 0x8 lma ffffffff88011690
    Loading section .rdata, size 0x2030 lma ffffffff880116a0
    Loading section .MIPS.abiflags, size 0x18 lma ffffffff880136d0
    Loading section .data, size 0x5c0 lma ffffffff880136e8
    Start address ffffffff88000004
    Transfer rate: 648448 bits in <1 sec.
    (gdb) r
    Starting program: /tmp/sh/b-rtems/mips/jmr3904/testsuites/samples/ticker.exe
    mips-core: 4 byte read to unmapped address 0xffffffff88000004 at 0xffffffff88000004
    Program received signal SIGBUS, Bus error.
    _start () at /home/EB/sebastian_h/src/rtems/bsps/mips/jmr3904/start/start.S:57
    57              bal     $LF1 
    Comment 4
    1. Joel Sherrill, Mon, 01 Aug 2022 19:32:17 GMT

    I did a git bisect after narrowing down which release branches it worked on. That let me track it down to a commit based on git bisect. I will file a gdb ticket once I get my login working there again.

    $ git bisect log git bisect start # good: [ce35d7163e779b1321058b22f005c70ce1524b25] Set GDB version number to 10.2. git bisect good ce35d7163e779b1321058b22f005c70ce1524b25 # bad: [ef6ec3333e80e39ce207c6c5d5628bdd5402111d] Set GDB version number to 11.2. git bisect bad ef6ec3333e80e39ce207c6c5d5628bdd5402111d # good: [8087c3fa8b5d695e3e29e69d70d0b35ec902ac59] Fix GDB build in infrun.c when configured with unit tests disabled git bisect good 8087c3fa8b5d695e3e29e69d70d0b35ec902ac59 # skip: [d3dacd0fafba473fd42fdf3ca86fd3203db28ae8] Automatic date update in version.in git bisect skip d3dacd0fafba473fd42fdf3ca86fd3203db28ae8 # skip: [40d07d07d051308626f6079fa6d1598fafb445c7] Change exp_uses_objfile to return bool git bisect skip 40d07d07d051308626f6079fa6d1598fafb445c7 # good: [a4eba6087d4cec81f8b41477b4da56ff87b88e91] Fix a bug in the s390x linker when discarding all inpuit files. git bisect good a4eba6087d4cec81f8b41477b4da56ff87b88e91 # good: [546b77fe78bb366bbec3c708ac371e2f553bbdae] GDBserver remote packet support for memory tagging git bisect good 546b77fe78bb366bbec3c708ac371e2f553bbdae # good: [2e8adb6448c78fdb748c13c7859b68f3e7984c4d] Update config.sub and config.guess for MIPS R3 and R5 ISA support git bisect good 2e8adb6448c78fdb748c13c7859b68f3e7984c4d # bad: [50a6759f0f541ea965c7330bfbfe335cb8d66af8] Use gdb::function_view in addrmap_foreach git bisect bad 50a6759f0f541ea965c7330bfbfe335cb8d66af8 # good: [c572c4580e774f1ec0115948d31dcf8a5b04878e] Automatic date update in version.in git bisect good c572c4580e774f1ec0115948d31dcf8a5b04878e # good: [209f108f73888741bf31d03d35722b6e0b521ec8] sim: mn10300: tweak static inlines git bisect good 209f108f73888741bf31d03d35722b6e0b521ec8 # bad: [57a922a59801a9e7684f9661a65fa2ed5833d65d] sim: move UNUSED before TYPE in SIM_ENDIAN_INLINE's definition git bisect bad 57a922a59801a9e7684f9661a65fa2ed5833d65d # good: [162c6aef1f3a96923e75f0b4ef430822d273465c] gas: fold symbol table entries generated for .startof.() / .sizeof.() git bisect good 162c6aef1f3a96923e75f0b4ef430822d273465c # good: [07490bf81d2fc91676eb71b77e07f80f20fc1b54] sim: unify various library testing logic git bisect good 07490bf81d2fc91676eb71b77e07f80f20fc1b54 # bad: [ce3ec98acd2f344ae911de3f41dd2e3c6c68b141] sim: unify gettext/intl probing logic git bisect bad ce3ec98acd2f344ae911de3f41dd2e3c6c68b141 # good: [c30420d82a0b743285cf8333f90ca85274632714] elf: Update GNU_PROPERTY_UINT32_[AND|OR]_XXX tests git bisect good c30420d82a0b743285cf8333f90ca85274632714 # bad: [bc56166f66244a9e3abc62c7bc595a6f800f23b0] sim: unify toolchain dependency logic git bisect bad bc56166f66244a9e3abc62c7bc595a6f800f23b0

    Comment 5
    1. Joel Sherrill, Mon, 01 Aug 2022 19:38:10 GMT

    FYI you can't run jmr3904 executables with just __tar sim__, you need to use __tar sim --board=jmr3904__ in gdb or you can use the run command. Here's an example with an older gdb/run

     $  ~/rtems-work/tools/5/bin/mipstx39-rtems5-run --board=jmr3904 /tmp/hello.exe
        *** BEGIN OF TEST HELLO WORLD ***
        .... 
    Comment 6
    1. Joel Sherrill, Tue, 02 Aug 2022 20:56:23 GMT
    2. description: modified (diff)
    Comment 7
    1. Joel Sherrill, Mon, 24 Oct 2022 13:38:27 GMT

    Fix pushed to gdb repository and confirmed to work with ticker.exe.

    Comment 8
    1. Joel Sherrill, Thu, 27 Oct 2022 22:00:45 GMT
    2. owner: set to Joel Sherrill <joel@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In cb8821e/rtems-source-builder:

    Update mipstx39 gdb version to pick up fix to make simulator work Closes #4689.

    4690 - CLOCK_REALTIME thread queue not updated as part of clock_settime call

    Link https://devel.rtems.org/ticket/4690
    Id 4690
    Reporter Chris Johns
    Created 1 August 2022 04:22:51
    Modified 5 August 2022 06:12:49
    Owner Chris Johns <chrisj@…>
    Type defect
    Component score
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    Setting the CLOCK_REALTIME clock using clock_settime(CLOCK_REALTIME, , ) clock does not update thread relative period entries on the watchdog timer queue.

    A system's stability is effected if a user calls clock_settime on the CLOCK_REALTIME clock. The watchdog's REALTIME clock queue is references against the realtime clock and movement of the time means

    The effected parts are:

  • User C code that calls nanosleep, usleep, sleep or clock_nanosleep(CLOCK_REALTIME, , ).
  • User C++ code that uses std::this_thread::sleep_for() as GCC uses the nanosleep() call.
  • LibBSD uses CLOCK_REALTIME.
  • The ​nanosleep call is explained in more detail in the ​clock_nanosleep rational. The nanosleep clock must be CLOCK_REALTIME. The ​clock_settime standard says:

    Setting the value of the CLOCK_REALTIME clock via clock_settime() shall have no effect on threads that are blocked waiting for a relative time service based upon this clock, including the nanosleep() function; nor on the expiration of relative timers based upon this clock. Consequently, these time services shall expire when the requested relative interval elapses, independently of the new or old value of the clock.

    Attachments:

    1 Chris Johns, Mon, 01 Aug 2022 08:07:48 GMT
      attach: set to init.c
     
    Comment 1
    1. Chris Johns, Mon, 01 Aug 2022 04:23:04 GMT
    2. summary: changed from CLOCK_REALTIME thread queue no updated as part of clock_settime call to CLOCK_REALTIME thread queue not updated as part of clock_settime call
    Comment 2
    1. Chris Johns, Mon, 01 Aug 2022 06:56:47 GMT

    The attached test checks the times. It will show the failure however it does not pass the initial check because the expected ticks is not the actual ticks. The failure is:

    Clock settime while sleeping: step=0
    clock: nanosleep: sec=0 nsec=500000000 ticks=51 expected-ticks=50
    ../../../testsuites/psxtests/psxclock/init.c: 120 ctx->ticks == ticks 

    Should the ticks the sleeper sees be 51 or 50?

    Comment 3
    1. Chris Johns, Tue, 02 Aug 2022 00:53:45 GMT

    Replying to Chris Johns:

    The attached test checks the times. It will show the failure however it does not pass the initial check because the expected ticks is not the actual ticks. The failure is:

    Clock settime while sleeping: step=0
    clock: nanosleep: sec=0 nsec=500000000 ticks=51 expected-ticks=50
    ../../../testsuites/psxtests/psxclock/init.c: 120 ctx->ticks == ticks 

    Should the ticks the sleeper sees be 51 or 50?

    ​https://lists.rtems.org/pipermail/devel/2022-August/072735.html

    The extra 1 is needed.

    Comment 4
    1. Sebastian Huber, Thu, 04 Aug 2022 05:47:27 GMT

    In c64c638/rtems:

    posix: Fix relative CLOCK_REALTIME sleep A relative CLOCK_REALTIME time out shall not be affected by CLOCK_REALTIME changes through clock_settime(). Since our CLOCK_REALTIME is basically just CLOCK_MONOTONIC plus an offset, we can simply use the CLOCK_MONOTONIC watchdog for relative CLOCK_REALTIME time outs. Update #4690.
    Comment 5
    1. Sebastian Huber, Thu, 04 Aug 2022 05:50:25 GMT
    2. keywords: qualification added
    Comment 6
    1. Sebastian Huber, Thu, 04 Aug 2022 05:53:26 GMT

    In 11121d0/rtems-central:

    spec: Fix relative CLOCK_REALTIME sleep A relative CLOCK_REALTIME time out shall not be affected by CLOCK_REALTIME changes through clock_settime(). Since our CLOCK_REALTIME is basically just CLOCK_MONOTONIC plus an offset, we can simply use the CLOCK_MONOTONIC watchdog for relative CLOCK_REALTIME time outs. Update #4690.
    Comment 7
    1. Chris Johns, Thu, 04 Aug 2022 21:48:28 GMT
    2. owner: set to Chris Johns <chrisj@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 1a883b9/rtems:

    testsuite/psxclock: Check setting realtime clock does not effect sleeping tasks Closes #4690
    Comment 8
    1. Sebastian Huber, Fri, 05 Aug 2022 06:12:49 GMT

    In c3c4525/rtems:

    posix: Avoid dead code in clock_nanosleep() This issue was reported by Coverity Scan for RTEMS: CID 1507760: Control flow issues (DEADCODE) Closes #4690.

    4691 - Add support for FACE Technical Standard Restriction on POSIX Absolute Timers

    Link https://devel.rtems.org/ticket/4691
    Id 4691
    Reporter Joel Sherrill
    Created 1 August 2022 15:13:58
    Modified 31 October 2023 11:49:58
    Owner Joel Sherrill
    Type enhancement
    Component posix
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    Overview

    Most of the time, the FACE Technical Standard (​https://opengroup.org/face) defines a subset (e.g. profile) of a standard. It currently includes four profiles of the POSIX 1003.1-2008 standard with a few optional features like multiple processes and IPV6. However, in one case, it defines an error case for something POSIX defines as required behavior. This ticket is intended to track adding support for an application being able to configure whether it wants the POSIX behavior or that defined by the FACE Technical Standard.

    FACE Technical Standard Requirements

    POSIX allows for setting a timer on CLOCK_REALTIME[1] while the FACE Technical Standard defines this as an error. This behavior and deviation from POSIX has been in the FACE Technical Standard since the beginning and was present in Edition 1.0[2]. This is the language from Edition 1.0 of the FACE Technical Standard which was written in the tone of a white paper rather than as a set of requirements:

    3.9.4 Time Management

    Partial support for the POSIX CLOCK_REALTIME, which permits a calendar-based clock time to be set that becomes available to all partitions. Due to safety and security-related considerations in the POSIX definitions of this clock’s behavior, the configuration data will specify which partitions (preferably one partition) have permissions to set (using the clock_settime API) this clock. All partitions may have access to read this clock, but an error will be returned for any partition that attempts to set an alarm based on this clock that is based on absolute time (setting of an alarm based on a relative time is supported). Partitions authorized to set the calendar time will also be authorized to set the time zone value that is visible to all other partitions.

    Subsequent editions of the FACE Technical Standard have fine-tuned the language and made requirements clearer with simpler direct "shall" statements.

    Also, although the term OSS UoC was defined in Edition 1.0, the requirements now use this acronym for Operating System Segment Unit of Conformance to refer to the operating system and foundational services. Other types of segments are defined for applications, communications, and device management. In Edition 3.1[3], the language has the same intent as Edition 1.0 but the requirements are stated in a more direct and clearer manner.

    4.1.1.3 OSS POSIX Clock Requirements

    An OSS UoC provides support for POSIX clocks.

  • An OSS UoC shall support the POSIX Monotonic Clock option (CLOCK_MONOTONIC), including setting absolute and relative timers on this clock.
  • An OSS UoC shall support clock read-access based POSIX CLOCK_REALTIME clock (calendar-based clock time).
  • An OSS UoC shall support setting a relative timer-based POSIX CLOCK_REALTIME clock (calendar-based clock time).
  • An OSS UoC shall support clock time write access for POSIX CLOCK_REALTIME clock value under the constraint that configuration data specifies the partition is authorized to set the clock time (using the clock_settime() API).
  • Note: The time value set by one partition becomes visible to all other partitions. The timezone value set by one POSIX process using the tzset() or setenv() APIs is local to that POSIX process.

  • An OSS UoC shall return an error when a software component attempts to set an absolute timer on the POSIX CLOCK_REALTIME clock.
  • Note: The behavior is necessary (e.g., to prevent backwards and forwards shifts in sequential timers) due to the setting of POSIX_CLOCK_REALTIME clock impacting all partitions.

    The use of the word "partition" is intentional because the FACE Technical Standard includes ARINC 653 and POSIX standards. ARINC 653 defines a time and space partitioned real-time environment. POSIX or ARINC 653 applications can be hosted in a partition. In three of the four profiles, ARINC 653 is required while in the fourth it is optional. RTEMS can be hosted in an ARINC 653 partition using a paravirtualized configuration with a BSP that adapts it to the environment.

    The requirement being addressed by this ticket is (5) since RTEMS currently meets the other requirements. (5) contradicts the POSIX standard and modifying RTEMS to not support absolute POSIX timers is not an acceptable option.

    Proposed Solution

    The proposed solution is to add a confdefs.h configure option that enables this behavior when the OSS UoC (e.g. operating system) must provide FACE conformant behavior. When not defined, the POSIX behavior will be in effect.

    This will require additions to the confdefs.h family of headers, adding a test, and updating documentation.

    References

    [1] POSIX timer_create - ​https://pubs.opengroup.org/onlinepubs/9699919799/functions/timer_create.html

    [2] FACE Technical Standard, Edition 1.0. January 2012. ​https://publications.opengroup.org/c122.

    [3] FACE Technical Standard, Edition 3.1. July 2020. ​https://publications.opengroup.org/c207.

    Comment 1
    1. Chris Johns, Tue, 02 Aug 2022 01:24:38 GMT

    What structure and naming convention do you propose for confdefs.h?

    Could I configure the following to get all FACE related configures enabled:

    #define CONFIGURE_FACE 

    ?

    Comment 2
    1. Joel Sherrill, Wed, 10 Aug 2022 19:07:27 GMT

    In 4b04589b/rtems:

    Add support for CONFIGURE_POSIX_TIMERS_FACE_BEHAVIOR This adds the configure option CONFIGURE_POSIX_TIMERS_FACE_BEHAVIOR which allows the application to choose whether to have the POSIX timer_create() function follow the behavior defined by POSIX or the FACE Technical Standard. Updates #4691.
    Comment 3
    1. Duc Doan, Thu, 11 Aug 2022 05:46:29 GMT

    In c655c72d/rtems:

    build/cpukit: Add confdefs/face.h to install rule Updates #4691
    Comment 4
    1. Joel Sherrill, Thu, 11 Aug 2022 18:01:47 GMT

    In 996d18c/rtems:

    psxtimer_face01: Improve coverage and documentation Updates #4691.
    Comment 5
    1. Sebastian Huber, Wed, 31 Aug 2022 11:09:53 GMT

    In b3d2e3fe/rtems:

    config: Include on demand Updates #4691.
    Comment 6
    1. Joel Sherrill, Mon, 05 Sep 2022 06:47:03 GMT

    In b1fd623/rtems-central:

    Add POSIX Timer FACE Behavior Configuration Updates #4691.
    Comment 7
    1. Sebastian Huber, Mon, 05 Sep 2022 06:47:04 GMT

    In 1a5be0d/rtems-central:

    spec: Add glossary link Updates #4691.
    Comment 8
    1. Sebastian Huber, Mon, 05 Sep 2022 06:48:21 GMT

    In b06ec5b6/rtems:

    config: Document CONFIGURE_POSIX_TIMERS_FACE_BEHAVIOR Update #4691.
    Comment 9
    1. Joel Sherrill, Mon, 05 Sep 2022 06:53:06 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 4f9e9e5/rtems-docs:

    c-user/config/face.rst: New file -- add CONFIGURE_POSIX_TIMERS_FACE_BEHAVIOR Closes #4691.
    Comment 10
    1. Sebastian Huber, Tue, 31 Oct 2023 11:49:58 GMT
    2. keywords: qualification added

    4693 - Remove ILP32 aarch64/xilinx_versal_&#42 BSPs

    Link https://devel.rtems.org/ticket/4693
    Id 4693
    Reporter Chris Johns
    Created 2 August 2022 02:45:54
    Modified 22 August 2022 21:51:43
    Owner Chris Johns
    Type defect
    Component arch/aarch64
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The BSPs:

  • aarch64/xilinx_versal_ilp32_qemu
  • aarch64/xilinx_versal_ilp32_vck190
  • support ILP32 addressing and the Versal has default memory regions above the 4G address boundary. There is value in supporting ILP32 if there is not practical use for it.

    If a use case is identified they can be added back.

    Comment 1
    1. Chris Johns, Sun, 21 Aug 2022 23:40:09 GMT

    I will rename the aarch64/xilinx_versal_ilp64_qemu to aarch64/xilinx_versal_qemu and aarch64/xilinx_versal_ilp64_vck190 to aarch64/xilinx_versal_vck190

    Comment 2
    1. Chris Johns, Sun, 21 Aug 2022 23:43:02 GMT

    I will add aarch64/xilinx_versal_aiedge as a generic BSP. The AI Edge series product range ​Xilinx Versal has the same scalar processors on all variants.

    Comment 3
    1. Chris Johns, Mon, 22 Aug 2022 21:51:43 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In dee5ea81/rtems:

    bsps/xilinx/versal: Remove IPL32 BSPs, add aiedge and change defaults Versal has IO mapped to the upper 64bit address space and needs full 64bit addresses. Add xilinx_versal_aiedge for custom hardware Make the hardware settings the defaults and qemu as variants Closes #4693

    4694 - sptests/sp37 fails to compile if RTEMS_SMP is not defined

    Link https://devel.rtems.org/ticket/4694
    Id 4694
    Reporter Lucian-Raul Silistru
    Created 2 August 2022 14:47:10
    Modified 8 August 2022 09:59:01
    Owner joel@…
    Type defect
    Component test
    Status closed
    Resolution invalid
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Issue seems to be caused by lines 191-193 and 207 in testsuites/sptests/sp37/init.c

    • name is undefined
    • _ISR_lock_Initialize is "(void)name"

    In file included from ../../../../../../RTEMS/cpukit/include/rtems/rtems/intr.h:70,

    from ../../../../../../RTEMS/cpukit/include/rtems.h:69,
    from ../../../../../../RTEMS/bsps/include/bsp/default-initial-extension.h:40,
    from ../../../../../../RTEMS/bsps/myriad2/ma2x8x/include/bsp.h:27,
    from ../../../../../../RTEMS/testsuites/support/include/tmacros.h:41,
    from ../../../../../../RTEMS/testsuites/sptests/sp37/system.h:35,
    from ../../../../../../RTEMS/testsuites/sptests/sp37/init.c:41:

    ../../../../../../RTEMS/testsuites/sptests/sp37/init.c: In function 'test_isr_locks':
    ../../../../../../RTEMS/testsuites/sptests/sp37/init.c:207:42: error: 'name' undeclared (first use in this function)

    207 | _ISR_lock_Initialize( &container.lock, name );

    | ~

    ../../../../../../RTEMS/cpukit/include/rtems/score/isrlock.h:202:12: note: in definition of macro '_ISR_lock_Initialize'

    202 | (void) _name

    |

    ../../../../../../RTEMS/testsuites/sptests/sp37/init.c:207:42: note: each undeclared identifier is reported only once for each function it appears in

    207 | _ISR_lock_Initialize( &container.lock, name );

    | ~

    ../../../../../../RTEMS/cpukit/include/rtems/score/isrlock.h:202:12: note: in definition of macro '_ISR_lock_Initialize'

    202 | (void) _name

    |

    Comment 1
    1. Joel Sherrill, Tue, 02 Aug 2022 17:51:36 GMT

    This report appears to be against an architecture and BSP (myriad2/ma2x8x) that are not in the RTEMS.org source base. I have built two other non-SMP BSPs this week (mips and powerpc) and the weekly BSP build sweeps would also catch a general or BSP specific build issue.

    The ISR method definitions are part of the architecture port. My guess is that you are dropping the architecture and BSP code into a git clone from rtems.org and that the myriad2/ma2x8x code is not up to date.

    Comment 2
    1. Lucian-Raul Silistru, Wed, 03 Aug 2022 16:05:16 GMT

    Thanks for confirmation that it should work.

    Figured it was cherrypick from an older version that broke it for us. Once removed we don't see the issue anymore.

    Comment 3
    1. Lucian-Raul Silistru, Mon, 08 Aug 2022 09:59:01 GMT
    2. status: changed from new to closed
    3. resolution: set to invalid

    4695 - Automatic version numbers in the documentation

    Link https://devel.rtems.org/ticket/4695
    Id 4695
    Reporter Chris Johns
    Created 3 August 2022 03:42:50
    Modified 19 December 2023 20:41:52
    Owner Chris Johns
    Type defect
    Component doc
    Status assigned
    Resolution  
    Version 6
    Milestone 6.1
    Priority high
    Severity blocker
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    There is no easy means to add the current version number to the documentation using the Sphinx. The supported directives and variables are fine in the documentation however they are no applied in the code blocks.

    Provide a means to support a version number that can be used in the documentation and code blocks.

    We should also review the documentation code blocks and find ways to include content that does not vary from version to version.

    Comment 1
    1. Chris Johns, Thu, 04 Aug 2022 21:50:09 GMT

    In c935a2c/rtems-docs:

    building: Add support for an RTEMS version number Support using a version number for RTEMS documentation Updates #4695
    Comment 2
    1. Chris Johns, Thu, 04 Aug 2022 21:50:11 GMT

    In e551cc7/rtems-docs:

    versions: Update aarch64 Updates #4695
    Comment 3
    1. Chris Johns, Thu, 04 Aug 2022 21:50:12 GMT

    In f028448/rtems-docs:

    versions: Update arm Updates #4695
    Comment 4
    1. Chris Johns, Thu, 04 Aug 2022 21:50:14 GMT

    In 3859073/rtems-docs:

    versions: Update microblaze, powerpc, riscv and x86_64 Updates #4695
    Comment 5
    1. Chris Johns, Thu, 04 Aug 2022 21:50:15 GMT

    In 1d6dcf8/rtems-docs:

    versions: Update user manual Updates #4695
    Comment 6
    1. Chris Johns, Tue, 29 Nov 2022 22:50:56 GMT
    2. severity: changed from normal to blocker

    We need to complete this to make a 6.1 release.

    Comment 7
    1. Chris Johns, Tue, 29 Nov 2022 22:52:11 GMT
    2. priority: changed from normal to high
    Comment 8
    1. Chris Johns, Tue, 19 Dec 2023 20:41:52 GMT

    In e4a0de6/rtems-docs:

    user: Automatic version number fixes Updates #4695

    4697 - Documentation for libbsd Configure options

    Link https://devel.rtems.org/ticket/4697
    Id 4697
    Reporter Joel Sherrill
    Created 4 August 2022 20:43:26
    Modified 29 November 2022 23:59:46
    Owner  
    Type defect
    Component network/libbsd
    Status closed
    Resolution invalid
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords documentation, libbsd
    Cc  
    Blocking  
    Blocked by  

    Description

    libbsd appears to have some options to configure it similar to confdefs.h. We need user facing documentation on those options.

    Comment 1
    1. Chris Johns, Tue, 29 Nov 2022 23:59:46 GMT
    2. status: changed from new to closed
    3. resolution: set to invalid

    There are options in the README in LibBSD.


    4700 - Fix instances of "is" operator used with literals

    Link https://devel.rtems.org/ticket/4700
    Id 4700
    Reporter Ryan Long
    Created 11 August 2022 18:45:34
    Modified 12 August 2022 14:18:07
    Owner Ryan Long <ryan.long@…>
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Python 3.8 introduced new warnings when using the "is" operator when comparing literals.

    Comment 1
    1. Ryan Long, Thu, 11 Aug 2022 18:53:29 GMT
    2. summary: changed from Fix isntances of "is" operator used with literals to Fix instances of "is" operator used with literals
    Comment 2
    1. Ryan Long, Fri, 12 Aug 2022 14:18:07 GMT
    2. owner: set to Ryan Long <ryan.long@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In f3d9c87/rtems-tools:

    rtemstoolkit: Fix conditions using "is" with literals Fix warnings that come from python 3.8 about using the "is" operator with string literals. Closes #4700

    4701 - Relocatable write data is placed in read-only region on some BSPs

    Link https://devel.rtems.org/ticket/4701
    Id 4701
    Reporter Sebastian Huber
    Created 12 August 2022 08:01:22
    Modified 12 August 2022 08:02:07
    Owner Sebastian Huber
    Type defect
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The .data.rel.ro* linker input section pattern accidentally matches with writeable data those symbol name starts with "ro".

    Comment 1
    1. Sebastian Huber, Fri, 12 Aug 2022 08:02:07 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 21a36ed1/rtems:

    bsps: Fix .data.rel.ro placement The .data.rel.ro* linker input section pattern accidentally matches with writeable data those symbol name starts with "ro". Close #4701.

    4702 - Fix warnings for indexing past array bounds (primarily validation tests)

    Link https://devel.rtems.org/ticket/4702
    Id 4702
    Reporter Ryan Long
    Created 15 August 2022 19:39:21
    Modified 22 June 2023 22:20:58
    Owner Sebastian Huber
    Type defect
    Component rtems
    Status assigned
    Resolution  
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Building for AArch64 it looks like most of the warnings are for indexing past the end of an array. Most are from the validation tests, but a few aren't. Hopefully they all have the same fix.

    I attached the log file of the warnings.

    Attachments:

    1 Ryan Long, Mon, 15 Aug 2022 19:40:54 GMT
      attach: set to errors2.txt
    Comment 1
    1. Joel Sherrill, Mon, 15 Aug 2022 20:08:18 GMT

    Per ​https://bugzilla.redhat.com/show_bug.cgi?id=2047439, do [0] arrays need to change to [1]?

    Comment 2
    1. Ryan Long, Tue, 16 Aug 2022 16:46:06 GMT

    Replying to Ryan Long:

    Building for AArch64 it looks like most of the warnings are for indexing past the end of an array. Most are from the validation tests, but a few aren't. Hopefully they all have the same fix.

    I forgot to add the BSP when I submitted this. I've been building RTEMS for xilinx_zynqmp_lp64_qemu on AArch64.

    Comment 3
    1. Sebastian Huber, Wed, 31 Aug 2022 11:13:02 GMT

    In b1072f5/rtems:

    validation: Ignore array bounds warnings Update #4702.
    Comment 4
    1. Sebastian Huber, Mon, 05 Sep 2022 06:47:06 GMT

    In 654b3ee/rtems-central:

    spec: Ignore array bounds warnings Update #4702.
    Comment 5
    1. Sebastian Huber, Mon, 05 Sep 2022 06:48:23 GMT

    In 9e9ce43d/rtems:

    validation: Regenerate Update #4702.
    Comment 6
    1. Sebastian Huber, Mon, 12 Sep 2022 07:27:54 GMT

    In 4fdf79c/rtems:

    score: Prevent an out of bounds warning Update #4702.
    Comment 7
    1. Chris Johns, Tue, 29 Nov 2022 22:53:27 GMT

    Can this be closed?

    Comment 8
    1. Joel Sherrill, Thu, 22 Jun 2023 22:20:58 GMT

    This will be closed before 6. If you wish to continue this before 7, clone.


    4703 - NetSNMP 5.7.2.1 Patch

    Link https://devel.rtems.org/ticket/4703
    Id 4703
    Reporter Chris Johns
    Created 16 August 2022 06:22:40
    Modified 16 August 2022 06:24:06
    Owner Chris Johns
    Type task
    Component lib
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    This ticket is a place holder for the NetSNMP patch moving it out of the rtems-tools repo.

    Attachments:

    1 Chris Johns, Tue, 16 Aug 2022 06:23:53 GMT
      attach: set to rtems-net-snmp-5.7.2.1-20140623.patch
     
    Comment 1
    1. Chris Johns, Tue, 16 Aug 2022 06:24:06 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    4705 - Installed header clean up

    Link https://devel.rtems.org/ticket/4705
    Id 4705
    Reporter Chris Johns
    Created 19 August 2022 04:48:33
    Modified 29 November 2022 22:52:49
    Owner Chris Johns
    Type defect
    Component build
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    A number of headers are installed when they should not or are not installed.

    Comment 1
    1. Chris Johns, Sun, 21 Aug 2022 23:30:10 GMT

    In e49a1c9b/rtems:

    spec/bsps: Do not install tm27.h Updates #4705
    Comment 2
    1. Chris Johns, Sun, 21 Aug 2022 23:30:12 GMT

    In bb09755/rtems:

    spec/bsps/aarch64: Install ELF machine types for libdl Updates #4705
    Comment 3
    1. Chris Johns, Sun, 21 Aug 2022 23:30:15 GMT

    In eae542c0/rtems:

    spec/librtemscpu: Fix installed headers pci.h is only for sparc keyimpl.h is not referenced and so not needed Updates #4705
    Comment 4
    1. Chris Johns, Tue, 29 Nov 2022 22:52:49 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    4706 - Installed header break C++

    Link https://devel.rtems.org/ticket/4706
    Id 4706
    Reporter Chris Johns
    Created 19 August 2022 04:49:52
    Modified 31 October 2023 11:51:59
    Owner Chris Johns
    Type defect
    Component rtems
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    Some headers generate C++ errors and so cannot be included.

    Comment 1
    1. Chris Johns, Fri, 19 Aug 2022 04:54:06 GMT

    To test create a C++ source file with all the installed headers and compile. The exact source to build needs some defines and some include ti show the real issues:

    #define _DEFAULT_SOURCE 1
    `#define CONFIGURE_SCHEDULER_CBS 1`
    `#define BSP_GPIO_PIN_COUNT 128`
    `#define BSP_GPIO_PINS_PER_BANK 8`
    `#include `
    `#include `
    `#include  

    Only the beagle defines the GPIO pins.

    `
    Comment 2
    1. Chris Johns, Fri, 19 Aug 2022 06:31:52 GMT

    Adding RTEMS_SMP generates the following:

    In file included from ../cxx-headers.cc:28:
    /opt/work/rtems/6-bsps/aarch64-rtems6/xilinx_versal_lp64_vck190/lib/include/bsp/irq-generic.h: In function 'void bsp_interrupt_entry_store_release(rtems_interrupt_entry**, rtems_interrupt_entry*)':
    /opt/work/rtems/6-bsps/aarch64-rtems6/xilinx_versal_lp64_vck190/lib/include/bsp/irq-generic.h:405:71: error: invalid conversion from 'rtems_interrupt_entry*' to 'std::atomic::__integral_type' {aka 'long unsigned int'} [-fpermissive]
      405 |   _Atomic_Store_uintptr(
          |                                                                       ^
          |                                                                       |
          |                                                                       rtems_interrupt_entry*
    In file included from /opt/work/rtems/6-bsps/aarch64-rtems6/xilinx_versal_lp64_vck190/lib/include/rtems/score/cpustdatomic.h:63,
                     from /opt/work/rtems/6-bsps/aarch64-rtems6/xilinx_versal_lp64_vck190/lib/include/rtems/score/cpuatomic.h:40,
                     from /opt/work/rtems/6-bsps/aarch64-rtems6/xilinx_versal_lp64_vck190/lib/include/rtems/score/atomic.h:40,
                     from /opt/work/rtems/6-bsps/aarch64-rtems6/xilinx_versal_lp64_vck190/lib/include/rtems/score/smplockticket.h:44,
                     from /opt/work/rtems/6-bsps/aarch64-rtems6/xilinx_versal_lp64_vck190/lib/include/rtems/score/smplock.h:67,
                     from /opt/work/rtems/6-bsps/aarch64-rtems6/xilinx_versal_lp64_vck190/lib/include/rtems/score/isrlock.h:41,
                     from /opt/work/rtems/6-bsps/aarch64-rtems6/xilinx_versal_lp64_vck190/lib/include/rtems/rtems/intr.h:70,
                     from /opt/work/rtems/6-bsps/aarch64-rtems6/xilinx_versal_lp64_vck190/lib/include/rtems.h:69,
                     from /opt/work/rtems/6-bsps/aarch64-rtems6/xilinx_versal_lp64_vck190/lib/include/bsp/default-initial-extension.h:40,
                     from /opt/work/rtems/6-bsps/aarch64-rtems6/xilinx_versal_lp64_vck190/lib/include/bsp.h:49,
                     from ../cxx-headers.cc:12:
    /opt/work/rtems/6/lib/gcc/aarch64-rtems6/12.1.1/include/c++/atomic:904:40: note:   initializing argument 1 of 'constexpr std::atomic::atomic(__integral_type)'
      904 |       constexpr atomic(__integral_type __i) noexcept : __base_type(__i) { }
          |                        ~~~~~~~~~~~~~~~~^~~ 

    It looks like the cast is not working.

    I will ignore SMP builds but I think this should be __fixed__ for RTEMS 6.

    Comment 3
    1. Chris Johns, Sun, 21 Aug 2022 23:30:18 GMT

    In f5233fe/rtems:

    cpukit/include: Fixes for C++ Updates #4706
    Comment 4
    1. Chris Johns, Sun, 21 Aug 2022 23:30:20 GMT

    In a329579/rtems:

    cpukit/include: Fix including in C++ UPdates #4706
    Comment 5
    1. Sebastian Huber, Mon, 29 Aug 2022 07:05:55 GMT

    In 23b42f7/rtems:

    score: Fix format Update #4706.
    Comment 6
    1. Sebastian Huber, Mon, 29 Aug 2022 07:10:17 GMT

    In 9b16f24/rtems:

    score: Fix format Update #4706.
    Comment 7
    1. Chris Johns, Tue, 29 Nov 2022 22:53:46 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed
    Comment 8
    1. Sebastian Huber, Tue, 31 Oct 2023 11:51:59 GMT
    2. keywords: qualification added

    4710 - RSB does not expand dir type macros correctly

    Link https://devel.rtems.org/ticket/4710
    Id 4710
    Reporter Chris Johns
    Created 28 August 2022 22:34:02
    Modified 9 September 2022 01:32:29
    Owner Chris Johns
    Type defect
    Component tool/rsb
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The expansion of the dir type macros is not done correctly. Macro replacement only appends the file part to the last element of a path list. For example:

     %{mydir}/abc.cfg 

    with a path of:

     %define mydir x:y:z 

    results in:

     x:y:z/abc.cfg 

    The config load code handles this but it is wrong. The expansion of dir type macro variables should handle path separators (:) so you get:

     x/abc.cfg:y/abc.cfg:z.abc.cfg 

    This has not been a problem in the RSB because the _configdir has only had two elements and the last one only ever had subdirectories.

    Comment 1
    1. Chris Johns, Fri, 09 Sep 2022 01:32:29 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 18b4507/rtems-source-builder:

    sb/config: Correctly handle multiple config paths Add rtems/config to the config directories searched to better support deployment Correctly expand the configdir and path searchs Close #4710

    4712 - powerpc: Add AltiVec VRSAVE support

    Link https://devel.rtems.org/ticket/4712
    Id 4712
    Reporter Sebastian Huber
    Created 1 September 2022 08:09:42
    Modified 8 September 2022 13:45:03
    Owner Sebastian Huber
    Type enhancement
    Component arch/powerpc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The VRSAVE feature of the Altivec unit can be used to reduce the amount of Altivec registers which need to be saved/restored during interrupt processing and context switches.

    Comment 1
    1. Sebastian Huber, Thu, 08 Sep 2022 13:21:34 GMT

    In be84706/rtems-source-builder:

    6: Update GCC 10 and 12 Update #4712.
    Comment 2
    1. Sebastian Huber, Thu, 08 Sep 2022 13:45:01 GMT

    In d907c22/rtems:

    powerpc: Add support for VRSAVE The VRSAVE feature of the Altivec unit can be used to reduce the amount of Altivec registers which need to be saved/restored during interrupt processing and context switches. In order to use the VRSAVE optimization a corresponding multilib (-mvrsave) is required, see GCC configuration. The -mvrsave option must be added to the ABI_FLAGS of the BSP. Currently only the -mcpu=e6500 based QorIQ BSP support this optimization. Update #4712.
    Comment 3
    1. Sebastian Huber, Thu, 08 Sep 2022 13:45:03 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 52d566c/rtems:

    bsp/qoriq: Enable VRSAVE optimization Close #4712.

    4713 - Make pthread_atfork follow FACE Technical Standard Behavior for Single Process Environments

    Link https://devel.rtems.org/ticket/4713
    Id 4713
    Reporter Joel Sherrill
    Created 2 September 2022 16:38:18
    Modified 6 September 2022 22:22:09
    Owner Joel Sherrill
    Type defect
    Component posix
    Status closed
    Resolution fixed
    Version  
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The POSIX specification for pthread_atfork() does not address the behavior when in a single process environment. The RTEMS implementation was an arbitrary decision on our part with no basis from the wider POSIX community. The FACE Technical Standard includes profiles without multiple process support and has defined the behavior for this method as follows:

    When multiple POSIX processes are supported, pthread_atfork(), the functionality is per the POSIX standard. When multiple POSIX processes are not supported, pthread_atfork() should return 0. The provision to support only a single process is not addressed in the POSIX standard.

    The RTEMS implementation currently returns ENOSYS instead of 0.

    This ticket is to track the change to RTEMS and the documentation.

    Comment 1
    1. Joel Sherrill, Tue, 06 Sep 2022 21:59:42 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In dbba9430/rtems:

    pthread_atfork(): Change to behavior from FACE Technical Standard Closes #4713.
    Comment 2
    1. Joel Sherrill, Tue, 06 Sep 2022 22:22:09 GMT

    In 8741d2c/rtems-docs:

    posix-users/process_creation_and_execution.rst: Update pthread_atfork() Updates #4713.

    4714 - Use waf for LwIP walk sources

    Link https://devel.rtems.org/ticket/4714
    Id 4714
    Reporter Chris Johns
    Created 4 September 2022 23:00:35
    Modified 30 November 2022 00:06:58
    Owner  
    Type defect
    Component network/lwip
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The lwip.py support has a call to walk the source tree for source files. Waf supports glob'ing of sources so why not use that?

    This ticket is to remove the walk.

    Comment 1
    1. Chris Johns, Sun, 04 Sep 2022 23:01:12 GMT
    2. description: modified (diff)
    Comment 2
    1. Kinsey Moore, Wed, 30 Nov 2022 00:06:58 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed

    This was resolved with commit e02d02e2ce29379c2d4bfb15fbd5b101e9bd58e8 to rtems-lwip.


    4718 - Coverity issues in cpukit/libfs/src/ftpfs/tftpDriver.c

    Link https://devel.rtems.org/ticket/4718
    Id 4718
    Reporter Frank Kuehndel
    Created 16 September 2022 16:47:28
    Modified 2 December 2022 15:18:54
    Owner Sebastian Huber
    Type enhancement
    Component fs
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority lowest
    Severity trivial
    Keywords coverity
    Cc  
    Blocking  
    Blocked by  

    Description

    Coverity indicates the following issues in cpukit/libfs/src/ftpfs/tftpDriver.c:

    __CID 1506523__ (#1 of 1):

    Unchecked return value from library (CHECKED_RETURN)

  • check_return: Calling sendto(tp->socket, send_buf, plen, 0, (struct sockaddr *)&tp->farAddress, 16U) without checking return value. This library function may fail and return an error code.
  • 727        sendto (
    728 tp->socket,
    729 send_buf,
    730 plen,
    731 0,
    732 (struct sockaddr *) &tp->farAddress,
    733 sizeof (tp->farAddress)
    734 );

    __CID 1506522__ (#1 of 1):

    Unchecked return value from library (CHECKED_RETURN)

  • check_return: Calling sendto(tp->socket, (char *)&msg, len, 0, (struct sockaddr *)to, 16U) without checking return value. This library function may fail and return an error code.
  • 529    sendto (tp->socket, (char *)&msg, len, 0, (struct sockaddr *)to, sizeof *to); 

    __CID 1437618__ (#1 of 3):

    Unchecked return value from library (CHECKED_RETURN)

  • check_return: Calling setsockopt(tp->socket, 65535, 4102, &tv, 16U) without checking return value. This library function may fail and return an error code.
  • 594        setsockopt (tp->socket, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof tv); 

    __CID 1437618__ (#2 of 3):

    Unchecked return value from library (CHECKED_RETURN)

  • check_return: Calling setsockopt(tp->socket, 65535, 4102, &tv, 16U) without checking return value. This library function may fail and return an error code.
  • 555        setsockopt (tp->socket, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof tv); 

    __CID 1437618__ (#3 of 3):

    Unchecked return value from library (CHECKED_RETURN)

  • check_return: Calling setsockopt(tp->socket, 65535, 4102, &tv, 16U) without checking return value. This library function may fail and return an error code.
  • 559        setsockopt (tp->socket, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof tv); 
    Comment 1
    1. Frank Kühndel, Fri, 02 Dec 2022 15:18:54 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 997ba1d9/rtems:

    tftpDriver.c: Fix Coverity issues CID 1506523: Unchecked return value from library (CHECKED_RETURN) CID 1506522: Unchecked return value from library (CHECKED_RETURN) CID 1437618: Unchecked return value from library (CHECKED_RETURN) Close #4718

    4724 - Git commit message format instructions

    Link https://devel.rtems.org/ticket/4724
    Id 4724
    Reporter Chris Johns
    Created 26 September 2022 01:48:26
    Modified 14 December 2022 23:26:53
    Owner Joel Sherrill
    Type task
    Component doc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The Eng docs ​Creating A Patch references the Wiki. The content should be in the manual.

    Note lots of git related bits are in the Eng manual and still on the Wiki so which is correct?

    Comment 1
    1. Chris Johns, Tue, 29 Nov 2022 22:58:51 GMT

    Add the how to make a commit to the Making Changes section of the Eng manual.

    Comment 2
    1. Joel Sherrill, Tue, 13 Dec 2022 22:43:41 GMT
    2. summary: changed from Git commit message format instrunctions to Git commit message format instructions
    Comment 3
    1. Joel Sherrill, Wed, 14 Dec 2022 23:26:53 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In a3d7dd1/rtems-docs:

    (The changeset message doesn't reference this ticket)


    4726 - RSB decode exception stops build

    Link https://devel.rtems.org/ticket/4726
    Id 4726
    Reporter Chris Johns
    Created 26 September 2022 05:38:51
    Modified 30 September 2022 21:07:04
    Owner Chris Johns
    Type defect
    Component admin
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Building in a Rocky VM on FB 12 with 5 I got:

    Traceback (most recent call last):
    File "/usr/lib64/python3.9/threading.py", line 973, in _bootstrap_inner
    self.run()
    File "/usr/lib64/python3.9/threading.py", line 910, in run
    self._target(*self._args, **self._kwargs)
    File "/opt/work/chris/rtems/rsb/rtems-source-builder.git/source-builder/sb/execute.py", line 204, in _readthread
    data = data.decode(sys.stdout.encoding)
    UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe2 in position 4095: unexpected end of data

    If the data is corrupted or broken things stop. Fix to attempt to keep going.

    This issue also effect rtems-tools.

    Comment 1
    1. Frank Kuehndel, Thu, 29 Sep 2022 09:18:56 GMT

    I have seen similar errors in special build environments. These two are from March 2022, RSB for RTEMS 6 (note the slight difference in the error message in the last line):

     GIT BUILD HEAD: 4cdec141b1320a1e5a04b898e13e04c43ec233c3 ubuntu-nios2
      DevTools: Build #124 ubuntu-nios2 (Mar 9, 2022, 12:38:59
      building: nios2-rtems6-gcc-0f001dd-newlib-85f2dca-x86_64-linux-gnu-1
      21:08:10  Exception in thread _stderr[]:
      21:08:10  Traceback (most recent call last):
      21:08:10    File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner
      21:08:10      self.run()
      21:08:10    File "/usr/lib/python3.8/threading.py", line 870, in run
      21:08:10      self._target(*self._args, **self._kwargs)
      21:08:10    File "/home/minna/src/rtems-source-builder/source-builder/sb/execute.py", line 204, in _readthread
      21:08:10      data = data.decode(sys.stdout.encoding)
      21:08:10  UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe2 in position 4095: unexpected end of data 
     GIT_HEAD="6fe98f91d94bbf965bc0e78015585ff8823d17bd
      BUILD_ACTUAL_RSB_OPTIONS="--with_ada --with_cxx --with_objc --jobs=12"
      building: v850-rtems6-gcc-0f001dd-newlib-d88cbd0-x86_64-linux-gnu-1
      18:55:36  Exception in thread _stderr[]:
      18:55:36  Traceback (most recent call last):
      18:55:36    File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner
      18:55:36      self.run()
      18:55:36    File "/usr/lib/python3.8/threading.py", line 870, in run
      18:55:36      self._target(*self._args, **self._kwargs)
      18:55:36    File "/home/minna/src/rtems-source-builder/source-builder/sb/execute.py", line 204, in _readthread
      18:55:36      data = data.decode(sys.stdout.encoding)
      18:55:36  UnicodeDecodeError: 'utf-8' codec can't decode bytes in position 4094-4095: unexpected end of data 

    Setting the __locale__ to any "only-one-byte-unicode" linke LANG=en_US.iso885915 when invoking the source-builder avoids the error.

    There is most likely no error in the input data but the loop decoding it has probably a bug. Unicode code points encoded in UTF-8 can be up to 4 bytes long. The input data is read by source-builder/sb/execute.py in blocks of 4096 bytes. I guess it cuts through a multi-byte code point with the first byte(s) at the end of the current block and the rest of the bytes in the beginning of the next block. Note that the error always points to the end of the block position 4095 or position 4094-4095. Moreover, byte 0xe2 indicates that this is not the last byte of the code point (0xe2 is the first byte of a 3 byte code point?).

    I know in Linux there exist some GNU Unicode decoding function which keeps a state between consecutive calls. This function is intended for use in cases where not the complete text can be decoded at once. I guess there is such a function for Python too. An alternative may be to read and decode the input in one large piece.

    Comment 2
    1. Chris Johns, Thu, 29 Sep 2022 09:26:56 GMT

    Thanks for input and feedback. I agree with what you are saying.

    The input can be in hundreds of mega so that is not practical to hold it until the end. This code is a performance hot spot so what happens needs to be kept as simple as possible.

    Would you be able to make a buffer of data I could test solution with?

    Comment 3
    1. Chris Johns, Thu, 29 Sep 2022 09:34:21 GMT

    It looks like using Python codecs with streaming is the way to handle this.

    Again thank you for the insights in how the data is handled.

    Comment 4
    1. Frank Kuehndel, Thu, 29 Sep 2022 10:00:33 GMT

    I case this helps, this script

    1) writes 4093 spaces (note the field with is 4094) 2) a single "A" character 3) A 4 byte unicode 4) A new line

    env LANG=en_US.UTF-8 printf '%4094c\U0001F0A1\n' A >file.txt 

    You can visualize it:

    $ wc file.txt
       1    1 4099 file.txt
    $ hexdump -C file.txt
    00000000  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
    *
    00000ff0  20 20 20 20 20 20 20 20  20 20 20 20 20 41 f0 9f  |             A..|
    00001000  82 a1 0a                                          |...|
    00001003 
    Comment 5
    1. Chris Johns, Thu, 29 Sep 2022 10:22:52 GMT

    Thanks. I have a patch I am testing. It uses the codecs.getincrementaldecoder() factory function to create a decoder that hold state across decodes.

    Comment 6
    1. Chris Johns, Thu, 29 Sep 2022 10:23:27 GMT
    2. description: modified (diff)
    Comment 7
    1. Chris Johns, Thu, 29 Sep 2022 10:46:08 GMT

    I am testing with this code:

    import codecs
    import sys
    bad = True
    if bad:
        data = ''
        with open('file.txt', 'rb') as f:
            while True:
                block = f.read(4096)
                data += block.decode(sys.stdout.encoding)
                if len(block) < 4096:
                    break
        print(len(data), len(block))
    else:
        decoder = codecs.getincrementaldecoder(sys.stdout.encoding)()
        data = ''
        with open('file.txt', 'rb') as f:
            while True:
                block = f.read(4096)
                data += decoder.decode(block)
                if len(block) < 4096:
                    break
        print(len(data), len(block)) 

    and I cannot generate a failure with bad = True.

    Comment 8
    1. Frank Kuehndel, Thu, 29 Sep 2022 11:05:33 GMT

    When I paste your code in f.py with bad = True I get the error:

    $ python f.py
    Traceback (most recent call last):
      File "f.py", line 9, in 
        data += block.decode(sys.stdout.encoding)
      File "/usr/lib64/python2.7/encodings/utf_8.py", line 16, in decode
        return codecs.utf_8_decode(input, errors, True)
    UnicodeDecodeError: 'utf8' codec can't decode bytes in position 4094-4095: unexpected end of data 

    with bad = False it works:

    $ python f.py
    (4096, 3) 

    I tested on an OpenSUSE 15.4, file.txt produced by the line from comment 4. locale prints

    $ locale
    LANG=en_US.UTF-8
    LC_CTYPE="en_US.UTF-8"
    LC_NUMERIC="en_US.UTF-8"
    LC_TIME="en_US.UTF-8"
    LC_COLLATE=POSIX
    LC_MONETARY="en_US.UTF-8"
    LC_MESSAGES="en_US.UTF-8"
    LC_PAPER="en_US.UTF-8"
    LC_NAME="en_US.UTF-8"
    LC_ADDRESS="en_US.UTF-8"
    LC_TELEPHONE="en_US.UTF-8"
    LC_MEASUREMENT="en_US.UTF-8"
    LC_IDENTIFICATION="en_US.UTF-8"
    LC_ALL= 
    Comment 9
    1. Chris Johns, Thu, 29 Sep 2022 11:12:41 GMT

    Thanks for testing. I think the patch I posted to the devel list should fix this. If you could be so kind and review the patch I would appreciate it.

    Comment 10
    1. Chris Johns, Thu, 29 Sep 2022 20:56:03 GMT

    In d7fb57f/rtems-source-builder:

    sb/execute: Use a decoder that maintains state aross blocks Update #4726
    Comment 11
    1. Chris Johns, Fri, 30 Sep 2022 02:27:15 GMT

    The change has broken a dry-run. There is no stdout and so no encoder. The incremental decoder needs an encoding.

    Comment 12
    1. Chris Johns, Fri, 30 Sep 2022 21:07:04 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In e04c841/rtems-source-builder:

    sb/execute: Fix incremental decoder with --dry-run Closes #4726

    4729 - Add 64bit address support to RTEMS FDT

    Link https://devel.rtems.org/ticket/4729
    Id 4729
    Reporter Chris Johns
    Created 29 September 2022 05:35:06
    Modified 27 November 2022 22:53:29
    Owner Chris Johns
    Type defect
    Component lib
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    RTEMS's FDT wrapper does not handle the reg property correctly. Update to handle 64bit register addresses.

    Comment 1
    1. Chris Johns, Thu, 06 Oct 2022 04:33:38 GMT

    The calls rtems_fdt_prop_map and rtems_fdt_get_value change to return a table uintptr_t values.

    Comment 2
    1. Chris Johns, Mon, 10 Oct 2022 00:30:12 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 40eb58f/rtems:

    libmisc/rtems-fdt: Update to support 64bit addresses Add support to get the parent address and size cells Provide support to get a reg prop address map Change getting a set of properties to uintptr_t Improve the debug mode of the ls command to print all props Closes #4729
    Comment 3
    1. Chris Johns, Tue, 11 Oct 2022 01:40:36 GMT

    In fe104e39/rtems:

    libmisc/rtems-fdt: Fix missing error string Coverity CID 1515930 issue Updates #4729
    Comment 4
    1. Chris Johns, Fri, 14 Oct 2022 02:33:37 GMT

    In 580a3a6/rtems:

    libmisc/rtems-fdt: Fix return error values Updates #4729
    Comment 5
    1. Chris Johns, Sun, 27 Nov 2022 22:53:29 GMT

    In 408dbeb/rtems:

    libmisc/rtems-fdt: Support prop map items up to the size of uintptr_t Updates #4729

    4730 - rtems-source-builder doesn't generate tar archives for all packages any more

    Link https://devel.rtems.org/ticket/4730
    Id 4730
    Reporter Christian Mauderer
    Created 29 September 2022 07:49:53
    Modified 30 September 2022 21:07:06
    Owner Chris Johns
    Type defect
    Component tool/rsb
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Like discussed in the following mailing list thread, the rtems-source-builder doesn't generate tar archives for all packages anymore:

    ​https://lists.rtems.org/pipermail/devel/2022-September/073369.html

    All RTEMS tools build sets 6/rtems-* work fine except for 6/rtems-microblaze. devel/qemu and devel/dtc do not generate a tar archive. If the patch

    ​https://git.rtems.org/rtems-source-builder/commit/?id=6205068c5a429e9ee1b471f4c8a3a119bb6757b2

    is reverted, the tar files are generated just like before.

    Comment 1
    1. Chris Johns, Thu, 29 Sep 2022 11:40:47 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 336f15c/rtems-source-builder:

    sb/set-builder: Fix staging and tar file generation with a single config build Closes #4730
    Comment 2
    1. Chris Johns, Fri, 30 Sep 2022 02:25:24 GMT
    2. version: set to 6
    3. milestone: set to 6.1

    This has broken staging for multiple packages in a top level buildset.

    Comment 3
    1. Chris Johns, Fri, 30 Sep 2022 20:23:01 GMT
    2. status: changed from closed to reopened
    3. resolution: fixed deleted

    The RSB is now not installing packages or internally staging them.

    Comment 4
    1. Chris Johns, Fri, 30 Sep 2022 21:07:06 GMT
    2. status: changed from reopened to closed
    3. resolution: set to fixed

    In 953b839/rtems-source-builder:

    sb/set-bulder: Fix installing builds when a single buildset Always stage a build Install if installable and outter most buildset instance Closes #4730

    4732 - Set top in RSB version.py

    Link https://devel.rtems.org/ticket/4732
    Id 4732
    Reporter Chris Johns
    Created 29 September 2022 08:15:17
    Modified 29 September 2022 23:06:09
    Owner Chris Johns
    Type defect
    Component tool/rsb
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Setting the top lets the code be used in deployment to get the version of the RSB being used. An RSB version lets a user track the exact tools being built and version numbers reported by the tools can match the packaged build, eg an rpm name and version info.

    Comment 1
    1. Chris Johns, Thu, 29 Sep 2022 23:06:09 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    ​https://git.rtems.org/rtems-source-builder/commit/?id=cfed1659a297cb0f95a03e053345962097aa02bf


    4736 - RISC-V - ISR_stack allocation and usage by harts > CONFIGURE_MAXIMUM_PROCESSORS

    Link https://devel.rtems.org/ticket/4736
    Id 4736
    Reporter Lucian-Raul Silistru
    Created 5 October 2022 15:38:19
    Modified 22 June 2023 21:07:55
    Owner Hesham Almatary
    Type defect
    Component arch/riscv
    Status assigned
    Resolution  
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    When running SMP with CONFIGURE_MAXIMUM_PROCESSORS < total number of harts, the unused harts that start will allocate interrupt stacks from the sections following .rtemsstack. 16 bytes are used (written) while parking the core in _CPU_Thread_Idle_body.

    Unallocated _Per_CPU_Information is also used but only for pointer math - this seems to work out fine.

    It does seem like practically, with the default linkcmds, unless the cores are held/delayed by a debugger, they would never end up writing in memory before that memory is used -.rtemsstack is followed by .work.

    Is this intended/known behaviour?

    Comment 1
    1. Sebastian Huber, Fri, 07 Oct 2022 05:06:16 GMT

    This is a bug. The arm start.S does not have this issue for example.

    Comment 2
    1. Sebastian Huber, Fri, 07 Oct 2022 05:07:44 GMT
    2. milestone: set to 6.1
    Comment 3
    1. Chris Johns, Wed, 30 Nov 2022 00:03:38 GMT

    Status update?

    Comment 4
    1. Joel Sherrill, Thu, 22 Jun 2023 21:00:39 GMT
    2. owner: set to Hesham Almatary
    3. status: changed from new to assigned

    Hesham.. can you please take a shot at this?

    Comment 5
    1. Joel Sherrill, Thu, 22 Jun 2023 21:07:55 GMT
    2. summary: changed from ISR_stack allocation and usage by harts > CONFIGURE_MAXIMUM_PROCESSORS to RISC-V - ISR_stack allocation and usage by harts > CONFIGURE_MAXIMUM_PROCESSORS

    4741 - Fix GCC PR 107248

    Link https://devel.rtems.org/ticket/4741
    Id 4741
    Reporter Sebastian Huber
    Created 14 October 2022 13:04:19
    Modified 15 October 2022 08:19:58
    Owner Sebastian Huber
    Type defect
    Component arch/sparc
    Status closed
    Resolution fixed
    Version  
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

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

    Comment 1
    1. Sebastian Huber, Sat, 15 Oct 2022 08:19:57 GMT

    In 36a3d88/rtems-source-builder:

    6: Update GCC 10 and 12 Update #4741.
    Comment 2
    1. Sebastian Huber, Sat, 15 Oct 2022 08:19:58 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In e24641b/rtems-source-builder:

    7: Update Binutils, GDB, and GCC Close #4741.

    4744 - libdebugger arm backend does not single step

    Link https://devel.rtems.org/ticket/4744
    Id 4744
    Reporter Chris Johns
    Created 25 October 2022 03:11:26
    Modified 30 October 2022 20:52:30
    Owner Chris Johns
    Type defect
    Component lib/debugger
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Single stepping with the ARM backend does not cleanly step instructions.

    Comment 1
    1. Chris Johns, Sun, 30 Oct 2022 20:52:30 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 18b1a591/rtems:

    cpukit/libdebugger: Fix stepping on ARM architectures Closes #4744

    4746 - Armv7-M SysTick clock driver uses off by one reload value

    Link https://devel.rtems.org/ticket/4746
    Id 4746
    Reporter Sebastian Huber
    Created 26 October 2022 09:31:03
    Modified 26 October 2022 09:36:01
    Owner Sebastian Huber
    Type defect
    Component arch/arm
    Status closed
    Resolution fixed
    Version 4.11
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Comment 1
    1. Dariusz Sabala, Wed, 26 Oct 2022 09:36:01 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 1eae6f2/rtems:

    bsps/arm: fix Cortex-M7 systick reload value see ARM DUI 0646C Arm Cortex-M7 Devices Generic User Guide "The RELOAD value is calculated according to its use. For example, to generate a multi-shot timer with a period of N processor clock cycles, use a RELOAD value of N-1. If the SysTick? interrupt is required every 100 clock pulses, set RELOAD to 99." see routines used in CMSIS project for reference Close #4746.

    4750 - Linker discards RTEMS_SYSINIT_ITEM object

    Link https://devel.rtems.org/ticket/4750
    Id 4750
    Reporter dsa93
    Created 4 November 2022 13:40:35
    Modified 7 November 2022 15:00:32
    Owner  
    Type defect
    Component rtems
    Status closed
    Resolution invalid
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Hi

    I am developing device driver in custom BSP in RTEMS.
    I applied my BSP on top of master branch.

    My driver code looks like this:

    /* driver logic in "static" functions (omitted) */
    void custom_driver_init(void);
    RTEMS_SYSINIT_ITEM(
    custom_driver_init,
    RTEMS_SYSINIT_DEVICE_DRIVERS,
    RTEMS_SYSINIT_ORDER_SEVENTH
    );

    It is discarded by linker. custom_driver_init is never called. I discovered hack how to make linker not discard this: if I put at least one extern linkage function and call it in other file then linker dont discard "custom_driver_init"

    /* driver logic in "static" functions (omitted) */
    /* Call this function for example from main function */
    int workaraound(void) {
    return 5;
    }
    void custom_driver_init(void);
    RTEMS_SYSINIT_ITEM(
    custom_driver_init,
    RTEMS_SYSINIT_DEVICE_DRIVERS,
    RTEMS_SYSINIT_ORDER_SEVENTH
    );

    Driver file compilation arguments:

     -MMD,
    -Wall,
    -Wmissing-prototypes,
    -Wimplicit-function-declaration,
    -Wstrict-prototypes,
    -Wnested-externs,
    -O2,
    -g,
    -fdata-sections,
    -ffunction-sections,
    -mthumb,
    -mcpu=cortex-m7,
    -mfpu=fpv5-d16,
    -mfloat-abi=hard,
    -save-temps,
    -Icpukit/include,
    -I../../../cpukit/include,
    -Icpukit/score/cpu/arm/include,
    -I../../../cpukit/score/cpu/arm/include,
    -Ibsps/include,
    -I../../../bsps/include,
    -Ibsps/arm/include,
    -I../../../bsps/arm/include,
    ../../../bsps/arm/someplatform/console/console.c,
    -c,
    -DHAVE_CONFIG_H=1,
    -DBOARD_MAINCK_FREQ_HZ=10000000

    Application linkage files

    /home/dsa/rtems/rsb-6/bin/arm-rtems6-gcc
    -g
    -mthumb
    -mcpu=cortex-m7
    -mfpu=fpv5-d16
    -mfloat-abi=hard
    -DBOARD_MAINCK_FREQ_HZ=10000000
    -I/home/dsa/arm-rtems6/someplatform/lib/include
    -B/home/dsa/arm-rtems6/someplatform/lib
    -qrtems
    -Wl,--gc-sections
    -Wl,-Map=ecu-app.map,--print-memory-usage,--cref
    CMakeFiles/ecu-app.dir/src/main.c.obj
    -o ecu-app.elf
    -lrtemsbsp
    -lrtemscpu

    I tried to research this topic and I am not sure if there is a way to prevent this optimisation, so I decided to post it here. I can provide you some more details or perform some tests

    Comment 1
    1. Sebastian Huber, Mon, 07 Nov 2022 15:00:08 GMT

    If it is discarded through the linker garbage collection, then you probably use a custom linker command file which doesn't have the KEEP() directive.

    If it is not linked in at all, then your application has no reference to the driver or you didn't add the driver to the objects list of the executable link.

    Questions like this should be discussed on the mailing list.

    Comment 2
    1. Sebastian Huber, Mon, 07 Nov 2022 15:00:32 GMT
    2. status: changed from new to closed
    3. resolution: set to invalid

    4751 - chmod problem in shell of RTEMS 6

    Link https://devel.rtems.org/ticket/4751
    Id 4751
    Reporter chenjin_zhong
    Created 10 November 2022 00:49:30
    Modified 26 December 2022 19:37:09
    Owner Chris Johns
    Type defect
    Component shell
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Cloned from #4558:

    Hi, I find one problem in rtems_shell_main_chmod function. the usage of this instruction is descripted as "chmod 0777 n1 n2... #change filemode", .the src code is listed as follows. the bold part should be replaced with __chmod(argv[n], mode)__?

    static int rtems_shell_main_chmod(
    int argc,
    char *argv[]
    )
    {
    int n;
    mode_t mode;
    unsigned long tmp;
    if (argc < 2) {
    fprintf(stderr,"%s: too few arguments\n", argv[0]);
    return -1;
    }
    /*
    * Convert arguments into numbers
    */
    if ( rtems_string_to_unsigned_long(argv[1], &tmp, NULL, 0) ) {
    printf( "Mode argument (%s) is not a number\n", argv[1] );
    return -1;
    }
    mode = (mode_t) (tmp & 0777);
    /*
    * Now change the files modes
    */
    for (n=2 ; n < argc ; n++)
    chmod(argv[n++], mode); /* <<<< here */
    return 0;
    }
    Comment 1
    1. Chris Johns, Wed, 30 Nov 2022 00:05:18 GMT
    2. owner: set to Chris Johns
    3. status: changed from new to assigned
    Comment 2
    1. zack leung, Mon, 26 Dec 2022 19:37:09 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In c8c713c/rtems:

    rtems_shell_main_chmod: Correct argument indexing Closes #4751

    4756 - Docs build system does not build singlehtml (cloned)

    Link https://devel.rtems.org/ticket/4756
    Id 4756
    Reporter Chris Johns
    Created 10 November 2022 22:05:05
    Modified 6 December 2022 21:20:46
    Owner Chris Johns <chrisj@…>
    Type defect
    Component doc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Cloned from #4755:

    The configure logic does not handle the inliner detection correctly.

    Comment 1
    1. Chris Johns, Wed, 30 Nov 2022 00:05:43 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed
    Comment 2
    1. Chris Johns, Tue, 06 Dec 2022 21:20:46 GMT
    2. owner: set to Chris Johns <chrisj@…>

    In 8f5f371/rtems-docs:

    waf: Handle the enable options for singlehtml and ditaa/puml Close #4756

    4759 - TLS support is broken for ARMv6

    Link https://devel.rtems.org/ticket/4759
    Id 4759
    Reporter jkillelea
    Created 14 November 2022 00:31:55
    Modified 3 January 2023 07:53:06
    Owner Sebastian Huber <sebastian.huber@…>
    Type defect
    Component arch/arm
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    I have found two possible memory exceptions under rtems_shell_init when running on the raspberry pi 1 BSP.

    First, a possible null pointer dereference from getpwuid_r(0, &pwd, NULL, 0, &pwd_res); in rtems_shell_init_once. The NULL pointer is never checked before it is used as a backing buffer for pwd.

    Second, usage of stdin, stdout, and stderr cause memory exceptions in rtems_shell_run when used, for example shell_env->parent_stdin = stdin;.

    Attachments:

    1 jkillelea, Mon, 14 Nov 2022 00:32:43 GMT
      attach: set to getpwuid_r_patch.txt
    Comment 1
    1. Chris Johns, Wed, 30 Nov 2022 00:10:13 GMT
    2. component: changed from admin to shell
    Comment 2
    1. jkillelea, Sun, 11 Dec 2022 15:06:45 GMT

    It appears that raspberry pi does not support _Thread_Local attributes. Rebuilding GCC with the flag --without_newlib_tls seems to fix most errors. The null pointer error in getpwuid_r is actually ok, it's the call to set errno later in the function that causes failures.

    Comment 3
    1. Sebastian Huber, Thu, 15 Dec 2022 07:18:06 GMT

    What happens if you run the sptls01, sptls02, and sptls03 tests on this BSP?

    After a tool update, did you recompile everything?

    Comment 4
    1. jkillelea, Sun, 18 Dec 2022 18:03:05 GMT

    I recompiled everything with the same --without_newlib_tls flag, yes. That seemed to fix most issues. Certain miscellaneous packages fail to compile, but the kernel, BSP, and libbsd all work. I can reach an interactive terminal inside qemu now, and can reach the terminal prompt over serial on real hardware (unclear why I can't type yet, but that feels unrelated).

    Comment 5
    1. Sebastian Huber, Mon, 19 Dec 2022 06:43:45 GMT

    Disabling the Newlib TLS configuration is really not a long term option. We should figure out why the TLS support is broken on this BSP. What happens if you run the sptls01, sptls02, and sptls03 tests on this BSP?

    Comment 6
    1. jkillelea, Mon, 26 Dec 2022 23:22:52 GMT

    Hi there, sorry for the delay. Here's the result of running each test on real hardware. ` __* BEGIN OF TEST SPTLS 1 __* __* TEST VERSION: 6.0.0.240987228f7f7bab90c20efb8d219e26cf5f51c5 __* TEST STATE: EXPECTED_PASS __* TEST BUILD: RTEMS_POSIX_API __* TEST TOOLS: 12.2.1 20221121 (RTEMS 6, RSB 65f83cf973d6f1f8974ea1818e653753b83eaea8, Newlib b9898fc)

    __* FATAL __* fatal source: 9 (RTEMS_FATAL_SOURCE_EXCEPTION)

    R0 = 0x0000007b R8 = 0x770e8bde R1 = 0x0000000a R9 = 0x5f4cdb15 R2 = 0x00000001 R10 = 0xe38f3ff7 R3 = 0x0024c068 R11 = 0xb1bc579f R4 = 0x00000000 R12 = 0x01010101 R5 = 0x0000007b SP = 0x00303998 R6 = 0x00000008 LR = 0x00200600 R7 = 0x002001e8 PC = 0x0020059c CPSR = 0x600001d3 VEC = 0x00000004 RTEMS version: 6.0.0.240987228f7f7bab90c20efb8d219e26cf5f51c5 RTEMS tools: 12.2.1 20221121 (RTEMS 6, RSB 65f83cf973d6f1f8974ea1818e653753b83eaea8, Newlib b9898fc) executing thread ID: 0x09010001 executing th� `

    ` __* BEGIN OF TEST SPTLS 2 __* __* TEST VERSION: 6.0.0.240987228f7f7bab90c20efb8d219e26cf5f51c5 __* TEST STATE: EXPECTED_PASS __* TEST BUILD: RTEMS_POSIX_API __* TEST TOOLS: 12.2.1 20221121 (RTEMS 6, RSB 65f83cf973d6f1f8974ea1818e653753b83eaea8, Newlib b9898fc) A::globalCounter() = 0

    __* FATAL __* fatal source: 9 (RTEMS_FATAL_SOURCE_EXCEPTION)

    R0 = 0x00000017 R8 = 0x00000000 R1 = 0x0000000a R9 = 0x00000000 R2 = 0x00003008 R10 = 0x00000000 R3 = 0x00000000 R11 = 0x00000000 R4 = 0x00226158 R12 = 0x00000000 R5 = 0x00302888 SP = 0x0030b290 R6 = 0x00000000 LR = 0x002006ac R7 = 0x00000000 PC = 0x00200ff0 CPSR = 0x20000153 VEC = 0x00000004 RTEMS version: 6.0.0.240987228f7f7bab90c20efb8d219e26cf5f51c5 RTEMS tools: 12.2.1 20221121 (RTEMS 6, RSB 65f83cf973d6f1f8974ea1818e653753b83eaea8, Newlib b9898fc) executing thread ID: 0x0a010001 executing th� `

    ` __* BEGIN OF TEST SPTLS 3 __* __* TEST VERSION: 6.0.0.240987228f7f7bab90c20efb8d219e26cf5f51c5 __* TEST STATE: EXPECTED_PASS __* TEST BUILD: RTEMS_POSIX_API __* TEST TOOLS: 12.2.1 20221121 (RTEMS 6, RSB 65f83cf973d6f1f8974ea1818e653753b83eaea8, Newlib b9898fc)

    __* END OF TEST SPTLS 3 __*

    [ RTEMS shutdown ] `

    GCC was compiled via rsb using the flag --without_newlib_tls, but the kernel was built from source. Couldn't find where to use the same flag for that.

    Comment 7
    1. Sebastian Huber, Tue, 03 Jan 2023 07:49:36 GMT
    2. owner: set to Sebastian Huber <sebastian.huber@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In f8cb1f48/rtems:

    arm: Enable thread ID register for ARMv6 Close #4759.
    Comment 8
    1. Sebastian Huber, Tue, 03 Jan 2023 07:53:06 GMT
    2. component: changed from shell to arch/arm
    3. summary: changed from RPi: crashes when shell starts to TLS support is broken for ARMv6

    4760 - RSB fatal error on missing hash checksums

    Link https://devel.rtems.org/ticket/4760
    Id 4760
    Reporter Chris Johns
    Created 15 November 2022 02:25:19
    Modified 22 June 2023 21:17:53
    Owner Chris Johns
    Type defect
    Component tool/rsb
    Status reopened
    Resolution  
    Version 6
    Milestone 6.1
    Priority high
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The time has come to raise a fatal error if a hash is missing rather than a warning. This will stop missing checksums being present when releasing.

    It also makes it simpler to test releases for no missing checksums.

    Comment 1
    1. Joel Sherrill, Thu, 09 Feb 2023 20:56:06 GMT

    Hasn't this been implemented?

    Comment 2
    1. Joel Sherrill, Thu, 22 Jun 2023 21:14:45 GMT
    2. status: changed from assigned to closed
    3. resolution: set to duplicate

    Dupe of #4857

    Comment 3
    1. Chris Johns, Thu, 22 Jun 2023 21:17:53 GMT
    2. status: changed from closed to reopened
    3. resolution: duplicate deleted

    Please check and then confirm before closing


    4762 - Add Versal SDHCI Arasan driver to libbsd

    Link https://devel.rtems.org/ticket/4762
    Id 4762
    Reporter Aaron N
    Created 21 November 2022 22:22:47
    Modified 22 November 2022 02:40:47
    Owner Chris Johns
    Type enhancement
    Component network/libbsd
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Added support for SD card slots in libbsd for the Versal. Tested on VCK190.

    Attachments:

    1 Aaron N, Mon, 21 Nov 2022 22:26:26 GMT
      attach: set to 0001-rtemsbsd-versal-Add-SDHCI-Driver-support.patch
    2 Aaron N, Tue, 22 Nov 2022 01:35:29 GMT
      attach: set to 0001-rtemsbsd-versal-Add-SDHCI-Driver-support-v2.patch
    3 Aaron N, Tue, 22 Nov 2022 01:40:02 GMT
      attach: set to 0001-rtemsbsd-versal-Add-SDHCI-Driver-support-v3.patch
    4 Aaron N, Tue, 22 Nov 2022 01:47:04 GMT
      attach: set to v4-0001-rtemsbsd-versal-Add-SDHCI-Driver-support.patch
    5 Aaron N, Tue, 22 Nov 2022 02:08:44 GMT
      attach: set to 0001-rtems-versal-Updated-mmu-to-include-mapping-for-SDHC.patch
    Comment 1
    1. Aaron N, Mon, 21 Nov 2022 22:23:16 GMT
    2. type: changed from defect to enhancement
    Comment 2
    1. Kinsey Moore, Tue, 22 Nov 2022 00:58:45 GMT

    The patch looks good to me.

    Comment 3
    1. Kinsey Moore, Tue, 22 Nov 2022 01:16:11 GMT

    My only comment beyond that is that I should have renamed the existing Arasan base define and reused it instead of making RTEMS_BSD_DRIVER_XILINX_ZYNQMP_SDHCI in rtems-bsd-nexus-bus.h when I added the driver to the ZynqMP platform.

    Comment 4
    1. Kinsey Moore, Tue, 22 Nov 2022 01:20:30 GMT

    If you feel like fixing that, you could combine the existing RTEMS_BSD_DRIVER_XILINX_ZYNQMP_SDHCI and RTEMS_BSD_DRIVER_XILINX_ZYNQ_SDHCI along with RTEMS_BSD_DRIVER_XILINX_VERSAL_SDHCI added in this patch into a single reused RTEMS_BSD_DRIVER_ARASAN_SDHCI.

    Comment 5
    1. Aaron N, Tue, 22 Nov 2022 01:40:51 GMT

    Added your suggestion in, v3 has the name you suggested. Thanks.

    Comment 6
    1. Kinsey Moore, Tue, 22 Nov 2022 01:43:41 GMT

    The v3 patch looks great, thanks!

    Comment 7
    1. Aaron N, Tue, 22 Nov 2022 02:09:14 GMT

    Attached patch for MMU to map SDHCI devices for the Versal.

    Comment 8
    1. Kinsey Moore, Tue, 22 Nov 2022 02:10:26 GMT

    That looks good as well.

    Comment 9
    1. Aaron Nyholm, Tue, 22 Nov 2022 02:39:24 GMT

    In c5fa19e/rtems:

    rtems/versal: Updated mmu to include mapping for SDHCI devices on versal Tested on VCK190 Updates #4762
    Comment 10
    1. Aaron Nyholm, Tue, 22 Nov 2022 02:40:47 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In a39a6a2/rtems-libbsd:

    rtemsbsd/versal: Add SDHCI Driver support Tested on VCK190 Closes #4762

    4763 - Detect terminal size

    Link https://devel.rtems.org/ticket/4763
    Id 4763
    Reporter Chris Johns
    Created 22 November 2022 09:07:57
    Modified 22 November 2022 19:49:00
    Owner Chris Johns
    Type enhancement
    Component shell
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Add support to set the rows and columns in the shell. RTEMS does not have a full tty system and does not carry terminfo so implement a shell based approach to let some commands manage the terminal size.

    Update the edit command to support the terminal size.

    Fix the help lines.

    Comment 1
    1. Chris Johns, Tue, 22 Nov 2022 19:49:00 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 8425e67/rtems:

    libmisc/shell: Support terminal size as env variables Closes #4763

    4766 - Classic API User Guide Index has Functions without Parentheses

    Link https://devel.rtems.org/ticket/4766
    Id 4766
    Reporter Joel Sherrill
    Created 30 November 2022 15:45:45
    Modified 30 November 2022 23:26:07
    Owner Joel Sherrill
    Type defect
    Component doc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Some index entries in the Classic API Users Guide has some method names without parentheses like rtems_clock_get instead of rtems_clock_get() which is used most of the time. Fix to improve consistency.

    Comment 1
    1. Joel Sherrill, Wed, 30 Nov 2022 23:26:07 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In aaba6e5/rtems-docs:

    c-user/*: Add trailing parentheses on methods in index which were missing it Closes #4766.

    4767 - Add rtems-lwip to release packages

    Link https://devel.rtems.org/ticket/4767
    Id 4767
    Reporter Joel Sherrill
    Created 30 November 2022 20:56:56
    Modified 4 January 2023 22:39:43
    Owner Chris Johns
    Type enhancement
    Component tool
    Status assigned
    Resolution  
    Version 6
    Milestone 6.1
    Priority normal
    Severity blocker
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The rtems-lwip repository is young but mature enough now to include in the release package. Please add it.

    This should primarily related to the ​rtems-release repository.

    Comment 1
    1. Joel Sherrill, Wed, 04 Jan 2023 22:39:43 GMT
    2. description: modified (diff)

    4768 - Use tarballs for stable versions development tools

    Link https://devel.rtems.org/ticket/4768
    Id 4768
    Reporter Joel Sherrill
    Created 30 November 2022 21:00:46
    Modified 3 July 2023 21:54:59
    Owner  
    Type defect
    Component tool
    Status reopened
    Resolution  
    Version 6
    Milestone 6.1
    Priority normal
    Severity blocker
    Keywords  
    Cc  
    Blocking  
    Blocked by 4921

    Description

    Currently many of the individual tools in the development toolchain are using specified in the RSB using git hashes and not release versions. This is an issue for stable tool versions (e.g. 6) and release branches. Using git hashes is necessary for picking up bug fixes in some cases and should likely be the preference for the forward leaning tools (e.g. 7) but released versions with patches should be given preference.

    Note: Newlib is acknowledged as likely always being a hash.

    Comment 1
    1. Chris Johns, Wed, 30 Nov 2022 21:02:25 GMT

    I agree with this. Should the Eng doco be updated to reflect this as a policy?

    Comment 2
    1. Joel Sherrill, Mon, 20 Feb 2023 20:43:23 GMT
    2. status: changed from new to closed
    3. resolution: set to worksforme

    Confirming that the RSB lists all tools as released versions except rtems-tools and newlib. See ​https://git.rtems.org/rtems-source-builder/tree/rtems/config/6/rtems-default.bset for details.

    Comment 3
    1. Chris Johns, Mon, 06 Mar 2023 03:40:26 GMT
    2. status: changed from closed to reopened
    3. resolution: worksforme deleted

    I am reopening this ticket. The severity is blocker and if a release is not to used upstream released tarball files we need a clear reason why.

    The RSB is not using GCC released sources and the current ​rtems/config/tools/rtems-gcc-10-newlib-head.cfg shows this.

    If you look at the ​5.3 sources you will see gcc tarballs are used, eg gcc-9.3.0.tar.xz. As things are an RTEMS 6 release will end up with a file called gnu-mirror-gcc-92b44cf,tar.gz.

    Where is the repo this comes from?

    The name gnu-mirror-gcc is confusing unless you understand what is going on?

    How do you track the integrity of the repo used once you manage to find it?

    I think we should be using a GCC release tarball of code in releases.

    Comment 4
    1. Chris Johns, Mon, 03 Jul 2023 21:54:59 GMT
    2. blockedby: set to 4921

    4769 - config: Add CONFIGURE_RECORD_INTERRUPTS_ENABLED

    Link https://devel.rtems.org/ticket/4769
    Id 4769
    Reporter Sebastian Huber
    Created 1 December 2022 11:36:04
    Modified 3 January 2023 14:51:55
    Owner Sebastian Huber
    Type enhancement
    Component config
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    /**
    * @brief This configuration option is a boolean feature define.
    *
    * In case
    *
    * * this configuration option is defined
    *
    * * and #CONFIGURE_RECORD_PER_PROCESSOR_ITEMS is properly defined,
    *
    * then the interrupt event recording is enabled.
    *
    * @par Default Configuration
    * If this configuration option is undefined, then the described feature is not
    * enabled.
    *
    * @par Notes
    * The interrupt event recording generates interrupt entry and exit events when
    * interrupt entries are dispatched.
    */
    #define CONFIGURE_RECORD_INTERRUPTS_ENABLED
    Comment 1
    1. Sebastian Huber, Fri, 02 Dec 2022 09:13:28 GMT

    In 71d1acd/rtems:

    bsps/irq: Rename handler in dispatch table The name handler table was a bit misleading after the last rework. Rename it to distach table. Update the documentation accordingly. Update #4769.
    Comment 2
    1. Sebastian Huber, Fri, 02 Dec 2022 09:13:31 GMT

    In 0d5e41a/rtems:

    bsps/irq: Add bsp_interrupt_get_dispatch_table_slot() Update #4769.
    Comment 3
    1. Sebastian Huber, Fri, 02 Dec 2022 09:13:33 GMT

    In c46fbb9/rtems:

    config: Add CONFIGURE_RECORD_INTERRUPTS_ENABLED This enables the tracing of interrupt entry/exit events through an application configuration option. The interrupt processing can be viewed with Trace Compass using rtems-record-lttng from the RTEMS Tools. Update #4769.
    Comment 4
    1. Sebastian Huber, Fri, 02 Dec 2022 09:14:41 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 47e1f6e/rtems-docs:

    Document CONFIGURE_RECORD_INTERRUPTS_ENABLED Close #4769.
    Comment 5
    1. Sebastian Huber, Fri, 02 Dec 2022 09:26:31 GMT

    In 492c2d4/rtems-central:

    spec: Specify CONFIGURE_RECORD_INTERRUPTS_ENABLED Update #4769.
    Comment 6
    1. Sebastian Huber, Tue, 03 Jan 2023 14:51:55 GMT

    In 074e287/rtems-central:

    spec: Rename interrupt handler in dispatch table Update #4769.

    4771 - Versal UART issues

    Link https://devel.rtems.org/ticket/4771
    Id 4771
    Reporter Chris Johns
    Created 5 December 2022 04:57:52
    Modified 17 May 2023 04:23:43
    Owner Chris Johns
    Type defect
    Component arch/aarch64
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The Versal polled mode it broken when building. The disable all interrupt call is not built in polled mode.

    The UART interrupt mode behaves differently with a small stand alone app than a full app with libbsd. A full application with libbsd seems to behave while the small app exhibit the "not tx interrupt on FIFO load" issue.

    Attachments:

    1 Aaron N, Mon, 05 Dec 2022 22:28:42 GMT
      attach: set to 0001-aarch64-versal-Fix-uart-interrupt-issues.patch
    Comment 1
    1. Chris Johns, Thu, 09 Feb 2023 02:27:13 GMT

    The UART IP is based on the standard ARM IP however Xilinx have finally reported to me the interrupts are not the same as the ARM IP. There is weird issue around needing to prime the FIFO to half plus one to generate the first TX interrupt.

    Xilinx has confirmed this will not change across the range of ACAP devices.

    The main issue this raises is using the UART for a specialized protocol and not a terminal where sending a number of carriage returns is harmless.

    Comment 2
    1. Aaron N, Wed, 17 May 2023 04:23:43 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    4772 - Remove use of interval from rtems_task_wake_after() documentation

    Link https://devel.rtems.org/ticket/4772
    Id 4772
    Reporter Chris Johns
    Created 6 December 2022 22:35:30
    Modified 20 July 2023 12:43:36
    Owner Kinsey Moore
    Type enhancement
    Component doc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The Classic API documentation for rtems_task_wake_after() refers to an __interval__ while the call accepts ticks. The exact interval is not known because the period of time to next tick is not known when the call is made.

  • Clarify the wording
  • Recommend new applications use the POSIX based calls nanosleep() and clock_nanosleep() for applications that have intervals in a time base rather than system ticks.
  • The ​Gemini, Verify the fidelity of RTEMS System Tick issue provides some back ground to this change.

    Comment 1
    1. Joel Sherrill, Thu, 22 Jun 2023 22:03:49 GMT

    This is requested as an outcome of ​RTEMS System Tick Resolution (#30) from NSF NOIRLab / Gemini. This is about verifying the fidelity of RTEMS System Tick. A recent test of our systemTickTest tool inside GemUtils? is discussed here.

    ​https://gitlab.com/nsf-noirlab/gemini/rtsw/epics-base/epics-base/uploads/3ef07e7417e9e14903de65fd91c8417f/EPICS_Task_Sleep-CCJ.pdf

    The intent is to be clear it is "number of ticks" and not an arbitrarily precise "interval". Now that RTEMS can have nanosecond granularity this distinction becomes important.

    Comment 2
    1. Joel Sherrill, Thu, 22 Jun 2023 22:04:43 GMT
    2. owner: set to Kinsey Moore
    3. status: changed from new to assigned
    Comment 3
    1. Kinsey Moore, Thu, 06 Jul 2023 18:40:05 GMT

    In 981ba2d/rtems-docs:

    c-user: Update references to rtems_task_wake_after rtems_task_wake_after takes a parameter in terms of a count of clock ticks and not a measure in a subunit of seconds. This updates documentation to reflect that. This also makes obvious the caveat about the first tick wait not being a whole tick and points the user at a replacement for better accuracy. Updates #4772
    Comment 4
    1. Kinsey Moore, Thu, 13 Jul 2023 20:15:22 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed
    Comment 5
    1. Kinsey Moore, Thu, 20 Jul 2023 09:06:02 GMT

    In 20fc133/rtems-central:

    spec/wake-after: Update references to intervals rtems_task_wake_after takes a parameter in terms of a count of clock ticks and not a measure in a subunit of seconds. This updates documentation to reflect that and recommends clock_nanosleep() for applications requiring sleep for a time-based duration instead of a count of clock ticks. Updates #4772
    Comment 6
    1. Sebastian Huber, Thu, 20 Jul 2023 09:06:29 GMT

    In be789ee/rtems-docs:

    c-user: Update copyright and use glossary terms Updates #4772.
    Comment 7
    1. Kinsey Moore, Thu, 20 Jul 2023 09:09:35 GMT

    In 21429f6/rtems:

    rtems: Update references to rtems_task_wake_after rtems_task_wake_after takes a parameter in terms of a count of clock ticks and not a measure in a subunit of seconds. This updates documentation to reflect that. This also makes obvious the caveat about the first tick wait not being a whole tick and points the user at a replacement for better accuracy. Updates #4772
    Comment 8
    1. Sebastian Huber, Thu, 20 Jul 2023 12:41:48 GMT

    In 63a5c19/rtems-docs:

    c-user: Fix typo Updates #4772.
    Comment 9
    1. Sebastian Huber, Thu, 20 Jul 2023 12:43:36 GMT

    In 4935659/rtems:

    rtems: Fix typo Update #4772.

    4775 - RISC-V: Default RV64 BSPs to medany

    Link https://devel.rtems.org/ticket/4775
    Id 4775
    Reporter Hesham Almatary
    Created 17 December 2022 16:43:37
    Modified 2 March 2023 13:51:34
    Owner Hesham Almatary <hesham.almatary@…>
    Type enhancement
    Component arch/riscv
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc Sebastian Huber Joel Sherrill
    Blocking  
    Blocked by  

    Description

    Currently generic RISC-V BSPs (riscv/riscv) that start with rv64 and not rv64_medany will start at 0x70000000. This adds high maintenance overhead and deviates from almost all other RISC-V-based OSes and baremetal program that start at 0x80000000. Further, testing now has to account for an extra parameter (medany or not) that doubles the number of BSPs need to be tested.

    It would be ideal to reduce maintenance efforts by defaulting all RV64 BSPs to medany and make them start at 0x80000000 to run on both QEMU and Spike. Those that need other cmodels or start addresses could be customised (e.g., rv64imac would default to medany but rv64imac_medlow won't).

    Attachments:

    1 Hesham Almatary, Sat, 17 Dec 2022 16:44:20 GMT
      attach: set to 0001-Add-RTEMS-rv32-medany-support.patch
     
    Comment 1
    1. Chris Johns, Sat, 17 Dec 2022 21:36:18 GMT
    2. version: set to 6
    3. component: changed from admin to arch/riscv
    4. milestone: set to 6.1

    I have assigned this ticket to 6. Please move if not for 6.1.

    Comment 2
    1. Hesham Almatary, Wed, 21 Dec 2022 12:35:09 GMT
    2. description: modified (diff)
    3. summary: changed from RISC-V: Default BSPs to medany to RISC-V: Default RV64 BSPs to medany
    Comment 3
    1. Hesham Almatary, Fri, 23 Dec 2022 09:07:51 GMT

    In dd28005/rtems:

    spec/build/riscv: Default rv64* BSPs to medany cmodel Currently generic RISC-V BSPs (riscv/riscv) that start with rv64 and not rv64*_medany will start at 0x70000000. This adds high maintenance overhead and deviates from almost all other RISC-V-based OSes and baremetal programs that start at 0x80000000. Further, testing now has to account for an extra parameter (medany or not) that doubles the number of BSPs need to be tested. This commit defaults all RV64 BSPs to use medany code model to allow starting all BSPs at 0x80000000. BSPs that require different code models and/or start addresses are custom and need to add their own entries. Updates #4775
    Comment 4
    1. Hesham Almatary, Fri, 23 Dec 2022 09:07:54 GMT

    In a430dd4/rtems:

    spec/build/riscv: Start all riscv/riscv BSPs at 0x80000000 To follow other RISC-V-based OSes conventions. Delete generic BSPs that start at 0x70000000 as BSPs are now medany by default. Updates #4775
    Comment 5
    1. Hesham Almatary, Mon, 09 Jan 2023 18:11:06 GMT
    2. owner: set to Hesham Almatary <hesham.almatary@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 6794f01/rtems-docs:

    Docs: RISC-V Update rv64* BSPs to medany and 0x80000000 start address Closes #4775
    Comment 6
    1. Hesham Almatary, Wed, 08 Feb 2023 07:13:22 GMT

    In a735d42/rtems-tools:

    RISC-V Default rv64* BSPs to medany and 0x80000000 start address To run on both QEMU and Spike Updates #4775
    Comment 7
    1. Hesham Almatary, Wed, 08 Feb 2023 07:13:23 GMT

    In 7ee62e9/rtems-tools:

    RISC-V: Test rv32i and rv32imafdc on QEMU Updates #4775
    Comment 8
    1. Sebastian Huber, Thu, 02 Mar 2023 13:51:34 GMT

    In 269562cf/rtems:

    bsps/riscv: Use medany cmodel for 64-bit variants Updates #4775.

    4778 - Deployed RSB does not find release version config

    Link https://devel.rtems.org/ticket/4778
    Id 4778
    Reporter Chris Johns
    Created 18 December 2022 04:13:30
    Modified 22 June 2023 22:05:43
    Owner  
    Type defect
    Component tool/rsb
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Cloned from #4777:

    The RSB does not find the VERSION file when released.

    Comment 1
    1. Chris Johns, Sun, 18 Dec 2022 04:13:42 GMT
    2. summary: changed from Deployed RSB does not find release version config (cloned) to Deployed RSB does not find release version config
    Comment 2
    1. Chris Johns, Thu, 22 Jun 2023 22:05:43 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed

    4782 - Correct Issues in Rate Monotonic Manager Background Section

    Link https://devel.rtems.org/ticket/4782
    Id 4782
    Reporter Joel Sherrill
    Created 10 January 2023 15:10:34
    Modified 17 January 2023 19:35:43
    Owner  
    Type defect
    Component doc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Fix these issues:

    • 11.2.5.1 last bullet is inverted logically. Non-periodic tasks must NOT displace periodic ones and should run in background at a logically lower priority.
    • 11.2.5.4 - emphasis box needed on the second paragraph (after lead-in that ends with a colon)
    Comment 1
    1. Joel Sherrill, Tue, 17 Jan 2023 19:35:28 GMT

    In ​f48f79d/rtems-docs:

    c-user/rate-monotonic/background.rst: Correct logically inverted statement Also corrected a spot of formatting.

    Closes #4782.

    Comment 2
    1. Joel Sherrill, Tue, 17 Jan 2023 19:35:43 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed

    4783 - Fix issues when compiling dtc with Cygwin

    Link https://devel.rtems.org/ticket/4783
    Id 4783
    Reporter Ryan Long
    Created 16 January 2023 21:23:55
    Modified 28 July 2023 13:51:26
    Owner  
    Type defect
    Component tool/rsb
    Status new
    Resolution  
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Currently, DTC is failing to build due to this check in checks.c. For some reason the argument into isxdigit is coming in as a char. I've brought it up to the maintainer, but he sees no reason to change it. Therefore, a patch is needed to get it to build.

    1183 if (unitname[0] == '0' && isxdigit(unitname[1])) 1184 FAIL(c, dti, node, "unit name should not have leading 0s");
    1185 }

    Attachments:

    1 Ryan Long, Mon, 16 Jan 2023 21:28:54 GMT
      attach: set to 0001-checks.c-Ensure-argument-is-an-integer.patch
    2 Kinsey Moore, Mon, 30 Jan 2023 17:11:39 GMT
      attach: set to 0001-checks.c-Ensure-argument-is-an-integer-v2.patch
     
    Comment 1
    1. Sebastian Huber, Tue, 17 Jan 2023 07:30:41 GMT

    I can't find the associated thread on the DTC mailing list. Could you please provide a link?

    Comment 2
    1. Joel Sherrill, Fri, 20 Jan 2023 15:02:48 GMT

    See ​https://github.com/dgibson/dtc/issues/71 and I just posted. If you want to pile on, it would be appreciated. I don't think he sees the underlying issue.

    Per ​https://en.cppreference.com/w/c/string/byte/isxdigit, the argument is an integer. GCC and LLVM warn for using a character as an array index and this is from the GCC manual.

    -Wchar-subscripts
    Warn if an array subscript has type char. This is a common cause of error, as programmers often forget that this type is signed on some machines. This warning is enabled by -Wall. 
    Comment 3
    1. Kinsey Moore, Mon, 30 Jan 2023 17:21:10 GMT

    In afaeda7/rtems-source-builder:

    dtc: Add patch to build for ticket 4783 This patch resolves a build error with dtc on cygwin until upstream adopts a fix.
    Comment 4
    1. Sebastian Huber, Tue, 25 Jul 2023 05:27:50 GMT

    The patch makes no sense. You need an (unsigned char) cast. I added a comment to the dtc issue.

    Comment 5
    1. Sebastian Huber, Thu, 27 Jul 2023 11:09:59 GMT

    See:

    ​https://github.com/dgibson/dtc/pull/105

    Comment 6
    1. Sebastian Huber, Fri, 28 Jul 2023 13:51:08 GMT

    Pull request was merged. The next release will fix the issue.

    Comment 7
    1. Sebastian Huber, Fri, 28 Jul 2023 13:51:26 GMT
    2. milestone: changed from Indefinite to 6.1

    4803 - Revert or Mark CAN API as experimental

    Link https://devel.rtems.org/ticket/4803
    Id 4803
    Reporter Gedare Bloom
    Created 20 January 2023 22:37:10
    Modified 27 July 2023 18:27:24
    Owner Gedare Bloom
    Type defect
    Component dev
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc karel@…
    Blocking  
    Blocked by  

    Description

    The CAN API done in GSoC 2022 is not stable. There are some key deficiencies that need to be fixed, and they may cause the API to change. The API needs to be marked as experimental or reverted before it appears in a release.

    Comment 1
    1. kgardas, Sat, 21 Jan 2023 07:46:52 GMT
    2. cc: karel@… added
    Comment 2
    1. Gedare Bloom, Thu, 27 Jul 2023 18:27:24 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In c1cad59/rtems:

    Revert "cpukit/dev/can: Added CAN support" This reverts commit cd91b37dce728b372f164355719a4e601e12e7b3. Closes #4803.

    4818 - Incomplete Statement in “cpu->heir”

    Link https://devel.rtems.org/ticket/4818
    Id 4818
    Reporter Daniel Páscoa
    Created 23 January 2023 11:42:22
    Modified 24 January 2023 10:28:10
    Owner Sebastian Huber <sebastian.huber@…>
    Type defect
    Component score
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    __Description:__ The assignment statement "cpu->heir = " is incomplete and missing a value and semicolon at the end. It is recommended to revise this statement to ensure the code is not broken by the missing semicolon.

    The attached excel lists in a systematic way the sources where this issue applies.

    __Additional Notes:__ This ticket was raised as an outcome of the Independent SW Verification and Validation (ISVV) for ESA-promoted RTEMS SMP Qualification Data Packs (​https://rtems-qual.io.esa.int). Original ISVV reference for this issue is RTEMS-SMP-CODE-VER-058.

    __File list (please check the attached excel for more information):__ cpukit\score\src\threadcreateidle.c

    Attachments:

    1 Daniel Páscoa, Mon, 23 Jan 2023 11:42:43 GMT
      attach: set to RTEMS-SMP-CODE-VER-058.xlsx
    Comment 1
    1. Sebastian Huber, Mon, 23 Jan 2023 13:06:26 GMT
    2. keywords: qualification added
    Comment 2
    1. Sebastian Huber, Tue, 24 Jan 2023 10:26:25 GMT
    2. owner: set to Sebastian Huber <sebastian.huber@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 9ecb73f/rtems:

    score: Clarify code block Do not use a chained assignment for code clarity. Close #4818.
    Comment 3
    1. Sebastian Huber, Tue, 24 Jan 2023 10:28:10 GMT
    2. version: set to 6
    3. component: changed from admin to score
    4. milestone: set to 6.1

    4820 - Hazardous cast

    Link https://devel.rtems.org/ticket/4820
    Id 4820
    Reporter Daniel Páscoa
    Created 23 January 2023 11:45:27
    Modified 24 January 2023 10:27:54
    Owner Sebastian Huber <sebastian.huber@…>
    Type defect
    Component test
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    __Description:__ Converting a function pointer to a different type of pointer can lead to unpredictable and undefined behavior. It is important to note that attempting to convert a pointer to a function to a pointer of a different type of function is particularly dangerous and should be avoided.

    The attached excel lists in a systematic way the sources where this issue applies.

    __Additional Notes:__ This ticket was raised as an outcome of the Independent SW Verification and Validation (ISVV) for ESA-promoted RTEMS SMP Qualification Data Packs (​https://rtems-qual.io.esa.int). Original ISVV reference for this issue is RTEMS-SMP-CODE-VER-079.

    __File list (please check the attached excel for more information):__ bsps\shared\irq\irq-handler-iterate.c
    bsps\sparc\leon3\include\tm27.h

    Attachments:

    1 Daniel Páscoa, Mon, 23 Jan 2023 11:45:39 GMT
      attach: set to RTEMS-SMP-CODE-VER-079.xlsx
    Comment 1
    1. Sebastian Huber, Mon, 23 Jan 2023 13:06:26 GMT
    2. keywords: qualification added
    Comment 2
    1. Sebastian Huber, Tue, 24 Jan 2023 10:26:27 GMT
    2. owner: set to Sebastian Huber <sebastian.huber@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 10ee41a8/rtems:

    tm27: Avoid function pointer casts Add TM27_USE_VECTOR_HANDLER to select the interrupt handler type used by the implementation. Close #4820.
    Comment 3
    1. Sebastian Huber, Tue, 24 Jan 2023 10:27:54 GMT
    2. version: set to 6
    3. component: changed from admin to test
    4. milestone: set to 6.1

    4821 - Ubuntu Host Instructions Wrong

    Link https://devel.rtems.org/ticket/4821
    Id 4821
    Reporter Joel Sherrill
    Created 23 January 2023 23:41:33
    Modified 25 January 2023 14:15:35
    Owner Joel Sherrill <joel@…>
    Type defect
    Component doc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The current instructions were reported to be as being broken in email. Filing a ticket to track.

    So here is the quick start command line which is missing the work ‘install’ and some of the packages listed don’t exist: ​https://docs.rtems.org/branches/master/user/hosts/posix.html#xubuntu

    Here is the correct command line:

    $ sudo apt install build-essential g++ gdb unzip pax bison flex texinfo python3-dev python-is-python3 libpython2-dev libncurses5-dev zlib1g-dev ninja-build pkg-config

    Comment 1
    1. Joel Sherrill, Wed, 25 Jan 2023 14:15:35 GMT
    2. owner: set to Joel Sherrill <joel@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 68a44b2/rtems-docs:

    user/hosts/posix.rst: Update Ubuntu instructions to 22.x Closes #4821.

    4822 - Function returning unchanged function input

    Link https://devel.rtems.org/ticket/4822
    Id 4822
    Reporter Daniel Páscoa
    Created 24 January 2023 11:35:33
    Modified 24 January 2023 18:24:52
    Owner Sebastian Huber
    Type defect
    Component score
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    __Description:__ These functions appear to be returning their input without making any changes. To improve their functionality, it is recommended to re-write them to return void.

    __Additional Notes:__ This ticket was raised as an outcome of the Independent SW Verification and Validation (ISVV) for ESA-promoted RTEMS SMP Qualification Data Packs (​https://rtems-qual.io.esa.int). Original ISVV reference for this issue is RTEMS-SMP-CODE-VER-057.

    __File:__ cpukit\score\src\smp.c __Function:__ _SMP_Process_message __Line:__ 284

    Comment 1
    1. Sebastian Huber, Tue, 24 Jan 2023 15:41:24 GMT
    2. owner: set to Sebastian Huber
    3. status: changed from new to assigned
    4. version: set to 6
    5. component: changed from admin to score
    6. milestone: set to 6.1
    Comment 2
    1. Sebastian Huber, Tue, 24 Jan 2023 15:44:36 GMT
    2. keywords: qualification added
    Comment 3
    1. Sebastian Huber, Tue, 24 Jan 2023 18:24:52 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 48f693a9/rtems:

    score: Remove unused return value Several SMP message processing functions returned a value. This value was always unused. Close #4822.

    4826 - Software Engineering Guide has broken Reference

    Link https://devel.rtems.org/ticket/4826
    Id 4826
    Reporter Joel Sherrill
    Created 27 January 2023 13:59:43
    Modified 15 February 2023 20:33:57
    Owner Chris Johns
    Type defect
    Component doc
    Status assigned
    Resolution  
    Version  
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Section 3, RTEMS Stakeholders, has a single paragraph which renders like this in the html at ​https://docs.rtems.org/branches/master/eng/stakeholders.html:

    Please have a look at the Support and Contributing chapter of the ERROR: :r:url:`user`. 

    A bit of investigation shows that it is trying to link to ​https://docs.rtems.org/branches/master/user/support/index.html. That section appears to be there correctly.

    Looking for documentation for the ":r:url:" syntax, I could not find any on the net. I see 48 uses of ":r:". I suspect but did not check that they all might be broken. What is ":r:" and what makes it work?

    Comment 1
    1. Joel Sherrill, Fri, 27 Jan 2023 14:08:24 GMT
    2. owner: set to Chris Johns
    3. status: changed from new to assigned
    4. description: modified (diff)
    Comment 2
    1. Chris Johns, Tue, 14 Feb 2023 22:17:00 GMT

    You cannot have links like this to rolling released versions of the documentation in the documentation and it needs to be removed.

    Comment 3
    1. Chris Johns, Tue, 14 Feb 2023 22:17:19 GMT
    2. owner: changed from Chris Johns to Joel Sherrill
    Comment 4
    1. Sebastian Huber, Wed, 15 Feb 2023 07:03:49 GMT

    This :r: stuff is implemented in common/rtemsdomain.py. It seems to be a Sphinx customization. It used to work at some point in time.

    Comment 5
    1. Chris Johns, Wed, 15 Feb 2023 20:33:57 GMT
    2. owner: changed from Joel Sherrill to Chris Johns

    The domains could have been broken by me when I updated that code to handle the version number change.

    I will take a look. My comment about URL links is related to references between different documents only. References in a document is supported.

    Sorry for the confusion.


    4828 - Macro defined but magic number used instead

    Link https://devel.rtems.org/ticket/4828
    Id 4828
    Reporter Daniel Páscoa
    Created 27 January 2023 16:09:22
    Modified 14 July 2023 10:01:06
    Owner Sebastian Huber
    Type enhancement
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    __Description:__ Each register has a dedicated SHIFT macro, however, it is not utilized in subsequent macro definitions where the shift operation is performed. To improve consistency and maintainability, consider incorporating the defined shift macro in the subsequent macro definitions instead of using hardcoded shift values.

    __Additional Notes:__ These findings are related to the fact that a bunch of macros like AHBSTAT_AHBS_HMASTER_SHIFT are defined and then are not used right in the next few lines.

    #define AHBSTAT_AHBS_HMASTER_SHIFT 3
    #define AHBSTAT_AHBS_HMASTER_MASK 0x78U
    #define AHBSTAT_AHBS_HMASTER_GET( _reg ) \

    ( ( ( _reg ) >> 3 ) & 0xfU )

    #define AHBSTAT_AHBS_HMASTER( _val ) ( ( _val ) << 3 )

    As stated, in every one of these files, “This file is part of the RTEMS quality process and was automatically generated". There are YAML files where these registers are defined and the Waf build system generates the header files automatically with the current configuration.

    This ticket was raised as an outcome of the Independent SW Verification and Validation (ISVV) for ESA-promoted RTEMS SMP Qualification Data Packs (​https://rtems-qual.io.esa.int). Original ISVV reference for this issue is RTEMS-SMP-CODE-VER-013.

    __File list:__ bsps\include\grlib\ahbstat-regs.h
    bsps\include\grlib\ahbtrace-regs.h
    bsps\include\grlib\apbuart-regs.h
    bsps\include\grlib\dsu4-regs.h
    bsps\include\grlib\ftmctrl-regs.h
    bsps\include\grlib\gptimer-regs.h
    bsps\include\grlib\gr1553b-regs.h
    bsps\include\grlib\gr740thsens-regs.h
    bsps\include\grlib\grcan-regs.h
    bsps\include\grlib\grclkgate-regs.h
    bsps\include\grlib\grethgbit-regs.h
    bsps\include\grlib\grgpio-regs.h
    bsps\include\grlib\grgprbank-regs.h
    bsps\include\grlib\grgpreg-regs.h
    bsps\include\grlib\griommu-regs.h
    bsps\include\grlib\grpci2-regs.h
    bsps\include\grlib\grspw2-regs.h
    bsps\include\grlib\grspwrouter-regs.h
    bsps\include\grlib\irqamp-regs.h
    bsps\include\grlib\l4stat-regs.h
    bsps\include\grlib\memscrub-regs.h
    bsps\include\grlib\l2cache-regs.h
    bsps\include\grlib\mmctrl-regs.h
    bsps\include\grlib\spictrl-regs.h
    bsps\include\grlib\spwpnp-regs.h
    bsps\include\grlib\spwrmap-regs.h

    Comment 1
    1. Sebastian Huber, Sat, 28 Jan 2023 17:24:25 GMT
    2. keywords: qualification added
    3. owner: set to Needs Funding
    4. version: set to 6
    5. status: changed from new to assigned
    6. milestone: set to 7.1
    Comment 2
    1. Sebastian Huber, Tue, 31 Jan 2023 17:50:55 GMT

    The files are generated, so changing the format would be easy. Is this the desired format?

    #define AHBSTAT_AHBS_HMASTER_SHIFT 3
    `#define AHBSTAT_AHBS_HMASTER_MASK 0x78U`
    `#define AHBSTAT_AHBS_HMASTER_GET( _reg ) \`
        ( ( ( _reg ) & AHBSTAT_AHBS_HMASTER_MASK ) >> AHBSTAT_AHBS_HMASTER_SHIFT )
    `#define AHBSTAT_AHBS_HMASTER( _val ) ( ( _val ) << AHBSTAT_AHBS_HMASTER_SHIFT ) 
    `

    It makes the lines longer and the files larger.

    Comment 3
    1. Daniel Páscoa, Wed, 08 Feb 2023 10:33:48 GMT

    Hello! Yes, we think this format is better, despite being longer and more extensive; this way, the logic is clearer and unambiguous.

    Comment 4
    1. Sebastian Huber, Wed, 15 Mar 2023 07:30:30 GMT

    In ea3eadf/rtems-central:

    interface: Improve register bit field macros Update #4828.
    Comment 5
    1. Sebastian Huber, Fri, 14 Jul 2023 09:52:16 GMT
    2. owner: changed from Needs Funding to Sebastian Huber
    3. status: changed from assigned to accepted
    4. type: changed from defect to enhancement
    5. component: changed from admin to bsps
    6. milestone: changed from 7.1 to 6.1
    Comment 6
    1. Sebastian Huber, Fri, 14 Jul 2023 10:01:06 GMT
    2. status: changed from accepted to closed
    3. resolution: set to fixed

    In 2d71cba0/rtems:

    bsps/grlib: Add generated headers Close #4828.

    4832 - CLANG flagged error

    Link https://devel.rtems.org/ticket/4832
    Id 4832
    Reporter Daniel Páscoa
    Created 27 January 2023 16:13:18
    Modified 28 January 2023 16:43:22
    Owner  
    Type defect
    Component score
    Status closed
    Resolution wontfix
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    __Description:__ SPAMR/CLANG point out to a possible deference to a null pointer. However, this issue has already been checked by the RTEMS team and flagged as false positive (see rtems-6-sparc-gr740-smp-3/doc/paf/spamr/spamr.pdf page 29).
    Yet, the justification sentence ends with "Why CLANG complains about a possible null pointer at this place in code and not everywhere or nowhere remains a mystery" which sounds awkward and lead us to think that a complete analysis as not been done on the error.

    Looking at it now, "_Chain_Initialize_one" is declared as static inline in a .h. That makes it public and so not all calls are controlled.
    Within the function, there is already an assert operation for one of the inputs. Now, one needs to add it also to the other one. Note that this assert is only active when compiler options RTEMS_DEBUG or RTEMS_STATIC_ANALYSIS are used which shall remove the CLANG error and not influence the flight executable.

    (Missions might do an early compilation with RTEMS_DEGUG to spot any problem on this).

    __Additional Notes:__ This ticket was raised as an outcome of the Independent SW Verification and Validation (ISVV) for ESA-promoted RTEMS SMP Qualification Data Packs (​https://rtems-qual.io.esa.int). Original ISVV reference for this issue is RTEMS-SMP-CODE-VER-062.

    __File list:__ cpukit\include\rtems\score\chainimpl.h (line 525)

    Comment 1
    1. Sebastian Huber, Fri, 27 Jan 2023 19:27:51 GMT
    2. status: changed from new to closed
    3. component: changed from admin to score
    4. version: set to 6
    5. milestone: set to 6.1
    6. keywords: qualification added
    7. resolution: set to wontfix

    Functions starting with an underscore are reserved for the RTEMS implementation and not a part of the API.

    Adding an _Assert(x != NULL) to pointer parameters of internal functions in general makes no sense.

    I reviewed the related clang analysis. The problem is that clang doesn't know that _Scheduler_Count is greater than zero.

    Comment 2
    1. Sebastian Huber, Sat, 28 Jan 2023 16:43:22 GMT

    In 45393975/rtems:

    score: Help static analysis in thread init Add an assert to _Thread_Initialize_scheduler_and_wait_nodes() which may help a static analyzer. Use a do/while loop since we have at least one scheduler. Update #4832.

    4833 - grlib/pci/grpci2dma.c Warnings Require Insight to Resolve Properly

    Link https://devel.rtems.org/ticket/4833
    Id 4833
    Reporter Joel Sherrill
    Created 27 January 2023 23:36:08
    Modified 22 June 2023 21:21:20
    Owner Daniel Hellstrom
    Type defect
    Component arch/sparc
    Status assigned
    Resolution  
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    These are warnings which may be new from gcc 12. It will take someone more knowledgeable about this driver to fix it.

    ../../../bsps/shared/grlib/pci/grpci2dma.c: In function 'grpci2dma_channel_list_remove':
    ../../../bsps/shared/grlib/pci/grpci2dma.c:363:25: warning: 'curr_chan' may be used uninitialized [-Wmaybe-uninitialized]
    363 | grpci2dma_channel_bd_set_next(curr_chan, new_first_chan);
    | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ../../../bsps/shared/grlib/pci/grpci2dma.c:351:41: note: 'curr_chan' was declared here
    351 | struct grpci2_bd_chan * curr_chan;
    | ^~~~~~~~~
    ../../../bsps/shared/grlib/pci/grpci2dma.c: In function 'grpci2dma_status':
    ../../../bsps/shared/grlib/pci/grpci2dma.c:1769:16: warning: 'status' may be used uninitialized [-Wmaybe-uninitialized]
    1769 | return status;
    | ^~~~~~
    ../../../bsps/shared/grlib/pci/grpci2dma.c:1756:13: note: 'status' was declared here
    1756 | int status;
    | ^~~~~~
    Comment 1
    1. Joel Sherrill, Thu, 22 Jun 2023 21:21:20 GMT

    Daniel.. can someone from Gaisler look into this? Thanks.


    4834 - close_editor problem of RTEMS4.13/5.1 (cloned)

    Link https://devel.rtems.org/ticket/4834
    Id 4834
    Reporter chenjin_zhong
    Created 30 January 2023 03:43:51
    Modified 31 January 2023 05:17:32
    Owner Chris Johns
    Type defect
    Component shell
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Cloned from #4564:

    Hi, I find when close editor in shell console.some errors will occur. I check and analyse the source code of medit.c. the code fragment is listed as follows.

    #if defined(rtems)

    case ctrl('w'): ed = ed->env->current; close_editor(ed); break;

    #else

    case ctrl('w'): close_editor(ed); ed = ed->env->current; break;

    #endif

    static void close_editor(struct editor *ed) {

    struct env *env = ed->env;
    if (ed->dirty) {

    display_message(ed, "Close %s without saving changes (y/n)? ", ed->filename);
    if (!ask()) {

    ed->refresh = 1;
    return;

    }

    }

    delete_editor(ed);

    ed = env->current;
    if (!ed) {

    ed = create_editor(env);
    new_file(ed, "");

    }
    ed->refresh = 1;

    }

    static void delete_editor(struct editor *ed) {

    if (ed->next == ed) {

    ed->env->current = NULL;

    } else {

    ed->env->current = ed->prev;

    }
    ed->next->prev = ed->prev;
    ed->prev->next = ed->next;
    if (ed->start) free(ed->start);

    clear_undo(ed);

    __ free(ed);__

    }

    as seen above, if the macro __rtems__ is defined. the delete_editor function will free __ed__ pointer. Therefore, after the next loop, the __ed__ is an invalid pointer.I have checked the code of ​https://github.com/ringgaard/sanos/blob/master/src/utils/edit/edit.c. the code is as follows.

    __case ctrl('w'): close_editor(ed); ed = ed->env->current; break;__

    Comment 1
    1. Chris Johns, Tue, 31 Jan 2023 05:17:32 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 3ad2789/rtems:

    libmisc/shell/edit: Fix closing the editor Closes #4834

    4835 - medit malloc problem of RTEMS (cloned)

    Link https://devel.rtems.org/ticket/4835
    Id 4835
    Reporter chenjin_zhong
    Created 30 January 2023 03:46:07
    Modified 31 January 2023 05:17:34
    Owner Chris Johns
    Type defect
    Component shell
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Cloned from #4565:

    I find malloc function is called by move_gap function in medit.c. The returned value does not check. At least 32KB of memory is allocated at each time, maybe more than. The returned value "start" should be check to avoid malloc failure. The move_gap function should return immediatelty when malloc failure. the code frament is listed as follows.

    static void move_gap(struct editor *ed, int pos, int minsize) {

    int gapsize = ed->rest - ed->gap;
    unsigned char *p = text_ptr(ed, pos);
    if (minsize < 0) minsize = 0;
    if (minsize <= gapsize) {

    if (p != ed->rest) {

    if (p < ed->gap) {

    memmove(p + gapsize, p, ed->gap - p);

    } else {

    memmove(ed->gap, ed->rest, p - ed->rest);

    }
    ed->gap = ed->start + pos;
    ed->rest = ed->gap + gapsize;

    }

    } else {

    int newsize;
    unsigned char *start;
    unsigned char *gap;
    unsigned char *rest;
    unsigned char *end;

    if (gapsize + MINEXTEND > minsize) minsize = gapsize + MINEXTEND;
    newsize = (ed->end - ed->start) - gapsize + minsize; __ start = (unsigned char *) malloc(newsize);__ __ TODO check for out of memory
    gap = start + pos;
    rest = gap + minsize;
    end = start + newsize; __

    if (p < ed->gap) {

    memcpy(start, ed->start, pos);
    memcpy(rest, p, ed->gap - p);
    memcpy(end - (ed->end - ed->rest), ed->rest, ed->end - ed->rest);

    } else {

    memcpy(start, ed->start, ed->gap - ed->start);
    memcpy(start + (ed->gap - ed->start), ed->rest, p - ed->rest);
    memcpy(rest, p, ed->end - p);

    }

    free(ed->start);
    ed->start = start;
    ed->gap = gap;
    ed->rest = rest;
    ed->end = end;

    }

    #ifdef DEBUG

    memset(ed->gap, 0, ed->rest - ed->gap);

    #endif

    }

    Comment 1
    1. Chris Johns, Tue, 31 Jan 2023 05:17:34 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In edea93c/rtems:

    libmisc/shell/edit: Return if no memory in move_gap Closes #4835

    4838 - Fix for UART interrupt on aarch64 Versal

    Link https://devel.rtems.org/ticket/4838
    Id 4838
    Reporter Aaron N
    Created 5 February 2023 22:27:50
    Modified 9 February 2023 13:13:15
    Owner Chris Johns
    Type defect
    Component arch/aarch64
    Status closed
    Resolution duplicate
    Version  
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Fixed UART interrupts for Versal. Tested on VCK190.

    Attachments:

    1 Aaron N, Sun, 05 Feb 2023 22:28:08 GMT
      attach: set to 0001-aarch64-versal-Fix-uart-interrupt-issues.patch
    Comment 1
    1. Aaron N, Sun, 05 Feb 2023 23:56:20 GMT
    2. component: changed from admin to arch/aarch64
    Comment 2
    1. Joel Sherrill, Mon, 06 Feb 2023 00:30:59 GMT
    2. owner: set to Chris Johns
    3. status: changed from new to assigned
    4. milestone: set to 6.1

    Assigning to Chris since this is his BSP

    Comment 3
    1. Kinsey Moore, Wed, 08 Feb 2023 20:35:42 GMT

    Is this a duplicate of #4771?

    Comment 4
    1. Chris Johns, Thu, 09 Feb 2023 02:24:00 GMT

    Replying to Kinsey Moore:

    Is this a duplicate of #4771?

    Yes I think it is. Aaron will know so lets see what he says?

    Comment 5
    1. Aaron N, Thu, 09 Feb 2023 10:16:02 GMT

    Yeah it is a duplicate.

    Comment 6
    1. Kinsey Moore, Thu, 09 Feb 2023 13:13:15 GMT
    2. status: changed from assigned to closed
    3. resolution: set to duplicate

    4842 - SPARC/grlib - Registers definitions wrongly defined when there are reserved bits

    Link https://devel.rtems.org/ticket/4842
    Id 4842
    Reporter Daniel Páscoa
    Created 9 February 2023 14:43:19
    Modified 14 July 2023 10:01:28
    Owner Sebastian Huber
    Type defect
    Component arch/sparc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    With respect to RTEMS 6 (ESA-promoted RTEMS SMP Qualification Data Pack release 3), the following issues are observed:

    __File____Lines____Discrepancy__ bsps\include\grlib\ftmctrl-regs.h84; 86; 88; 91; 96;98; 101; 106; 109; 115; 120; 123According to table 365 of page 294 of the GR740 User Manual (v.2.50), the register addresses are incorrectly defined. bsps\include\grlib\grgpio-regs.h225According to table 406 of page 319 of the GR740 User Manual (v.2,50), the register address is incorrect; bsps\include\grlib\dsu4-regs.h435According to table 538 of page 403 of the GR740 User Manual (v.2.5), the register address is incorrect according to the table but it is correct according to the table description. bsps\include\grlib\gr1553b-regs.h609According to table 327 of page 259 of the GR740 User Manual (v.2.50), the register address is incorrect according to the table but it is correct according to the table description. bsps\include\grlib\spwpnp-regs.h151According to table 213 of page 200 of the GR740 User Manual (v.2.5), the register address is incorrect according to the table but it is correct according to the table description. bsps\include\grlib\spwrmap-regs.h575; 591; 715; 787; 809According to tables 191, 192, 199, 201, 202, respectively (to each identified line) starting on page 192 of the GR740 User Manual (v.2.5), the register addresses are incorrect according to the table but are correct according to the table description.

    It seems that the generation of these registers definitions leads to incorrect bit definitions whenever there are reserved bits specified in the Gaisler User Manual.
    Can you please double-check these cases?

    __Additional Notes:__ This ticket was raised as an outcome of the Independent SW Verification and Validation (ISVV) for ESA-promoted RTEMS SMP Qualification Data Packs (​https://rtems-qual.io.esa.int). The original ISVV reference for this issue is RTEMS-SMP-CODE-VER-014.

    Comment 1
    1. Sebastian Huber, Tue, 14 Feb 2023 16:27:14 GMT

    The DSU4[ITCB0] ITPOINTER field seems to be correct in the description. See also the GRIP manual.

    Comment 2
    1. Sebastian Huber, Tue, 14 Feb 2023 16:27:36 GMT
    2. component: changed from admin to arch/sparc
    3. milestone: set to 6.1
    Comment 3
    1. Sebastian Huber, Tue, 14 Feb 2023 17:50:59 GMT

    The RTELM - GR1553B RT Event Log mask register should be clarified by Gaisler.

    Comment 4
    1. Sebastian Huber, Tue, 14 Feb 2023 19:16:08 GMT

    With respect to the

    Space Wire Plug-and-Play - Active Links Interrupt port mask (IPMASK) Port interrupt pending (PIP) Link running status (LRUNSTAT)

    the register block definitions are actually from the GRIP manual. In the latest version, up to 31 links are supported.

    Comment 5
    1. Sebastian Huber, Tue, 14 Feb 2023 19:28:41 GMT

    To be check by Gaisler:

    Space Wire Plug-and-Play - Device Vendor and Product ID Space Wire Plug-and-Play - Unit Vendor and Product ID
    Comment 6
    1. Sebastian Huber, Thu, 16 Feb 2023 08:06:11 GMT

    In a7c2836/rtems-central:

    spec: Fix FTMCTRL - MCFG1 bit fields There was an off by one error in all bit fields. Add the R flag. Update #4842.
    Comment 7
    1. Sebastian Huber, Thu, 16 Feb 2023 08:06:12 GMT

    In 239d254/rtems-central:

    spec: Fix GRGPIO - IRQMAP bit fields Update #4842.
    Comment 8
    1. Sebastian Huber, Thu, 16 Feb 2023 08:06:13 GMT

    In dd6f100/rtems-central:

    spec: Fix SpaceWire? RMAP - Product ID Update #4842.
    Comment 9
    1. Sebastian Huber, Thu, 16 Feb 2023 08:06:14 GMT

    In 4fdeb56/rtems-central:

    spec: Expand SpaceWire? port bit fields Use the maximum width supported by the SpaceWire? standard even if this exceeds the configuration limits of a particular IP instance. Update #4842.
    Comment 10
    1. Joel Sherrill, Thu, 22 Jun 2023 21:05:31 GMT
    2. owner: set to Sebastian Huber
    3. status: changed from new to assigned
    4. summary: changed from Registers definitions wrongly defined when there are reserved bits to SPARC/grlib - Registers definitions wrongly defined when there are reserved bits
    Comment 11
    1. Joel Sherrill, Thu, 22 Jun 2023 22:30:42 GMT

    This will be closed before 6. Please clone for 7 if continued.

    Comment 12
    1. Sebastian Huber, Fri, 14 Jul 2023 09:58:53 GMT

    In d4c1301/rtems-central:

    spec: Add GRCAN - CanTxIRQ Update #4842.
    Comment 13
    1. Sebastian Huber, Fri, 14 Jul 2023 09:58:54 GMT

    In b46ff7e/rtems-central:

    spec: Expand GRCLKGATE register bit fields Use the maximum width supported by the GRLIB even if this exceeds the configuration limits of a particular IP instance. Update #4842.
    Comment 14
    1. Sebastian Huber, Fri, 14 Jul 2023 09:58:55 GMT

    In 89b89fe/rtems-central:

    spec: Move GR740-specific register blocks Update #4842.
    Comment 15
    1. Sebastian Huber, Fri, 14 Jul 2023 09:58:57 GMT

    In d6c4baf/rtems-central:

    spec: Use GRLIB definition of GRSPW2 Update #4842.
    Comment 16
    1. Sebastian Huber, Fri, 14 Jul 2023 09:58:58 GMT

    In d077161/rtems-central:

    spec: Remove obsolete register block This register block was an incomplete duplicate of spec:/dev/grlib/if/grspw2. Update #4842.
    Comment 17
    1. Sebastian Huber, Fri, 14 Jul 2023 09:58:59 GMT

    In 5771560/rtems-central:

    spec: Use GRLIB definition of GRSPWROUTER Rename item to match with GRLIB naming. Update #4842.
    Comment 18
    1. Sebastian Huber, Fri, 14 Jul 2023 10:01:08 GMT

    In e56cecf5/rtems:

    bsps/grlib: Fix FTMCTRL - MCFG1 bit fields There was an off by one error in all bit fields. Add the R flag. Update #4842.
    Comment 19
    1. Sebastian Huber, Fri, 14 Jul 2023 10:01:10 GMT

    In b7eb7d1f/rtems:

    bsps/grlib: Fix GRGPIO - IRQMAP bit fields Update #4842.
    Comment 20
    1. Sebastian Huber, Fri, 14 Jul 2023 10:01:12 GMT

    In 7575890/rtems:

    bsps/grlib: Fix SpaceWire? RMAP - Product ID Update #4842.
    Comment 21
    1. Sebastian Huber, Fri, 14 Jul 2023 10:01:14 GMT

    In fe232596/rtems:

    bsps/grlib: Expand SpaceWire? port bit fields Use the maximum width supported by the SpaceWire? standard even if this exceeds the configuration limits of a particular IP instance. Update #4842.
    Comment 22
    1. Sebastian Huber, Fri, 14 Jul 2023 10:01:16 GMT

    In 845422b/rtems:

    bsps/grlib: Fix SPWTDP register name Update #4842.
    Comment 23
    1. Sebastian Huber, Fri, 14 Jul 2023 10:01:18 GMT

    In e6427f1e/rtems:

    bsps/grlib: Add GRCAN - CanTxIRQ Update #4842.
    Comment 24
    1. Sebastian Huber, Fri, 14 Jul 2023 10:01:20 GMT

    In 584be21/rtems:

    bsps/grlib: Expand GRCLKGATE register bit fields Use the maximum width supported by the GRLIB even if this exceeds the configuration limits of a particular IP instance. Update #4842.
    Comment 25
    1. Sebastian Huber, Fri, 14 Jul 2023 10:01:22 GMT

    In cba956b/rtems:

    bsps/grlib: Move GR740-specific registers Update #4842.
    Comment 26
    1. Sebastian Huber, Fri, 14 Jul 2023 10:01:24 GMT

    In 181d989/rtems:

    bsps/grlib: Use GRLIB definition of GRSPW2 Update #4842.
    Comment 27
    1. Sebastian Huber, Fri, 14 Jul 2023 10:01:26 GMT

    In 06f63154/rtems:

    bsps/grlib: Remove obsolete header file This header file was an incomplete duplicate of . Update #4842.
    Comment 28
    1. Sebastian Huber, Fri, 14 Jul 2023 10:01:28 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 49ad450/rtems:

    bsps/grlib: Use GRLIB definition of GRSPWROUTER Rename parts to match with GRLIB naming. Close #4842.

    4843 - Output value not assigned

    Link https://devel.rtems.org/ticket/4843
    Id 4843
    Reporter Daniel Páscoa
    Created 9 February 2023 14:44:48
    Modified 10 February 2023 14:59:09
    Owner Sebastian Huber <sebastian.huber@…>
    Type defect
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    The Software Document Design (starting on page 181) specifies that there should be two outputs, but the RTEMS_UNSATISFIED is not returned by the function. The only failure detected may be due to the assert function, but the rtems_status_code isn't the returned value. Ensure all output values specified in the SDD are returned.

    __Additional Notes:__ From code analysis and from objdumping the librtemsbsp.a library it can be observed that the asserts() currently do nothing: they are translated to #define _Assert( _e ) ( ( void ) 0 ) unless RTEMS_DEBUG or RTEMS_STATIC_ANALYSIS are defined, which in a release environment target are not defined. Since in the documentation it says that it can return RTEMS_UNSATISFIED or RTEMS_SUCCESSFUL either the documentation is wrong, or the code is not correctly implemented.

    This ticket was raised as an outcome of the Independent SW Verification and Validation (ISVV) for ESA-promoted RTEMS SMP Qualification Data Packs (​https://rtems-qual.io.esa.int). The original ISVV reference for this issue is RTEMS-SMP-CODE-VER-032.

    __File list:__ bsps\sparc\leon3\start\eirq.c

    bsp_interrupt_is_pending (line 106)
    bsp_interrupt_raise (line 127)
    bsp_interrupt_clear (line 185)
    bsp_interrupt_vector_enable (line 270)
    bsp_interrupt_vector_disable (line 299)

    Comment 1
    1. Sebastian Huber, Fri, 10 Feb 2023 14:58:12 GMT
    2. owner: set to Sebastian Huber <sebastian.huber@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 519e288/rtems:

    bsps/irq: Clarify interrupt vector operations Clarify that the presence of error conditions is implementation-defined. Close #4843.
    Comment 2
    1. Sebastian Huber, Fri, 10 Feb 2023 14:59:09 GMT
    2. component: changed from admin to bsps
    3. milestone: set to 6.1

    4844 - Unchecked boundaries

    Link https://devel.rtems.org/ticket/4844
    Id 4844
    Reporter Daniel Páscoa
    Created 9 February 2023 14:52:06
    Modified 28 July 2023 14:51:27
    Owner Sebastian Huber
    Type enhancement
    Component score
    Status assigned
    Resolution  
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    Consider checking for overflow situations and taking necessary actions in the three files designated below.

    __Memory copy function accesses out-of-bound array element in file cpukit\include\rtems\score\coremsgimpl.h (line 469)__

    Additional Information:
    The pointer to the structure that contains the buffer and the size is tested against NULL, but this finding refers to the fact that the argument size of is not validated against the maximum size of the destination and/or source buffer.

    This function can be traced up to rtems_message_queue_send and rtems_message_queue_receive functions where the buffer, its size and maximum size for queue messages are provided by the user. In the RTMES library at the moment of sending a message in the _CORE_message_queue_Submit function it is validated if the given size of the buffer is not above the user previously provided/configured maximum size, and returns an error if so. But it is up to the user to supply correct values. If the user tries to pass a buffer with 16 bytes, but indicates 32 bytes in the size there is no possible library validation that will detect an overflow situation. These cases must be detected by user code inspection/review.

    __Out of bound memory access (access exceeds upper limit of memory block) in file cpukit\include\rtems\score\mrspimpl.h (lines 120, 312, 315)__

    Additional Information:
    There is a Global variable const size_t _Scheduler_Count = _CONFIGURE_SCHEDULER_COUNT; corresponding to the value configured statically depending of RTEMS_ARRAY_SIZE( _Scheduler_Table ), which is the number of shedulers.
    Relevant source code for lines 312 and 315, which are OK:

    scheduler_count = _Scheduler_Count;
    for ( i = 0 ; i < scheduler_count ; ++i ) {
    (...)
    scheduler_of_index = &_Scheduler_Table[ i ];
    (...)
    mrsp->ceiling_priorities[ i ] =

    Relevant source code for lines 120 and others, do not seem OK, because is not clear that the scheduler is always valid:

    scheduler_index = _Scheduler_Get_index( scheduler ); // Note: translates to "return (uint32_t) (scheduler - &_Scheduler_Table[ 0 ]);"
    return mrsp->ceiling_priorities[ scheduler_index ];


    __Returned pointer value points outside the original object (potential buffer overflow) for file cpukit\score\src\threadqops.c (line 294)__

    Consider checking for overflow situations and acting accordingly.

    Additional Information:
    The line 294 (the referred line is for version 3 of the QDP), from function _Thread_queue_Priority_queue_by_index:

     return &heads->Priority[ scheduler_index ]; 

    The priority field is declared as Thread_queue_Priority_queue Priority[ RTEMS_ZERO_LENGTH_ARRAY ]; which is a zero-length array...

    Then in threads.h file a Struct is defined as

     struct Thread_queue_Configured_heads {
    Thread_queue_Heads Heads;
    Thread_queue_Priority_queue Priority[ _CONFIGURE_SCHEDULER_COUNT ];
    };

    Which permits to access the zero-length array beyond the initial configuration of zero length (C99 permits it):
    C99 6.7.2.1, §16: As a special case, the last element of a structure with more than one named member may have an incomplete array type; this is called a flexible array member.

    But still, scheduler_index value is obtained by calling several other functions which extract information from a thread object in order to obtain and use the scheduler_index value in the _Thread_queue_Priority_queue_by_index function. It is not clear that that value is below _CONFIGURE_SCHEDULER_COUNT value.



    __Additional Notes:__ This ticket was raised as an outcome of the Independent SW Verification and Validation (ISVV) for ESA-promoted RTEMS SMP Qualification Data Packs (​https://rtems-qual.io.esa.int). The original ISVV reference for this issue is RTEMS-SMP-CODE-VER-036.

    Comment 1
    1. Sebastian Huber, Fri, 10 Feb 2023 07:16:22 GMT

    These should have been three tickets and not just one.

    The message send directives use the size as an output only parameter. If you change this to an input and output parameter, then you may break existing applications which do not set the size parameter to a proper value. The Semaphore Control Block size is defined by the application configuration:
    #if CONFIGURE_MAXIMUM_SEMAPHORES > 0
      SEMAPHORE_INFORMATION_DEFINE(
        CONFIGURE_MAXIMUM_SEMAPHORES,
        _CONFIGURE_SCHEDULER_COUNT
      );
    `#endif 
    `
    There are lots of other values in the Thread Control Block which have to be correct. Why should we add a check here specifically? We could add an _Assert().
    Comment 2
    1. Sebastian Huber, Thu, 23 Mar 2023 16:25:34 GMT
    2. owner: set to Sebastian Huber
    3. status: changed from new to assigned
    4. type: changed from defect to enhancement
    5. component: changed from admin to score
    6. milestone: set to 6.1
    Comment 3
    1. Daniel Páscoa, Fri, 16 Jun 2023 14:28:50 GMT

    1 >>> We agree that changing the function prototype for rtems_message_queue_send, rtems_message_queue_receive, _CORE_message_queue_Insert_message and other functions in-between could break existing applications and may not be acceptable to do so. So, one suggests dismissing this point of the ticket.

    2 >>> This point can be dismissed as it is now confirmed that necessary protections are already in place on the API entry point for _MRSP_Get_priority and _MRSP_Get_priority, which is the rtems_semaphore_set_priority (one can refer to the protections implemented by this function within code and/or ICD).

    3 >>> Yes, appending the _Assert( scheduler_index < _Scheduler_Count); just before the concerned line will solve it. Thanks

    Comment 4
    1. Joel Sherrill, Thu, 22 Jun 2023 21:11:21 GMT

    If there is an _Assert() implemented somewhere, please merge it and close if the rest of these are non-issues.

    Comment 5
    1. Joel Sherrill, Thu, 22 Jun 2023 22:31:03 GMT

    This will be closed before 6. Please clone for 7 if continued.

    Comment 6
    1. Sebastian Huber, Fri, 28 Jul 2023 14:50:34 GMT

    In 6293fc4f/rtems:

    score: Assert scheduler index validity Update #4844.
    Comment 7
    1. Sebastian Huber, Fri, 28 Jul 2023 14:51:27 GMT

    Daniel, please review the changes and close the ticket if everything is all right.


    4845 - Global variable declared/defined in the wrong file

    Link https://devel.rtems.org/ticket/4845
    Id 4845
    Reporter Daniel Páscoa
    Created 9 February 2023 14:53:20
    Modified 10 February 2023 15:01:47
    Owner Sebastian Huber <sebastian.huber@…>
    Type defect
    Component arch/sparc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    This source file contains both declaration and definition of the variable. It is recommended to declare global variables in a header file and define them in separate source files. Please consider this best practice and move the declarations to a header file and corresponding definitions to respective source files.

    __Additional Notes:__ LEON3_Boot_Cpu is a global variable and only used by start.S file. And as such cannot be declared as static. Because is used in an assembly file there was no need to declare it as external. But the global variable is in fact declared and defined in same file.

    This ticket was raised as an outcome of the Independent SW Verification and Validation (ISVV) for ESA-promoted RTEMS SMP Qualification Data Packs (​https://rtems-qual.io.esa.int). Original ISVV reference for this issue is RTEMS-SMP-CODE-VER-043.

    __File list:__ bsps\sparc\leon3\start\bspstart.c (line 54)

    Comment 1
    1. Sebastian Huber, Fri, 10 Feb 2023 15:01:13 GMT
    2. owner: set to Sebastian Huber <sebastian.huber@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In b993111/rtems:

    bsp/leon3: Move SMP data to start.S The LEON3_Boot_Cpu global object is only used by start.S. Move the definition of this object to start.S and use a local symbol .Lbootcpuindex for it. Use a compare-and-swap instruction to assign the boot CPU. This allows a concurrent initialization. Close #4845.
    Comment 2
    1. Sebastian Huber, Fri, 10 Feb 2023 15:01:47 GMT
    2. component: changed from admin to arch/sparc
    3. milestone: set to 6.1

    4847 - Goto statements

    Link https://devel.rtems.org/ticket/4847
    Id 4847
    Reporter Daniel Páscoa
    Created 9 February 2023 14:56:10
    Modified 14 February 2023 00:58:54
    Owner Sebastian Huber <sebastian.huber@…>
    Type defect
    Component score
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    The use of “goto” statements is strongly discouraged as it results in convoluted program logic, making it challenging to analyse and verify program correctness, particularly in loops. Instead, the “break” and “continue” statements provide alternatives to “goto” and should be utilized to simplify the code.

    __Additional Notes:__ This ticket was raised as an outcome of the Independent SW Verification and Validation (ISVV) for ESA-promoted RTEMS SMP Qualification Data Packs (​https://rtems-qual.io.esa.int). Original ISVV reference for this issue is RTEMS-SMP-CODE-VER-074.

    __File list:__ cpukit/score/src/threaddispatch.c (line 290)

    Comment 1
    1. Joel Sherrill, Thu, 09 Feb 2023 15:05:11 GMT

    Although cpukit/score/src/threaddispatch.c (line 290) is not right per the current source, on first examination, I think this goto can be a break. Leaving the label post_switch is probably good for understanding purposes. And adding a comment at that point would probably be a good idea also.

    FWIW this goto was not present in versions <= 4.10 but shows up in 4.11 and I think that it could have been a break back then also. The code looks similar.

    Comment 2
    1. Sebastian Huber, Thu, 09 Feb 2023 18:44:59 GMT
    2. component: changed from admin to score

    Yes, it can be a break. I am not sure if the break improves the code clarity.

    Comment 3
    1. Joel Sherrill, Thu, 09 Feb 2023 18:59:30 GMT

    Looking at the older versions, there was not a loop around the dispatching activities. This was added because with SMP, the other cores could request a dispatch on a core while one was in process.

    I'm fine with changing it to a break. I just think anytime you look at code, you should consider if more comments are necessary. I think the post_switch label is acting as a minimal comment and the scenarios for looping more than once or exercising the break could be documented in the comments.

    Comment 4
    1. Sebastian Huber, Fri, 10 Feb 2023 14:58:10 GMT
    2. owner: set to Sebastian Huber <sebastian.huber@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 22d845d5/rtems:

    score: Replace goto with a break The goto label was directly after the loop, so we can replace the goto with a break. Close #4847.
    Comment 5
    1. Sebastian Huber, Fri, 10 Feb 2023 14:58:45 GMT
    2. milestone: set to 6.1
    Comment 6
    1. Chris Johns, Tue, 14 Feb 2023 00:58:54 GMT

    Has this ticket and review taken into account the discussion here?

    ​https://lists.rtems.org/pipermail/devel/2014-May/006723.html

    I have not seen a similar discussion?


    4850 - LEON3 - Variable not initialized in any file / missing #ifdefs

    Link https://devel.rtems.org/ticket/4850
    Id 4850
    Reporter Daniel Páscoa
    Created 13 February 2023 12:59:06
    Modified 28 July 2023 05:27:56
    Owner Sebastian Huber
    Type defect
    Component arch/sparc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    Within __bsps\sparc\leon3\include\bsp\leon3.h (lines 207, 309)__

    The *LEON3_IrqCtrl_Adev and *LEON3_Timer_Adev are declared but not initialized in any file of the QDP.:

    __Please consider having these declared within the “else” blocks of the “#if defined(LEON3_IRQAMP_BASE)” where *LEON3_IrqCtrl_Regs and *LEON3_Timer_Regs are declared.__

    __Additional Notes:__ This ticket was raised as an outcome of the Independent SW Verification and Validation (ISVV) for ESA-promoted RTEMS SMP Qualification Data Packs (​https://rtems-qual.io.esa.int). Original ISVV reference for this issue is RTEMS-SMP-CODE-VER-041.

    Comment 1
    1. Sebastian Huber, Thu, 23 Mar 2023 16:22:58 GMT
    2. owner: set to Sebastian Huber
    3. status: changed from new to assigned
    4. component: changed from admin to arch/sparc
    5. milestone: set to 6.1
    Comment 2
    1. Joel Sherrill, Thu, 22 Jun 2023 21:11:55 GMT
    2. summary: changed from Variable not initialized in any file / missing #ifdefs to LEON3 - Variable not initialized in any file / missing #ifdefs
    Comment 3
    1. Sebastian Huber, Fri, 28 Jul 2023 05:27:56 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In c173f05/rtems:

    bsp/leon3: Make declarations conditional The LEON3_IrqCtrl_Adev object is only defined if LEON3_IRQAMP_BASE is not defined. The LEON3_Timer_Adev object is only defined if LEON3_GPTIMER_BASE is not defined. Close #4850.

    4855 - Input validity unchecked

    Link https://devel.rtems.org/ticket/4855
    Id 4855
    Reporter Daniel Páscoa
    Created 13 February 2023 14:21:44
    Modified 23 March 2023 16:21:24
    Owner  
    Type defect
    Component unspecified
    Status closed
    Resolution wontfix
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    In a generic way, function inputs shall be checked for validity before being used.

    When successive calls are done to different functions, one might argue that inputs are to be checked only once and then considered valid in other calls. Yet this has some pitfalls like:

    • function inputs are not checked in a consistent way throughout all functions:
      • Each one has to constantly double-check in comments and/or callers if inputs are instead checked elsewhere in the call tree.
      • Even if for the moment no call tree leads to invalid input issues, future maintenance operations may add new calls without validity checks.

    One can assume some exceptions can occur (e.g., when there is a considerable performance impact), but as long such cases are justified within the function’s comments one can easily sort out those exceptions.

    Bellow, there is a list of cases where input validity could be added:

    • bsps\include\bsp\irq-generic.h: bsp_interrupt_entry_load_first function is called by bsp_interrupt_handler_dispatch_unchecked where the argument was already checked.
    • bsps\include\bsp\irq-generic.h: bsp_interrupt_handler_index function is called by bsp_interrupt_entry_load_first, bsp_interrupt_entry_remove, bsp_interrupt_spurious, bsp_interrupt_entry_find, bsp_interrupt_entry_install, rtems_interrupt_handler_iterate functions. It was possible to trace in all of them a validation of the argument used in bsp_interrupt_handler_index before being called.
    • bsps\shared\irq\irq-default-handler.c: bsp_interrupt_handler_default is only called by bsp_interrupt_spurious and bsp_interrupt_handler_dispatch_unchecked functions and It was possible to trace in all ot them a validation of the argument used in bsp_interrupt_handler_index before being called.
    • bsps\shared\irq\irq-entry-remove.c: the *entry argument of bsp_interrupt_entry_do_remove is actually tested and validated inside of that function. That function is also the only place where bsp_interrupt_entry_remove is called. The arguments vector, *entry and __previous_next are all validated by a call to the bsp_interrupt_entry_find and subsequent code that is run prior to call bsp_interrupt_entry_remove function. __
    • bsps\shared\irq\irq-generic.c: the bsp_interrupt_spurious function argument vector is tested before being called in bsp_interrupt_handler_dispatch_unchecked function.
    • bsps\shared\irq\irq-generic.c: bsp_interrupt_entry_install_first function is called once by bsp_interrupt_entry_install function. The validation of the argument vector can be traceback to rtems_interrupt_entry_install function. The argument *entry is also passed by bsp_interrupt_entry_install function and explained in the previous paragraph.
    • bsps\shared\dev\clock\clockimpl.h: in both functions (void Clock_isr and rtems_isr Clock_isr) declaration/definition (they are the same function, just declared differently depending of #if def's), both arguments are not used. Due to the evaluation of the internal #if, this functions are reduced to Clock_driver_ticks += 1; _Timecounter_Tick();
    • bsps\sparc\leon3\start\bspsmp.c: the bsp_start_on_secondary_processor function calls _SMP_Start_multitasking_on_secondary_processor with the same argument as it was called. This argument in that sub-function is used to get a value cpu_index_self, which itself is validated and checked if it is a proper value or not. Indirect validation.
    • bsps\sparc\leon3\start\bspsmp.c: the _CPU_SMP_Send_interrupt function is called in 3 different places: in one place (_SMP_Request_shutdown function in smp.c file) it is inside a for loop that is limited by _SMP_Processor_configured_maximum. This is OK. For the other 2 places ( from _SMP_Send_message function in smp.c file and _Thread_Dispatch_request function in threaddispatch.h file it is not clear that the argument of _CPU_SMP_Send_interrupt cannot be limited (when it should be limited at least to _SMP_Processor_configured_maximum).
    • bsps\sparc\leon3\start\eirq.c: bsp_interrupt_get_attributes function actually tests vector argument. But also there is only one call to this function which is from rtems_interrupt_get_attributes function in irq-enable-disable.c file where both arguments are tested prior call to bsp_interrupt_get_attributes function.
    • bsps\sparc\shared\start\bspgetworkarea.c: _SPARC_Memory_initialize function receives its *end_of_usable_ram argument from the main function in start.S file. No validation is performed there. The argument is used to initialize a struct, which later on may be used for dynamically allocated memory. The referred pointer argument is never dereferenced, it is used as the end limit of the allocated memory position. It may make sense to test in this initialisation function if it is value is above &_Memory_Areas[ 0 ].
    • cpukit\libc\string\memset.c: memset function is part of space qualification profile context, and the void *<[dst]> pointer is not tested against NULL.
    • cpukit\libc\string\memcpy.c: memcpy function is part of space qualification profile context, and the void *dst and void *src pointers is not tested against NULL.
    • cpukit\posix\src\clocknanosleep.c: in function clock_nanosleep the *rmtp argument can be NULL if the user does not want to get the remain time, so there is no need to validated it. For the *rqtp (request) argument this should be validated if different than NULL and the tv_nsec field must be validated if between 0 and 999999999.
    • cpukit\rtems\src\clocktodtoseconds.c: the _TOD_To_seconds function is called by _Timer_Fire_when function from timercreate.c file, by rtems_task_wake_when function from taskwakewhen.c file and by rtems_clock_set function from clockset.c file. In all three cases the argument with which the _TOD_To_seconds function is called is validated with a call to _TOD_Validate function prior to the call.
    • cpukit\rtems\src\eventsend.c: the _Event_Seize function is called by two similar functions the rtems_event_receive from eventreceive.c file and rtems_event_system_receive from systemeventreceive.c file. The *event_out argument is validated prior the call; all other arguments are declared and defined in the caller functions prior to call the Event_Seize function.

    __Additional Notes:__ This ticket was raised as an outcome of the Independent SW Verification and Validation (ISVV) for ESA-promoted RTEMS SMP Qualification Data Packs (​https://rtems-qual.io.esa.int). The original ISVV reference for this issue is RTEMS-SMP-VAL-029.

    Comment 1
    1. Daniel Páscoa, Mon, 13 Feb 2023 14:25:16 GMT

    __Correction:__ The original ISVV reference for this issue is __RTEMS-SMP-VER-029__.

    Comment 2
    1. Sebastian Huber, Thu, 23 Mar 2023 16:21:24 GMT
    2. status: changed from new to closed
    3. resolution: set to wontfix
    4. component: changed from admin to unspecified
    5. milestone: set to 6.1

    For internal functions it is responsibility of the caller to ensure that arguments are valid.

    The C library functions memset() and memcpy() are not required to check for NULL.

    clocknanosleep() checks the mentioned error conditions. There are also test cases for them.

    The end_of_usable_ram is provided by the boot loader. How can the BSP validate this?


    4857 - RSB Recipe Missing %hash Does Not Fail

    Link https://devel.rtems.org/ticket/4857
    Id 4857
    Reporter Joel Sherrill
    Created 16 February 2023 22:34:10
    Modified 30 June 2023 00:11:25
    Owner Chris Johns
    Type defect
    Component tool/rsb
    Status closed
    Resolution duplicate
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    If a recipe is missing a %hash command, it is reported as a warning. It would be preferable to have an error.

    warning: gdb-readline8.2.patch: no hash found 

    From #4760 and copied as part of merging these tickets:

    The time has come to raise a fatal error if a hash is missing rather than a warning. This will stop missing checksums being present when releasing.
    It also makes it simpler to test releases for no missing checksums.

    Comment 1
    1. Joel Sherrill, Thu, 22 Jun 2023 21:15:04 GMT
    2. description: modified (diff)
    Comment 2
    1. Joel Sherrill, Thu, 22 Jun 2023 22:32:07 GMT

    Please check and then confirm before closing

    Comment 3
    1. Chris Johns, Fri, 30 Jun 2023 00:11:15 GMT

    This is being closed because #4760 makes any missing %hash cause a fatal error.

    Comment 4
    1. Chris Johns, Fri, 30 Jun 2023 00:11:25 GMT
    2. status: changed from assigned to closed
    3. resolution: set to duplicate

    4858 - GDB fails to build on any host with readline 8.2 or newer

    Link https://devel.rtems.org/ticket/4858
    Id 4858
    Reporter Joel Sherrill
    Created 16 February 2023 22:36:08
    Modified 17 February 2023 20:12:44
    Owner Joel Sherrill
    Type defect
    Component tool/gdb
    Status closed
    Resolution fixed
    Version  
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    This showed up with gdb 11.2 building on Cygwin. The fix is already in the gdb git repository on the master but not gdb 12.x. This ticket tracks adding that to the RSB.

    Comment 1
    1. Joel Sherrill, Fri, 17 Feb 2023 20:12:44 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In e1d5d93/rtems-source-builder:

    rtems-gdb-11.2.cfg: Add patch for hosts with readline 8.2 Get the fix from gdb git repo to fix build issue which showed up on Cygwin but was cross platform. Closes #4858.

    4859 - Update gdb to 12.1

    Link https://devel.rtems.org/ticket/4859
    Id 4859
    Reporter Joel Sherrill
    Created 16 February 2023 22:39:01
    Modified 17 February 2023 20:12:45
    Owner Joel Sherrill <joel@…>
    Type defect
    Component tool/gdb
    Status closed
    Resolution fixed
    Version  
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    While investigating the build issue tracked as #4858, I tried bumping the gdb to 12.1 hoping it included the fix. But it did not. This bumps the default gdb to 12.1 with the same patch.

    Comment 1
    1. Joel Sherrill, Fri, 17 Feb 2023 20:12:45 GMT
    2. owner: set to Joel Sherrill <joel@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In e3f4060/rtems-source-builder:

    Update gdb to 12.1 including patch for hosts with readline 8.2 Issue for hosts with readline 8.2 also exists with gdb 12.1. Closes #4859.

    4860 - Waf Failure on CentOS 8 Stream

    Link https://devel.rtems.org/ticket/4860
    Id 4860
    Reporter Joel Sherrill
    Created 17 February 2023 15:37:03
    Modified 20 February 2023 22:50:33
    Owner  
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version  
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords waf
    Cc Jeff Mayes
    Blocking  
    Blocked by  

    Description

    Jeff Mayes reported (​https://lists.rtems.org/pipermail/devel/2023-February/074424.html) that builds on the CentOS 8 Stream test host are failing with this:

    Using rtems for RTEMS source
    Testing: sparc erc32-sis
    BSP to Build: erc32
    Traceback (most recent call last):
    File "./waf", line 167, in
    from waflib import Scripting
    File "/home/tester/rtems-cron-6/rtems/.waf-2.0.20-36f5354d605298f6a89c09e0c7ef6c1d/waflib/Scripting.py", line 7, in
    from waflib import Utils,Configure,Logs,Options,ConfigSet,Context,Errors,Build,Node
    File "/home/tester/rtems-cron-6/rtems/.waf-2.0.20-36f5354d605298f6a89c09e0c7ef6c1d/waflib/Configure.py", line 6, in
    from waflib import ConfigSet,Utils,Options,Logs,Context,Build,Errors
    File "/home/tester/rtems-cron-6/rtems/.waf-2.0.20-36f5354d605298f6a89c09e0c7ef6c1d/waflib/Options.py", line 6, in
    from waflib import Logs,Utils,Context,Errors
    File "/home/tester/rtems-cron-6/rtems/.waf-2.0.20-36f5354d605298f6a89c09e0c7ef6c1d/waflib/Context.py", line 183
    raise Errors.WafError('Execution failure: %s'%str(e),ex=e),None,sys.exc_info()[2],None,sys.exc_info()[2]
    ^
    SyntaxError: invalid syntax
    FAILED: Unable to waf distclean rtems

    In follow up emails, Chris Johns suggested updating waf which Jeff reported fixed the issue.

    The action for this ticket is to update waf in the following repositories:

    • rtems
    • rtems-examples
    • rtems-docs
    • rtems-libbsd
    • rtems-lwip
    • rtems-net-legacy (OK -- already on latest waf)
    • rtems-tools
    Comment 1
    1. Joel Sherrill, Fri, 17 Feb 2023 20:32:35 GMT
    2. description: modified (diff)
    Comment 2
    1. Joel Sherrill, Mon, 20 Feb 2023 15:45:34 GMT

    In 9b4aed1/rtems:

    waf: Update to waf 2.0.25 Updates #4860
    Comment 3
    1. Joel Sherrill, Mon, 20 Feb 2023 15:47:20 GMT

    In b0fc22c/rtems-libbsd:

    waf: Update to waf 2.0.25 Updates #4860
    Comment 4
    1. Joel Sherrill, Mon, 20 Feb 2023 15:47:50 GMT

    In 1aa4cb8/rtems-libbsd:

    waf: Update to waf 2.0.25 Updates #4860
    Comment 5
    1. Joel Sherrill, Mon, 20 Feb 2023 15:49:11 GMT

    In 0b9bb40/rtems-tools:

    waf: Update to waf 2..0.25 Updates #4860
    Comment 6
    1. Joel Sherrill, Mon, 20 Feb 2023 17:43:45 GMT

    In 2f7ebf7/rtems-docs:

    waf: Update to waf 2.0.25 Updates #4860
    Comment 7
    1. Joel Sherrill, Mon, 20 Feb 2023 22:50:33 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed

    All repos should be updated to the latest waf. Closing.


    4861 - "Single HTML" links on docs.rtems.org lead to empty pages

    Link https://devel.rtems.org/ticket/4861
    Id 4861
    Reporter Jens Schweikhardt
    Created 17 February 2023 15:59:48
    Modified 17 February 2023 16:11:18
    Owner Chris Johns
    Type defect
    Component tool/website
    Status assigned
    Resolution  
    Version  
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Point your browser to docs.rtems.org.

    All the orange icon "HTML" links in the "Single HTML" columns lead to an empty page. The PDF links are ok.

    Comment 1
    1. Joel Sherrill, Fri, 17 Feb 2023 16:11:18 GMT
    2. owner: set to Chris Johns
    3. status: changed from new to assigned
    4. milestone: set to 6.1

    4862 - score/ & bsps/: Unused input parameters

    Link https://devel.rtems.org/ticket/4862
    Id 4862
    Reporter Daniel Páscoa
    Created 23 February 2023 12:36:23
    Modified 28 July 2023 14:55:19
    Owner Sebastian Huber
    Type enhancement
    Component unspecified
    Status assigned
    Resolution  
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    The following functions list input parameters on their signature that seem not to be used:

    __File__ __Function__ __Line__ bsps\shared\cache\cacheimpl.hsmp_cache_inst_inv_all 293 bsps\shared\dev\clock\clockimpl.hvoid Clock_isr130 bsps\shared\dev\clock\clockimpl.hrtems_isr Clock_isr134 bsps\shared\irq\irq-generic.cbsp_interrupt_allocate_handler_index62 bsps\sparc\leon3\start\bspclean.cbsp_fatal_extension70 cpukit\score\src\threadchangepriority.cstatic void _Thread_Priority_action_change( ); 92 cpukit\score\src\threadq.c_Thread_queue_MP_callout_do_nothing157 cpukit\score\src\threadqenqueue.c_Thread_queue_Deadlock_fatal382 cpukit\score\src\threadqops.c_Thread_queue_FIFO_do_initialize137 cpukit\score\src\threadqtimeout.c_Thread_queue_Add_timeout_ticks28 cpukit\score\src\threadrestart.c_Thread_Join_flush_filter84 cpukit\score\src\userextiterate.c_User_extensions_Thread_begin_visitor102

    Could one please double-check if in each case the unused parameters can be safely removed from the function’s signature? PS: The first functions are also implemented within .h files and perhaps could be moved to .c files.

    __Additional Notes:__ This ticket was raised as an outcome of the Independent SW Verification and Validation (ISVV) for ESA-promoted RTEMS SMP Qualification Data Packs (​https://rtems-qual.io.esa.int). The original ISVV reference for this issue is RTEMS-SMP-CODE-VER-028.

    Comment 1
    1. Sebastian Huber, Thu, 23 Mar 2023 16:25:03 GMT
    2. owner: set to Sebastian Huber
    3. status: changed from new to assigned
    4. type: changed from defect to enhancement
    5. component: changed from admin to unspecified
    6. milestone: set to 6.1
    Comment 2
    1. Sebastian Huber, Wed, 05 Apr 2023 12:00:12 GMT

    In 32fe5724/rtems:

    bsps: Mark argument as unused Update #4862.
    Comment 3
    1. Joel Sherrill, Thu, 22 Jun 2023 21:28:32 GMT

    Could the actual parameter that isn't referenced be provided? This looks easy to resolve if there were complete information.

    Comment 4
    1. Joel Sherrill, Thu, 22 Jun 2023 21:29:22 GMT
    2. summary: changed from Unused input parameters to score/ & bsps/: Unused input parameters
    Comment 5
    1. Daniel Páscoa, Fri, 23 Jun 2023 14:14:00 GMT

    Most of the functions listed on the initial ticket description only have a single parameter.

    Regarding the others, the information is included hereafter:

    __File____Function____Unused parameter(s)__ bsps\sparc\leon3\start\bspclean.c bsp_fatal_extension always_set_to_false cpukit\score\src\threadchangepriority.c _Thread_Priority_action_change*priority_actions and *arg cpukit\score\src\threadq.c_Thread_queue_MP_callout_do_nothing*the_proxy and mp_id cpukit\score\src\threadqops.c_Thread_queue_FIFO_do_initialize*queue and *queue_context cpukit\score\src\threadqtimeout.c_Thread_queue_Add_timeout_ticksqueue* cpukit\score\src\threadrestart.c_Thread_Join_flush_filter*queue cpukit\score\src\userextiterate.cUser_extensions_Thread_begin_visitor*arg
    Comment 6
    1. Sebastian Huber, Tue, 18 Jul 2023 19:55:24 GMT

    There are two obvious reasons, why some of these functions have unused parameters:

    When functions are used through function pointers, then they may have unused parameters since other functions may need the parameter. Only if the parameter is unused in all functions associated with a function pointer, the parameter is really superfluous. API backwards compatibility.

    Could you please remove these false positives from the list.

    Comment 7
    1. Sebastian Huber, Fri, 28 Jul 2023 14:55:19 GMT

    In a41611a/rtems:

    bsps/irq: Remove unused parameter Update #4862.

    4863 - Operations evaluation order.

    Link https://devel.rtems.org/ticket/4863
    Id 4863
    Reporter Daniel Páscoa
    Created 23 February 2023 12:37:47
    Modified 26 April 2023 08:22:47
    Owner Sebastian Huber <sebastian.huber@…>
    Type defect
    Component score
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    Within cpukit\include\rtems\score\objectimpl.h line 545 one has:

    if ( !the_api the_api > OBJECTS_APIS_LAST ) This shall be equivalent to “if ( (!the_api) (the_api > OBJECTS_APIS_LAST ))”, but at first glance, this is not always obvious to everyone and one might need to read further documentation to be fully sure of it.

    We would suggest the parenthesis be added so that the code logic is straightforward. In this case, one would not call it an ‘excess’ as stated within the RTEMS SW Eng. Manual (“Avoid excess parentheses. Learn the operator precedence. rules.”).

    __Additional Notes:__ This ticket was raised as an outcome of the Independent SW Verification and Validation (ISVV) for ESA-promoted RTEMS SMP Qualification Data Packs (​https://rtems-qual.io.esa.int). The original ISVV reference for this issue is RTEMS-SMP-CODE-VER-076.

    Comment 1
    1. Daniel Páscoa, Thu, 23 Feb 2023 14:30:55 GMT

    The operators were interpreted as new lines. This is the correct description (with a white space between the operators):

    Within cpukit\include\rtems\score\objectimpl.h line 545 one has:

    if ( !the_api | | the_api > OBJECTS_APIS_LAST ) This shall be equivalent to “if ( (!the_api) | | (the_api > OBJECTS_APIS_LAST ))”, but at first glance, this is not always obvious to everyone and one might need to read further documentation to be fully sure of it.

    Comment 2
    1. Joel Sherrill, Thu, 23 Feb 2023 15:17:54 GMT

    The code would be better written avoiding the use of compound expressions which will ease the testing when moving to higher design assurance levels which require MCDC style analysis. I would recommend trying to rewrite code to avoid compound expressions. This effectively can reduce testing to simpler decision/branch coverage. Here's my recommendation which also adds the braces which I am surprised didn't get flagged:

     if ( !the_api ) {
        return false;
      }
      if ( the_api > OBJECTS_APIS_LAST )
        return false;
      }
      return true;
    } 

    FWIW I don't think the code as written was hard to read or confusing. I wouldn't have changed based solely on that report. The rules of evaluation in C are clear enough that anyone confused by this shouldn't be touching this code anyway.

    Comment 3
    1. Sebastian Huber, Thu, 23 Mar 2023 15:22:20 GMT
    2. component: changed from admin to score
    3. milestone: set to 6.1
    Comment 4
    1. Sebastian Huber, Wed, 26 Apr 2023 08:22:47 GMT
    2. owner: set to Sebastian Huber <sebastian.huber@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 6979b03/rtems:

    score: Simplify _Objects_Is_api_valid() Close #4863.

    4867 - Clean up rtems-lwip uLan directory

    Link https://devel.rtems.org/ticket/4867
    Id 4867
    Reporter Kinsey Moore
    Created 3 March 2023 14:35:49
    Modified 3 July 2023 14:52:57
    Owner Kinsey Moore
    Type defect
    Component network/lwip
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The uLan directory in rtems-lwip was originally sourced from another project as documented in its ORIGIN.uLan file. This directory contains both some BSP-specific drivers as well as some of the core RTEMS/lwIP integration code in the form of sys_arch.c/h.

    Permission has been given by the authors of this upstream repository to relicense the code under the terms of the rtemslwip directory so as to remove references to "uLan" since this term is relatively unrelated to either project and just so happened to be the location of the source. ​https://lists.rtems.org/pipermail/devel/2023-March/074525.html

    Core integration components should be rehomed under rtemslwip/common and BSP-specific code should be rehomed under rtemslwip in a BSP-specific directory or in a new root directory with appropriate LICENSE and ORIGIN files depending on its provenance.

    Comment 1
    1. Joel Sherrill, Thu, 22 Jun 2023 20:53:40 GMT
    2. owner: set to Kinsey Moore
    3. status: changed from new to assigned
    4. component: changed from admin to network/lwip
    Comment 2
    1. Kinsey Moore, Mon, 03 Jul 2023 14:52:57 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In d0cb318/rtems-lwip:

    Alter ownership of components in uLan This commit breaks up the uLan directory and removes its ORIGIN and COPYING metadata in favor of this repository being the authoritative source of these sources as per the wishes of the originator of these files. More information can be found here: ​https://lists.rtems.org/pipermail/devel/2023-March/074525.html Closes #4867

    4869 - Add QSPI Flash Device API

    Link https://devel.rtems.org/ticket/4869
    Id 4869
    Reporter Aaron N
    Created 6 March 2023 02:27:09
    Modified 30 June 2023 00:13:22
    Owner chrisj@…
    Type enhancement
    Component dev/spi
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Add an API for qspi flash to create device node.

    Attachments:

    1 Aaron N, Mon, 06 Mar 2023 02:31:48 GMT
      attach: set to 0003-cpukit-spi-Add-API-for-QSPI-Flash.patch
    2 Aaron N, Mon, 06 Mar 2023 04:40:12 GMT
      attach: set to 0006-dev-spi-Fixed-write-behaviour-for-qspi_flash.patch
    3 Aaron N, Thu, 09 Mar 2023 00:33:35 GMT
      attach: set to 0006-libmisc-shell-Add-spiflash-command.patch
    4 Aaron N, Thu, 09 Mar 2023 03:13:33 GMT
      attach: set to 0003-cpukit-spi-Add-API-for-SPI-Flash.patch
    5 Aaron N, Wed, 15 Mar 2023 23:25:11 GMT
      attach: set to 0003-cpukit-flash-Add-API-for-Flash-devices.patch
    6 Aaron N, Wed, 15 Mar 2023 23:25:29 GMT
      attach: set to 0006-libmisc-shell-Add-flashdev-command.patch
    Comment 1
    1. Chris Johns, Mon, 06 Mar 2023 02:41:29 GMT

    Thanks for this.

    Should this be __SPI Flash__ or SPIFLASH? QSPI is quad SPI and there also exists octal and it would be good to have both supported?

    Comment 2
    1. Chris Johns, Wed, 08 Mar 2023 00:30:06 GMT

    Can we please have an ioctl command that lets a user can set a region in the flash device access is limited to? It may be nice to make the read and write calls relative to a region's base address. By default a device open maps to the entire flash.

    The use case is allowed shared access to the flash device. For example JFFS on a region and the ability to modified a boot area.

    Comment 3
    1. Aaron N, Thu, 09 Mar 2023 00:31:19 GMT

    Renamed the API to spiflash to reflect it's use for more then QSPI flash. I have also added region set and unset to define a base and length for limited access. Offsets are relative to the base set.

    Comment 4
    1. Aaron N, Wed, 15 Mar 2023 23:26:56 GMT

    Renamed to flashdev for wider compatibility and added type IOCTL.

    Comment 5
    1. Joel Sherrill, Thu, 22 Jun 2023 21:20:13 GMT

    Can this be closed now?

    Comment 6
    1. Chris Johns, Thu, 22 Jun 2023 21:22:37 GMT

    No, it is being worked on.

    Comment 7
    1. Chris Johns, Fri, 30 Jun 2023 00:13:22 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    4870 - Add features for QSPI Flash on Xilinx Versal

    Link https://devel.rtems.org/ticket/4870
    Id 4870
    Reporter Aaron N
    Created 6 March 2023 02:35:37
    Modified 9 March 2023 00:32:51
    Owner chrisj@…
    Type enhancement
    Component arch/aarch64
    Status assigned
    Resolution  
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Adds bug fixes for code ported from Xilinx, adds ReadId? function for QSPI flash, adds wrapper to Xilinx driver to allow use of QSPI flash device API and ports JFFS2 driver from ZynqMP.

    Attachments:

    1 Aaron N, Mon, 06 Mar 2023 02:36:01 GMT
      attach: set to 0001-bsps-Fix-xqspipsu-build-issues-on-versal.patch
    2 Aaron N, Mon, 06 Mar 2023 02:36:35 GMT
      attach: set to 0002-bsps-Add-ReadId-command-Xilinx-GQSPI-flash-helper.patch
    3 Aaron N, Mon, 06 Mar 2023 02:38:28 GMT
      attach: set to 0004-aarch64-versal-Add-wrapper-for-Xilinx-GQSPI-for-QSPI.patch
    4 Aaron N, Mon, 06 Mar 2023 02:38:42 GMT
      attach: set to 0005-aarch64-versal-Port-JFFS2-GQSPI-NOR-Driver-from-Zynq.patch
    5 Aaron N, Thu, 09 Mar 2023 00:31:59 GMT
      attach: set to 0004-aarch64-versal-Add-wrapper-for-Xilinx-GQSPI-for-QSPI.2.patch
    6 Aaron N, Wed, 15 Mar 2023 23:27:33 GMT
      attach: set to 0004-aarch64-versal-Add-wrapper-for-Xilinx-GQSPI-for-QSPI.3.patch
    Comment 1
    1. Aaron N, Thu, 09 Mar 2023 00:32:51 GMT

    Updated patch 4 to reflect changes to spiflash API begin renamed


    4872 - GDB 13.1 does not build on FreeBSD 13.1

    Link https://devel.rtems.org/ticket/4872
    Id 4872
    Reporter Chris Johns
    Created 9 March 2023 03:10:07
    Modified 9 March 2023 23:38:51
    Owner Chris Johns
    Type defect
    Component tool/gdb
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity blocker
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    If the binutils package is installed GDB does not build.

    See ​https://sourceware.org/bugzilla/show_bug.cgi?id=30214

    Comment 1
    1. Chris Johns, Thu, 09 Mar 2023 23:38:51 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In e5abdec/rtems-source-builder:

    6/gdb: fix building on FreeBSD 13.1 See ​https://sourceware.org/bugzilla/show_bug.cgi?id=30214 Closes #4872

    4874 - Undefined behaviour

    Link https://devel.rtems.org/ticket/4874
    Id 4874
    Reporter Daniel Páscoa
    Created 9 March 2023 12:37:19
    Modified 9 March 2023 12:55:23
    Owner  
    Type defect
    Component rtems
    Status closed
    Resolution wontfix
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    If one searches within SRSs or ICDs for 'undefined behaviour' one will find specifications/functions on which descriptions mention conditions that will lead to 'undefined behaviour', e.g.:

    ...

    __spec:/rtems/clock/if/get-boot-time__

    ...

    boot_time is the pointer to a struct timespec object. The time elapsed since the Unix epoch at some time point during system initialization call will be stored in this object. Calling the directive with a pointer equal to NULL is undefined behaviour.".

    One created specific tests to further access the eventual impacts, for instance in the clock-related functions below:

    spec:/rtems/clock/if/get-boot-time

    spec:/rtems/clock/if/get-boot-time-bintime

    spec:/rtems/clock/if/get-boot-time-timeval

    spec:/rtems/clock/if/get-monotonic

    spec:/rtems/clock/if/get-monotonic-bintime

    spec:/rtems/clock/if/get-monotonic-coarse

    spec:/rtems/clock/if/get-monotonic-coarse-bintime

    spec:/rtems/clock/if/get-monotonic-coarse-timeval

    spec:/rtems/clock/if/get-monotonic-timeval

    spec:/rtems/clock/if/get-realtime

    spec:/rtems/clock/if/get-realtime-bintime

    spec:/rtems/clock/if/get-realtime-coarse

    spec:/rtems/clock/if/get-realtime-coarse-bintime

    spec:/rtems/clock/if/get-realtime-coarse-timeval

    spec:/rtems/clock/if/get-realtime-timeval

    The outcome was:

    There is no internal check for a NULL pointer in these functions, so when called with a null pointer argument there is unwanted behaviour for both the GR712rc and GR740; an attempt to access memory location 0.

    For the GR712rc board this memory position is not mapped and causes a trap to be raised (this trap handler leads to unpredictable results, the workflow of the program is not recoverable). For the GR740 board the actual memory position is either read or written (the previous value being overridden with unpredictable results).

    So, even if somehow this shall also be a user responsibility, shouldn’t one adopt a safe approach to this and add input checking for these functions?

    __Additional Notes:__

    This ticket was raised as an outcome of the Independent SW Verification and Validation (ISVV) for ESA-promoted RTEMS SMP Qualification Data Packs (​https://rtems-qual.io.esa.int). The original ISVV reference for this issue is RTEMS-SMP-REQ-VER-008 and RTEMS-SMP-VAL-005.

    Comment 1
    1. Sebastian Huber, Thu, 09 Mar 2023 12:54:46 GMT
    2. status: changed from new to closed
    3. resolution: set to wontfix

    This was discussed on the RTEMS mailing list some time ago:

    ​https://lists.rtems.org/pipermail/devel/2021-November/069991.html

    Quite frankly, someone passing a NULL pointer to functions like void rtems_clock_get_monotonic_bintime(struct bintime *time_point) will also use the NULL pointer later. The next release of the pre-qualified RTEMS will probably contain the clock_get() function which performs these NULL pointer checks.

    Comment 2
    1. Sebastian Huber, Thu, 09 Mar 2023 12:55:23 GMT
    2. keywords: qualification added
    3. version: set to 6
    4. component: changed from admin to rtems
    5. milestone: set to 6.1

    4875 - LEON3FT - Power-down workaround

    Link https://devel.rtems.org/ticket/4875
    Id 4875
    Reporter Daniel Páscoa
    Created 9 March 2023 12:42:53
    Modified 22 June 2023 21:03:07
    Owner Sebastian Huber
    Type enhancement
    Component arch/sparc
    Status assigned
    Resolution  
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    Within bsps\sparc\leon3\start\bspidle.S there is the attached code snapshot, on which line 26 seems to contradict GR712RC board User Manual section 1.7.8 (Errata # 8 - LEON3FT Cache Controller: Incorrect Bus Access After Power-Down):

    “1.7.8 LEON3FT Cache Controller: Incorrect Bus Access After Power-Down

    A LEON with support for clock gating has one clock that is kept running and one clock that is gated off in power-down mode. Due to a design error, the gated clock was used for logic that keeps track of the state of the AMBA bus. Due to this error, the first instruction or data (whichever is first) access to the bus after leaving power-down might be performed incorrectly.

    Note that the stack pointer or other cachable memory should never be used as the source operand, even if using ASI 1, since this may lead to faulty data being loaded into the data cache.“

    One has asked Gaisler’s opinion and this has been the response: __“The errata is perhaps a bit too strongly worded. There is a risk that the load instruction used in the workaround will lead to fetching in incorrect data that gets cached if the address is in a cacheable area but that in itself is not a problem. In order for that to propagate into a real problem there has to be a subsequent load from that address that hits in the Dcache and uses the invalid data before that cache line is either flushed or the data is overwritten by stores. If you know that the address (and the same cache line) will not be loaded from this does not happen. In this case it is reading from the stack of the idle task which is never read from once the idle task is running. So I do not see that this can create a real issue.”__

    Either way, we wanted the RTEMS community to double-check that indeed there is not a real problem and eventually place additional comments on the code to better contextualize it w.r.t. the GR712RC User Manual errata # 8.

    __(Image attached)__

    __Additional Notes:__

    This ticket was raised as an outcome of the Independent SW Verification and Validation (ISVV) for ESA-promoted RTEMS SMP Qualification Data Packs (​https://rtems-qual.io.esa.int). The original ISVV reference for this issue is RTEMS-SMP-CODE-VER-073.

    Attachments:

    1 Daniel Páscoa, Thu, 09 Mar 2023 12:43:34 GMT
      attach: set to Screenshot 2023-03-09 125938.jpg
     
    Comment 1
    1. Sebastian Huber, Thu, 09 Mar 2023 13:01:31 GMT
    2. type: changed from defect to enhancement
    3. version: set to 6
    4. component: changed from admin to arch/sparc
    5. milestone: set to 6.1
    Comment 2
    1. Sebastian Huber, Wed, 15 Mar 2023 06:22:08 GMT
    2. keywords: qualification added
    Comment 3
    1. Joel Sherrill, Thu, 22 Jun 2023 21:03:07 GMT
    2. owner: set to Sebastian Huber
    3. status: changed from new to assigned
    4. summary: changed from Power-down workaround to LEON3FT - Power-down workaround

    4878 - sptests/spsysinit01 sem_open call only has 3 parameters with O_CREAT flag (cloned)

    Link https://devel.rtems.org/ticket/4878
    Id 4878
    Reporter Lucian-Raul Silistru
    Created 13 March 2023 14:29:44
    Modified 14 March 2023 06:43:33
    Owner Sebastian Huber
    Type defect
    Component test
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Cloned from #4877:

    When calling sem_open with the O_CREAT flag the sem_open function requires 4 parameters. It will:
    value = va_arg(args, unsigned int);
    so the "value" argument will be randomly chosen.

    sem_open can fail if the random value is not a valid semaphore value, failing the test.

    Comment 1
    1. Sebastian Huber, Tue, 14 Mar 2023 06:43:33 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 377eae4/rtems:

    spsysinit01: Fix sem_open() call The O_CREAT flag requires a mode and initial value as third and fourth argument. Close #4878.

    4881 - powerpc gas and ld warnings

    Link https://devel.rtems.org/ticket/4881
    Id 4881
    Reporter Chris Johns
    Created 21 March 2023 04:51:55
    Modified 21 March 2023 21:55:03
    Owner Chris Johns
    Type defect
    Component tool/binutils
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The upgraded binutils generates new warnings when linking executables:

    /opt/work/6/lib/gcc/powerpc-rtems6/12.2.1/../../../../powerpc-rtems6/bin/ld: warning: /opt/work/rtems/6-bsp/powerpc-rtems6/mvme2307/lib/vectors_entry.o: missing .note.GNU-stack section implies executable stack
    /opt/work/6/lib/gcc/powerpc-rtems6/12.2.1/../../../../powerpc-rtems6/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
    /opt/work/6/lib/gcc/powerpc-rtems6/12.2.1/../../../../powerpc-rtems6/bin/ld: warning: /opt/work/chris/rtems/libbsd/rtems-libbsd.git/build/powerpc-rtems6-mvme2307-default/termios05.exe has a LOAD segment with RWX permissions
    /opt/work/6/lib/gcc/powerpc-rtems6/12.2.1/../../../../powerpc-rtems6/bin/ld: warning: /opt/work/chris/rtems/libbsd/rtems-libbsd.git/build/powerpc-rtems6-mvme2307-default/termios05.exe has a LOAD segment with RWX permissions
    Comment 1
    1. Chris Johns, Tue, 21 Mar 2023 06:23:45 GMT

    This article by Nick Clifton explains the changes in binutils-2.39:

    ​https://www.redhat.com/en/blog/linkers-warnings-about-executable-stacks-and-segments

    Comment 2
    1. Chris Johns, Tue, 21 Mar 2023 06:57:19 GMT

    This diff removes the warning:

    diff --git a/bsps/powerpc/shared/start/vectors_entry.S b/bsps/powerpc/shared/start/vectors_entry.S
    index 07b17a48af..9140c55121 100644
    --- a/bsps/powerpc/shared/start/vectors_entry.S
    +++ b/bsps/powerpc/shared/start/vectors_entry.S
    @@ -10,6 +10,7 @@
    `#include `
            PUBLIC_VAR (__rtems_start)
    +       .section .note.GNU-stack,"",@progbits
            .section .entry_point_section,"awx",@progbits
     /*
      * Entry point information used by bootloader code 

    however it moves to another object file:

    /opt/work/6/lib/gcc/powerpc-rtems6/12.2.1/../../../../powerpc-rtems6/bin/ld: warning: /opt/work/6/lib/gcc/powerpc-rtems6/12.2.1/m604/ecrtn.o: missing .note.GNU-stack section implies executable stack
    /opt/work/6/lib/gcc/powerpc-rtems6/12.2.1/../../../../powerpc-rtems6/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker 

    This time it is in the gcc build object files.

    Comment 3
    1. Chris Johns, Tue, 21 Mar 2023 09:26:15 GMT

    The following removes the warnings:

    [powerpc/mvme2307]
    LINKFLAGS = -Wl,--no-warn-execstack -Wl,--no-warn-rwx-segments 

    I do not know how to add these options to the LINKFLAGS in the spec files.

    Comment 4
    1. Chris Johns, Tue, 21 Mar 2023 09:51:24 GMT

    I will get the RSB to disable these warnings for RTEMS. This will mean we will not have to change anything and users will not see these warnings and be confused.

    Comment 5
    1. Chris Johns, Tue, 21 Mar 2023 10:50:55 GMT
    2. owner: set to Chris Johns
    3. status: changed from new to assigned
    Comment 6
    1. Chris Johns, Tue, 21 Mar 2023 21:55:03 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In f0e34ea/rtems-source-builder:

    binutils: Disable stack exec and RWX section warnings Binutils 2.39 and later enable by default warnings for executables with executable stack and RWX sections. Disable them. Closes #4881

    4882 - mvme2703 legacy network build failure

    Link https://devel.rtems.org/ticket/4882
    Id 4882
    Reporter Chris Johns
    Created 21 March 2023 04:56:36
    Modified 22 June 2023 22:05:14
    Owner  
    Type defect
    Component network/legacy
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Building powerpc/mvme2703 BSP with the legacy networking fails with:

    ../../netinet/in.c: In function 'in_canforward':
    ../../netinet/in.c:117:13: warning: implicit declaration of function 'IN_CLASSA'; did you mean 'IN_BADCLASS'? [-Wimplicit-function-declaration]
    117 | if (IN_CLASSA(i)) {
    | ^~~~~~~~~
    | IN_BADCLASS
    ../../netinet/in.c:118:27: error: 'IN_CLASSA_NET' undeclared (first use in this function)
    118 | net = i & IN_CLASSA_NET;
    | ^~~~~~~~~~~~~
    ../../netinet/in.c:118:27: note: each undeclared identifier is reported only once for each function it appears in
    ../../netinet/in.c:119:41: error: 'IN_LOOPBACKNET' undeclared (first use in this function); did you mean 'IN_LOOPBACK'?
    119 | if (net == 0 || net == (IN_LOOPBACKNET << IN_CLASSA_NSHIFT))
    | ^~~~~~~~~~~~~~
    | IN_LOOPBACK
    ../../netinet/in.c:119:59: error: 'IN_CLASSA_NSHIFT' undeclared (first use in this function)
    119 | if (net == 0 || net == (IN_LOOPBACKNET << IN_CLASSA_NSHIFT))
    | ^~~~~~~~~~~~~~~~
    ../../netinet/in.c: In function 'in_ifinit':
    ../../netinet/in.c:495:34: error: 'IN_CLASSA_NET' undeclared (first use in this function)
    495 | ia->ia_netmask = IN_CLASSA_NET;
    | ^~~~~~~~~~~~~
    ../../netinet/in.c:496:18: warning: implicit declaration of function 'IN_CLASSB'; did you mean 'IN_BADCLASS'? [-Wimplicit-function-declaration]
    496 | else if (IN_CLASSB(i))
    | ^~~~~~~~~
    | IN_BADCLASS
    ../../netinet/in.c:497:34: error: 'IN_CLASSB_NET' undeclared (first use in this function)
    497 | ia->ia_netmask = IN_CLASSB_NET;
    | ^~~~~~~~~~~~~
    ../../netinet/in.c:499:34: error: 'IN_CLASSC_NET' undeclared (first use in this function)
    499 | ia->ia_netmask = IN_CLASSC_NET;
    | ^~~~~~~~~~~~~
    Comment 1
    1. Chris Johns, Tue, 21 Mar 2023 05:49:58 GMT

    Also have:

    [ 29/223] Compiling libtest/testbusy.c
    ../../libtest/testbusy.c: In function 'rtems_test_busy_cpu_usage':
    ../../libtest/testbusy.c:31:3: error: too many arguments to function '_Thread_Get_CPU_time_used'
       31 |   _Thread_Get_CPU_time_used( executing, &start );
          |   ^~~~~~~~~~~~~~~~~~~~~~~~~
    In file included from ../../libtest/testbusy.c:21:
    /opt/work/rtems/6-bsp/powerpc-rtems6/mvme2307/lib/include/rtems/score/threadimpl.h:1306:19: note: declared here
     1306 | Timestamp_Control _Thread_Get_CPU_time_used( Thread_Control *the_thread );
          |                   ^~~~~~~~~~~~~~~~~~~~~~~~~
    ../../libtest/testbusy.c:35:5: error: too many arguments to function '_Thread_Get_CPU_time_used'
       35 |     _Thread_Get_CPU_time_used( executing, &now );
          |     ^~~~~~~~~~~~~~~~~~~~~~~~~
    /opt/work/rtems/6-bsp/powerpc-rtems6/mvme2307/lib/include/rtems/score/threadimpl.h:1306:19: note: declared here
     1306 | Timestamp_Control _Thread_Get_CPU_time_used( Thread_Control *the_thread );
          |                   ^~~~~~~~~~~~~~~~~~~~~~~~~ 
    Comment 2
    1. Chris Johns, Tue, 21 Mar 2023 05:57:40 GMT

    There are a couple of issues. The headers installed with the tools requires -DIN_HISTORICAL_NETS=1 on the command line and the score API for the CPU usage has changed.

    Comment 3
    1. Chris Johns, Thu, 22 Jun 2023 22:05:14 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed

    4884 - I2C default ioctl handler does not handle set clock

    Link https://devel.rtems.org/ticket/4884
    Id 4884
    Reporter Chris Johns
    Created 22 March 2023 04:53:13
    Modified 22 March 2023 05:26:40
    Owner Chris Johns
    Type defect
    Component dev/i2c
    Status closed
    Resolution invalid
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The base struct for an I2C driver can set set_clock handler so a user can change the I2C clock speed. The default ioctl handler does not check for the I2C_BUS_SET_CLOCK command and if the set_clock handler is set calling it.

    Comment 1
    1. Chris Johns, Wed, 22 Mar 2023 05:26:40 GMT
    2. status: changed from assigned to closed
    3. resolution: set to invalid

    Ah sorry I was looking at a device and not the bus.


    4887 - RTEMS Net Legacy does not build as a package in the RSB

    Link https://devel.rtems.org/ticket/4887
    Id 4887
    Reporter Chris Johns
    Created 23 March 2023 02:24:52
    Modified 22 June 2023 22:35:02
    Owner Chris Johns
    Type defect
    Component network/legacy
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The waf support does not handle staged builds or the options --rtems-tools and --rtems at the same time. The build fails when reading the rtemsbsp static library because it will not be in the PREFIX.

    Also the build script scans for .c and .h files. This is fragile. If someone copies in a C file for some reason it is picked up. The sources and headers need to be explicit in build script.

    Attachments:

    1 Chris Johns, Mon, 27 Mar 2023 03:40:31 GMT
      attach: set to r
     
    Comment 1
    1. Chris Johns, Thu, 23 Mar 2023 21:20:31 GMT

    I do not understand what the bsp_drivers.py use of os.path.expanduser is for? A build should not reference files outside the source tree unless there are options a user uses.

    I am not following the bsp_driver code. Testing it I am seeing for atsamv:

    arm/atsamv:
    ({'arm/atsamv': ['bsps/arm/atsamv/arm/atsamv/net', 'bsps/arm/atsamv/arm/atsamv/include']}, {'arm/atsamv': []}) 

    There is bsps/arm/atsam but no bsps/arm/atsamv and bsps/arm/atsamv/arm/atsamv/net looks to be repeated. I am confused.

    Comment 2
    1. Chris Johns, Fri, 24 Mar 2023 02:13:23 GMT

    The BSP list does not handle aliases, for example the powerpc/beatnik has a number of aliased BSPs such as powerpc/mvme2703.

    Comment 3
    1. Chris Johns, Mon, 27 Mar 2023 03:42:36 GMT

    The attached file r is a list of headers that matched headers found in an installed powerpc/mvme2307 build of RTEMS 5.3 with networking enabled.

    The list is what needs to be installed. The existing build scans for files and installs them.

    Comment 4
    1. Joel Sherrill, Thu, 22 Jun 2023 21:15:45 GMT

    Can this be closed now?

    Comment 5
    1. Joel Sherrill, Thu, 22 Jun 2023 22:35:02 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    Chris says this is fixed.


    4889 - Remove file scanning from rtems-lwip

    Link https://devel.rtems.org/ticket/4889
    Id 4889
    Reporter Kinsey Moore
    Created 24 March 2023 00:07:56
    Modified 29 March 2023 16:26:35
    Owner Kinsey Moore <kinsey.moore@…>
    Type defect
    Component network/lwip
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity blocker
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    rtems-lwip currently scans a subset of directories for files. Since it already supports includes in its definition format, it should instead explicitly list all files to be compiled and support for directory scanning should be removed.

    Comment 1
    1. Kinsey Moore, Wed, 29 Mar 2023 16:26:35 GMT
    2. owner: set to Kinsey Moore <kinsey.moore@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 80197c5/rtems-lwip:

    lwip.py: Remove directory scanning This removes directory scanning from rtems-lwip for a more robust build system. Closes #4889

    4892 - MacOS tools build failures on Ventura and M series processors

    Link https://devel.rtems.org/ticket/4892
    Id 4892
    Reporter Chris Johns
    Created 26 March 2023 01:09:44
    Modified 11 April 2023 22:09:58
    Owner Chris Johns
    Type defect
    Component tool/rsb
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Building the tools with a recent MacOS such as Ventura failed because Apple has removed support for embedded python in programs. This means GDB does not build. The solution is to teach the RSB GDB support to use a build of Python from ​https://www.python.org/.

    The RSB failed to build gcc on the M series processors on Ventura using Xcode 14.2. The build gcc crosscompiler (xgcc) crashes with sig faults. GCC does not bootstrap on ARM systems:

    *** Configuration aarch64-apple-darwin22.3.0 not supported 

    Look at supporting Homebrew built gcc.

    Attachments:

    1 Chris Johns, Mon, 27 Mar 2023 04:07:36 GMT
      attach: set to 0001-darwin-Add-support-to-build-with-homebrew-is-present.patch
     
    2 Chris Johns, Mon, 27 Mar 2023 04:07:53 GMT
      attach: set to 0002-dtc-Disable-warnings.patch
     
    3 Chris Johns, Mon, 27 Mar 2023 04:08:07 GMT
      attach: set to 0003-gdb-Use-a-virtual-environment-if-present.patch
     
    4 Chris Johns, Mon, 27 Mar 2023 04:08:24 GMT
      attach: set to 0004-gcc-12-Fix-libgcc-on-MacOS.patch
     
    5 Chris Johns, Tue, 04 Apr 2023 23:12:27 GMT
      attach: set to gcc-no-sig.diff
     
    Comment 1
    1. Chris Johns, Sun, 26 Mar 2023 01:15:45 GMT

    Fix building libgcc on MacOS:

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

    Comment 2
    1. Chris Johns, Mon, 27 Mar 2023 04:20:26 GMT

    I have attached the 4 patches I have for building on a recent MacOS.

    You need:

    Recent Xcode installed with the command line tools package. To install the package start Xcode and then click on the Xcode menu item followed by "Open Developer Tools", "More Developer Tools...". Find the command line tools package for the version of Xcode you are running and install. Install a recent Python 3 from ​https://www.python.org/downloads/macos/ and install. From a terminal shell run:
    % /Applications/Python\ 3.11/Update\ Shell\ Profile.command 

    To install the paths in your environment

    Create a virtual environment and activate it:
    % python3 -m venv rpy
    % . ./rpy/bin/activate 
    Optionally install Homebrew and set up the environment. Make sure one of gcc-12 through to gcc-9 packages is installed. Run a normal RSB build

    __Note:__ Currently M2 Pro builds are failing with a segment fault. I have only one machine to test this on.

    Comment 3
    1. kgardas, Tue, 28 Mar 2023 10:26:27 GMT

    Somethings's fishy here. If we'are talking about tools build by RSB as presented in HEAD, then I'm able to build those on Ventura. The point is to:

    use hand build python3 use either more RAM or limit jobs

    The common issue of segfaulting GCC seems to be caused by Ventura reworked memory management which seems to be very sensitive to available amount of RAM.

    Using Ventura 13.2 here.

    Comment 4
    1. kgardas, Tue, 28 Mar 2023 10:52:36 GMT

    OK, so sorry for noise here. What I wrote was applicable in the past. Now, while looking into the internal documentation for MacOS-based customer (which may become part of rtems doc, just don't know where to put it nor had a time to submit/merge) I see these asciidoc paragraphs:

    ==== Install RTEMS build requirements
    Please note that this paragraph is written for macOS 13.2.1 (Ventura) and is
    not directly applicable to Linux distributions and/or various BSDs.
    We are using homebrew to install basic packages required to compile
    RTEMS tools and packages. Let's start with the Homebrew installation first.
    Open the shell window and run following command inside it.
    ----
    % /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    ----
    The command will ask for root access and will then also download not
    only brew package manager, but also Apple's Xcode command line tools.
    When this is done, you may choose to configure brew to be available on
    your PATH by following 'Next steps' printed to the terminal by the
    installation process.
    When this is done, you may continue with using brew package manager to
    install required packages for us. Please use following command in
    order to do it.
    ----
    % brew install xz python3 texinfo
    ----
    In order to use python3 installed above with just a 'python' command
    which is required by the RTEMS source builder (due to required support
    for python2 on tools side) you will also need to create a symbolic
    link python3 -> python like below:
    ----
    % cd /opt/homebrew/bin
    % ln -s python3 python
    ---- 
    Comment 5
    1. kgardas, Tue, 28 Mar 2023 12:59:14 GMT

    I can confirm that I've built tools using RSB with last patch being:

    commit f0e34eab8bf33b833a7d9d0b2bddd3b89f6d83cb (origin/master, origin/HEAD)
    Author: Chris Johns 
    Date:   Tue Mar 21 22:05:41 2023 +1100
        binutils: Disable stack exec and RWX section warnings
        Binutils 2.39 and later enable by default warnings for executables
        with executable stack and RWX sections. Disable them.
        Closes #4881 

    hour ago on my Ventura Mac Mini M1 software versions:

    karel@mini rtems % sw_vers
    ProductName:            macOS
    ProductVersion:         13.2.1
    BuildVersion:           22D68 

    just *FINE* and without any of your proposed patches!

    So please do not destabilize stuff. macOS is enough PITA :-)

    Comment 6
    1. Chris Johns, Tue, 28 Mar 2023 21:10:46 GMT

    Replying to kgardas:

    OK, so sorry for noise here.

    No problem.

    What I wrote was applicable in the past. Now, while looking into the internal documentation for MacOS-based customer (which may become part of rtems doc, just don't know where to put it nor had a time to submit/merge) I see these asciidoc paragraphs:

    I will update the User Manual once we have the patches attached to this ticket.

    ==== Install RTEMS build requirements
    Please note that this paragraph is written for macOS 13.2.1 (Ventura) and is
    not directly applicable to Linux distributions and/or various BSDs.
    We are using homebrew to install basic packages required to compile
    RTEMS tools and packages. Let's start with the Homebrew installation first.
    Open the shell window and run following command inside it.
    ----
    % /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 

    Homebrew is optional in my view and not mandatory.

    ----
    The command will ask for root access and will then also download not
    only brew package manager, but also Apple's Xcode command line tools.
    When this is done, you may choose to configure brew to be available on
    your PATH by following 'Next steps' printed to the terminal by the
    installation process.
    When this is done, you may continue with using brew package manager to
    install required packages for us. Please use following command in
    order to do it.
    ----
    % brew install xz python3 texinfo 

    Python from Homebrew is an option for python but that will be a per user choice. The end goal is building with Xcode and python.org. The texinfo package may be added like gsed has been. I am not sure we even need makeinfo any more.

    ----
    In order to use python3 installed above with just a 'python' command
    which is required by the RTEMS source builder (due to required support
    for python2 on tools side) you will also need to create a symbolic
    link python3 -> python like below:
    ----
    % cd /opt/homebrew/bin
    % ln -s python3 python 

    Adding a link is personal choice. I prefer we document using virtual environments.

    Comment 7
    1. Chris Johns, Tue, 28 Mar 2023 21:13:47 GMT

    Replying to kgardas:

    I can confirm that I've built tools using RSB with last patch being:

    commit f0e34eab8bf33b833a7d9d0b2bddd3b89f6d83cb (origin/master, origin/HEAD)
    Author: Chris Johns 
    Date:   Tue Mar 21 22:05:41 2023 +1100
        binutils: Disable stack exec and RWX section warnings
        Binutils 2.39 and later enable by default warnings for executables
        with executable stack and RWX sections. Disable them.
        Closes #4881 

    hour ago on my Ventura Mac Mini M1 software versions:

    karel@mini rtems % sw_vers
    ProductName:            macOS
    ProductVersion:         13.2.1
    BuildVersion:           22D68 

    just *FINE* and without any of your proposed patches!

    So please do not destabilize stuff. macOS is enough PITA :-)

    The patches are needed so I encourage you try them and comment before they are pushed. The RSB is active and it changes.

    Comment 8
    1. kgardas, Tue, 28 Mar 2023 21:28:04 GMT

    Hold on! You added patches. I described two ways how is it possible to build tool and yet you claim patches are needed when half of the patches try to deal with crashing of gcc on your Ventura.

    Also you claim homebrew is optional yet you like to use it's gcc/g++ to build tools.

    A bit contradicting.

    Anyway, please make sure you are on the *LATEST* Ventura and not on the .0 release. If you update, you will see your gcc crashes may be gone for good. I reported that on devel@ few times already.

    Yes, makeinfo is still required by RSB otherwise I would not install it.

    Yes, if RSB build its own xz and python and whatever, it would be good.

    Comment 9
    1. Chris Johns, Wed, 29 Mar 2023 05:57:47 GMT

    Replying to kgardas:

    Hold on! You added patches.

    Indeed I did, please read the ticket. I clearly said this at the start of comment:2.

    I described two ways how is it possible to build tool and yet you claim patches are needed when half of the patches try to deal with crashing of gcc on your Ventura.

    The patches are not attempting to address the crashing. I have no idea what causes those. The patches address other issues. They are:

    Using Python virtual env and cleaning up python support for MacOS. This lets a user install python from python.org. DTC did not build because of warnings treated as errors. No idea how you missed this is you are at the same level of updates as me. Libgcc uses sh and not $(SHELL) in it's Makefile.in. I have not looked into why I got it but something is different in the set up or environment to trigger it. Add homebrew as a I wanted to try building xgcc with gcc rather than Xcode. It did not help so I am currently considering dropping that patch.

    Also you claim homebrew is optional yet you like to use it's gcc/g++ to build tools.

    I have not yet added Homebrew support. It is sitting in a patch. I would prefer not to have it part of the build. I have explained this on the devel list in the past.

    A bit contradicting.

    I did not and have not and I cannot understand why you need to talk to me like this. Can you please not?

    Anyway, please make sure you are on the *LATEST* Ventura and not on the .0 release.

    I am on the latest.

    If you update, you will see your gcc crashes may be gone for good. I reported that on devel@ few times already.

    They have not gone for me. I am on an M2 Pro and I think you are on an M1.

    Yes, makeinfo is still required by RSB otherwise I would not install it.

    The RSB checks but is it needed in any packages these days? It was added long ago when all projects built the docs by default using it. We do not build doc. If needed support should be added like gsed.

    Yes, if RSB build its own xz and python and whatever, it would be good.

    The RSB is written in python so building python would be difficult without it already being installed. Ah yes xz is another. I built that by hand and had forgotten.

    Comment 10
    1. Chris Johns, Sun, 02 Apr 2023 23:29:15 GMT

    Building on M2 Pro with Ventura 13.3 and Xcode Version 14.3 (14E222b) results in segmentation faults in cc1 and cc1plus. Inspecting the MacOS crash reports showed invalid accesses to the stack guard area of memory. A typical crash report is:

    Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
    Exception Codes:       KERN_PROTECTION_FAILURE at 0x00000001699dbff0
    Exception Codes:       0x0000000000000002, 0x00000001699dbff0
    Termination Reason:    Namespace SIGNAL, Code 11 Segmentation fault: 11
    Terminating Process:   exc handler [30551]
    VM Region Info: 0x1699dbff0 is in 0x1699d8000-0x1699dc000;  bytes after start: 16368  bytes before end: 15
          REGION TYPE                    START - END         [ VSIZE] PRT/MAX SHRMOD  REGION DETAIL
          MALLOC_MEDIUM (reserved)    147800000-148000000    [ 8192K] rw-/rwx SM=NUL  ...(unallocated)
          GAP OF 0x219d8000 BYTES
    --->  STACK GUARD                 1699d8000-1699dc000    [   16K] ---/rwx SM=NUL  ... for thread 0
          Stack                       1699dc000-16d9d8000    [ 64.0M] rw-/rwx SM=PRV  thread 0
    Thread 0 Crashed::  Dispatch queue: com.apple.main-thread
    0   cc1                                    0x10335d630 __gmpn_lshift + 208
    1   cc1                                    0x1033438c8 mpfr_mpn_exp + 684 (mpn_exp.c:151)
    2   ???                                    0x2db39f030 ???
    Thread 0 crashed with ARM Thread State (64-bit):
        x0: 0x0000000000000000   x1: 0x00000001699dc010   x2: 0x0000000000000000   x3: 0x0000000000000001
        x4: 0x0000000000000000   x5: 0x0000000000000000   x6: 0x0000000000000000   x7: 0x0000000000000000
        x8: 0xffffffffffffffff   x9: 0x0000000000000007  x10: 0x0000000000000000  x11: 0x0000000000000000
       x12: 0x0000000000000000  x13: 0x0000000000000000  x14: 0x0000000000000001  x15: 0x00000000ffffffd0
       x16: 0x00000001699dc170  x17: 0x0000000082eff7fb  x18: 0xfffffffffffffe00  x19: 0xffffffffffffff04
       x20: 0x0000000000000003  x21: 0x0000000000000003  x22: 0x000000016d9cf818  x23: 0x0000000000000005
       x24: 0xffffffffffffff08  x25: 0x0000000000000004  x26: 0x0000000000000012  x27: 0x000000016d9cf6c8
       x28: 0x000000016d9cf6e0   fp: 0x000000016d9cf7c0   lr: 0x00000001033438c8
        sp: 0x000000016d9cf6b0   pc: 0x000000010335d630 cpsr: 0x20001000
       far: 0x00000001699dbff0  esr: 0x92000007 (Data Abort) byte read Translation fault
    Binary Images:
           0x102428000 -        0x10359bfff cc1 (*) <72d6a4cf-055f-369c-89cb-4cbf48bff6cf> /Users/USER/*/cc1
                   0x0 - 0xffffffffffffffff ??? (*) <00000000-0000-0000-0000-000000000000> ??? 

    The FAR is in the stack guard area. The crashes are always in the MPFR library and relate to calls to GMP. The GMP tests pass. The MPFR built by gcc tests fail and a hand built MPFR tests pass.

    The crash leaves the build so changing to the MPFR build directory lets you run the tests:

    cd build/arm-rtems6-gcc-cf59d86-newlib-17ac400-arm64-apple-darwin22.4.0-1/build/mpfr
    make check 

    The results are:

    ============================================================================
    Testsuite summary for MPFR 4.2.0
    ============================================================================
    # TOTAL: 197
    # PASS:  97
    # SKIP:  3
    # XFAIL: 0
    # FAIL:  97
    # XPASS: 0
    # ERROR: 0 

    The failures are all seg faults.

    I upgraded to MPFR 4.2.0 as it does not need the fix-mac-arm64-mpfr-config.patch patch. Building by hand and referencing the gcc build GMP has the following results:

    ============================================================================
    Testsuite summary for MPFR 4.2.0
    ============================================================================
    # TOTAL: 197
    # PASS:  194
    # SKIP:  3
    # XFAIL: 0
    # FAIL:  0
    # XPASS: 0
    # ERROR: 0 

    I provided the same configure command line used by gcc when it builds the library internally. There are no sig faults.

    I ran the tests for GMP and there were no errors.

    Close inspection of the build and the config.log reveals a difference. The gcc build has:

    -DHAVE___GMPN_INVERT_LIMB=1 -DHAVE___GMPN_RSBLSH1_N=1 

    and they are not present when building by hand. The config.log shows:

    configure:19315: checking for __gmpn_invert_limb
     [..]
    configure:19315: result: yes 

    The hand built MPFR has:

    configure:19315: checking for __gmpn_invert_limb
     [..]
    configure:19315: result: no 

    This is the only difference I could see.

    Comment 11
    1. Chris Johns, Tue, 04 Apr 2023 23:16:43 GMT

    I have found a suitable work around for MacOS arm64 that stops the crashes. I tracked issue to GMP and the assembler accelerators it has for aarch64. That code seems to access memory outside the area allocated and MacOS 13.2/13.3 detects this on arm64. The crash depends on where the alloc call allocates memory in relation to the stack guard.

    I ised the simple patch attached to toplev.cc to stop GCC catching the seg fault signal. This lets MacOS capture the fault and generate a useful crash report.

    After a crash I changed directory to the GCC build of MPFR and ran make check. The results failed as shown in comment:10.

    Testing of builds of MPFR showed the issue in GMP and inspecting GMP configure --help showed --disable-assemble. Using this option results in the MPFR tests passing. I updated the GMP build to add this option on MacOS arm64.

    This exposed a second issue. GCC was building GMP internally as the source was linked into the top level of GCC's sources. GMP is now built as a package because GDB also requires GMP. There is no point building it twice. Removing the GMP sources from the GCC build let GCC pick up the GMP package built and staged earlier in the build set with the work around configure option.

    No bug report has been raised with the GMP or MPFR projects. If someone feels like doing that please do.

    Comment 12
    1. Chris Johns, Wed, 05 Apr 2023 22:33:27 GMT

    In 344981a/rtems-source-builder:

    dtc: Disable warnings Updates #4892
    Comment 13
    1. Chris Johns, Wed, 05 Apr 2023 22:33:29 GMT

    In 9919f12/rtems-source-builder:

    gdb: Use a virtual environment if present Detect and use a virtual environment if present Supports MacOS with python.org in a venv Updates #4892
    Comment 14
    1. Chris Johns, Wed, 05 Apr 2023 22:33:30 GMT

    In f3c5dbd/rtems-source-builder:

    rtems/gcc: Do not build GMP in GCC, use the staged build Do not build GMP when building GCC. GMP is now built as a package for GDB. Building as a separate package lets use control how it is built. Updates #4892
    Comment 15
    1. Chris Johns, Wed, 05 Apr 2023 22:33:32 GMT

    In 4358a03/rtems-source-builder:

    devel/gmp: Disable assemble builds on MacOS AARCH64 Updates #4892
    Comment 16
    1. Chris Johns, Wed, 05 Apr 2023 22:33:33 GMT

    In 235c12f/rtems-source-builder:

    devel/mpfr: Update to 4.2.0 to support MacOS AARCH64 Use base64 checksums Change MPFR URL Updates #4892
    Comment 17
    1. Chris Johns, Wed, 05 Apr 2023 22:33:35 GMT

    In 05f6bef/rtems-source-builder:

    devel/mpfr: Add MPFR as a package This is a place holder incase we stop building MPFR in GCC. Updates #4892
    Comment 18
    1. Chris Johns, Wed, 05 Apr 2023 22:33:37 GMT

    In cf447af/rtems-source-builder:

    rtems/mipsstx39: Update to GDB 13.1 and stage build GMP Use a build set file to stage GMP as recent GDB versions require GMP. Update #4892
    Comment 19
    1. Chris Johns, Wed, 05 Apr 2023 22:33:38 GMT

    In 024db7d/rtems-source-builder:

    rtems/microblaze: Update to GDB 13.1 Note:
    GCC does not build on MacOS 13.3 due to the specific version of GCC the Microblaze is using.
    Updates #4892
    Comment 20
    1. Chris Johns, Tue, 11 Apr 2023 22:09:58 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    Karel has confirmed builds are working cleanly.


    4896 - Makefile.inc exported BSP include path not a system include path

    Link https://devel.rtems.org/ticket/4896
    Id 4896
    Reporter Chris Johns
    Created 12 April 2023 21:55:08
    Modified 14 April 2023 20:07:10
    Owner Chris Johns
    Type defect
    Component build
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The BSP include path exported in the Makefile.inc set of files uses -I and that is not a system include. The RTEMS 5 and earlier autoconf build system provided a spec file using the -B option and that either added a system path or the spec file included a system path. Either way the BSP include path was added as a system include path and so the compiler placed it at the end of the include list.

    The CPU_DEFINES macro is part of CPPFLAGS exported by Makefile.inc and we cannot control how applications uses that variable so we need to make sure the BSP include path is exported as a system include path.

    The issue was found with EPICS. EPICS installs a header file called link.h under its include path. RTEMS now provides a header file called link.h. The CPPFLAGS are before the EPICS include path so our link.h was seen before the EPICS one and that broken the build.

    Comment 1
    1. Kinsey Moore, Fri, 14 Apr 2023 20:07:10 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 5a37722b/rtems:

    spec/pkgconfig: Allow builds to override headers This allows any builds targeting an installed RTEMS BSP to override headers in the installed BSP reliably, including headers previously installed by that or other builds. This includes applications, network stacks, libraries, and any other builds. Closes #4896

    4899 - BSP powerpc/qoriq_e6500_64 and powerpc/qoriq_e6500_32 fail to build

    Link https://devel.rtems.org/ticket/4899
    Id 4899
    Reporter Chris Johns
    Created 23 April 2023 22:29:25
    Modified 22 June 2023 21:45:21
    Owner  
    Type defect
    Component bsps
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    [  87/1471] Compiling bsps/powerpc/shared/vme/vmeTsi148.c
    /tmp//cccfu9l8.s: Assembler messages:
    /tmp//cccfu9l8.s:353: Error: unrecognized opcode: `eieio'
    /tmp//cccfu9l8.s:386: Error: unrecognized opcode: `eieio'
    /tmp//cccfu9l8.s:419: Error: unrecognized opcode: `eieio'
    /tmp//cccfu9l8.s:444: Error: unrecognized opcode: `eieio'
    /tmp//cccfu9l8.s:477: Error: unrecognized opcode: `eieio'
    /tmp//cccfu9l8.s:503: Error: unrecognized opcode: `eieio'
    ...
    Comment 1
    1. Sebastian Huber, Mon, 24 Apr 2023 08:40:54 GMT

    I can't reproduce this issue:

    Waf: Entering directory `/tmp/sh/b-rtems/powerpc/qoriq_core_0'
    [  87/1471] Compiling bsps/powerpc/shared/vme/vmeTsi148.c
    Waf: Leaving directory `/tmp/sh/b-rtems/powerpc/qoriq_core_0'
    'build_powerpc/qoriq_core_0' finished successfully (0.626s)
    Waf: Entering directory `/tmp/sh/b-rtems/powerpc/qoriq_core_1'
    [  87/1471] Compiling bsps/powerpc/shared/vme/vmeTsi148.c
    Waf: Leaving directory `/tmp/sh/b-rtems/powerpc/qoriq_core_1'
    'build_powerpc/qoriq_core_1' finished successfully (0.598s)
    Waf: Entering directory `/tmp/sh/b-rtems/powerpc/qoriq_e500'
    [  87/1471] Compiling bsps/powerpc/shared/vme/vmeTsi148.c
    Waf: Leaving directory `/tmp/sh/b-rtems/powerpc/qoriq_e500'
    'build_powerpc/qoriq_e500' finished successfully (0.600s)
    Waf: Entering directory `/tmp/sh/b-rtems/powerpc/qoriq_e6500_32'
    [  87/1471] Compiling bsps/powerpc/shared/vme/vmeTsi148.c
    Waf: Leaving directory `/tmp/sh/b-rtems/powerpc/qoriq_e6500_32'
    'build_powerpc/qoriq_e6500_32' finished successfully (0.643s)
    Waf: Entering directory `/tmp/sh/b-rtems/powerpc/qoriq_e6500_64'
    [  76/2031] Compiling bsps/powerpc/shared/vme/vmeTsi148.c
    /home/EB/sebastian_h/src/rtems/bsps/powerpc/shared/vme/vmeTsi148.c: In function 'vmeTsi148FindPciBase':
    /home/EB/sebastian_h/src/rtems/bsps/powerpc/shared/vme/vmeTsi148.c:466:16: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
      466 |         *pbase=(BERegister*)(((pci_ulong)BSP_PCI2LOCAL_ADDR(busaddr)) & ~0xff);
          |                ^
    /home/EB/sebastian_h/src/rtems/bsps/powerpc/shared/vme/vmeTsi148.c: In function 'vmeTsi148InitInstance':
    /home/EB/sebastian_h/src/rtems/bsps/powerpc/shared/vme/vmeTsi148.c:493:33: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
      493 |                                 (unsigned int)base, irq);
          |                                 ^
    /home/EB/sebastian_h/src/rtems/bsps/powerpc/shared/vme/vmeTsi148.c: In function 'vmeTsi148ResetBusXX':
    /home/EB/sebastian_h/src/rtems/bsps/powerpc/shared/vme/vmeTsi148.c:553:9: warning: implicit declaration of function 'rtems_interrupt_disable'; did you mean 'rtems_interrupt_raise'? [-Wimplicit-function-declaration]
      553 |         rtems_interrupt_disable(flags);
          |         ^~~~~~~~~~~~~~~~~~~~~~~
          |         rtems_interrupt_raise
    /home/EB/sebastian_h/src/rtems/bsps/powerpc/shared/vme/vmeTsi148.c:553:9: warning: nested extern declaration of 'rtems_interrupt_disable' [-Wnested-externs]
    /home/EB/sebastian_h/src/rtems/bsps/powerpc/shared/vme/vmeTsi148.c:556:9: warning: implicit declaration of function 'rtems_interrupt_enable'; did you mean 'rtems_interrupt_raise'? [-Wimplicit-function-declaration]
      556 |         rtems_interrupt_enable(flags);
          |         ^~~~~~~~~~~~~~~~~~~~~~
          |         rtems_interrupt_raise
    /home/EB/sebastian_h/src/rtems/bsps/powerpc/shared/vme/vmeTsi148.c:556:9: warning: nested extern declaration of 'rtems_interrupt_enable' [-Wnested-externs]
    /home/EB/sebastian_h/src/rtems/bsps/powerpc/shared/vme/vmeTsi148.c: In function 'tsiVMEISR':
    /home/EB/sebastian_h/src/rtems/bsps/powerpc/shared/vme/vmeTsi148.c:1487:47: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
     1487 | int                                     pin = (int)arg;
          |                                               ^
    /home/EB/sebastian_h/src/rtems/bsps/powerpc/shared/vme/vmeTsi148.c: In function 'connectIsr':
    /home/EB/sebastian_h/src/rtems/bsps/powerpc/shared/vme/vmeTsi148.c:1598:21: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
     1598 |         xx.handle = (rtems_irq_hdl_param)slot;
          |                     ^
    /home/EB/sebastian_h/src/rtems/bsps/powerpc/shared/vme/vmeTsi148.c: In function 'tsi_desc_setnxt':
    /home/EB/sebastian_h/src/rtems/bsps/powerpc/shared/vme/vmeTsi148.c:2401:56: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
     2401 |                 st_be32( &d->dnlal, BSP_LOCAL2PCI_ADDR((uint32_t)n) );
          |                                                        ^
    /home/EB/sebastian_h/src/rtems/bsps/powerpc/shared/vme/vmeTsi148.c:381:45: note: in definition of macro 'BSP_LOCAL2PCI_ADDR'
      381 | #define BSP_LOCAL2PCI_ADDR(l)   (((uint32_t)l)+PCI_DRAM_OFFSET)
          |                                             ^
    /home/EB/sebastian_h/src/rtems/bsps/powerpc/shared/vme/vmeTsi148.c: In function 'vmeTsi148DmaListStartXX':
    /home/EB/sebastian_h/src/rtems/bsps/powerpc/shared/vme/vmeTsi148.c:381:35: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
      381 | #define BSP_LOCAL2PCI_ADDR(l)   (((uint32_t)l)+PCI_DRAM_OFFSET)
          |                                   ^
    /home/EB/sebastian_h/src/rtems/bsps/powerpc/shared/vme/vmeTsi148.c:337:111: note: in definition of macro 'TSI_WR'
      337 | #define TSI_WR(base, reg, val)                  out_be32((volatile uint32_t *)((base) + (reg)/sizeof(*base)), val)
          |                                                                                                               ^~~
    /home/EB/sebastian_h/src/rtems/bsps/powerpc/shared/vme/vmeTsi148.c:2495:64: note: in expansion of macro 'BSP_LOCAL2PCI_ADDR'
     2495 |                 TSI_WR(base, TSI_DNLAL_REG(channel), (uint32_t)BSP_LOCAL2PCI_ADDR(d));
          |                                                                ^~~~~~~~~~~~~~~~~~
    /home/EB/sebastian_h/src/rtems/bsps/powerpc/shared/vme/vmeTsi148.c: In function 'vmeTsi148ResetBusXX':
    /home/EB/sebastian_h/src/rtems/bsps/powerpc/shared/vme/vmeTsi148.c:553:9: warning: 'flags' is used uninitialized [-Wuninitialized]
      553 |         rtems_interrupt_disable(flags);
          |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /home/EB/sebastian_h/src/rtems/bsps/powerpc/shared/vme/vmeTsi148.c:550:15: note: 'flags' was declared here
      550 | unsigned long flags;
          |               ^~~~~
    /home/EB/sebastian_h/src/rtems/bsps/powerpc/shared/vme/vmeTsi148.c: In function 'intDoEnDis':
    /home/EB/sebastian_h/src/rtems/bsps/powerpc/shared/vme/vmeTsi148.c:1862:9: warning: 'flags' may be used uninitialized [-Wmaybe-uninitialized]
     1862 |         rtems_interrupt_disable(flags);
          |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /home/EB/sebastian_h/src/rtems/bsps/powerpc/shared/vme/vmeTsi148.c:1851:17: note: 'flags' was declared here
     1851 | unsigned long   flags, v;
          |                 ^~~~~
    /home/EB/sebastian_h/src/rtems/bsps/powerpc/shared/vme/vmeTsi148.c: In function 'vmeTsi148IntRoute':
    /home/EB/sebastian_h/src/rtems/bsps/powerpc/shared/vme/vmeTsi148.c:1444:1: warning: 'flags' may be used uninitialized [-Wmaybe-uninitialized]
     1444 | rtems_interrupt_disable(flags);
          | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /home/EB/sebastian_h/src/rtems/bsps/powerpc/shared/vme/vmeTsi148.c:1412:38: note: 'flags' was declared here
     1412 | unsigned long   mask, shift, mapreg, flags, wire;
          |                                      ^~~~~
    /home/EB/sebastian_h/src/rtems/bsps/powerpc/shared/vme/vmeTsi148.c: In function 'vmeTsi148ISRGet':
    /home/EB/sebastian_h/src/rtems/bsps/powerpc/shared/vme/vmeTsi148.c:1473:9: warning: 'flags' may be used uninitialized [-Wmaybe-uninitialized]
     1473 |         rtems_interrupt_disable(flags);
          |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /home/EB/sebastian_h/src/rtems/bsps/powerpc/shared/vme/vmeTsi148.c:1463:19: note: 'flags' was declared here
     1463 | unsigned long     flags;
          |                   ^~~~~
    /home/EB/sebastian_h/src/rtems/bsps/powerpc/shared/vme/vmeTsi148.c: In function 'vmeTsi148InstallISR':
    /home/EB/sebastian_h/src/rtems/bsps/powerpc/shared/vme/vmeTsi148.c:1810:17: warning: 'flags' may be used uninitialized [-Wmaybe-uninitialized]
     1810 |                 rtems_interrupt_disable(flags);
          |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /home/EB/sebastian_h/src/rtems/bsps/powerpc/shared/vme/vmeTsi148.c:1796:19: note: 'flags' was declared here
     1796 | unsigned long     flags;
          |                   ^~~~~
    /home/EB/sebastian_h/src/rtems/bsps/powerpc/shared/vme/vmeTsi148.c: In function 'vmeTsi148RemoveISR':
    /home/EB/sebastian_h/src/rtems/bsps/powerpc/shared/vme/vmeTsi148.c:1834:17: warning: 'flags' may be used uninitialized [-Wmaybe-uninitialized]
     1834 |                 rtems_interrupt_disable(flags);
          |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /home/EB/sebastian_h/src/rtems/bsps/powerpc/shared/vme/vmeTsi148.c:1826:19: note: 'flags' was declared here
     1826 | unsigned long     flags;
          |                   ^~~~~
    Waf: Leaving directory `/tmp/sh/b-rtems/powerpc/qoriq_e6500_64' 
    Comment 2
    1. Chris Johns, Mon, 24 Apr 2023 09:13:31 GMT

    I just tried and I am still see the error. I am using:

    [DEFAULT]
    BUILD_TESTS = False
    RTEMS_DEBUG = True
    [powerpc/qoriq_e6500_32]
    [powerpc/qoriq_e6500_64] 
    ruru rtems.git $ /opt/work/rtems/6/bin/powerpc-rtems6-gcc --version
    powerpc-rtems6-gcc (GCC) 12.2.1 20220908 (RTEMS 6, RSB c0edd80bcd27b3dad7ee7acf5ea129e81e6a6f64, Newlib 783133b)
    Copyright (C) 2022 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. 
    Comment 3
    1. Sebastian Huber, Mon, 24 Apr 2023 09:19:40 GMT

    Very strange, I don't get this error with:

    /opt/rtems/6/bin/powerpc-rtems6-gcc --version
    powerpc-rtems6-gcc (GCC) 12.2.1 20230421 (RTEMS 6, RSB 21bf2f3d73e49006cb6fd45f064d6b045bc4ed07, Newlib da40bd6)
    Copyright (C) 2022 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. 
    Comment 4
    1. Joel Sherrill, Thu, 22 Jun 2023 21:03:58 GMT

    Chris.. I thought this was resolved. Can we close?

    Comment 5
    1. Chris Johns, Thu, 22 Jun 2023 21:45:21 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed

    Building now


    4900 - PowerPC score warnings in score headers

    Link https://devel.rtems.org/ticket/4900
    Id 4900
    Reporter Chris Johns
    Created 23 April 2023 22:48:53
    Modified 31 October 2023 11:52:51
    Owner Sebastian Huber <sebastian.huber@…>
    Type defect
    Component score
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority highest
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    Building a few of the PowerPC BSPs with RTEMS_DEBUG = True generates these warnings:

    [ 319/1483] Compiling cpukit/score/cpu/powerpc/cpu.c
    In file included from ../../../cpukit/score/cpu/powerpc/include/rtems/score/cpu.h:59,
    from ../../../cpukit/score/cpu/powerpc/include/rtems/score/cpuimpl.h:42,
    from ../../../cpukit/score/cpu/powerpc/cpu.c:43:
    ../../../cpukit/score/cpu/powerpc/cpu.c: In function '_CPU_Fatal_halt':
    ../../../cpukit/include/rtems/score/basedefs.h:436:33: warning: implicit declaration of function '_Assert' [-Wimplicit-function-declaration]
    436 | #define _Assert_Unreachable() _Assert( 0 )
    | ^~~~~~~
    ../../../cpukit/include/rtems/score/basedefs.h:865:7: note: in expansion of macro '_Assert_Unreachable'
    865 | _Assert_Unreachable(); \
    | ^~~~~~~~~~~~~~~~~~~
    ../../../cpukit/score/cpu/powerpc/cpu.c:361:3: note: in expansion of macro 'RTEMS_UNREACHABLE'
    361 | RTEMS_UNREACHABLE();
    | ^~~~~~~~~~~~~~~~~
    ../../../cpukit/include/rtems/score/basedefs.h:436:33: warning: nested extern declaration of '_Assert' [-Wnested-externs]
    436 | #define _Assert_Unreachable() _Assert( 0 )
    | ^~~~~~~
    ../../../cpukit/include/rtems/score/basedefs.h:865:7: note: in expansion of macro '_Assert_Unreachable'
    865 | _Assert_Unreachable(); \
    | ^~~~~~~~~~~~~~~~~~~
    ../../../cpukit/score/cpu/powerpc/cpu.c:361:3: note: in expansion of macro 'RTEMS_UNREACHABLE'
    361 | RTEMS_UNREACHABLE();
    | ^~~~~~~~~~~~~~~~~

    The score headers basedefs.h header depends on assert.h and assert.h includes basedefs.h at it's top.

    I think this ticket should be set to blocker for the 6.1 release. We should resolve this and the warnings before we make a release.

    Comment 1
    1. Sebastian Huber, Mon, 24 Apr 2023 08:15:52 GMT

    Yes, there is a cyclic dependency. For RTEMS_STATIC_ANALYSIS we need basedefs.h. For RTEMS_UNREACHABLE() we need _Assert().

    I am not sure if the RTEMS_STATIC_ANALYSIS was really a good idea. It is currently just used in assert.h. Maybe we should remove it.

    Comment 2
    1. Chris Johns, Mon, 24 Apr 2023 08:27:17 GMT

    You are the best judge of this. Breaking the dependency would be good to see done.

    Comment 3
    1. Sebastian Huber, Tue, 25 Apr 2023 06:02:19 GMT

    In 9eb5dd3/rtems-central:

    spec: Avoid cyclic header file dependencies There was a cyclic dependency: For RTEMS_STATIC_ANALYSIS we needed basedefs.h in assert.h. For RTEMS_UNREACHABLE() we needed _Assert() from assert.h in basedefs.h. Fix this by introducing _Debug_Unreachable() in basedefs.h. Add RTEMS_FUNCTION_NAME to basedefs.h and use it in basedefs.h and assert.h. Update #4900.
    Comment 4
    1. Sebastian Huber, Tue, 25 Apr 2023 06:06:50 GMT
    2. owner: set to Sebastian Huber <sebastian.huber@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 863b26ee/rtems:

    score: Avoid cyclic header file dependencies There was a cyclic dependency: For RTEMS_STATIC_ANALYSIS we needed basedefs.h in assert.h. For RTEMS_UNREACHABLE() we needed _Assert() from assert.h in basedefs.h. Fix this by introducing _Debug_Unreachable() in basedefs.h. Add RTEMS_FUNCTION_NAME to basedefs.h and use it in basedefs.h and assert.h. Close #4900.
    Comment 5
    1. Sebastian Huber, Tue, 31 Oct 2023 11:52:51 GMT
    2. keywords: qualification added

    4901 - rtems_task_construct Documentation Missing Some Details

    Link https://devel.rtems.org/ticket/4901
    Id 4901
    Reporter Joel Sherrill
    Created 26 April 2023 14:31:48
    Modified 19 May 2023 05:21:42
    Owner Sebastian Huber
    Type defect
    Component doc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The rtems_task_construct directive description has a couple of deficiencies:

    • does not mention or link to RTEMS_TASK_STORAGE_SIZE
    • does not provide rtems_task_config and discuss the fields

    It would be nice to discuss how each of the parameters to rtems_task_create is set/computed when using rtems_task_config.

    I did not look but rtems_message_queue_construct may have similar issues.

    Comment 1
    1. Joel Sherrill, Wed, 26 Apr 2023 14:32:05 GMT
    2. owner: set to Sebastian Huber
    3. status: changed from new to assigned
    Comment 2
    1. Sebastian Huber, Thu, 27 Apr 2023 05:57:24 GMT

    Yes, this is definitely missing. One issue is that we have no documentation of the data structures in the Classic API Guide. They are only present in the Doxygen documentation. My plan is to improve the documentation generator in rtems-central to produce documentation for the data structures.

    Comment 3
    1. Joel Sherrill, Thu, 27 Apr 2023 11:43:15 GMT

    It isn't just the data structure. That could be largely accounted for with a quick mention that rtems_task_config maps to the arguments to rtems_task_create. The problem is specifically stack_size in create becomes storage_size in construct and you have to use a macro on your desired stack_size to fill in the structure. The dtor field is also missing info. You could get by with a bullet list on the structure parameters showing how they map or are used.

    There is also nothing in rtems-examples which uses this.

    Comment 4
    1. Sebastian Huber, Thu, 27 Apr 2023 13:38:13 GMT

    Most of the stuff is already covered in the Doxygen output:

    ​https://github.com/RTEMS/rtems/blob/master/cpukit/include/rtems/rtems/tasks.h#L107

    Comment 5
    1. Sebastian Huber, Fri, 19 May 2023 05:21:42 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In e33eae1/rtems-docs:

    c-user: Generate API type documentation Close #4901.

    4902 - Update zlib to version 1.2.13

    Link https://devel.rtems.org/ticket/4902
    Id 4902
    Reporter Sebastian Huber
    Created 5 May 2023 07:47:24
    Modified 9 May 2023 12:56:31
    Owner Sebastian Huber
    Type defect
    Component lib
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The last zlib update was more than ten years ago. Update it to the latest version. This includes security fixes.

    Comment 1
    1. Sebastian Huber, Fri, 05 May 2023 07:47:49 GMT
    2. summary: changed from Update zlib to latest version to Update zlib to version 1.2.13
    Comment 2
    1. Sebastian Huber, Tue, 09 May 2023 12:56:31 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 1f00afc/rtems:

    zlib: Update from 1.2.5 to 1.2.13 The updated files were extracted from: ​https://www.zlib.net/zlib-1.2.13.tar.xz The archive had an SHA-256 hash value of: d14c38e313afc35a9a8760dadf26042f51ea0f5d154b0630a31da0540107fb98 Close #4902.

    4905 - SuperCore _TOD_Adjust No Longer Referenced and Should be Removed

    Link https://devel.rtems.org/ticket/4905
    Id 4905
    Reporter Joel Sherrill
    Created 15 May 2023 13:39:34
    Modified 16 May 2023 13:21:09
    Owner Joel Sherrill
    Type defect
    Component score
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Apparently with the rework of time handling, this method has become unused and should be removed.

    Comment 1
    1. Joel Sherrill, Mon, 15 May 2023 13:39:44 GMT
    2. owner: set to Joel Sherrill
    3. status: changed from new to assigned
    Comment 2
    1. Joel Sherrill, Tue, 16 May 2023 13:21:09 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 3f4454b/rtems:

    _TOD_Adjust method is unused. Remove it. Use of this method was likely eliminated during the rework to use FreeBSD bintime/sbintime. Close #4905.

    4906 - libbsd not working on nucleo-h743ZI

    Link https://devel.rtems.org/ticket/4906
    Id 4906
    Reporter Ning Yang
    Created 15 May 2023 17:42:30
    Modified 22 June 2023 20:47:49
    Owner  
    Type defect
    Component network/libbsd
    Status closed
    Resolution invalid
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords stm32h7
    Cc  
    Blocking  
    Blocked by  

    Description

    libbsd not working on nucleo-h743ZI.

    I run the libbsd testsuit selectpollkqueue01,get a fatal.

    The same fatal happened in my project.

    __* FATAL __*
    fatal source: 0 (INTERNAL_ERROR_CORE)
    fatal code: 2 (INTERNAL_ERROR_TOO_LITTLE_WORKSPACE)
    RTEMS version: 6.0.0.020163e5b7bb0b4363b57f37729b99becae9c629 RTEMS tools: 12.2.1 20230224 (RTEMS 6, RSB f0e34eab8bf33b833a7d9d0b2bddd3b89f6d83cb, Newlib 17ac400)
    executing

    i used a sh to build libbsd

    cd /home/yangn0/devel/rtems-arm/rtems-libbsd
    ./waf distclean
    ./waf configure --prefix=$HOME/devel/rtems-arm/tools/rtems/6 \
    --rtems-bsps=arm/nucleo-h743zi \
    --buildset=buildset/default.ini
    ./waf
    ./waf install
    Comment 1
    1. Ning Yang, Tue, 16 May 2023 06:44:17 GMT
    2. keywords: stm32h7 added
    3. component: changed from arch/arm to network/libbsd
    Comment 2
    1. Joel Sherrill, Thu, 22 Jun 2023 20:47:17 GMT

    The nucleo-h743ZI only has 1MB RAM. Although we don't have a hard line for the minimum RAM required for libbsd, this is well below the normal for use. We would recommend using lwip instead in such a low RAM environment. Please feel free to ask on devel@ or Discord for help with that.

    Comment 3
    1. Joel Sherrill, Thu, 22 Jun 2023 20:47:49 GMT
    2. status: changed from new to closed
    3. resolution: set to invalid

    There is nothing to fix in this situation. Closing.


    4909 - Multiple Protected Heap Functions are Ununused

    Link https://devel.rtems.org/ticket/4909
    Id 4909
    Reporter Joel Sherrill
    Created 21 May 2023 11:54:39
    Modified 31 October 2023 11:53:04
    Owner Joel Sherrill
    Type defect
    Component score
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    The following functions are unused and should be removed:

    • _Protected_heap_Get_block_size
    • _Protected_heap_Iterate
    • _Protected_heap_Resize_block
    Comment 1
    1. Joel Sherrill, Sun, 21 May 2023 11:54:45 GMT
    2. owner: set to Joel Sherrill
    3. status: changed from new to assigned
    Comment 2
    1. Joel Sherrill, Fri, 26 May 2023 14:52:35 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 63415655/rtems:

    score/src/pheap*: Remove unreferenced methods _Protected_heap_Get_block_size _Protected_heap_Iterate _Protected_heap_Resize_block Closes #4909.
    Comment 3
    1. Sebastian Huber, Tue, 31 Oct 2023 11:53:04 GMT
    2. keywords: qualification added

    4910 - RSB options for python selection

    Link https://devel.rtems.org/ticket/4910
    Id 4910
    Reporter Chris Johns
    Created 23 May 2023 02:49:31
    Modified 30 June 2023 00:14:15
    Owner Chris Johns
    Type enhancement
    Component tool/rsb
    Status assigned
    Resolution  
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    A recent change to the version of GDB means we need python3 development libraries installed as GDB will only build with Python3.

    To aid compatibility for older operating systems provide options to aid the selection of a suitable python. Add support for:

    --with-python2 : command for Python2

    --with-python3 : command for Python3

    --with-python-version : command for a version of Python

    For example:

    --with-python-version=python3.6 
    Comment 1
    1. Chris Johns, Fri, 30 Jun 2023 00:14:15 GMT

    Joel, what do you think?


    4912 - Collect Compression Library Source in Single Place

    Link https://devel.rtems.org/ticket/4912
    Id 4912
    Reporter Joel Sherrill
    Created 26 May 2023 14:55:25
    Modified 6 June 2023 13:49:01
    Owner Joel Sherrill
    Type enhancement
    Component lib
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords zlib, xz, compression
    Cc  
    Blocking  
    Blocked by  

    Description

    Currently zlib is in cpukit/ while xz is in cpukit/libmisc. The purpose of this ticket is to create cpukit/compression and move both to it.

    This ticket does not add, remove, or upgrade the existing source. It is intended to just document improving the organization.

    Comment 1
    1. Joel Sherrill, Fri, 26 May 2023 14:55:32 GMT
    2. owner: set to Joel Sherrill
    3. status: changed from new to assigned
    Comment 2
    1. Joel Sherrill, Tue, 06 Jun 2023 13:49:01 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In bb5dbff7/rtems:

    Move various compression libraries into single subdirectory This improves the organization of the cpukit. Closes #4912.

    4913 - libbsd/ipsec-tools: Problems with more than 64 open files

    Link https://devel.rtems.org/ticket/4913
    Id 4913
    Reporter Christian Mauderer
    Created 31 May 2023 05:56:47
    Modified 31 May 2023 06:04:26
    Owner Christian Mauderer
    Type defect
    Component network/libbsd
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    IPSec with racoon doesn't work if there are more than 64 open file descriptors in the system.

    Comment 1
    1. Christian Mauderer, Wed, 31 May 2023 06:01:36 GMT

    In dfb2144/rtems-libbsd:

    ipsec-tools: Fix copying fd_set prior to select The racoon session code copies an fd_set from one variable into another prior to calling select. That works well for simple structures. In libbsd we have to allocate fd_sets instead of using fixed structures to avoid a problem with file numbers bigger than FD_SETSIZE. The simple assignment didn't work in that case. This patch makes sure that a memcpy is used instead. Update #4913
    Comment 2
    1. Christian Mauderer, Wed, 31 May 2023 06:03:37 GMT

    In 8ed211f/rtems-libbsd:

    ipsec-tools: Fix copying fd_set prior to select The racoon session code copies an fd_set from one variable into another prior to calling select. That works well for simple structures. In libbsd we have to allocate fd_sets instead of using fixed structures to avoid a problem with file numbers bigger than FD_SETSIZE. The simple assignment didn't work in that case. This patch makes sure that a memcpy is used instead. Update #4913
    Comment 3
    1. Christian Mauderer, Wed, 31 May 2023 06:04:26 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    4915 - Building sphinx 7.0.1 fails

    Link https://devel.rtems.org/ticket/4915
    Id 4915
    Reporter Andrew Butterfield
    Created 7 June 2023 10:27:01
    Modified 21 November 2023 13:35:58
    Owner Utkarsh Verma <utkarsh@…>
    Type defect
    Component tool
    Status closed
    Resolution wontfix
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords sphinx, qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    I am trying to install sphinx on an Apple Silicon OSX machine.
    I've already done this successfully in the past on a similar machine.

    This time, after following steps in the rtems-docs README.txt,
    I do ./waf , it does some stuff and then:

    [ 7/10] Compiling common/_static/favicon.ico
    [ 8/10] Compiling common/_static/my-styles.css
    [ 9/10] Compiling common/_static/logo.png
    [10/10] Compiling common/_static/style.css
    Theme error:
    An error happened in rendering the page bld/index.
    Reason: UndefinedError("'style' is undefined")

    I'm using pip 22.2.1, Python 3.10.6
    and pip3 installs sphinx 7.0.1

    (sphinx) ab-rtems-docs% pip3 install sphinx
    Requirement already satisfied: sphinx in ./sphinx/lib/python3.10/site-packages (7.0.1)
    Comment 1
    1. Utkarsh Verma, Wed, 14 Jun 2023 05:25:08 GMT
    2. owner: set to Utkarsh Verma <utkarsh@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In 4c87f9b/rtems-docs:

    eng: Fix builds for newer Sphinx versions (>=7) The current Sphinx theme depends on the style parameter which got deprecated in v5.1 and finally got removed in v7. Now, the styles key should be preferred which is a list of stylesheets. This commit implements this change. Closes #4915
    Comment 2
    1. Joel Sherrill, Wed, 26 Jul 2023 18:38:09 GMT

    In 13237ab/rtems-docs:

    layout.html: Revert patch forcing Spinx to >= 6.0 Unfortunately, updating past Sphinx 5.x results in unordered bullet lists not formatting correctly as show in a screen capture attached to #4928. Revert this patch until the issue is resolved and output is reviewed for other potential issues.
    From: Utkarsh Verma Date: Wed, 14 Jun 2023 05:36:26 +0000 Subject: [PATCH] eng: Fix builds for newer Sphinx versions (>=7)
    The current Sphinx theme depends on the style parameter which got deprecated in v5.1 and finally got removed in v7. Now, the styles key should be preferred which is a list of stylesheets. This commit implements this change.
    Updates #4915. Updates #4928.
    Comment 3
    1. Joel Sherrill, Wed, 26 Jul 2023 18:59:53 GMT
    2. status: changed from closed to reopened
    3. resolution: fixed deleted

    My patch set was a work-around to not use >= 6. This needs a permanent fix.

    Comment 4
    1. Sebastian Huber, Tue, 01 Aug 2023 07:20:04 GMT
    2. keywords: qualification added
    Comment 5
    1. Sebastian Huber, Tue, 01 Aug 2023 07:20:53 GMT
    2. priority: changed from high to normal
    3. status: changed from reopened to closed
    4. resolution: set to wontfix
    5. milestone: changed from Indefinite to 6.1
    Comment 6
    1. Sebastian Huber, Tue, 21 Nov 2023 13:35:58 GMT

    In 027ed52/rtems-central:

    requirements.txt: Set maximum Sphinx version Update #4915. Update #4928.

    4920 - libdl does not support TLS

    Link https://devel.rtems.org/ticket/4920
    Id 4920
    Reporter Chris Johns
    Created 22 June 2023 22:08:14
    Modified 19 February 2024 03:48:28
    Owner  
    Type defect
    Component lib/dl
    Status new
    Resolution  
    Version 6
    Milestone 6.1
    Priority normal
    Severity blocker
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    The symbol geernator does not create the correct symbols for libdl to use. And libdl does not handle TLS symbols correctly.

    There is not backend support for TLS in the arch code.

    Comment 1
    1. Chris Johns, Thu, 29 Jun 2023 23:29:57 GMT

    We need to add support to din the TSL base for a thread for each architecture:

    aarch64 arm bfin i386 lm32 m68k mips moxie powerpc riscv sparc v850 AARCH64
    static void* rtems_rtl_tls_get_base (void) {
      intptr_t value;
      __asm__ volatile (
        \"mrs %0, TPIDR_EL0\" : \"=&r\" ( value ) : : \"memory\"
      );",
      return value;
    } 
    Comment 2
    1. Chris Johns, Thu, 29 Jun 2023 23:30:46 GMT

    Joel, we voted and you are best to do this as you have all arch tools built.

    Comment 3
    1. Chris Johns, Sat, 12 Aug 2023 06:33:28 GMT

    Test dl11 fails on arm with:

    *** BEGIN OF TEST libdl (RTL) 11 ***
    *** TEST VERSION: 6.0.0.10da3025186cadf2d78e34cf81cce02121069d44
    *** TEST STATE: EXPECTED_PASS
    *** TEST BUILD: RTEMS_DEBUG RTEMS_POSIX_API
    *** TEST TOOLS: 12.3.1 20230626 (RTEMS 6, RSB 8e568b2ca3489d6bfa48e1d29618ea9b48a5b408, Newlib 4c7d0df)
    load: /dl11-o1.o
    handle: 0x20e148 loaded
    dlsym ptr_call failed: ret value bad 

    and on aarch64 with:

    *** BEGIN OF TEST libdl (RTL) 11 ***
    *** TEST VERSION: 6.0.0.10da3025186cadf2d78e34cf81cce02121069d44
    *** TEST STATE: EXPECTED_PASS
    *** TEST BUILD: RTEMS_DEBUG RTEMS_POSIX_API
    *** TEST TOOLS: 12.3.1 20230626 (RTEMS 6, RSB 8e568b2ca3489d6bfa48e1d29618ea9b48a5b408, Newlib 4c7d0df)
    load: /dl11-o1.o
    handle: 0x40118610 has unresolved externals
    dlsym ptr_call failed: ret value bad 

    The ptr_call asks for a function pointer to:

    int *get_errno_ptr (void)
    {
      return &errno;
    } 

    and errno is a TLS variable.

    Comment 4
    1. Chris Johns, Tue, 15 Aug 2023 05:55:47 GMT

    I have posted a patch for the general changes need plus dl11 is working for the following architectures:

    aarch64 arm powerpc sparc
    Comment 5
    1. Chris Johns, Wed, 16 Aug 2023 00:52:12 GMT

    Remaining archs are:

    bfin i386 lm32 m68k mips moxie riscv v850

    I do not know which of these archs support TLS.

    Comment 6
    1. Joel Sherrill, Wed, 16 Aug 2023 14:36:40 GMT

    The following table summarises the state of TLS support for each architecture listed previously. I based this on grep'ing for TLS in the score/cpu port directory and looking at generated assembly.

    ArchitectureMechanismSupport in RTEMS bfin _emutls_get_address() No i386 %gs register when not compiled for PIC Yes lm32 emutls_get_address() No m68k m68k_read_tp() Yes mips Illegal Instruction Exception No moxie emutls_get_address() No riscv %tp register Yes v850 _emutls_get_address() No

    Question: Some of the architectures have an implementation of tls_get_addr(). Could this be copied and used as emutls_get_addr()?

    Question: Do we want to disable use of TLS in the tools for those we have no TLS support for? I think this is the safest option.

    I used this program to see what GCC generates.

    __thread int i;
    int returni(void)
    {
      return i;
    } 

    Note: For the MIPS, see gcc/config/mips/mips.md for a description of the illegal instruction used.

    Comment 7
    1. Gedare Bloom, Wed, 16 Aug 2023 20:09:24 GMT

    v850 is slated for deprecation. quite likely so should any of the architectures that don't have TLS

    Comment 8
    1. Chris Johns, Wed, 16 Aug 2023 23:59:05 GMT

    Question: Do we want to disable use of TLS in the tools for those we have no TLS support for? I think this is the safest option.

    The change is not adding the ability to load TLS variables. That is out is scope for this change. The regression is only for archs that support TLS and where newlib has been updated to use TLS for reeent data. If this newlib has not been been updated there is no regression so I do not think we need to disable archs.

    __Note__:

    If an arch supports TLS and newlib has not been updated and a user attempts to load a TLS variable an error is generated which is the same error as before. The rtems_rtl_tls_get_base() call needs to be present if the base image has TSL symbols. If it does not there should be no references.
    Comment 9
    1. Chris Johns, Wed, 16 Aug 2023 23:59:56 GMT

    Question: Some of the architectures have an implementation of tls_get_addr(). Could this be copied and used as emutls_get_addr()?

    If there is a call that can be made then it can be used.

    Comment 10
    1. Chris Johns, Thu, 17 Aug 2023 00:01:50 GMT

    v850 is slated for deprecation. quite likely so should any of the architectures that don't have TLS

    The rtrms_rtl_tls_get_base() call can return NULL for this arch. An active user can update or ask to have the code updated. Is the compiler defined __v850__?

    Comment 11
    1. Chris Johns, Thu, 17 Aug 2023 01:55:52 GMT
    Test results

    This is the test results for the ones I can simulate using the v2 patch.

    AARCH64

    Failures:

    dl06.exe dl09.exe ARM

    Failures:

    dl06.exe dl09.exe PowerPC

    Failures:

    dl06.exe dl09.exe SPARC

    Expected Fail:

    dl06.exe
    Comment 12
    1. Chris Johns, Mon, 21 Aug 2023 00:37:34 GMT

    In aba4d3b/rtems-tools:

    linker: Add TLS support to the symbol table generator Updates #4920
    Comment 13
    1. Chris Johns, Mon, 21 Aug 2023 00:53:33 GMT

    In 27da374/rtems:

    libdl: Add support to import base image TLS symbols This change requires an rtems-tools update for symbol generation. Working architectures: aarch64 arm powerpc sparc No newlib TLS support but checked: i386 m69k Updates #4920
    Comment 14
    1. Chris Johns, Tue, 22 Aug 2023 01:34:55 GMT

    In 0860f99/rtems-source-builder:

    rtems/tools: Pick up the rtems-syms and rtems-test sis changes Updates #4920
    Comment 15
    1. Kinsey Moore, Mon, 28 Aug 2023 15:31:32 GMT

    With the update from Chris above, that leaves these architectures to check:

    bfin lm32 mips moxie riscv v850
    Comment 16
    1. Chris Johns, Tue, 29 Aug 2023 01:24:19 GMT

    I think v850 can be left if it builds as it is to be removed once we branch 6 for release. For the others knowing which has TLS support enabled would be a good start.

    Comment 17
    1. Sebastian Huber, Mon, 18 Sep 2023 05:24:15 GMT

    In 49a88a7/rtems:

    score: Add _CPU_Get_TLS_thread_pointer() Add _CPU_Get_TLS_thread_pointer() to get the thread pointer which is used to get the address of thread-local storage objects associated with a thread. Update #4920.
    Comment 18
    1. Sebastian Huber, Mon, 18 Sep 2023 05:24:17 GMT

    In de25f012/rtems:

    libdl: Use _CPU_Get_TLS_thread_pointer() Update #4920.
    Comment 19
    1. Kinsey Moore, Thu, 21 Sep 2023 21:53:37 GMT

    Remaining items on the list here are:

    bfin lm32 mips moxie

    I'm building tools to check these.

    Comment 20
    1. Kinsey Moore, Fri, 22 Sep 2023 17:42:33 GMT

    For blackfin in sptls01.exe:

    Retrieving the TLS space:

    331c: ff e3 22 f5 CALL 0x1d60 <_emutls_get_address>; 3320: 20 32 P4 = R0;

    Retrieving the value for the only TLS item in this test:

    3322: 60 99 R0 = B[P4] (X); 3324: 00 43 R0 = R0.B (X);

    Setting the value for the only TLS item in this test to 5:

    3340: 28 60 R0 = 0x5 (X); /* R0=0x5( 5) */ 3342: 20 9b B[P4] = R0;

    Comment 21
    1. Kinsey Moore, Fri, 22 Sep 2023 17:54:40 GMT

    For LM32 in sptls01.exe:

    Retrieving TLS space:

    8000498: f8 00 24 2f calli 8009554

    Retrieving the value:

    80004a0: 40 22 00 00 lbu r2,(r1+0)

    Storing the value:

    80004cc: 31 81 00 00 sb (r12+0),r1 (there was a "mv r12,r1" in the interim)

    Comment 22
    1. Kinsey Moore, Fri, 22 Sep 2023 18:13:43 GMT

    For MIPS in sptls01.exe:

    Retrieving TLS space: 80010334: 7c03e83b rdhwr v0,$29

    Retrieving value: 80010344: 90429000 lbu v0,-28672(v0) (negative value is a sign-extended 0x9000, significance not understood)

    Storing value: 800106bc: 24030005 li v1,5 800106c0: a0439000 sb v1,-28672(v0)

    Comment 23
    1. Kinsey Moore, Fri, 22 Sep 2023 18:18:30 GMT

    For Moxie in sptls01.exe:

    Retrieving TLS space:

    2022: 03 00 00 00 jsra 1c4e 2026: 1c 4e

    (return value stored in r0)

    Retrieving value:

    1e98: 1c 32 ld.b $r1, ($r0)

    Storing value (TLS address moved to r10):

    202a: 1b 20 00 00 ldi.b $r0, 0x5 202e: 00 05 2030: 1e c2 st.b ($r10), $r0

    Comment 24
    1. Sebastian Huber, Wed, 18 Oct 2023 09:00:32 GMT

    In a4e1b7f/rtems-tools:

    linker: Fix typo in symbol table generator Updates #4920.
    Comment 25
    1. Joel Sherrill, Wed, 18 Oct 2023 12:37:56 GMT

    The rdhwr instruction is undefined and should generate an exception. It is expected that the OS will provide the TLS code in that exception. See ​https://www.linux-mips.org/wiki/NPTL for some details.

    I have hoped there was a way in GCC to switch to the generic subroutine call but I've never tripped across it. Perhaps something might be obvious if you search for that instruction in the mips specific GCC code.

    Replying to Kinsey Moore:

    For MIPS in sptls01.exe:

    Retrieving TLS space: 80010334: 7c03e83b rdhwr v0,$29

    Retrieving value: 80010344: 90429000 lbu v0,-28672(v0) (negative value is a sign-extended 0x9000, significance not understood)

    Storing value: 800106bc: 24030005 li v1,5 800106c0: a0439000 sb v1,-28672(v0)

    Comment 26
    1. Kinsey Moore, Wed, 18 Oct 2023 13:17:45 GMT

    The MIPS CPU port in RTEMS doesn't yet support it, but this would be a good application of RTEMS_EXCEPTION_EXTENSIONS to accommodate the existing mechanism.

    Replying to Joel Sherrill:

    The rdhwr instruction is undefined and should generate an exception. It is expected that the OS will provide the TLS code in that exception. See ​https://www.linux-mips.org/wiki/NPTL for some details.

    I have hoped there was a way in GCC to switch to the generic subroutine call but I've never tripped across it. Perhaps something might be obvious if you search for that instruction in the mips specific GCC code.

    Comment 27
    1. Sebastian Huber, Tue, 31 Oct 2023 11:53:20 GMT
    2. keywords: qualification added
    Comment 28
    1. Kinsey Moore, Fri, 16 Feb 2024 01:04:49 GMT

    It's on my tasklist to update this issue with the current status.

    Comment 29
    1. Kinsey Moore, Mon, 19 Feb 2024 03:48:28 GMT

    Status update:

    bfin, lm32, moxie: Generated code uses emutls_get_address() to get the TLS base address. This is not yet implemented by _CPU_Get_TLS_thread_pointer().

    mips: Generated code uses the rdhwr instruction. This instruction is not yet used by _CPU_Get_TLS_thread_pointer() and, even if it were, RTEMS does not support it. There is no known way to prevent gcc from using this instruction to retrieve the TLS base address. This requires emulation of this instruction by RTEMS kernel code, possibly using RTEMS_EXCEPTION_EXENSIONS which are not yet available for this platform. There are at least 3 subtasks required to get this working on mips:

    usage of rdhwr in _CPU_Get_TLS_thread_pointer() implementation of RTEMS_EXCEPTION_EXENSIONS or equivalent usage of the above to emulate rdhwr

    v850: Slated for removal as stated above, not considered.

    or1k, sh, sparc64, x86_64: These do not support dynamic loading and are not being considered for this ticket.

    aarch64, arm, i386, m68k, microblaze, nios2, powerpc, riscv, sparc: _CPU_Get_TLS_thread_pointer() is implemented and expected to function correctly.


    4921 - Tool versions for RTEMS 6.1 release

    Link https://devel.rtems.org/ticket/4921
    Id 4921
    Reporter Sebastian Huber
    Created 3 July 2023 07:11:02
    Modified 28 November 2023 22:24:49
    Owner Chris Johns
    Type task
    Component tool/rsb
    Status assigned
    Resolution  
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking 4768
    Blocked by  

    Description

    • GCC 13.2
    • Binutils 2.41
    • GDB 13.2
    • Newlib TBD
    Comment 1
    1. Sebastian Huber, Mon, 03 Jul 2023 07:11:47 GMT
    2. owner: set to chris.johns
    3. status: changed from new to assigned
    Comment 2
    1. Sebastian Huber, Mon, 03 Jul 2023 07:12:51 GMT
    2. owner: changed from chris.johns to Chris Johns
    Comment 3
    1. Chris Johns, Mon, 03 Jul 2023 21:54:59 GMT
    2. blocking: set to 4768
    Comment 4
    1. Sebastian Huber, Tue, 25 Jul 2023 05:14:55 GMT

    In fd3ab60/rtems-source-builder:

    6: Use GDB 13.2 Prepare for RTEMS 6.1 release. Update #4921.
    Comment 5
    1. Sebastian Huber, Tue, 25 Jul 2023 05:14:56 GMT

    In 96b1140/rtems-source-builder:

    6: Use libexpat 2.5.0 This version contains security fixes. Prepare for RTEMS 6.1 release. Update #4921.
    Comment 6
    1. Sebastian Huber, Thu, 23 Nov 2023 06:25:26 GMT

    In df69080/rtems-source-builder:

    6: Use GCC 13.2 Prepare for RTEMS 6.1 release. Update #4921.
    Comment 7
    1. Sebastian Huber, Thu, 23 Nov 2023 06:25:28 GMT

    In d4d0850/rtems-source-builder:

    6: Use Binutils 2.41 Prepare for RTEMS 6.1 release. Update #4921.
    Comment 8
    1. Chris Johns, Tue, 28 Nov 2023 22:24:49 GMT

    In 9e57632/rtems-source-builder:

    6: Fix gcc-13 support for MacOS Update #4921

    4923 - FPU context init/switch not working well on more than 2 tasks on Cortex-Mx/ARMv7-M platform

    Link https://devel.rtems.org/ticket/4923
    Id 4923
    Reporter kgardas
    Created 7 July 2023 09:47:34
    Modified 31 January 2024 18:30:49
    Owner Cedric Berger
    Type defect
    Component arch/arm
    Status accepted
    Resolution  
    Version 6
    Milestone 6.1
    Priority normal
    Severity major
    Keywords  
    Cc cedric@…
    Blocking  
    Blocked by  

    Description

    While working on stm32h7 I've noted strange results from fpu calculations when several tasks are involved. I've minimized that to attach testcase. The testcase runs well on Xilinx/A9/Qemu and BeagleBone? White platforms (ARMv7-A), but fails by providing wrong output on ARMv7-M (STM32H757i-eval).

    The core of the testcase is a comparison of power of two done on integer by shifting and by calling C pow function with using double. When there is discrepancy in comparison of those, error is signaled and counted. The output then prints number of test run/number of failures and this all for Init and 4 other tasks created. The first error in comparison is also signaled for every task where it happen by clear 'ERROR' message. The output from H7 looks like:

    initializing...
    main task infinite loop.
    ERROR, computation failed in fpu_task_pow2
    ERROR, computation failed in fpu_task_pow3
    ERROR, computation failed in fpu_task_pow4
    ERROR, computation failed in Init
    INIT: 1000/1000, T1: 38985/0, T2: 39802/39802, T3: 39735/39735, T4: 39804/39804
    INIT: 2000/1000, T1: 78030/0, T2: 79663/79663, T3: 79508/79508, T4: 79650/79650
    INIT: 3000/1000, T1: 117100/0, T2: 119517/119517, T3: 119281/119281, T4: 119513/119513
    INIT: 4000/2000, T1: 156138/0, T2: 159385/159385, T3: 159054/159054, T4: 159355/159355
    INIT: 5000/2000, T1: 195198/0, T2: 199242/199242, T3: 198827/198827, T4: 199195/199195
    INIT: 6000/2000, T1: 234238/0, T2: 239111/239111, T3: 238599/238599, T4: 239054/239054
    INIT: 7000/2000, T1: 273278/0, T2: 278961/278961, T3: 278372/278372, T4: 278903/278903
    INIT: 8000/2000, T1: 312315/0, T2: 318807/318807, T3: 318145/318145, T4: 318740/318740
    INIT: 9000/2000, T1: 351353/0, T2: 358628/358628, T3: 357918/357918, T4: 358600/358600
    INIT: 10000/2000, T1: 390393/0, T2: 398463/398463, T3: 397691/397691, T4: 398444/398444
    INIT: 11000/2000, T1: 429431/0, T2: 438302/438302, T3: 437464/437464, T4: 438279/438279
    INIT: 12000/2000, T1: 468470/0, T2: 478152/478152, T3: 477236/477236, T4: 478123/478123
    INIT: 13000/2000, T1: 507506/0, T2: 518006/518006, T3: 517009/517009, T4: 517961/517961
    ...

    as you can see computation is always good (0 error) on T1 task while it is always bad on T2, T3, T4 tasks. Sometimes it is even bad on Init task.

    Expected output from BeagleBone? looks:

    initializing...
    main task infinite loop.
    INIT: 1000/0, T1: 8028/0, T2: 8042/0, T3: 8043/0, T4: 8043/0
    INIT: 2000/0, T1: 16053/0, T2: 16084/0, T3: 16084/0, T4: 16085/0
    INIT: 3000/0, T1: 24076/0, T2: 24125/0, T3: 24125/0, T4: 24126/0
    INIT: 4000/0, T1: 32097/0, T2: 32163/0, T3: 32165/0, T4: 32167/0
    INIT: 5000/0, T1: 40120/0, T2: 40204/0, T3: 40207/0, T4: 40208/0
    ...

    The idea here is that task context initialization or switch is not working well on v7-M platform.

    Attachments:

    1 kgardas, Fri, 07 Jul 2023 09:48:03 GMT
      attach: set to init.c
     
    2 kgardas, Fri, 07 Jul 2023 10:19:26 GMT
      attach: set to init.2.c
     
    3 Cedric Berger, Tue, 06 Feb 2024 15:04:10 GMT
      attach: set to bug-1-make-paranoia-test-fail.patch
     
    4 Cedric Berger, Tue, 06 Feb 2024 15:04:50 GMT
      attach: set to fix-1-save-and-restore-fpscr.patch
     
    5 Cedric Berger, Tue, 06 Feb 2024 15:05:30 GMT
      attach: set to fix-2-clean-initial-thread-frame.patch
     
    Comment 1
    1. kgardas, Fri, 07 Jul 2023 10:23:37 GMT

    Testing on nucleo-h743zi (most close to original platform of stm32h743-eval I have here) reveals same results as from stm32h757i-eval: (although to get failure on Init takes more time)

    initializing...
    main task infinite loop.
    ERROR, computation failed in fpu_task_pow2
    ERROR, computation failed in fpu_task_pow3
    ERROR, computation failed in fpu_task_pow4
    INIT: 1000/0, T1: 15085/0, T2: 15336/15336, T3: 15351/15351, T4: 15356/15356
    INIT: 2000/0, T1: 30162/0, T2: 30685/30685, T3: 30716/30716, T4: 30727/30727
    INIT: 3000/0, T1: 45239/0, T2: 46035/46035, T3: 46080/46080, T4: 46098/46098
    INIT: 4000/0, T1: 60318/0, T2: 61384/61384, T3: 61429/61429, T4: 61468/61468
    INIT: 5000/0, T1: 75419/0, T2: 76733/76733, T3: 76794/76794, T4: 76839/76839
    INIT: 6000/0, T1: 90496/0, T2: 92082/92082, T3: 92159/92159, T4: 92210/92210
    INIT: 7000/0, T1: 105575/0, T2: 107432/107432, T3: 107524/107524, T4: 107581/107581
    INIT: 8000/0, T1: 120650/0, T2: 122799/122799, T3: 122888/122888, T4: 122952/122952
    INIT: 9000/0, T1: 135725/0, T2: 138167/138167, T3: 138252/138252, T4: 138322/138322
    INIT: 10000/0, T1: 150799/0, T2: 153535/153535, T3: 153617/153617, T4: 153693/153693
    INIT: 11000/0, T1: 165874/0, T2: 168903/168903, T3: 168981/168981, T4: 169064/169064
    INIT: 12000/0, T1: 180947/0, T2: 184253/184253, T3: 184346/184346, T4: 184435/184435
    INIT: 13000/0, T1: 196021/0, T2: 199621/199621, T3: 199711/199711, T4: 199805/199805
    INIT: 14000/0, T1: 211114/0, T2: 214989/214989, T3: 215075/215075, T4: 215176/215176
    INIT: 15000/0, T1: 226187/0, T2: 230357/230357, T3: 230440/230440, T4: 230547/230547
    INIT: 16000/0, T1: 241261/0, T2: 245726/245726, T3: 245805/245805, T4: 245918/245918
    INIT: 17000/0, T1: 256335/0, T2: 261094/261094, T3: 261169/261169, T4: 261289/261289
    INIT: 18000/0, T1: 271409/0, T2: 276463/276463, T3: 276534/276534, T4: 276659/276659
    ERROR, computation failed in Init
    INIT: 19000/1000, T1: 286484/0, T2: 291832/291832, T3: 291899/291899, T4: 292030/292030
    INIT: 20000/1000, T1: 301565/0, T2: 307199/307199, T3: 307264/307264, T4: 307398/307398
    INIT: 21000/1000, T1: 316637/0, T2: 322550/322550, T3: 322628/322628, T4: 322765/322765 
    Comment 2
    1. Sebastian Huber, Fri, 07 Jul 2023 13:15:38 GMT

    Does the spcontext01 check the floating-point registers on this BSP and what is the outcome of this test?

    Comment 3
    1. kgardas, Fri, 07 Jul 2023 13:25:38 GMT

    Here is the output of spcontext01 on nucleo-h743zi:

    *** BEGIN OF TEST SPCONTEXT 1 ***
    *** TEST VERSION: 6.0.0.6264b14804bbe21f13d4691160b45e208286abaa
    *** TEST STATE: EXPECTED_PASS
    *** TEST BUILD:
    *** TEST TOOLS: 12.2.1 20230224 (RTEMS 6, RSB 7153c2f1dcfb83b154b976298699c26e793a33dd, Newlib 17ac400)
    Test configuration N N N... done
    Test configuration N N F... done
    Test configuration N F N... done
    Test configuration N F F... done
    Test configuration F N N... done
    Test configuration F N F... done
    Test configuration F F N... done
    Test configuration F F F... done
    *** END OF TEST SPCONTEXT 1 ***
    [ RTEMS shutdown ]
    RTEMS version: 6.0.0.6264b14804bbe21f13d4691160b45e208286abaa
    RTEMS tools: 12.2.1 20230224 (RTEMS 6, RSB 7153c2f1dcfb83b154b976298699c26e793a33dd, Newlib 17ac400)
    executing thread ID: 0x0a010001
    executing thread name: UI1 

    Let me know if there is anything I should test here. I have some spare time at my disposal, but I'd need to be kicked into the right direction. Currently studding Cortex-M lazy stacking and context switching and RTEMS book is ordered as a backup and will be here probably next week. I'll also provide few registers dumps for your information...

    Comment 4
    1. Sebastian Huber, Fri, 07 Jul 2023 14:05:26 GMT

    Maybe we don't save a status register related to the FPU.

    Comment 5
    1. Joel Sherrill, Fri, 07 Jul 2023 14:19:47 GMT

    Maybe the FPU context isn't properly initialized for this CPU variant. The first context switch restore is handled special in _Thread_Handler. Easy enough to break there and see what is actually being restored. If it's wrong, then that's the culprit.

    Comment 6
    1. kgardas, Fri, 07 Jul 2023 14:48:04 GMT

    Ad _Thread_Handler breakpoint:

    (gdb) b _Thread_Handler
    Breakpoint 1 at 0x8003748: file ../../../cpukit/include/rtems/score/percpu.h, line 719.
    Note: automatically using hardware breakpoints for read-only addresses.
    (gdb) c
    Continuing.
    Breakpoint 1, _Thread_Handler ()
        at ../../../cpukit/include/rtems/score/percpu.h:719
    719       return cpu->executing;
    (gdb) where
    #0  _Thread_Handler () at ../../../cpukit/include/rtems/score/percpu.h:719
    #1  0x08003748 in _Thread_Get (id=, lock_context=0x0)
        at ../../../cpukit/score/src/threadget.c:63
    Backtrace stopped: previous frame identical to this frame (corrupt stack?)
    (gdb) c
    Continuing.
    Breakpoint 1, _Thread_Handler ()
        at ../../../cpukit/include/rtems/score/percpu.h:719
    719       return cpu->executing;
    (gdb) c
    Continuing.
    Breakpoint 1, _Thread_Handler ()
        at ../../../cpukit/include/rtems/score/percpu.h:719
    719       return cpu->executing;
    (gdb) c
    Continuing.
    Breakpoint 1, _Thread_Handler ()
        at ../../../cpukit/include/rtems/score/percpu.h:719
    719       return cpu->executing; 

    this looks like some macro executing:

    static inline struct _Thread_Control *_Per_CPU_Get_executing(
      const Per_CPU_Control *cpu
    )
    {
      return cpu->executing;
    } 
    Comment 7
    1. Sebastian Huber, Thu, 13 Jul 2023 12:32:33 GMT

    We were able to reproduce the issue. It is a problem in the FPU context save/restore during interrupt processing. Under certain conditions, the FPU context is restored from an uninitialized frame which could enable the flush-to-zero configuration. I am currently quite busy. I will add it to my TODO list, but it could be September/October?.

    Comment 8
    1. kgardas, Thu, 13 Jul 2023 12:43:11 GMT

    Sebastian, thanks a lot for the information. Could you give me as much information as possible with regarding to the issue as there is a high chance I find some time to deal it again before your available timeframe. For example I'm curious is it related to FPU lazy stack saving which is used and enforced by the RTEMS code? Knowing all information about it from you, will certainly help with possible fixing of the issue on our side. Thanks a lot!

    Comment 9
    1. Sebastian Huber, Thu, 13 Jul 2023 13:23:33 GMT

    The FPU context corruption happens in _ARMV7M_Pendable_service_call(). Somehow the FPU context is not restored from the right frame position in certain cases. It is not clear, why this error doesn't show up in the spcontext01 test.

    Comment 10
    1. kgardas, Thu, 27 Jul 2023 18:45:22 GMT

    I consider this issue to be release critical as it affects one of major platforms (ARMv7-M) and makes FPU computation unreliable/unpredictable there. Hence switching milestone to 6.1. Please discuss if you do not think so.

    Comment 11
    1. kgardas, Thu, 27 Jul 2023 18:45:55 GMT
    2. milestone: set to 6.1
    Comment 12
    1. Cedric Berger, Wed, 31 Jan 2024 18:28:00 GMT
    2. cc: cedric@… added
    Comment 13
    1. Cedric Berger, Wed, 31 Jan 2024 18:30:49 GMT
    2. owner: set to Cedric Berger
    3. status: changed from new to accepted
    4. version: set to 6

    I will try to work on that in February.


    4924 - Add Regulator Helper to RTEMS

    Link https://devel.rtems.org/ticket/4924
    Id 4924
    Reporter Joel Sherrill
    Created 7 July 2023 20:31:03
    Modified 16 August 2023 15:10:43
    Owner Joel Sherrill
    Type enhancement
    Component lib
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    This is to add the Regulator Helper. This will include the regulator itself, a test with full coverage, an example for rtems-examples, and a chapter in the Classic API Guide.

    The regulator is designed to sit logically between two entities -- a source and a destination, where it limits the traffic sent to the destination to prevent it from being flooded with messages from the source. This can be used to accommodate bursty input from a source and meter it out to a destination.

    Comment 1
    1. Joel Sherrill, Fri, 07 Jul 2023 20:31:10 GMT
    2. owner: set to Joel Sherrill
    3. status: changed from new to assigned
    Comment 2
    1. z.ling111, Sun, 09 Jul 2023 01:12:13 GMT

    Hello joel intrested in working on this ticket would like some more info.

    Comment 3
    1. Joel Sherrill, Sun, 09 Jul 2023 14:57:23 GMT

    The code was posted to devel@ for review Friday. Documentation will follow soon. The most helpful thing would be to review this code. Beyond this help is needed to address tickets with a 6.1 target.

    Comment 4
    1. Joel Sherrill, Fri, 11 Aug 2023 18:21:24 GMT

    In fd69308/rtems:

    Add the Regulator Interface and test Updates #4924. The Regulator is an application support class which is used to deal with the scenario where there is a bursty input source which needs to be metered out to a destination sink. The maximum size of bursts needs to be known and the delivery method must be configured to deliver messages at a rate that allows the traffic to not overflow.
    Comment 5
    1. Joel Sherrill, Wed, 16 Aug 2023 15:10:43 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    Chapter added to the Classic API Guide and an example added to rtems-examples without having the ticket tagged:

    ​https://git.rtems.org/rtems-docs/commit/?id=7bd117cb00b68e5cb89aa8c237a813730876817e ​https://git.rtems.org/rtems-examples/commit/?id=d11f57cff6621fefac1d1bca5d013b8c79171cc7

    This can now be closed.


    4925 - Deal with GR740 errata: Level-2 Cache Issues H1 2023 (GRLIB-TN-0021)

    Link https://devel.rtems.org/ticket/4925
    Id 4925
    Reporter Sebastian Huber
    Created 12 July 2023 04:21:04
    Modified 12 July 2023 04:21:04
    Owner Sebastian Huber
    Type enhancement
    Component arch/sparc
    Status assigned
    Resolution  
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    Evaluate, document, implement workarounds and validate the workarounds for the GR740 errata: Level-2 Cache Issues H1 2023 (GRLIB-TN-0021):

    ​https://gaisler.com/doc/antn/GRLIB-TN-0021.pdf


    4929 - RTEMS tools installs into $PREFIX/share/rtems and not $PREFIX/share/rtems6

    Link https://devel.rtems.org/ticket/4929
    Id 4929
    Reporter Chris Johns
    Created 19 July 2023 21:17:53
    Modified 19 July 2023 21:17:53
    Owner  
    Type defect
    Component tool
    Status new
    Resolution  
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Should these path be aligned?

    At the moment it creates confusion if the user enters the wrong prefix when building RTEMS.


    4931 - User manual RSB BSP build examples need updating

    Link https://devel.rtems.org/ticket/4931
    Id 4931
    Reporter Chris Johns
    Created 25 July 2023 02:33:00
    Modified 25 July 2023 02:33:00
    Owner  
    Type defect
    Component doc
    Status new
    Resolution  
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description


    4934 - Update STM32 H7 HAL/LL drivers code

    Link https://devel.rtems.org/ticket/4934
    Id 4934
    Reporter kgardas
    Created 27 July 2023 18:32:22
    Modified 2 August 2023 08:26:14
    Owner kgardas
    Type task
    Component arch/arm
    Status closed
    Resolution fixed
    Version  
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Hello,

    patch series for updating STM32 H7 HAL/LL drivers code is ready for review already here: ​https://github.com/karelfv/rtems/tree/stm32h7-hal-update-2023-07.

    The code was tested on both M7 and M4 cores on stm32h747i-disco board and shows that update does not cause any new failures/regressions.

    The patch series was already submitted for review on devel@ here: ​https://lists.rtems.org/pipermail/devel/2023-July/075880.html

    Comment 1
    1. kgardas, Wed, 02 Aug 2023 08:26:14 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    New HAL code was merged into the tree on July 31 2023. Hence closing.


    4935 - 7/rtems-mips get source fails

    Link https://devel.rtems.org/ticket/4935
    Id 4935
    Reporter Chris Johns
    Created 30 July 2023 22:56:21
    Modified 20 November 2023 17:08:59
    Owner joel
    Type defect
    Component tool/rsb
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority highest
    Severity blocker
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Getting sources for 7/rtems-mips fails with:

    error: 7/rtems-mips.bset:6: cannot find file: tools/rtems-mipstx39-gdb-head 

    Release candidates for 6 get the 7 sources because the 6-rc? are made from master.

    Comment 1
    1. Chris Johns, Sun, 30 Jul 2023 22:58:41 GMT

    To test run this command (​https://git.rtems.org/rtems-release/tree/rtems-release-sources#n139):

    ../source-builder/sb-get-sources --stop-on-error 
    Comment 2
    1. Chris Johns, Sun, 03 Sep 2023 05:39:22 GMT

    I will point the 7 MIPS gdb to the 6 version. I have no idea about this architecture and tools and no one has picked the issue up.

    Also this is present:

    warning: 0001-gcc-config-aarch64-rtems.h-Define--USE-INIT-FINI-.patch: no hash found
    warning: 0001-microblaze-Define--ELF--for-RTEMS-target.patch: no hash found 

    I need to see why an error was not generated. No hash should be a hard error.

    Comment 3
    1. Chris Johns, Fri, 17 Nov 2023 03:18:22 GMT
    2. owner: set to joel
    3. status: changed from new to assigned

    This is still present and making a release candidate breaks:

    ] Created: 6.1-rc1/rtems-6.1-rc1-release-notes.html 6.1-rc1/rtems-6.1-rc1-release-notes.pdf
    ] Collect tools sources
    ] RTEMS Release Sources, v6.1-rc1
    ] Package: rtems-source-builder
    ] Release: 6.1-rc1
    tar Jxf ../rtems-source-builder-6.1-rc1.tar.xz
    ../source-builder/sb-get-sources
    RTEMS Source Builder - Get Sources, 6.1-rc1
    error: 7/rtems-mips.bset:6: cannot find file: tools/rtems-mipstx39-gdb-head
    Build FAILED 
    Comment 4
    1. Joel Sherrill, Mon, 20 Nov 2023 17:08:59 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In ae81810/rtems-source-builder:

    rtems-mipstx39-gdb-head.bset: Add missing file This configuration file was missing for the mipstx39 gdb build for the head/7 tools. Closes #4935.

    4940 - Fix cache support for ARM926EJ-S processor

    Link https://devel.rtems.org/ticket/4940
    Id 4940
    Reporter Sebastian Huber
    Created 10 August 2023 06:10:15
    Modified 10 August 2023 06:11:28
    Owner Sebastian Huber
    Type defect
    Component arch/arm
    Status closed
    Resolution fixed
    Version 5
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Fix the CP15 cache support so that it works on ARMv5T processors such as the ARM926EJ-S. This processor has different cache maintenance operations compared to ARMv6 processors such as the ARM1176JZF-S. The current support leads to undefined instruction exceptions.

    Comment 1
    1. Sebastian Huber, Thu, 10 Aug 2023 06:11:28 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In ffec9f96/rtems:

    arm: Fix cache support for ARM926EJ-S The ARM926EJ-S is an ARMv5T architecture processor and lacks some features of ARMv6 processors such as the ARM1176JZF-S. Close #4940.

    4942 - Regulator warnings

    Link https://devel.rtems.org/ticket/4942
    Id 4942
    Reporter Chris Johns
    Created 11 August 2023 22:30:59
    Modified 15 August 2023 14:09:09
    Owner Joel Sherrill
    Type defect
    Component lib
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The recently added regulator has warnings on aarch64/xilinx_zynqmp_lp64_qemu:

    ../../../cpukit/libmisc/regulator/regulator.c: In function 'rtems_regulator_get_statistics':
    ../../../cpukit/libmisc/regulator/regulator.c:656:3: warning: implicit declaration of function 'memset' [-Wimplicit-function-declaration]
    656 | memset(statistics, 0, sizeof(rtems_regulator_statistics));
    | ^~~~~~
    ../../../cpukit/libmisc/regulator/regulator.c:40:1: note: include '' or provide a declaration of 'memset'
    39 | #include
    +++ |+#include
    40 |
    ../../../cpukit/libmisc/regulator/regulator.c:656:3: warning: incompatible implicit declaration of built-in function 'memset' [-Wbuiltin-declaration-mismatch]
    656 | memset(statistics, 0, sizeof(rtems_regulator_statistics));
    | ^~~~~~
    ../../../cpukit/libmisc/regulator/regulator.c:656:3: note: include '' or provide a declaration of 'memset'
    Comment 1
    1. z.ling111, Sun, 13 Aug 2023 00:51:08 GMT

    Is there a way to compile libmisc I added the .h file but i didn't see it compile when i ran ./waf is there an option to compile libmisc?

    Comment 2
    1. Joel Sherrill, Sun, 13 Aug 2023 04:46:16 GMT

    Replying to z.ling111:

    Is there a way to compile libmisc I added the .h file but i didn't see it compile when i ran ./waf is there an option to compile libmisc?

    libmisc is built all the time. Nothing special. Post the patch once you compile and run the tests.

    Comment 3
    1. zack, Tue, 15 Aug 2023 14:09:09 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 7b33aa26/rtems:

    Address Regulator warning for no prototype for memset() Closes #4942.

    4943 - ARM unwind register is not being hooked

    Link https://devel.rtems.org/ticket/4943
    Id 4943
    Reporter Chris Johns
    Created 12 August 2023 01:53:26
    Modified 14 August 2023 01:05:25
    Owner Chris Johns
    Type defect
    Component lib/dl
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The ARM unwind support is not working and dl05 is failing on aarch64.

    The support uses __gnu_Unwind_Find_exidx and it is not being called.

    I have not tested arm but the support is shared between arm and aarch64.

    Comment 1
    1. Chris Johns, Sat, 12 Aug 2023 05:59:41 GMT

    The aarch64 architecture can use the DWARF 2 exception support. This is an improvement over the specific ARM support. Switching the unwind support to rtems_rtl_elf_unwind_dw2_.* functions results in dl05 passing.

    Comment 2
    1. Chris Johns, Sat, 12 Aug 2023 06:30:02 GMT
    2. owner: set to Chris Johns
    3. status: changed from new to assigned
    Comment 3
    1. Chris Johns, Mon, 14 Aug 2023 01:05:25 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 663e0dae/rtems:

    cpukit/libdl: AARCH64 unwind uses DWARF 2 tables Closes #4943

    4944 - libdl test dl09 fails on arm and aarch64

    Link https://devel.rtems.org/ticket/4944
    Id 4944
    Reporter Chris Johns
    Created 12 August 2023 06:26:29
    Modified 28 August 2023 01:19:04
    Owner Chris Johns <chrisj@…>
    Type defect
    Component lib/dl
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The test crashes on arm and fails on aarch64 with:

    --------------------------------------------------
    Run: 3
    Test source (link in strstr): testsuites/libtests/dl09/dl-load.c
    Allocation size: 33554432
    load: /dl09-o1.o
    handel: 0x4811d650: unresolved externals
    handle: 0x4811d650 loaded
    space alloc: /dl09-o1.o: 33554432: 0x40118940
    load: /dl09-o2.o
    handel: 0x421191f0: unresolved externals
    handle: 0x421191f0 loaded
    space alloc: /dl09-o2.o: 33554432: 0x4c1225b0
    load: /dl09-o3.o
    kobj_reloc: Relocation 0x40045820 too far from 0x4e122f48 (base+0x18) for 26bit word
    dlopen failed: (null)
    /opt/work/chris/rtems/kernel/rtems.git/testsuites/libtests/dl09/dl-load.c: 168 o->handle != NULL
    [ RTEMS shutdown ]
    RTEMS version: 6.0.0.10da3025186cadf2d78e34cf81cce02121069d44
    RTEMS tools: 12.3.1 20230626 (RTEMS 6, RSB 8e568b2ca3489d6bfa48e1d29618ea9b48a5b408, Newlib 4c7d0df)
    executing thread ID: 0x0a010001
    executing thread name: UI1
    Comment 1
    1. Chris Johns, Tue, 15 Aug 2023 02:51:10 GMT

    It also fails on powerpc.

    Comment 2
    1. Chris Johns, Fri, 18 Aug 2023 23:54:04 GMT

    The dl091 test allocates large blocks of memory between loading object files to move the object's text base address out of the range of any relative addressing instructions to symbols in the base image forcing the use of trampolines.

    On aarch64 the failure is the trampoline memory is out of range to the text memory so the relocations to the trampoline memory cannot be fixed up. The allocated trampoline memory is not colocated to the allocated text memory when it should be. The overflow is:

    rtl: JUMP26/PC26/CALL: insn=0x4e123208 where=0x4e123208 target=0xfffffffff1f24898 raddr=0x40047aa0 parsing=0 

    The target value is the relative offset and is -201367832. The instruction to fix up is located at 0x4e123208. The trampoline allocation is:

    rtl: tramp:elf: tramps: 14 count:14 total:14
    rtl: tramp:elf: slots: 14 (224)
    rtl: alloc: new: OBJECT addr=0x421190f0 size=224 

    If trace is enabled for the test a set of commands are run at the end of each pass to report the state of some things such as the heap. The heap state is returned by the malloc_info() call and that call causes the test to pass (see #4946). Something happens in the heap to bring the allocated memory closer together.

    The intent of the original design was to have a trampoline table appended to one end of the text area of the object file's memory. This means the maximum size of code that can be loaded is half the relative instruction offset size. A review of the code shows the trampoline memory is being heap allocated as a separate block. I cannot remember why it is implement this way. Effort was spent determining how to handle the allocation because the relocation records need to be parsed to determine the amount of memory to append to the text area and this means the relocation records are processed twice slowing loading down. The double processing of the relocation records was considered a suitable compromise to solve the problem. Parsing was added however the number of relocations is not being used when allocating the text area of memory.

    I think the text area needs to be extended to hold the trampoline memory. I am not sure if the text size reported should be the object file's text size or the size with the trampoline memory. I suppose it is text type memory so it should be included. It will make the change simpler.

    Comment 3
    1. Chris Johns, Sat, 19 Aug 2023 00:04:35 GMT

    I now see the complicating factor and the reason the memory is a separate allocation.

    The trampoline memory is sized to allocate space for each unresolved symbol an object file has. When loading an object file you do not know if an unresolved symbol will need a trampoline to reach the symbol.

    Comment 4
    1. Chris Johns, Thu, 24 Aug 2023 06:16:08 GMT

    I have added allocator resize support to libdl. The object file memory is resized if there are any trampolines found when the relocation records are parsed. The sizing determines the amount of trampoline memory needed and the tramp_size is added to the text_size resizing the text section.

    The order of allocations has been changed so text is last and so lower the probability resizing moves the text_base address. In the output from dl09 you can see 120 bytes of trampoline memory is being added onto the text section:

    rtl: alloc: resize: READ_WRITE prev-addr=0x4e132610 addr=0x4e132610 size=8
    rtl: alloc: resize: READ_WRITE prev-addr=0x4e132670 addr=0x4e132670 size=32
    rtl: alloc: resize: READ prev-addr=0x4e1326e0 addr=0x4e1326e0 size=328
    rtl: alloc: resize: READ_EXEC prev-addr=0x4e132870 addr=0x4e132870 size=472
    rtl: resize sect: text  - b:0x4e132870 s:472 a:4
    rtl: resize sect: tramp - b:0x4e1329d0 s:120 a:8
    rtl: resize sect: const - b:0x4e1326e0 s:328 a:8
    rtl: resize sect: eh    - b:0 s:0 a:0
    rtl: resize sect: data  - b:0x4e132610 s:8 a:0
    rtl: resize sect: bss   - b:0x4e132670 s:32 a:8 

    The changes will handle a section moving when resizing.

    The dl09 test now passes for aarch64 with and without trace being turned on.

    Comment 5
    1. Chris Johns, Sat, 26 Aug 2023 23:05:18 GMT

    Test results with the changes to fix dl09 for arm/ilinx_zynq_a9_qemu:

    Passed:         9
    Failed:         1
    User Input:     1
    Expected Fail:  0
    Indeterminate:  0
    Benchmark:      0
    Timeout:        0
    Test too long:  0
    Invalid:        0
    Wrong Version:  0
    Wrong Build:    0
    Wrong Tools:    0
    Wrong Header:   0
    -----------------
    Total:         11
    Failures:
     dl06.exe
    User Input:
     dl10.exe 

    and for aarch64/xilinx_zynqmp_lp64_qemu:

    Passed:         9
    Failed:         1
    User Input:     1
    Expected Fail:  0
    Indeterminate:  0
    Benchmark:      0
    Timeout:        0
    Test too long:  0
    Invalid:        0
    Wrong Version:  0
    Wrong Build:    0
    Wrong Tools:    0
    Wrong Header:   0
    -----------------
    Total:         11
    Failures:
     dl06.exe
    User Input:
     dl10.exe 
    Comment 6
    1. Chris Johns, Mon, 28 Aug 2023 01:19:01 GMT

    In dcc6409/rtems:

    spec/testsuite/dl: Fix optimization flags Updates #4944
    Comment 7
    1. Chris Johns, Mon, 28 Aug 2023 01:19:04 GMT
    2. owner: set to Chris Johns <chrisj@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In b9f11607/rtems:

    libdl: Realloc text memory if there are trampolines Add resize to the allocator interface Rework the trampoline variables in the obj struct to make better sense of what is happening Closes #4944

    4945 - rtems-test SIS support is broken

    Link https://devel.rtems.org/ticket/4945
    Id 4945
    Reporter Chris Johns
    Created 17 August 2023 01:50:40
    Modified 21 August 2023 00:37:35
    Owner Chris Johns
    Type defect
    Component test
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The sis BSP is using gdb and I am not sure gdb supports the SIS simulator any more?

    And sis-run is broken with the stand alone sis tool we now use. The -a option is not supported.

    Comment 1
    1. Chris Johns, Thu, 17 Aug 2023 01:51:01 GMT
    2. owner: changed from joel@… to Chris Johns
    3. status: changed from new to assigned
    Comment 2
    1. Chris Johns, Mon, 21 Aug 2023 00:37:35 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 349bbd9/rtems-tools:

    tester/sis: Use the RTEMS SIS command Make sis and sis-run the same as there is no SIS support in gdb anymore. Closes #4945

    4947 - Testsuite libtest tests not built with optimise or debug flags

    Link https://devel.rtems.org/ticket/4947
    Id 4947
    Reporter Chris Johns
    Created 24 August 2023 23:27:22
    Modified 12 September 2023 07:27:42
    Owner Sebastian Huber <sebastian.huber@…>
    Type defect
    Component build
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity blocker
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The tests are being built with the optimsize or debug options for:

    • aarch64/xilinx_zynqmp_lp64_qemu
    • arm/xilinx_zynq_a9_qemu

    The build is:

    09:44:14 runner ' /opt/work/rtems/6/bin/arm-rtems6-gcc
    -MMD -Wall -Wmissing-prototypes -Wimplicit-function-declaration
    -Wstrict-prototypes -Wnested-externs -march=armv7-a -mthumb
    -mfpu=neon -mfloat-abi=hard -mtune=cortex-a9 -DHAVE_CONFIG_H=1
    -Icpukit/include -I../../../cpukit/include -Icpukit/score/cpu/arm/include
    -I../../../cpukit/score/cpu/arm/include -Ibsps/include
    -I../../../bsps/include -Ibsps/arm/include -I../../../bsps/arm/include
    -Ibsps/arm/xilinx-zynq/include -I../../../bsps/arm/xilinx-zynq/include
    -Itestsuites/support/include -I../../../testsuites/support/include
    -Itestsuites/libtests/dl09 -I../../../testsuites/libtests/dl09
    -c /opt/work/chris/rtems/kernel/rtems.git/testsuites/libtests/dl09/dl-load.c
    -o testsuites/libtests/dl09/dl-load.o '

    while a cpukit file is:

    09:45:00 runner ['/opt/work/rtems/6/bin/arm-rtems6-gcc',
    '-MMD', '-Wall', '-Wmissing-prototypes', '-Wimplicit-function-declaration',
    '-Wstrict-prototypes', '-Wnested-externs', '-march=armv7-a',
    '-mthumb', '-mfpu=neon', '-mfloat-abi=hard', '-mtune=cortex-a9',
    '-O2', '-g', '-fdata-sections', '-ffunction-sections',
    '-Icpukit/include', '-I../../../cpukit/include',
    '-Icpukit/score/cpu/arm/include',
    '-I../../../cpukit/score/cpu/arm/include',
    '../../../cpukit/libdl/rtl-elf.c',
    '-c', '-o/opt/work/chris/rtems/kernel/rtems.git/build/arm/xilinx_zynq_a9_qemu/cpukit/libdl/rtl-elf.c.59.o',
    '-DHAVE_CONFIG_H=1']
    Comment 1
    1. Chris Johns, Thu, 24 Aug 2023 23:48:52 GMT

    The tests use the TEST_OPTIMIZATION_FLAGS which is defined in the BSP and based on OPTIMIZATION_FLAGS. This does not seem to be working.

    Comment 2
    1. Chris Johns, Thu, 24 Aug 2023 23:49:26 GMT
    2. severity: changed from normal to blocker
    Comment 3
    1. Chris Johns, Fri, 25 Aug 2023 23:28:06 GMT

    The issue is the tests are not being linked with the right or complete set of flags.

    The optimization flags contain -g and given -g does not change the generated code it is questionable if this option should be here or a debug flags settings or even forced on as an invariant default.

    The simplest solution at this point in time is to add ${TEST_OPTIMIZATION_FLAGS} to the ldflags in the grp.yml for the testsuite.

    Adding TEST_OPTIMIZATION_FLAGS to the linker flags has the benefit of linking with -fdata-sections and -ffunction-sections and given we are building all the code with those options the tests are not truly testing the build a user sees.

    There is a fragility around having the separate sections flags in optimization flag set. If someone adjusts the -O level they need to carry the other flags over. Is the separate sections important enough now that it needs its own setting to avoid simple mistakes?

    Comment 4
    1. Chris Johns, Fri, 25 Aug 2023 23:49:15 GMT

    The test dl09 does not build dl-load.o with the TEST_OPTIMIZATION_FLAGS flags. Updating the dl09.yml spec's cflags to have TEST_OPTIMIZATION_FLAGS works but adding that same to the ldflags breaks the build because the substitution does not happen.

    It seems cflags does not pick up the top level grp.yml setting while ldflags does. I have no idea why it is like this.

    Comment 5
    1. Sebastian Huber, Tue, 12 Sep 2023 07:27:42 GMT
    2. owner: set to Sebastian Huber <sebastian.huber@…>
    3. status: changed from new to closed
    4. resolution: set to fixed

    In d2d1fa18/rtems:

    build: Use build context for custom commands Revert duplicated listing of TEST_OPTIMIZATION_FLAGS. Close #4947.

    4950 - libdl test dl07 fails on PowerPC

    Link https://devel.rtems.org/ticket/4950
    Id 4950
    Reporter Chris Johns
    Created 28 August 2023 01:25:22
    Modified 29 August 2023 01:21:58
    Owner Chris Johns
    Type defect
    Component lib/dl
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The libdl test dl07 fails on PowerPC (psim) with:

    rtl: alloc: del: READ_WRITE addr=0x91ca8
    *** FATAL ***
    fatal source: 13 (RTEMS_FATAL_SOURCE_HEAP)
    heap error: heap=0x7e6d0 block=0x91cdc reason=HEAP_ERROR_BROKEN_PROTECTOR(0)=[0x91ce0,0,0,0]
    RTEMS version: 6.0.0.b9f11607b1731bc5f2391653cd8f4ebe48ba278e
    RTEMS tools: 12.3.1 20230626 (RTEMS 6, RSB 8e568b2ca3489d6bfa48e1d29618ea9b48a5b408, Newlib 4c7d0df)
    executing thread ID: 0x0a010001
    executing thread name: UI1

    The issue is the .bss section size is too small for the sections present. The bug has been triggered by the separate section support now being used in the testsuite.

    Comment 1
    1. Chris Johns, Mon, 28 Aug 2023 06:31:02 GMT

    The change to use separate data and text sections exposed a bug in how symbols and section alignment are handled when locating the symbols. The issues are:

    The base address of a section may not be aligned to the required alignment The location support on PowerPC included SDATA symbols in respective data section processing while not being included in the size calculation. This pushed the symbols out past the end of the allocated memory.
    Comment 2
    1. Chris Johns, Tue, 29 Aug 2023 01:21:58 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In ac6de5a3/rtems:

    cpukit/libdl: Correctly account for section alignments Add the section alignment to the size as the allocator may not provide correctly aligned memory Only include symbols in the section when locating symbols. The powerpc was incorrectly adding SDATA BSS symbols to the BSS offset overrunning the section Closes #4950

    4951 - rtems-tools fail on FreeBSD to get number of cores

    Link https://devel.rtems.org/ticket/4951
    Id 4951
    Reporter Chris Johns
    Created 28 August 2023 04:52:14
    Modified 3 September 2023 05:27:49
    Owner Chris Johns <chrisj@…>
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    $ ./waf test
    Waf: Entering directory `/opt/work/chris/rtems/tools/rtems-tools.git/build'
    Test python rtemstoolkit.check : fail
    Test python3 rtemstoolkit.check : fail
    Test python rtemstoolkit.config : fail
    Test python3 rtemstoolkit.config : fail
    Test python rtemstoolkit.configuration : pass
    Test python3 rtemstoolkit.configuration : pass
    Test python rtemstoolkit.error : pass
    Test python3 rtemstoolkit.error : pass
    Test python rtemstoolkit.execute : fail
    Test python3 rtemstoolkit.execute : fail
    Test python rtemstoolkit.git : fail
    Test python3 rtemstoolkit.git : fail
    Test python rtemstoolkit.host : fail
    Test python3 rtemstoolkit.host : fail
    Test python rtemstoolkit.log : pass
    Test python3 rtemstoolkit.log : pass
    Test python rtemstoolkit.macros : pass
    Test python3 rtemstoolkit.macros : pass
    Test python rtemstoolkit.mailer : fail
    Test python3 rtemstoolkit.mailer : fail
    Test python rtemstoolkit.options : fail
    Test python3 rtemstoolkit.options : fail
    Test python rtemstoolkit.path : pass
    Test python3 rtemstoolkit.path : pass
    Test python rtemstoolkit.reraise : pass
    Test python3 rtemstoolkit.reraise : pass
    Test python rtemstoolkit.rtems : pass
    Test python3 rtemstoolkit.rtems : pass
    Test python rtemstoolkit.stacktraces : pass
    Test python3 rtemstoolkit.stacktraces : pass
    Test python rtemstoolkit.textbox : pass
    Test python3 rtemstoolkit.textbox : pass
    Test python rtemstoolkit.version : fail
    Test python3 rtemstoolkit.version : fail
    Test failures
    Comment 1
    1. Chris Johns, Mon, 28 Aug 2023 04:55:22 GMT
    2. status: changed from new to closed
    3. resolution: set to wontfix
    4. summary: changed from rtems-tools unit tests fail on FreeBSD to rtems-tools fail on FreeBSD to get number of cores

    The unit tests pass. I had a typo in a change I was testing. I have changed the ticket to track the original problem:

    $ python  -m rtemstoolkit.host
    Python's OS name: posix
    Name      : freebsd
    Windows   : No
    ]]]] ['/sbin/sysctl', 'hw.ncpu']
    ***** 1 usage: sysctl [-bdehiNnoqTtWx] [ -B  ] [-f filename] name[=value] ...
           sysctl [-bdehNnoqTtWx] [ -B  ] -a 

    The execute command is failing.

    Comment 2
    1. Chris Johns, Mon, 28 Aug 2023 04:55:42 GMT
    2. status: changed from closed to reopened
    3. resolution: wontfix deleted
    Comment 3
    1. Chris Johns, Tue, 29 Aug 2023 01:20:30 GMT
    2. owner: set to Chris Johns <chrisj@…>
    3. status: changed from reopened to closed
    4. resolution: set to fixed

    In 3ea0c24/rtems-tools:

    rtemstoolkit: Fix shell execution The fixes to parse the command along with the pipe options broke a simple shell command such as '/sbin/sysctl hw.ncpu' on FreeBSD. This patch fixes the shell command by passing a string for the various options. The unit test has been updated to catch errors and report them. Closes #4951
    Comment 4
    1. Chris Johns, Tue, 29 Aug 2023 03:50:08 GMT

    In 9ca9576/rtems-source-builder:

    rtems/tools: Shell execute fixes Updates #4951
    Comment 5
    1. Chris Johns, Sun, 03 Sep 2023 05:27:49 GMT

    In 35c7320/rtems-source-builder:

    rtems/tools: Execute use of shlex.join fix for python < 3.8 Updates #4951

    4953 - Use of symbol addresses for arbitrary values may not work for some code models

    Link https://devel.rtems.org/ticket/4953
    Id 4953
    Reporter Sebastian Huber
    Created 12 September 2023 13:48:38
    Modified 24 November 2023 07:15:12
    Owner Sebastian Huber
    Type defect
    Component score
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    The _ISR_Stack_size is defined by the application configuration like this:

    /**
    * @ingroup RTEMSAPIBaseDefs
    *
    * @brief Defines a global symbol with the name and value.
    *
    * @param _name is the user defined name of the symbol. The name shall be a
    * valid designator. On the name a macro expansion is performed and
    * afterwards it is stringified.
    *
    * @param _value is the value of the symbol. On the value a macro expansion is
    * performed and afterwards it is stringified. It shall expand to an integer
    * expression understood by the assembler.
    *
    * This macro shall be placed at file scope.
    */
    #if defined(__USER_LABEL_PREFIX__)
    #define RTEMS_DEFINE_GLOBAL_SYMBOL( _name, _value ) \
    __asm__( \
    "\t.globl " RTEMS_XSTRING( RTEMS_SYMBOL_NAME( _name ) ) \
    "\n\t.set " RTEMS_XSTRING( RTEMS_SYMBOL_NAME( _name ) ) \
    ", " RTEMS_STRING( _value ) "\n" \
    )
    #else
    #define RTEMS_DEFINE_GLOBAL_SYMBOL( _name, _value )
    #endif
    RTEMS_DEFINE_GLOBAL_SYMBOL(
    _ISR_Stack_size,
    CONFIGURE_INTERRUPT_STACK_SIZE
    );

    Firstly, the RTEMS_DEFINE_GLOBAL_SYMBOL() is broken. It should depend on GNUC and not USER_LABEL_PREFIX.

    Secondly, setting a symbol to an arbitrary absolute address may not work with all code models, see:

    ​https://sourceware.org/pipermail/binutils/2023-September/129448.html

    The _ISR_Stack_size should be changed to point to the end of the ISR stack of processor 0:

    RTEMS_DEFINE_GLOBAL_SYMBOL(
    _ISR_Stack_0_end,
    RTEMS_SYMBOL_NAME( _ISR_Stack_area_begin )
    + CONFIGURE_INTERRUPT_STACK_SIZE
    );

    The tests for RTEMS_DEFINE_GLOBAL_SYMBOL() should be changed to use values relative to another symbol.

    Comment 1
    1. Sebastian Huber, Wed, 13 Sep 2023 05:28:52 GMT

    In 0add2d2/rtems:

    score: Fix RTEMS_DEFINE_GLOBAL_SYMBOL() The availability of a proper RTEMS_DEFINE_GLOBAL_SYMBOL() implementation depends on asm() and thus GNUC. Clarify documentation. Update #4953.
    Comment 2
    1. Sebastian Huber, Wed, 13 Sep 2023 05:28:54 GMT

    In d7a6e80/rtems:

    tests: Improve RTEMS_DEFINE_GLOBAL_SYMBOL() tests Use a symbol value relative to an existing symbol address to make the test work on more code models. Update #4953.
    Comment 3
    1. Sebastian Huber, Wed, 13 Sep 2023 05:44:16 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    Since the start files are written in assembly, they can use the right instructions to load an arbitrary absolute address. A review of the uses of _ISR_Stack_size showed that there is actually no issue right now. Adjusting the tests for RTEMS_DEFINE_GLOBAL_SYMBOL() should be enough.

    Comment 4
    1. Sebastian Huber, Wed, 13 Sep 2023 08:52:29 GMT
    2. status: changed from closed to reopened
    3. resolution: fixed deleted

    The spconfig01 test fails on aarch64 with:

    testsuites/sptests/spconfig01/init.c: 89 rtems_configuration_get_interrupt_stack_size() == CPU_STACK_MINIMUM_SIZE 

    The rtems_configuration_get_interrupt_stack_size() needs to be fixed.

    Comment 5
    1. Sebastian Huber, Wed, 13 Sep 2023 08:57:43 GMT
    2. summary: changed from __Definition of _ISR_Stack_size may not work for some code models__ to Use of symbol addresses for arbitrary values may not work for some code models

    The use of _TLS_BSS_size and _TLS_Data_begin may also not work on some code models. I really wonder why the TLS related tests pass on aarch64.

    Comment 6
    1. Sebastian Huber, Wed, 13 Sep 2023 09:02:33 GMT

    There are also issues with _TLS_Size and _TLS_Alignment.

    Comment 7
    1. Sebastian Huber, Thu, 14 Sep 2023 12:01:15 GMT

    In 5f8415b/rtems:

    validation: Add RTEMS_DEFINE_GLOBAL_SYMBOL() test Update #4953.
    Comment 8
    1. Sebastian Huber, Mon, 18 Sep 2023 05:24:10 GMT

    In 206bbeb/rtems:

    score: Fix TLS support for some code models Store symbols with an arbitrary absolute address such as _TLS_Size, _TLS_Alignment, _TLS_Data_size, and _TLS_BSS_size in an object to avoid issues with some code models. Update #4953.
    Comment 9
    1. Sebastian Huber, Mon, 18 Sep 2023 05:24:12 GMT

    In 2111497/rtems:

    rtems: rtems_configuration_get_interrupt_stack_size() Fix rtems_configuration_get_interrupt_stack_size() for some code models. The _ISR_Stack_size symbol has an arbitrary absolute address and may not be representable in the code model used by the compiler. Update #4953.
    Comment 10
    1. Sebastian Huber, Fri, 24 Nov 2023 07:15:12 GMT
    2. status: changed from reopened to closed
    3. resolution: set to fixed

    4954 - sparc: Simplify the clock driver and CPU counter support

    Link https://devel.rtems.org/ticket/4954
    Id 4954
    Reporter Sebastian Huber
    Created 15 September 2023 08:39:53
    Modified 20 October 2023 12:50:44
    Owner Sebastian Huber
    Type enhancement
    Component arch/sparc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    Unfortunately, most SPARC SoCs? supported by RTEMS lack a proper free-running counter. The only exception are the GR712RC and the GR740. For the pre-qualified GR712RC BSP, the current implementation is too complicated. Make the fall back to a free-running GPTIMER mandatory for the leon3 BSP family to simplify things. For the GR712RC use the DSU time tag counter.

    Comment 1
    1. Sebastian Huber, Fri, 15 Sep 2023 16:02:59 GMT
    2. description: modified (diff)
    Comment 2
    1. Sebastian Huber, Fri, 20 Oct 2023 08:56:45 GMT

    In 8fe0fc4/rtems:

    bsps/leon3: Optional IRQ(A)MP timestamp support This is necessary to run the tests on SIS with profiling enabled. Update #4954.
    Comment 3
    1. Sebastian Huber, Fri, 20 Oct 2023 08:56:47 GMT

    In b6dc4b4/rtems:

    sparc: Move CPU counter implementation Enable a BSP-specific CPU counter implementation. Update #4954.
    Comment 4
    1. Sebastian Huber, Fri, 20 Oct 2023 08:56:49 GMT

    In 3f03a6d/rtems:

    bsps/leon3: Make GPTIMER fall back mandatory Using the auto reload counter which generates the clock ticks for the timecounter or CPU counter is quite difficult and only works in uniprocessor configurations. Update #4954.
    Comment 5
    1. Sebastian Huber, Fri, 20 Oct 2023 08:56:51 GMT

    In ff533cec/rtems:

    bsps/leon3: Simplify clock and CPU counter Share the timecounter instance between the clock and the CPU counter. This greatly simplifies the clock driver since we have to do the device selection only in one place, the CPU counter support. Update #4954.
    Comment 6
    1. Sebastian Huber, Fri, 20 Oct 2023 08:56:53 GMT

    In abb2f8b/rtems:

    bsps/leon3: Use custom CPU counter implementation Merge the timecounter and CPU counter support for the leon3 BSP family. Remove now unused functions from the CPU counter support of the erc32 and leon3 BSPs. Update #4954.
    Comment 7
    1. Sebastian Huber, Fri, 20 Oct 2023 08:56:55 GMT

    In 8266a8a3/rtems:

    bsps/leon3: Move code blocks Move code blocks to simplify C preprocessor usage. Update #4954.
    Comment 8
    1. Sebastian Huber, Fri, 20 Oct 2023 08:56:57 GMT

    In ffa29bac/rtems:

    bsps/leon3: Statically initialize get timecount Update #4954.
    Comment 9
    1. Sebastian Huber, Fri, 20 Oct 2023 08:56:59 GMT

    In 601b84c7/rtems:

    bsps/leon3: leon3_counter_use_irqamp_timestamp() Simplify leon3_counter_use_irqamp_timestamp(). Update #4954.
    Comment 10
    1. Sebastian Huber, Fri, 20 Oct 2023 08:57:01 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 958d517/rtems:

    bsps/leon3: Use DSU time tag for GR712RC Close #4954.
    Comment 11
    1. Sebastian Huber, Fri, 20 Oct 2023 12:50:44 GMT

    In 36b935f1/rtems:

    sparc: Fix move of CPU counter implementation This fixes a build error with RTEMS_PROFILING enabled. Update #4954.

    4955 - sparc: Potential stack corruption in uniprocessor configurations during start multitasking

    Link https://devel.rtems.org/ticket/4955
    Id 4955
    Reporter Sebastian Huber
    Created 20 September 2023 06:54:57
    Modified 12 October 2023 14:07:59
    Owner Sebastian Huber
    Type defect
    Component arch/sparc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity critical
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    The system initialization uses the interrupt stack. A first level interrupt shall never interrupt a context which uses the interrupt stack. Such a use would lead to stack corruption and undefined system behaviour. Unfortunately, in uniprocessor configurations this is the case right now. Multiprocessing is started using _CPU_Context_restore(). The caller of this function (_Thread_Start_multitasking()) uses the interrupt stack. Later we have in cpukit/score/cpu/sparc/cpu_asm.S:

     mov     %g1, %psr                     ! restore status register and
    ! **** ENABLE TRAPS ****
    ld [%o1 + G5_OFFSET], %g5 ! restore the global registers
    ld [%o1 + G7_OFFSET], %g7
    ! Load thread specific ISR dispatch prevention flag
    ld [%o1 + ISR_DISPATCH_DISABLE_STACK_OFFSET], %o2
    ! Store it to memory later to use the cycles
    ldd [%o1 + L0_OFFSET], %l0 ! restore the local registers
    ldd [%o1 + L2_OFFSET], %l2
    ldd [%o1 + L4_OFFSET], %l4
    ldd [%o1 + L6_OFFSET], %l6
    ! Now restore thread specific ISR dispatch prevention flag
    st %o2, [%g6 + PER_CPU_ISR_DISPATCH_DISABLE]
    ldd [%o1 + I0_OFFSET], %i0 ! restore the input registers
    ldd [%o1 + I2_OFFSET], %i2
    ldd [%o1 + I4_OFFSET], %i4
    ldd [%o1 + I6_FP_OFFSET], %i6
    ldd [%o1 + O6_SP_OFFSET], %o6 ! restore the output registers

    Between the ENABLE TRAPS and the restore of the output registers, we still use the stack of the caller and interrupts may be enabled. If an interrupt happens in this code block, the interrupt stack is concurrently used which may lead to a crash.

    Comment 1
    1. Sebastian Huber, Tue, 26 Sep 2023 05:50:21 GMT

    In a9862623/rtems:

    validation: Check stack of interrupted context Check the stack of the interrupted context during the multitasking start. Update #4955.
    Comment 2
    1. Sebastian Huber, Thu, 12 Oct 2023 11:53:39 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 1c36971d/rtems:

    sparc: Fix stack corruption Fix a potential stack corruption in uniprocessor configurations during start multitasking. The system initialization uses the interrupt stack. A first level interrupt shall never interrupt a context which uses the interrupt stack. Such a use would lead to stack corruption and undefined system behaviour. Unfortunately, in uniprocessor configurations this was the case. Multiprocessing is started using _CPU_Context_restore(). The caller of this function (_Thread_Start_multitasking()) uses the interrupt stack. Later we have in cpukit/score/cpu/sparc/cpu_asm.S:
    mov %g1, %psr ! restore status register and
    ! ____ ENABLE TRAPS ____
    ld [%o1 + G5_OFFSET], %g5 ! restore the global registers ld [%o1 + G7_OFFSET], %g7
    ! Load thread specific ISR dispatch prevention flag ld [%o1 + ISR_DISPATCH_DISABLE_STACK_OFFSET], %o2 ! Store it to memory later to use the cycles
    ldd [%o1 + L0_OFFSET], %l0 ! restore the local registers ldd [%o1 + L2_OFFSET], %l2 ldd [%o1 + L4_OFFSET], %l4 ldd [%o1 + L6_OFFSET], %l6
    ! Now restore thread specific ISR dispatch prevention flag st %o2, [%g6 + PER_CPU_ISR_DISPATCH_DISABLE]
    ldd [%o1 + I0_OFFSET], %i0 ! restore the input registers ldd [%o1 + I2_OFFSET], %i2 ldd [%o1 + I4_OFFSET], %i4 ldd [%o1 + I6_FP_OFFSET], %i6
    ldd [%o1 + O6_SP_OFFSET], %o6 ! restore the output registers
    Between the ENABLE TRAPS and the restore of the output registers, we still use the stack of the caller and interrupts may be enabled. If an interrupt happens in this code block, the interrupt stack is concurrently used which may lead to a crash. Fix this by adding a new function _SPARC_Start_multiprocessing() for uniprocessor configurations. This function first sets the stack pointer to use the stack of the heir thread. Close #4955.
    Comment 3
    1. Sebastian Huber, Thu, 12 Oct 2023 14:07:59 GMT

    In 43b74b14/rtems:

    validation: Support powerpc in test case Update #4955.

    4956 - Deadlock caused by locking inversion in JFFS2

    Link https://devel.rtems.org/ticket/4956
    Id 4956
    Reporter Kinsey Moore
    Created 20 September 2023 16:58:43
    Modified 16 February 2024 00:35:11
    Owner Kinsey Moore
    Type defect
    Component admin
    Status assigned
    Resolution  
    Version  
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    When the code for delayed writes was added to support JFFS2 on NAND, it introduced a possible locking inversion when managing the delayed write work queue.

    This has been partially addressed by fa85760c99a72b8186c70c896b98efe0d7cde2b6, but there are other issues with this code that need to be addressed as well.

    First is that when not compiling with RTEMS_DEBUG, nodes are not automatically set as off the chain upon extraction and this behavior is depended upon.

    Second is that protected (ISR-locked) chain calls are used when they are not necessary due to already being locked.

    Third is that the bug fixed by the referenced commit needs a test that verifies the fix.

    Comment 1
    1. z.ling111, Tue, 26 Sep 2023 00:41:07 GMT

    Hey i'm interested working on this ticket would the nodes be set off only if

    #if defined(RTEMS_DEBUG) is true? I can't find other functions that call this so i can't confirm. I think i'm going to try to work on the first part.

    Comment 2
    1. Kinsey Moore, Tue, 26 Sep 2023 13:16:46 GMT

    Hey, thanks for the interest. I actually have a patch on the mailing list that just got approved for fixing this, so it should be going into the codebase shortly. I still need to write a test that produces the original issue, though.

    Comment 3
    1. Kinsey Moore, Tue, 26 Sep 2023 13:38:00 GMT

    In 99c637f/rtems:

    cpukit/jffs2: Avoid use of off-chain semantics This reworks the JFFS2 delayed work queue to avoid use of on-chain/off-chain semantics since they vary in behavior under RTEMS_DEBUG and are not guaranteed to be safe to use in SMP systems. This adds all delayed work structs to the chain on FS init and does not remove them until umount. Updates #4956
    Comment 4
    1. Kinsey Moore, Fri, 16 Feb 2024 00:35:11 GMT
    2. owner: set to Kinsey Moore
    3. status: changed from new to assigned

    4957 - spstdc17 warnings building i386/pc686

    Link https://devel.rtems.org/ticket/4957
    Id 4957
    Reporter Chris Johns
    Created 4 October 2023 01:49:08
    Modified 18 October 2023 05:17:50
    Owner  
    Type defect
    Component test
    Status assigned
    Resolution  
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    This test has these warnings:

    [4070/4522] Compiling testsuites/sptests/spstdc17/init.c
    In file included from ../../../cpukit/include/rtems/rtems/intr.h:73,
    from ../../../cpukit/include/rtems.h:69,
    from ../../../testsuites/sptests/spstdc17/init.c:32:
    ../../../cpukit/include/rtems/score/isrlock.h:72:9: warning: struct has no members [-Wpedantic]
    72 | typedef struct {
    | ^~~~~~
    In file included from ../../../cpukit/include/rtems/scheduler.h:40,
    from ../../../cpukit/include/rtems/confdefs/scheduler.h:65,
    from ../../../cpukit/include/rtems/confdefs/threads.h:49,
    from ../../../cpukit/include/rtems/confdefs/inittask.h:56,
    from ../../../cpukit/include/rtems/confdefs.h:68,
    from ../../../testsuites/sptests/spstdc17/init.c:57:
    ../../../cpukit/include/rtems/score/scheduler.h:318:16: warning: struct has no members [-Wpedantic]
    318 | typedef struct Scheduler_Context {
    | ^~~~~~~~~~~~~~~~~
    Comment 1
    1. Chris Johns, Wed, 04 Oct 2023 01:50:08 GMT
    2. owner: joel@… deleted
    3. status: changed from new to assigned
    Comment 2
    1. z.ling111, Tue, 17 Oct 2023 00:30:19 GMT

    deleted comment

    Comment 3
    1. z.ling111, Wed, 18 Oct 2023 01:42:13 GMT

    Does removing the precompiler defines affect how gcc sees struts? right now i removed the defines to fix this issue

    typedef struct {

    SMP_lock_Control Lock;

    } ISR_lock_Control;

    for example removing the #defines gives me this compiler error? do you have any suggestions?

    ../../../cpukit/include/rtems/score/isrlock.h:73:3: error: unknown type name 'SMP_lock_Control'

    73 | SMP_lock_Control Lock;

    | ~

    smplock.h is defined above

    Comment 4
    1. Joel Sherrill, Wed, 18 Oct 2023 02:44:14 GMT

    It has a single field which is smp specific. When built for uniprocessor, the structure ends up with no fields which is the problem. I am guessing that all code that uses this should be smp only and the structure not present.

    Comment 5
    1. Sebastian Huber, Wed, 18 Oct 2023 05:17:50 GMT

    Through typedefs this structure is part of the API. We could add a dummy member to the API visible structure for uniprocessor configurations if we really want to fix warnings like this. Internally, we need more #ifdefs to avoid using the lock control.


    4959 - rtems-test tftp does not a session timeout

    Link https://devel.rtems.org/ticket/4959
    Id 4959
    Reporter Chris Johns
    Created 5 October 2023 05:23:48
    Modified 18 December 2023 05:30:16
    Owner Chris Johns
    Type defect
    Component test
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The TFTP server has a timeout for session that are running however there is no timeout on the listen state. A target could fail to create a session. Add a session timeout.

    Comment 1
    1. Chris Johns, Tue, 07 Nov 2023 21:07:44 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In a22b396/rtems-tools:

    tester/tftp: Add a session timeout Fix listener done state Finish open with the state as finished Closes #4959
    Comment 2
    1. Chris Johns, Mon, 18 Dec 2023 05:30:16 GMT

    In 384acf1/rtems-tools:

    tester/console: Fix restart regx check The fix to the TFTP timeout has a simple bug. Updates #4959

    4960 - User manual test documentation update

    Link https://devel.rtems.org/ticket/4960
    Id 4960
    Reporter Chris Johns
    Created 7 October 2023 04:04:07
    Modified 7 October 2023 04:04:07
    Owner  
    Type defect
    Component doc
    Status new
    Resolution  
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The Testing chapter of the User Manual needs to be update for RTEMS 6.


    4961 - Document and test CONFIGURE_JFFS2_DELAYED_WRITE_TASK_PRIORITY

    Link https://devel.rtems.org/ticket/4961
    Id 4961
    Reporter Sebastian Huber
    Created 11 October 2023 05:18:58
    Modified 16 February 2024 00:35:28
    Owner Kinsey Moore
    Type defect
    Component fs/jffs2
    Status assigned
    Resolution  
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    The CONFIGURE_JFFS2_DELAYED_WRITE_TASK_PRIORITY application configuration option should be documented according to:

    ​https://docs.rtems.org/branches/master/eng/req/howto.html#application-configuration-options

    There should be a test program for this option.

    Comment 1
    1. Sebastian Huber, Tue, 31 Oct 2023 11:53:58 GMT
    2. keywords: qualification added
    Comment 2
    1. Sebastian Huber, Tue, 19 Dec 2023 07:01:26 GMT

    In a901ca3/rtems:

    doxygen: CONFIGURE_JFFS2_DELAYED_WRITE_TASK_PRIORITY Document CONFIGURE_JFFS2_DELAYED_WRITE_TASK_PRIORITY. Update #4961.
    Comment 3
    1. Sebastian Huber, Tue, 19 Dec 2023 07:27:49 GMT

    In ddf2b03/rtems-docs:

    c-user: CONFIGURE_JFFS2_DELAYED_WRITE_TASK_PRIORITY Document CONFIGURE_JFFS2_DELAYED_WRITE_TASK_PRIORITY. Update #4961.
    Comment 4
    1. Kinsey Moore, Tue, 19 Dec 2023 07:28:57 GMT

    In 8bfd9ce/rtems-central:

    spec: Add JFFS2 delayed write task priority This adds the configuration option used to select the JFFS2 delayed write task priority to be used when operating on NAND flash. Updates #4961
    Comment 5
    1. Kinsey Moore, Fri, 16 Feb 2024 00:35:28 GMT
    2. owner: set to Kinsey Moore
    3. status: changed from new to assigned

    4962 - MicroBlaze BSPs modify carry flag before MSR is saved

    Link https://devel.rtems.org/ticket/4962
    Id 4962
    Reporter Alex White
    Created 23 October 2023 14:09:39
    Modified 23 October 2023 18:49:22
    Owner Alex White
    Type defect
    Component bsps
    Status assigned
    Resolution  
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The interrupt handler for the MicroBlaze? BSPs defined in bsps/microblaze/microblaze_fpga/start/_interrupt_handler.S saves one register to the stack, R5, before jumping to the architecture _ISR_Handler. This is because R5 is used to pass the interrupt source if it is known. To indicate an unknown interrupt source, it uses the following instruction:

     addi r5, r0, 0xFF 

    The addi instruction modifies the carry flag in MSR. This is a problem because MSR has not been saved to the stack yet. It is saved in _ISR_Handler.

    This went unnoticed because it manifests itself in subtle ways. It requires that an interrupt happen somewhere between an instruction that modifies the carry flag and an instruction that uses the modified carry flag.

    To resolve this issue, the entire interrupt frame should be saved as the first step of _interrupt_handler rather than in _ISR_Handler. It should also be made very clear that saving the stack frame is handled by the BSP rather than the architecture-specific _ISR_Handler.

    Comment 1
    1. Alex White, Mon, 23 Oct 2023 18:49:22 GMT
    2. owner: set to Alex White
    3. status: changed from new to assigned

    4967 - strtof leaks memory

    Link https://devel.rtems.org/ticket/4967
    Id 4967
    Reporter Chris Johns
    Created 15 November 2023 04:07:59
    Modified 16 February 2024 01:01:37
    Owner  
    Type defect
    Component tool/newlib
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The libc call strtof leaks memory when a thread exits if strtof has been made within the context of the thread. The code uses Balloc and Bfree to obtain pieces of memory it uses. The memory is recycled using newlib reent TLS variables. The _reclaim_reent() does not clean up _REENT_MP_P5S.

    Attachments:

    1 Chris Johns, Wed, 15 Nov 2023 04:08:39 GMT
      attach: set to libc-strtof-init.c
     
    2 Chris Johns, Wed, 15 Nov 2023 04:32:48 GMT
      attach: set to 0001-Reclaim-_REENT_MP_P5S-in-_reclaim_reent.patch
     
    Comment 1
    1. Sebastian Huber, Wed, 22 Nov 2023 06:12:50 GMT

    In 07be298/rtems-source-builder:

    6/7: Update Newlib Pick up fixes for ARM/optimized-routines and the memory reclamation at thread exit. Update #4510. Update #4967.
    Comment 2
    1. Chris Johns, Fri, 16 Feb 2024 01:01:37 GMT
    2. status: changed from new to closed
    3. resolution: set to fixed

    4968 - Python 3.12 fix escape sequences and remove SafeConfigParser

    Link https://devel.rtems.org/ticket/4968
    Id 4968
    Reporter Chris Johns
    Created 20 November 2023 22:12:42
    Modified 22 November 2023 20:59:58
    Owner Chris Johns
    Type defect
    Component tool
    Status assigned
    Resolution  
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    This breaks version.py in:

    • rtems-tools
    • rtems-docs
    • rtems_waf

    Also update any escape sequences that are not correctly escaped or are a regx expressions (prefix with r).

    Comment 1
    1. Chris Johns, Tue, 21 Nov 2023 20:47:51 GMT

    In 63396e2/rtems-source-builder:

    sb: Fix Python 3.12 safeConfigParser and invalid escape sequences Updates #4968
    Comment 2
    1. Chris Johns, Tue, 21 Nov 2023 21:29:36 GMT

    In 75ffa67/rtems-tools:

    python: Updates for Python 3.12 Change SafeConfigParser? to ConfigParser? Fix escape sequences in strings Updates #4968
    Comment 3
    1. Chris Johns, Wed, 22 Nov 2023 02:52:25 GMT
    2. summary: changed from Python 3.12 does not have SafeConfigParser to Python 3.12 fix escape sequences and remove SafeConfigParser
    Comment 4
    1. Chris Johns, Wed, 22 Nov 2023 20:59:58 GMT

    In 72c11fa/rtems:

    waf: Fix Python 3.12 escape sequences Updates #4968

    4969 - Update libibery sources in rtems-tools

    Link https://devel.rtems.org/ticket/4969
    Id 4969
    Reporter Chris Johns
    Created 21 November 2023 04:56:37
    Modified 23 November 2023 22:36:13
    Owner Chris Johns
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    MacOS is removing vfork. Update to gcc latest sources and use POSIX spawn support.

    Update all files.

    Comment 1
    1. Chris Johns, Tue, 21 Nov 2023 21:29:38 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In a4b312e/rtems-tools:

    rtemstoolkit/libierty: Update to gcc latest Use POSIX spawn support for MacOS Closes #4969
    Comment 2
    1. Chris Johns, Thu, 23 Nov 2023 22:36:13 GMT

    In b7bb493/rtems-source-builder:

    rtems/rtems-tools: Update with C++17 and Python 3.12 fixes Updates #4969 Updates #4970

    4970 - Fix C++ 17 deprecated functionality in rtems-tools

    Link https://devel.rtems.org/ticket/4970
    Id 4970
    Reporter Chris Johns
    Created 22 November 2023 00:54:22
    Modified 23 November 2023 22:36:13
    Owner Chris Johns
    Type defect
    Component tool
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The C++ code uses functionality depreciated in c++17. Update and resolve.

    Comment 1
    1. Chris Johns, Wed, 22 Nov 2023 00:56:42 GMT
    2. summary: changed from Fix C++ 17 depreciated funtionality to Fix C++ 17 depreciated funtionality in rtrems-tools

    Add the repo to the subject

    Comment 2
    1. Chris Johns, Wed, 22 Nov 2023 21:01:55 GMT

    In 00af5a6/rtems-tools:

    rtemstoolkit: Update SimpleIni? to latest The resolves C++17 warnings. Updates #4970
    Comment 3
    1. Chris Johns, Wed, 22 Nov 2023 21:01:56 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In f408c0f/rtems-tools:

    rtemstoolkit, linkers: Fix C++17 warnings Closes #4970
    Comment 4
    1. Joel Sherrill, Thu, 23 Nov 2023 16:11:17 GMT
    2. summary: changed from Fix C++ 17 depreciated funtionality in rtrems-tools to Fix C++ 17 deprecated functionality in rtems-tools

    Fix spelling in title

    Comment 5
    1. Chris Johns, Thu, 23 Nov 2023 22:36:13 GMT

    In b7bb493/rtems-source-builder:

    rtems/rtems-tools: Update with C++17 and Python 3.12 fixes Updates #4969 Updates #4970

    4971 - Report that nested validation test cases did run

    Link https://devel.rtems.org/ticket/4971
    Id 4971
    Reporter Sebastian Huber
    Created 22 November 2023 13:50:41
    Modified 28 November 2023 13:03:40
    Owner Sebastian Huber
    Type enhancement
    Component test
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords qualification
    Cc  
    Blocking  
    Blocked by  

    Description

    Some validation test cases use parameterized nested test cases. For example, the rtems_semaphore_obtain() test uses a parameterized test case to seize a mutex. The nested mutex seize test case uses a parameterized thread queue enqueue test case. Currently, there is no indication that these nested test cases did actually run. Some of these nested test cases run in a tight loop, so printing a hint on every run could lead to a massive amount of test output.

    Add test case remarks to the RTEMS Test Framework which may be used to give such an indication.

    Comment 1
    1. Sebastian Huber, Tue, 28 Nov 2023 13:03:37 GMT

    In d586b3c/rtems:

    libtest: Add T_add_remark() This can be used to report that nested test cases did run in a test case. Update #4971.
    Comment 2
    1. Sebastian Huber, Tue, 28 Nov 2023 13:03:40 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 528f0e1/rtems:

    validation: Add nested test case remarks Close #4971.

    4973 - Add RSB options to control a specific python

    Link https://devel.rtems.org/ticket/4973
    Id 4973
    Reporter Chris Johns
    Created 29 November 2023 03:18:18
    Modified 6 December 2023 21:50:45
    Owner Chris Johns
    Type defect
    Component tool/rsb
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Older hosts can have varying installations of pythons. Provide a means to set a version found in your path with:

  • --with-python2
  • --with-python3
  • --with-python-version
  • Comment 1
    1. Chris Johns, Wed, 06 Dec 2023 21:50:45 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In a970057/rtems-source-builder:

    gdb: Add options to control the python version The options are:
    --with-python2 --with-python3 --with-python-version
    Closes #4973

    4974 - rtems-tools buid failed with '--host=x86_64-w64-mingw32'

    Link https://devel.rtems.org/ticket/4974
    Id 4974
    Reporter zhengxiaojun
    Created 30 November 2023 06:30:04
    Modified 30 November 2023 06:33:40
    Owner  
    Type defect
    Component tool
    Status new
    Resolution  
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    rtems-tools build failed with "--host=x86_64-w64-mingw32" after the commit ​https://git.rtems.org/rtems-tools/commit/?id=a4b312ee4f3d8c93ab0d45d568879069e7ac7d7a 'writeargv' is undefined. add libierty/argv.c will solve this problem.

    Attachments:

    1 zhengxiaojun, Thu, 30 Nov 2023 06:31:44 GMT
      attach: set to 0001-add-libiberty-argv.c-for-mingw32-build.patch
    Comment 1
    1. zhengxiaojun, Thu, 30 Nov 2023 06:33:40 GMT

    argv.c file of patch is from gcc13.2


    4975 - Terminal row/col probe timeout too fast

    Link https://devel.rtems.org/ticket/4975
    Id 4975
    Reporter Chris Johns
    Created 5 December 2023 02:33:10
    Modified 13 December 2023 20:22:30
    Owner Chris Johns
    Type defect
    Component lib
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The timeout is too fast if the terminal and the target hardware are on different continents.

    Comment 1
    1. Chris Johns, Wed, 13 Dec 2023 20:22:30 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 7260887/rtems:

    libmisc/shell: Work around tmux bug in row and column Extend the timeout to 150 msec for long remote sessions Improve the performance of the detection Closes #4975 Closes #4977

    4977 - tmux bug swaps lines and columns

    Link https://devel.rtems.org/ticket/4977
    Id 4977
    Reporter Chris Johns
    Created 11 December 2023 06:11:30
    Modified 13 December 2023 20:22:30
    Owner Chris Johns
    Type defect
    Component lib
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    A tmux bug which is fixed but not released swaps the columns and rows fields:

    ​https://github.com/tmux/tmux/issues/3457

    Given it will be a while before this enters downstream packages provide a work around.

    also improve response time to the query. At the moment a 50 msec delay is imposed and it does not have to be there.

    Comment 1
    1. Chris Johns, Wed, 13 Dec 2023 20:22:30 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In 7260887/rtems:

    libmisc/shell: Work around tmux bug in row and column Extend the timeout to 150 msec for long remote sessions Improve the performance of the detection Closes #4975 Closes #4977

    4980 - Build documentation using sphinx 7.2

    Link https://devel.rtems.org/ticket/4980
    Id 4980
    Reporter Chris Johns
    Created 19 December 2023 00:29:30
    Modified 19 December 2023 20:41:50
    Owner Chris Johns
    Type defect
    Component doc
    Status closed
    Resolution fixed
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    • Set no max version
    • Fix the layout to support versions later than 5.9

    I have no idea when the breakage happened and if other versions are effected.

    Comment 1
    1. Chris Johns, Tue, 19 Dec 2023 01:02:27 GMT

    I have tested a patch with versions:

    sphinx sphinxcontrib.bibtex 7.2 2.6.1 6.1.3 2.4.2 5.3.0 2.4.2
    Comment 2
    1. Chris Johns, Tue, 19 Dec 2023 20:41:50 GMT
    2. status: changed from assigned to closed
    3. resolution: set to fixed

    In e31a0b2/rtems-docs:

    sphinx/style: Fix building with the latest sphinx Tested on sphinx 7.2, 6.1.3 AND 5.3.0 Closes #4980

    4982 - Add support for TMS570LC4357 for the arm/tms570 BSP

    Link https://devel.rtems.org/ticket/4982
    Id 4982
    Reporter Sebastian Huber
    Created 15 January 2024 09:31:59
    Modified 1 February 2024 06:57:06
    Owner Sebastian Huber
    Type enhancement
    Component arch/arm
    Status assigned
    Resolution  
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Add support for TMS570LC4357 chip variant using the TMS570LS43x Hercules Development Kit from TI.

    Comment 1
    1. Sebastian Huber, Mon, 15 Jan 2024 09:36:50 GMT

    In 7427caa/rtems:

    bsps/arm: Use shared empty bsp_start_hook_0() Update #4982.
    Comment 2
    1. Sebastian Huber, Mon, 15 Jan 2024 09:36:52 GMT

    In 222c989/rtems:

    bsp/tms570: Remove empty Update #4982.
    Comment 3
    1. Sebastian Huber, Mon, 15 Jan 2024 09:36:54 GMT

    In 72ec63e7/rtems:

    bsp/tms570: Remove empty Update #4982.
    Comment 4
    1. Sebastian Huber, Mon, 15 Jan 2024 09:36:56 GMT

    In 58521f1/rtems:

    bsp/tms570: Remove empty Update #4982.
    Comment 5
    1. Sebastian Huber, Mon, 15 Jan 2024 09:36:58 GMT

    In 8e8b9bc0/rtems:

    bsp/tms570: Relicense to BSD-2-Clause Change license to BSD-2-Clause according to file history and contributor agreements. Add Doxygen file comments. Update #3053. Update #3707. Update #4982.
    Comment 6
    1. Sebastian Huber, Mon, 15 Jan 2024 09:37:00 GMT

    In 600bd565/rtems:

    bsp/tms570: Use new pin define Update #4982.
    Comment 7
    1. Sebastian Huber, Mon, 15 Jan 2024 09:37:02 GMT

    In 2110125/rtems:

    bsp/tms570: Add bsp_restart() Update #4982.
    Comment 8
    1. Sebastian Huber, Mon, 15 Jan 2024 09:37:05 GMT

    In 8240cae/rtems:

    bsp/tms570: Rename tms570_initialize_and_clear() Rename tms570_initialize_and_clear() in tms570_pom_initialize_and_clear(). Update #4982.
    Comment 9
    1. Sebastian Huber, Mon, 15 Jan 2024 09:37:07 GMT

    In 849210f/rtems:

    bsp/tms570: Fix bsp_reset() Update #4982.
    Comment 10
    1. Sebastian Huber, Mon, 15 Jan 2024 09:37:09 GMT

    In 27e0abb/rtems:

    bsp/tms570: Avoid errno for debug console Update #4982.
    Comment 11
    1. Sebastian Huber, Mon, 15 Jan 2024 09:37:11 GMT

    In a6482eb/rtems:

    bsp/tms570: Implement set/get interrupt priority Update #4982.
    Comment 12
    1. Sebastian Huber, Mon, 15 Jan 2024 09:37:13 GMT

    In 8753604e/rtems:

    bsp/tms570: Implement interrupt is enabled/pending Update #4982.
    Comment 13
    1. Sebastian Huber, Mon, 15 Jan 2024 09:37:15 GMT

    In cf01329e/rtems:

    bsp/tms570: Avoid spurious interrupts Update #4982.
    Comment 14
    1. Sebastian Huber, Mon, 15 Jan 2024 09:37:17 GMT

    In df067e5/rtems:

    bsp/tms570: Add TM27 support Update #4982.
    Comment 15
    1. Sebastian Huber, Mon, 15 Jan 2024 09:37:20 GMT

    In 1dae4f95/rtems:

    bsp/tms570: Remove obsolete build option Update #4982.
    Comment 16
    1. Sebastian Huber, Mon, 15 Jan 2024 09:37:21 GMT

    In 285d1a4/rtems:

    bsp/tms570: Avoid vector overlay memory region Reserve the space in a section. This makes it possible to use a common memory region definition. Update #4982.
    Comment 17
    1. Sebastian Huber, Mon, 15 Jan 2024 09:37:23 GMT

    In 1b7a8af5/rtems:

    bsp/tms570: Add variant enable to build Update #4982.
    Comment 18
    1. Sebastian Huber, Mon, 15 Jan 2024 09:37:26 GMT

    In 437da01/rtems:

    bsp/tms570: Add linkcmds.memory Remove obsolete tms570ls3137_hdk_with_loader BSP variant. With the new memory origin/size build options this variant is no longer required. Update #4982.
    Comment 19
    1. Sebastian Huber, Mon, 15 Jan 2024 09:37:28 GMT

    In eb97cd1/rtems:

    bsp/tms570: Add TMS570LC4357 BSP variants Update #4982.
    Comment 20
    1. Sebastian Huber, Mon, 15 Jan 2024 09:37:30 GMT

    In 36192165/rtems:

    bsp/tms570: Fix PBIST clock enable Bit 1 of the PACT is reserved (writes have no effect). Update #4982.
    Comment 21
    1. Tyler Miller, Mon, 15 Jan 2024 09:37:32 GMT

    In 048d81a0/rtems:

    bsp/tms570: Add TMS570LC4357 PBIST support Update #4982.
    Comment 22
    1. Sebastian Huber, Mon, 15 Jan 2024 09:37:34 GMT

    In 8569f01/rtems:

    bsp/tms570: Enable hardware init for some variants Update #4982.
    Comment 23
    1. Tyler Miller, Mon, 15 Jan 2024 09:37:36 GMT

    In b995211/rtems:

    bsp/tms570: Add tms570_pbist_run_and_check() Update #4982.
    Comment 24
    1. Tyler Miller, Mon, 15 Jan 2024 09:37:38 GMT

    In 39fd4b1/rtems:

    bsp/tms570: Remove double pin configuration Do not set pins to the default function before the actual setting is applied. If a pin setting needs to be done in a certain order, then this should be done explicitly through multiple calls to tms570_bsp_pinmmr_config(). Update #4982.
    Comment 25
    1. Tyler Miller, Mon, 15 Jan 2024 09:37:41 GMT

    In 4f6fa974/rtems:

    bsp/tms570: Add TMS570LC4357 pin config support Update #4982.
    Comment 26
    1. Tyler Miller, Mon, 15 Jan 2024 09:37:43 GMT

    In c14efe49/rtems:

    bsp/tms570: Add TMS570LC4357 power support Update #4982.
    Comment 27
    1. Sebastian Huber, Mon, 15 Jan 2024 09:37:45 GMT

    In eeaa318/rtems:

    bsp/tms570: Simplify expression Update #4982.
    Comment 28
    1. Sebastian Huber, Mon, 15 Jan 2024 09:37:47 GMT

    In 4d9c9c52/rtems:

    bsp/tms570: Conditionalize TMS570LS3137 errata Update #4982.
    Comment 29
    1. Sebastian Huber, Mon, 15 Jan 2024 09:37:49 GMT

    In 75dd824/rtems:

    bsp/tms570: Add errata SSWF021#45 handling Update #4982.
    Comment 30
    1. Tyler Miller, Mon, 15 Jan 2024 09:37:51 GMT

    In 2bbacdb/rtems:

    bsp/tms570: TMS570LC4x Errata DEVICE#60 Update #4982.
    Comment 31
    1. Tyler Miller, Mon, 15 Jan 2024 09:37:53 GMT

    In ec79400/rtems:

    bsp/tms570: Add HCLKCNTL register Update #4982.
    Comment 32
    1. Sebastian Huber, Mon, 15 Jan 2024 09:37:55 GMT

    In b99013e/rtems:

    bsp/tms570: Remove reset source handling Do not clear SYSESR and let the application handle the reset source. Update #4982.
    Comment 33
    1. Tyler Miller, Mon, 15 Jan 2024 09:37:58 GMT

    In f7530be/rtems:

    bsp/tms570: Honor DBGRST for TMS570LC4357 Update #4982.
    Comment 34
    1. Sebastian Huber, Mon, 15 Jan 2024 09:38:00 GMT

    In 23ba8d2c/rtems:

    bsp/tms570: Use asm code for tms570_memory_init() Make sure that we do not use the stack for this function. Update #4982.
    Comment 35
    1. Sebastian Huber, Mon, 15 Jan 2024 09:38:02 GMT

    In 2db0844/rtems:

    bsp/tms570: Initialize SRAM on demand Update #4982.
    Comment 36
    1. Sebastian Huber, Mon, 15 Jan 2024 09:38:04 GMT

    In 3f75b58/rtems:

    bsp/tms570: The TMS570LC4357 has no TCRAM modules Update #4982.
    Comment 37
    1. Sebastian Huber, Mon, 15 Jan 2024 09:38:06 GMT

    In e963447/rtems:

    bsp/tms570: Add header guards Update #4982.
    Comment 38
    1. Sebastian Huber, Mon, 15 Jan 2024 09:38:08 GMT

    In d4c6def/rtems:

    bsp/tms570: Use shared bsp_start_hook_1() Update #4982.
    Comment 39
    1. Sebastian Huber, Mon, 15 Jan 2024 09:38:10 GMT

    In 663bedd/rtems:

    bsp/tms570: Use bsp_start_copy_sections_compact() There is no need to relocate the text and read-only data. Update #4982.
    Comment 40
    1. Sebastian Huber, Mon, 15 Jan 2024 09:38:12 GMT

    In 5a2f64cf/rtems:

    bsp/tms570: Initialize and enable caches on demand Update #4982.
    Comment 41
    1. Sebastian Huber, Mon, 15 Jan 2024 09:38:14 GMT

    In 65831d7/rtems:

    bsp/tms570: Optimize tms570_debug_console_out() Reduce number of interrupt disable/enable actions. Update #4982.
    Comment 42
    1. Tyler Miller, Mon, 15 Jan 2024 09:38:16 GMT

    In 53cbe748/rtems:

    bsp/tms570: Initialize MPU Update #4982.
    Comment 43
    1. Tyler Miller, Mon, 15 Jan 2024 09:38:18 GMT

    In b300b967/rtems:

    bsp/tms570: Board-specific tms570_pll_init() Update #4982.
    Comment 44
    1. Tyler Miller, Mon, 15 Jan 2024 09:38:20 GMT

    In 42e013a/rtems:

    bsp/tms570: Board-specific tms570_map_clock_init() Update #4982.
    Comment 45
    1. Tyler Miller, Mon, 15 Jan 2024 09:38:23 GMT

    In 87be7eab/rtems:

    bsp/tms570: Board-specific tms570_pinmux_init() Update #4982.
    Comment 46
    1. Tyler Miller, Mon, 15 Jan 2024 09:38:25 GMT

    In 449d836/rtems:

    bsp/tms570: Board-specific tms570_emif_sdram_init() Update #4982.
    Comment 47
    1. Tyler Miller, Mon, 15 Jan 2024 09:38:27 GMT

    In b47c818/rtems:

    bsp/tms570: Update README Update #4982.
    Comment 48
    1. Sebastian Huber, Mon, 15 Jan 2024 09:38:29 GMT

    In 9a961eec/rtems:

    bsp/tms570: Remove unused BSP options Update #4982.
    Comment 49
    1. Sebastian Huber, Mon, 15 Jan 2024 09:38:31 GMT

    In df37864/rtems:

    bsp/tms570: Use TMS570_OSCILLATOR_MAIN This option replaces BSP_OSCILATOR_CLOCK. It may be used in PLL setup calculatios. Update #4982.
    Comment 50
    1. Sebastian Huber, Thu, 25 Jan 2024 07:17:19 GMT

    In 9fdaa4e/rtems-tools:

    config: Update BSPs Update #4982.
    Comment 51
    1. Adrien Chardon, Thu, 01 Feb 2024 06:57:06 GMT

    In b1fdf75/rtems:

    bsp/tms570: Fix console receive interrupts tms570_sci_interrupt_handler() is called when an RX interrupt fires. It checks in the register FLR, the RXRDY bit (Receiver ready flag - indicate that the SCIRD contains new data). If it is set, it calls tms570_sci_read_received_chars(). tms570_sci_read_received_chars() checks the register RD against 0. If it is non zero, it returns 1 to indicate that one byte was read. In the old behavior, if it is zero, the function returns 0 to indicate that no data was read. The new behavior is to not silently drop 0x00 bytes. Ignoring 0x00 bytes is fine when working with printable text (which, I assume, is how this driver was tested), but as soon as the UART is used in non canonical (raw) mode, with potentially 0x00 bytes, these bytes will be silently dropped, causing issues in the data/protocol layer above. Update #4982.

    4986 - Improve CONFIGURE_TICKS_PER_TIMESLICE configuration and documentation

    Link https://devel.rtems.org/ticket/4986
    Id 4986
    Reporter Sebastian Huber
    Created 31 January 2024 07:13:03
    Modified 31 January 2024 07:13:03
    Owner Sebastian Huber
    Type enhancement
    Component config
    Status assigned
    Resolution  
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The documentation allows a value of zero for CONFIGURE_TICKS_PER_TIMESLICE. This should be changed to make zero an invalid value and it should be rejected by an #error configuration error.


    4991 - RSB source and patch checksum updates

    Link https://devel.rtems.org/ticket/4991
    Id 4991
    Reporter Chris Johns
    Created 16 February 2024 06:51:10
    Modified 20 February 2024 00:58:30
    Owner Chris Johns
    Type defect
    Component tool/rsb
    Status assigned
    Resolution  
    Version 6
    Milestone 6.1
    Priority normal
    Severity normal
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    Downloaded files in the RSB are reporting checksum errors. This ticket is to cover the updates to correct this for the RTEMS 6 release.

    Comment 1
    1. Chris Johns, Sun, 18 Feb 2024 23:44:09 GMT

    In ee02d32/rtems-source-builder:

    gcc: gcc-4.9-1.cfg Make-lang patch checksum error Updates #4991
    Comment 2
    1. Chris Johns, Tue, 20 Feb 2024 00:58:30 GMT

    In 07ba8d5/rtems-source-builder:

    rtems: Checksum fixes Updates #4991

    4993 - Increase FD_SIZE to 256

    Link https://devel.rtems.org/ticket/4993
    Id 4993
    Reporter Chris Johns
    Created 19 February 2024 22:38:06
    Modified 19 February 2024 22:38:17
    Owner Chris Johns
    Type defect
    Component tool/newlib
    Status assigned
    Resolution  
    Version 6
    Milestone 6.1
    Priority highest
    Severity blocker
    Keywords  
    Cc  
    Blocking  
    Blocked by  

    Description

    The default for FD_SIZE in newlib is 64. This is proving to be too small for EPICS applications. EPICS limits the number of descriptors ​here for RTEMS 6 builds. The comment in EPICS base is:

    /* Note: The select() system call can only be used with the first FD_SETSIZE
    * File Descriptors (newlib default is 64). Beginning RTEMS 5.1, FDs are
    * allocated sequentially. So changing this CONFIGURE parameter such
    * that CONFIGURE_MAXIMUM_FILE_DESCRIPTORS >= FD_SETSIZE will likely
    * cause applications making select() calls to fault at some point.
    *
    * IOC core components (libca and RSRV) do not make select() calls.
    *
    * Applications and driver code using poll() or other socket
    * multiplexers do not share this limitation.
    *
    * cf. https://github.com/epics-base/epics-base/issues/300
    */

    Increasing FD_SIZE to 256 will increase the set but 64 is too small for RTEMS and we do not need 1024 that systems like FreeBSD have.

    Comment 1
    1. Chris Johns, Mon, 19 Feb 2024 22:38:17 GMT
    2. owner: set to Chris Johns
    3. status: changed from new to assigned

    550 - fcntl() fails to put a non-blocking socket into blocking mode

    Link https://devel.rtems.org/ticket/550
    Id 550
    Reporter Thomas Rauscher
    Created 16 January 2004 11:47:00
    Modified 29 November 2022 21:47:15
    Owner Joel Sherrill
    Type defect
    Component network/legacy
    Status closed
    Resolution wontfix
    Version 4.5
    Milestone 6.1
    Priority normal
    Severity major
    Keywords  
    Cc bugs@… joel.sherrill@…
    Blocking  
    Blocked by  

    Description

    A socket cannot be put into blocking mode using fcntl()
    once it has been put into non-blocking mode.

    ioctl() is working fine, so the problem is not in the IP stack.

    The problem occurs in real life with the GoAhead? webserver on high-latency connections as its non-blocking write socket remains non-blocking and a web page can be truncated when websDone() is called.

    In newlib (1.10, 1.11) there are several non-blocking flags.
    The following is defined in sys/fcntl.h

    #define _FNBIO 0x1000 /* non blocking I/O (sys5 style) */
    #define _FNONBLOCK 0x4000 /* non blocking I/O (POSIX style) */
    ...
    #define _FNDELAY _FNONBLOCK /* non blocking I/O (4.2 style) */
    /* O_NDELAY _FNDELAY set in include/fcntl.h */
    /* O_NDELAY _FNBIO set in 5include/fcntl.h */
    #define O_NONBLOCK _FNONBLOCK

    So O_NDELAY is never defined. sys/fcntl.h is not patched by
    the rtems-newlib patch.

    In RTEMS, libio.c and libio_.h both contain the following
    code

    #if ! defined(O_NDELAY)
    # if defined(solaris2)
    # define O_NDELAY O_NONBLOCK
    # elif defined(RTEMS_NEWLIB)
    # define O_NDELAY _FNBIO
    # endif
    #endif

    As O_NDELAY is undefined and RTEMS_NEWLIB is defined,
    O_NDELAY is defined to 0x1000.

    Thus, using O_NONBLOCK in fcntl() (this was suggested
    in the mailing list some time ago) doesn't seem to work.

    Release:
    RTEMS-4.5

    Environment:
    rtems-4.5.0, newlib-1.10 or newlib-1.11

    Attachments:

    1 Thomas Rauscher, Sun, 03 Dec 2006 13:31:12 GMT
      attach: set to socketblock.c
     
    Comment 1
    1. Joel Sherrill, Fri, 16 Jan 2004 18:01:54 GMT
    2. status: changed from assigned to waiting

    State-Changed-From-To: open->feedback State-Changed-Why: Thomas .. does this happen in 4.6 or the currect source?

    I don't see this problem in the current code. At this point, no further releases from the 4.5 branch are planned so I am prone to close any bug report against it.

    Comment 2
    1. Gedare Bloom, Sat, 22 Nov 2014 14:23:02 GMT
    2. description: modified (diff)
    3. milestone: changed from 2 to 4.9.5
    Comment 3
    1. Gedare Bloom, Sat, 22 Nov 2014 14:24:39 GMT
    2. owner: changed from Eric Norum to Joel Sherrill
    Comment 4
    1. Joel Sherrill, Sun, 23 Nov 2014 18:52:45 GMT

    I am hacking together a test but I believe this does happen in the current source. It looks like so_ioctl(fd, FIONBIO, [O_NONBLOCK|~O_NONBLOCK]) needs to be called. We have the ioctl_h handler but should we make the call if networking is enabled?

    Comment 5
    1. Joel Sherrill, Sun, 23 Nov 2014 18:56:06 GMT

    NOTE that FIONBIO is not defined in newlib -- only in the network stack so that makes for some trouble. I suppose we could modify rtems_syscalls.c to handle F_SETFD.

    Comment 6
    1. Joel Sherrill, Thu, 12 Feb 2015 17:46:49 GMT
    2. description: modified (diff)
    3. milestone: changed from 4.9.5 to 5.0

    This is a known issue with many RTOS'. The FACE (​http://www.opengroup.org/face) standard has specifically had to add requirements so this behavior is required of RTOSes conforming to the FACE POSIX Profiles. The ioctl() interface is not in POSIX and fcntl() is the only way to set non-blocking in a pure POSIX environment.

    I pushed this milestone to 5.0 because:

    this is a long-standing issue. it is technically beyond the POSIX standard itself. it will need to be addressed with the current IPV4 stack, the new IPV4/IPV6 stack and LWIP if we are to support that. this needs test code. this needs a design that can work with multiple network stacks.
    Comment 7
    1. Sebastian Huber, Thu, 09 Nov 2017 06:26:42 GMT
    2. milestone: changed from 5.0 to 6.1

    Milestone renamed

    Comment 8
    1. Chris Johns, Tue, 29 Nov 2022 21:47:15 GMT
    2. status: changed from assigned to closed
    3. resolution: set to wontfix

    The fd handling has evolved and now we have libbsd. If this is still a problem please reopen.