re PR target/65296 ([avr] fix various issues with specs file generation)
authorGeorg-Johann Lay <avr@gjlay.de>
Thu, 9 Apr 2015 11:37:11 +0000 (11:37 +0000)
committerGeorg-Johann Lay <gjl@gcc.gnu.org>
Thu, 9 Apr 2015 11:37:11 +0000 (11:37 +0000)
PR target/65296
* config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
device specs file if "device-specs%s" didn't resolve to a path.

From-SVN: r221947

gcc/ChangeLog
gcc/config/avr/driver-avr.c

index e3bf58e4515b1f718e5074ba0d9262e6144f717b..36e027add255b0e8ade2ffd2a6d617166dd34d9e 100644 (file)
@@ -1,3 +1,9 @@
+2015-04-09  Georg-Johann Lay  <avr@gjlay.de>
+
+       PR target/65296
+       * config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
+       device specs file if "device-specs%s" didn't resolve to a path.
+
 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
 
        PR target/65676
index 4890a39b489a9eebdedc727ee6a91e0c60ca333e..75d7e6f67919cc145171f27b7c9a52b93b2b6380 100644 (file)
@@ -80,6 +80,19 @@ avr_devicespecs_file (int argc, const char **argv)
       return X_NODEVLIB;
 
     case 1:
+      if (0 == strcmp ("device-specs", argv[0]))
+        {
+          /* FIXME:  This means "device-specs%s" from avr.h:DRIVER_SELF_SPECS
+             has not been resolved to a path.  That case can occur when the
+             c++ testsuite is run from the build directory.  DejaGNU's
+             libgloss.exp:get_multilibs runs $compiler without -B, i.e.runs
+             xgcc without specifying a prefix.  Without any prefix, there is
+             no means to find out where the specs files might be located.
+             get_multilibs runs xgcc --print-multi-lib, hence we don't actually
+             need information form a specs file and may skip it here.  */
+          return X_NODEVLIB;
+        }
+
       mmcu = AVR_MMCU_DEFAULT;
       break;