4.11. 컴파일러 및 개발 도구


새 모듈 스트림: swig:4.1

RHEL 8.8에는 새로운 모듈 스트림인 swig:4.1 로 사용할 수 있는 SWIG(Simplified Wrapper and Interface Generator) 버전 4.1이 도입되었습니다.

RHEL 8.4에서 릴리스된 SWIG 4.0 과 비교, SWIG 4.1:

  • Node.js 버전 12에서 18까지의 지원을 추가하고 6 개 미만의 Node.js 버전을 지원하지 않습니다.
  • PHP 8 에 대한 지원을 추가합니다.
  • PHP 래핑은 PHP C API를 통해 전적으로 처리되며 더 이상 기본적으로 .php 래퍼를 생성하지 않습니다.
  • Perl 5.8.0 이상 버전만 지원합니다.
  • Python 버전 3.9에 대한 지원이 3.11에 추가되었습니다.
  • Python 3.3 이상 Python 3 버전 및 Python 2.7 만 지원합니다.
  • Python의 다양한 메모리 누수에 대한 수정 사항을 제공합니다 - 생성된 코드.
  • C99, C++11, C++14 및 C++17 표준에 대한 지원을 개선하고 C++20 표준 구현을 시작합니다.
  • C++ std::unique_ptr 포인터 클래스에 대한 지원을 추가합니다.
  • C++ 템플릿 처리 시 몇 가지 개선 사항이 포함되어 있습니다.
  • 다양한 경우 C++ 선언 사용을 수정합니다.

swig:4.1 모듈 스트림을 설치하려면 다음을 사용합니다.

# yum module install swig:4.1

이전 swig 모듈 스트림에서 업그레이드하려면 이후 스트림으로 전환 을 참조하십시오.

swig 모듈 스트림의 지원 기간에 대한 자세한 내용은 Red Hat Enterprise Linux Application Streams 라이프 사이클을 참조하십시오.

Bugzilla:2139076

새로운 모듈 스트림: j Galaxyb:4

RHEL 8.8에서는 Jakarta XML Binding (JAXB) 4를 새로운 jvnc b:4 모듈 스트림으로 도입했습니다. CloudEventB는 개발자가 Java 클래스를 XML 표현에 매핑할 수 있도록 하는 프레임워크입니다.

j Galaxy b:4 모듈 스트림을 설치하려면 다음을 사용합니다.

# yum module install jaxb:4

Bugzilla:2055539

GCC Toolset 12 업데이트

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

RHEL 8.8에 도입된 주요 변경 사항은 다음과 같습니다.

  • GCC 컴파일러가 12.2.1 버전으로 업데이트되었으며 업스트림 GCC에서 사용할 수 있는 많은 버그 수정 및 개선 사항을 제공합니다.
  • Annobin 이 버전 11.08로 업데이트되었습니다.

다음 툴 및 버전은 GCC Toolset 12에서 제공합니다.

버전

GCC

12.2.1

GDB

11.2

binutils

2.38

dwz

0.14

annobin

11.08

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

# yum install gcc-toolset-12

GCC Toolset 12에서 도구를 실행하려면 다음을 수행하십시오.

$ scl enable gcc-toolset-12 tool

GCC Toolset 12의 툴 버전이 다음 툴의 시스템 버전을 재정의하는 쉘 세션을 실행하려면 다음을 수행하십시오.

$ scl enable gcc-toolset-12 bash

자세한 내용은 GCC Toolset 12 를 참조하십시오.

Bugzilla:2110582

glibc에 추가된 보안 개선 사항

SafeLinking 기능이 glibc 에 추가되었습니다. 결과적으로 allocator의 스레드 로컬 캐시를 포함하여 특정 단일 링크 목록 손상에 대한 malloc 제품군의 보호 기능이 향상됩니다.

Bugzilla:1871383

glibc 동적 로더 알고리즘 개선

공유 오브젝트를 처리하기 위한 glibc 동적 로더의 O(n3) 알고리즘은 공유 오브젝트 종속 항목이 중첩될 때 애플리케이션 시작 속도가 느려지고 종료 시간이 발생할 수 있습니다. 이번 업데이트를 통해 DFS(depth-first search)를 사용하도록 동적 로더 알고리즘이 개선되었습니다. 결과적으로 공유 개체 종속성이 중첩되는 경우 애플리케이션 시작 및 종료 시간이 크게 향상됩니다.

glibc 런타임 튜닝 가능 glibc.rtld.dynamic_sort 를 사용하여 동적 로더의 O(n3) 알고리즘을 선택할 수 있습니다. 튜닝 가능 항목의 기본값은 새 DFS 알고리즘을 나타내는 2입니다. 호환성을 위해 이전 O(n3) 알고리즘을 선택하려면 튜닝 가능 항목을 1로 설정합니다.

# GLIBC_TUNABLES=glibc.rtld.dynamic_sort=1
# export GLIBC_TUNABLES

Bugzilla:1159809

LLVM Toolset 버전 15.0.7로 업데이트

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

  • -Wimplicit-function-declaration-Wimplicit-int 경고는 기본적으로 C99 이상에서 활성화됩니다. 이러한 경고는 Clang 16 이상에서 기본적으로 오류가 발생합니다.

Bugzilla:2118568

rust Toolset 버전 1.66.1로 다시 시작

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

  • thread::scope API는 새로 생성된 스레드에서 로컬 변수를 안전하게 임대할 수 있는 어휘 범위를 생성하며, 해당 스레드는 범위가 종료되기 전에 모두 종료되도록 합니다.
  • hint::black_box API는 컴파일러 최적화에 장벽을 추가하여, 그렇지 않으면 최적화될 수 있는 벤치마크에서 동작을 유지하는 데 유용합니다.
  • 이제 .await 키워드는 IntoFuture 특성을 사용한 변환을 수행하며, 이는 IntoIterator 간의 관계와 유사합니다.
  • GAT(Generic associated types)를 사용하면 일반 매개변수로 형식 별칭을 포함할 수 있으므로 유형과 수명 모두에서 새로운 추상화를 사용할 수 있습니다.
  • 새로운 let-else 문을 사용하면 조건부 패턴 일치를 사용하여 로컬 변수를 바인딩하고, 패턴이 일치하지 않을 때 디버지 다른 블록을 실행할 수 있습니다.
  • 레이블 블록에서는 break 문을 사용하여 선택적으로 표현식 값을 포함하여 블록의 끝으로 이동할 수 있습니다.
  • rust-analyzer 는 많은 편집기에서 Rust 지원을 가능하게 하는 새로운 언어 서버 프로토콜 구현입니다. 이렇게 하면 이전 rls 패키지가 교체되지만 rust-analyzer 로 마이그레이션하도록 편집기 구성을 조정해야 할 수 있습니다.
  • grarb .toml 에서 종속성을 제거하기 위한 새로운 10.0.0.1 remove 하위 명령이 있습니다.

Bugzilla:2123899

Go Toolset rebased to 버전 1.19.4

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

  • 다음 패키지에 대한 보안 수정:

    • crypto/tls
    • MIME/multipart
    • net/http
    • path/filepath
  • 다음의 버그 수정:

    • Go 명령
    • 링커
    • 런타임
    • crypto/x509 패키지
    • net/http 패키지
    • 시간 패키지

Bugzilla:2174430

이제 tzdata 패키지에 /usr/share/zoneinfo/leap-seconds.list 파일이 포함됩니다.

이전에는 tzdata 패키지에서 /usr/share/zoneinfo/leapseconds 파일만 제공했습니다. 일부 애플리케이션은 /usr/share/zoneinfo/leap-seconds.list 파일에서 제공하는 대체 형식에 의존하여 결과적으로 오류가 발생합니다.

이번 업데이트를 통해 이제 tzdata 패키지에 두 형식의 형식을 사용하는 애플리케이션을 지원하는 두 파일이 모두 포함되어 있습니다.

Bugzilla:2154109

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.