lcsname = os.path.join(os.path.dirname(self.output), 'ukernel.lcs')
        fo = open(lcsname, 'w')
        fo.write('SECTIONS {\n')
        for S in sections:
            fo.write(S.get_section_spec())
        fo.write('}\n')
        fo.close()

        rangesname = os.path.join(os.path.dirname(self.output),
                                  'ukernel_ranges.s')
        fo = open(rangesname, 'w')
        for S in sections:
            fo.write(S.get_range_code())
        fo.close()

        cmd = [
            self.compiler, self.machine, '-o', self.output, '-T', lcsname,
            '-Wl,-r', '-nostdlib', rangesname
        ] + self.args + ['-lgcc']
        run_program(cmd)
        return 0


if __name__ == '__main__':
    from lib.qurt import run_script
    run_script(BuildKernel().main)

# Signatures of the files that this depends on
# 46a31eb420b1999d63d43a1df42e94ca /local/mnt/workspace/CRMBuilds/CDSP.VT.2.0-00249-SDM710-2_20201030_052916/b/cdsp_proc/core/kernel/qurt/build/face_cdsp_user/qdsp6/670.cdsp.prod/install/computev65_SRM/scripts/lib/qurt.py
        shdr2 = Elf32SectionHeader(None,
                                   sh_name=strtab.index('.rodata\0'),
                                   sh_type=Elf32SectionHeader.SHT_PROGBITS,
                                   sh_flags=Elf32SectionHeader.SHF_ALLOC,
                                   sh_addr=self.physaddr,
                                   sh_offset=4096,
                                   sh_size=totalsize,
                                   sh_link=0,
                                   sh_info=0,
                                   sh_addralign=4096,
                                   sh_entsize=0)

        outfile.write(ehdr.output())
        outfile.write(phdr.output())
        outfile.write(shdr0.output())
        outfile.write(shdr1.output())
        outfile.write(shdr2.output())
        outfile.write(strtab)
        outfile.flush()
        outfile.close()

        return 0


if __name__ == '__main__':
    from lib.qurt import run_script
    run_script(QurtRamfsBuilder().main)

# Signatures of the files that this depends on
# 46a31eb420b1999d63d43a1df42e94ca /local/mnt/workspace/CRMBuilds/ADSP.VT.5.0-00526-SDM710-1_20201217_021900/b/adsp_proc/core/kernel/qurt/build/sensor_img/qdsp6/670.adsp.prod/install/ADSPv65MP/scripts/lib/qurt.py
        str(target[0]), '-s',
        str(target[1]), '-o',
        str(target[2])
    ] + [str(s) for s in source])


def CheckEmitter(target, source, env):
    return target, source


def Checker(env, *ls):
    return env.ObjCheckBuilder(
        ['$BUILD_DIR/result', '$BUILD_DIR/stats.txt', '$BUILD_DIR/out'],
        env.Flatten([get_objects(str(d)) for d in ls]))


def exists(env):
    return env.Detect('obj_check_alignment')


def generate(env):
    env.AddMethod(Checker, 'ObjCheckAlignment')
    env['BUILDERS']['ObjCheckBuilder'] = env.Builder(action=env.Action(
        CheckAction, cmdstr='Checking object alignment'),
                                                     emitter=CheckEmitter)


if __name__ == '__main__':
    from lib.qurt import run_script
    run_script(ObjCheckAlignment().main)
Example #4
0
#  If you are looking for the actual implementation of qurt-image-build.py:
#    qurt-image-build0.py: for non-secure builds
#    qurt-image-build1.py: for secure builds
#

import os, sys
sys.path.append(os.path.dirname(__file__))
from lib.qurt import multiscript

#
#  Import the definitions in qurt-image-build0.py under module name QIB0
#  Import the definitions in qurt-image-build1.py under module name QIB1
#

multiscript_args = multiscript(globals(),
                               QIB0='qurt-image-build0.py',
                               QIB1='qurt-image-build1.py')

if multiscript_args:
    #
    #  We are being run as a script.
    #   multiscript_args is the value of sys.argv
    #
    from lib.qurt import run_script
    run_script(QIB0.QurtElfPatch().main)
else:
    #
    #  We are being imported
    #
    from QIB0 import *