4.10. 컴파일러 및 개발 도구
새로운 GCC Toolset 14
GCC Toolset 14는 최신 버전의 개발 도구를 제공하는 컴파일러 툴셋입니다. AppStream 리포지토리에서 소프트웨어 컬렉션 형식으로 Application Stream으로 사용할 수 있습니다.
다음 툴 및 버전은 RHEA-2024:8851 권고와 함께 제공되는 GCC Toolset 14에서 제공됩니다.
- GCC 14.2
- GDB 14.2
-
binutils
2.41 -
annobin
12.70 -
dwz
0.14
GCC Toolset 14를 설치하려면 root로 다음 명령을 실행합니다.
# yum install gcc-toolset-14
GCC Toolset 14에서 툴을 실행하려면 다음을 수행합니다.
$ scl enable gcc-toolset-14 <tool>
GCC Toolset 14의 툴 버전이 다음 툴의 시스템 버전을 재정의하는 쉘 세션을 실행하려면 다음을 수행합니다.
$ scl enable gcc-toolset-14 bash
GCC Toolset 14 구성 요소는 gcc-toolset-14-toolchain
컨테이너 이미지에서도 사용할 수 있습니다.
자세한 내용은 GCC Toolset 14 및 GCC Toolset 사용을 참조하십시오.
Jira:RHEL-34596[1], Jira:RHEL-30411
GCC Toolset 14: GCC 버전 14.2에 기반
GCC Toolset 14에서는 RHEA-2024:8864 권고를 통해 GCC(GNU Compiler Collection)가 14.2 버전으로 업데이트되었습니다.
주요 변경 사항은 다음과 같습니다.
- 최적화 및 진단 개선
-
강화 플래그 세트를 가능하게 하는 새로운
-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 릴리스 노트 를 참조하십시오.
Jira:RHEL-30412[1]
GCC Toolset 14: GDB 버전 14.2에 재기반
GCC Toolset 14에서는 GDB가 RHBA-2024:8862 권고를 통해 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의 변경 사항:
이벤트
-
새로운
gdb.ThreadExitedEvent
이벤트 -
progspace
및reload
속성이 있는ExecutableChangedEvent
오브젝트를 내보내는 새로운gdb.executable_changed
이벤트 레지스트리입니다. -
NewProgpspaceEvent
및FreeProgspaceEvent
이벤트 유형을 내보내는 새로운gdb.events.new_progspace
및gdb.events.free_progspace
이벤트 레지스트리입니다. 이러한 두 이벤트 유형에는 GDB에 추가되거나 제거되는gdb.Progspace
프로그램 공간을 지정하는 단일 속성progspace
가 있습니다.
-
새로운
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
함수입니다. The
gdb.Value.format_string
function-
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에 대한 기본 활성화 지원이 추가되었습니다.
Jira:RHELDOCS-18598[1], Jira:RHEL-36225, Jira:RHEL-36518
GCC Toolset 14: annobin
재기반 버전 12.70
GCC Toolset 14에서는 annobin
이 RHBA-2024:8863 권고를 통해 12.70 버전으로 업데이트되었습니다. 바이너리 테스트를 위한 업데이트된 annobin
툴 세트는 다양한 버그 수정을 제공하고, 새로운 테스트를 도입하며 최신 버전의 GCC, Clang, LLVM 및 Go 컴파일러와 함께 빌드 및 작업하기 위한 툴을 업데이트합니다. 향상된 도구를 사용하면 비표준 방식으로 구축된 프로그램에서 새로운 문제를 감지할 수 있습니다.
Jira:RHEL-30409[1]
GCC Toolset 13: GCC는 AMD 5를 지원합니다.
RHBA-2024:8829 권고를 통해 GCC Toolset 13 버전은 AMD 5 프로세서 마이크로 아키텍처에 대한 지원을 추가합니다. 지원을 활성화하려면 -march=znver5
명령줄 옵션을 사용합니다.
Jira:RHEL-36524[1]
LLVM Toolset이 18.1.8로 업데이트되었습니다.
LLVM Toolset이 RHBA-2024:8828 권고와 함께 버전 18.1.8로 업데이트되었습니다.
주요 LLVM 업데이트:
-
다음 명령의 상수 변형이 제거되었습니다.
및
,또는
,lshr
,zext
,섹시 ,
, fptoui ,fptrunc
,fpext
fptoui
,uitofp
,sitofp
. -
llvm.exp10
내장이 추가되었습니다. -
전역 변수의
code_model
속성이 추가되었습니다. - AArch64, AMDGPU, PowerPC, RISC-V, SystemZ 및 x86 아키텍처의 백엔드가 향상되었습니다.
- LLVM 툴이 개선되었습니다.
주요 Clang 개선 사항:
C++20 기능 지원:
-
Clang은 글로벌 모듈 조각에서 더 이상 하나의 정의 규칙(ODR) 검사를 수행하지 않습니다. 보다 엄격한 동작을 활성화하려면
-Xclang -fno-skip-odr-check-in-gmf
옵션을 사용합니다.
-
Clang은 글로벌 모듈 조각에서 더 이상 하나의 정의 규칙(ODR) 검사를 수행하지 않습니다. 보다 엄격한 동작을 활성화하려면
C++23 기능 지원:
-
람다에서 특성 사용을 경고하기 위해 새로운 진단 플래그
-Wc++23-lambda-attributes
가 추가되었습니다.
-
람다에서 특성 사용을 경고하기 위해 새로운 진단 플래그
C++2c 기능 지원:
-
Clang에서는 이제 동일한 범위에서
_
문자를 자리 표시자 변수 이름으로 여러 번 사용할 수 있습니다. - 이제 특성에서 문자열 리터럴인 속성 매개변수에서 평가되지 않은 문자열이 예상됩니다.
- C++26의 열거에서 더 이상 사용되지 않는 연산 변환이 제거되었습니다.
- 템플릿 매개변수 초기화 사양이 개선되었습니다.
-
Clang에서는 이제 동일한 범위에서
- 전체 변경 사항 목록은 Clang의 업스트림 릴리스 노트를 참조하십시오.
Clang의 ABI 변경:
-
x86_64용 SystemV ABI 뒤에
__int128
인수가 더 이상 레지스터와 스택 슬롯 간에 분할되지 않습니다. - 자세한 내용은 Clang의 ABI 변경 목록을 참조하십시오.
주요 이전 버전과 호환되지 않는 변경 사항:
- 템플릿된 연산자에 대한 역방향 인수 순서의 버그 수정으로 C++20의 코드가 손상되고 이전에 C++17에서 허용되었습니다.
-
GCC_INSTALL_PREFIX
CMake 변수(기본--gcc-toolchain=
)는 더 이상 사용되지 않으며 제거됩니다. 대신 구성 파일에--gcc-install-dir=
또는--gcc-triple=
옵션을 지정합니다. -
미리 컴파일된 헤더(PCH) 생성(
-c -xc-header
및-c -xc++-header
)의 기본 확장 이름은 이제.gch
대신.pch
입니다. -
-include a.h
.gch 파일을 프로브하는 경우 include는 이제 Clang PCH 파일이거나 Clang PCH 파일이 포함된 디렉터리인 경우a
를 무시합니다..h.gch
-
__has_cpp_attribute
및__has_c_attribute
로 인해 특정 C++-11 스타일 속성에 대한 잘못된 값을 반환하는 버그가 수정되었습니다. -
역방향
operator==
를 추가하는 동안 일치하는operator!=
를 찾는 버그가 수정되었습니다. - 함수 템플릿에 대한 이름 관리 규칙이 변경되어 해당 템플릿 매개변수 목록에서 함수를 과부하하거나 필요할 수 있습니다.
-
이제 시스템 헤더 및 매크로에서
-Wenum-constexpr-conversion
경고가 기본적으로 활성화됩니다. 다음 Clang 릴리스에서 하드(다운할 수 없음) 오류로 전환됩니다. - 모듈 이름이 지정된 C++20에 대해 가져온 모듈의 경로는 더 이상 하드 코딩할 수 없습니다. 명령줄에서 모든 종속 모듈을 지정해야 합니다.
-
import <module> 을 사용하여
모듈을 가져올
수 없습니다. Clang에서는 명시적으로 빌드된 모듈을 사용합니다. - 자세한 내용은 변경 사항이 손상될 가능성이 있는 목록을 참조하십시오.
자세한 내용은 LLVM 릴리스 노트 및 Clang 릴리스 노트를 참조하십시오.
LVM Toolset은 롤링 애플리케이션 스트림이며 최신 버전만 지원됩니다. 자세한 내용은 Red Hat Enterprise Linux Application Streams 라이프 사이클 문서를 참조하십시오.
Jira:RHEL-30907[1]
rust Toolset을 버전 1.79.0으로 다시 기반
rust Toolset이 RHBA-2024:8827 권고를 릴리스하여 1.79.0 버전으로 업데이트되었습니다. 이전에 사용 가능한 버전 1.75.0 이후 주요 개선 사항은 다음과 같습니다.
-
새로운
offset_of!
매크로 - C 문자열 리터럴 지원
-
인라인
const
표현식 지원 - 연결된 유형 위치에서 경계 지원
- 자동 수명 연장 개선
-
안전하지 않은
사전 조건의 디버그 어설션
rust Toolset은 롤링 애플리케이션 스트림이며 최신 버전만 지원됩니다. 자세한 내용은 Red Hat Enterprise Linux Application Streams 라이프 사이클 문서를 참조하십시오.
Jira:RHEL-30073[1]
버전 1.22에 따라 도구 세트 세트 업데이트
Go Toolset이 RHSA-2024:8876 권고를 릴리스하여 버전 1.22로 업데이트되었습니다.
주요 개선 사항은 다음과 같습니다.
- for 루프의 변수가 반복별로 생성되어 실수로 버그를 공유하지 않습니다. 또한 for 루프는 이제 정수를 초과할 수 있습니다.
- 작업 공간의 명령은 이제 작업 공간의 종속 항목에 대해 벤더 디렉터리를 사용할 수 있습니다.
-
go get
명령은 더 이상 레거시GOPATH
모드를 지원하지 않습니다. 이 변경 사항은go build
및go test
명령에는 영향을 미치지 않습니다. -
vet
툴이 for 반복문의 새 동작과 일치하도록 업데이트되었습니다. - 각 힙 오브젝트에 유형 기반 가비지 컬렉션 메타데이터를 유지하여 CPU 성능이 향상되었습니다.
- 이제 확대를 통해 성능 향상을 위한 최적화와 개선된 프로필 가이드 최적화 지원이 제공됩니다.
-
새로운
math/rand/v2
패키지를 사용할 수 있습니다. - 이제 Go는 메서드 및 와일드카드를 지원하는 향상된 HTTP 라우팅 패턴을 제공합니다.
자세한 내용은 Go 업스트림 릴리스 노트를 참조하십시오.
Go Toolset은 롤링 애플리케이션 스트림이며 최신 버전만 지원됩니다. 자세한 내용은 Red Hat Enterprise Linux Application Streams 라이프 사이클 문서를 참조하십시오.
Jira:RHEL-46972[1]
elfutils
버전 0.190으로 업데이트
elfutils
패키지가 버전 0.190으로 업데이트되었습니다. 주요 개선사항은 다음과 같습니다.
-
libelf
라이브러리에서 상대 재배치(RELR)를 지원합니다. -
libdw
라이브러리에서.debug_[ct]u_index
섹션을 인식합니다. -
eu-readelf
유틸리티는 이제 ELF 섹션을 사용하지 않고 동적 세그먼트를 통해 기호를 표시하는 새로운 -D
,--use-dynamic --symbol
옵션을 지원합니다. -
eu-readelf
유틸리티는 이제.gdb_index
버전 9를 표시할 수 있습니다. -
새로운
eu-scrlines
유틸리티는 지정된 DWARF 또는 ELF 파일과 관련된 소스 파일 목록을 컴파일합니다. -
파일 이름 표현에서 60% 압축에 대해
debuginfod
서버 스키마가 변경되었습니다(이를 다시 인덱싱해야 함).
Valgrind
가 3.22로 업데이트됨
valgrind
패키지가 3.22 버전으로 업데이트되었습니다. 주요 개선사항은 다음과 같습니다.
-
Val
grind
memcheck
는 이제 C 함수memalign
,posix_memalign
,aligned_alloc
, C++17 정렬새
연산자에 지정된 값이 유효한 정렬 값인지 확인합니다. -
Valgrind
memcheck
는 이제 C++14 크기d 및 C++17에 대한 불일치 탐지를
지원합니다. -
DWARF 디버깅 정보에 대한 지연 읽기 지원이 추가되어
debuginfo
패키지가 설치될 때 더 빨리 시작됩니다.
Clang 리소스 디렉터리 이동
Clang이 내부 헤더 및 라이브러리를 저장하는 Clang 리소스 디렉터리가 /usr/lib64/clang/17
에서 /usr/lib/clang/17
로 이동되었습니다.
새 grafana-selinux
패키지
이전에는 grafana-server
의 기본 설치가 unconfined_service_t
SELinux 유형으로 실행되었습니다. 이번 업데이트에서는 grafana-server
에 대한 SELinux 정책이 포함되어 있고 기본적으로 grafana-server
를 사용하여 설치하는 새로운 grafana-selinux
패키지가 추가되었습니다. 그 결과 grafana-server
가 grafana_t
SELinux 유형으로 실행됩니다.
GCC Toolset 13 업데이트
GCC Toolset 13은 최신 버전의 개발 도구를 제공하는 컴파일러 툴셋입니다. AppStream 리포지토리에서 소프트웨어 컬렉션 형식으로 Application Stream으로 사용할 수 있습니다.
RHEL 8.10에 도입된 주요 변경 사항은 다음과 같습니다.
- GCC 컴파일러가 버전 13.2.1로 업데이트되어 업스트림 GCC에서 사용할 수 있는 많은 버그 수정 및 개선 사항을 제공합니다.
-
binutils
는-march=
znver5
컴파일러 스위치를 통해 znver5 코어를 기반으로 AMD CPU를 지원합니다. -
annobin
이 12.32 버전으로 업데이트되었습니다. -
GCC용
annobin
플러그인은 기본적으로 오브젝트 파일에 저장된 노트에 더 압축된 형식을 사용하므로 오브젝트 파일을 더 작고 더 빠른 링크 시간, 특히 대규모의 복잡한 프로그램에서 사용할 수 있습니다.
다음 툴 및 버전은 GCC Toolset 13에서 제공합니다.
툴 | 버전 |
---|---|
GCC | 13.2.1 |
GDB | 12.1 |
binutils | 2.40 |
dwz | 0.14 |
annobin | 12.32 |
GCC Toolset 13을 설치하려면 root로 다음 명령을 실행합니다.
# yum install gcc-toolset-13
GCC Toolset 13에서 툴을 실행하려면 다음을 수행합니다.
$ scl enable gcc-toolset-13 tool
GCC Toolset 13의 툴 버전이 다음 툴의 시스템 버전을 재정의하는 쉘 세션을 실행하려면 다음을 수행합니다.
$ scl enable gcc-toolset-13 bash
자세한 내용은 GCC Toolset 13 및 GCC Toolset 사용을 참조하십시오.
Jira:RHEL-25405[1]
LLVM Toolset이 17.0.6 버전으로 업데이트됨
LLVM Toolset이 17.0.6 버전으로 업데이트되었습니다.
주요 개선 사항은 다음과 같습니다.
- 이제 불투명 포인터 마이그레이션이 완료되었습니다.
- 중간 단위 최적화에서 레거시 통과 관리자에 대한 지원 삭제
Clang 변경 사항:
- C++20 coroutine은 더 이상 실험적인 것으로 간주되지 않습니다.
-
std::move
함수에 대한 코드 생성이 개선되었으며 최적화되지 않은 빌드에서 비슷합니다.
자세한 내용은 LLVM 및 Clang 업스트림 릴리스 노트를 참조하십시오.
rust Toolset 버전 1.75.0으로 업데이트됨
rust Toolset이 1.75.0 버전으로 업데이트되었습니다.
주요 개선 사항은 다음과 같습니다.
- 지속적인 평가 시간은 무제한입니다.
- Cleaner 패닉 메시지
- 레지스트리 인증
-
특성의
async fn
및 opaque 반환 유형
Go Toolset을 버전 1.21.0으로 업데이트
Go Toolset이 1.21.0 버전으로 업데이트되었습니다.
주요 개선 사항은 다음과 같습니다.
-
min
,max
및clear
built-ins가 추가되었습니다. - 프로필 가이드 최적화에 대한 공식 지원이 추가되었습니다.
- 이제 패키지 초기화 순서가 보다 정확하게 정의됩니다.
- 유형 유추가 향상되었습니다.
- 이전 버전과의 호환성 지원이 향상되었습니다.
자세한 내용은 Go 업스트림 릴리스 노트를 참조하십시오.
Jira:RHEL-11872[1]
Papi에서
새로운 프로세서 마이크로 아키텍처 지원
이번 개선된 기능을 통해 다음 프로세서 마이크로 아키텍처에서 papi
이벤트를 사전 설정하여 성능 모니터링 하드웨어에 액세스할 수 있습니다.
- AMD Cryostat 4
- 4th Generation Intel® Xeon® Scalable Processors
Jira:RHEL-9336[1], Jira:RHEL-9320, Jira:RHEL-9337
ant가 버전 1.10.9로 업데이트됨
ant:1.10
모듈 스트림이 버전 1.10.9로 업데이트되었습니다. 이 버전은 공급자 클래스 및 공급자 인수를 사용하여 코드 서명을 지원합니다.
업데이트된 ant:1.10
모듈 스트림은 ant
및 ant-lib
패키지만 제공합니다. Cryostat와 관련된 나머지 패키지는 지원되지 않는 CRB(CodeReady Linux Builder) 리포지토리의 javapackages-tools
모듈에 배포되며 업데이트되지 않았습니다.
업데이트된 ant:1.10
모듈 스트림의 패키지는 javapackages-tools
모듈의 패키지와 동시에 사용할 수 없습니다. Cryostat 관련 패키지 전체 세트를 사용하려면 ant:1.10
모듈을 제거한 후 비활성화한 후 CRB 리포지토리를 활성화하고 javapackages-tools
모듈을 설치해야 합니다.
새로운 패키지: maven-openjdk21
maven:3.8
모듈 스트림에는 OpenJDK 21에 대한 Maven JDK 바인딩을 제공하고 시스템 OpenJDK 21을 사용하도록 Maven을 구성하는 maven-openjdk21
하위 패키지가 포함됩니다.
Jira:RHEL-17126[1]
CMake
버전 3.26로 업데이트
cmake
패키지가 3.26 버전으로 업데이트되었습니다. 주요 개선사항은 다음과 같습니다.
- C17 및 C18 언어 표준에 대한 지원이 추가되었습니다.
-
CMake는 이제 운영 체제 식별 정보를 위해
수 있습니다./etc/os-release
파일을 쿼리할 -
CUDA 20 및
nvtx3
라이브러리에 대한 지원이 추가되었습니다. - Python 안정적인 애플리케이션 바이너리 인터페이스에 대한 지원이 추가되었습니다.
- SWIG(Simplified Wrapper and Interface Generator) 툴에 Perl 5에 대한 지원이 추가되었습니다.