5.4.9. 컴파일러 및 개발 도구


DT_FILTER 를 사용하고 생성자가 있는 공유 라이브러리를 로드하는 동안 glibc 동적 로더가 더 이상 실패하지 않습니다.

이 업데이트 이전에는 필터와 생성자가 있는 공유 라이브러리를 로드하는 동안 필터로 공유 개체의 동적 로더 구현에 결함이 발생하여 동적 로더가 실패했습니다. 이번 릴리스에서는 이러한 공유 라이브러리를 올바르게 처리하도록DT_FILTER(DT_FILTER)의 동적 로더 구현이 수정되었습니다. 그 결과 동적 로더가 이제 언급된 시나리오에서 예상대로 작동합니다.

(BZ#1812756)

glibc 에서 getmntent() 목록에서 의사 마운트를 제거할 수 있음

커널에는 사용자 공간에 노출된 테이블에 automount pseudo-entries가 포함됩니다. 결과적으로 getmntent() API를 사용하는 프로그램은 목록의 일반 마운트와 이러한 의사 마운트를 모두 확인합니다. 의사 마운트는 실제 마운트에 일치하지 않으며 유효한 정보를 포함하지 않습니다.

이번 업데이트를 통해 mount 항목에 automount(8) 설정에 ignore 마운트 옵션이 있는 경우 glibc 라이브러리는 이제 getmntent() 목록에서 이러한 의사 마운트를 제거합니다. 이전 동작이 예상되는 프로그램은 다른 API를 사용해야 합니다.

(BZ#1743445)

IBM Z에서 movv1qi 패턴이 더 이상 자동 검사 코드에서 잘못 컴파일되지 않습니다.

이번 업데이트 이전에는 movv1qi 패턴에 대해 잘못된 로드 지침이 생성되었습니다. 그 결과 자동 벡터가 적용된 경우 IBM Z 시스템에서 잘못된 컴파일이 발생할 수 있었습니다. 이번 업데이트에서는 movv1qi 패턴이 수정되어 결과적으로 코드 컴파일이 수정되어 이제 올바르게 실행됩니다.

(BZ#1784758)

PAPI_event_name_to_code() 가 여러 스레드에서 올바르게 작동합니다

이번 업데이트 이전에는 PAPI 내부 코드가 스레드 조정을 올바르게 처리하지 않았습니다. 그 결과 여러 스레드가 PAPI_event_name_to_code() 작업을 사용하는 경우 경쟁 조건이 발생하고 작업이 실패했습니다. 이번 업데이트에서는 PAPI 내부 코드의 여러 스레드 처리가 향상되었습니다. 결과적으로 PAPI_event_name_to_code() 작업을 사용하는 다중 스레드 코드가 올바르게 작동합니다.

(BZ#1807346)

IBM Power Systems에서 glibc 수학 기능에 대한 성능 개선

이전에는 glibc 수학 기능이 IBM Power Systems에서 불필요한 부동 소수점 상태 업데이트 및 시스템 호출을 수행했기 때문에 성능에 부정적인 영향을 미쳤습니다. 이번 업데이트에서는 불필요한 부동 소수점 상태 업데이트를 제거하고 다음과 같은 구현을 개선합니다. ceil(), ce ilf(), fe getmode(), fe setmode(), fe setenv(), fe getexcept(), fee nableexcept(), fe disablexcept(), fe getround()fesetround(). 그 결과 IBM Power Systems에서 수학 라이브러리의 성능이 향상되었습니다.

(BZ#1783303)

메모리 보호 키가 IBM Power에서 지원

IBM Power Systems에서 메모리 보호 주요 인터페이스 pkey_setpkey_get 은 이전에는 스텁 기능이므로 항상 실패했습니다. 이번 업데이트에서는 인터페이스를 구현하고 결과적으로 GNU C 라이브러리(glibc)에서 IBM Power Systems의 메모리 보호 키를 지원합니다.

메모리 보호 키에는 현재 해시 기반 MMU(메모리 관리 단위)가 필요하므로 disable_radix 커널 매개 변수를 사용하여 특정 시스템을 부팅해야 할 수 있습니다.

(BZ#1642150)

papi-testsuitepapi-devel 이 필수 papi-libs 패키지를 설치합니다.

이전에는 papi-testsuitepapi-devel RPM 패키지가 일치하는 papi-libs 패키지에 종속성을 선언하지 않았습니다. 결과적으로 테스트를 실행할 수 없어 개발자에게 애플리케이션에 사용할 수 있는 필수 버전의 papi 공유 라이브러리가 없었습니다.

이번 업데이트를 통해 사용자가 papi-testsuite 또는 papi-devel 패키지를 설치할 때 papi-libs 패키지도 설치됩니다. 결과적으로 papi-testsuite 에 테스트를 실행할 수 있는 올바른 라이브러리가 있으며 papi-devel 을 사용하는 개발자가 실행 파일을 papi 공유 라이브러리의 적절한 버전과 연결합니다.

(BZ#1664056)

여러 아키텍처에 lldb 패키지를 설치해도 더 이상 파일 충돌이 발생하지 않습니다.

이전에는 lldb 패키지가 아키텍처와 독립된 위치에 아키텍처 종속 파일을 설치했습니다. 결과적으로 32비트 및 64비트 버전의 패키지를 모두 설치하면 파일 충돌이 발생했습니다. 이번 업데이트에서는 올바른 아키텍처 종속 위치에 파일을 패키징합니다. 그 결과 설명된 시나리오에 lldb 설치가 성공적으로 완료됩니다.

(BZ#1841073)

getaddrinfo 에서 메모리 할당 실패를 올바르게 처리합니다.

이전 버전에서는 메모리 할당 실패 후 GNU C 라이브러리 glibcgetaddrinfo 함수에서 내부 확인자 컨텍스트를 릴리스하지 않았습니다. 그 결과 getaddrinfo 에서 호출 스레드의 나머지 수명 동안 /etc/resolv.conf 파일을 다시 로드할 수 없어 메모리 누수가 발생할 수 있었습니다.

이번 업데이트에서는 확인자 컨텍스트에 대한 추가 릴리스 작업을 사용하여 오류 처리 경로를 수정합니다. 결과적으로 getaddrinfo 는 간헐적인 메모리 할당 실패 후에도 새 구성 값으로 /etc/resolv.conf 를 다시 로드합니다.

(BZ#1810146)

Gli bc는 IFUNC 확인자 순서로 인한 특정 오류를 방지합니다.

이전 버전에서는 GNU C Library glibc librt 및 libpthread 라이브러리 구현에 clock_gettime, clock_getcpuclockid, clock_nanosleep,clock_settime ,vfork 등의 함수에 대한 간접 함수(IFUNC) 확인자가 포함되어 있었습니다. 경우에 따라 IFUNC 확인자가 librt 및 lib pthread 라이브러리를 재배치하기 전에 실행될 수 있었습니다. 그 결과 초기 프로그램을 시작하는 동안 glibc 동적 로더에서 애플리케이션이 실패했습니다.

이번 릴리스에서는 이러한 기능의 구현이 glibclibc 구성 요소로 이동되어 설명된 문제가 발생하지 않습니다.

(BZ#1748197)

pthread_create중에 어설션 실패가 더 이상 발생하지 않습니다

이전에는 glibc 동적 로더가 내부 스레드 로컬 스토리지(TLS) 모듈 ID 카운터의 변경 사항을 롤백하지 않았습니다. 결과적으로 dlopen 함수가 특정 방식으로 실패한 후 pthread_create 함수의 어설션 오류가 발생할 수 있었습니다. 이번 수정으로 glibc 동적 로더는 특정 오류가 더 이상 발생하지 않으면 나중에 TLS 모듈 ID 카운터를 업데이트합니다. 결과적으로 어설션 오류가 더 이상 발생하지 않습니다.

(BZ#1774115)

glibc 에서 nss_db를 사용하여 32비트 애플리케이션에 대한 올바른 종속성을 설치합니다.

이전에는 nss_db.x86_64 패키지에서 nss_db.i686 패키지에 대한 종속성을 선언하지 않았습니다. 따라서 자동 설치는 32비트 환경의 glibc .i686을 설치했지만 시스템에 nss_db.i686 을 설치하지 않았습니다. 결과적으로 nss_db 를 사용하는 32비트 애플리케이션은 정확한 사용자 데이터베이스 조회를 수행하지 못하고 동일한 설정의 64비트 애플리케이션이 올바르게 작동합니다.

이번 업데이트를 통해 glibc 패키지가 시스템에 glibc.i686 및 nss_db를 모두 설치할 때 nss_db.i686 패키지 설치를 트리거하는 약한 종속성이 추가되었습니다. 결과적으로 시스템 관리자가 nss_db. i686 패키지를 명시적으로 설치하지 않은 경우에도 nss_db 를 사용하는 32비트 애플리케이션이 올바르게 작동합니다.

(BZ#1807824)

Odia 언어로 업데이트 된 glibc 로케일 정보

이전에 오리사로 알려진 인도의 이름은 오디하(Odisha)로 바뀌었으며 공식 언어의 이름이 오리야에서 오디아어로 바뀌었습니다. 이번 업데이트를 통해 glibc 로케일 정보는 언어의 새 이름을 반영합니다.

(BZ#1757354)

LLVM 하위 패키지가 아카이브 종속 위치에 아카이브 종속 파일을 설치합니다

이전에는 LLVM 하위 패키지가 아카이브 독립된 위치에 아카이브 종속 파일을 설치했습니다. 이로 인해 32 및 64비트 버전의 LLVM을 설치할 때 충돌이 발생했습니다. 이번 업데이트를 통해 이제 패키지 파일이 아카이브 종속 위치에 올바르게 설치되어 버전 충돌이 발생하지 않습니다.

(BZ#1820319)

암호 및 그룹 조회가 더 이상 glibc에서 실패하지 않습니다

이전에는 glibc 라이브러리의 nss_compat 모듈에서 암호 및 그룹 항목을 처리하는 동안 잘못된 오류 코드로 errno 상태를 덮어씁니다. 이로 인해 애플리케이션에서 버퍼의 크기를 예상대로 조정하지 않아 암호 및 그룹 조회가 실패했습니다. 이번 업데이트에서는 문제가 해결되어 이제 조회가 예상대로 완료됩니다.

(BZ#1836867)

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

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

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

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

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동