编译器

GCC

GCC 7.3.0 包括了 C、C++、Fortran 的前端,也包括了这些语言的库(如 libstdc++、libgcc 等),EulixOS 1.0 配套编译器为 GCC 7.3.0,并在此基础上进行了特性增强和漏洞修复,其主要更新如下:

特性增强

  • 针对鲲鹏 920 的 TaishanV110 核,支持该 TaiShan 核微架构下的流水线优化
  • 支持 AArch64 后端下的长跳转(Long Call)功能
  • 支持循环优化 loop unroll and jam,将多层循环中的外层循环展开,并将展开后的多个内层循环合并
  • 支持循环优化 loop interchange,将多层循环中的内外层循环进行交换

安全漏洞修复

  • 修复 ARM 后端下栈保护功能在特殊场景中能够被黑客绕过保护的安全漏洞(CVE-2018-12886)
  • 修复 POWER9 后端下多次调用 __builtin_darn 函数的返回值相同的安全漏洞(CVE-2019-15847)

OpenJDK

JDK(Java Development Kit)是 Java 开发者进行 Java 开发所必须的软件包,包含 JRE(Java Runtime Environment)和编译、调测工具。EulixOS 1.0 配套 JDK 为 OpenJDK 8,并在此基础上进行了 GC 优化、并发稳定性增强、安全性增强等,提高了 Java 应用程序在 ARM 上的性能和稳定性,其主要特性和更新如下:

特性

  • 兼容Java SE 8 & JDK 8

特性增强

  • 删除 GC 中冗余的 read/write barrier
  • 针对 ARM 弱内存模型进行了稳定性增强

问题修复

  • 在 ARM v8.1上默认禁用 UseLSE 选项
  • 避免了因为没有提前加载 ClassLoader.findLibrary 和 System.loadLibrary 而导致的潜在的死锁问题(JDK-8231584)
  • 解决了一个容易遇到的 javac 检查超类时无限递归的 bug(JDK-8214345)
  • 修复了在 heapdump 时可能遇到的 crash 问题(JDK-8194246)
  • 修复了 getCanonicalPath 在处理”//“时遇到的 crash 问题(JDK-8194154)
  • 修复了一个 AbstractQueuedSynchronizer 可能存在的锁竞争问题(JDK-8191483)
  • 修复创建一个 NTLM 连接抛空指针异常的问题(JDK-8151788)
  • DateTimeFormatter 支持”yyyyMMddHHmmssSSS”日期格式解析(JDK-8031085)

results matching ""

    No results matching ""