{
    
    if (String build_id; iterateSections([&build_id](const Section & section, size_t)
    {
        if (section.header.sh_type == SHT_NOTE)
        {
            build_id = Elf::getBuildID(section.begin(), section.size());
            if (!build_id.empty())
            {
                return true;
            }
        }
        return false;
    }))
    {
        return build_id;
    }
    
    for (size_t idx = 0; idx < header->e_phnum; ++idx)
    {
        const ElfPhdr & phdr = program_headers[idx];
        if (phdr.p_type == PT_NOTE)
            return getBuildID(mapped + phdr.p_offset, phdr.p_filesz);
    }
    return {};
}
#if defined(OS_SUNOS)
String Elf::getBuildID(const char * nhdr_pos, size_t size)