e6ab17d1b1
by find-debuginfo.sh https://bugzilla.redhat.com/show_bug.cgi?id=472292 Thu Nov 20 2008 Andrew Overholt <overholt@redhat.com> 3.4.1-7 - Update and re-enable patch for always generating debuginfo for class files when doing an RPM build.
197 lines
6.6 KiB
Diff
197 lines
6.6 KiB
Diff
### Eclipse Workspace Patch 1.0
|
|
#P org.eclipse.jdt.core
|
|
Index: batch/org/eclipse/jdt/internal/compiler/batch/Main.java
|
|
===================================================================
|
|
RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch/Main.java,v
|
|
retrieving revision 1.327
|
|
diff -u -r1.327 Main.java
|
|
--- batch/org/eclipse/jdt/internal/compiler/batch/Main.java 21 Apr 2008 15:00:59 -0000 1.327
|
|
+++ batch/org/eclipse/jdt/internal/compiler/batch/Main.java 20 Nov 2008 19:26:57 -0000
|
|
@@ -268,22 +268,22 @@
|
|
if ((startPosition > endPosition)
|
|
|| ((startPosition < 0) && (endPosition < 0))
|
|
|| length == 0)
|
|
- return Messages.problem_noSourceInformation;
|
|
+ return Messages.problem_noSourceInformation;
|
|
|
|
StringBuffer errorBuffer = new StringBuffer();
|
|
if ((bits & Main.Logger.EMACS) == 0) {
|
|
- errorBuffer.append(' ').append(Messages.bind(Messages.problem_atLine, String.valueOf(problem.getSourceLineNumber())));
|
|
+ errorBuffer.append(' ').append(Messages.bind(Messages.problem_atLine, String.valueOf(problem.getSourceLineNumber())));
|
|
errorBuffer.append(Util.LINE_SEPARATOR);
|
|
}
|
|
errorBuffer.append('\t');
|
|
-
|
|
+
|
|
char c;
|
|
final char SPACE = '\u0020';
|
|
final char MARK = '^';
|
|
final char TAB = '\t';
|
|
//the next code tries to underline the token.....
|
|
//it assumes (for a good display) that token source does not
|
|
- //contain any \r \n. This is false on statements !
|
|
+ //contain any \r \n. This is false on statements !
|
|
//(the code still works but the display is not optimal !)
|
|
|
|
// expand to line limits
|
|
@@ -295,11 +295,11 @@
|
|
for (end = endPosition >= length ? length - 1 : endPosition ; end+1 < length; end++) {
|
|
if ((c = unitSource[end + 1]) == '\r' || c == '\n') break;
|
|
}
|
|
-
|
|
+
|
|
// trim left and right spaces/tabs
|
|
while ((c = unitSource[begin]) == ' ' || c == '\t') begin++;
|
|
//while ((c = unitSource[end]) == ' ' || c == '\t') end--; TODO (philippe) should also trim right, but all tests are to be updated
|
|
-
|
|
+
|
|
// copy source
|
|
errorBuffer.append(unitSource, begin, end-begin+1);
|
|
errorBuffer.append(Util.LINE_SEPARATOR).append("\t"); //$NON-NLS-1$
|
|
@@ -424,7 +424,7 @@
|
|
String.valueOf(generateTime),
|
|
String.valueOf(((int) (generateTime * 1000.0 / time)) / 10.0),
|
|
}));
|
|
- }
|
|
+ }
|
|
}
|
|
public void logClassFile(boolean generatePackagesStructure, String outputPath, String relativeFileName) {
|
|
if ((this.tagBits & Logger.XML) != 0) {
|
|
@@ -916,7 +916,7 @@
|
|
this.main.bind("compile.totalTime", //$NON-NLS-1$
|
|
new String[] {
|
|
String.valueOf(time),
|
|
- }));
|
|
+ }));
|
|
}
|
|
if ((this.main.timing & Main.TIMING_DETAILED) != 0) {
|
|
this.printlnOut(
|
|
@@ -1119,7 +1119,7 @@
|
|
this.endTag(Logger.STATS);
|
|
}
|
|
}
|
|
-
|
|
+
|
|
private void printTag(String name, HashMap params, boolean insertNewLine, boolean closeTag) {
|
|
if (this.log != null) {
|
|
((GenericXMLWriter) this.log).printTag(name, parameters, true, insertNewLine, closeTag);
|
|
@@ -1245,12 +1245,12 @@
|
|
|
|
boolean warnJavadocOn;
|
|
boolean warnAllJavadocOn;
|
|
-
|
|
+
|
|
public Compiler batchCompiler;
|
|
/* Bundle containing messages */
|
|
public ResourceBundle bundle;
|
|
protected FileSystem.Classpath[] checkedClasspaths;
|
|
-
|
|
+
|
|
public Locale compilerLocale;
|
|
public CompilerOptions compilerOptions; // read-only
|
|
public CompilationProgress progress;
|
|
@@ -1299,7 +1299,7 @@
|
|
public static final int TIMING_DISABLED = 0;
|
|
public static final int TIMING_ENABLED = 1;
|
|
public static final int TIMING_DETAILED = 2;
|
|
-
|
|
+
|
|
public int timing = TIMING_DISABLED;
|
|
public CompilerStats[] compilerStats;
|
|
public boolean verbose = false;
|
|
@@ -1312,7 +1312,7 @@
|
|
// two uses: recognize 'none' in options; code the singleton none
|
|
// for the '-d none' option (wherever it may be found)
|
|
public static final int DEFAULT_SIZE_CLASSPATH = 4;
|
|
-
|
|
+
|
|
public static final String NONE = "none"; //$NON-NLS-1$
|
|
|
|
/**
|
|
@@ -1562,7 +1562,7 @@
|
|
}
|
|
/**
|
|
* Return true if and only if the running VM supports the given minimal version.
|
|
- *
|
|
+ *
|
|
* <p>This only checks the major version, since the minor version is always 0 (at least for the useful cases).</p>
|
|
* <p>The given minimalSupportedVersion is one of the constants:</p>
|
|
* <ul>
|
|
@@ -2536,8 +2536,8 @@
|
|
mode = DEFAULT;
|
|
continue;
|
|
}
|
|
-
|
|
- // set DocCommentSupport, with appropriate side effects on defaults if
|
|
+
|
|
+ // set DocCommentSupport, with appropriate side effects on defaults if
|
|
// javadoc is not enabled
|
|
if (this.enableJavadocOn) {
|
|
this.options.put(
|
|
@@ -2601,7 +2601,7 @@
|
|
this.logger.logVersion(printVersionRequired);
|
|
|
|
validateOptions(didSpecifyCompliance);
|
|
-
|
|
+
|
|
// Enable annotation processing by default in batch mode when compliance is at least 1.6
|
|
// see bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=185768
|
|
if (!didSpecifyDisabledAnnotationProcessing
|
|
@@ -2609,6 +2609,29 @@
|
|
this.options.put(CompilerOptions.OPTION_Process_Annotations, CompilerOptions.ENABLED);
|
|
}
|
|
|
|
+ {
|
|
+ // If we're building an RPM, force full debugging info to
|
|
+ // be generated, no matter what options have been passed
|
|
+ // by Ant. This is something of a kludge, but it is far
|
|
+ // better than the alternative, which is having class
|
|
+ // files with debug info mysteriously missing.
|
|
+
|
|
+ String RpmPackageName = System.getenv("RPM_PACKAGE_NAME");
|
|
+ String RpmArch = System.getenv("RPM_ARCH");
|
|
+ String RpmBuildRoot = System.getenv("RPM_BUILD_ROOT");
|
|
+ if (RpmPackageName != null && RpmArch != null && RpmBuildRoot != null) {
|
|
+ this.options.put(
|
|
+ CompilerOptions.OPTION_LocalVariableAttribute,
|
|
+ CompilerOptions.GENERATE);
|
|
+ this.options.put(
|
|
+ CompilerOptions.OPTION_LineNumberAttribute,
|
|
+ CompilerOptions.GENERATE);
|
|
+ this.options.put(
|
|
+ CompilerOptions.OPTION_SourceFileAttribute,
|
|
+ CompilerOptions.GENERATE);
|
|
+ }
|
|
+ }
|
|
+
|
|
this.logger.logCommandLineArguments(newCommandLineArgs);
|
|
this.logger.logOptions(this.options);
|
|
|
|
@@ -2636,7 +2659,7 @@
|
|
0,
|
|
classCount);
|
|
}
|
|
-
|
|
+
|
|
setPaths(bootclasspaths,
|
|
sourcepathClasspathArg,
|
|
sourcepathClasspaths,
|
|
@@ -2644,7 +2667,7 @@
|
|
extdirsClasspaths,
|
|
endorsedDirClasspaths,
|
|
customEncoding);
|
|
-
|
|
+
|
|
if (this.pendingErrors != null) {
|
|
for (Iterator iterator = this.pendingErrors.iterator(); iterator.hasNext(); ) {
|
|
String message = (String) iterator.next();
|
|
@@ -3376,7 +3399,7 @@
|
|
} else if (token.equals("unusedTypeArgs")) { //$NON-NLS-1$
|
|
this.options.put(
|
|
CompilerOptions.OPTION_ReportUnusedTypeArgumentsForMethodInvocation,
|
|
- isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
|
|
+ isEnabling ? CompilerOptions.WARNING : CompilerOptions.IGNORE);
|
|
} else {
|
|
addPendingErrors(this.bind("configure.invalidWarning", token)); //$NON-NLS-1$
|
|
}
|