JJ <alchemistmba@xxxxxxxxx> writes: > unwind-arm.c:(.text+0x72c): undefined reference to `__exidx_end' > unwind-arm.c:(.text+0x730): undefined reference to `__exidx_start' These and the other undefined symbols are intended to be defined by the linker script. run ...-ld --verbose to see the default linker script, and incorporate that stuff into your linker script. > I also want to rewrite the "_start" function in assembly. If I add > this file in, g++ complains that _start is defined twice. Is there a > way to do this? You'll need to use -nostartfiles and figure out what you need to replace everything other than _start. Or I suppose you could use ENTRY in your linker script to start your program at something other than _start. Ian