1737 {EM_X86_64, EM_X86_64, ELFCLASS64, ELFDATA2LSB, (char*)"AMD 64"},
1738 {EM_SPARC, EM_SPARC, ELFCLASS32, ELFDATA2MSB, (char*)"Sparc 32"},
1739 {EM_SPARC32PLUS, EM_SPARC, ELFCLASS32, ELFDATA2MSB, (char*)"Sparc 32"},
1740 {EM_SPARCV9, EM_SPARCV9, ELFCLASS64, ELFDATA2MSB, (char*)"Sparc v9 64"},
1741 {EM_PPC, EM_PPC, ELFCLASS32, ELFDATA2MSB, (char*)"Power PC 32"},
1742 #if defined(VM_LITTLE_ENDIAN)
1743 {EM_PPC64, EM_PPC64, ELFCLASS64, ELFDATA2LSB, (char*)"Power PC 64 LE"},
1744 {EM_SH, EM_SH, ELFCLASS32, ELFDATA2LSB, (char*)"SuperH"},
1745 #else
1746 {EM_PPC64, EM_PPC64, ELFCLASS64, ELFDATA2MSB, (char*)"Power PC 64"},
1747 {EM_SH, EM_SH, ELFCLASS32, ELFDATA2MSB, (char*)"SuperH BE"},
1748 #endif
1749 {EM_ARM, EM_ARM, ELFCLASS32, ELFDATA2LSB, (char*)"ARM"},
1750 {EM_S390, EM_S390, ELFCLASSNONE, ELFDATA2MSB, (char*)"IBM System/390"},
1751 {EM_ALPHA, EM_ALPHA, ELFCLASS64, ELFDATA2LSB, (char*)"Alpha"},
1752 {EM_MIPS_RS3_LE, EM_MIPS_RS3_LE, ELFCLASS32, ELFDATA2LSB, (char*)"MIPSel"},
1753 {EM_MIPS, EM_MIPS, ELFCLASS32, ELFDATA2MSB, (char*)"MIPS"},
1754 {EM_PARISC, EM_PARISC, ELFCLASS32, ELFDATA2MSB, (char*)"PARISC"},
1755 {EM_68K, EM_68K, ELFCLASS32, ELFDATA2MSB, (char*)"M68k"},
1756 {EM_AARCH64, EM_AARCH64, ELFCLASS64, ELFDATA2LSB, (char*)"AARCH64"},
1757 };
1758
1759 #if (defined IA32)
1760 static Elf32_Half running_arch_code=EM_386;
1761 #elif (defined AMD64)
1762 static Elf32_Half running_arch_code=EM_X86_64;
1763 #elif (defined IA64)
1764 static Elf32_Half running_arch_code=EM_IA_64;
1765 #elif (defined __sparc) && (defined _LP64)
1766 static Elf32_Half running_arch_code=EM_SPARCV9;
1767 #elif (defined __sparc) && (!defined _LP64)
1768 static Elf32_Half running_arch_code=EM_SPARC;
1769 #elif (defined __powerpc64__)
1770 static Elf32_Half running_arch_code=EM_PPC64;
1771 #elif (defined __powerpc__)
1772 static Elf32_Half running_arch_code=EM_PPC;
1773 #elif (defined AARCH64)
1774 static Elf32_Half running_arch_code=EM_AARCH64;
1775 #elif (defined ARM)
1776 static Elf32_Half running_arch_code=EM_ARM;
1777 #elif (defined S390)
1778 static Elf32_Half running_arch_code=EM_S390;
1779 #elif (defined ALPHA)
1780 static Elf32_Half running_arch_code=EM_ALPHA;
1781 #elif (defined MIPSEL)
1782 static Elf32_Half running_arch_code=EM_MIPS_RS3_LE;
1783 #elif (defined PARISC)
1784 static Elf32_Half running_arch_code=EM_PARISC;
1785 #elif (defined MIPS)
1786 static Elf32_Half running_arch_code=EM_MIPS;
1787 #elif (defined M68K)
1788 static Elf32_Half running_arch_code=EM_68K;
1789 #elif (defined SH)
1790 static Elf32_Half running_arch_code=EM_SH;
1791 #else
1792 #error Method os::dll_load requires that one of following is defined:\
2288 }
2289 }
2290 }
2291 }
2292 fclose(fp);
2293 }
2294 // cpuinfo not found or parsing failed, just print generic string. The entire
2295 // /proc/cpuinfo file will be printed later in the file (or enough of it for x86)
2296 #if defined(AARCH64)
2297 strncpy(cpuinfo, "AArch64", length);
2298 #elif defined(AMD64)
2299 strncpy(cpuinfo, "x86_64", length);
2300 #elif defined(ARM) // Order wrt. AARCH64 is relevant!
2301 strncpy(cpuinfo, "ARM", length);
2302 #elif defined(IA32)
2303 strncpy(cpuinfo, "x86_32", length);
2304 #elif defined(IA64)
2305 strncpy(cpuinfo, "IA64", length);
2306 #elif defined(PPC)
2307 strncpy(cpuinfo, "PPC64", length);
2308 #elif defined(S390)
2309 strncpy(cpuinfo, "S390", length);
2310 #elif defined(SPARC)
2311 strncpy(cpuinfo, "sparcv9", length);
2312 #elif defined(ZERO_LIBARCH)
2313 strncpy(cpuinfo, ZERO_LIBARCH, length);
2314 #else
2315 strncpy(cpuinfo, "unknown", length);
2316 #endif
2317 }
2318
2319 static void print_signal_handler(outputStream* st, int sig,
2320 char* buf, size_t buflen);
2321
2322 void os::print_signal_handlers(outputStream* st, char* buf, size_t buflen) {
2323 st->print_cr("Signal Handlers:");
2324 print_signal_handler(st, SIGSEGV, buf, buflen);
2325 print_signal_handler(st, SIGBUS , buf, buflen);
2326 print_signal_handler(st, SIGFPE , buf, buflen);
2327 print_signal_handler(st, SIGPIPE, buf, buflen);
|
1737 {EM_X86_64, EM_X86_64, ELFCLASS64, ELFDATA2LSB, (char*)"AMD 64"},
1738 {EM_SPARC, EM_SPARC, ELFCLASS32, ELFDATA2MSB, (char*)"Sparc 32"},
1739 {EM_SPARC32PLUS, EM_SPARC, ELFCLASS32, ELFDATA2MSB, (char*)"Sparc 32"},
1740 {EM_SPARCV9, EM_SPARCV9, ELFCLASS64, ELFDATA2MSB, (char*)"Sparc v9 64"},
1741 {EM_PPC, EM_PPC, ELFCLASS32, ELFDATA2MSB, (char*)"Power PC 32"},
1742 #if defined(VM_LITTLE_ENDIAN)
1743 {EM_PPC64, EM_PPC64, ELFCLASS64, ELFDATA2LSB, (char*)"Power PC 64 LE"},
1744 {EM_SH, EM_SH, ELFCLASS32, ELFDATA2LSB, (char*)"SuperH"},
1745 #else
1746 {EM_PPC64, EM_PPC64, ELFCLASS64, ELFDATA2MSB, (char*)"Power PC 64"},
1747 {EM_SH, EM_SH, ELFCLASS32, ELFDATA2MSB, (char*)"SuperH BE"},
1748 #endif
1749 {EM_ARM, EM_ARM, ELFCLASS32, ELFDATA2LSB, (char*)"ARM"},
1750 {EM_S390, EM_S390, ELFCLASSNONE, ELFDATA2MSB, (char*)"IBM System/390"},
1751 {EM_ALPHA, EM_ALPHA, ELFCLASS64, ELFDATA2LSB, (char*)"Alpha"},
1752 {EM_MIPS_RS3_LE, EM_MIPS_RS3_LE, ELFCLASS32, ELFDATA2LSB, (char*)"MIPSel"},
1753 {EM_MIPS, EM_MIPS, ELFCLASS32, ELFDATA2MSB, (char*)"MIPS"},
1754 {EM_PARISC, EM_PARISC, ELFCLASS32, ELFDATA2MSB, (char*)"PARISC"},
1755 {EM_68K, EM_68K, ELFCLASS32, ELFDATA2MSB, (char*)"M68k"},
1756 {EM_AARCH64, EM_AARCH64, ELFCLASS64, ELFDATA2LSB, (char*)"AARCH64"},
1757 {EM_RISCV, EM_RISCV, ELFCLASS64, ELFDATA2LSB, (char*)"RISCV"},
1758 };
1759
1760 #if (defined IA32)
1761 static Elf32_Half running_arch_code=EM_386;
1762 #elif (defined AMD64)
1763 static Elf32_Half running_arch_code=EM_X86_64;
1764 #elif (defined IA64)
1765 static Elf32_Half running_arch_code=EM_IA_64;
1766 #elif (defined __sparc) && (defined _LP64)
1767 static Elf32_Half running_arch_code=EM_SPARCV9;
1768 #elif (defined __sparc) && (!defined _LP64)
1769 static Elf32_Half running_arch_code=EM_SPARC;
1770 #elif (defined __powerpc64__)
1771 static Elf32_Half running_arch_code=EM_PPC64;
1772 #elif (defined __powerpc__)
1773 static Elf32_Half running_arch_code=EM_PPC;
1774 #elif (defined RISCV)
1775 static Elf32_Half running_arch_code=EM_RISCV;
1776 #elif (defined AARCH64)
1777 static Elf32_Half running_arch_code=EM_AARCH64;
1778 #elif (defined ARM)
1779 static Elf32_Half running_arch_code=EM_ARM;
1780 #elif (defined S390)
1781 static Elf32_Half running_arch_code=EM_S390;
1782 #elif (defined ALPHA)
1783 static Elf32_Half running_arch_code=EM_ALPHA;
1784 #elif (defined MIPSEL)
1785 static Elf32_Half running_arch_code=EM_MIPS_RS3_LE;
1786 #elif (defined PARISC)
1787 static Elf32_Half running_arch_code=EM_PARISC;
1788 #elif (defined MIPS)
1789 static Elf32_Half running_arch_code=EM_MIPS;
1790 #elif (defined M68K)
1791 static Elf32_Half running_arch_code=EM_68K;
1792 #elif (defined SH)
1793 static Elf32_Half running_arch_code=EM_SH;
1794 #else
1795 #error Method os::dll_load requires that one of following is defined:\
2291 }
2292 }
2293 }
2294 }
2295 fclose(fp);
2296 }
2297 // cpuinfo not found or parsing failed, just print generic string. The entire
2298 // /proc/cpuinfo file will be printed later in the file (or enough of it for x86)
2299 #if defined(AARCH64)
2300 strncpy(cpuinfo, "AArch64", length);
2301 #elif defined(AMD64)
2302 strncpy(cpuinfo, "x86_64", length);
2303 #elif defined(ARM) // Order wrt. AARCH64 is relevant!
2304 strncpy(cpuinfo, "ARM", length);
2305 #elif defined(IA32)
2306 strncpy(cpuinfo, "x86_32", length);
2307 #elif defined(IA64)
2308 strncpy(cpuinfo, "IA64", length);
2309 #elif defined(PPC)
2310 strncpy(cpuinfo, "PPC64", length);
2311 #elif defined(RISCV)
2312 strncpy(cpuinfo, "RISCV", length);
2313 #elif defined(S390)
2314 strncpy(cpuinfo, "S390", length);
2315 #elif defined(SPARC)
2316 strncpy(cpuinfo, "sparcv9", length);
2317 #elif defined(ZERO_LIBARCH)
2318 strncpy(cpuinfo, ZERO_LIBARCH, length);
2319 #else
2320 strncpy(cpuinfo, "unknown", length);
2321 #endif
2322 }
2323
2324 static void print_signal_handler(outputStream* st, int sig,
2325 char* buf, size_t buflen);
2326
2327 void os::print_signal_handlers(outputStream* st, char* buf, size_t buflen) {
2328 st->print_cr("Signal Handlers:");
2329 print_signal_handler(st, SIGSEGV, buf, buflen);
2330 print_signal_handler(st, SIGBUS , buf, buflen);
2331 print_signal_handler(st, SIGFPE , buf, buflen);
2332 print_signal_handler(st, SIGPIPE, buf, buflen);
|