def runtime(self, _from='0'):
        """Generate the set of instructions to install the runtime specific
        components from a build in a previous stage.

        # Examples

        ```python
        a = arm_allinea_compiler(...)
        Stage0 += a
        Stage1 += a.runtime()
        ```
        """
        self.rt += comment('Arm Allinea Studio')

        paths = []

        # Redistributable libraries from redistributables.txt
        # The allowed list of redistributable libraries does not
        # include all Arm Allinea Studio libraries that get typically
        # linked; consider using '-static-arm-libs'.

        # OpenMP and Fortran runtime libraries
        compiler_redist_path = posixpath.join(
            self.__prefix,
            'arm-linux-compiler-{0}_Generic-AArch64_{1}_aarch64-linux'.format(
                self.__version, self.__directory_string),
            'lib')
        paths.append(compiler_redist_path)
        self.rt += copy(_from=_from,
                        src=[posixpath.join(compiler_redist_path, lib)
                             for lib in ['libgomp.so', 'libiomp5.so',
                                         'libomp.so', 'libflang.so',
                                         'libflangrti.so']],
                        dest=posixpath.join(compiler_redist_path, ''))

        # Performance libraries
        microarch_string = {
                            '20.3': {
                                'generic': 'Generic-AArch64',
                                'generic-sve': 'Generic-SVE',
                                'neoverse-n1': 'Neoverse-N1',
                                'thunderx2t99': 'ThunderX2CN99'
                                },
                            '21.1': {
                                'generic': 'AArch64',
                                'generic-sve': 'AArch64-SVE'
                                },
                            '22.0': {
                                'generic': 'AArch64'
                                }
                            }
        for microarch in self.__microarchitectures:
            armpl_arm_redist_path = posixpath.join(
                self.__prefix,
                'armpl-{0}.0_{1}_{2}_arm-linux-compiler_aarch64-linux'.format(
                    self.__version, microarch_string[self.__version][microarch],
                    self.__directory_string),
                'lib')
            paths.append(armpl_arm_redist_path)
            self.rt += copy(_from=_from,
                            src=[posixpath.join(armpl_arm_redist_path, lib)
                                 for lib in ['libamath.so',
                                             'libastring.so']],
                            dest=posixpath.join(armpl_arm_redist_path, ''))
            armpl_gcc_redist_path = posixpath.join(
                self.__prefix,
                'armpl-{0}.0_{1}_{2}_gcc_aarch64-linux'.format(
                    self.__version, microarch_string[self.__version][microarch],
                    self.__directory_string),
                'lib')
            paths.append(armpl_gcc_redist_path)
            self.rt += copy(_from=_from,
                            src=[posixpath.join(armpl_gcc_redist_path, lib)
                                 for lib in ['libamath.so',
                                             'libastring.so']],
                            dest=posixpath.join(armpl_gcc_redist_path, ''))

        paths.append('$LD_LIBRARY_PATH') # tack on existing value at end
        self.runtime_environment_variables['LD_LIBRARY_PATH'] = ':'.join(paths)
        self.rt += environment(variables=self.environment_step(runtime=True))

        return str(self.rt)
Generate the set of instructions to install the runtime specific
        components from a build in a previous stage.

        # Examples

        ```python
        a = arm_allinea_compiler(...)
        Stage0 += a
        Stage1 += a.runtime()
        ```
        
hpccm/building_blocks/arm_allinea_studio.py