Version 9 (modified by mitty, 12 years ago) (diff) |
---|
- OpenWrt Buildroot – About - OpenWrt Wiki
- OpenWrtのクロスコンパイル環境をDebianに構築してhello,worldするよ! - sdkt4aの日記
- Build for OpenWRT - meshwiki
- FON2100E openwrt backfire 10.03.1用クロスコンパイル環境の構築 2012-02-12 - nyaxtのPC作業ログ
target system
- /proc/cpuinfo
system type : Atheros AR7161 rev 2 machine : Buffalo WZR-HP-AG300H processor : 0 cpu model : MIPS 24Kc V7.4 BogoMIPS : 452.19 wait instruction : yes microsecond timers : yes tlb_entries : 16 extra interrupt vector : yes hardware watchpoint : yes, count: 4, address/irw mask: [0x0ff8, 0x0ffc, 0x0ff8, 0x0ff8] ASEs implemented : mips16 shadow register sets : 1 kscratch registers : 0 core : 0 VCED exceptions : not available VCEI exceptions : not available
host system type
- mitty@starseed:~$ wget "http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD" -O config.guess
- mitty@starseed:~$ wget "http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD" -O config.sub
- mitty@starseed:~$ chmod +x config.*
- mitty@starseed:~$ ./config.guess
./config.guess: unable to guess system type This script, last modified 2012-06-17, has failed to recognize the operating system you are using. It is advised that you download the most up to date version of the config scripts from http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD and http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD If the version you run (./config.guess) is already up to date, please send the following data and any information you think might be pertinent to <config-patches@gnu.org> in order to provide the needed information to handle your system. config.guess timestamp = 2012-06-17 uname -m = mips uname -r = 3.3.6 uname -s = Linux uname -v = #1 Thu May 17 02:19:20 PDT 2012 /usr/bin/uname -p = /bin/uname -X = hostinfo = /bin/universe = /usr/bin/arch -k = /bin/arch = /usr/bin/oslevel = /usr/convex/getsysinfo = UNAME_MACHINE = mips UNAME_RELEASE = 3.3.6 UNAME_SYSTEM = Linux UNAME_VERSION = #1 Thu May 17 02:19:20 PDT 2012
buildroot
- Ubuntu 12.04 LTS x86_64
- mitty@precise:~$ sudo aptitude install subversion build-essential libncurses5-dev zlib1g-dev gawk gcc-multilib flex git-core gettext libssl-dev xsltproc bison
- mitty@precise:~$ mkdir openwrt
- mitty@precise:~/openwrt$ svn co svn://svn.openwrt.org/openwrt/trunk/
(snip) U trunk Checked out revision 32026.
- mitty@precise:~/openwrt/trunk$ wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/config
- mitty@precise:~/openwrt$ cp config trunk/.config
- mitty@precise:~/openwrt/trunk$ make prereq
Collecting package info: done Collecting target info: done Checking 'working-make'... ok. Checking 'case-sensitive-fs'... ok. Checking 'getopt'... ok. Checking 'fileutils'... ok. Checking 'working-gcc'... ok. Checking 'working-g++'... ok. Checking 'ncurses'... ok. Checking 'zlib'... ok. Checking 'gawk'... ok. Checking 'flex'... ok. Checking 'unzip'... ok. Checking 'bzip2'... ok. Checking 'patch'... ok. Checking 'perl'... ok. Checking 'python'... ok. Checking 'wget'... ok. Checking 'git'... ok. Checking 'gnutar'... ok. Checking 'svn'... ok. Checking 'gnu-find'... ok. Checking 'getopt-extended'... ok. Checking 'non-root'... ok.
- mitty@precise:~/openwrt/trunk$ make -j 5 V=99 2>&1 | tee build.log | grep -i error
(snip) make[2]: [package/rootfs-prepare] Error 2 (ignored) Compression errors: 0 [mkmylofw] Error: file /home/mitty/openwrt/trunk/build_dir/linux-ar71xx_generic/tmp/vmlinux-wp543.bin.lzma is too big make[5]: [install] Error 1 (ignored) [mkmylofw] Error: file /home/mitty/openwrt/trunk/build_dir/linux-ar71xx_generic/tmp/vmlinux-wp543.bin.lzma is too big make[5]: [install] Error 1 (ignored) [mkmylofw] Error: file /home/mitty/openwrt/trunk/build_dir/linux-ar71xx_generic/tmp/vmlinux-wp543.bin.lzma is too big make[5]: [install] Error 1 (ignored) [mkmylofw] Error: file /home/mitty/openwrt/trunk/build_dir/linux-ar71xx_generic/tmp/vmlinux-wp543.bin.lzma is too big make[5]: [install] Error 1 (ignored) [mkmylofw] Error: file /home/mitty/openwrt/trunk/build_dir/linux-ar71xx_generic/tmp/vmlinux-wpe72.bin.lzma is too big make[5]: [install] Error 1 (ignored) Compression errors: 0 [mkmylofw] Error: file /home/mitty/openwrt/trunk/build_dir/linux-ar71xx_generic/tmp/vmlinux-wp543.bin.lzma is too big make[5]: [install] Error 1 (ignored) [mkmylofw] Error: file /home/mitty/openwrt/trunk/build_dir/linux-ar71xx_generic/tmp/vmlinux-wp543.bin.lzma is too big make[5]: [install] Error 1 (ignored) [mkmylofw] Error: file /home/mitty/openwrt/trunk/build_dir/linux-ar71xx_generic/tmp/vmlinux-wp543.bin.lzma is too big make[5]: [install] Error 1 (ignored) [mkmylofw] Error: file /home/mitty/openwrt/trunk/build_dir/linux-ar71xx_generic/tmp/vmlinux-wp543.bin.lzma is too big make[5]: [install] Error 1 (ignored) [mkmylofw] Error: file /home/mitty/openwrt/trunk/build_dir/linux-ar71xx_generic/tmp/vmlinux-wpe72.bin.lzma is too big make[5]: [install] Error 1 (ignored) make[3]: [/home/mitty/openwrt/trunk/bin/ar71xx/OpenWrt-ImageBuilder-ar71xx_generic-for-Linux-x86_64.tar.bz2] Error 1 (ignored) make[3]: [/home/mitty/openwrt/trunk/bin/ar71xx/OpenWrt-ImageBuilder-ar71xx_generic-for-Linux-x86_64.tar.bz2] Error 1 (ignored)
- mitty@precise:~/openwrt$ cat > test.c
#include <stdio.h> int main(void) { printf("char -> %ld\n", sizeof(char)); printf("short -> %ld\n", sizeof(short)); printf("int -> %ld\n", sizeof(int)); printf("long -> %ld\n", sizeof(long)); printf("long long -> %ld\n", sizeof(long long)); printf("float -> %ld\n", sizeof(float)); printf("double -> %ld\n", sizeof(double)); printf("long double -> %ld\n", sizeof(long double)); return 0; }
- mitty@precise:~/openwrt$ gcc test.c -o test.x86
- mitty@precise:~/openwrt$ ./trunk/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2/bin/mips-openwrt-linux-gcc test.c -o test
mips-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined mips-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined mips-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
- mitty@precise:~/openwrt$ file test test.x86
test: ELF 32-bit MSB executable, MIPS, MIPS32 rel2 version 1, dynamically linked (uses shared libs), with unknown capability 0x41000000 = 0xf676e75, with unknown capability 0x10000 = 0x70403, not stripped test.x86: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0x53177842cbc614b1f4c71bae24df294892906443, not stripped
- mitty@precise:~/openwrt$ ./test.x86
char -> 1 short -> 2 int -> 4 long -> 8 long long -> 8 float -> 4 double -> 8 long double -> 16
- mitty@precise:~/openwrt$ ./test
bash: ./test: cannot execute binary file
- mitty@starseed:~$ uname -a
Linux starseed 3.3.6 #1 Thu May 17 02:19:20 PDT 2012 mips GNU/Linux
- mitty@starseed:~$ ./test
char -> 1 short -> 2 int -> 4 long -> 4 long long -> 8 float -> 4 double -> 8 long double -> 8
build others
utvpn
- mitty@precise:~/openwrt/trunk/package$ svn co https://lab.mitty.jp/svn/lab/trunk/Dev/utvpn/utvpn-unix-v101-7101-public utvpn
- mitty@precise:~/openwrt/trunk/package/utvpn$ ./configure
------------------------------------------------------------- SoftEther UT-VPN for Unix Copyright (C) 2004-2010 SoftEther Corporation. Copyright (C) 2004-2010 University of Tsukuba, Japan. Copyright (C) 2003-2010 Daiyuu Nobori. All Rights Reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. ------------------------------------------------------------- Please select your Operating System below: 1: Linux 2: FreeBSD 3: Solaris 4: Mac OS X Which is your operating system (1-4): 1 Please select your CPU Bits below: 1: 32-bit 2: 64-bit Which is the bits of your CPU (1-2): 1 Makefile is generated. Please execute 'make' to build UT-VPN.
- mitty@precise:~/openwrt/trunk/package/utvpn$ sha1sum Makefile makefiles/linux_32bit_ja.mak
5d63c1cbb04ef9a3ecc6d4b8f1150cac20fbfa9d Makefile 5d63c1cbb04ef9a3ecc6d4b8f1150cac20fbfa9d makefiles/linux_32bit_ja.mak
- Makefileは単純にcpしているだけ
- mitty@precise:~/openwrt/trunk/package/utvpn$ svn cp makefiles/linux_32bit_ja.mak Makefile
build with gcc for mips
- mitty@precise:~/openwrt/trunk/package/utvpn$ export PATH=$PATH:~/openwrt/trunk/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2/bin/
- mitty@precise:~/openwrt/trunk/package/utvpn$ make CC=mips-openwrt-linux-gcc LD=mips-openwrt-linux-ld
mips-openwrt-linux-gcc -DNDEBUG -DVPN_SPEED -DUNIX -DUNIX_LINUX -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -I./src/ -I./src/Cedar/ -I./src/Mayaqua/ -O2 -fsigned-char -c src/Mayaqua/Cfg.c -o tmp/objs/Mayaqua/Cfg.o mips-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined In file included from src/Mayaqua/Cfg.c:90:0: ./src/Mayaqua/Mayaqua.h:219:31: fatal error: readline/readline.h: No such file or directory compilation terminated. make: *** [tmp/objs/Mayaqua/Cfg.o] Error 1
- mitty@precise:~$ sudo aptitude install -R libssl-dev libreadline-dev libncurses-dev
- mitty@precise:~/openwrt/trunk/package/utvpn$ export STAGING_DIR=~/openwrt/trunk/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2/
- mitty@precise:~/openwrt/trunk/package/utvpn$ make CC=mips-openwrt-linux-gcc LD=mips-openwrt-linux-ld
(snip) mips-openwrt-linux-gcc tmp/as/Ham.a -O2 -fsigned-char -lm -ldl -lrt -lpthread -lssl -lcrypto -lreadline -lncurses -lz -o output/ham/ham /home/mitty/openwrt/trunk/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2/lib/gcc/mips-openwrt-linux-uclibc/4.6.3/../../../../mips-openwrt-linux-uclibc/bin/ld: cannot find -lssl /home/mitty/openwrt/trunk/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2/lib/gcc/mips-openwrt-linux-uclibc/4.6.3/../../../../mips-openwrt-linux-uclibc/bin/ld: cannot find -lcrypto /home/mitty/openwrt/trunk/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2/lib/gcc/mips-openwrt-linux-uclibc/4.6.3/../../../../mips-openwrt-linux-uclibc/bin/ld: cannot find -lreadline /home/mitty/openwrt/trunk/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2/lib/gcc/mips-openwrt-linux-uclibc/4.6.3/../../../../mips-openwrt-linux-uclibc/bin/ld: cannot find -lncurses /home/mitty/openwrt/trunk/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2/lib/gcc/mips-openwrt-linux-uclibc/4.6.3/../../../../mips-openwrt-linux-uclibc/bin/ld: cannot find -lz collect2: ld returned 1 exit status
rebuild after libraries were installed
- mitty@precise:~/openwrt/trunk/package/utvpn$ make clean
- mitty@precise:~/openwrt/trunk/package/utvpn$ make CC=mips-openwrt-linux-gcc LD=mips-openwrt-linux-ld
mips-openwrt-linux-gcc tmp/as/Ham.a -O2 -fsigned-char -lm -ldl -lrt -lpthread -lssl -lcrypto -lreadline -lncurses -lz -o output/ham/ham tmp/as/Ham.a(Internat.o): In function `IconvWideToStrInternal': Internat.c:(.text+0x634): undefined reference to `iconv_open' Internat.c:(.text+0x648): undefined reference to `iconv_open' tmp/as/Ham.a(Internat.o): In function `IconvStrToWideInternal': Internat.c:(.text+0x66c): undefined reference to `iconv_open' Internat.c:(.text+0x680): undefined reference to `iconv_open' tmp/as/Ham.a(Internat.o): In function `IconvFreeInternal': Internat.c:(.text+0x690): undefined reference to `iconv_close' tmp/as/Ham.a(Internat.o): In function `UnixUniToStr': Internat.c:(.text+0x7b0): undefined reference to `iconv' tmp/as/Ham.a(Internat.o): In function `InitInternational': Internat.c:(.text+0xb68): undefined reference to `iconv_close' Internat.c:(.text+0xbcc): undefined reference to `iconv_close' tmp/as/Ham.a(Internat.o): In function `UnixStrToUni': Internat.c:(.text+0x37e4): undefined reference to `iconv' collect2: ld returned 1 exit status make: *** [output/ham/ham] Error 1
make install iconv
- mitty@precise:~/openwrt$ wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
- mitty@precise:~/openwrt/libiconv-1.14$ CC=mips-openwrt-linux-gcc ./configure --prefix=$STAGING_DIR --host=mips-openwrt-linux
- mitty@precise:~/openwrt/libiconv-1.14$ make
- mitty@precise:~/openwrt/libiconv-1.14$ make install
- mitty@precise:~/openwrt/trunk/package/utvpn$ make clean
- mitty@precise:~/openwrt/trunk/package/utvpn$ make CC=mips-openwrt-linux-gcc LD=mips-openwrt-linux-ld
mips-openwrt-linux-gcc tmp/as/Ham.a -O2 -fsigned-char -lm -ldl -lrt -lpthread -lssl -lcrypto -lreadline -lncurses -lz -o output/ham/ham tmp/as/Ham.a(Internat.o): In function `IconvWideToStrInternal': Internat.c:(.text+0x634): undefined reference to `iconv_open' (snip)
fix source
- mitty@precise:~/openwrt/trunk/package/utvpn$ vim src/Mayaqua/Mayaqua.h
-
src/Mayaqua/Mayaqua.h
221 221 //#include <curses.h> 222 222 223 223 #ifdef UNIX_LINUX 224 #include <iconv.h> 225 /* 224 226 typedef void *iconv_t; 225 227 iconv_t iconv_open (__const char *__tocode, __const char *__fromcode); 226 228 size_t iconv (iconv_t __cd, char **__restrict __inbuf, … … 228 230 char **__restrict __outbuf, 229 231 size_t *__restrict __outbytesleft); 230 232 int iconv_close (iconv_t __cd); 233 */ 231 234 #else // UNIX_LINUX 232 235 #include <iconv.h> 233 236 #endif // UNIX_LINUX
-
- mitty@precise:~/openwrt/trunk/package/utvpn$ vim Makefile
-
Makefile
27 27 28 28 OPTIONS_COMPILE_DEBUG=-D_DEBUG -DDEBUG -DUNIX -DUNIX_LINUX -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -I./src/ -I./src/Cedar/ -I./src/Mayaqua/ -g -fsigned-char 29 29 30 OPTIONS_LINK_DEBUG=-g -fsigned-char -lm -ldl -lrt -lpthread -lssl -lcrypto -lreadline -lncurses -lz 30 OPTIONS_LINK_DEBUG=-g -fsigned-char -lm -ldl -lrt -lpthread -lssl -lcrypto -lreadline -lncurses -lz -liconv 31 31 32 32 OPTIONS_COMPILE_RELEASE=-DNDEBUG -DVPN_SPEED -DUNIX -DUNIX_LINUX -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -I./src/ -I./src/Cedar/ -I./src/Mayaqua/ -O2 -fsigned-char 33 33 34 OPTIONS_LINK_RELEASE=-O2 -fsigned-char -lm -ldl -lrt -lpthread -lssl -lcrypto -lreadline -lncurses -lz 34 OPTIONS_LINK_RELEASE=-O2 -fsigned-char -lm -ldl -lrt -lpthread -lssl -lcrypto -lreadline -lncurses -lz -liconv 35 35 36 INSTALL_BINDIR= /usr/bin/37 INSTALL_UTVPNSERVER_DIR= /usr/utvpnserver/38 INSTALL_UTVPNCLIENT_DIR= /usr/utvpnclient/39 INSTALL_UTVPNCMD_DIR= /usr/utvpncmd/36 INSTALL_BINDIR=$(PREFIX)/usr/bin/ 37 INSTALL_UTVPNSERVER_DIR=$(PREFIX)/usr/utvpnserver/ 38 INSTALL_UTVPNCLIENT_DIR=$(PREFIX)/usr/utvpnclient/ 39 INSTALL_UTVPNCMD_DIR=$(PREFIX)/usr/utvpncmd/ 40 40 41 41 ifeq ($(DEBUG),YES) 42 42 OPTIONS_COMPILE=$(OPTIONS_COMPILE_DEBUG) … … 307 307 @mkdir -p $(INSTALL_UTVPNSERVER_DIR) 308 308 cp output/utvpnserver/hamcore.utvpn $(INSTALL_UTVPNSERVER_DIR)hamcore.utvpn 309 309 cp output/utvpnserver/utvpnserver $(INSTALL_UTVPNSERVER_DIR)utvpnserver 310 @mkdir -p $(INSTALL_BINDIR) 310 311 echo "#!/bin/sh" > $(INSTALL_BINDIR)utvpnserver 311 312 echo $(INSTALL_UTVPNSERVER_DIR)utvpnserver '"$$@"' >> $(INSTALL_BINDIR)utvpnserver 312 313 echo 'exit $$?' >> $(INSTALL_BINDIR)utvpnserver … … 317 318 cp output/utvpnclient/hamcore.utvpn $(INSTALL_UTVPNCLIENT_DIR)hamcore.utvpn 318 319 cp output/utvpnclient/utvpnclient $(INSTALL_UTVPNCLIENT_DIR)utvpnclient 319 320 echo "#!/bin/sh" > $(INSTALL_BINDIR)utvpnclient 321 @mkdir -p $(INSTALL_BINDIR) 320 322 echo $(INSTALL_UTVPNCLIENT_DIR)utvpnclient '"$$@"' >> $(INSTALL_BINDIR)utvpnclient 321 323 echo 'exit $$?' >> $(INSTALL_BINDIR)utvpnclient 322 324 chmod 755 $(INSTALL_BINDIR)utvpnclient … … 325 327 @mkdir -p $(INSTALL_UTVPNCMD_DIR) 326 328 cp output/utvpncmd/hamcore.utvpn $(INSTALL_UTVPNCMD_DIR)hamcore.utvpn 327 329 cp output/utvpncmd/utvpncmd $(INSTALL_UTVPNCMD_DIR)utvpncmd 330 @mkdir -p $(INSTALL_BINDIR) 328 331 echo "#!/bin/sh" > $(INSTALL_BINDIR)utvpncmd 329 332 echo $(INSTALL_UTVPNCMD_DIR)utvpncmd '"$$@"' >> $(INSTALL_BINDIR)utvpncmd 330 333 echo 'exit $$?' >> $(INSTALL_BINDIR)utvpncmd
-
- mitty@precise:~/openwrt/trunk/package/utvpn$ make CC=mips-openwrt-linux-gcc LD=mips-openwrt-linux-ld
- mitty@precise:~/openwrt/trunk/package/utvpn$ make install PREFIX=~/tmp
cp output/utvpnserver/hamcore.utvpn /home/mitty/tmp/usr/utvpnserver/hamcore.utvpn cp output/utvpnserver/utvpnserver /home/mitty/tmp/usr/utvpnserver/utvpnserver echo "#!/bin/sh" > /home/mitty/tmp/usr/bin/utvpnserver echo /home/mitty/tmp/usr/utvpnserver/utvpnserver '"$@"' >> /home/mitty/tmp/usr/bin/utvpnserver echo 'exit $?' >> /home/mitty/tmp/usr/bin/utvpnserver chmod 755 /home/mitty/tmp/usr/bin/utvpnserver cp output/utvpnclient/hamcore.utvpn /home/mitty/tmp/usr/utvpnclient/hamcore.utvpn cp output/utvpnclient/utvpnclient /home/mitty/tmp/usr/utvpnclient/utvpnclient echo "#!/bin/sh" > /home/mitty/tmp/usr/bin/utvpnclient echo /home/mitty/tmp/usr/utvpnclient/utvpnclient '"$@"' >> /home/mitty/tmp/usr/bin/utvpnclient echo 'exit $?' >> /home/mitty/tmp/usr/bin/utvpnclient chmod 755 /home/mitty/tmp/usr/bin/utvpnclient cp output/utvpncmd/hamcore.utvpn /home/mitty/tmp/usr/utvpncmd/hamcore.utvpn cp output/utvpncmd/utvpncmd /home/mitty/tmp/usr/utvpncmd/utvpncmd echo "#!/bin/sh" > /home/mitty/tmp/usr/bin/utvpncmd echo /home/mitty/tmp/usr/utvpncmd/utvpncmd '"$@"' >> /home/mitty/tmp/usr/bin/utvpncmd echo 'exit $?' >> /home/mitty/tmp/usr/bin/utvpncmd chmod 755 /home/mitty/tmp/usr/bin/utvpncmd -------------------------------------------------------------------- Installation completed successfully. Please execute 'utvpnserver start' to run UT-VPN Server Background Service. Or please execute 'utvpnclient start' to run UT-VPN Client Background Service. And please execute 'utvpncmd' to run UT-VPN Command-Line Utility to configure UT-Server or UT-VPN Client. --------------------------------------------------------------------
- mitty@precise:~$ mv tmp utvpn-unix-v101-7101-public.mips
- mitty@precise:~$ tar czf utvpn-unix-v101-7101-public.mips.tar.gz utvpn-unix-v101-7101-public.mips
- mitty@starseed:~/utvpn-unix-v101-7101-public.mips/usr/utvpncmd$ ./utvpncmd
Bus error
zlib
- mitty@precise:~$ export PATH=$PATH:~/openwrt/trunk/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2/bin/
- mitty@precise:~$ export STAGING_DIR=~/openwrt/trunk/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2/
- mitty@precise:~/openwrt$ wget http://zlib.net/zlib-1.2.7.tar.gz
- mitty@precise:~/openwrt/zlib-1.2.7$ ./configure --prefix=$STAGING_DIR
- mitty@precise:~/openwrt/zlib-1.2.7$ vim Makefile
-
Makefile
old new 16 16 # To install in $HOME instead of /usr/local, use: 17 17 # make install prefix=$HOME 18 18 19 CC= gcc19 CC=mips-openwrt-linux-gcc 20 20 21 21 CFLAGS=-O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN 22 22 #CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7 … … 27 27 SFLAGS=-O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN 28 28 LDFLAGS= 29 29 TEST_LDFLAGS=-L. libz.a 30 LDSHARED= gcc -shared -Wl,-soname,libz.so.1,--version-script,zlib.map31 CPP= gcc -E30 LDSHARED=mips-openwrt-linux-gcc -shared -Wl,-soname,libz.so.1,--version-script,zlib.map 31 CPP=mips-openwrt-linux-gcc -E 32 32 33 33 STATICLIB=libz.a 34 34 SHAREDLIB=libz.so … … 36 36 SHAREDLIBM=libz.so.1 37 37 LIBS=$(STATICLIB) $(SHAREDLIBV) 38 38 39 AR= ar39 AR=mips-openwrt-linux-ar 40 40 ARFLAGS=rc 41 RANLIB= ranlib41 RANLIB=mips-openwrt-linux-ranlib 42 42 LDCONFIG=ldconfig 43 43 LDSHAREDLIBC=-lc 44 44 TAR=tar
-
- mitty@precise:~/openwrt/zlib-1.2.7$ make
- mitty@precise:~/openwrt/zlib-1.2.7$ make install
cp libz.a /home/mitty/openwrt/trunk/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2//lib chmod 644 /home/mitty/openwrt/trunk/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2//lib/libz.a cp libz.so.1.2.7 /home/mitty/openwrt/trunk/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2//lib chmod 755 /home/mitty/openwrt/trunk/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2//lib/libz.so.1.2.7 cp zlib.3 /home/mitty/openwrt/trunk/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2//share/man/man3 chmod 644 /home/mitty/openwrt/trunk/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2//share/man/man3/zlib.3 cp zlib.pc /home/mitty/openwrt/trunk/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2//lib/pkgconfig chmod 644 /home/mitty/openwrt/trunk/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2//lib/pkgconfig/zlib.pc cp zlib.h zconf.h /home/mitty/openwrt/trunk/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2//include chmod 644 /home/mitty/openwrt/trunk/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2//include/zlib.h /home/mitty/openwrt/trunk/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2//include/zconf.h
openssl
- mitty@precise:~/openwrt$ wget http://www.openssl.org/source/openssl-1.0.1c.tar.gz
- mitty@precise:~/openwrt/openssl-1.0.1c$ vim Makefile
-
Makefile
old new 26 26 # for, say, /usr/ and yet have everything installed to /tmp/somedir/usr/. 27 27 # Normally it is left empty. 28 28 INSTALL_PREFIX= 29 INSTALLTOP=/ usr/local/ssl29 INSTALLTOP=/home/mitty/openwrt/trunk/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2/ 30 30 31 31 # Do not edit this manually. Use Configure --openssldir=DIR do change this! 32 OPENSSLDIR=/ usr/local/ssl32 OPENSSLDIR=/home/mitty/openwrt/trunk/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2/ 33 33 34 34 # NO_IDEA - Define to build without the IDEA algorithm 35 35 # NO_RC4 - Define to build without the RC4 algorithm … … 59 59 # equal 4. 60 60 # PKCS1_CHECK - pkcs1 tests. 61 61 62 CC= cc62 CC= mips-openwrt-linux-gcc 63 63 CFLAG= -O 64 64 DEPFLAG= -DOPENSSL_NO_EC_NISTP_64_GCC_128 -DOPENSSL_NO_GMP -DOPENSSL_NO_JPAKE -DOPENSSL_NO_MD2 -DOPENSSL_NO_RC5 -DOPENSSL_NO_RFC3779 -DOPENSSL_NO_SCTP -DOPENSSL_NO_STORE 65 65 PEX_LIBS= 66 66 EX_LIBS= 67 67 EXE_EXT= 68 68 ARFLAGS= 69 AR= ar $(ARFLAGS) r70 RANLIB= /usr/bin/ranlib69 AR= mips-openwrt-linux-ar $(ARFLAGS) r 70 RANLIB= mips-openwrt-linux-ranlib 71 71 NM= nm 72 72 PERL= /usr/bin/perl 73 73 TAR= tar
-
- mitty@precise:~/openwrt/openssl-1.0.1c$ make
- mitty@precise:~/openwrt/openssl-1.0.1c$ make install
- mitty@precise:~$ file openwrt/trunk/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2/bin/openssl
openwrt/trunk/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2/bin/openssl: ELF 32-bit MSB executable, MIPS, MIPS32 rel2 version 1, dynamically linked (uses shared libs), with unknown capability 0x41000000 = 0xf676e75, with unknown capability 0x10000 = 0x70403, not stripped
ncurses
- mitty@precise:~/openwrt$ wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.9.tar.gz
- mitty@precise:~/openwrt/ncurses-5.9$ CC=mips-openwrt-linux-gcc ./configure --prefix=$STAGING_DIR
checking for egrep... grep -E Configuring NCURSES 5.9 ABI 5 (Sun Jun 17 21:04:38 JST 2012) checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu Configuring for linux-gnu checking for prefix... /home/mitty/openwrt/trunk/staging_dir/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2/ checking for gcc... mips-openwrt-linux-gcc checking for C compiler default output... a.out checking whether the C compiler works... configure: error: cannot run C compiled programs. If you meant to cross compile, use `--host'.
configure with host=mips-unknown-linux-gnu
- mitty@precise:~/openwrt/ncurses-5.9$ CC=mips-openwrt-linux-gcc CXX=mips-openwrt-linux-g++ ./configure --prefix=$STAGING_DIR --host=mips-unknown-linux-gnu
checking for mips-unknown-linux-gnu-g++... no checking for mips-unknown-linux-gnu-c++... no checking for mips-unknown-linux-gnu-gpp... no checking for mips-unknown-linux-gnu-aCC... no checking for mips-unknown-linux-gnu-CC... no checking for mips-unknown-linux-gnu-cxx... no checking for mips-unknown-linux-gnu-cc++... no checking for mips-unknown-linux-gnu-cl... no checking for mips-unknown-linux-gnu-FCC... no checking for mips-unknown-linux-gnu-KCC... no checking for mips-unknown-linux-gnu-RCC... no checking for mips-unknown-linux-gnu-xlC_r... no checking for mips-unknown-linux-gnu-xlC... no checking for g++... g++
- oops
configure with host=mips-openwrt-linux
- mitty@precise:~/openwrt/ncurses-5.9$ CC=mips-openwrt-linux-gcc CXX=mips-openwrt-linux-g++ ./configure --prefix=$STAGING_DIR --host=mips-openwrt-linux
- mitty@precise:~/openwrt/ncurses-5.9$ make
compatibility.cc:(.text._ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEi+0x188): undefined reference to `_Unwind_Resume' collect2: ld returned 1 exit status make[1]: *** [demo] Error 1 make[1]: Leaving directory `/home/mitty/openwrt/ncurses-5.9/c++' make: *** [all] Error 2
- https://dev.openwrt.org/browser/trunk/package/ncurses/Makefile のCONFIGURE_ARGSを参考にする
- mitty@precise:~/openwrt/ncurses-5.9$ CC=mips-openwrt-linux-gcc CXX=mips-openwrt-linux-g++ ./configure --prefix=$STAGING_DIR --host=mips-openwrt-linux --enable-echo --enable-const --enable-overwrite --disable-rpath --without-ada --without-debug --without-profile --without-progs --disable-big-core --disable-home-terminfo --with-normal --with-shared --with-terminfo-dirs=/usr/share/terminfo --with-default-terminfo-dir=/usr/share/terminfo
- mitty@precise:~/openwrt/ncurses-5.9$ make
- mitty@precise:~/openwrt/ncurses-5.9$ make install
readline
- mitty@precise:~/openwrt$ wget ftp://ftp.cwru.edu/pub/bash/readline-5.2.013.tar.gz
- mitty@precise:~/openwrt/readline-5.2.013$ wget ftp://ftp.cwru.edu/pub/bash/readline-5.2-patches/readline52-014
- mitty@precise:~/openwrt/readline-5.2.013$ patch < readline52-014
patching file mbutil.c
- mitty@precise:~/openwrt/readline-5.2.013$ CC=mips-openwrt-linux-gcc ./configure --prefix=$STAGING_DIR --host=mips-openwrt-linux
- mitty@precise:~/openwrt/readline-5.2.013$ make
- mitty@precise:~/openwrt/readline-5.2.013$ make install