4.12. 컴파일러 및 개발 도구
Go Toolset을 버전 1.16.7로 업데이트
Go Toolset이 1.16.7 버전으로 업그레이드되었습니다. 주요 변경 사항은 다음과 같습니다.
-
GO111MODULE
환경 변수가 기본적으로on
으로 설정됩니다. 이 설정을 되돌리려면GO111MODULE
을auto
로 변경합니다. - Go 링커는 더 적은 리소스를 사용하고 코드의 견고성 및 유지 관리 효율성을 향상시킵니다. 이는 지원되는 모든 아키텍처 및 운영 체제에 적용됩니다.
-
새로운
포함
패키지를 사용하면 프로그램을 컴파일하는 동안 포함된 파일에 액세스할 수 있습니다. -
the
io/ioutil
패키지의 모든 기능이 theio
및os
패키지로 이동되었습니다. 여전히 useio/ioutil
을 사용할 수 있지만, theio
및os
패키지는 더 나은 정의를 제공합니다. - 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 컨테이너에 대한 릴리스 노트를 참조하십시오.
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 및
X 버전의 몇 가지 새로운 기능이 지원됩니다. 예를 들면 다음과 같습니다.-std=gnu2x
옵션으로 향후 C2-
표준 속성이 지원됩니다.
-
__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 릴리스 노트 를 참조하십시오.
elfutils
를 버전 0.185로 다시 기반
elfutils
패키지가 버전 0.185로 업데이트되었습니다. 주요 버그 수정 및 개선 사항은 다음과 같습니다.
-
이제
eu-elflint
및eu-readelf
툴은 ELF 섹션에서SHF_GNU_RETAIN
및SHT_X86_64_UNWIND
플래그를 인식하고 표시합니다. -
DEBUGINFOD_SONAME
매크로가 todebuginfod.h
에 추가되었습니다. 이 매크로는dlopen
함수와 함께 사용하여 애플리케이션에서 동적으로libdebuginfod.so
라이브러리를 로드할 수 있습니다. -
새 function
debuginfod_set_verbose_fd
가 thedebuginfod-client
라이브러리에 추가되었습니다. 이 함수는 자세한 출력을 별도의 파일로 리디렉션하여 thedebuginfod_find_*
쿼리 기능을 향상시킵니다. -
이제
DEBUGINFOD_VERBOSE
환경 변수를 설정하면 thedebuginfod
클라이언트가 연결되는 서버 및 해당 서버의 HTTP 응답에 대한 자세한 정보가 표시됩니다. -
The
debuginfod
서버는 새로운 스레드 사용 지표와 보다 자세한 오류 지표를 제공하여 디버그infod
서버에서 실행되는 프로세스를 더 쉽게 검사할 수 있습니다. -
이제
libdw
라이브러리에서DW_FORM_indirect
위치 값을 투명하게 처리하여dwarf_whatform 함수에서
특성의 실제 FORM을 반환할 수 있습니다. -
네트워크 트래픽을 줄이기 위해 the
debuginfod-client
라이브러리는 부정적인 결과를 캐시에 저장하고 클라이언트 오브젝트는 기존 연결을 재사용할 수 있습니다.
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
,stdout
및stderr을
기본적으로 무시합니다. 표준 파일 설명자를 추적하려면--track-fds=all
옵션을 사용합니다. -
DHAT 도구에는
--mode=copy 및
의 두 가지 새로운 작업 모드가 있습니다.--mode=
ad-hoc
Dyninst가 버전 11.0.0으로 업데이트
Dyninst 패키지가 버전 11.0.0으로 업데이트되었습니다. 주요 버그 수정 및 개선 사항은 다음과 같습니다.
-
debuginfod
서버 및 분리된ebuginfo파일
가져오기를 지원합니다. - RPM(프로세스 연결 테이블) 스텁에 대한 간접 호출 감지 개선.
- 향상된 C++ 이름 분리.
- 코드를 내보내는 동안 메모리 누수가 고정되었습니다.
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 릴리스 노트 를 참조하십시오.
GCC Toolset 11: elfutils
를 버전 0.185로 업데이트
GCC Toolset 11에서는 elfutils
패키지가 버전 0.185로 업데이트되었습니다. 주요 버그 수정 및 개선 사항은 다음과 같습니다.
-
이제
eu-elflint
및eu-readelf
툴은 ELF 섹션에서SHF_GNU_RETAIN
및SHT_X86_64_UNWIND
플래그를 인식하고 표시합니다. -
DEBUGINFOD_SONAME
매크로가 todebuginfod.h
에 추가되었습니다. 이 매크로는dlopen
함수와 함께 사용하여 애플리케이션에서 동적으로libdebuginfod.so
라이브러리를 로드할 수 있습니다. -
새 function
debuginfod_set_verbose_fd
가 thedebuginfod-client
라이브러리에 추가되었습니다. 이 함수는 자세한 출력을 별도의 파일로 리디렉션하여 thedebuginfod_find_*
쿼리 기능을 향상시킵니다. -
이제
DEBUGINFOD_VERBOSE
환경 변수를 설정하면 thedebuginfod
클라이언트가 연결되는 서버 및 해당 서버의 HTTP 응답에 대한 자세한 정보가 표시됩니다. -
The
debuginfod
서버는 새로운 스레드 사용 지표와 보다 자세한 오류 지표를 제공하여 디버그infod
서버에서 실행되는 프로세스를 더 쉽게 검사할 수 있습니다. -
이제
libdw
라이브러리에서DW_FORM_indirect
위치 값을 투명하게 처리하여dwarf_whatform 함수에서
특성의 실제 FORM을 반환할 수 있습니다. -
The
debuginfod-client
라이브러리는 이제 캐시에 부정적인 결과를 저장하고 클라이언트 개체는 기존 연결을 재사용할 수 있습니다. 이렇게 하면 라이브러리를 사용할 때 불필요한 네트워크 트래픽이 방지됩니다.
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
,stdout
및stderr을
기본적으로 무시합니다. 표준 파일 설명자를 추적하려면--track-fds=all
옵션을 사용합니다. -
DHAT 도구에는
--mode=copy 및
의 두 가지 새로운 작업 모드가 있습니다.--mode=
ad-hoc
GCC Toolset 11: Dyninst가 버전 11.0.0으로 업데이트
GCC Toolset 11에서는 Dyninst 패키지가 버전 11.0.0으로 업데이트되었습니다. 주요 버그 수정 및 개선 사항은 다음과 같습니다.
-
debuginfod
서버 및 분리된ebuginfo파일
가져오기를 지원합니다. - RPM(프로세스 연결 테이블) 스텁에 대한 간접 호출 감지 개선.
- 향상된 C++ 이름 분리.
- 코드를 내보내는 동안 메모리 누수가 고정되었습니다.
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 프로토콜의 확장.
grafana
패키지는 버전 7.5.9로 업데이트되었습니다.
grafana
패키지가 버전 7.5.9로 업데이트되었습니다. 주요 변경 사항은 다음과 같습니다.
- 새로운 시계열 패널 (beta)
- 새로운 파이 차트 패널 (beta)
- Loki에 대한 경고 지원
- 여러 새로운 쿼리 변환
자세한 내용은 Grafana v7.4의 새로운 기능,Grafana v 7.5의 새로운 기능 등을 참조하십시오.
grafana-pcp
패키지가 3.1.0으로 업데이트되었습니다.
grafana-pcp
패키지가 버전 3.1.0으로 업데이트되었습니다. 주요 변경 사항은 다음과 같습니다.
- PCP(Performance Co-Pilot) 벡터 체크리스트 대시보드는 새로운 시계열 패널을 사용하고 그래프에 유닛을 표시하며 업데이트된 도움말 텍스트를 포함합니다.
-
PCP 벡터
호스트 개요 및 PCP 체크리스트 대시보드에
변수 추가.pmproxy
URL 및 hostspec - 모든 대시보드에는 데이터 소스 선택 항목이 표시됩니다.
- 포함된 모든 대시보드를 읽기 전용으로 표시.
- Grafana 8과의 호환성 추가.
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
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
새로운 pcp-ss
PCP 유틸리티 사용 가능
pcp-ss
PCP 유틸리티는 pmdasockets(1)
PMDA로 수집된 소켓 통계를 보고합니다. 명령은 많은 ss
명령줄 옵션 및 보고 형식과 호환됩니다. 또한 실시간 모드에서 로컬 또는 원격 모니터링의 이점과 이전에 기록된 PCP 아카이브의 기록 재생을 제공합니다.
PCP에서 사용 가능한 전력 소비 메트릭
새로운 pmda-denki
성능 지표 도메인 에이전트(PMDA)는 전력 소비와 관련된 지표를 보고합니다. 특히 다음 사항을 보고합니다.
- 최근 Intel CPU에서 사용할 수 있는 RPL(평균 전원 제한) 판독값에 따른 소비 지표
- 배터리를 사용하는 시스템에서 사용할 수 있는 배터리를 기반으로 하는 소비 메트릭
(BZ#1629455)