WuZhao added a comment. I wan to point to some issues, because I am also doing AIX support based on your patch and I tested and verified.
Firstly, in the lib/Driver/ToolChains.cpp line 3756 case llvm::Triple::ppc64: addPathIfExists(D, getDriver().SysRoot + getDriver().Dir + "/../lib64", Paths); addPathIfExists(D, getDriver().SysRoot + "/usr/lib64", Paths); break; In fact, in AIX there is no /usr/lib64, we only have /usr/lib and crt0.o for 32 bits, crt0_64.o for 64 bits. We also have crti.o / crti_64.o for C++. Secondly, we should also define _AIX71 for AIX 7.1 in the lib/Basic/Targets.cpp. Thirdly, the linker construct job has many issues (maybe because you have not supported code generation) in the lib/Driver/Tools.cpp, AIX has much difference with Solaris in fact. we should code like this: if (Args.hasArg(options::OPT_shared)) { CmdArgs.push_back("-bM:SRE"); CmdArgs.push_back("-bnoentry"); } if (Args.hasArg(options::OPT_static)) { CmdArgs.push_back("-bnso"); CmdArgs.push_back("-bI:/lib/syscalls.exp"); } ....... I will try my best to complete linker work and so on based on your patch. I notice that one thing, you define _THREAD_SAFE for posix thread, it is right. In AIX, we do not have _REENTRANT. Lastly, you should be careful one thing: In AIX, when we use -pthread option, gcc standard headers directory and linker directory is changed. You should consider this. You can try gcc -pthread -v to see the output. In collusion, this patch has some work to do in AIX from the view of my point. https://reviews.llvm.org/D18360 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits