6.2. 컴파일러 및 툴
SystemTap Dyninst 백엔드는 dyninst-devel
패키지없이 작동합니다.
stap --dyninst
명령은 SystemTap Dyninst 백엔드를 사용합니다. 이전에는 dyninst-devel
패키지가 설치되지 않은 경우 이 백엔드가 작동하지 않았습니다. 그 결과 SystemTap이 예기치 않게 종료되고 사용자는 dyninst-devel
을 수동으로 설치하고 해결 방법으로 ldconfig
툴을 실행해야 했습니다. 이 버그는 수정되었으며 SystemTap Dyninst 백엔드는 이제 dyninst-devel
패키지없이 작동합니다.
(BZ#1498558)
GDB 10.0.0.1 기본 소스 파일이 심볼릭 링크에 대해 작동합니다.
이전에는 파일이 심볼릭 링크인 경우 GDB 디버거에서 기본 소스 파일에 대한 기호 테이블 정보를 찾을 수 없었습니다. 그 결과 사용자는 소스 파일 이름을 생략하고 기본값(예: 63
)을 사용하여 CloudEvents를 설정할 수 없었습니다. 이 버그는 수정되었으며 사용자는 이제 심볼릭 링크 뒤에 있는 파일에 대해 ScanSettings와 함께 기본 소스 파일을 사용할 수 있습니다.
glibc
의 DNS 스텁 확인자는 더 이상 hostname-.example.com과 같은 유효한 호스트 이름을 거부하지 않습니다.
glibc
의 DNS 스텁 확인자는 hostname-.example.com과 같은 특정 유효한 호스트 이름을 거부했으며 일부 잘못된 이름을 수락합니다. 결과적으로 인터넷의 일부 호스트 이름을 확인할 수 없었습니다. 문제를 해결하기 위해 res hnok
와 같은 DNS 이름 검증 기능이 사용자 기대치 및 사양과 더 가깝게 조정되었습니다. 결과적으로 DNS에 있는 경우 hostname-.example.com 형식의 호스트 이름을 성공적으로 확인할 수 있습니다.
특정 IBM 문자 세트에서 변환할 때 iconv
가 더 이상 중단되지 않음
이전에는 IBM930, IBM933, IBM935, IBM937 및 IBM393 문자 세트의 glibc
변환기에서 오류가 반환되었으며 잘못된 중복 전환 시퀀스가 발생했을 때 다음 입력 문자로 전진하지 않았습니다. 결과적으로 이러한 문자 세트에서 변환하면 -c
옵션과 함께 iconv
툴을 사용하여 이러한 문자가 응답하지 않는 것은 중복 변경 순서의 첫 번째 발생 이상으로 진행할 수 없기 때문입니다. 변환기는 이러한 시퀀스를 수락하고 올바르게 계속하도록 수정되었습니다. 그 결과 위에서 언급한 변환이 가능합니다.
(BZ#1427734)
iconv
는 IBM273 및 ISO-8859-1 문자 세트 간에 변환할 수 있습니다.
이전에는 IBM273 문자 세트의 glibc
구현이 ISO-8859-1 문자 세트와 일치하지 않았습니다. 유니코드 문자 MACRON
에 대한 표현은 없었으며, MACRON
과 동일한 시각적 표현이 있는 OVERLINE
유니코드 문자를 나타내는 데 해당 바이트를 사용했습니다. 그 결과 glibc
에서 제공하는 iconv
툴을 사용하여 OVERLINE
문자가 포함된 IBM273 텍스트를 ISO-8859-1 또는 ISO-8859-1 텍스트로 변환하여 MACRON
문자를 IBM273으로 변환하면 변환 중에 오류가 발생했습니다. 이 버그를 해결하기 위해 IBM273 문자 세트는 OVERLINE
표현을 MACRON
로 대체하여 ISO-8859-1 문자 세트와 동등했습니다. 결과적으로 두 문자 집합 모두 MACRON
유니코드 문자를 사용하며 서로 변환하면 오류가 발생하지 않습니다.
getifaddrs
호출은 더 이상 예기치 않게 애플리케이션을 종료할 수 없습니다.
이전에는 glibc
라이브러리에서 getifaddrs
함수에서 생성한 네트워크 인터페이스 목록에 커널에서 동시에 변경된 경우 인터페이스 이름이 없을 수 있었습니다. 결과적으로 getifaddrs
를 사용하는 애플리케이션은 이러한 상황에서 예기치 않게 종료될 수 있었습니다. 이 문제는 수정되었으며 getifaddrs
는 이제 목록이 커널 상태와 동일합니다. 결과적으로 위에서 언급한 예기치 않은 종료가 발생할 수 없습니다.
(BZ#1472832)
암시적 작업을 다시 수행하기 전에 명시적 대상이 포함된 파일 만들기
이전에는 Makefiles의 암시적(패턴) 및 명시적 대상을 혼합하는 것이 더 이상 사용되지 않았습니다. 버전 3.82로 업데이트한 후 make
빌드 툴에서 혼합 대상의 오류를 반환했습니다. 결과적으로 혼합 대상을 포함하는 레거시 Makefile을 사용할 수 없었습니다. 이번 업데이트를 통해 make
는 명시적 대상이 암시적 대상보다 먼저 나열된 상황을 올바르게 구문 분석할 수 있습니다. 결과적으로 특정 레거시 Makefile을 수정하지 않고 다시 사용할 수 있습니다. 그러나 명시적 대상 이전에 암시적 대상으로 인해 여전히 오류가 발생합니다.
Makefile에서 명시적 및 암시적 대상을 혼합하는 것은 더 이상 사용되지 않으며 새로운 Makefile에 추가해서는 안 됩니다.
PCP에서 대규모 시스템에 대한 모든 프로세스 세부 정보를 보고
이전에는 PCP(Performance Co-Pilot) 툴킷에서 대규모 시스템의 특정 프로세스 세부 정보를 보고하지 못했습니다. 프로세스 세부 정보 파일을 읽는 코드는 처음 1024바이트가 아니라 임의의 길이의 데이터를 읽을 수 있도록 변경되었습니다. 결과적으로 설명 된 PCP 오류가 더 이상 발생하지 않을 수 있습니다.
스트립
이 특정 실행 파일과 더 이상 충돌하지 않음
이전에는 strip
툴에 실행 파일 구조에 대한 실제 가정이 포함되었습니다. 결과적으로 특정 실행 파일을 제거하려고 하면 예기치 않게 스트립이 종료될 수 있었습니다. 구조에 대한 가정이 변경되어 이 문제가 더 이상 발생하지 않고
스트립
이 올바르게 작동합니다.
(BZ#1644632)
libdb
에 의한 최적화된 CPU 사용
이전 libdb
데이터베이스 업데이트로 인해 trickle 스레드에서 과도한 CPU 소비가 발생했습니다. 이번 업데이트를 통해 CPU 사용량이 최적화되었습니다.
passwd --stdin
이 더 이상 암호 길이를 79자로 제한하지 않음
stdin 옵션과 함께 passwd
명령을 사용하여 암호 를
변경할 때 암호 길이는 79자로 제한되었습니다. 그 결과 표준 입력을 통해 79자 이상의 암호를 입력하면 처음 79자만 허용되었으며 경고가 표시되지 않았습니다. 이번 업데이트를 통해 허용된 암호 크기를PAM(Pluggable Authentication Module)으로 정의한 크기와 조정하도록 passwd
가 수정되었습니다. 결과적으로 passwd --stdin
명령은 이제 79자보다 긴 암호를 허용하지만 PAM_MAX_RESP_SIZE - 1
문자보다 길지 않습니다. 해당 제한을 초과하면 passwd
에서 표준 오류 출력에 오류를 보고하고 종료 코드 1로 종료합니다.
(BZ#1276570)
수정 파일이
더 이상 잘못 실패하지 않음
이전 버전에서는 /etc/selinux/
파일에 항목이 하나 이상 포함되어 있고 fixfiles
_exclude_dirs/etc/selinux/targeted/contexts/files/file_contexts.local
파일이 없으면 fixfiles 스크립트가 실패했습니다. 이번 업데이트를 통해 /etc/selinux/targeted/contexts/files/file_contexts.local
의 존재 요구 사항이 제거되어 설명된 시나리오에서 수정 파일이 올바르게 작동합니다.