4.13. 컴파일러 및 개발 도구
glibc
최적화 데이터를 캡처하기 위한 새로운 명령
새로운 ld.so --list-diagnostics
명령은 IFUNC 선택 및
구성과 같은 glibc 최적화 결정에 영향을 미치는 데이터를 단일 머신에서 읽을 수 있는 파일로 캡처합니다.
glibc
-hwcaps
glibc
문자열 함수가 Fujitsu A64FX에 최적화되었습니다.
이번 업데이트를 통해 glibc
문자열 함수는 A64FX CPU에서 처리량이 증가하고 대기 시간이 단축되었습니다.
(BZ#1929928)
12시간제의 새로운 UTF-8 로케일 en_US@ampm
이번 업데이트를 통해 이제 12시간제로 새로운 UTF-8 로케일 en_US@ampm
을 사용할 수 있습니다. 이 새로운 로케일은 LC_TIME
환경 변수를 사용하여 다른 로케일과 결합할 수 있습니다.
libffi
의 자체 수정 코드의 새로운 위치
이번 업데이트인 libffi
의 자체 수정 코드는 RHEL 8 커널의 기능을 활용하여 모든 파일 시스템과 관계없이 적합한 파일을 생성합니다. 그 결과 libffi
의 자체 수정 코드가 더 이상 파일 시스템의 일부를 안전하지 않게 만드는 데 의존하지 않습니다.
업데이트된 GCC Toolset 11
GCC Toolset 11은 최신 버전의 개발 툴을 제공하는 컴파일러 툴셋입니다. AppStream
리포지토리의 소프트웨어 컬렉션 형태로 애플리케이션 스트림으로 사용할 수 있습니다.
RHEL 8.6에서 도입된 주요 변경 사항은 다음과 같습니다.
- GCC 컴파일러가 버전 11.2.1로 업데이트되었습니다.
-
annobin
이 버전 10.23으로 업데이트되었습니다.
다음 도구 및 버전은 GCC Toolset 10에서 제공합니다.
툴 | 버전 |
---|---|
GCC | 11.2.1 |
GDB | 10.2 |
valgrind | 3.17.0 |
SystemTap | 4.5 |
Dyninst | 11.0.0 |
binutils | 2.36.1 |
elfutils | 0.185 |
dwz | 0.14 |
make | 4.3 |
strace | 5.13 |
ltrace | 0.7.91 |
annobin | 10.23 |
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 구성 요소는 두 개의 컨테이너 이미지에서 사용할 수 있습니다.
-
GCC 컴파일러, GDB 디버거 및
make
자동화 툴을 포함하는rhel8/gcc-toolset-11-toolchain
. -
SystemTap 및 Valgrind와 같은 성능 모니터링 툴을 포함하는
rhel8/gcc-toolset-11-perftools
.
컨테이너 이미지를 가져오려면 root로 다음 명령을 실행합니다.
# podman pull registry.redhat.io/<image_name>
GCC Toolset 11 컨테이너 이미지만 지원됩니다. 이전 GCC Toolset 버전의 컨테이너 이미지는 더 이상 사용되지 않습니다.
컨테이너 이미지에 대한 자세한 내용은 GCC Toolset 컨테이너 이미지 사용을 참조하십시오.
GDB 디스베이더는 새로운 arch14 명령어를 지원합니다.
이번 업데이트를 통해 GDB는 새로운 arch14 명령을 분리할 수 있습니다.
(BZ#2012818)
LLVM Toolset은 버전 13.0.1로 다시 실행됩니다.
LLVM Toolset이 13.0.1 버전으로 업그레이드되었습니다. 주요 변경 사항은 다음과 같습니다.
-
Clang은 이제 C++에서 C++ 및
__attribute__((musttail))
에서 문 속성[[clang::musttail]]
을 사용하여 보장된 tail 호출을 지원합니다. -
이제 Clang에서는 코드에서 예약된 식별자를 사용할 때 개발자에게 경고하는
-Wreserved-identifier
경고를 지원합니다. -
이제 Clang의
-Wshadow
플래그도 섀도 구조화된 바인딩을 확인합니다. -
Clang의
-Wextra
도Wnull-pointer-subtraction
을 의미합니다.
(BZ#2001133)
rust Toolset이 1.58.1로 업데이트되었습니다.
Rust Toolset
은 버전 1.58.1로 업데이트되었습니다. 주요 변경 사항은 다음과 같습니다.
-
Rust 컴파일러는 이제 2021년 언어 버전을 지원하고, 클로저트 캡처, 배열용
IntoIterator
, 새로운 Cargo 기능 확인자 등을 제공합니다. - 새로운 사용자 지정 프로필에 대한 Cargo 지원이 추가되었습니다.
- eight deduplicates 컴파일러 오류.
- 새로운 오픈 범위 패턴을 추가했습니다.
- 캡처된 식별자를 형식 문자열로 추가했습니다.
자세한 내용은 다음을 참조하십시오.
(BZ#2002883)
Go Toolset rebased to 버전 1.17.7
Go Toolset이 1.17.7 버전으로 업그레이드되었습니다. 주요 변경 사항은 다음과 같습니다.
- 슬라이스를 배열 포인터로 변환하는 옵션이 추가되었습니다.
- //go:build 행에 대한 지원을 추가했습니다.
- amd64의 함수 호출 성능 개선
- 함수 인수는 스택 추적에서 더 명확하게 포맷됩니다.
- 폐쇄를 포함하는 기능은 인라인화될 수 있습니다.
- x509 인증서 구문 분석에서 리소스 사용량 감소.
(BZ#2014088)
PCP
를 5.3.5에 다시 기반
pcp
패키지가 버전 5.3.5에 다시 기반되었습니다. 주요 변경 사항은 다음과 같습니다.
-
CPU 및 디스크 포화 상태에 대한 새
pmieconf(1)
규칙을 추가했습니다. -
pmproxy(1)
서비스의 안정성 및 확장성 개선. -
서비스 대기 시간 및 강력한
pmlogger(1)
서비스의 개선 사항. - 전력 전력과 관련된 새로운 성능 지표가 추가되었습니다.
-
pcp-htop(1)
유틸리티에 새 기능이 추가되었습니다. -
pcp-atop(1)
유틸리티에 새 기능이 추가되었습니다. - Nvidia GPU 지표가 업데이트되었습니다.
- 새로운 Linux 커널 KVM 및 네트워킹 지표가 추가되었습니다.
- 새 MongoDB 지표 에이전트가 추가되었습니다.
-
새 소켓 메트릭 에이전트 및
pcp-ss(1)
유틸리티를 추가했습니다. -
기본적으로
pmcd(1)
및pmproxy(1)
Avahi 서비스 광고를 비활성화합니다.
grafana
패키지는 버전 7.5.11로 재기반
grafana
패키지는 버전 7.5.11로 재기반했습니다. 주요 변경 사항은 다음과 같습니다.
-
새 데이터 프레임 형식을 지원하지 않는 패널의 이전 버전과 호환성을 위해 새로운
준비 시계열
변환을 추가했습니다.
3.2.0에 대한 Grafana -pcp
재기반
grafana-pcp
패키지가 버전 3.2.0으로 다시 작성되었습니다. 주요 변경 사항은 다음과 같습니다.
- PCP Redis에 대한 새 MS SQL 서버 대시보드를 추가했습니다.
- PCP 벡터 eBPF/BCC 개요 대시보드에서 빈 히스토그램 버킷의 가시성이 추가되었습니다.
-
PCP Redis의
metric()
기능이 모든 메트릭 이름을 반환하지 않은 버그가 수정되었습니다.
js-d3-flame-graph
4.0.7로 다시 시작
js-d3-flame-graph
패키지는 버전 4.0.7로 다시 작성되었습니다. 주요 변경 사항은 다음과 같습니다.
- 새로운 파란과 녹색 색상 체계를 추가했습니다.
- fire fire 그래프 컨텍스트를 표시하는 기능이 추가되었습니다.
PCP에서 사용 가능한 전력 소비 지표
새로운 pmda-denki
Performance Metrics Domain Agent(PMDA)는 전력 소비와 관련된 지표를 보고합니다. 구체적으로는 다음과 같이 보고합니다.
- 최신 Intel CPU에서 사용 가능한 RPL(Average Power Limit) 읽기를 기반으로 하는 사용량 지표
- 배터리가 있는 시스템에서 사용할 수 있는 배터리 방전을 기반으로 하는 사용량 지표
(BZ#1629455)
새 모듈: log4j:2
이제 AppStream 리포지토리에서 새 log4j:2
모듈을 사용할 수 있습니다. 이 모듈에는 다양한 출력 대상으로 로그 문을 출력할 수 있는 Apache Log4j 2
, Java 로깅 유틸리티 및 라이브러리가 포함되어 있습니다.
Log4j 2
는 Log4j 1
에 비해 상당한 개선 사항을 제공합니다. 특히 Log4j 2
는 Logback
프레임워크의 개선 사항을 소개하고 Logback
아키텍처의 몇 가지 고유한 문제를 해결합니다.
log4j:2
모듈 스트림을 설치하려면 다음을 사용합니다.
# yum module install log4j:2
(BZ#1937468)