I forgot to post back that I did eventually find the solution to this problem.
I had it come back and bite me in the butt a second time and it took me a lot longer to figure it out because I kept finding this thread and not the thread where I had made mention of the solution.



Dear Future AJ,

This is how you solved the problem:

http://e2e.ti.com/support/dsp/omap_applications_processors/f/447/t/104381.aspx


A little tweak to linkcmd.xdt got me most of the way there.
~/ti/dvsdk/dvsdk_3_01_00_10/xdctools_3_16_01_27/packages/gnu/targets/arm/linkcmd.xdt

INPUT(
   %for (var i = 0; i < $args.length; i++) {
   `$args[i]`
   %}

   /usr/lib/gcc/arm-linux-gnueabi/4.5.2/libgcc_eh.a

   /usr/lib/arm-linux-gnueabi/libc.a

   /usr/lib/arm-linux-gnueabi/gcc/arm-linux-gnueabi/4.5/libgcc.a
)

 

Also:

__aeabi_unwind_cpp_pr0 is part of the standard ARM exception

handling code and helps in unwinding the stack frame when an exception
occurs.

__aeabi_unwind_cpp_pr0 is defined in libgcc_eh.a



Additionally, I believe the problem can be solved by coping 

/* Dummy functions to avoid linker complaints */
void __aeabi_unwind_cpp_pr0(void)
{
};

to cmemk.c


I'm testing both methods again. If anything is different this time around I'll be posting back with more updates.

AJ ONeal

On Mon, Apr 18, 2011 at 11:39 AM, AJ ONeal <coolaj86@gmail.com> wrote:
I'm compiling an application built with TI's DVSDK 3 *[0].

/home/user/ti/dvsdk/dvsdk_3_01_00_10/linuxutils_2_25_02_08/packages/ti/sdo/linuxutils/cmem/lib/cmem.a470MV(cmem.o470MV):(.ARM.exidx+0x0): undefined reference to `__aeabi_unwind_cpp_pr0'

arm-linux-gnueabi-gcc --version
arm-linux-gnueabi-gcc (Ubuntu/Linaro 4.5.2-5ubuntu2~ppa1) 4.5.2

arm-linux-gnueabi-ld --version
GNU ld (GNU Binutils for Ubuntu) 2.21.0.20110302


More full output is here (but it isn't particularly helpful due to TI's RTSC make system's black-magic)
https://gist.github.com/925674

FYI: the MV in cmem.a470MV stands for MontaVista.
This name is hard-coded somewhere even though it's not being linked against a MontaVista system.
I believe the 470 means that it should work with ARMv4 through ARMv7, but I'm not positive.


My googling suggest that this is a toolchain bug and that the best way around the issue is to create a file which defines the function as a void dummy and include it.

http://www.codesourcery.com/archives/arm-gnu/msg03604.html
http://comments.gmane.org/gmane.comp.boot-loaders.u-boot/78649
http://www.cs.fsu.edu/~baker/devices/lxr/http/ident?i=__aeabi_unwind_cpp_pr0


I have a script that I'll post shortly with instructions as to how to setup TI's DVSDK with Linaro

AJ ONeal

[0] I'm not using the latest DVSDK version 4 because the paths and such are so hard-coded for the 2009q3 version of codesourcery on ubuntu 10.04 LTS that I don't know where to start fixing it.