6.14. 컴파일러 및 개발 도구
RHEL 10, GCC 14.2 도입
RHEL 10은 GNU 컴파일러 컬렉션(GCC) 버전 14.2와 함께 배포됩니다.
GCC 13 이후 주요 변경 사항은 다음과 같습니다.
- 최적화 및 진단 개선
-
강화 플래그 세트를 가능하게 하는 새로운
-fhardened
표준 옵션 -
새로운
-fharden-control-flow-redundancy
옵션을 사용하여 제어를 기능 중으로 전송하는 공격을 탐지합니다. -
함수 및 변수의 속성을 스택 스크럽을 제어하는 새로운
strub
유형 속성 -
특정
mem*
기능의 인라인 확장을 강제 적용하는 새로운-finline-stringops
옵션 - 새로운 OpenMP 5.1, 5.2 및 6.0 기능 지원
- 몇 가지 새로운 C23 기능
- 여러 가지 새로운 C++23 및 C++26 기능
- 몇 가지 해결된 C++ 결함 보고서
- C++ 라이브러리의 C++20, C++23 및 C++26에 대한 새롭고 개선된 실험 지원
- 64비트 ARM 아키텍처의 새 CPU 지원
- 64비트 Intel 아키텍처의 여러 새로운 명령 세트 아키텍처(ISA) 확장(예: AVX10.1, AVX-VNNI-INT16, SHA512, SM4)
- GCC의 정적 분석기에서 새로운 경고
- 특정 경고가 오류로 변경되었습니다. 자세한 내용은 GCC 14 포트로 포트를참조하십시오.
- 다양한 버그 수정
GCC 14의 변경 사항에 대한 자세한 내용은 업스트림 GCC 릴리스 노트 를 참조하십시오.
GCC 14의 기본값은 x86-64-v3입니다.
RHEL 10의 GCC 14는 기본적으로 x86-64-v3 마이크로 아키텍처 수준입니다. 이 수준은 AVX 및 AVX2 명령 세트 및 fused multiply-add (FMA) 명령 세트와 같은 특정 기능을 기본적으로 활성화합니다. 자세한 내용은 관련 문서를 참조하십시오.
GCC는 IBM Power Systems에서 기본적으로 IEEE128
부동 소수점 형식을 사용합니다.
RHEL10에서 GCC는 이전 소프트웨어 전용 IBM-DOUBLE-DOUBLE
코드 대신 IBM Power Systems의 긴 두 배 부동 소수점 숫자 모두에 대해 기본적으로 IEEE128
부동 소수점 형식을 사용합니다. 결과적으로 긴 이중 부동 소수점 숫자를 사용하여 계산을 수행하는 C 또는 C++ 코드에서 성능 향상을 확인할 수 있습니다.As a result, you can notice performance improvements in C or C++ code that performs computations by using long double floating point numbers.
이 128비트 긴 이중 부동 소수점 ABI는 RHEL 8 및 이전 버전에서 사용되는 부동 소수점 ABI와 호환되지 않습니다. IEEE128
작업을 수행하기 위한 하드웨어 지침은 IBM POWER9 이후 사용할 수 있습니다.
Jira:RHEL-24760[1]
GCC 14는 FUJITSU-MONAKA CPU를 지원합니다.
RHEL 10.0부터 GNU 컴파일러 컬렉션(GCC)은 FUJITSU-MONAKA를 지원합니다. 결과적으로 -mcpu=fujitsu-monaka
명령줄 옵션을 사용하여 이 플랫폼에 대한 코드를 생성할 수 있습니다.
Jira:RHEL-65765[1]
GCC 14는 POWER 11 아키텍처를 지원합니다.
RHEL 10.0부터 GNU 컴파일러 컬렉션(GCC)은 POWER 11 아키텍처를 지원합니다. 결과적으로 -mcpu=power11
명령줄 옵션을 사용하여 POWER 11에 대한 코드를 생성할 수 있습니다.
Jira:RHEL-24762[1]
RHEL 10에는 annobin
버전 12.55가 포함되어 있습니다.
RHEL 10은 annobin
버전 12.55와 함께 배포됩니다. 이전에 사용 가능한 버전 12.32에 대한 주요 변경 사항은 다음과 같습니다.
- GCC, Clang, LLVM 및 Go 컴파일러의 최신 버전을 빌드하고 작업하기 위한 업데이트된 툴
-
GCC 명령줄 옵션
-Wimplicit-int
및 -Wimplicit-function-
declicit 옵션 사용을 위한 기록 및 테스트 - LLVM에 대한 지원 개선
- 새로운 테스트
- 더 이상 사용되지 않는 OpenSSL 엔진 코드가 사용되는지 확인하는 새로운 검사
-
여러
--debug-rpm
옵션이 지원됨 - 다양한 버그 수정
Jira:RHEL-526[1]
RHEL 10에는 binutils
버전 2.41이 포함되어 있습니다.
RHEL 10은 binutils
버전 2.41과 함께 배포됩니다. 이전에 사용 가능한 버전 2.40에 대한 주요 변경 사항은 다음과 같습니다.
-
binutils
툴은 64비트 Intel 및 ARM 아키텍처의 아키텍처 확장을 지원합니다. -
링커에서
--remap-inputs <PATTERN>=<FILE
> 명령줄 옵션을 사용하여 <PATTERN
>과 일치하는 입력 파일을 <FILE
>로 바꿉니다. 또한--remap-inputs-file=<FILE
> 옵션을 사용하여 이러한 재지정 지시문이 포함된 파일을 지정할 수 있습니다. -
ELF 대상의 경우 링커 명령줄 옵션
--print-map-locals
를 사용하여 링커 맵에 로컬 기호를 포함할 수 있습니다. -
대부분의 ELF 기반 대상의 경우
--enable-linker-version
옵션을 사용하여 링커 버전을.comment
섹션에 문자열로 삽입할 수 있습니다. -
링커 스크립트 구문에는 출력 섹션인
ASCIZ "<string>"
에 대한 새 명령이 있으며 현재 위치에 0으로 종료되는 문자열을 삽입합니다. -
새로운
-z nosectionheader
linker 명령줄 옵션을 사용하여 ELF 섹션 헤더를 생략할 수 있습니다.
Jira:RHELDOCS-18761[1]
GCC는 Power 10 이상에 대해 ROP 보호 명령을 생성할 수 있습니다.
IBM Power 10 이상 플랫폼은 프로그램의 취약점을 악용하는 데 사용되는 일반적인 프리미티브 프로그래밍 (ROP)에 대한 보호 기능을 제공합니다. 이번 개선된 기능을 통해 {{-mrop-protect}}
플래그를 사용할 수 있으며 GCC는 이러한 플랫폼에 대한 ROP 보호 지침을 생성합니다. 런타임 지원이 없기 때문에 생성된 명령은 현재 영향을 받지 않으며 CPU는 이를 작업(NOP) 지침으로 취급합니다. 그러나 개발자는 {{-mrop-protect}}
플래그를 사용하여 ROP 보호 메커니즘을 통합하여 향후 이러한 플랫폼에서 ROP 보호를 사용하면 애플리케이션이 더 안전합니다.
Jira:RHEL-36791[1]
binutils
에서 IBM Z 명령 세트의 arch15
확장을 지원
이 향상된 기능을 통해 binutils
는 IBM Z 플랫폼에서 arch15
확장 CPU를 지원합니다. 개발자는 어셈블러 소스 파일에서 arch15
확장에서 제공하는 새로운 기능을 사용하거나 업데이트된 컴파일러를 컴파일된 프로그램에서도 사용할 수 있습니다. 이로 인해 더 작고 빠른 프로그램이 발생할 수 있습니다.
Jira:RHEL-56896[1]
binutils
의 ld
링커는 --section-ordering-file
옵션을 지원합니다.
이제 새로운 --section-ordering-file
명령줄 옵션을 사용할 수 있습니다. ld.bfd
, 기본 시스템 링러, 코드 또는 데이터의 그룹 섹션 서로 근접하여 이점을 얻을 수 있습니다.
이 기능을 사용하면 캐시 누락을 줄임으로써 프로그램 성능이 향상됩니다. 프로파일링 도구를 사용하여 시간이 지남에 따라 프로그램의 코드 사용을 분석한 다음 실행 이미지의 코드 그룹을 개선할 수 있습니다. 결과적으로 메모리에 있는 프로그램 레이아웃을 더 많이 제어할 수 있습니다.
section-ordering-file
옵션은 이미 이 기능을 제공하는 gold
및 lld
링커와의 호환성을 향상시킵니다.
자세한 내용은 블로그 게시물 링커 섹션 순서를 지정하는 실용적인 가이드 를 참조하십시오.
glibc
는 Intel APX 지원 함수의 동적 연결 지원
호환되지 않는 동적 링커 trampoline은 Intel APX(Advanced Performance Extensions) 애플리케이션의 비호환성 잠재적 소스로 확인되었습니다. 이 문제를 해결하려면 BIND_NOW
실행 파일을 사용하거나 표준 호출 규칙만 사용할 수 있었습니다. 이번 업데이트를 통해 glibc
의 동적 링커는 APX 관련 레지스터를 유지합니다.
이러한 변경으로 인해 스택 상단 이외의 추가 공간이 필요합니다. 이 공간을 엄격하게 제한하는 사용자는 스택 제한을 조정하거나 평가해야 할 수 있습니다.
RHEL 10에서는 glibc
버전 2.39를 제공합니다.
RHEL 10에는 GNU C 라이브러리(glibc
) 버전 2.39가 도입되었습니다.
glibc
에서 AMD Cryostat 3 및 4 성능 최적화
이전에는 AMD Cryostat 3 및 4 프로세서가 가장 최적의 선택과 관계없이 memcpy
및 memmove
라이브러리 루틴의 Enhanced Repeat Move String (ERMS) 버전을 사용하는 경우가 있었습니다. 이 업데이트에서 glibc
, AMD Cryostat 3 및 Cryostat 4 프로세서는 가장 최적의 버전의 memcpy
및 memmove
를 사용합니다.
RHEL 10은 GDB 버전 14.2를 제공합니다.
GDB가 14.2 버전으로 업데이트되었습니다. 다음 단락에서는 GDB 12.1 이후 주요 변경 사항을 나열합니다.
일반:
-
이제
info Cryo
stats 명령에y-
state와 같이 비활성화된 Cryostat의 활성화된 Cryostat 위치가 표시됩니다. -
ELF(
ELFCOMPRESS_ZSTD
)로 압축된 디버그 섹션에 대한 지원이 추가되었습니다. -
텍스트 사용자 인터페이스(TUI)는 기본적으로 현재 위치 표시기에 의해 강조 표시된 소스 및 어셈블리 코드를 더 이상 스타일링하지 않습니다. styling을 다시 활성화하려면 새 명령
set style tui-current-position
를 사용합니다. -
새로운
$_inferior_thread_count
사용 편의성 변수에는 현재 유추의 라이브 스레드 수가 포함됩니다. -
여러 코드 위치가 있는 Cryostat의 경우 GDB는 이제 <
breakpoint_number>.<location_number
> 구문을 사용하여 코드 위치를 출력합니다. -
Cryostat가 적을 때 GDB는
$_hit_bpnum
및$_hit_locno
편의성 변수를 적중 Cryostat 번호 및 코드 위치 번호로 설정합니다. 이제 disable $_hit_bpnum 명령을 사용하여 마지막 hit Cryostat를 비활성화하거나disable $_hit_
할 수 있습니다.bpnum
.$_hit_locno 명령을 사용하여 특정 Cryostat 코드 위치만 비활성화 -
NO_COLOR
환경 변수에 대한 지원이 추가되었습니다. - 64비트보다 큰 정수 유형에 대한 지원이 추가되었습니다.
-
다중 대상 기능 구성에 새 명령을 사용하여 원격 대상 기능 세트를 구성할 수 있습니다(명령에 원격 <
name>-packet 설정
참조 및표시 원격 <name>-packet
표시). - Debugger Adapter Protocol에 대한 지원이 추가되었습니다.
-
이제 new
inferior
키워드를 사용하여 Cryostat를 유추할 수 있습니다(명령의중단
또는감시
참조). -
이제 새로운
$_shell()
편의성 함수를 사용하여 표현식 평가 중에 쉘 명령을 실행할 수 있습니다.
기존 명령 변경:
중단
,감시
-
break
및watch
명령에스레드
또는작업
키워드를 여러 번 사용하면 키워드의 마지막 인스턴스의 스레드 또는 작업 ID를 사용하는 대신 오류가 발생합니다. -
동일한
break
또는watch
명령에스레드
,작업
및
유추 키워드 중 하나를 사용하는 것이 이제 유효하지 않습니다.
-
printf
,dprintf
-
이제
Cryo
stat및 d
Cryostat 명령은 출력 명령과 동일한 방식으로 표현식을 포맷하는%V
출력 형식을 허용합니다.명령 다음에 대괄호
[…]
에서 추가 출력 옵션을 사용하여 출력 형식을 수정할 수도 있습니다(예:"%V[-array-indexes on]", <array>
).
-
이제
list
-
이제
.
인수를 사용하여 현재 프레임에서 실행 지점 주위에 위치를 인쇄하거나 유추가 아직 시작되지 않은 경우main()
함수의 시작 부분에 있는 위치를 출력할 수 있습니다. -
파일에 있는 것보다 더 많은 소스 행을 나열하려고 하면 이제 사용자를
.
인수를 참조하는 경고가 발행됩니다.
-
이제
사용자 정의 문서
- 이제 사용자 정의 별칭을 문서화할 수 있습니다.
새 명령:
-
print nibbles [on|off](기본값:
off
)를 설정하고출력 니블
을 표시 -print/t
명령이 4비트(nibbles) 그룹에 바이너리 값을 표시할지 여부를 제어합니다. -
debug infcall [on|off] (default:
off
)를 설정하고debug infcall을 표시
- 유추 함수 호출에 대한 추가 디버그 메시지를 출력합니다. -
debug solib [on|off](기본값:
off
)를 설정하고debug solib를 표시
- 공유 라이브러리 처리에 대한 추가 디버그 메시지를 출력합니다. -
출력 문자 <LIMIT>를 설정하고
출력 문자
,출력 - 문자 <LIMIT
> - 문자열 인쇄 수를 제어합니다. -
debug Cryostat [on|off](기본값:
off
)를 설정하고디버그 Cryostat를 표시
- 번호 삽입 및 제거에 대한 추가 디버그 메시지를 출력합니다. -
Maintenance print record-instruction [N ]
- 지정된 명령에 대해 기록된 정보를 출력합니다. -
Maintenance info frame-unwinders
- 현재 우선 순위 순서로 적용되는 프레임 unwinders를 나열합니다(가장 높은 우선 순위). -
유지 관리 wait-for-index-cache
- 인덱스 캐시에 대한 모든 보류 중인 쓰기가 완료될 때까지 기다립니다. -
info main
- 프로그램에 대한 진입점을 식별하기 위해 기본 기호에 대한 정보를 출력합니다. -
tui 마우스 이벤트 [
on
|off
](기본값: )를 설정하고tui 마우스 이벤트 표시
- 마우스 클릭 이벤트가 TUI 및 Python 확장(사용 시) 또는 터미널(사용 시)으로 전송되는지 여부를 제어합니다.
MIT(Machine Interface) 변경:
- 버전 1이 삭제되었습니다.
-
이제 Multus는 역방향 실행 기록이 소진될 때
no-history
를 보고합니다. -
thread
및task
Cryostat 필드는-break-insert
명령의 출력에서 더 이상 두 번 보고되지 않습니다. - 스레드별 Cryostat는 존재하지 않는 스레드 ID에서 더 이상 만들 수 없습니다.
-
-stack-list-arguments
,-stack-list-locals
,-stack-list-variables
,-var-list- children
명령에 대한--simple-values
인수는 이제 대상이 간단한 경우 참조 유형을 간단한 것으로 간주합니다. -
이제
-break-insert
명령에서 새-g thread-group-id
옵션을 허용하여 유추별 Cryostat를 만들 수 있습니다. -
build-created 알림 및
-break-insert
명령의 출력은 이제 기본 Cryostat 및 각 Cryostat 위치에 대한 선택적 유추 필드를 포함할 수 있습니다. -
이제 Cryostat
-hit
중지 이유를 나타내는 동기화 레코드에는 다중 위치 Cryostat의 경우 코드 위치 번호를 제공하는 선택적 필드locno
가 포함됩니다.
GDB Python API의 변경 사항:
이벤트
-
A new
gdb.ThreadExitedEvent
event. -
progspace
및reload
속성이 있는ExecutableChangedEvent
오브젝트를 내보내는 새로운gdb.executable_changed
이벤트 레지스트리입니다. -
NewProgpspaceEvent
및FreeProgspaceEvent
이벤트 유형을 내보내는 새로운gdb.events.new_progspace
및gdb.events.free_progspace
이벤트 레지스트리입니다. 이러한 두 이벤트 유형에는 GDB에 추가되거나 제거되는gdb.Progspace
프로그램 공간을 지정하는 단일 속성progspace
가 있습니다.
-
A new
gdb.unwinder.Unwinder
클래스-
이제
name
속성이 읽기 전용입니다. -
__init__
함수의 name 인수는str
유형이어야 합니다. 그렇지 않으면TypeError
가 발생합니다. -
enabled
속성은 이제bool
유형만 허용합니다.
-
이제
gdb.PendingFrame
클래스-
새로운 방법:
name
,is_valid
,pc
,language
,find_sal
,block
, andfunction
, which mirror similar methods of thegdb.Frame
class. -
create_unwind_info
함수의frame-id
인수는 이제pc
,sp
및특수
특성에 대한 정수 또는gdb.Value
개체가 될 수 있습니다.
-
새로운 방법:
-
gdb.PendingFrame.create_unwind_info
함수에 전달할 수 있는 새로운gdb.unwinder.FrameId
클래스입니다. -
gdb.disassembler.DisassemblerResult
클래스는 더 이상 하위 클래스로 분류할 수 없습니다. -
gdb.disassembler
모듈에는 이제 스타일링 지원이 포함됩니다. -
GDB/MI 명령을 호출하고 Python 사전으로 결과를 반환하는 새로운
gdb.execute_mi(COMMAND, [ARG]…)
함수입니다. -
GDB가 처리해야 하는 모든 신호를 차단하는 컨텍스트 관리자를 반환하는 새로운
gdb.block_signals()
함수입니다. -
start
메서드에서gdb.block_signals
함수를 호출하는 새로운gdb.
클래스입니다.Thread
클래스의 thread -
gdb.parse_and_eval
함수에는 글로벌 기호에 대한 구문 분석을 제한하는 새로운global_context
매개변수가 있습니다. gdb.Inferior
클래스-
알려진 경우 inferior에 대한 명령줄 인수를 보유하는 새 인수 특성입니다.
-
알려진 경우 inferior의 기본 함수의 이름을 보유하는 새로운
main
_name -
시작하기 전에 inferior의 환경을 수정할 수 있는 새로운
clear_env
,set_env
및unset_env
메서드입니다.
-
알려진 경우 inferior에 대한 명령줄 인수를 보유하는 새 인수 특성입니다.
gdb.Value
클래스-
개체 값을
할당
하는 새 할당 방법입니다. -
배열과 같은 값을 배열로 변환하는 새로운
to_array
메서드입니다.
-
개체 값을
gdb.Progspace
클래스-
지정된 주소를 포함하는
gdb.Objfile
오브젝트를 반환하는 새로운objfile_for_address
메서드(있는 경우) -
Progspace.filename
변수에 해당하는gdb.Objfile
오브젝트를 보유하는 새로운symbol_file
속성(또는 파일 이름이None
인 경우None
). -
새로운
executable_filename
속성:exec-file
또는file
명령으로 설정된 파일 이름으로 문자열을 보유하거나 실행 파일이 설정되지 않은 경우None
입니다.
-
지정된 주소를 포함하는
gdb.Breakpoint
클래스-
유추할 수 있는 특정 속성 또는
None
이 설정되어 있지 않은 경우 None에 대한inferior
ID(정수)를 포함하는 새로운 inferior 특성입니다.
-
유추할 수 있는 특정 속성 또는
gdb.Type
클래스-
새
is_array_like
및is_string_like
메서드는 형식의 실제 유형 코드에 관계없이 형식이 배열 또는 문자열일 수 있는지 여부를 나타냅니다.
-
새
-
예기치 않은 적용 결과에 대한 기본 클래스로 사용할 수 있는 새로운
gdb.Value
Cryostater 클래스입니다. -
새로 구현된
gdb.LazyString.__str__
메서드. gdb.Frame
클래스-
중첩된 함수 프레임의 외부 프레임을 반환하는 새로운
static_link
메서드입니다. -
새로운
gdb.Frame.
Cryostat 메서드는 프레임 언어의 이름을 반환합니다.
-
중첩된 함수 프레임의 외부 프레임을 반환하는 새로운
gdb.Command
클래스-
GDB는 이제
gdb.Command
클래스와gdb.Parameter
하위 클래스의 doc 문자열을 다시 포맷하여 문자열을 도움말 출력으로 사용하기 전에 각 줄에서 불필요한 선행 공백을 제거합니다.
-
GDB는 이제
gdb.Objfile
클래스-
새
is_file
속성.
-
새
-
디스패처에서 주소, 기호 및 오프셋 정보를 출력할 때와 동일한 형식을 사용하는 새로운
gdb.format_address(ADDRESS, PROGSPACE, ARCHITECTURE)
기능. -
현재 언어의 이름을 반환하는
gdb.current_ language
함수입니다. -
gdb.disassembler.register_disassembler (DISASSEMBLER, ARCH)
, gdb.disassembler.Disassembler ,gdb.disassembler.Disassembler
.Disassembler ,gdb.disassembler.DisassembleInfo
를 포함한 새로운 Python APIGDB.disassembler.builtin_disassemble(INFO, MEMORY_SOURCE)
및gdb.disassembler.DisassemblerResult
. -
gdb.Value.format_string
함수에서 허용하는 형태로 사전을 반환하는 새로운gdb.print_options
함수입니다. gdb.Value.format_string
함수-
GDB.Value.format_string
은인쇄
또는 기타 유사한 작업 중에 호출되는 경우print
명령에서 제공하는 형식을 사용합니다. -
GDB.Value.format_string
은 이제summary
키워드를 허용합니다.
-
-
새로운
gdb.BreakpointLocation
Python 유형. -
gdb.register_window_type
메서드는 허용 가능한 창 이름 집합을 제한합니다.
아키텍처별 변경 사항:
AMD 및 Intel 64비트 아키텍처
-
현재 기본적으로 사용되는
libopcodes
라이브러리를 사용하여 디스어셈블러 스타일링 지원이 추가되었습니다.set style deassembler *
명령을 사용하여 disassembler 출력이 스타일링되는 방식을 수정할 수 있습니다. 대신 Python Pygments 스타일링을 사용하려면 새유지 관리 세트 libopcodes-styling off
명령을 사용합니다.
-
현재 기본적으로 사용되는
64비트 ARM 아키텍처
- Memory Tagging Extension(MTE)에 대한 메모리 태그 데이터 덤프 지원이 추가되었습니다.
- Scalable Matrix Extension 1 및 2 (SME/SME2)에 대한 지원이 추가되었습니다. 일부 기능은 여전히 실험적 또는 알파로 간주됩니다. 예를 들어 ZA 상태의 수동 기능 호출 또는 DWARF를 기반으로 확장 가능한 벡터 그래픽(SVG) 변경 사항을 추적합니다.
- 스레드 로컬 스토리지(TLS) 변수에 대한 지원이 추가되었습니다.
- 하드웨어 감시에 대한 지원이 추가되었습니다.
64비트 IBM Z 아키텍처
-
특수 기능-assist 명령
NNPA
를 제외하고 IBM Z 대상에서 새로운arch14
명령을 기록하고 재생합니다.
-
특수 기능-assist 명령
IBM Power Systems, Little Endian
- POWER11에 대한 기본 활성화 지원이 추가되었습니다.
GDB 10.2의 RHEL 9 시스템 버전 이후의 변경 사항은 GCC Toolset 12 버전의 GDB 11.2 및 GCC Toolset 13 버전의 GDB 12.1 을 참조하십시오.
Jira:RHEL-33256, Jira:RHEL-39324, Jira:RHEL-24764
RHEL 10은 elfutils
버전 0.191을 제공합니다.
elfutils
패키지가 버전 0.191로 업데이트되었습니다. 주요 개선사항은 다음과 같습니다.
libdw
라이브러리의 변경 사항:-
dwarf_addrdie
함수는debug_aranges
섹션이 없는 바이너리를 지원합니다. - DWARF 패키지 파일에 대한 지원이 개선되었습니다.
-
새로운
dwarf_cu_dwp_section_info
기능이 추가되었습니다.
-
-
debuginfod
서버의 캐싱 제거 로직은vdso.debug
와 같은 작고 빈번한 파일 또는 느린 파일의 보존을 개선하도록 향상되었습니다. -
eu-srcfiles
유틸리티는 이제 DWARF/ELF 파일의 소스 파일을 가져와서zip
아카이브에 배치할 수 있습니다.
RHEL 10에서는 SystemTap
버전 5.1을 제공합니다.
RHEL 10에는 SystemTap
추적 및 검사 툴 버전 5.1이 포함되어 있습니다. 버전 5.0 이후 주요 변경 사항은 다음과 같습니다.
-
스크립트 컴파일 중 권한을 줄이기 위한 실험적인
--build-as=USER
플래그입니다. - 호스트 PID로 식별된 컨테이너에서 실행되는 프로세스 검사에 대한 지원이 개선되었습니다.
- 사용자 공간 하드웨어 list 및 watchpoints에 대한 새로운 프로브입니다.
-
runtime=bpf 모드의
작업을 지원합니다.--
remote - 커널 사용자 전송의 강력한 기능 개선.
RHEL 10에서는 Valgrind
버전 3.23.0을 제공합니다.
Valgrind
제품군이 3.23.0 버전으로 업데이트되었습니다. 주요 개선 사항은 다음과 같습니다.
-
--track-fds=yes
옵션은 파일 설명자를 두 번 닫는 것에 대해 경고하고, 억제 가능한 오류를 생성하고 XML 출력을 지원합니다. -
--show-error-list=no|yes
옵션은 이제 비활성화된 오류도 출력할 수 있는 새 값인all
을 허용합니다. -
64비트 IBM Z 아키텍처에서
Valgrind
는 이제 Neural network processing assist (NNPA) 기능 벡터 명령: CryostatNF , CryostatLFNH
, VCFNL
, VCRNF , VCRNF ,VCRNF
,NNPA
(z16/arch14)를 지원합니다. -
64비트 ARM 아키텍처에서
Valgrind
는 이제dotprod
명령(sdot/udot
)을 지원합니다. -
AMD 및 Intel 64비트 아키텍처에서
Valgrind
는 이제 x86_64-v3 마이크로 아키텍처에 대한 보다 정확한 명령 지원을 제공합니다. -
Valgrind
는 이제 메모리 중복을 감지할 수 있는wcpncpy
,memccpy
,strlcat
및strlcpy
함수에 대한 래퍼를 제공합니다. -
Valgrind
는 이제mlock2
,fchmodat2
및pidfd_getfd
라는 Linux syscall을 지원합니다.
RHEL 10에는 Dyninst
버전 12.3.0이 도입되었습니다.
RHEL 10은 Dyninst
라이브러리 버전 12.3.0과 함께 배포됩니다.
Jira:RHEL-49597[1]
버전 5.2에서 제공되는 SystemTap
RHEL 10.0은 버전 5.2에서 SystemTap
추적 및 검사 툴을 제공합니다.
주목할 만한 개선 사항은 elfutils
0.192를 기반으로 하는 debuginfod-metadata
기반 프로브의 전체 활성화입니다. 이 기능을 사용하면 모든 일치하는 모든 이름에 대해 debuginfod
서버를 검색하여 지정된 바이너리 또는 라이브러리의 전체 버전을 대상으로 하는 systemtap
스크립트를 작성할 수 있습니다.
RHEL 10에는 debugedit
5.1이 도입되었습니다.
RHEL 10은 debugedit
5.1과 함께 배포됩니다. 주요 변경 사항은 다음과 같습니다.
-
debugedit
유틸리티는 더 빠른xxhash
알고리즘을 사용하여buildid
를 생성합니다. -
find-debuginfo
유틸리티는 다음과 같은 새로운 옵션을 지원합니다. -
-
V 및--verbose
를 사용하여 모든 파일에 대한 출력을 더 추가합니다. -
-q
및--quiet
-error가 아닌 모든 출력을 음소거 -
find-debuginfo
유틸리티는 병렬 처리 기능을 활성화하는dwz
툴에도-j
옵션을 전달합니다. -
debugedit
유틸리티는 압축된 DWARF 디버깅 ELF 섹션을 처리합니다. -
debugedit
유틸리티는 이제clang
컴파일러에서 사용하는 더 많은 DWARF5 구성을 처리합니다.
RHEL 10은 elfutils 버전 0.192를 제공합니다.
elfutils
패키지가 버전 0.192로 업데이트되었습니다. 주요 개선사항은 다음과 같습니다.
debuginfod
:- Fedora 및 RHEL의 RPM IMA 체계를 사용하여 무결성 검사를 위해 파일별 서명 확인이 추가되었습니다.
-
메타데이터 쿼리에 대한 새 API: 파일 이름
buildid
. -
커널
debuginfo
패키지에서 파일을 서버 측 추출하는 것이 훨씬 빠릅니다. 이제 0.25초 미만의 시간이 걸리며 ~50초까지 줄일 수 있습니다.
libdw
:-
새로운 함수
dwfl_set_sysroot
,dwfl_frame_unwound_source
,dwfl_unwound_source_str
.
-
새로운 함수
StackTrace
:-
Sysprof
profiler에서 스택 샘플 스트림을 처리하고 호출 체인으로 축소할 수 있는 실험적인 새로운 툴입니다.--enable-stacktrace
를 사용하여 x86에서 활성화합니다. 자세한 사용 지침은 development 분기의README.eu-stacktrace
파일을 참조하십시오. -
eu-stacktrace
유틸리티는 기술 프리뷰로 사용할 수 있습니다. 자세한 내용은eu-stacktrace
를 기술 프리뷰로 사용 가능의 내용을 참조하십시오.
-
RHEL 10은 libabigail
2.6을 제공합니다.
RHEL 10은 libabigail
라이브러리의 2.6 버전을 제공합니다. 주요 변경 사항은 다음과 같습니다.
- BPF 유형 형식(BTF) 및 CTF(Common Trace Format)를 사용하여 Linux 커널 모듈 분석을 보다 효과적으로 지원합니다.
- 중간에서 내부 유형 비교 알고리즘 개선
-
abipkgdiff
,abidw
및abilint
유틸리티의 로깅 개선 - 다양한 버그 수정
추가 변경 사항은 업스트림 릴리스 노트 를 참조하십시오.
버전 3.24.0에서 제공되는 Val grind
RHEL 10.0은 3.24.0 버전의 valgrind
제품군을 제공합니다. 주요 개선 사항은 다음과 같습니다.
-
이제 잘못된 파일 설명자를 사용할 때
--track-fds=yes
옵션이 비활성화 가능한 오류를 표시하고 XML 출력에 오류가 작성됩니다. 옵션을 사용하지 않는 경우 표시되는 경고는 더 이상 사용되지 않으며 향후 버전에서 제거됩니다. - 오류 메시지는 Ada 이름 demangling을 지원합니다.
-
deflate-conversion
기능(z15/arch13)은 IBM Z 플랫폼에서 deflate 압축 호출(DFLTCC) 명령을 지원합니다. -
IBM Z 플랫폼에서
valgrind
는 이제 메시지 보안 지원(MSA) 시설에서 제공하는 지침과 1-9 확장 기능을 지원합니다. Valgrind
는 다음과 같은 새로운 Linux 시스템 호출을 지원합니다.-
open_tree
-
move_mount
-
fsopen
-
fsconfig
-
fsmount
-
fspick
-
landlock_create_ruleset
-
landlock_add_rule
-
landlock_restrict_self
-
버전 1.23에서 제공되는 Go Toolset
RHEL 10.0은 1.23 버전에서 Go Toolset을 제공합니다. 주요 개선 사항은 다음과 같습니다.
for-range
루프는 다음 유형의 Cryostat 함수를 허용합니다.-
func(func() bool)
-
func(func(K) bool)
func(func(K, V) bool)
Cryostat 인수 함수를 호출하면
for-range
루프에 대한 반복 값이 생성됩니다. 참조 링크는 업스트림 릴리스 노트 를 참조하십시오.
-
- Go Toolchain은 Go 팀이 Go Toolchain 사용 및 작동 방식을 이해하는 데 도움이 되는 사용 및 중단 통계를 수집할 수 있습니다. 기본적으로 Go Telemetry는 Telemetry 데이터를 업로드하지 않고 로컬에만 저장합니다. 자세한 내용은 업스트림 Go Telemetry 설명서 를 참조하십시오.
-
go vet
하위 명령에는 참조 파일에서 사용하는 Go 버전에 너무 새로운 기호에 대한 참조를 나타내는stdversion
Analyzer가 포함되어 있습니다. -
cmd
및cgo
기능은-ldflags
옵션을 지원하여 C 링커에 플래그를 전달합니다.go
명령은 매우 큰CGO_LDFLAGS
환경 변수를 사용할 때인수 목록을 너무 긴
오류를 방지하기 위해 이 플래그를 자동으로 사용합니다. -
추적
유틸리티는 부분적으로 손상된 추적을 허용하고 추적 데이터를 복구하려고 합니다. 이는 충돌의 경우 추적이 충돌로 이어질 수 있기 때문에 특히 유용합니다. -
처리되지 않은 패닉 또는 기타 복구 불가능한 오류 후 런타임에서 출력한 역추적은 들여쓰기를 수행하여
goroutine
의 스택 추적을 첫 번째goroutine
과 구별합니다. - profile-guided 최적화 사용에 대한 컴파일러 빌드 시간 오버헤드가 한 자리 백분율로 단축되었습니다.
-
새로운
-bindnow
링커 플래그를 사용하면 동적으로 연결된 ELF 바이너리를 빌드할 때 즉시 함수 바인딩을 사용할 수 있습니다. -
//go:linkname
linker 지시문은 더 이상 표준 라이브러리의 내부 기호와 해당 정의에서//go:linkname
으로 표시되지 않는 런타임을 나타냅니다. -
프로그램이 더 이상
Timer
또는Ticker
를 참조하지 않으면 가비지 컬렉션은Stop
메서드가 호출되지 않은 경우에도 즉시 정리합니다. 타이머 또는Ticker
와 연결된타이머
채널이 이제 용량 0과 호환되지 않습니다. 이렇게 하면Reset
또는stop
메서드가 호출될 때마다 호출 후 오래된 값이 전송되거나 수신되지 않습니다. -
새로운
고유
패키지는interning
또는hash-consing
과 같은 표준 값을 위한 기능을 제공합니다. -
새로운
iter
패키지는 사용자 정의 Cryostat와 함께 작동하는 기본 정의를 제공합니다. -
슬라이스
및맵
패키지는 Cryostat와 함께 작동하는 몇 가지 새로운 기능을 도입합니다. -
새
structs
패키지는 메모리 레이아웃과 같이 포함된 struct 유형의 속성을 수정하는 struct 필드에 대한 유형을 제공합니다. 다음 패키지에서는 약간의 변경이 수행됩니다.
-
archive/tar
-
crypto/tls
-
crypto/x509
-
데이터베이스/sql
-
debug/elf
-
인코딩/진단
-
go/ast
-
go/types
-
math/rand/v2
-
net
-
net/http
-
net/http/httptest
-
net/netips
-
path/filepath
-
반영
-
runtime/debug
-
runtime/pprof
-
runtime/trace
-
슬라이스
-
sync
-
sync/atomic
-
syscall
-
testing/fstest
-
text/template
-
time
-
unicode/utf16
-
자세한 내용은 업스트림 릴리스 노트 를 참조하십시오.
Go Toolset은 롤링 애플리케이션 스트림이며 Red Hat은 최신 버전만 지원합니다. 자세한 내용은 Red Hat Enterprise Linux Application Streams 라이프 사이클 문서를 참조하십시오.
RHEL 10에는 LLVM Toolset 19.1.7이 도입되었습니다.
RHEL 10은 LLVM Toolset 버전 19.1.7과 함께 배포됩니다.
LLVM 컴파일러의 주요 변경 사항:
- 이제 LLVM에서 디버그 레코드를 사용하여 디버그 정보를 보다 효율적으로 표현합니다.
Clang의 주요 업데이트:
- C++14 sized deallocation은 기본적으로 활성화되어 있습니다.
- C++17 지원이 완료되었습니다.
- C++20 지원 개선, 특히 모듈, 개념 및 CTAD(Class Template Argument Deduction)가 추가되었습니다.
- C++23, C++2c, C23 및 C2y 지원이 추가되었습니다.
자세한 내용은 LLVM 릴리스 노트 및 Clang 릴리스 노트를 참조하십시오.
LLVM Toolset은 롤링 애플리케이션 스트림이며 최신 버전만 지원됩니다. 자세한 내용은 Red Hat Enterprise Linux Application Streams 라이프 사이클 문서를 참조하십시오.
RHEL 10.0에는 Rust Toolset 버전 1.84.1이 포함되어 있습니다.
RHEL 10.0은 Rust Toolset 버전 1.84.1과 함께 배포됩니다. 이전에 사용 가능한 버전 1.79.0 이후 주요 개선 사항은 다음과 같습니다.
-
새로운
LazyCell
및LazyLock
유형은 처음 사용할 때까지 초기화를 지연합니다. 이렇게 하면 각 인스턴스에 초기화 기능이 포함된 이전OnceCell
및OnceLock
유형이 확장됩니다. - 표준 라이브러리의 새로운 정렬 구현은 런타임 성능을 개선하고 시간을 컴파일합니다. 또한 비교자가 총 순서를 생성하지 않는 경우를 탐지하여 정렬되지 않은 데이터를 반환하는 대신 패닉을 발생시킵니다.
-
불투명 반환 유형에 대한 정확한 캡처가 추가되었습니다. 새로운
use<..
> 구문은 부정확한 반환 형식에 사용되는 일반 매개변수와 수명을 지정합니다. const
코드의 많은 새로운 기능이 추가되었습니다. 예를 들면 다음과 같습니다.- 부동 소수점 지원
-
인라인 어셈블리에 대한
const
immediates - static에 대한 참조
- 변경 가능한 참조 및 포인터
안전하지 않은
코드에 대한 많은 새로운 기능이 추가되었습니다. 예를 들면 다음과 같습니다.- 엄격한 검증 API
-
&Raw
포인터 구문 - 정적 문제 해결
-
안전하지 않은
extern
블록에서 안전한 항목 선언
-
카고 종속성 확인자는 이제 버전을 인식합니다. 종속성 크레이트가 지원되는 최소 Rust 버전을 지정하는 경우, 카르고는 최신
semver
-compatible crate 버전을 사용하는 대신 종속성 그래프를 확인할 때 이 정보를 사용합니다.
호환성 노트:
-
WebAssembly 시스템 인터페이스(WASI) 대상은
rust-std-static-wasm32-wasi
에서rust-std-wasm32-wasip1
로 변경됩니다. 명령줄에서--target wasm32-wasip1
매개변수를 사용하여 WASI 대상을 선택할 수도 있습니다. 자세한 내용은 Rust의 WASI 대상 업스트림 블로그 게시물의 변경 사항을 참조하십시오. -
split panic hook 및 panic 처리기 인수
core::panic::PanicInfo
및std::panic::PanicInfo
는 이제 다른 유형입니다. -
extern "C"
함수가 무해한 패닉에서 중지됩니다. ABI 경계를 벗어나지 않도록 하는 대신extern "C-unwind"
를 사용하십시오.
rust Toolset은 롤링 애플리케이션 스트림이며 Red Hat은 최신 버전만 지원합니다. 자세한 내용은 Red Hat Enterprise Linux Application Streams 라이프 사이클 문서를 참조하십시오.
Jira:RHEL-59689[1]
RHEL 10에는 PCP 버전 6.3.0이 포함되어 있습니다.
RHEL 10은 PCP(Performance Co- Cryostat) 버전 6.3.0과 함께 배포됩니다. 이전에 사용 가능한 버전 6.2.0에 대한 주요 변경 사항은 다음과 같습니다.
새로운 도구 및 에이전트
-
pcp2openmetrics
: Open Metrics 형식의 PCP 메트릭을 원격 엔드포인트로 푸시하는 새로운 도구 -
PCP-geolocate
: 위도 및 경도 메트릭 라벨을 보고하는 새로운 도구 -
pmcheck
: PCP 구성 요소를 interrogate 및 제어하는 새로운 도구 -
pmdauwsgi
: uWSGI 서버에서 계측을 내보내는 새로운 PCP 에이전트
향상된 툴
-
pmdalinux
: 새로운 커널 메트릭 (hugepages, filesystems, TCP, softnet, virtual machine balloon) 추가 -
pmdalibvirt
: 메트릭 라벨 지원 추가, 새로운 balloon, vCPU, 도메인 정보 메트릭 추가 -
pmdabpf
:pcp-atop
유틸리티와 함께 사용할 수 있는 eBPF 네트워킹 메트릭 개선
Jira:RHELDOCS-18787[1]
RHEL 10은 Grafana
버전 10.2.6을 제공합니다.
Grafana
플랫폼이 버전 10.2.6으로 업데이트되었습니다.
주요 개선 사항은 다음과 같습니다.
- 클릭 및 드래그하는 동안 전환을 유지하여 시계열 및 샌드스틱 시각화의 y축을 확대할 수 있습니다.
- 대시보드를 만들 때 간소화된 데이터 소스 선택.
- 탐색에 대한 업데이트 및 명령 팔레트 등 업데이트된 사용자 인터페이스.
-
계산 변환에서 추가 필드에
대한 새로운 단항 작업 모드를 포함하여 다양한 변환 기능이 개선되었습니다. - 재설계된 빈 대시보드 및 대시보드 패널을 포함하여 대시보드 및 데이터 시각화에 대한 다양한 개선 사항.
- 새로운 geomap 및 canvas 패널입니다.
기타 변경 사항:
- 사용자, 액세스, 인증, 권한 부여 및 보안에 대한 다양한 개선 사항.
- 새로운 경고 기능과 함께 경고 개선 사항.
- 이제 공용 대시보드를 사용할 수 있습니다.
이전에 사용 가능한 Grafana
버전 9.2 이후의 전체 변경 목록은 업스트림 문서를 참조하십시오.
RHEL 10은 버전 5.2.2에 grafana-pcp
를 제공합니다.
RHEL 10은 grafana-pcp
플러그인 버전 5.2.2와 함께 배포됩니다. 주요 변경 사항은 다음과 같습니다.
- 이제 플러그인은 Redis 대신 Valkey를 데이터 소스로 사용합니다. 그 결과 PCP Redis 데이터 소스의 이름이 PCP Valkey 로 변경되었습니다.
새로운 대시보드:
- PCP 벡터 상위 소비자
- PCP 벡터 UWSGI 개요
- Valkey 데이터 소스에 RediSearch 모듈 교체를 사용할 수 있을 때까지 메트릭 검색을 사용할 수 없습니다.
Grafana, PCP 및 grafana-pcp
이제 Valkey
를 사용하여 데이터를 저장
RHEL 10에서 Valkey
키-값 저장소는 Redis
를 대체합니다. 결과적으로 Grafana
, PCP 및 grafana-pcp
플러그인에서 이제 Valkey
를 사용하여 Redis
대신 데이터를 저장합니다. grafana-pcp
플러그인의 PCP Redis
데이터 소스 이름은 이제 PCP Valkey
로 지정됩니다.
RHEL 10의
대체zlib
-ng-compat
새로운 zlib-ng-compat
패키지는 다양한 프로그램에서 사용하는 범용 손실 없는 데이터 압축 라이브러리를 제공합니다. 이 구현에서는 RHEL 9에 배포된 zlib
보다 다양한 이점을 제공합니다. 예를 들어 zlib-ng-compat
은 사용 가능한 경우 하드웨어 가속을 지원하고 압축 효율성 및 성능을 향상시킵니다. zlib-ng-compat
은 zlib
에서 원활한 전환을 보장하기 위해 내장된 API 및 ABI 호환 모드입니다.
Jira:RHEL-24058[1]
CRB 리포지토리에서 사용할 수 있는 SWIG 4.3.0
SWIG(Simplified Wrapper and Interface Generator) 버전 4.2.1은 이제 CRB(CodeReady Linux Builder) 리포지토리에서 사용할 수 있습니다. 주요 변경 사항은 다음과 같습니다.
- Python Standard Template Library (STL) 컨테이너 래퍼는 이제 Python Iterator 프로토콜을 사용합니다.
SWIG는 다음을 지원합니다.
- Python 안정적인 ABI(Application Binary Interface)
- Python 3.12 및 Python 3.13
- Ruby 3.2 및 Ruby 3.3
- Tcl 9.0
- PHP 8. PHP 7 지원이 제거되었습니다.
- C++11 자동 변수에 대한 후행 반환 유형 없이 C++14 자동 변수에 대한 지원이 추가되었습니다.
- 암시적, 기본값, 삭제, 관련 할당 불가 변수 래퍼를 포함하여 생성자, 종료자 및 할당 연산자가 수정되었습니다.
- Node.js 바이너리 안정적인 ABI Node-API를 대상으로 하는 새로운 JavaScript 생성기를 사용할 수 있습니다.
- 더 이상 사용되지 않는 여러 기능이 제거되었습니다.
- 대상 언어로 C에 대한 실험 지원이 추가되었습니다.
-
nspace
기능을 사용할 때 네임스페이스 처리 기능이 향상되었습니다. -
STL 래퍼가
std::unique_ptr
,std::string_view
,std::filesystem 오브젝트에
대해 향상되었습니다. - C++17의 표현과 C++11 후행 반환 유형에 대한 지원이 추가되었습니다.
- 문자열 및 문자 리터럴 처리 기능이 향상되었습니다.
CodeReady Linux Builder 리포지토리에 포함된 패키지는 지원되지 않습니다.
Jira:RHELDOCS-19059[1]
Red Hat build of OpenJDK 21은 RHEL 10의 기본 Java 구현입니다.
기본 RHEL 10 Java 구현은 OpenJDK 21입니다. OpenJDK 21 Java 런타임 환경과 OpenJDK 21 Java 소프트웨어 개발 키트를 제공하는 java-21-openjdk
패키지를 사용합니다. 자세한 내용은 OpenJDK 설명서 를 참조하십시오.
Clang 및 LLVM에서 디버그 섹션 압축을 위해 zstd
지원
기본적으로 Clang 및 LLVM 툴은 Zlib
를 디버그 섹션 압축 알고리즘으로 사용합니다. 이 향상된 기능을 통해 사용자는 Zlib
보다 더 높은 압축 속도에 도달할 수 있는 Zstandard(zstd
) 알고리즘을 사용할 수 있습니다.
예를 들어 Clang으로 프로그램을 컴파일할 때 zstd
압축을 사용하려면 다음 명령을 사용합니다.
clang -Wa,-compress-debug-sections=zstd -Wl,--compress-debug-sections=zstd ...
$ clang -Wa,-compress-debug-sections=zstd -Wl,--compress-debug-sections=zstd ...
이제 llvm-doc
패키지에는 업스트림 문서에 대한 참조만 포함됩니다.
이전 버전의 llvm-doc
패키지에는 HTML 형식의 LLVM 문서가 포함되어 있습니다. 이번 업데이트를 통해 패키지는 업스트림 문서에 대한 참조가 포함된 /usr/share/doc/llvm/html/index.html
파일만 제공합니다.
RHEL 10은 버전 3.30.5에서 cmake
를 제공합니다.
RHEL 10은 cmake
버전 3.30.5와 함께 배포됩니다. 주요 변경 사항은 업스트림 릴리스 노트 를 참조하십시오.
RHEL 10은 버전 9.0 및 8.0에서 .NET을 제공합니다.
자동 메모리 관리 및 최신 프로그래밍 언어를 제공하는 범용 개발 플랫폼인 .NET (9.0)의 최신 버전 (9.0) 및 현재 장기 지원 .NET (8.0)은 Red Hat Enterprise Linux (RHEL) 10에서 지원됩니다. .NET을 사용하면 고급 애플리케이션을 효율적으로 빌드할 수 있습니다.
설치 및 사용법에 대한 자세한 내용은 .NET 9.0 및 .NET 8.0 설명서를 참조하십시오.
Jira:RHELDOCS-20066[1]
RHEL 10은 1.24.4 버전에 Go Toolset을 제공합니다.
Go Toolset이 RHSA-2025:10677 권고를 릴리스하여 1.24.4 버전으로 업데이트되었습니다.
주요 개선 사항 및 변경 사항은 다음과 같습니다.
언어:
- 이제 일반 유형 별칭이 완전히 지원되므로 일반적이지 않은 유연성을 높이기 위해 유형 별칭을 매개 변수화할 수 있습니다.
툴:
-
Go 모듈 시스템은
go.mod
파일의툴
지시문을 지원하므로 실행 가능한 종속 항목을 직접 관리할 수 있습니다. -
Go build
,go install
,go test
명령은 구조화된 출력에 대해-json
플래그를 지원합니다. -
새로운
GOAUTH
환경 변수는 개인 모듈에 대한 향상된 인증을 제공합니다.
-
Go 모듈 시스템은
런타임 및 성능:
- 런타임 개선으로 CPU 오버헤드를 평균 2-3% 줄일 수 있습니다.
- 주요 변경 사항에는 스위스 테이블 및 더 효율적인 메모리 할당을 기반으로 하는 새로운 맵 구현이 포함됩니다.
표준 라이브러리:
-
새로운
os.Root
유형을 사용하면 디렉터리가 제한된 파일 시스템 액세스를 활성화합니다. -
testing.B.Loop
방법은 벤치마킹을 개선합니다. -
runtime.AddCleanup
함수는 보다 유연한 종료 메커니즘을 제공합니다. -
새로운
약한
패키지는 약한 포인터를 도입합니다.
-
새로운
암호화:
-
이제 ML-KEM 후 키 교환(
암호/mlkem
), HKDF, PBKDF2 및 SHA-3용 새 패키지를 사용할 수 있습니다. - Go 암호화 모듈은 FIPS 140-3 인증을 검토 중입니다.
-
이제 ML-KEM 후 키 교환(
추가 업데이트:
-
vet
툴에는 테스트 및 예제의 일반적인 오류를 감지하기 위한 새로운 분석기가 포함되어 있습니다. - 이제 objdump 툴에서 더 많은 아키텍처를 지원합니다.
-
CGO
는 성능 및 정확성을 개선하기 위해 주석을 도입했습니다.
-
자세한 내용은 업스트림 릴리스 노트 를 참조하십시오.
Go Toolset은 롤링 애플리케이션 스트림이며 Red Hat은 최신 버전만 지원합니다. 자세한 내용은 Red Hat Enterprise Linux Application Streams 라이프 사이클 문서를 참조하십시오.
Jira:RHEL-101075[1]
RHEL 10에서 IBM Semeru JDK 사용 가능
IBM Semeru는 RHEL(Red Hat Enterprise Linux) 10에 포함되어 IBM에서 유지 관리하는 TCK(Technology Compatibility Kit) 인증 JRE(Java Runtime Environment) 구현입니다. RHEL AppStream 리포지토리에서 사용할 수 있는 OpenJDK(Open Java Development Kit) 배포 대신 RHEL Supplementary 리포지토리에서 java-21-ibm-semeru-certified-jdk-devel
패키지를 사용할 수 있습니다.
Jira:RHELDOCS-20591[1]