6장. 컴파일러 및 툴


명령 중단 후 tcsh 가 더 이상 일치하지 않는 상태가 아닙니다

eval sleep 10 명령을 중단하면 tcsh 쉘이 incosistent 상태로 유지되었습니다. 그 결과 Ctrl+D 키 조합을 두 번 눌러 쉘을 성공적으로 종료해야 했습니다. 이번 업데이트를 통해 Ctrl+D를 한 번 누른 후 tcsh 가 올바르게 종료됩니다. (BZ#1219923)

tcsh에서 if 문의 올바른 구문 분석

then 키워드 앞에 공백이 없는 경우 tcsh 쉘이 if 문을 올바르게 구문 분석하지 못했습니다. 그 결과 if 문의 잘못된 분기가 처리되어 코드의 잘못된 섹션과 오류가 발생했습니다. then 키워드가 누락되기 전에 소스 코드를 올바르게 처리하도록 tcsh 쉘이 수정되었습니다. (BZ#1231097)

RELRO 보호가 요청 시 올바르게 적용됨

이전에는 시스템 로더에 의해 시작된 바이너리 파일이 경우에 따라 애플리케이션 빌드 시 명시적으로 요청되어도 Relocation Read-Only(RELRO) 보호가 없었습니다. 이는 정적 링커와 시스템 로더 간의 잘못된 통신 때문입니다. 로더가 RELRO 보호를 적용할 수 있도록 링커의 기본 소스 코드가 조정되어 애플리케이션의 보안 기능을 복원할 수 있습니다. 이전 버전의 binutils 로 빌드된 애플리케이션 및 모든 종속 오브젝트 파일, 아카이브 및 라이브러리는 이 결함을 수정하도록 다시 빌드해야 합니다. (BZ#1227839)

tcsh에 의해 올바르게 해석되는 이스케이프 순서

이전에는 tcsh 명령- language 인터프리터에서 백슬래시 \ 문자로 시작하는 특정 이스케이프 시퀀스를 잘못 사용했습니다. 이번 업데이트에서는 이스케이프 시퀀스의 해석이 수정되었으며 tcsh 는 이제 Red Hat Enterprise Linux 5와 동일한 결과를 반환합니다. (BZ#1301857)

다중 CPU 시스템에서 더 높은 성능을 위해 OpenMP heuristics 조정

대기 시간을 결정하기 위해 GNU OpenMP 런타임( libgomp )에서 사용하는 추론은 다중 프로세서 시스템에서 CPU 선호도를 고려하여 더 낮은 회전 수를 사용하도록 조정되었습니다. 결과적으로 교착 상태가 발생하거나 리소스 부족으로 인해 매우 느리게 실행된 프로그램은 이제 훨씬 더 빠르게 실행됩니다. (BZ#1229852)

localtime_r()를 호출하는 스레드 애플리케이션의 잠금 경합 감소 및 성능 향상

이전에 localtime_r() 함수의 잠금 경합이 이 함수를 자주 호출해야 하는 스레드 애플리케이션의 성능이 저하되었습니다. glibc 라이브러리의 내부 루틴의 잠금 획득은 잠금 경합 가능성을 줄이기 위해 재구성되었습니다. (BZ#1244585)

$$eval 명령 또는 $(shell) 구문을 처리할 때 make 유틸리티는 더 이상 예기치 않게 종료되지 않습니다.

make 패키지의 버그로 인해 $$eval 명령 또는 $(shell) 프로세스가 포함된 파일을 처리할 때 make 유틸리티가 예기치 않게 종료될 수 있습니다. 이러한 버그는 수정 되었으며 이러한 상황에서 더 이상 충돌하지 않습니다. (BZ#835483)

병렬 빌드가 더 이상 예기치 않게 종료되지 않음

이전 버전에서는 버그로 인해 make 유틸리티가 오류 메시지를 표시하고 병렬 빌드를 실행할 때 예기치 않게 종료되었습니다. 이제 이 문제가 해결되었으며 이 버그로 인해 병렬 빌드가 더 이상 충돌하지 않습니다. (BZ#861189)

$(eval) 구문으로 인해 병렬 빌드가 더 이상 예기치 않게 종료되지 않음

이전 버전에서는 버그로 인해 $(eval) 구문이 포함된 병렬 빌드를 실행할 때 make 유틸리티가 예기치 않게 종료되었습니다. 이제 이 문제가 해결되었으며 이 버그로 인해 병렬 빌드가 더 이상 충돌하지 않습니다. (BZ#1093149)

d Cryostat() 및 fork()를 동시에 호출할 때 다중 스레드 애플리케이션이 더 이상 충돌하지 않음

d Cryostat() 및 fork() glibc 함수를 동시에 사용하는 다중 스레드 애플리케이션은 이전에 세그먼트 오류로 예기치 않게 종료될 수 있었습니다. 이번 업데이트를 통해 fork() 구현이 d Cryostat()에 의해 생성된 임시 스트림을 무시하도록 수정되었으며 설명된 문제가 더 이상 발생하지 않습니다. (BZ#1275384)

malloc() 확장성을 높이기 위해 코어 C 라이브러리(glibc) 개선

malloc() 함수 구현의 결함으로 인해 스레드 간에 메모리 할당 요청이 불필요한 직렬화가 발생할 수 있습니다. 이번 업데이트에서는 이 문제가 해결되어 스레드를 자주 생성하고 삭제하는 애플리케이션에 대한 할당 요청의 동시 처리량이 크게 증가합니다. (BZ#1264189)

/etc/mcelog/mcelog.conf의 향상된 문서

/etc/ mcelog /mcelog.conf 에 있는 기본 mcelog 구성 파일에 mem-ce-error-log 와 같은 사용 가능한 여러 옵션에 대한 더 나은 설명이 포함되어 있습니다. (BZ#1170580)

감사 모듈에서 DSO 경로를 제공하는 경우 동적 링커(ld.so)가 더 이상 실패하지 않음

이전에는 감사 모듈에서 대체 DSO(동적 공유 오브젝트) 경로를 제공할 때 ld.so 동적 링커가 세그먼트 오류로 예기치 않게 종료되었습니다. 이 업데이트는 버그를 해결하며 동적 링커는 향후 참조를 위해 원래 DSO 경로를 계속 추적하고 더 이상 실패하지 않습니다. (BZ#1211098)

glibctzdata 업데이트는 더 이상 /etc/localtime 심볼릭 링크를 대체하지 않음

이전 버전에서는 /etc/localtime 파일이 심볼릭 링크인 시스템에서 glibctzdata 패키지의 업데이트에서 링크를 /etc/sysconfig/clock 구성 파일에 정의된 time-zone 파일로 교체했습니다. 문제를 해결하기 위해 패치가 적용되었으며 심볼릭 링크로 /etc/localtime 이 더 이상 대체되지 않습니다. 최대한의 호환성을 위해 /etc/localtime 을 직접 수정하지 않는 것이 좋습니다. 대신 /etc/sysconfig/clock 구성 파일을 편집하고 나중에 tzdata-update 명령을 실행합니다. (BZ#1200555)

glibc POSIX 실시간 지원이 더 이상 대규모 TLS 데이터에서 실패하지 않음

glibc 라이브러리의 POSIX 실시간 지원 결함으로 인해 대규모 스레드 로컬 스토리지(TLS) 데이터가 있으면 비동기 I/O 또는 특정 타이머 API 호출이 실패했습니다. librt 라이브러리가 수정되었으며 애플리케이션에 대규모 TLS 데이터가 있는 경우 영향을 받는 API에서 더 이상 오류 메시지를 반환하지 않습니다. (BZ#1299319)

iconv 는 더 이상 중복 변경 시퀀스를 추가하지 않음

이전에는 iconv 유틸리티에서 IBM930, IBM933, IBM935, IBM937 및 IBM939 문자 세트에 대한 문자 변환이 잘못 처리되는 경우가 있었습니다. 그 결과 iconv 의 출력에 중복 이동 시퀀스가 포함되었습니다. 생성된 비정형 출력은 출력 데이터를 읽을 수 없게 될 수 있습니다. 문자 변환 루틴이 수정되었으며 더 이상 중복 전환 시퀀스를 출력하지 않습니다. (BZ#1293914)

/etc/gai.conf 가 더 이상 glibc-common 패키지에 속한 것으로 나열되지 않음

이전 버전에서는 rpm -V 명령을 사용하여 해당 패키지가 해당 파일을 소유하지 않은 경우에도 glibc-common 패키지를 확인할 때 /etc/gai.conf 구성 파일을 수정으로 플래그를 지정할 수 있었습니다. 이번 업데이트에서는 glibc-common 에서 잘못된 파일 항목이 제거됩니다. 결과적으로 rpm -V glibc-common 은 더 이상 /etc/gai.conf 구성 파일을 수정된 것으로 나열되지 않습니다. (BZ#1223818)

java-1.8.0-openjdk 설치에 대한 이름 지정 규칙이 일관되게 설정되었습니다.

이전에는 java-1.8.0-openjdk 패키지의 설치 디렉터리에 대해 자동으로 생성된 이름이 java-1.6.0-openjdkjava-1.7.0-openjdk 패키지의 설치 디렉터리 이름과 일치하지 않았습니다. 그 결과 java-1.8.0-openjdk 와 상호 작용할 때 일관된 Java 이름 지정 패턴을 예상하는 애플리케이션 및 자동화된 툴이 실패했습니다. 이번 업데이트를 통해 java-1.8.0-openjdk 설치 디렉터리는 이전 버전과 동일한 패턴을 따르므로 설명 된 문제가 발생하지 않습니다. 경로 구조의 변경으로 인해 이 업데이트 전에 java-1.8.0-openjdk 버전으로 되돌릴 수 없습니다. (BZ#1217177)

LDAP 바인딩 암호가 올바르게 난독 처리됨

이전에는 sosreport 유틸리티에서 일반 텍스트로 LDAP 바인딩 인증 정보를 캡처할 수 있었습니다. 이 문제는 해결되었으며 LDAP 바인딩 암호가 예상대로 sosreport 에서 난독 처리되었습니다. (BZ#1227462)

ipa-replica-image 를 사용할 때 sosreport 가 더 이상 시간 초과되지 않음

이전 버전에서는 ipa-replica-image 명령을 사용하여 sosreport 유틸리티를 실행하는 데 시간이 오래 걸리는 경우도 있었습니다. 또한 인증 관련 문제를 해결하는 데 필요한 모든 정보가 sosreport 에서 캡처되는 것은 아닙니다. 이번 업데이트를 통해 sosreport 에서 충분한 인증 관련 정보를 수집하고 ipa-replica-image 를 제거하여 설명된 시간 초과가 발생하지 않습니다. (BZ#1203947)

--acls 를 사용할 때 tar 이 ACL을 올바르게 설정

이전 버전에서는 --acls 옵션을 사용하여 tar 파일을 추출하면 추출된 파일이 상위 디렉터리의 기본 ACL(액세스 제어 목록)을 상속했습니다. 이번 업데이트를 통해 --acls 를 사용하면 tar 에서 아카이브에 설정된 동일한 ACL이 있는 모든 파일과 디렉토리를 추출합니다. (BZ#1220891)

tar 에서 큰 UID가 있는 사용자가 생성한 아카이브를 올바르게 처리합니다.

UID 또는 GID가 2097151보다 큰 사용자가 pax 아카이브를 생성한 경우 아카이브가 올바르게 생성되었지만 tar 에서 잘못된 경고 메시지와 0이 아닌 종료 상태를 반환했습니다. 이 버그가 수정되어 tar 가 올바른 종료 상태로 종료되고 잘못된 경고 메시지가 표시되지 않습니다. (BZ#1247788)

긴 인수로 인한 버퍼 오버플로를 방지하기 위해 OProfile이 수정되었습니다.

이번 업데이트 이전에는 OProfile의 인수 확인 코드가 긴 경로 이름 또는 이벤트 장치 마스크를 통과할 때 버퍼 오버플로를 일으킬 수 있는 문제로 인해 발생했습니다. 이번 업데이트에서는 문제를 해결하고 긴 인수가 더 이상 버퍼 오버플로를 유발하지 않습니다. (BZ#1206242)

OProfile 은 IBM POWER7 이상 시스템에서 올바르게 작동합니다.

이번 업데이트 이전에는 IBM POWER Systems의 OProfile 이 이전 버전의 libpfm 라이브러리를 사용하여 빌드되어 POWER7+ 프로세서를 지원하지 않고 operfocount 툴을 새 IBM POWER Systems에서 성공적으로 실행할 수 없었습니다. 이 버그가 수정되었으며 이제 operfocount 명령이 POWER7 이상 시스템에서도 예상대로 작동합니다. (BZ#1303970)

'dlopen: cannot load any more object with static TLS'로 더 이상 애플리케이션이 실패하지 않음

glibc 동적 로더는 정적 스레드 로컬 스토리지(TLS)를 사용하는 16개 이상의 공유 라이브러리를 로드할 수 없었습니다. 결과적으로 dlopen: cannot load any more object with static TLS.라는 오류 메시지와 함께 애플리케이션이 실패할 수 있었습니다. 이 버그는 수정되었으며 이제 애플리케이션이 충분한 정적 스토리지 공간을 사용할 수 있는 경우 이 시나리오에서 올바르게 시작됩니다. (BZ#1198802)

GDB 는 이제 더 작은 코어 파일을 생성하고 코어 덤프 필터링을 준수합니다.

GDB 에 자체 코어 덤프 기능을 제공하는 gcore 명령이 Linux 커널 코어 덤프 코드의 기능을 보다 밀접하게 시뮬레이션하도록 업데이트되어 더 작은 core-dump 파일을 생성합니다. GDB 는 이제 코어 덤프 파일에 기록된 메모리 세그먼트를 제어하는 /proc/PID/coredump_filter 파일도 준수합니다. (BZ#1085906)

GDB 는 삭제된 실행 파일로 실행 중인 프로세스를 더 이상 종료하지 않음

이번 업데이트 이전에는 삭제된 실행 파일이 있는 실행 중인 프로세스에 GDB 를 연결하려고 하면 실수로 프로세스가 종료될 수 있었습니다. 이 버그는 수정되었으며 GDB 는 더 이상 삭제된 실행 파일로 프로세스를 잘못 종료하지 않습니다. (BZ#1219747)

Bash에서 신호 처리 수정

malloc() 과 같은 특정 signal-unsafe 함수를 호출하는 신호 처리기 함수로 인해 일부 경우 Bash 쉘은 신호를 수신한 후 응답하지 않게 되었습니다. 이번 업데이트를 통해 신호 처리기에서 더 이상 신호 안전하지 않은 함수를 호출하지 않도록 하여 설명된 버그가 발생하지 않습니다. (BZ#868846)

이제 bash의 산술 표현식 내에서 명령 대체가 작동합니다.

이전에는 bash 에서 재귀 호출에 대한 입력 행 상태를 쉘 구문 분석기에 저장하지 않아 쉘이 arithmetic 표현식 내에서 명령 대체를 구문 분석하지 못했습니다. 예를 들어 다음 명령이 실패했습니다.
for point in "/boot"; do disk_dir["$( df -P $point | awk '{print $1}' )"]=1; done
이 버그가 수정되어 이제 parser에 대한 재귀 호출을 수행하기 전에 bash 가 입력 행 상태를 저장하고, 이제 arithmetic 표현식 내에서 명령 대체가 작동합니다. (BZ#1207803)

KornShell은 이제 예상대로 신호 트랩을 재설정하고 수정하며 더 이상 충돌하지 않음

이전에는 특정 신호 트랩을 재설정하거나 수정하려고 할 때 KornShell (ksh)이 세그먼트화 결함으로 예기치 않게 종료되었습니다. 이번 업데이트를 통해 ksh는 문자열 리터럴에 사용된 메모리를 해제하려고 시도하지 않습니다. 결과적으로 ksh가 더 이상 설명 된 상황에서 충돌하지 않습니다. (BZ#1247383)

확장된 속성 및 ACL이 지원되지 않는 경우 ls 출력을 인쇄하는 데 더 이상 시간이 오래 걸리지 않습니다.

이전에는 확장 속성 및 ACL(액세스 제어 목록)을 지원하지 않고 파일 시스템에 파일 및 디렉토리를 나열하려면 모든 파일에 대한 불필요한 lstat() 및 lgetxattr() 시스템 호출이 필요했습니다. 결과적으로 ls 명령의 출력을 출력하는 데 몇 초가 걸릴 수 있었습니다. 이제 시스템 호출의 결과가 지원되지 않으면 ls 는 이 마운트 지점에서 다시 호출을 시도하지 않습니다. 결과적으로 ls 출력의 인쇄 속도가 설명된 상황에서 크게 향상되었습니다. (BZ#1248141)

KornShell은 포크할 때 명령 목록에서 더 이상 백그라운드 프로세스를 생략하지 않음

KornShell (ksh)의 버그로 인해 명령 목록에서 백그라운드 프로세스를 포크하는 경우 이전에 해당 프로세스를 완전히 생략할 수 있었습니다. 이제 하위 프로세스 생성을 처리하는 소스 코드가 수정되었으며 명령 목록의 백그라운드 프로세스가 예상대로 실행됩니다. (BZ#1217236)

다중 바이트 문자는 더 이상 KornShell에서 손상되지 않습니다.

이전에는 ksh( KornShell)에서 명령줄 옵션 변수 뒤에 멀티바이트 유니코드 구문 분석기가 전환된 입력을 수신했습니다. 그 결과 명령줄 변수 뒤에 멀티바이트 문자가 손상되었습니다. 멀티바이트 입력 구문 분석을 수정하기 위해 패치가 적용되었습니다. 결과적으로 멀티바이트 문자가 설명된 상황에서 올바르게 처리됩니다. (BZ#1256495)

Oracle ACFS는 이제 알려진 파일 시스템에 포함되어 있습니다.

이전에는 Oracle ASM Cluster File System (ACFS)이 stattail 유틸리티에 대해 알려진 파일 시스템에 나열되지 않았습니다. 그 결과 tail 유틸리티에서 파일 시스템이 인식되지 않았음을 나타내는 오류 메시지를 출력했습니다. ACFS가 알려진 파일 시스템 목록에 추가되어 더 이상 설명 된 상황에 오류 메시지가 표시되지 않습니다.
또한 업스트림에서 인식하는 다른 파일 시스템도 알려진 파일 시스템 목록에 추가되었습니다. 즉, acfs,bpf_fs,btrfs_test,configfs,efivarfs,exofs,f2fs,hfs+, , HFS X ,hostfs,ibrix,logfs,nsfs,overlayfs,smackfs,snfs,tracefs, ubifs. (BZ#1280333)

netfs stop 명령은 관련 루프 장치만 마운트 해제합니다.

이전에는 netfs 서비스를 중지할 때 모든 루프 장치가 umnounted되었습니다. 이번 업데이트를 통해 netfs stop 명령을 실행할 때 관련 루프 장치만 마운트 해제됩니다. 즉, 네트워크 마운트 상단에 마운트된 것입니다. (BZ#1156231)
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

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

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

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

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동