These __stack_chk_ references are created by the compiler when you the -fstack-protector option is enabled. It is likely enabled by the build system, but sometimes even prebuilt compiler binaries have it enabled by default. The corresponding functions are normally in libgcc.a, provided with your toolchain.
If this is not the case, you will need to add something like -fno-stack-protector when compiling sources. On Fri, Jul 24, 2009 at 7:48 AM, Ouyang Jiannan <[email protected]>wrote: > I'm porting bionic to our cpu > I've edited makefiles to enable the compiling process for our arch > > make TARGET_ARCH=myarch BUILD_TINY_ANDROID=true HOST_C_INCLUDES="" > HOST_CUSTOM_LD_COMMAND=false > > If the last two options are not added, bionic will be included into > host_c_includes, and host_custom_ld_command will be true > I don't know why, and I haven't found anyplace which assign value to these > variables... > > Now, during the compiling of acp and aprior, things went wrong. The > compiler complain about undefind reference to "__stack_chk_fail" > and "__stack_chk_guide" > I've compared the g++ options between arm and our arch, only libelf_arm.a > was not generated in my arch > I've also check the symbols defined in libebl.a libelf.a libelfcopy.a, I > found that in my *.a symbol __stack_chk_fail is undefined, but *.a of arm > symbol __stack_chk_fail_local is undefined, which is defined in the > toolchain in prebuilt > > I've been trapped here for a long time, and i still can't figure out a > solution > > P.S. I'm using the toolchain of our own arch. And my target is to port > bionic to our arch... > > > > --~--~---------~--~----~------------~-------~--~----~ unsubscribe: [email protected] website: http://groups.google.com/group/android-porting -~----------~----~----~----~------~----~------~--~---
