4.12. 컴파일러 및 개발 도구

Go Toolset을 버전 1.16.7로 업데이트

Go Toolset이 1.16.7 버전으로 업그레이드되었습니다. 주요 변경 사항은 다음과 같습니다.

  • GO111MODULE 환경 변수가 기본적으로 on 으로 설정됩니다. 이 설정을 되돌리려면 GO111MODULEauto 로 변경합니다.
  • Go 링커는 더 적은 리소스를 사용하고 코드의 견고성 및 유지 관리 효율성을 향상시킵니다. 이는 지원되는 모든 아키텍처 및 운영 체제에 적용됩니다.
  • 새로운 포함 패키지를 사용하면 프로그램을 컴파일하는 동안 포함된 파일에 액세스할 수 있습니다.
  • the io/ioutil 패키지의 모든 기능이 the ioos 패키지로 이동되었습니다. 여전히 use io/ioutil 을 사용할 수 있지만, the ioos 패키지는 더 나은 정의를 제공합니다.
  • Delve 디버거는 1.6.0으로 다시 기반하여 Go 1.16.7 Toolset을 지원합니다.

자세한 내용은 Go Toolset 사용을 참조하십시오.

(BZ#1938071)

pvc Toolset이 1.54.0 버전으로 다시 기반합니다.

satellite Toolset이 1.54.0 버전으로 업데이트되었습니다. 주요 변경 사항은 다음과 같습니다.

  • 이제 wasm32-unknown-unknown 대상에 프리뷰 표준 라이브러리를 사용할 수 있습니다. 이 향상된 기능을 통해 새로 안정화된 내장을 포함하여 WebAssembly 바이너리를 생성할 수 있습니다.
  • 이제 온프레미스에는 배열에 대한 IntoIterator 구현이 포함됩니다. 이 향상된 기능을 통해 IntoIterator 특성을 사용하여 값별로 배열을 반복하고 메서드에 대한 전달 배열을 반복할 수 있습니다. 그러나 array.into_iter() 는 2021년 버전까지 참조하여 값을 반복합니다.
  • 또는 패턴의 구문을 사용하면 이제 패턴의 아무 위치에도 중첩할 수 있습니다. 예를 들면 다음과 같습니다. Pattern (1)|Pattern(2) 대신 Pattern(1| 2).
  • 이제 유니코드 식별자에 유니코드 표준에 정의된 모든 유효한 식별자 문자가 포함될 수 있습니다 #31.
  • 메서드 및 특성 구현이 안정화되었습니다.
  • 증분 컴파일은 기본적으로 다시 활성화됩니다.

자세한 내용은 Rust Toolset 사용을 참조하십시오.

(BZ#1945805)

LLVM Toolset을 버전 12.0.1로 업데이트

LLVM Toolset이 버전 12.0.1로 업그레이드되었습니다. 주요 변경 사항은 다음과 같습니다.

  • 새 컴파일러 플래그 -march=x86-64-v[234] 가 추가되었습니다.
  • Clang 컴파일러의 컴파일러 플래그 -fasynchronous-unwind-tables 가 이제 Linux AArch64/PowerPC에서 기본값입니다.
  • Clang 컴파일러는 이제 C++20 가능성 속성 [[likely]] 및 [[unlikely]]을 지원합니다.
  • 새 기능 특성 tune-cpu 가 추가되었습니다. 이를 통해 microarchitectural 최적화를 target-cpu 특성 또는 TargetMachine CPU와 독립적으로 적용할 수 있습니다.
  • 보안 향상을 위해 새 sanitizer -fsanitize=unsigned-shift-base 가 정수 sanitizer -fsanitize=integer 에 추가되었습니다.
  • PowerPC 대상의 코드 생성이 최적화되었습니다.
  • 이제 LLVM에서 WebAssembly 백엔드가 활성화되었습니다. 이 향상된 기능을 통해 LLVM 및 Clang을 사용하여 WebAssembly 바이너리를 생성할 수 있습니다.

자세한 내용은 LLVM Toolset 사용을 참조하십시오.

(BZ#1927937)

CMake는 3.20.2 버전으로 업데이트

CMake는 3.18.2에서 3.20.2로 변경되었습니다. 3.20.2 버전이 필요한 프로젝트에서 CMake를 사용하려면 cmake_minimum_required(버전 3.20.2) 명령을 사용합니다.

주요 변경 사항은 다음과 같습니다.

  • C++23 컴파일러 모드는 이제 대상 속성 CXX_STANDARD,CUDA_STANDARD ,OBJCXX_STANDARD 를 사용하거나 컴파일 기능 함수의 cxx_std_23 메타 기능을 사용하여 지정할 수 있습니다.
  • 이제 CUDA 언어 지원을 통해 NVIDIA CUDA 컴파일러가 심볼릭 링크가 될 수 있습니다.
  • Intel oneAPI NextGen LLVM 컴파일러는 이제 IntelLLVM 컴파일러 ID에서 지원됩니다.
  • CMake는 Android NDK의 툴체인 파일과 병합하여 Android의 크로스 컴파일을 지원합니다.
  • 프로젝트 빌드 시스템을 생성하기 위해 cmake(1) 를 실행하면 하이픈으로 시작하는 알 수 없는 명령줄 인수가 거부됩니다.

새로운 기능 및 사용되지 않는 기능에 대한 자세한 내용은 CMake 릴리스 노트 를 참조하십시오.

(BZ#1957947)

새로운 GCC 툴 세트 11

GCC Toolset 11은 최신 버전의 개발 툴을 제공하는 컴파일러 툴셋입니다. AppStream 리포지토리의 소프트웨어 컬렉션 형태로 애플리케이션 스트림으로 사용할 수 있습니다.

다음 구성 요소는 GCC Toolset 10 이후 다시 기반되었습니다.

  • GCC에서 버전 11.2로
  • GDB에서 버전 10.2
  • Valgrind에서 버전 3.17.0으로
  • SystemTap에서 버전 4.5로
  • binutils에서 버전 2.36으로
  • 버전 0.185의 elfutils
  • DWZ에서 버전 0.14로
  • 버전 9.85의 Annobin

구성 요소의 전체 목록은 GCC Toolset 11 을 참조하십시오.

GCC Toolset 11을 설치하려면 root로 다음 명령을 실행합니다.

# yum install gcc-toolset-11

GCC Toolset 11에서 도구를 실행하려면 다음을 수행합니다.

$ scl enable gcc-toolset-11 tool

쉘 세션을 실행하려면 GCC Toolset 11의 툴 버전이 이러한 툴의 시스템 버전을 재정의합니다.

$ scl enable gcc-toolset-11 bash

자세한 내용은 GCC Toolset 사용을 참조하십시오.

GCC Toolset 11 구성 요소는 두 개의 컨테이너 이미지에서도 사용할 수 있습니다.

  • rhel8/gcc-toolset-11-toolchain 에는 GCC 컴파일러, GDB 디버거 및 make 자동화 도구가 포함됩니다.
  • rhel8/gcc-toolset-11-perftools: SystemTap 및 Valgrind와 같은 성능 모니터링 툴이 포함되어 있습니다.

컨테이너 이미지를 가져오려면 다음 명령을 root로 실행합니다.

# podman pull registry.redhat.io/<image_name>

GCC Toolset 11 컨테이너 이미지만 지원됩니다. 이전 GCC 도구 세트 버전의 컨테이너 이미지는 더 이상 사용되지 않습니다.

(BZ#1953094)

.NET 버전 6.0으로 업데이트

Red Hat Enterprise Linux 8.5는 .NET 버전 6.0과 함께 배포됩니다. 주요 개선사항은 다음과 같습니다.

  • 64비트 Arm (aarch64) 지원
  • IBM Z 및 LinuxONE(s390x) 지원

자세한 내용은 .NET 6.0 RPM 패키지 및 . NET 6.0 컨테이너에 대한 릴리스 노트를 참조하십시오.

(BZ#2022794)

GCC Toolset 11: GCC가 버전 11.2로 업데이트

GCC Toolset 11에서는 GCC 패키지가 버전 11.2로 업데이트되었습니다. 주요 버그 수정 및 개선 사항은 다음과 같습니다.

일반 개선 사항

  • GCC의 기본값은 DWARF 버전 5 디버깅 형식입니다.
  • 진단에 표시된 열 번호는 기본적으로 실제 열 번호를 나타내고 다중 열 문자를 준수합니다.
  • 간단한 코드 벡터기에서는 벡터를 사용할 때 전체 기능을 고려합니다.
  • 같은 변수를 비교하는 일련의 조건식은 각각 비교 표현식이 포함된 경우 switch 문으로 변환할 수 있습니다.
  • 프로세스 최적화 개선 사항:

    • -fipa-modref 옵션으로 제어되는 새로운 IPA-modref 패스는 함수 호출의 부작용을 추적하고 포인트-투 분석의 정확도를 향상시킵니다.
    • 통합 함수 수를 늘리고 컴파일 시간 메모리 사용을 줄이기 위해 -fipa-icf 옵션으로 제어하는 동일한 코드 접기 패스가 크게 개선되었습니다.
  • 링크 시간 최적화 개선 사항:

    • 최대 메모리 사용을 줄이기 위해 연결 중에 메모리 할당이 개선되었습니다.
  • IDE에서 새로운 GCC_EXTRA_DIAGNOSTIC_OUTPUT 환경 변수를 사용하면 빌드 플래그를 조정하지 않고 시스템에서 읽을 수 있는 "fix-it 힌트"를 요청할 수 있습니다.
  • fan alyzer 옵션에 의해 실행되는 정적 분석기가 수많은 버그 수정 및 개선 사항이 제공됨에 따라 크게 개선되었습니다.

언어별 개선 사항

C 제품군

  • C 및 C++ 컴파일러는 OpenMP 구문과 OpenMP 5.0 사양의 allocator 루틴에서 비rectangular 루프 중첩을 지원합니다.
  • 속성:

    • 새로운 no_stack_protector 특성은 스택 보호(-fstack-protector)로 계측해서는 안 되는 기능을 표시합니다.
    • 향상된 ignore oc 특성은 할당자 및 deallocator API 쌍을 식별하는 데 사용할 수 있습니다.
  • 새로운 경고:

    • Wall 옵션으로 활성화되는 -Wsizeof-array-div 는 첫 번째 배열에 적용되고 배열 요소의 크기와 동일하지 않을 때 두 개의 연산자 의 분할에 대해 경고합니다.
    • -기본적으로 활성화된 wstringop-overread 는 문자열 함수의 호출에 대해 경고합니다. 이 호출은 배열의 끝 부분에서 인수로 전달되었습니다.
  • 향상된 경고 :

    • -Wfree-nonheap-object 는 동적 메모리 할당 함수에서 반환되지 않은 포인터가 있는 deallocation 함수의 호출 인스턴스를 더 많이 감지합니다.
    • -Wmaybe-uninitialized 는 Cont -qualified 인수를 사용하는 함수에 초기화되지 않은 메모리에 대한 포인터 전달과 참조를 진단합니다.
    • -Wuninitialized 는 초기화되지 않은 동적으로 할당된 메모리에서 읽기를 감지합니다.

C

  • -std=c2x 및 -std=gnu2x 옵션으로 향후 C2 X 버전의 몇 가지 새로운 기능이 지원됩니다. 예를 들면 다음과 같습니다.

    • 표준 속성이 지원됩니다.
    • __has_c_attribute 전처리기 연산자가 지원됩니다.
    • 레이블은 선언 전과 복합 명령의 끝에 표시될 수 있습니다.

C++

  • 기본 모드는 -std=gnu++17 로 변경됩니다.
  • C++ 라이브러리 libstdc++ 가 C++17 지원 개선.
  • 여러 가지 새로운 C++20 기능이 구현되었습니다. C++20 지원은 실험적입니다.

    기능에 대한 자세한 내용은 C++20 언어 기능을 참조하십시오.

  • C++ 프런트엔드는 예정된 C++23 초안 기능 중 일부를 실험적으로 지원합니다.
  • 새로운 경고:

    • -Wctad-maybe-unsupported 는 기본적으로 비활성화되어 있으며, 분류 가이드가 없는 유형에서 클래스 템플릿 인수를 수행하는 방법에 대해 경고합니다.
    • -Wrange-loop-construct-Wall 에 의해 활성화되며, 범위 기반 for 반복문이 불필요하고 리소스 비효율적인 복사본을 생성할 때 경고합니다.
    • -Wmismatched-new-delete, -Wall 에 의해 활성화됨)은 새 운영 프로그램 또는 일치하지 않는 다른 할당 함수에서 반환된 포인터를 사용하여 operator delete 호출에 대해 경고합니다.
    • -기본적으로 활성화된 Wvexing-parse 는 가장 vexing 구문 분석 규칙에 대해 경고합니다. 선언이 변수 정의와 유사하지만 C++ 언어는 함수 선언으로 해석되어야 합니다.

아키텍처별 개선 사항

64비트 ARM 아키텍처

  • Armv8-R 아키텍처는 -march=armv8-r 옵션을 통해 지원됩니다.
  • GCC는 더하기, 빼기, 복제 및 누적 및 변형을 포함한 복합 숫자를 수행하는 작업을 자동 검사할 수 있습니다.

AMD 및 Intel 64비트 아키텍처

  • 다음 Intel CPU가 지원됩니다. Sapphire Rapids, Alder Lake 및 Rocket Lake.
  • 인텔 X-VNNI에 대한 새로운 ISA 확장 지원이 추가되었습니다. ma vxvnni 컴파일러 스위치는X-VNNI 내장을 제어합니다.
  • znver3 코어를 기반으로 하는 AMD CPU는 새로운 -march=znver3 옵션에서 지원됩니다.
  • x86-64 psABI 보충 에 정의된 세 가지 마이크로 아키텍처 수준은 새로운 -march=x86-64-v2,-march=x86-64-v3, -march=x86-64-v4 옵션에서 지원됩니다.

(BZ#1946782)

GCC Toolset 11: dwz 에서 DWARF 5 지원

GCC Toolset 11에서 dwz 툴은 이제 DWARF 버전 5 디버깅 형식을 지원합니다.

(BZ#1948709)

GCC Toolset 11: GCC에서 AIA 사용자 인터럽트 지원

GCC Toolset 11에서 GCC는 이제 AIA(Acccelerator Interfacing Architecture) 사용자 인터럽터를 지원합니다.

(BZ#1927516)

GCC Toolset 11: 일반 SVE 튜닝 기본값 개선

GCC Toolset 11에서는 64비트 ARM 아키텍처에서 일반 SVE 튜닝 기본값이 향상되었습니다.

(BZ#1979715)

SystemTap 버전 4.5로 업데이트

SystemTap 패키지가 버전 4.5로 업데이트되었습니다. 주요 버그 수정 및 개선 사항은 다음과 같습니다.

  • 32비트 부동 소수점 변수는 자동으로 이중 변수로 확장되므로 $context 변수로 직접 액세스할 수 있습니다.
  • 열거 값은 $context 변수로 액세스할 수 있습니다.
  • BPF uconversions 탭 세트가 확장되었으며 사용자 공간의 값(예: user_long_error())에 더 많은 tapset 함수가 포함되어 있습니다.
  • 대규모 서버에서 안정적인 운영을 제공하기 위해 동시성 제어가 크게 개선되었습니다.

자세한 내용은 업스트림 SystemTap 4.5 릴리스 노트 를 참조하십시오.

(BZ#1933889)

elfutils 를 버전 0.185로 다시 기반

elfutils 패키지가 버전 0.185로 업데이트되었습니다. 주요 버그 수정 및 개선 사항은 다음과 같습니다.

  • 이제 eu-elflinteu-readelf 툴은 ELF 섹션에서 SHF_GNU_RETAINSHT_X86_64_UNWIND 플래그를 인식하고 표시합니다.
  • DEBUGINFOD_SONAME 매크로가 to debuginfod.h 에 추가되었습니다. 이 매크로는 dlopen 함수와 함께 사용하여 애플리케이션에서 동적으로 libdebuginfod.so 라이브러리를 로드할 수 있습니다.
  • 새 function debuginfod_set_verbose_fd 가 the debuginfod-client 라이브러리에 추가되었습니다. 이 함수는 자세한 출력을 별도의 파일로 리디렉션하여 the debuginfod_find_* 쿼리 기능을 향상시킵니다.
  • 이제 DEBUGINFOD_VERBOSE 환경 변수를 설정하면 the debuginfod 클라이언트가 연결되는 서버 및 해당 서버의 HTTP 응답에 대한 자세한 정보가 표시됩니다.
  • The debuginfod 서버는 새로운 스레드 사용 지표와 보다 자세한 오류 지표를 제공하여 디버그info d 서버에서 실행되는 프로세스를 더 쉽게 검사할 수 있습니다.
  • 이제 libdw 라이브러리에서 DW_FORM_indirect 위치 값을 투명하게 처리하여 dwarf_whatform 함수에서 특성의 실제 FORM을 반환할 수 있습니다.
  • 네트워크 트래픽을 줄이기 위해 the debuginfod-client 라이브러리는 부정적인 결과를 캐시에 저장하고 클라이언트 오브젝트는 기존 연결을 재사용할 수 있습니다.

(BZ#1933890)

Valgrind를 버전 3.17.0으로 업데이트

Valgrind 패키지가 3.17.0 버전으로 업데이트되었습니다. 주요 버그 수정 및 개선 사항은 다음과 같습니다.

  • Valgrind에서는 DWARF 버전 5 디버깅 형식을 읽을 수 있습니다.
  • Valgrind는 the debuginfod 서버에 대한 디버깅 쿼리를 지원합니다.
  • ARMv8.2 프로세서 명령은 부분적으로 지원됩니다.
  • POWER10 프로세서의 Power ISA v.3.1 명령은 부분적으로 지원됩니다.
  • IBM z14 프로세서 명령이 지원됩니다.
  • 대부분의 IBM z15 지침이 지원됩니다. Valgrind 툴 모음은 IBM z15 프로세서의 기타 지침 확장 기능 3과 벡터 개선 기능 2를 지원합니다. 그 결과 Valgrind는 GCC -march=z15 로 컴파일된 프로그램을 올바르게 실행하여 성능 및 디버깅 환경을 개선합니다.
  • track -fds=yes 옵션은 -q (--quiet)를 중시하고 표준 파일 설명자 stdin,stdoutstderr을 기본적으로 무시합니다. 표준 파일 설명자를 추적하려면 --track-fds=all 옵션을 사용합니다.
  • DHAT 도구에는 --mode=copy 및 --mode= ad-hoc 의 두 가지 새로운 작업 모드가 있습니다.

(BZ#1933891)

Dyninst가 버전 11.0.0으로 업데이트

Dyninst 패키지가 버전 11.0.0으로 업데이트되었습니다. 주요 버그 수정 및 개선 사항은 다음과 같습니다.

  • debuginfod 서버 및 분리된ebuginfo 파일 가져오기를 지원합니다.
  • RPM(프로세스 연결 테이블) 스텁에 대한 간접 호출 감지 개선.
  • 향상된 C++ 이름 분리.
  • 코드를 내보내는 동안 메모리 누수가 고정되었습니다.

(BZ#1933893)

IBM POWER10의 GDB에서 DAWR 기능 개선

이번 개선된 기능을 통해 IBM POWER10 프로세서의 GDB에 새로운 하드웨어 워치포인트 기능이 활성화되었습니다. 예를 들어 DAWR/DAWRX 레지스터 세트가 추가되었습니다.

(BZ#1854784)

GCC Toolset 11: GDB를 버전 10.2로 업데이트

GCC Toolset 11에서는 GDB 패키지가 버전 10.2로 업데이트되었습니다. 주요 버그 수정 및 개선 사항은 다음과 같습니다.

새로운 기능

  • 이 기능을 지원하는 아키텍처에서 다중 스레드 기호 로드가 기본적으로 활성화됩니다. 이러한 변경으로 여러 기호가 있는 프로그램에 더 나은 성능을 제공합니다.
  • 텍스트 사용자 인터페이스(TUI) 창을 수평으로 정렬할 수 있습니다.
  • GDB는 여러 대상 연결 디버깅을 동시에 지원하지만, 이 지원은 실험적이며 제한적입니다. 예를 들어 각 유추를 다른 시스템에서 실행되는 다른 원격 서버에 연결하거나 유추형 하나를 사용하여 로컬 네이티브 프로세스 또는 코어 덤프 또는 기타 프로세스를 디버깅할 수 있습니다.

새로운 명령과 개선된 명령

  • 새로운 새 레이아웃 이름 창 가중치 [창 가중치 ] 명령은 새 텍스트 사용자 인터페이스(TUI) 레이아웃을 생성하며 레이아웃 이름 및 표시되는 창을 지정할 수도 있습니다.
  • 향상된 alias [-a] [--] alias = command [default-args] 명령은 새 별칭을 만들 때 기본 인수를 지정할 수 있습니다.
  • exec-file-mismatch를 설정하고 exec-file-mismatch 명령을 설정하고 새 exec-file-mismatch 옵션을 표시합니다. GDB가 실행 중인 프로세스에 연결할 때 이 옵션은 GDB에서 로드한 현재 실행 파일 및 프로세스를 시작하는 데 사용되는 실행 파일 간의 불일치가 감지되는 시기를 GDB에서 반응하는 방법을 제어합니다.

Python API

  • gdb.register_window_type 함수는 Python에서 새로운 TUI 창을 구현합니다.
  • 이제 동적 유형을 쿼리할 수 있습니다. gdb.Type 클래스의 인스턴스는 새 부울 특성 동적 을 가질 수 있으며 gdb.Type.sizeof 속성의 값은 동적 유형에 대해 None 이 될 수 있습니다. Type.fields() 가 동적 유형의 필드를 반환하는 경우 비트포 속성의 값은 None 이 될 수 있습니다.
  • 새로운 gdb.COMMAND_TUI 상수는 Python 명령을 TUI 도움말 클래스의 구성원으로 등록합니다.
  • gdb.Pendingframe.architecture() 메서드는 보류 중인 프레임의 아키텍처를 검색합니다.
  • 새로운 gdb.Architecture.registers 메서드는 gdb.RegisterDescriptorIterator 개체인 gdb.RegisterDescriptor 개체를 반환합니다. 이러한 개체는 레지스터의 값을 제공하지 않지만 어떤 레지스터가 아키텍처에 사용 가능한지 이해하는 데 도움이 됩니다.
  • gdb.Architecture.register_groups 메서드는 gdb.RegisterGroupIterator 개체인 gdb.RegisterGroup Iterator 오브젝트를 반환합니다. 이러한 개체는 아키텍처에 사용할 수 있는 레지스터 그룹을 이해하는 데 도움이 됩니다.

(BZ#1954332)

GCC Toolset 11: SystemTap 버전 4.5로 업데이트

GCC Toolset 11에서는 SystemTap 패키지가 버전 4.5로 업데이트되었습니다. 주요 버그 수정 및 개선 사항은 다음과 같습니다.

  • 이제 32비트 부동 소수점 변수가 자동으로 이중 변수로 확장되므로 $context 변수로 직접 액세스할 수 있습니다.
  • 열거 값은 이제 $context 변수로 액세스할 수 있습니다.
  • BPF uconversions 탭 세트가 확장되었으며 이제 사용자 공간의 값(예: user_long_error())에 더 많은 tapset 함수가 포함되어 있습니다.
  • 대규모 서버에서 안정적인 운영을 제공하기 위해 동시성 제어가 크게 개선되었습니다.

자세한 내용은 업스트림 SystemTap 4.5 릴리스 노트 를 참조하십시오.

(BZ#1957944)

GCC Toolset 11: elfutils 를 버전 0.185로 업데이트

GCC Toolset 11에서는 elfutils 패키지가 버전 0.185로 업데이트되었습니다. 주요 버그 수정 및 개선 사항은 다음과 같습니다.

  • 이제 eu-elflinteu-readelf 툴은 ELF 섹션에서 SHF_GNU_RETAINSHT_X86_64_UNWIND 플래그를 인식하고 표시합니다.
  • DEBUGINFOD_SONAME 매크로가 to debuginfod.h 에 추가되었습니다. 이 매크로는 dlopen 함수와 함께 사용하여 애플리케이션에서 동적으로 libdebuginfod.so 라이브러리를 로드할 수 있습니다.
  • 새 function debuginfod_set_verbose_fd 가 the debuginfod-client 라이브러리에 추가되었습니다. 이 함수는 자세한 출력을 별도의 파일로 리디렉션하여 the debuginfod_find_* 쿼리 기능을 향상시킵니다.
  • 이제 DEBUGINFOD_VERBOSE 환경 변수를 설정하면 the debuginfod 클라이언트가 연결되는 서버 및 해당 서버의 HTTP 응답에 대한 자세한 정보가 표시됩니다.
  • The debuginfod 서버는 새로운 스레드 사용 지표와 보다 자세한 오류 지표를 제공하여 디버그info d 서버에서 실행되는 프로세스를 더 쉽게 검사할 수 있습니다.
  • 이제 libdw 라이브러리에서 DW_FORM_indirect 위치 값을 투명하게 처리하여 dwarf_whatform 함수에서 특성의 실제 FORM을 반환할 수 있습니다.
  • The debuginfod-client 라이브러리는 이제 캐시에 부정적인 결과를 저장하고 클라이언트 개체는 기존 연결을 재사용할 수 있습니다. 이렇게 하면 라이브러리를 사용할 때 불필요한 네트워크 트래픽이 방지됩니다.

(BZ#1957225)

GCC Toolset 11: Valgrind를 버전 3.17.0으로 업데이트

GCC Toolset 11에서는 Valgrind 패키지가 3.17.0 버전으로 업데이트되었습니다. 주요 버그 수정 및 개선 사항은 다음과 같습니다.

  • Valgrind에서 DWARF 버전 5 디버깅 형식을 읽을 수 있습니다.
  • Valgrind에서는 이제 debuginfod 서버에 대한 디버깅 쿼리를 지원합니다.
  • Valgrind에서는 ARMv8.2 프로세서 명령을 부분적으로 지원합니다.
  • Valgrind에서는 이제 IBM z14 프로세서 명령을 지원합니다.
  • Valgrind에서는 POWER10 프로세서의 Power ISA v.3.1 명령을 부분적으로 지원합니다.
  • track -fds=yes 옵션은 이제 -q (--quiet)를 준수하고 표준 파일 설명자 stdin,stdoutstderr을 기본적으로 무시합니다. 표준 파일 설명자를 추적하려면 --track-fds=all 옵션을 사용합니다.
  • DHAT 도구에는 --mode=copy 및 --mode= ad-hoc 의 두 가지 새로운 작업 모드가 있습니다.

(BZ#1957226)

GCC Toolset 11: Dyninst가 버전 11.0.0으로 업데이트

GCC Toolset 11에서는 Dyninst 패키지가 버전 11.0.0으로 업데이트되었습니다. 주요 버그 수정 및 개선 사항은 다음과 같습니다.

  • debuginfod 서버 및 분리된ebuginfo 파일 가져오기를 지원합니다.
  • RPM(프로세스 연결 테이블) 스텁에 대한 간접 호출 감지 개선.
  • 향상된 C++ 이름 분리.
  • 코드를 내보내는 동안 메모리 누수가 고정되었습니다.

(BZ#1957942)

Fujitsu A64FX에 대한 PAPI 라이브러리 지원 추가

Fujitsu A64FX에 대한 PAPI 라이브러리 지원이 추가되었습니다. 이 기능을 사용하면 개발자가 하드웨어 통계를 수집할 수 있습니다.

(BZ#1908126)

PCP 패키지는 5.3.1로 업데이트되었습니다.

PCP(Performance Co-Pilot) 패키지가 버전 5.3.1로 업데이트되었습니다. 이 릴리스에는 버그 수정, 개선 사항 및 새로운 기능이 포함되어 있습니다. 주요 변경 사항은 다음과 같습니다.

  • 확장성 개선으로 인해 수백 개의 호스트(pmlogger 팜)에 대한 성능 지표를 중앙에서 기록하고 성능 규칙( pm ie 팜)을 사용한 자동 모니터링 기능을 지원합니다.
  • pmproxy 서비스 및 libpcp_web API 라이브러리에서 메모리 누수를 해결하고 계측과 새 지표를 pmproxy 에 추가했습니다.
  • 기록 소켓 통계를 위한 새로운 pcp-sss 툴.
  • pcp-htop 도구 개선 사항.
  • 더 높은 해상도 타임스탬프를 지원하는 유선 PCP 프로토콜의 확장.

(BZ#1922040)

grafana 패키지는 버전 7.5.9로 업데이트되었습니다.

grafana 패키지가 버전 7.5.9로 업데이트되었습니다. 주요 변경 사항은 다음과 같습니다.

  • 새로운 시계열 패널 (beta)
  • 새로운 파이 차트 패널 (beta)
  • Loki에 대한 경고 지원
  • 여러 새로운 쿼리 변환

자세한 내용은 Grafana v7.4의 새로운 기능,Grafana v 7.5의 새로운 기능 등을 참조하십시오.

(BZ#1921191)

grafana-pcp 패키지가 3.1.0으로 업데이트되었습니다.

grafana-pcp 패키지가 버전 3.1.0으로 업데이트되었습니다. 주요 변경 사항은 다음과 같습니다.

  • PCP(Performance Co-Pilot) 벡터 체크리스트 대시보드는 새로운 시계열 패널을 사용하고 그래프에 유닛을 표시하며 업데이트된 도움말 텍스트를 포함합니다.
  • PCP 벡터 호스트 개요 및 PCP 체크리스트 대시보드에 pmproxy URL 및 hostspec 변수 추가.
  • 모든 대시보드에는 데이터 소스 선택 항목이 표시됩니다.
  • 포함된 모든 대시보드를 읽기 전용으로 표시.
  • Grafana 8과의 호환성 추가.

(BZ#1921190)

Grafana-container 가 버전 7.5.9로 업데이트

rhel8/grafana 컨테이너 이미지는 Grafana를 제공합니다. 주요 변경 사항은 다음과 같습니다.

  • grafana 패키지가 이제 버전 7.5.9로 업데이트되었습니다.
  • grafana-pcp 패키지가 이제 3.1.0 버전으로 업데이트되었습니다.
  • 컨테이너에서 GF_INSTALL_PLUGINS 환경 변수를 지원하여 컨테이너 시작 시 사용자 지정 Grafana 플러그인을 설치합니다.

리베이스는 Red Hat Container Registry의 rhel8/grafana 이미지를 업데이트합니다.

이 컨테이너 이미지를 가져오려면 다음 명령을 실행합니다.

# podman pull registry.redhat.io/rhel8/grafana

(BZ#1971557)

PCP-container 가 버전 5.3.1로 업데이트

rhel8/pcp 컨테이너 이미지는 Performance Co-Pilot을 제공합니다. pcp-container 패키지가 버전 5.3.1으로 업그레이드되었습니다. 주요 변경 사항은 다음과 같습니다.

  • pcp 패키지가 버전 5.3.1으로 업데이트되었습니다.

리베이스는 Red Hat Container Registry의 rhel8/pcp 이미지를 업데이트합니다.

이 컨테이너 이미지를 가져오려면 다음 명령을 실행합니다.

# podman pull registry.redhat.io/rhel8/pcp

(BZ#1974912)

새로운 pcp-ss PCP 유틸리티 사용 가능

pcp-ss PCP 유틸리티는 pmdasockets(1) PMDA로 수집된 소켓 통계를 보고합니다. 명령은 많은 ss 명령줄 옵션 및 보고 형식과 호환됩니다. 또한 실시간 모드에서 로컬 또는 원격 모니터링의 이점과 이전에 기록된 PCP 아카이브의 기록 재생을 제공합니다.

(BZ#1879350)

PCP에서 사용 가능한 전력 소비 메트릭

새로운 pmda-denki 성능 지표 도메인 에이전트(PMDA)는 전력 소비와 관련된 지표를 보고합니다. 특히 다음 사항을 보고합니다.

  • 최근 Intel CPU에서 사용할 수 있는 RPL(평균 전원 제한) 판독값에 따른 소비 지표
  • 배터리를 사용하는 시스템에서 사용할 수 있는 배터리를 기반으로 하는 소비 메트릭

(BZ#1629455)