8.11. 컴파일러 및 개발 도구
glibc
system()
함수는 이제 이전 신호 마스크를 무조건 복원합니다.
이전 버전에서는 glibc
system()
함수가 여러 스레드에서 동시에 호출된 경우 SIGCHLD
신호의 신호 마스크가 올바르게 복원되지 않을 수 있었습니다. 그 결과 일부 스레드에서 glibc
system()
함수에서 반환한 후 SIGCHLD
신호가 차단되었습니다.
이번 업데이트를 통해 glibc
system()
함수는 이제 병렬 system()
함수 호출이 실행되는 경우에도 이전 신호 마스크를 무조건 복원합니다. 결과적으로 glibc
system()
함수가 여러 스레드에서 동시에 호출되면 SIGCHLD
신호가 더 이상 잘못 차단되지 않습니다.
eu-addr2line -C
가 다른 인수를 올바르게 인식
이전에는 elfutils
의 eu-addr2line
명령에서 -C
인수를 사용할 때 다음 단일 문자 인수가 사라졌습니다. 결과적으로 eu-addr2line -Ci
명령은 eu-addr2line -C
와 동일한 방식으로 작동하지만 eu-addr2line -iC
는 예상대로 작동했습니다. 이 버그는 수정되었으며 eu-addr2line -Ci
는 이제 두 인수를 모두 인식합니다.
eu-addr2line -i
now GCC link-time optimization으로 컴파일된 코드를 올바르게 처리
이전에는 elfutils
에 포함된 libdw
라이브러리의 dwarf_getscopes
함수에서 GCC 링크 타임 최적화로 컴파일된 함수의 추상적인 원본 정의를 찾을 수 없었습니다. 결과적으로 eu-addr2line
명령에서 -i
인수를 사용하면 eu-addr2line
에서 gcc -flto
로 컴파일된 코드에 대한 인라인 함수를 표시할 수 없었습니다. 이번 업데이트를 통해 libdw dwarf_getscopes
함수는 인라인 범위의 올바른 컴파일 단위를 찾고 eu-addr2line -i
가 예상대로 작동합니다.
종료 시 papi
를 사용하는 프로그램이 더 이상 중지되지 않음
이전에는 papi
가 일부 구성 요소를 초기화하기 전에 papi
에서 스레드를 초기화했습니다. 이로 인해 배열의 요소 수를 설명하는 특정 구성 요소에 대한 항목이 올바른 값으로 설정되지 않았으며 0 크기의 메모리 할당이 시도되었습니다. 결과적으로 나중에 이러한 제로 크기 메모리 할당에 액세스하고 해제하면 프로그램이 중지되었습니다.
버그가 수정되었으며, 종료 시 papi
를 사용하는 프로그램이 더 이상 중지되지 않습니다.
OpenJDK XML 서명 공급자가 FIPS 모드에서 작동합니다.
이전에는 OpenJDK XML 서명 공급자가 FIPS 모드에서 작동할 수 없었습니다. FIPS 모드의 개선으로 OpenJDK XML 서명 공급자가 FIPS 모드에서 활성화됩니다.