검색

7.11. 컴파일러 및 개발 도구

download PDF

glibc DNS 스텁 확인자는 동일한 트랜잭션 ID를 사용하여 병렬 쿼리를 올바르게 처리합니다.

이번 업데이트 이전에는 GNU C 라이브러리 glibc 의 DNS 스텁 확인자가 동일한 트랜잭션 ID를 사용하는 병렬 쿼리에 대한 응답을 올바르게 처리하지 않았습니다. 결과적으로 트랜잭션 ID가 같을 때 두 번째 병렬 응답이 쿼리와 일치하지 않아 시간 초과 및 재시도가 발생했습니다.

이번 업데이트를 통해 두 번째 병렬 응답이 이제 유효한 것으로 인식됩니다. 그 결과 glibc DNS 스텁 확인자는 인식되지 않는 응답으로 인해 과도한 시간 초과를 방지합니다.

(BZ#1868106)

이제 fgetsgent()fgetsgent_r() 을 사용하여 구성 파일을 읽습니다.

/etc/gshadow 파일에서 구체적으로 구조화된 항목 또는 읽기 중에 파일 크기를 변경하면 fgetsgent() 및 fgetsgent _r() 함수에서 잘못된 포인터를 반환하는 경우가 있었습니다. 결과적으로 이러한 함수를 사용하여 /etc/gshadow 또는 /etc/ 에 있는 기타 구성 파일을 읽는 애플리케이션이 분할 오류 오류로 실패했습니다. 이번 업데이트에서는 fgetsgent()fgetsgent_r() 을 수정하여 구성 파일을 보다 강력하게 읽습니다. 결과적으로 애플리케이션에서 구성 파일을 읽을 수 있습니다.

(BZ#1871397)

glibc 문자열 기능은 이제 AMD64 및 Intel 64 프로세서의 시스템 캐시에 부정적인 영향을 미치지 않도록 합니다.

이전에는 문자열의 glibc 구현이 64비트 AMD 및 Intel 프로세서의 스레드에 사용할 수 있는 마지막 수준 캐시의 양을 잘못 예상했습니다. 결과적으로 대규모 버퍼에서 memcpy 함수를 호출하면 시스템의 전체 캐시 성능에 부정적인 영향을 미치거나 memcpy 시스템 호출 속도가 느렸습니다.

이번 업데이트를 통해 마지막 수준 캐시 크기가 더 이상 시스템에서 보고된 하드웨어 스레드 수를 사용하여 확장되지 않습니다. 결과적으로 문자열 기능이 이제 대규모 버퍼의 캐시를 바이패스하여 나머지 시스템 캐시에 부정적인 영향을 주지 않습니다.

(BZ#1880670)

glibc 동적 로더는 이제 libc.so.6의 특정 오류를 방지합니다.

이전에는 libc.so.6 공유 오브젝트가 기본 프로그램으로 실행된 경우(예: glibc 버전 정보 표시) glibc 동적 로더에서 LD_PRELOAD 환경 변수를 사용하여 로드된 오브젝트와 관련하여 libc.so.6 의 재배치를 올바르게 주문하지 않았습니다. 결과적으로 LD_PRELOAD 가 설정된 경우 libc.so.6 호출로 인해 libc.so.6 을 예기치 않게 종료하는 경우가 있었습니다. 이번 업데이트에서는 버그가 수정되어 동적 로더가 이제 libc.so.6 의 재배치를 올바르게 처리합니다. 따라서 설명된 문제가 더 이상 발생하지 않습니다.

(BZ#1882466)

glibc 동적 링커는 정적 스레드-로컬 스토리지 공간의 일부를 정적 TLS 할당으로 제한합니다.

이전에는 glibc 동적 링커에서 동적 TLS에 사용 가능한 모든 정적 스레드-로컬 스토리지(TLS) 공간을 먼저 제공했습니다. 결과적으로 동적 TLS 할당에서 사용 가능한 모든 정적 TLS 공간을 이미 사용했기 때문에 dlopen 함수를 사용하여 런타임에 추가 공유 오브젝트를 로드하지 못한 경우가 있었습니다. 이 문제는 특히 64비트 ARM 아키텍처 및 IBM Power Systems에서 발생했습니다.

이제 동적 링커가 정적 TLS 영역의 일부를 정적 TLS 할당으로 제한하고 이 공간을 동적 TLS 최적화에 사용하지 않습니다. 결과적으로 기본 설정을 사용하는 경우 더 많은 경우 dlopen 호출이 성공합니다. 기본 설정보다 할당된 정적 TLS가 필요한 애플리케이션에서는 새로운 glibc.rtld.optional_static_tls 튜닝 가능 항목을 사용할 수 있습니다.

(BZ#1871396)

glibc 동적 링커는 64비트 ARM 변형 호출 규칙에 대한 지연 바인딩을 비활성화합니다.

이전에는 glibc 동적 링커에서 64비트 ARM (AArch64) 변형 호출 규칙을 사용하여 함수의 지연 바인딩을 비활성화하지 않았습니다. 그 결과 동적 링커가 이러한 함수 호출에서 인수를 손상시켜 잘못된 결과 또는 프로세스 실패가 발생했습니다. 이번 업데이트를 통해 동적 링커는 설명된 시나리오에서 지연 바인딩을 비활성화하고 함수 인수가 올바르게 전달됩니다.

(BZ#1893662)

GCC 가 버전 8.4로 업데이트

GCC(GNU 컴파일러 컬렉션)는 이전 버전에 비해 여러 버그 수정을 제공하는 업스트림 버전 8.4로 변경되었습니다.

(BZ#1868446)

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.