-
Notifications
You must be signed in to change notification settings - Fork 126
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[CBRD-25784] Support Clang and GCC-14 Compilers #5766
base: develop
Are you sure you want to change the base?
Conversation
7a79432
to
2bef5d3
Compare
CMakeLists.txt
Outdated
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") | ||
else() | ||
message(FATAL_ERROR "We currently do not support ${CMAKE_CXX_COMPILER_ID} compiler") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
큐브리드 CMake 파일 컨벤션 상, elseif 조건이 추가되면 else() 괄호 안을 공백 으로 변경해 작성하는 것으로 보임.
template <typename T> | ||
void stx_restore (THREAD_ENTRY *thread_p, char *&ptr, T *&target); | ||
static void stx_restore (THREAD_ENTRY *thread_p, char *&ptr, T *&target); | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@vimkim build.sh을 이용할 때 컴파일러를 지정할 수 있나요? 해당 기능 역시 정리되어 이슈에 기술되면 좋겠습니다. |
build.sh에서 컴파일러 지정 방법현재는 다음 명령어로 clang 컴파일러를 사용한 빌드가 가능합니다: CFLAGS='-Wno-int-conversion -Wno-implicit-function-declaration -w' \
CXXFLAGS='-Wno-c++11-narrowing -Wno-non-pod-varargs -w' \
CC=clang CXX=clang++ \
./build.sh -m debug build 현재 상황 설명
개선 계획코드 분석 결과, 대부분의 문제가 간단히 해결 가능한 것으로 확인되었습니다. 버그 수정 후에는 다음과 같이 간단한 명령어로도 빌드가 가능해질 예정입니다: CFLAGS='-Wno-int-conversion' CC=clang CXX=clang++ ./build.sh -m debug build |
@vimkim 다음과 같이 제공된다면 사용자 입장에서 보다 편리하게 사용할 수 있을 것 같습니다.
|
9e4ae9d
to
213c93e
Compare
http://jira.cubrid.org/browse/CBRD-25784
Purpose
새로운 컴파일러 CLANG 14 및 18 버전에 대한 지원을 추가하여 개발자의 생산성을 향상시키고자 합니다. CLANG은 더 명확한 에러 메시지, 빠른 컴파일 속도, 향상된 정적 분석 도구를 제공하는 장점이 있습니다.
또한, 발생하는 컴파일 문제를 해결하는 과정에서 GCC/G++14의 빌드 실패 문제도 동시에 해결되었습니다.
Implementation
CMakeLists.txt 수정
flashback.h 수정
<algorithm>
헤더 추가https://en.cppreference.com/w/cpp/algorithm/find
xasl_stream.hpp 수정
static
키워드 추가하여 함수 선언과 정의의 일관성 확보Remarks
테스트 환경 1
테스트 환경 2
테스트 환경 3
Remarks
이 PR은 CUBRID의 기존 컴파일 에러를 해결하여 최신 GCC/G++14 컴파일러로의 빌드를 가능하게 합니다.
#5243
기존 PR #5243을 통해 GCC 8에서 GCC 11, 13까지 컴파일 지원이 확장되었으나, GCC 14에서는 Clang과 유사한 컴파일 에러가 발생했었습니다. 이번 PR을 통해 해당 문제가 해결되어 최신 GCC/G++ 14 컴파일러로도 CUBRID를 성공적으로 빌드할 수 있게 되었습니다.