'make cscope'에 해당하는 글 1건

커널을 분석의 첫걸음은  make cscope && make tags 이다.

만약에 export KBUILD_SRC가 존재한다면 make cscope 는 cscope.out 파일을 절대 경로로 구성하고

존재하지 않을 경우에는 cscope.out 파일을 상대 경로로 구성한다. 

상대 경로로 구성된 cscope.out 파일은 프로그래밍시 여러 불편을 일으키므로 절대경로로 구성된

cscope.out  를 사용하는 것이 편리하다.

문제는 시스템내에 여러 버전의 커널 소스를 유지할때 발생한다.

보통 $ENV 디렉토리를 두어..  매번  source $ENV/kernel.xxx  을 통해서  버전별 환경설정을 로드한다.

(이러한 환경설정에는 KBUILD_SRC 와 CSCOPE_DB 와같은 환경 변수들도 존재한다.)


 하지만 이런식으로 매번 환경변수들을 source 명령어로 export 하게되면

/lib/modules/커널버전/build 에서 sudo make cscope && sudo make tags 시에 유효하지 않다.

sudo 명령어 때문에 루트 쉘의 환경설정을 불러오기 때문에, export 한 환경변수들이 무효해지기 때문이

다.

따라서 sudo make cscope && sudo make tags 를 해야할 때에는 -e 옵션을 통해서 make 시에 환경변수들

을 포함시키도록 해줘야한다

sudo make cscope -e KBUILD_SRC=$PWD


와 같이...


 

WRITTEN BY
RootFriend
개인적으로... 나쁜 기억력에 도움되라고 만들게되었습니다.

,