关闭

MAC OSX 10.10 Yosemite 下编译 OP_TEE

2153人阅读 评论(2) 收藏 举报
分类:

0. 安装一些必备文件


brew install libelf gnu-sed binutils(解决readelf)

将sed、find、readlink、xargs、readelf分别链接到g开头的同名文件


1. 下载源码


repo init -u https://github.com/OP-TEE/manifest.git -m default.xml -b master

repo sync


2. 修改toolchains


gcc-linaro-arm-linux-gnueabihf-2014.05_mac.pkg会将toolchain安装到

/usr/local/linaro/arm-linux-gnueabihf


因此,需要:

sudo ln -s /usr/local/linaro/arm-linux-gnueabihf ~/works/optee/toolchains/aarch32


3. 修改build/toolchain.mk


ROOT                            ?= ${HOME}/works/optee


4. 解决一系列错误

4.1 'elf.h' 等一系列文件找不到

参照http://stackoverflow.com/questions/10018764/building-linux-kernel-on-mac-os-x


First you'll need the following files to cross-compile a kernel on an OS X box (copy them from your known-working Linux VM to your local /usr/include):

/usr/include/elf.h

/usr/include/features.h

/usr/include/stdc-predef.h

/usr/include/bits/*.h

/usr/include/gnu/*.h

/usr/include/byteswap.h

/usr/include/error.h


Next you'll need malloc.h to be in the expected location for a Linux system, so do:

sudo ln -s /usr/include/malloc/malloc.h /usr/include/malloc.h


4.2 

/usr/include/i386/_types.h:46:20: error: typedef redefinition with different types ('long long' vs 'long')

typedef long long               __int64_t;

                                ^

/usr/include/bits/types.h:43:25: note: previous definition is here

typedef signed long int __int64_t;

解决:

sudo rm /usr/include/bits/types.h

sudo ln -s /usr/include/i386/_types.h /usr/include/bits/types.h


4.3 

Undefined symbols for architecture x86_64:

  "_error", referenced from:

      _main in vdsomunge-a7211f.o

  "_error_message_count", referenced from:

      _cleanup in vdsomunge-a7211f.o

ld: symbol(s) not found for architecture x86_64


参照:https://www.assembla.com/spaces/phylogenetic-likelihood-library/messages/2592013


… had to "remove that #include <error.h> and also remove the error (...) call in …

… quick look on google suggests that this is what people do on MacOSX for error.h …


我的处理,将原来从ubuntu拷贝过来的error.h中的内容修改:

#define error(__status, __errnum, __format, ...)

//     __attribute__ ((__format__ (__printf__, 3, 4)));


#define error_at_line(__status, __errnum, __fname, \

  __lineno, __format, ...)

//     __attribute__ ((__format__ (__printf__, 5, 6)));


/* If NULL, error will flush stdout, then print on stderr the program

   name, a colon and a space.  Otherwise, error will call this

   function without parameters instead.  */

#define error_print_progname


/* This variable is incremented each time `error' is called.  */

int error_message_count = 0;


/* Sometimes we want to have at most one error per line.  This

   variable controls whether this mode is selected or not.  */

int error_one_per_line = 0;


4.4 解决 MAP_ANON 错误

util/oslib-posix.c:132:22: error: use of undeclared identifier 'MAP_ANON'

                     MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);

                     ^

/Users/manfeel/works/optee/qemu/include/qemu-common.h:61:23: note: expanded from macro 'MAP_ANONYMOUS'

#define MAP_ANONYMOUS MAP_ANON


实际上MAP_ANON是定义在/usr/include/sys/mman.h中的

#define MAP_ANON        0x1000  /* allocated from memory, swap space */

不知为何出错!

只好修改qemu-common.h中为:

#define MAP_ANONYMOUS 0x1000


4.5 util/qemu-openpty.c:39:11: fatal error: 'pty.h' file not found

# include <pty.h>


这个问题由如下包含关系导致:

  CC    util/qemu-openpty.o

In file included from util/qemu-openpty.c:36:

In file included from /Users/manfeel/works/optee/qemu/include/qemu-common.h:120:

In file included from /Users/manfeel/works/optee/qemu/include/qemu/bswap.h:17:

In file included from /usr/include/byteswap.h:21:

/usr/include/features.h:388:10: fatal error: 'gnu/stubs.h' file not found

#include <gnu/stubs.h>


因为gnu目录是从linux拷贝,可能和mac系统冲突了


看来4.4的问题也应该和此有关。


原来问题在configure中(生成config-host.mak),如果存在/usr/include/features.h

则会在config-host.mak中添加 CONFIG_BYTESWAP_H=y

实际上,OSX(DARWIN)是不需要这个配置的。

找到3513行,修改为:

# Search for bswap_32 function

byteswap_h=no

# add by Manfeel for DARWIN

if test "$darwin" != "yes"; then

cat > $TMPC << EOF

#include <byteswap.h>

int main(void) { return bswap_32(0); }

EOF

if compile_prog "" "" ; then

  byteswap_h=yes

fi

fi



5. 最后,进入build目录

make all

你就可以在mac下愉快的和optee玩耍了,最后还有一个关于gnome-terminal的小问题,留给聪明的读者朋友去解决吧。

###


1
0
查看评论

整理 mac 安装php扩展mcrypt

这个问题是遇到多次了,不想再被坑了, 首先使mcrypt软件能够运行,然后安装php扩展模块,并在php.ini配置。  这里注意的是mcrypt软件依赖libmcrypt和mhash两个库,所以安装配置顺序从右至左 下载安装mcrypt 1.先去http://www.source...
  • xfnjlove
  • xfnjlove
  • 2014-01-17 20:15
  • 5079

mac os x 10.11.5编译msm8916 android4.4.4

1.大小写敏感问题  分区为大小写敏感分区 hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 70g ~/android.dmg hdiutil attach ~/android.dm...
  • baimingyong007
  • baimingyong007
  • 2016-07-18 22:18
  • 1016

Mac下CLion使用<bits/stdc++.h>头文件

之前一直纠结我的一个问题就是Mac没办法使用这个万能头文件,导致我每次都得加一堆头文件,强行加长代码强度,影响心情,尝试过很多从CMake层面去解决这个问题,可是一直都没能解决。  今天偶然发现CLion可以很简单容易的解决这个问题。  首先安装一下g++编译器,我是用homebrew安装的,hom...
  • xs18952904
  • xs18952904
  • 2017-10-06 23:21
  • 231

macbook 编译时出现stdio.h file not found 的解决办法

1、首先检查开头没有漏写#include ; 2、未安装 Command Line Tools命令行工具,安装步骤如下: 在终端中输入 xcode-select --install,按提示安装完成后,重启终端即可。
  • dujunabc
  • dujunabc
  • 2015-11-26 21:00
  • 1360

XCode里遇到 #include <XXX.h>file not found的解决方案

最近在学习如何在C++里调用Java方法,遇到提示
  • dongccc
  • dongccc
  • 2014-11-21 14:34
  • 24754

苹果系统Mac OS X Yosemite 10.10 安装必看

Mac OS X系统 10.10,下载地址:http://pan.baidu.com/s/1eQj94jg  Xcode6-Beta,下载地址:http://pan.baidu.com/s/1kTBP9D9
  • u014784370
  • u014784370
  • 2014-06-16 10:04
  • 6168

苹果系统 Mac OS X Yosemite 正式版安装程序镜像下载 (10.10 新功能特性总结)

转自:http://www.iplaysoft.com/osx-yosemite.html 苹果在发布了 iPhone 6、iPad Air 2 以及惊人的 5K 分辨率的 iMac Retina 之后,终于也拿出最新的 OS X ...
  • gf771115
  • gf771115
  • 2015-04-27 23:10
  • 5248

关于'MAMapKit/MAMapKit.h' file not found的解决方法(图文演示)

今天使用高德地图的框架,将系统的资源文件与高德地图的SDK全部导入完后,出现了 'MAMapKit/MAMapKit.h' file not found 这个错误,尝试了许多的解决方法,修改相对路径等,依然不行,后靠照系统的资源包,发现高德地图MAMapKit.framewo...
  • chaojigongchengshi
  • chaojigongchengshi
  • 2015-11-07 18:49
  • 2875

fatal error: 'QTKit/QTKit.h' file not found when I build OpenCV on mac

转载地址:http://stackoverflow.com/questions/39590741/fatal-error-qtkit-qtkit-h-file-not-found-when-i-build-opencv-on-mac brew reinstall opencv3 --HEA...
  • uhippo
  • uhippo
  • 2016-10-31 17:06
  • 1488

OS X Yosemite 10.10 (14A389) 正式版 懒人版安装镜像

 只看楼主 收藏 回复 http://tieba.baidu.com/p/3357056206 9 图片来自:Jhon_bo的百度相...
  • dongsheng186
  • dongsheng186
  • 2015-03-19 22:26
  • 4935
    个人资料
    • 访问:367025次
    • 积分:4257
    • 等级:
    • 排名:第8495名
    • 原创:58篇
    • 转载:19篇
    • 译文:0篇
    • 评论:149条
    联系方式
    本博客所有标头为"原"的内容均为博主原创. 版权所有,严禁抄袭! 转载请保留出处,或联系QQ:179813134
    文章分类
    最新评论