最近编译内核和uboot都会提示mkimage: invalid entry point 错误,再另外部机器上正常编译。
调试发现出错makefile部分
KRN_SIZE=`expr $$ISIZE - $$RSIZE + 64` ; \
ENTRY=`readelf -h $(ROOTDIR)/$(LINUXDIR)/vmlinux | grep "Entry" | awk '{print $$4}'` ; \
$(CUR_DIR)/mkimage -A mips -O linux -T kernel -C $(COMP) -a 80000000 -e $$ENTRY -k $$KRN_SIZE -n "Linux Kernel Image" -d $(KERNELZ).$(COMP) $(IMAGE)
用到了readelf 命令这里ENTRY返回空,造成下面mkimage参数错误了,真正出错的地方在这里:
ENTRY=`readelf -h $(ROOTDIR)/$(LINUXDIR)/vmlinux | grep "Entry" | awk '{print $$4}'` ; 1
原因是升级了下fedora 到20版本了,readelf工具返回的居然是中文的grep "Entry"就空了,在旧系统里拷一下readelf问题就解决了。