Program received signal SIGABRT, Aborted. 0x00007ffff7304425 in __GI_raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 64 ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
Your error is a buffer overflow. Is it possible you compiled using a newer version of gcc, which has more stringent error checking, and thus caught an error that your older binary simply ignored?
While it's possible that it's a 32 vs. 64 bit issue, most of the time those surface as either bus errors (word alignment offsets) or segmentation faults (bad pointer arithmetic that assumes 32-bit pointer sizes).
17 Dec, 2013, quixadhal wrote in the 11th comment:
There's nothing wrong with your linking… if there were, you wouldn't have an executable to run. As I said, it's an overflow error that is being caught at runtime, and is very likely a bug that went undetected in your code on your 32-bit platform because your system had older compilers and libraries that didn't DO those checks.
Also, libc is treated special by gcc. If you want to NOT include the system libc, there's a flag specifically to do that which I don't recall off the top of my head.