code: public static String[] getSpecs() {
      if (specs == null) {
        final File gccParent = CUtil.getExecutableLocation(GccCCompiler.CMD_PREFIX + "gcc.exe");
        if (gccParent != null) {
          //
          // build a relative path like
          // ../lib/gcc-lib/i686-pc-cygwin/2.95.3-5/specs
          //
          //
          // resolve it relative to the location of gcc.exe
          //
          final String relativePath = "../lib/gcc-lib/" + getMachine() +
              '/' +
              getVersion() +
              "/specs";
          final File specsFile = new File(gccParent, relativePath);
          //
          // found the specs file
          //
          try {
            //
            // read the lines in the file
            //
            final BufferedReader reader = new BufferedReader(new FileReader(specsFile));
            final Vector<String> lines = new Vector<>(100);
            String line = reader.readLine();
            while (line != null) {
              lines.addElement(line);
              line = reader.readLine();
            }
            specs = new String[lines.size()];
            lines.copyInto(specs);
          } catch (final IOException ex) {
          }
        }
      }
      if (specs == null) {
        specs = new String[0];
      }
      return specs;
    }
docs: Returns the contents of the gcc specs file.
  
  The implementation locates gcc.exe in the executable path and then
  builds a relative path name from the results of -dumpmachine and
  -dumpversion. Attempts to use gcc -dumpspecs to provide this information
  resulted in stalling on the Execute.run
  
  @return contents of the specs file