8.11. 컴파일러 및 개발 도구
pthread_atfork
를 호출할 때 더 이상 애플리케이션이 교착 상태가 되지 않거나 fork 처리기 콜백에서 dclose
이전에는 glibc
에서 내부 잠금을 취득하는 동안 pthread_atfork
처리기 콜백을 호출했습니다. 결과적으로 포크 처리기를 등록하거나 포크 처리기에서 dclose
를 호출하면 애플리케이션이 교착될 수 있었습니다.
포크 처리기가 실행되는 동안 내부 데이터 구조를 보호하는 데 다른 동기화 메커니즘이 사용됩니다. 결과적으로 pthread_atfork
를 호출할 때 애플리케이션이 더 이상 교착되지 않거나 포크 처리기 콜백에서 dclose
되지 않습니다.
Makefile의 와일드카드 함수는 디렉토리만 예상되는 경우 더 이상 심볼릭 링크를 반환하지 않습니다.
이전에는 glob()
에서 사용하는 GLOB_ONLYDIR
힌트가 특정 XFS 파일 시스템의 디렉터리로 심볼릭 링크를 잘못 보고했습니다. glob()
를 사용할 때 make
는 힌트가 실제로 디렉터리가 있는지 확인하지 않았으며 이로 인해 Makefiles의 와일드카드 함수가 디렉토리만 예상되는 경우 심볼릭 링크를 반환했습니다.
버그가 수정되었으며 Makefile의 와일드카드 함수는 디렉터리만 예상되는 경우 심볼릭 링크를 반환하지 않습니다.
popen()
이 더 이상 다중 스레드 프로세스가 충돌하지 않음
이전에는 popen()
의 결함으로 인해 다중 스레드 프로세스의 인터페이스를 사용할 때 애플리케이션이 충돌했습니다. 이번 업데이트에서는 popen()
을 사용할 때 버그가 수정되었으며 다중 스레드 프로세스가 더 이상 충돌하지 않습니다.
일부 IBM 문자 세트의 0xBC
코드 포인트 매핑이 이제 U+00AF MACRON
이전에는 IBM256
,IBM277
,IBM278
,IBM280
,IBM284
,IBM297
, IBM424
문자를 Unicode 문자 U+203E OVERLINE
으로 인코딩했습니다.
그 결과
glibc
에서 제공하는 iconv
프로그램을 사용할 때 0xBC
코드 포인트를 포함하는 해당 문자 세트에서 텍스트를 변환하지 못했습니다. ISO-8859-1
과 같은 비ECDHE 문자 세트에 대해 실패한 이유는 U+203E OVERLINE
문자를 인코딩할 수 없기 때문입니다.
이번 업데이트에서는 버그가 수정되었습니다. 결과적으로 IBM277
,IBM278
,IBM280
,IBM284
, IBM297
문자 세트의 입력을 모든 경우에 ISO-8859-1
로 변환할 수 있습니다. IBM256
및 IBM424
문자 세트의 경우 입력 텍스트에 0xBC 코드 포인트가 포함되어 있고 각 출력은 U+00AF MACRON
인 경우 변환이 더 이상 실패하지 않습니다.
이제 tempnam
함수에서 getrandom
을 사용하여 생성된 파일 이름의 무작위성을 높입니다.
이전에는 Red Hat Enterprise Linux 8.4 이상의 tempnam
함수에서 경로 선택을 위해 시간 파생 임의성을 사용했습니다. 그 결과 tempnam
함수가 빠른 연속으로 반복적으로 호출될 때 가능한 전체 파일 이름 세트를 생성하지 못했습니다. 이 버그는 생성된 파일 이름의 무작위성을 높이기 위해 getrandom
함수를 사용하는 새로운 구현에 의해 수정되었습니다. 그 결과 tempnam
함수가 이제 더 고유한 파일 이름을 생성합니다.
POWER9-optimized strncpy 함수가 더 이상 잘못된 결과를 제공하지 않음
이전에는 POWER9 strncpy 함수가 패딩을 위한 NUL 바이트의 소스로 올바른 레지스터를 사용하지 않았습니다. 그 결과 출력 버퍼에 NUL 패딩 대신 초기화되지 않은 레지스터 콘텐츠가 포함되었습니다. 이번 업데이트를 통해 strncpy 함수가 수정되었으며 출력 버퍼의 끝은 이제 NUL 바이트로 올바르게 채워집니다.
이제 en_US@ampm
로케일이 locale -a
에 의해 올바르게 나열됩니다.
이전에는 locale -a
명령의 출력에 en_US@ampm
목록에 결함이 있었습니다. 결과적으로 setlocale
API는 locale -a
에서 인쇄한 name/alias를 사용하여 이 로케일을 설정하려고 할 때 실패했습니다. 이번 업데이트를 통해 이제 en_US@ampm
이 올바르게 나열되고 locale -a
로 인쇄된 모든 로케일에 대해 setlocale
성공 호출이 있습니다.
이벤트의 단위 마스크가 모두 papi_xml_event_info
출력에 포함됩니다.
이전에는 papi_xml_event_info
의 이벤트 단위 마스크 정보 테스트가 불완전했습니다. 경우에 따라 이벤트의 단위 마스크가 papi_xml_event_info
출력에 포함되지 않았습니다. 이 버그가 수정되어 결과적으로 papi_xml_event_command
가 이벤트의 모든 단위 마스크를 출력합니다.
(BZ#2037426)