mips용 개발을 하면서 역시나 필요한 툴은 gdb였다.
툴체인에서 gdb-server를 제공하지만 한번도 동작하는 것을 보지 못했다.
인터넷에는 다들 된다고 하는데 내가 뭘잘못했는데
ARM에서 개발할 때나 MIPS에서 개발할 때나 써보지 못했다.
그래서 mips용으로 gdb를 컴파일 해보자 삽질을 하였다.
respiro님께 문의 해보니 별다른 라이블러리는 필요없었고 Gdb에다가
configure 옵션만 잘주면 컴파일 된다고 하셨다.
그래서 인터넷을 찾아 보고 이런저런 삽질을 하다보니 드디어 빌드가 되었다.
호스트에서 디버깅하는것처럼 완벽하게 되지는 않지만 bt로 스택이나 볼수 있으니
개발하는데 편해졌다
configure 옵션은 다음과 같다.
AR=mipsel-linux-ar CC=mipsel-linux-gcc ./configure --build=i686-linux --host=mipsel-linux --target=mipsel-linux \
--prefix=/usr \
--exec-prefix=/usr \
--bindir=/usr/bin \
--sbindir=/usr/sbin \
--libexecdir=/usr/lib \
--sysconfdir=/etc \
--datadir=/usr/share \
--localstatedir=/var \
--mandir=/usr/man \
--infodir=/usr/info \
--includedir=build_mipsel/staging_dir/include \
--disable-nls \
--without-uiout --disable-gdbmi \
--disable-tui --disable-gdbtk --without-x \
--without-included-gettext
빌드중 termcap관련 에러가 발생하면 다음과 같이 toolchain에 termcap를 구해와 복사하면 된다.
Download termcap sources from here:
ftp://ftp.gnu.org/gnu/termcap/termcap-1.3.1.tar.gz
AR=mipsel-linux-ar CC=mipsel-linux-gcc ./configure --build=i686-linux \
--host=mipsel-linux --target=mipsel-linux \
--prefix=/home/chokori/tool/tool/smp86xx_rootfs_2.7.147.0/build_mipsel/root/usr/
[chokori@chokori staging_dir]$ cp ~/temp/termcap/termcap-1.3.1/libtermcap.a ./lib
[chokori@chokori staging_dir]$ cp ~/temp/termcap/termcap-1.3.1/termcap.h ./include/
빌드 중간에 mbstate_t관련 에러가 발생한다면 다음과 같이 환경 변수를
설정해 주면된다.
export bash_cv_have_mbstate_t=yes