< prev index next >

src/hotspot/os/linux/os_linux.cpp

Print this page
rev 49193 : 8199138: Add RISC-V support to Zero
Reviewed-by: duke


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);


< prev index next >