5장. 보충 주제
5.1. 컴파일러 및 개발 도구의 호환성 혁신적인 변경 사항
librtkaio 제거
이번 업데이트를 통해 librtkaio 라이브러리가 제거되었습니다. 이 라이브러리는 Linux 커널 비동기 I/O 지원(KAIO)을 기반으로 하는 일부 파일에 대해 고성능 실시간 비동기 I/O 액세스를 제공했습니다.
제거의 결과로 다음을 수행하십시오.
-
LD_PRELOAD
방법을 사용하는 애플리케이션에서 librtkaio 에 대한 경고를 표시하고 librt 라이브러리를 로드한 다음 올바르게 실행합니다. -
LD_LIBRARY_PATH
메서드를 사용하는 애플리케이션은 librtkaio 를 로드하고 대신 librt 라이브러리를 로드하고 경고 없이 올바르게 실행됩니다. -
대신 librtkaio에 직접 로드하기 위해
dlopen()
시스템 호출을 사용하는 애플리케이션에서 librt kaio 에 직접 로드합니다.
librtkaio 사용자는 다음과 같은 옵션이 있습니다.
- 애플리케이션을 변경하지 않고 위에서 설명한 대체 메커니즘을 사용합니다.
- 호환되는 POSIX 호환 API를 제공하는 librt 라이브러리를 사용하도록 애플리케이션 코드를 변경합니다.
- 호환되는 API를 제공하는 libaio 라이브러리를 사용하도록 애플리케이션 코드를 변경합니다.
librt 와 libaio 는 모두 특정 조건에서 유사한 기능과 성능을 제공할 수 있습니다.
libaio 패키지에는 Red Hat 호환성 수준이 2인 반면 librtk 및 제거된 librt kaio 수준 1이 있습니다.
자세한 내용은 https://fedoraproject.org/wiki/Changes/GLIBC223_librtkaio_removal를 참조하십시오.
glibc
에서 제거된 Sun RPC 및 NIS 인터페이스
glibc
라이브러리는 더 이상 새 애플리케이션을 위한 Sun RPC 및 NIS 인터페이스를 제공하지 않습니다. 이러한 인터페이스는 이제 레거시 애플리케이션을 실행하는 경우에만 사용할 수 있습니다. 개발자는 NIS 대신 Sun RPC 및 lib
라이브러리를 사용하도록 애플리케이션을 변경해야 합니다. 애플리케이션은 대체 라이브러리에서 IPv6 지원의 이점을 누릴 수 있습니다.
nsl2 대신 lib
tirpc
32비트 Xen을 위한 nosegneg
라이브러리가 제거되었습니다.
이전에는 glibc
i686 패키지에 대체 glibc
빌드가 포함되어 있어 음수 오프셋(nosegneg)으로 스레드 설명자 세그먼트 레지스터를
사용하지 않았습니다. 이 대체 빌드는 전체 반가상화 비용을 줄이기 위한 최적화로 하드웨어 가상화 지원 없이 32비트 버전의 Xen Project 하이퍼바이저에서만 사용되었습니다. 이러한 대체 빌드는 더 이상 사용되지 않으며 제거되었습니다.
새
operator !=
을 지정하면 기존 특정 makefile 구문에 대해 다른 해석이 발생합니다.
!=
쉘 할당 연산자가
BSD makefile과의 호환성을 높이기 위한 기능. 결과적으로 이름이 느낌표로 끝나고 $(shell …)
variable!=value
와 같은 할당이 바로 뒤에 오는 변수가 쉘 할당으로 해석됩니다. 이전 동작을 복원하려면 variable! =value
와 같이 느낌표 뒤에 공백을 추가하십시오.
연산자와 함수 간의 자세한 내용과 차이점은 GNU make
설명서를 참조하십시오.
MPI 디버깅 지원을 위한 Valgrind 라이브러리
valgrind-open
래퍼 라이브러리가 제거되었습니다. 이 라이브러리는 MPI(Message Passing Interface)를 사용하여 디버그 프로그램에 Valgrind 를 활성화했습니다. 이 라이브러리는 이전 버전의 Red Hat Enterprise Linux의 Open MPI 구현 버전에만 해당됩니다.
mpi 패키지에서 제공한 Valgrind 용 libmpi
wrap.so
libmpiwrap.so
사용자는 MPI 구현 및 버전과 관련된 업스트림 소스에서 자체 버전을 빌드하는 것이 좋습니다. LD_PRELOAD
기술을 사용하여 이러한 맞춤형 라이브러리를 Valgrind 에 제공합니다.
valgrind-devel
에서 제거된 개발 헤더 및 정적 라이브러리
이전에는 사용자 정의 valgrind 툴을 개발하기 위한 개발 파일을 포함하는 데 사용되는 valgrind-devel
하위 패키지였습니다. 이번 업데이트에서는 보장된 API가 없고 정적으로 연결해야 하며 지원되지 않으므로 이러한 파일이 제거됩니다. valgrind-devel
패키지에는 여전히 안정적이고 잘 지원되는 memcheck.h, call grind.h,
-aware 프로그램 및 헤더 파일용 개발 파일이 포함되어 있습니다.
callgrind.h,
grindhelgrind
, .h
memcheck.h
와 같은 val