wiki:Release/6/6.1
Notice: We have migrated to GitLab launching 2024-05-01 see here: https://gitlab.rtems.org/

6.1 (open)

Statistics

Total579
Fixed483
Invalid13
Works for me6
Duplicate10
Won't fix23

Distribution

defect

376 / 408

enhancement

117 / 126

task

38 / 40

project

5 / 5

Summary

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

Details

Ticket Created Resolution Component Reporter Owner Modified
#550 20 years ago wontfix network/legacy Thomas Rauscher Joel Sherrill 19 months ago
Summary

fcntl() fails to put a non-blocking socket into blocking mode

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

#1318 16 years ago wontfix bsps Ralf Corsepius Joel Sherrill 7 years ago
Summary

libcpu/shared is not helpful

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.

#1459 15 years ago fixed shell Ralf Corsepius Chris Johns 19 months ago
Summary

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

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

#1593 14 years ago wontfix score zhangwenjie Joel Sherrill 7 years ago
Summary

RTEMS Sequenced Initialization API

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.

#1712 14 years ago fixed network/legacy Joel Sherrill Joel Sherrill 3 years ago
Summary

Add LWIP Support to RTEMS

Description

This port was done by Marcello Presulli <m.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.

#1728 14 years ago invalid bsps Marcello Presulli Joel Sherrill 7 years ago
Summary

Patch for RTEMS-BSP m68k/mcf5225x

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.

#1815 13 years ago invalid score Helder Silva Joel Sherrill 7 years ago
Summary

_ISR_Nest_level should be protected with interrupts disabled in function _Watchdog_Insert

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.

#1820 13 years ago wontfix unspecified Ralf Corsepius Joel Sherrill 7 years ago
Summary

sptests/sp36: Improper buildsystem integration

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.

#2000 12 years ago wontfix build Marta Rybczynska Ralf Corsepius 3 years ago
Summary

Re-add removed LINK_OBJS to MP tests

Description

PR1589 commit: 2011-12-08 Joel Sherrill <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 <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.

#2071 12 years ago wontfix build cynt6007 Ralf Corsepius 7 years ago
Summary

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

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

#2111 11 years ago config cynt6007 Joel Sherrill 7 years ago
Summary

AVR needs avr-libc to compile RTEMS.

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

#2114 11 years ago invalid fs Andrey Mozzhuhin Chris Johns 7 years ago
Summary

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

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.

#2189 10 years ago fixed doc Sebastian Huber Needs Funding 3 years ago
Summary

Insufficient documentation for rtems_clock_get_tod()

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?

#2215 10 years ago duplicate fs Sebastian Huber 7 years ago
Summary

Duplicate code for TAR support

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.

#2269 9 years ago duplicate score Joel Sherrill 7 years ago
Summary

x86 Context Switch Synchronization and SMP

Description

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

#2301 9 years ago wontfix build Jeffrey Hill Needs Funding 3 years ago
Summary

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

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 <bsp_specs_cpu>

*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.

#2330 9 years ago fixed unspecified Joel Sherrill Needs Funding 3 years ago
Summary

nios2 missing atomics, fails to link C++

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

#2348 9 years ago fixed score Sebastian Huber 8 months ago
Summary

Timecounter: Add NTP support

Description

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

#2349 9 years ago fixed score Sebastian Huber Sebastian Huber <sebastian.huber@…> 8 months ago
Summary

Timecounter: Add PPS support

Description

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

#2365 9 years ago fixed score Sebastian Huber Sebastian Huber 2 years ago
Summary

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

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.

#2778 8 years ago worksforme unspecified Sambeet Panigrahi Chris Johns 19 months ago
Summary

Error building RTEMS Source Builder recipe for libxml

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 ..<config directory>" appears.

#2828 8 years ago fixed lib Joel Sherrill Needs Funding 17 months ago
Summary

Remove libmisc/serdbg

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.

#2869 7 years ago fixed score Sebastian Huber 2 years ago
Summary

Remove support for 16-bit object identifiers

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.

#2871 7 years ago fixed doc Sebastian Huber 20 months ago
Summary

Use bibtex references thoughout the documentation

#2872 7 years ago fixed score Sebastian Huber 3 years ago
Summary

Get rid of CONFIGURE_MAXIMUM_PTYS

Description

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

#2902 7 years ago fixed bsps Tanu Hari Dixit Joel Sherrill 3 years ago
Summary

Port RTEMS to Microblaze

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

#2971 7 years ago fixed unspecified Joel Sherrill Needs Funding 3 years ago
Summary

Add fenv.h to newlib

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.

#2985 7 years ago fixed doc Joel Sherrill chrisj@… 3 years ago
Summary

Add documentation for printk()

Description

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

#3143 7 years ago fixed score Sebastian Huber Sebastian Huber 2 years ago
Summary

Remove obsolete rtems_gxx_*() implementation

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 <sys/lock.h> for the RTEMS thread model.

Remove the obsolete implementation.

#3199 7 years ago fixed lib Sebastian Huber Sebastian Huber 3 years ago
Summary

New test framework

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.h>):

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 <stdio.h>
#include <string.h>

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);
}
#3250 7 years ago fixed build Joel Sherrill Sebastian Huber <sebastian.huber@…> 22 months ago
Summary

Remove Use of bsp_specs

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.

#3269 6 years ago fixed rtems Sebastian Huber Sebastian Huber 12 months ago
Summary

Make the IRQ extensions API a standard API

Description

The IRQ extensions API defined by <rtems/irq-extensions.h> 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.

#3321 6 years ago fixed doc Sebastian Huber Sebastian Huber 2 years ago
Summary

Improve console driver documentation

Description

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

#3414 6 years ago invalid unspecified Joel Sherrill 19 months ago
Summary

Remove Makefiles from rtems-examples?

Description

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

#3420 6 years ago fixed rtems Joel Sherrill joel 20 months ago
Summary

Deprecate/obsolete rtems_io_lookup_name

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?

#3456 6 years ago fixed score Sebastian Huber Sebastian Huber 8 months ago
Summary

Add support for CPU counter timestamps

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.

#3566 6 years ago fixed build Sebastian Huber Sebastian Huber 2 years ago
Summary

Remove checks for Newlib features introduced during the RTEMS 5 development

Description

Remove checks for O_DIRECTORY, O_CLOEXEC and O_NOFOLLOW.

#3584 6 years ago fixed rtems Sebastian Huber Sebastian Huber 3 years ago
Summary

Remove types which are only available if RTEMS_DEPRECATED_TYPES is defined

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.

#3586 6 years ago fixed score Sebastian Huber Sebastian Huber 3 years ago
Summary

Remove deprecated proc_ptr definition

#3588 6 years ago fixed rtems Sebastian Huber Sebastian Huber 3 years ago
Summary

Remove deprecated rtems_context

#3590 6 years ago fixed rtems Sebastian Huber Sebastian Huber 3 years ago
Summary

Remove deprecated rtems_context_fp

#3592 6 years ago fixed rtems Sebastian Huber Sebastian Huber 3 years ago
Summary

Remove deprecated region_information_block

#3594 6 years ago fixed rtems Sebastian Huber Sebastian Huber 3 years ago
Summary

Remove deprecated rtems_thread_cpu_usage_t

#3596 6 years ago fixed rtems Sebastian Huber Sebastian Huber 3 years ago
Summary

Remove deprecated rtems_rate_monotonic_period_time_t

#3613 6 years ago fixed arch/m32c Sebastian Huber Sebastian Huber 2 years ago
Summary

Remove m32c architecture port from upstream tools

Description

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

#3615 6 years ago wontfix admin shashvat jain Chris Johns 19 months ago
Summary

Convert Tools_Used Wiki page into Support Tools Selection with Criteria

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.

#3657 6 years ago fixed posix Marçal Comajoan Cara 3 years ago
Summary

Add support for poll.h method - poll

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.

#3659 6 years ago fixed arch/sparc Martin Aberg 3 years ago
Summary

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

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():

  1. Release other CPUs from power-down (but does not wait here)
  2. Some other initializations
  3. Overwrite trap entry 0 with spurious interrupt handler
  4. 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".

#3689 5 years ago fixed lib/block Sebastian Huber Sebastian Huber 3 years ago
Summary

bdbuf: Replace automatic read-ahead with rtems_bdbuf_peek()

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.

#3698 5 years ago worksforme lib/dl Joel Sherrill 3 years ago
Summary

libdl failure on many PowerPC BSPs

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
#3702 5 years ago fixed doc Sebastian Huber Sebastian Huber 3 years ago
Summary

Space profile for RTEMS SMP

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.

#3704 5 years ago fixed doc Sebastian Huber Sebastian Huber 11 months ago
Summary

Review and update Doxygen recommendations

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.

#3705 5 years ago fixed doc Sebastian Huber Sebastian Huber 8 months ago
Summary

Software Design Document (SDD) for space profile

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?

#3706 5 years ago fixed doc Sebastian Huber Sebastian Huber 11 months ago
Summary

Create a hierarchy of RTEMS software components using Doxygen groups

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
#3707 5 years ago fixed doc Sebastian Huber Sebastian Huber 5 months ago
Summary

Assign each code file to a Doxygen group

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.

#3715 5 years ago fixed doc Sebastian Huber Sebastian Huber 13 months ago
Summary

Add Requirements Engineering chapter to RTEMS Software Engineering Handbook

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
#3717 5 years ago fixed doc Sebastian Huber Sebastian Huber 8 months ago
Summary

Add test guidelines chapter to RTEMS Software Engineering Handbook

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
#3718 5 years ago fixed test Sebastian Huber Sebastian Huber 3 years ago
Summary

Add support for test plans

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:

  1. Add the test plan directly to the test code in form of a specially formatted comment.
  1. 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.

#3719 5 years ago fixed lib Joel Sherrill Sebastian Huber 8 months ago
Summary

Update libcrypt to latest FreeBSD to address Coverity Scan Issues

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: &#39;Constant&#39; 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);
#3726 5 years ago fixed doc Sebastian Huber Sebastian Huber 3 years ago
Summary

Select a requirements engineering tool

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

#3818 5 years ago fixed build Sebastian Huber Sebastian Huber 3 years ago
Summary

New build system

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
#3828 5 years ago fixed build Sebastian Huber Sebastian Huber 3 years ago
Summary

Switch over to new build system

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.

  1. Review the build system specification in the user manual. If something is unclear, please complain.
  1. 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-*).
  1. 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.
  1. Build the BSPs of interest with different permutations of build options. Make sure a sample set of tests runs for each permutation.
  1. Check that all artefacts (libraries, header files, start files, linker command files, etc.) are properly installed.
  1. Check that you can build your applications and third-party libraries with the installed BSPs of interest.
#3846 5 years ago fixed build Sebastian Huber Sebastian Huber 3 years ago
Summary

Build system does not track the dependencies of start.o files

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
#3847 5 years ago duplicate build Sebastian Huber Sebastian Huber 23 months ago
Summary

Test programs are not re-linked if a start.o or linker command file changes

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.

#3853 4 years ago fixed doc Sebastian Huber Sebastian Huber 3 years ago
Summary

Add and use project-wide glossary to documentation

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.

#3866 4 years ago fixed bsps Sebastian Huber Sebastian Huber 3 years ago
Summary

Add support for GCC 10 noinit attribute

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.

#3878 4 years ago worksforme rtems Joel Sherrill 3 years ago
Summary

rtems06: All BSPs Fail to build with BSP Builder on rtems 6

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.

#3883 4 years ago fixed tool Sebastian Huber Sebastian Huber 4 years ago
Summary

Trace linker is broken on small-data area targets

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
#3886 4 years ago fixed tool/rsb Chris Johns Chris Johns 4 years ago
Summary

Fail an RSB build with --mail option if a repo is not clean

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?

#3897 4 years ago wontfix network/libbsd Ionut Vilsan Sebastian Huber 22 months ago
Summary

Dhcpcd does not daemonize

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 ?

#3910 4 years ago fixed bsps Sebastian Huber Sebastian Huber 11 months ago
Summary

Add BSP for STM32H7

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.

#3924 4 years ago fixed doc Sebastian Huber Sebastian Huber 22 months ago
Summary

Test the application configuration options

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.

#3925 4 years ago fixed bsps Sebastian Huber Sebastian Huber 2 years ago
Summary

Optimize work area initialization

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.

#3929 4 years ago fixed doc Gedare Bloom Needs Funding 19 months ago
Summary

Document use of virtualenv

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.

#3935 4 years ago fixed unspecified Sebastian Huber Sebastian Huber 8 months ago
Summary

Remove use of RTEMS_INLINE_ROUTINE in the RTEMS sources

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.

#3937 4 years ago fixed tool/gcc Sebastian Huber Sebastian Huber <sebastian.huber@…> 3 years ago
Summary

Move content of bsp_specs to GCC

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.

#3941 4 years ago fixed arch/epiphany Sebastian Huber Hesham Almatary 4 years ago
Summary

Remove epiphany architecture support

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.

#3942 4 years ago fixed arch/mips Sebastian Huber Joel Sherrill 19 months ago
Summary

multiple definition of `pci_indirect_functions'

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
#3947 4 years ago fixed lib Joel Sherrill Sebastian Huber 2 years ago
Summary

fdt_rw.c: Unchecked return value (CID #1047324)

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     

#3951 4 years ago fixed arch/powerpc Sebastian Huber Sebastian Huber 2 years ago
Summary

Remove obsolete powerpc BSPs

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
#3957 4 years ago fixed doc Joel Sherrill 18 months ago
Summary

Review wiki/Developer for deletion

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.

#3959 4 years ago fixed rtems Sebastian Huber Sebastian Huber 3 years ago
Summary

Add rtems_task_construct()

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 <rtems/confdefs.h> 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
);
#3962 4 years ago fixed doc Joel Sherrill Gedare Bloom 4 years ago
Summary

Licensing Requirements for Submissions Poorly Documented

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.

#3977 4 years ago invalid test Joel Sherrill joel@… 19 months ago
Summary

Add unexplained-failure as option for Test Configuration Files

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.

#3978 4 years ago fixed rtems Sebastian Huber Sebastian Huber 3 years ago
Summary

Move _RTEMS_version to implementation header file

Description

The global variable _RTEMS_version was declared via <rtems.h> 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.

#3979 4 years ago fixed rtems Sebastian Huber Sebastian Huber 3 years ago
Summary

Remove RTEMS_MAXIMUM_NAME_LENGTH

Description

Remove this deprecated define.

#3980 4 years ago fixed rtems Sebastian Huber Sebastian Huber 3 years ago
Summary

Remove deprecated <rtems/system.h>

Description

This header file is included by <rtems.h> and contains only deprecated or internal content. Remove this deprecated header file.

#3981 4 years ago fixed rtems Sebastian Huber Sebastian Huber 3 years ago
Summary

Remove _Copyright_Notice from API header file

Description

Remove _Copyright_Notice from API header file. Applications should use rtems_get_copyright_notice() which is available since RTEMS 5.

#3982 4 years ago fixed test Sebastian Huber Sebastian Huber 3 years ago
Summary

Test failures on BSPs with sbrk() support

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=<optimized out>) 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=<optimized out>, lock_context=<optimized out>) 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.

#3988 4 years ago fixed rtems Sebastian Huber Sebastian Huber 3 years ago
Summary

Remove deprecated rtems_extension

Description
#3989 4 years ago fixed rtems Sebastian Huber Sebastian Huber 3 years ago
Summary

Remove deprecated rtems_get_current_processor()

#3990 4 years ago fixed rtems Sebastian Huber Sebastian Huber 3 years ago
Summary

Remove deprecated rtems_get_processor_count()

#3991 4 years ago fixed score Sebastian Huber Sebastian Huber 3 years ago
Summary

Remove deprecated Thread typedef

#3993 4 years ago fixed rtems Sebastian Huber Sebastian Huber 21 months ago
Summary

Specify the RTEMS Classic API

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:

  • <rtems.h>
  • <rtems/config.h>
  • <rtems/extension.h>
  • <rtems/fatal.h>
  • <rtems/init.h>
  • <rtems/io.h>
  • <rtems/rtems/barrier.h>
  • <rtems/rtems/cache.h>
  • <rtems/rtems/clock.h>
  • <rtems/rtems/config.h>
  • <rtems/rtems/dpmem.h>
  • <rtems/rtems/event.h>
  • <rtems/rtems/intr.h>
  • <rtems/rtems/message.h>
  • <rtems/rtems/modes.h>
  • <rtems/rtems/mp.h>
  • <rtems/rtems/object.h>
  • <rtems/rtems/options.h>
  • <rtems/rtems/part.h>
  • <rtems/rtems/ratemon.h>
  • <rtems/rtems/region.h>
  • <rtems/rtems/sem.h>
  • <rtems/rtems/signal.h>
  • <rtems/rtems/status.h>
  • <rtems/rtems/support.h>
  • <rtems/rtems/tasks.h>
  • <rtems/rtems/timer.h>
  • <rtems/rtems/types.h>
  • <rtems/score/stack.h>

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:

  1. Add a interface specification item for each variable, typedef, enum, enumerator, define, macro, function, struct, and union.
  1. 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.
  1. 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.
  1. Add unspecified interface items for interfaces to the implementation, C language, compiler, user provided defines, build system provided defines, etc.
  1. Run the RTEMS test suite with all tests enabled and check for regressions (in particular new warnings).
  1. Create a commit for each header file and send it to the RTEMS mailing list for review.
#3994 4 years ago fixed doc Sebastian Huber Sebastian Huber 3 years ago
Summary

Generate Doxygen markup for the application configuration options

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.

#3996 4 years ago fixed arch/powerpc Sebastian Huber Joel Sherrill 19 months ago
Summary

fenv support is missing on powerpc

Description

The test program psxfenv01 fails on powerpc.

#3997 4 years ago fixed arch/sparc Sebastian Huber Joel Sherrill 19 months ago
Summary

fenv support is missing on sparc

Description

The test program psxfenv01 fails on sparc.

#3998 4 years ago fixed arch/arm Sebastian Huber Joel Sherrill 19 months ago
Summary

fenv support is missing on arm

Description

The test program psxfenv01 fails on arm.

#4007 4 years ago fixed rtems Sebastian Huber Sebastian Huber 3 years ago
Summary

Add rtems_message_queue_construct()

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
);
#4018 4 years ago fixed admin Kinsey Moore Kinsey Moore <kinsey.moore@…> 4 years ago
Summary

libcpusupport: Architecture defines are present outside CPU port

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.

#4020 4 years ago fixed build Sebastian Huber Sebastian Huber 2 years ago
Summary

Change all version numbers to RTEMS 6 on the master branches

#4025 4 years ago fixed network/libbsd Sebastian Huber Sebastian Huber 2 years ago
Summary

NFS Client is broken on 64-bit targets

Description

Cloned from #4024.

#4029 4 years ago fixed arch/i386 Jan Sommer Jan Sommer <jan.sommer@…> 4 years ago
Summary

i386: SMP-System hangs with non-consecutive APIC IDs

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.

#4031 4 years ago fixed arch/i386 Jan Sommer Jan Sommer <jan.sommer@…> 4 years ago
Summary

i386: ISR can overwrite its own stack during system initialization (cloned)

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.

#4032 4 years ago fixed lib Sebastian Huber Sebastian Huber 3 years ago
Summary

Make deferred free in malloc() support optional

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.

#4034 4 years ago fixed lib Sebastian Huber Sebastian Huber 4 years ago
Summary

Add rtems_interrupt_server_create() and rtems_interrupt_server_destroy() (cloned)

Description

Cloned from #4033. In addition to the implementation add also unit tests.

#4036 4 years ago fixed tool/rsb Chris Johns Chris Johns 4 years ago
Summary

Track dependency command for the RSB

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.

#4037 4 years ago fixed tool Chris Johns Chris Johns 19 months ago
Summary

Python script distribution standardisation

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.

#4039 4 years ago fixed arch/arm Sebastian Huber Sebastian Huber 4 years ago
Summary

arm/atsam/SC16IS752: Make interrupt server configurable (cloned)

Description

Cloned from #4038.

#4040 4 years ago fixed test Joel Sherrill joel@… 4 years ago
Summary

coverhd.h remnants left to remove

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
#4043 4 years ago fixed doc Chris Johns Sebastian Huber 4 years ago
Summary

Update software eng manual to rtems-central

Description

https://docs.rtems.org/branches/master/eng/req/howto.html

Update to rtems-central

#4044 4 years ago duplicate tool/rsb Chris Johns Chris Johns 4 years ago
Summary

Add RSB Track command

Description

Add a comment to track the RSB build set and configuration files.

#4045 4 years ago fixed tool/rsb Chris Johns Chris Johns 4 years ago
Summary

Remove RSB sb-builder command

Description

This command is now always wrapped bu the set builder. There is no need to use the command line with configuration files.

#4046 4 years ago fixed tool/rsb Chris Johns Chris Johns 4 years ago
Summary

Remove RSB sb-bootstrap command

Description

Bootstrapping is going away with the new build system and until then the command in rtems.git should be used.

#4048 4 years ago wontfix tool/rsb Chris Johns Chris Johns 19 months ago
Summary

Move RTEMS 5 BSP and package build sets and configs to RTEMS 6

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.

#4052 4 years ago wontfix network/libbsd Jan Sommer 19 months ago
Summary

[libbsd] e1000 driver not working for i386 based BSP in current rtems-libbsd master

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.

#4054 4 years ago fixed rtems Sebastian Huber Sebastian Huber 3 years ago
Summary

RTEMS_BARRIER_AUTOMATIC_RELEASE and RTEMS_BINARY_SEMAPHORE options have the same value

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.

#4055 4 years ago fixed bsps Jan Sommer Jan Sommer <jan.sommer@…> 4 years ago
Summary

bsps/xilinx-zynq: Flush TX-Buffer before initializing the zynq-uart

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.

#4061 4 years ago fixed config Sebastian Huber Sebastian Huber 4 years ago
Summary

The reworked <rtems/confdefs.h> has a cyclic dependency with RTEMS_MULTIPROCESSING enabled (cloned)

Description

Cloned from #4060:


The changes for #3875 introduced a cyclic dependency between <rtems/confdefs/mpci.h> and <rtems/confdefs/threads.h>.

#4063 4 years ago fixed test Chris Johns Chris Johns 4 years ago
Summary

Change to a simpler TFTP server for rtems-test

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.

#4065 4 years ago fixed tool Heinz Junkes Joel Sherrill <joel@…> 19 months ago
Summary

Typo in rtems-boot.ini "ubootdior" should be "ubootdir"

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

#4066 4 years ago fixed test Chris Johns Chris Johns 4 years ago
Summary

test running for too long

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.

#4067 4 years ago fixed network/libbsd Chris Johns Chris Johns 4 years ago
Summary

Libbsd build system does not separate kernel and user land include paths

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.

#4069 4 years ago fixed tool Chris Johns Hesham Almatary <Hesham.Almatary@…> 19 months ago
Summary

dl06 does not link on RISCV

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
#4070 4 years ago fixed arch/riscv Joel Sherrill 3 years ago
Summary

RISC-V Multiple Definition Error (many BSPs)

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

#4074 4 years ago fixed config Sebastian Huber Sebastian Huber 3 years ago
Summary

Add CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE

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

#4076 4 years ago fixed arch/i386 Gedare Bloom Gedare Bloom 4 years ago
Summary

i386: bad asm in smp mode

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:

#4077 4 years ago fixed network/libbsd Chris Johns Chris Johns 4 years ago
Summary

Implement LibBSD module dependencies in the build system

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.

#4078 4 years ago fixed arch/powerpc Sebastian Huber Sebastian Huber 22 months ago
Summary

GCC C++ compiler for powerpc defines _GNU_SOURCE as a built-in

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.

#4079 4 years ago fixed build Sebastian Huber Sebastian Huber <sebastian.huber@…> 4 years ago
Summary

build: i386/pc686/appstart.o is created more than once

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.

#4080 4 years ago fixed build Sebastian Huber Sebastian Huber 3 years ago
Summary

build: Add start.o dependency to the executable link step

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.

#4081 4 years ago fixed build Sebastian Huber Sebastian Huber 3 years ago
Summary

Remove Autoconf/Automake? based build system

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

#4084 4 years ago fixed tool/gcc Joel Sherrill 4 years ago
Summary

throwing std::runtime on PC BSP fails

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.

#4093 4 years ago fixed bsps Joel Sherrill Jan Sommer <jan.sommer@…> 4 years ago
Summary

bsps/pc386: Add missing license header

Description

bspsmp.c is missing a licence header.

#4097 4 years ago fixed shell Frank Kuehndel Sebastian Huber 4 years ago
Summary

shell: CRTL-U sets the cursor to the wrong position (cloned)

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 <RETURN>):

~/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 <ARROW-LEFT> key. Next type <CTRL>-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                                                                
#4098 4 years ago fixed tool/rsb Joel Sherrill 3 years ago
Summary

All BSP bsets fail to build on master

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 <module>
    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
#4100 4 years ago fixed arch/arm Joel Sherrill 4 years ago
Summary

arm/edb7312 Build Failure When SMP is Enabled

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
#4101 4 years ago fixed arch/arm Joel Sherrill 4 years ago
Summary

atsamv fails to build on master

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;
      |   ^~~~~~~~~~~~~~~~~~~

#4103 4 years ago fixed admin Joel Sherrill 4 years ago
Summary

BeagleBoard? BSPs Fail to Build

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
#4105 4 years ago fixed rtems Sebastian Huber Sebastian Huber 3 years ago
Summary

Add RTEMS_PARTITION_ALIGNMENT

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.

#4107 4 years ago fixed build Joel Sherrill Sebastian Huber 4 years ago
Summary

waf -j24 fails on powerpc/psim -- probable dependency issue

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
#4108 4 years ago fixed test Joel Sherrill Sebastian Huber 22 months ago
Summary

Review minimum and ensure it really is a minimum configuration

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.

#4110 4 years ago fixed unspecified Chris Johns Ryan Long <ryan.long@…> 2 years ago
Summary

Ubuntu package list is broken

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.

#4115 4 years ago fixed arch/arm Sebastian Huber Sebastian Huber 4 years ago
Summary

Cortex-A9 MPCore based BSPs should include the workaround for Errata 794072 and 845369

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.

#4116 4 years ago fixed arch/arm Joel Sherrill Sebastian Huber 4 years ago
Summary

raspberrypi fails to build on waf and autoconf

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
#4117 4 years ago fixed arch/arm Joel Sherrill Sebastian Huber 4 years ago
Summary

lpc1768_mbed_ahb_ram_eth sp01 and others fail to link

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

#4118 4 years ago wontfix arch/sparc Joel Sherrill 4 years ago
Summary

Add clang variants for sparc BSPs

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.

#4120 4 years ago fixed arch/arm Joel Sherrill Sebastian Huber 4 years ago
Summary

altcycv_devkit and imx7 fail to build all tests on master

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 <rtems/testopts.h>
      |          ^~~~~~~~~~~~~~~~~~
compilation terminated.
gmake[5]: *** [smpmulticast01/smpmulticast01-init.o] Error 1

#4121 4 years ago fixed arch/arm Joel Sherrill Sebastian Huber 4 years ago
Summary

lm3s3749 fails to build all tests on master

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

#4122 4 years ago fixed rtems Sebastian Huber Sebastian Huber 3 years ago
Summary

Change RTEMS_NO_RETURN to use C11 and C++11 standard means

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.

#4123 4 years ago fixed tool Joel Sherrill Sebastian Huber <sebastian.huber@…> 4 years ago
Summary

rtems-bsps needs to be switched to look at waf info for BSPs

Description

rtems-bsps depends on autoconf. It must be fixed to depend on waf BSP configuration information before we can switch from autoconf.

#4124 4 years ago fixed tool Joel Sherrill Ryan Long <ryan.long@…> 3 years ago
Summary

rtems-bsp-builder needs to be switched to waf builds

Description

rtems-bsp-tester depends on autoconf. It must be fixed to depend on waf BSP configuration information before we can switch from autoconf.

#4126 4 years ago fixed network/legacy Chris Johns 3 years ago
Summary

Remove legacy networking stack from rtems.git and place in a new repo

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:

  1. Move the code to a new repo
  1. Add rtems_waf support to build it
  1. Clean out BSP references to network interfaces or drivers
  1. Merge in the network demos repo
#4127 4 years ago fixed test Joel Sherrill Sebastian Huber 4 years ago
Summary

x86_64/amd64 fails to build

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

#4128 4 years ago fixed bsps Joel Sherrill Jiri Gaisler 4 years ago
Summary

all griscv variants fail to build on master

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

#4129 4 years ago fixed tool/website Joel Sherrill 3 years ago
Summary

x86_64 not listed as architecture in components in Trac

Description

Just needs to be added.

#4131 4 years ago fixed shell Frank Kuehndel Frank Kühndel <frank.kuehndel@…> 4 years ago
Summary

"fdisk DISK_NAME mount" in bdpart-mount.c uses non-existing file system type "msdos"

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).

#4134 4 years ago fixed tool Sebastian Huber Sebastian Huber 4 years ago
Summary

rtemsspec: Support user-defined ordering of directives in header files (Doxygen)

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.

#4140 4 years ago fixed build Joel Sherrill Sebastian Huber <sebastian.huber@…> 4 years ago
Summary

waf install of RTEMS breaks Makefile system in rtems-examples

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

#4142 4 years ago fixed lib/block Sebastian Huber Sebastian Huber 4 years ago
Summary

Sparse disk destroys data when it grows

Description

The qsort() in sparse_disk_get_new_block() may move the appended key which invalidates the pointer.

#4143 4 years ago fixed test Frank Kuehndel joel@… 4 years ago
Summary

fileio - Stack too small for login with password

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:

  1. Start the fileio sample in QEMU with the above command.
  1. Type a key to stop the timer.
  1. Type "s" <return> to enter the shell.
  1. Login as "root" with the password printed to the terminal.
  1. 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

#4145 4 years ago fixed tool/rsb Joel Sherrill Ryan Long <ryan.long@…> 3 years ago
Summary

rtems-source-builder: Update RTEMS Kernel Recipe to Use waf for RTEMS

Description

kernel configuration builds using autoconf-based build system. Needs to be switched to waf. Hopefully contained to rtems-kernel-common.cfg.

#4148 4 years ago fixed fs/rfs Chris Johns Chris Johns 4 years ago
Summary

RFS bit map search buffer overflow

Description

The bit search create writes past the end of its buffer. See:

https://lists.rtems.org/pipermail/devel/2020-October/062701.html

#4155 4 years ago fixed arch/sparc Sebastian Huber Daniel Hellstrom 3 years ago
Summary

Add a workaround for the LEON3FT RETT Restart errata: TN-0018

Description

See also:

https://www.gaisler.com/doc/antn/GRLIB-TN-0018.pdf

#4157 4 years ago fixed posix Sebastian Huber Sebastian Huber 3 years ago
Summary

pthread_spin_unlock() may corrupt the thread stack if RTEMS_PROFILING and RTEMS_SMP is enabled

Description

The call to _SMP_lock_Stats_register_or_max_section_time() registers a dummy statistics block which resides on the thread stack.

#4158 4 years ago fixed bsps Sebastian Huber Sebastian Huber 4 years ago
Summary

rtems_interrupt_server_delete() does not destroy the ISR lock of the server control

Description

This leads to memory corruption if RTEMS_PROFILING and RTEMS_SMP is enabled.

#4164 4 years ago fixed network/libbsd Sebastian Huber Sebastian Huber 4 years ago
Summary

Fix NVMe disk synchronization and media block handling

#4166 4 years ago duplicate tool Joel Sherrill 19 months ago
Summary

rtems-bsp-builder: Add way to select rtems version (6 vs 7)

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.

#4167 4 years ago fixed tool Joel Sherrill Joel Sherrill 2 years ago
Summary

Coverity Scan Does Not Run on rtems6

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.

#4175 4 years ago fixed arch/aarch64 Kinsey Moore 4 years ago
Summary

Resolve warning during AArch64 build

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.

#4180 4 years ago fixed bsps Christian Mauderer Christian Mauderer 3 years ago
Summary

Add BSP for i.MXRT1050

Description

Add a BSP for the ​i.MXRT1050 series. The default settings for the BSP will run on the IMXRT1050-EVKB evaluation board.

#4181 4 years ago fixed admin Sebastian Huber Sebastian Huber 3 years ago
Summary

Add CONFIGURE_INIT_TASK_STORAGE_SIZE

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
#4184 4 years ago fixed bsps Jan Sommer Jan Sommer <jan.sommer@…> 4 years ago
Summary

arm/bsps: Small MMU pages are rounded to 1 MiB

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.

#4192 4 years ago fixed bsps Jan Sommer 3 years ago
Summary

bsp/xilinx_zynq: Enable support for small MMU pages

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.

#4193 4 years ago fixed tool/newlib Joel Sherrill Sebastian Huber <sebastian.huber@…> 4 years ago
Summary

devctl.h does not compile from C++ (cloned)

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.

#4194 4 years ago worksforme tool/rsb Sebastian Huber 3 years ago
Summary

RSB failed with mail subject: Build Linux: PASSED 6/rtems-arm on x86_64-linux-gnu

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.

#4195 4 years ago fixed tool Sebastian Huber Sebastian Huber 3 years ago
Summary

Add gr740 support available in SIS 2.25 to the RTEMS Tester

#4196 4 years ago fixed tool/gcc Sebastian Huber Sebastian Huber 2 years ago
Summary

Improve gcov support provided by GCC for RTEMS

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

#4197 4 years ago fixed arch/aarch64 Kinsey Moore 3 years ago
Summary

testsuite: ts-validation-0 broken on AArch64 due to SIZE_MAX issues in the test design

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.

#4198 4 years ago fixed arch/arm Sebastian Huber Sebastian Huber 2 years ago
Summary

arm: Add multilib for Cortex-R52 processor

Description

This processor uses the ARMv8-R instruction set.

#4200 4 years ago fixed doc Chris Johns 19 months ago
Summary

Build system doco link in the User Guide is broken

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.

#4201 4 years ago fixed build Chris Johns 19 months ago
Summary

waf building out of source tree does not find all configured bsps

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.

#4202 4 years ago fixed arch/arm Sebastian Huber Sebastian Huber 21 months ago
Summary

Add BSP for ARM Fixed Virtual Platform with a Cortex-R52

#4204 4 years ago fixed bsps Joel Sherrill 3 years ago
Summary

Make Termination Handler which Prints Exit Information Less Scary

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.

#4206 3 years ago fixed arch/aarch64 Sebastian Huber Joel Sherrill 3 years ago
Summary

aarch64/xilinx_zynqmp_lp64 does not run with RTEMS_DEBUG enabled

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
#4207 3 years ago fixed network/libbsd Chris Johns Chris Johns <chrisj@…> 3 years ago
Summary

PZERO define in RTEMS is wrong

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);
#4209 3 years ago invalid arch/arm rmueller Joel Sherrill 19 months ago
Summary

STM32H743ZI Nucleo Consle support not working without workaround

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 <stm32h7xx_hal_rcc.h>
#include <stdio.h>

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

#4212 3 years ago invalid fs Chris Johns Chris Johns 19 months ago
Summary

libio leaks location clones

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?

#4214 3 years ago fixed arch/nios2 Sebastian Huber Sebastian Huber 2 years ago
Summary

nios2: Add thread-local storage support

#4215 3 years ago fixed arch/nios2 Sebastian Huber Sebastian Huber 2 years ago
Summary

nios2: Add multilib with all custom floating-point instructions supported by GCC

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

#4217 3 years ago fixed rtems Sebastian Huber Sebastian Huber 3 years ago
Summary

Change status code for nested obtain of MrsP semaphores

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.

#4218 3 years ago fixed tool/binutils Joel Sherrill Ryan Long <ryan.long@…> 3 years ago
Summary

aarch64 as internal error with spconfig01

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.

#4219 3 years ago fixed tool/gdb Joel Sherrill 3 years ago
Summary

gdb master does not compile on CentOS 7

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

#4221 3 years ago fixed tool Joel Sherrill kgardas 3 years ago
Summary

dtc recipe issue -- dependency on yaml.h

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
#4222 3 years ago fixed fs Chris Johns Chris Johns 3 years ago
Summary

Add a per mount flag to not create a node on O_CREAT in open

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.

#4223 3 years ago fixed rtems Sebastian Huber Sebastian Huber 3 years ago
Summary

Missing "extern" in RTEMS_LINKER_ROSET_ITEM_ORDERED_DECLARE()

Description

The fix for #3865 contains a typo. In RTEMS_LINKER_ROSET_ITEM_ORDERED_DECLARE() there is a missing "extern".

#4225 3 years ago fixed bsps Daniel Hellstrom Daniel Hellstrom 22 months ago
Summary

Cobham Gaisler NOEL-V RISC-V 32- and 64-bit processor BSP

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:

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:

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.

#4226 3 years ago invalid admin Sebastian Huber Amar Takhar 19 months ago
Summary

Buildbot needs a tool chain update

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: <unknown> Blamelist: Sebastian Huber <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).

#4228 3 years ago fixed rtems Sebastian Huber Sebastian Huber 3 years ago
Summary

rtems_build_name() depends on the signedness of char type

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.

#4229 3 years ago fixed doc Ryan Long Gedare Bloom <gedare@…> 3 years ago
Summary

conf.py files need updated for sphinxcontrib-bibtex ver. 2.0.0 and greater

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
#4230 3 years ago fixed score Sebastian Huber Sebastian Huber 3 years ago
Summary

Timeout for automatic barriers is broken

Description

A barrier wait timeout at an automatic barrier doesn't decrement the count of waiting threads.

#4231 3 years ago fixed bsps Chris Johns Chris Johns 3 years ago
Summary

MVME 2600/2700 has no console output

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.

#4237 3 years ago fixed lib Ryan Long Ryan Long <ryan.long@…> 3 years ago
Summary

consolesimpletask.c: Two Unchecked Return Values Spotted by Coverity

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}
#4238 3 years ago fixed bsps Chris Johns Chris Johns 3 years ago
Summary

Change motorola_powerpc bsp to support irq-generic

Description

Update the motorola_powerpc to support irq-generic moving the IRQ management to the IRQ server. This enables libbsd support for interrupts.

#4239 3 years ago fixed bsps Chris Johns Chris Johns 3 years ago
Summary

PowerPC shared ISA IRQ support is broken

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.

#4240 3 years ago fixed lib/debugger Ryan Long Chris Johns 3 years ago
Summary

rtems-debugger-target.c: Dereference before null check spotted by Coverity

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  }
#4241 3 years ago fixed lib/debugger Ryan Long Chris Johns 3 years ago
Summary

rtems-debugger-threads.c: Three Dereference before null check errors spotted by Coverity

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) {
#4242 3 years ago duplicate lib/debugger Ryan Long Chris Johns 3 years ago
Summary

rtems-debugger-threads.c: Three Dereference before null check errors spotted by Coverity

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) {
#4244 3 years ago fixed rtems Sebastian Huber Sebastian Huber 3 years ago
Summary

Possible infinite recursion in Classic API Signal handling

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.

#4245 3 years ago fixed bsps Chris Johns Chris Johns 3 years ago
Summary

Add PCI regions support to RTEMS nexus bus support

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
#4246 3 years ago fixed network/libbsd Chris Johns Chris Johns 19 months ago
Summary

Add libbsd DC NIC support to mvme2700 board

Description

Add support for the Tulip NIC to LibBSD for the MVME 2700 (the mvme2307 bsp).

#4250 3 years ago fixed bsps Ryan Long Ryan Long <ryan.long@…> 3 years ago
Summary

b1553brm.c: Dereference before null check error spotted by Coverity

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) {
#4251 3 years ago fixed bsps Ryan Long Ryan Long <ryan.long@…> 3 years ago
Summary

b1553rt.c: Dereference before null check error spotted by Coverity

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) {
#4252 3 years ago fixed bsps Ryan Long Ryan Long <ryan.long@…> 3 years ago
Summary

grtc.c: Dereference before null check error spotted by Coverity

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)
#4253 3 years ago fixed bsps Ryan Long Ryan Long <ryan.long@…> 3 years ago
Summary

grspw_pkt.c: Dereference before null check error spotted by Coverity

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)
#4254 3 years ago fixed lib Ryan Long Ryan Long <thisisryanlong@…> 3 years ago
Summary

shell.c: Dereference before null check error spotted by Coverity

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));
#4258 3 years ago fixed lib Ryan Long Ryan Long <ryan.long@…> 3 years ago
Summary

printertask.c: Unchecked return value errors spotted by Coverity

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);
#4259 3 years ago fixed bsps Ryan Long Ryan Long <ryan.long@…> 3 years ago
Summary

grspw.c: Unchecked return value error spotted by Coverity

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(
#4260 3 years ago fixed lib Ryan Long Ryan Long <ryan.long@…> 3 years ago
Summary

record-client.c: Unchecked return value error spotted by Coverity

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 );
#4261 3 years ago fixed lib Ryan Long Ryan Long <ryan.long@…> 3 years ago
Summary

getgrent.c: Unchecked return value error spotted by Coverity

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);
#4262 3 years ago fixed lib/debugger Ryan Long Chris Johns 3 years ago
Summary

rtems-debugger-threads.c: Unchecked return value error spotted by Coverity

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);
#4264 3 years ago fixed network/libbsd GabrielMoyano Jan Sommer 3 years ago
Summary

Activate ehci_pci in rtems-libbsd (cloned)

Description

Cloned from #4263:


Import ehci_pci from freebsd-org using freebsd-to-rtems.py

#4265 3 years ago wontfix rtems Sebastian Huber Sebastian Huber 3 years ago
Summary

Add rtems_get_build_hash()

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 );
#4267 3 years ago fixed rtems Sebastian Huber Sebastian Huber 21 months ago
Summary

Add rtems_get_target_hash()

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 );
#4269 3 years ago fixed rtems Sebastian Huber Sebastian Huber 21 months ago
Summary

Add rtems_get_build_label()

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 );
#4270 3 years ago fixed score Sebastian Huber Sebastian Huber 3 years ago
Summary

A failing task extension produces zombi objects and resource leaks

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.

#4277 3 years ago fixed bsps Ryan Long Ryan Long <ryan.long@…> 3 years ago
Summary

grtc.c: Missing break in switch errors spotted by Coverity

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;
#4278 3 years ago fixed lib Ryan Long Ryan Long <ryan.long@…> 3 years ago
Summary

cpuusagetop.c: Missing break in switch errors spotted by Coverity

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:
#4279 3 years ago fixed lib Ryan Long Ryan Long <ryan.long@…> 3 years ago
Summary

pci_cfg_read.c: Missing break in switch error spotted by Coverity

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:
#4280 3 years ago fixed lib Ryan Long Ryan Long <ryan.long@…> 3 years ago
Summary

gen_uuid.c: Unchecked return value from library errors spotted by Coverity

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                }
#4281 3 years ago fixed lib Ryan Long Ryan Long <ryan.long@…> 3 years ago
Summary

main_chmod.c: Unchecked return value from library error spotted by Coverity

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}
#4282 3 years ago fixed lib Ryan Long Ryan Long <ryan.long@…> 3 years ago
Summary

pwdgrp.c: Unchecked return value from library error spotted by Coverity

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);
#4283 3 years ago fixed bsps Ryan Long Ryan Long <ryan.long@…> 3 years ago
Summary

gr_rasta_spw_router.c: Unchecked return value from library error spotted by Coverity

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
#4284 3 years ago fixed bsps Ryan Long Ryan Long <ryan.long@…> 3 years ago
Summary

gr_rasta_io.c: Unchecked return value from library error spotted by Coverity

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';
#4285 3 years ago