Fix bug where there was no filename in backtrace

Something seems wrong with Thread::Backtrace::Location.absolute_path.
I'll properly report this to ruby but apparently
Thread::Backtrace::Location.path returns the same thing, just always
correct.
Prevent annoying crashes
Check for GCC before adding GCC-specific flags