6.11. 컴파일러 및 개발 도구
glibc는 고급 스케줄러 옵션에 대해ched_setattr 및ched_getattr 지원
이전에는 Cryostatglibc 는 <sched.h>에 정의된 함수를 통해 제한된 Linux 스케줄러 옵션 집합에 대한 액세스 권한만 제공했습니다. 이러한 제한은 직접 시스템 호출 또는 Linux 커널 헤더를 사용하여 고급 스케줄링 기능에 액세스하는 데 필요한 애플리케이션입니다.
이번 개선된 기능을 통해 ched_setattr 및 ched 의 확장 가능한 스케줄러 구성 메커니즘을 이제 Cryostat_getattr glibc Cryostat <sched.h > 헤더 파일을 통해 사용할 수 있습니다. 이러한 변경에는 Cryostat_DEADLINE과 같은 추가 스케줄링 정책 지원이 포함됩니다.
결과적으로 애플리케이션은 직접 시스템 호출 또는 커널 특정 헤더에 의존하지 않고 광범위한 스케줄링 옵션 중에서 선택하여 개발자의 이식성과 유연성을 향상시킬 수 있습니다.
Cryostatgrafana-pcp의 PCP Valkey 데이터 소스에 대한 Geomap 지원 추가
이전에는 PCP Valkey 데이터 소스에서 geomap 패널에 필요한 경도 및 위도 레이블을 제공하지 않았기 때문에 Grafana의 맵에서 PCP 지표를 시각화할 수 없었습니다. 이러한 제한으로 인해 다양한 위치에서 모니터링되는 시스템의 성능을 비교하기 어려웠습니다.
Grafana에서 PCP 지표에 대한 geomap visualization를 생성하려면 다음을 수행합니다. 새 패널을 만듭니다. geomap 패널 유형을 선택합니다. 다른 PCP 시각화와 마찬가지로 쿼리 창에 시각화할 메트릭을 입력합니다. 쿼리 창 아래의 형식 드롭다운 메뉴에서 Geomap. .를 선택합니다. Grafana는 경도 및 위도 레이블을 자동으로 감지하고 맵에 데이터를 배치합니다. 추가 옵션 및 사용자 지정은 Grafana 설명서 를 참조하십시오.
이번 개선된 기능을 통해 grafana-pcp 의 PCP Valkey 데이터 소스에는 PCP 지표의 경도 및 위도 레이블이 포함되어 인스턴스를 geomap에 정확하게 배치할 수 있습니다. 사용자는 Grafana에서 geomap 시각화를 생성하여 지리적으로 시스템 성능을 비교할 수 있습니다.
Jira:RHEL-77946[1]
LLVM 20에 기반 LLVM -toolset
llvm-toolset 은 LLVM 20으로 업데이트되어 코드 생성, 성능 최적화 및 C, C++ 및 Rust 워크플로우 전반에 걸쳐 확장된 언어 프런트 엔드 및 라이브러리 지원을 제공합니다. 이 리베이스는 rust rust의 재빌드를 포함하여 RHEL의 종속 구성 요소를 정렬합니다. 여기에는rust,annobin, Cryostatbcc, Cryostat bftrace, Cryostatqt5-qttools, 그리고메사. 빌드는llvm-20.1.8-1.el10 을 사용하여 검증됩니다.
주요 변경 사항은 다음과 같습니다.
-
ppc64le수정 사항을 포함하여 백엔드 개선 사항 - 일반 성능 및 안정성을 위해 Clang 및 LLVM 패스의 최적화 및 진단 개선 사항
- LLVM 20과의 호환성을 위해 조정된 패키지로 툴체인 에코시스템 새로 고침
- 이 스트림에서 ARM 및MIPS의 업스트림 방향과 일치하는 이전 대상의 지속적인 사용 중단
GCC Toolset 15 사용 가능
이번 업데이트를 통해 RHEL 10.1에서gcc-toolset-15 를 사용할 수 있습니다. 툴 세트에는 지원되는 최신 버전의 GCC 및 관련 유틸리티가 포함되어 있어 개발자가 최신 컴파일러 기술을 사용하여 애플리케이션을 빌드, 테스트 및 배포할 수 있습니다.
Jira:RHEL-81745[1]
glibc 는 x86_64에서 GLIBC_ABI_GNU2_TLS 기호를 제공합니다.
x86_64 시스템에 GLIBC_ABI_GNU2_TLS 기호가 포함되어 있습니다. gnu2 스레드 로컬 스토리지 액세스 규칙을 사용하는 프로그램에서 이 기호를 시작해야 할 수 있습니다. 이번 업데이트 이전에는 Cryo statglibc가 이 기호를 제공하지 않으면 영향을 받는 프로그램이 시작되지 않았습니다. 이번 업데이트를 통해 GLIBC_ABI_GNU2_TLS에 의존하는 프로그램이 예상대로 시작되고 실행됩니다.
glibc 는 x86_64에 대한 GLIBC_ABI_DT_X86_64_PLT 기호 지원 추가
이번 업데이트 이전에는 GLIBC_ABI_DT_X86_64_PLT 기호가 필요한 프로그램을 시작할 수 없었습니다. 이러한 향상된 기능을 통해 86_64 시스템의 GLIBC_ABI_DT_X86_64_PLT 기호가 포함되어 있습니다. 이번 개선된 기능을 통해 이 기호를 사용해야 하는 프로그램이 이제 예상대로 실행됩니다.
Linux 6.12 UAPI와 일치하도록 glibc 헤더 파일 업데이트
Red Hat Enterprise Linux 10의 glibc 헤더 파일은 Linux 커널 버전 6.12에서 MAP_*, PIDFD_*, Cryostat_* 및 SYS_* 의 최신 Linux UAPI(User-space API)constants를 통합하도록 업데이트되었습니다. 따라서 개발자는 애플리케이션을 빌드할 때 새롭고 수정된 UAPI 상수에 액세스하여 최신 커널 기능과의 일관성과 호환성을 보장할 수 있습니다.
GDB 는 16.3 버전으로 업데이트됨
이번 gdb 를 RHEL 10.1의 버전 16.3으로 업데이트하면 다음과 같은 주요 개선 사항이 제공됩니다.
- Intel MPX에 대한 지원 삭제
- Intel의 LAM(Linear Address masking) 및 aarch64의 Memory Tagging Extension(MTE)을 포함하여 태그된 데이터 포인터에 대한 지원이 추가되었습니다.
- 성능 향상을 위해 배경 DWARF 읽기 활성화.
향상된 Intel 프로세스 추적(
레코드 btrace):-
설정된 btrace pt 이벤트 추적을 사용하여 비동기 이벤트 인쇄를 활성화합니다. -
이제 Ptwrite 페이로드를 Python에서
RecordAuxiliary개체로 액세스할 수 있습니다.
-
Python 통합 개선:
-
이제 stop 이벤트에
details속성, mirroring>-< "*stopped" 이벤트가 포함됩니다. -
GDB.Progspace()는 더 이상 개체를 직접 생성하지 않으며 다른 API로 개체를 가져와야 합니다. -
사용자 정의 속성은
gdb.Inferior및gdb.InferiorThread개체에 추가할 수 있습니다. -
새 이벤트 소스 도입:
gdb.tui_enabled. -
gdb.record.clear를 추가하여 현재 레코딩의 추적 데이터를 지웁니다. - 누락된 objfiles 및 디버그 정보를 처리하기 위한 모듈이 추가되었습니다.
-
새로운 클래스
gdb.missing_debug.MissingDebugInfo를 하위 분류하여 누락된 디버그 정보를 처리할 수 있습니다. -
새로운 속성
gdb.Symbol.is_a artificial. - 여러 도메인에서 기호 조회를 위한 새로운 상수입니다.
-
새 함수
gdb.notify_mi(NAME, DATA)는 사용자 지정 async 알림을 내보냅니다. -
값 내용을 읽고 쓰기 위한 새로운 속성
gdb.Value.bytes. -
CTRL-C 인터럽트를 시뮬레이션하기 위해
gdb.interrupt를 추가했습니다. -
새 속성
gdb.InferiorThread.ptid_string은 대상 ID를 제공합니다.
-
이제 stop 이벤트에
디버그 어댑터 프로토콜 (DAP) 변경:
- 전역 변수 및 마지막 반환 값을 포함하도록 업데이트된 "범위" 요청.
- "시작" 및 "연결" 요청은 언제든지 "configurationDone" 후에 적용할 수 있습니다.
- "변수" 요청은 더 이상 인공 기호를 반환하지 않습니다.
- "프로세스" 이벤트 및 "cancel" 요청에 대한 지원이 추가되었습니다.
- "연결" 요청에서 이제 프로그램 지정이 지원됩니다.
- 스타일링, 언어 프레임 불일치 경고, 누락 objfile 처리기 및 함수 호출 시간 초과에 대한 새로운 명령을 도입했습니다.
-
개선 및 이름 변경(
disassemble에대한 오류 처리 개선, 느낌표 변경)을 포함하여 몇 가지 명령이 개선되어unwind-on-signal을 설정합니다. -
파일 상태 및 메모리 가져오기에 대한 새 패킷 및
복제와 같은 새로운 중지 이유를 포함하여 확장된 원격 패킷 지원 - 스레드별 이벤트 보고 옵션 및 주소 태그 지정 검사가 도입되었습니다.
IBM z16용 GCC 튜닝은 s390x에서 기본 설정
RHEL 10.1의 s390x 아키텍처의 gcc 컴파일러에서 생성된 코드의 기본 튜닝이 이제 IBM z16에 맞게 조정됩니다.
이번 업데이트 이전에는 gcc 의 s390x 코드 생성에 대한 기본 튜닝이 이전 IBM 아키텍처용으로 설정되었습니다.
이번 업데이트를 통해 RHEL 10.1의 s390x의 gcc 로 컴파일된 코드가 IBM z16에 대해 기본적으로 조정됩니다. 다른 아키텍처에 대해 최적화해야 하는 경우 gcc 호출 중에 -mtune 플래그를 사용하여 원하는 아키텍처를 지정하여 이 설정을 덮어쓸 수 있습니다.
Jira:RHEL-86679[1]
IBM Z z17에 대한 초기 지원이 Cryostatglibc에 추가되었습니다.
Cryostatglibc 의 동적 로더는 IBM z17 CPU 또는 특정 기능을 감지할 수 있도록 향상되었습니다. 결과적으로usr/lib64/glibc-hwcap/z17/ 디렉터리에 설치된 IBM z17 최적화 라이브러리가 z17 시스템에 자동으로 로드됩니다. 이번 업데이트에서는 IBM Z z17 플랫폼의 하드웨어 호환성 및 성능이 향상되었습니다.
Jira:RHEL-72564[1]
버전 1.88.0에 따라 rust Toolset rebased
RHEL 10.1은 버전 1.88.0의 Rust Toolset과 함께 배포됩니다. 이 업데이트에는 다음과 같은 주요 개선 사항이 포함되어 있습니다.
- 이제 rust 2024 Edition이 안정적입니다. 이는 중요한 언어 변경을 가능하게 하는 주요 옵트인 릴리스이며 현재까지 출시된 가장 큰 버전입니다.
-
let체인으로 2024 Edition을 활용하여 fluent&&-chaining ofletstatements withinifandwhileconditions to reduce nesting and improve readability. -
고성능 컴퓨팅의 경우 대상 기능을 활성화하면 안전한 Rust에서 여러
std::arch내장을 직접 호출할 수 있으므로 특정 CPU 기능에 직접 액세스할 수 있습니다. -
비동기정렬이 지원되어 비동기 프로그래밍에 대한 최고 수준의 솔루션을 제공합니다. 이러한 클러닝은 캡처에서 차용하고 AsyncFn 특성을 사용하여 높은 수준의 기능 서명을 올바르게 표현할 수 있습니다. -
특성 upcasting을 사용하면 트레잇 오브젝트에 대한 참조를 분류하여 특히
Any특성을 사용하여 공통 패턴을 단순화합니다. - 이제 Cryostat는 캐시를 자동으로 정리하여 1~3개월 내에 액세스하지 않는 기존 파일을 제거하여 디스크 공간을 관리하는 데 도움이 됩니다.
rust Toolset은 롤링 애플리케이션 스트림이며 Red Hat은 최신 버전만 지원합니다. 자세한 내용은 Red Hat Enterprise Linux Application Streams 라이프 사이클 문서를 참조하십시오.
tzdata 에는 NEWS 파일이 포함되어 있습니다.
이번 업데이트를 통해 tzdata 패키지에는 시간대 데이터 변경 사항에 대한 정확한 설명을 제공하기 위해 각 릴리스와 함께 NEWS 파일이 포함되어 있습니다. 결과적으로 변경된 내용을 자세히 검토할 수 있습니다. 사용자는 포함된 NEWS 파일을 검토하여 업데이트에서 변경된 내용을 파악할 수 있습니다.
Jira:RHEL-105042[1]