11
2020
03

mips交叉编译fluffos过程总结【原作者mok】

1.先装好交叉编译的环境,例如mips,安装好mipsel-linux-gnu-g++的工具链

sudo apt-get install gcc-mipsel-linux-gnu

sudo apt-get install g++-mipsel-linux-gnu

下载必要库的源码--没错是源码

libevent prce libz openssl

./configure --host=mipsel-linux-gnu 

make

make install

这样环境就完成了。

sudo dpkg-reconfigure dash 选no 关闭dash这步非常重要。

会导致bash运行出错。


2.先用原来环境编译一次

./builf.FluffOS

make

获得并备份以下5个文件:

vm/internal/compiler/grammar.autogen.y

vm/internal/applies_table.autogen.cc

vm/internal/applies_table.autogen.h

vm/internal/efuns.autogen.cc

vm/internal/efuns.autogen.h

make clean命令清除

把以上的5个备份文件复杂回原来的目录里面。


3.修改configure.h

删除

#define malloc rpl_malloc

#define realloc rpl_realloc

两行


4.修改makefile文件

CXX=g++ 改为CAA=g++

增加一项,内容为CXX=mipsel-linux-gnu-g++ 你需要的编译器


复制CXXFLAGS=的所有内容

增加一项,CAAFLAGS=内容为以上复杂的内容,修改其中-march=的内容,该为你需要的cpu型号,例如-march=mips32r2


把USE_JEMALLOC=1 改为USE_JEMALLOC=0

把@echo '#define USE_JEMALLOC 1' >> cc.h 改为@echo '#define USE_JEMALLOC 0' >> cc.h


找到并删除以下3句

@./tools/build_applies.autogen

@./tools/make_func.autogen packages/packages.autogen.fullspec

@./tools/make_grammar.sh $(CXX) $(CXXFLAGS)


找到

$(CXX) $(CXXFLAGS) -x c++ dtrace_compile.cc -o dtrace_compile

修改为

$(CAA) $(CAAFLAGS) -x c++ dtrace_compile.cc -o dtrace_compile


5.修改dtrace_compile.cc

找到64,修改为32


6.make 恭喜你完成了交叉编译


                                       --by mok 

                                        2017.8.11



使用前授权 chmod -v +x ./driver

另外自行安装必要的裤头

libpcre.so.1

libc.so.6                         libstdc++.so.6

libc6_2.19-18+deb8u10_mipsel.deb  libstdc++6_7.1.0-13_mipsel.deb

libevent-2.1.so.6


9月7日版本交叉编译问题

# @ASAN_OPTIONS="detect_leaks=0" ./tools/make_func.autogen packages/packages.autogen.fullspec

把这句注释掉就ok

                                        2017.9.18


« 上一篇

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。