13.1. RTEMS 5 to RTEMS 6¶
This section provides helpful information when migrating from RTEMS 5 to RTEMS 6.
13.1.1. Update to GCC 10 and Later¶
The tool suite for RTEMS 6 uses at least GCC 10. GCC 10 and later enable
-fno-common
by default. Code bases which never used this option before may
observe now multiple definition linker errors. For example, if global
variables are declared and defined in header files (usually a missing
extern
in the header file).
13.1.2. No -specs bsp_specs GCC Option¶
The -spec bsp_specs
GCC Option is no longer needed to build RTEMS
applications and there is no bsp_specs
file installed. If you use this
option, then you get an error like this:
sparc-rtems6-gcc: fatal error: cannot read spec file 'bsp_specs': No such file or directory
You can remove this GCC option from your build to fix this error.
Alternatively, you can add an empty bsp_specs
file.
13.1.3. Replacements for Removed APIs¶
The
rtems_iterate_over_all_threads()
directive was removed. Usertems_task_iterate()
instead.The
rtems_get_current_processor()
directive was removed. Usertems_scheduler_get_processor()
instead.The
rtems_get_processor_count()
directive was removed. Usertems_scheduler_get_processor_maximum()
instead.The
boolean
type was removed. Usebool
instead.The
single_precision
type was removed. Usefloat
instead.The
double_precision
type was removed. Usedouble
instead.The
proc_ptr
type was removed. Use a proper function pointer type.The
rtems_context
type was removed. If you need this type in your applications, please ask on the Developers Mailing List.The
rtems_context_fp
type was removed. If you need this type in your applications, please ask on the Developers Mailing List.The
rtems_extension
type was removed. Usevoid
instead.The
rtems_io_lookup_name()
directive was removed. Usestat()
instead.The
region_information_block
type was removed. UseHeap_Information_block
instead.The
rtems_thread_cpu_usage_t
type was removed. Usestruct timespec
instead.The
rtems_rate_monotonic_period_time_t
type was removed. Usestruct timespec
instead.The
_Copyright_Notice
constant was removed from the API. Usertems_get_copyright_notice()
instead.The
_RTEMS_version
constant was removed from the API. Usertems_get_version_string()
instead.The
RTEMS_MAXIMUM_NAME_LENGTH
define was removed. Usesizeof( rtems_name )
instead.The
<rtems/system.h>
header file was removed. Include<rtems.h>
instead.