반응형
전체 전처리 방식이 궁금하다면 아래 글을 참고하길 바란다.
2022.01.27 - [Embedded/Linux Kernel] - [Linux Kernel] 전처리 코드 생성 : 전체 전처리 파일 추출
[Linux Kernel] 전처리 코드 생성 : 전체 전처리 파일 추출
리눅스 커널은 캡슐화나 다형성 등 객체지향 방식으로 구현이 된 소스들이 많다. 사실 필자는 객체지향 언어를 좋아하다 보니 오히려 편하다. 본론으로 돌아와 그래서 매크로로 구현된 코드가
darkengineer.tistory.com
이 글 에서는 특정 전처리 파일 추출 방법에 대해 설명해 보겠다.
전체 전처리 추출 방식은 많은 메모리를 잡아 먹게 된다.
그리고 빌드를 수시로 해야되는 단점도 존재한다.
그래서 이럴 때 특정 전처리 추출 방식이 필요하다.
아래 빌드 스크립트 코드를 실행 하면 되는데, 주석 부분 내용 참고하면 된다.
#!/bin/bash
echo "configure build output path"
KERNEL_TOP_PATH="$( cd "$(dirname "$0")" ; pwd -P )"
OUTPUT="$KERNEL_TOP_PATH/out"
echo "$OUTPUT"
KERNEL=kernel7l
BUILD_LOG="$KERNEL_TOP_PATH/rpi_preproccess_build_log.txt"
//아래 부분이 특정 파일 추출을 받아서
PREPROCESS_FILE=$1
echo "build preprocessed file: $PREPROCESS_FILE"
echo "move kernel source"
cd linux
echo "make defconfig"
make O=$OUTPUT bcm2711_defconfig
//여기서 해당 파일만 전처리
echo "kernel build"
make $PREPROCESS_FILE O=$OUTPUT zImage modules dtbs -j4 2>&1 | tee $BUILD_LOG
달아 놓은 주석을 통해, 아마 간단히 유추 가능할거로 판단된다.
더 설명 하자면 $1 을 통해 빌드 스크립트 실행 시 추가 옵션 명령어를 읽어와
make 실행 시 읽어 온 특정 파일만 전처리 파일 추출을 진행하게 되는 것이다.
아래와 같이 빌드가 정상되면 core.i 전처리 파일이 생성이 된다.
반응형
'Embedded > Linux Kernel' 카테고리의 다른 글
[Linux Kernel] ftrace Log 포맷 해석 및 발생 경로 확인 (0) | 2022.02.01 |
---|---|
[Linux Kernel] ftrace 디버깅 사용하기 (0) | 2022.02.01 |
[Linux Kernel] objdump 바이너리 유틸리티 (0) | 2022.01.30 |
[Linux Kernel] 전처리 코드 생성 : 전체 전처리 파일 추출 (0) | 2022.01.27 |
[Linux Kernel] 리눅스 커널 빌드 flex, bison 오류 해결하기 (0) | 2022.01.25 |