Minor cleanup
Correct make_relative_path comment
Handle some dirname() special cases as expected
Fix path canonicalization in make_relative_path when path doesn't exist
Treat zero length object files as invalid

Fix for bug 9972.
Bail out on option -gsplit-dwarf which produces multiple output files
Merge branch 'maint'

* maint:
  Bail out on option -gsplit-dwarf which produces multiple output files
  Treat zero length object files as invalid
  Fix path canonicalization in make_relative_path when path doesn't exist
  Handle some dirname() special cases as expected
  Correct make_relative_path comment

Conflicts:
	ccache.c
	compopt.c
	test/test_argument_processing.c
	test/test_util.c
Support -@file.opt

Some compilers (e.g. diab) use -@ notation for options file