diff --git a/src/utils/LogCompilation/Makefile b/src/utils/LogCompilation/Makefile
index f04795e44b1..5f9ca083842 100644
--- a/src/utils/LogCompilation/Makefile
+++ b/src/utils/LogCompilation/Makefile
@@ -25,7 +25,7 @@ PKGLIST = \
com.sun.hotspot.tools.compiler
#END PKGLIST
-FILELIST = com/sun/hotspot/tools/compiler/*.java
+FILELIST = main/java/com/sun/hotspot/tools/compiler/*.java
ifneq "x$(ALT_BOOTDIR)" "x"
BOOTDIR := $(ALT_BOOTDIR)
diff --git a/src/utils/LogCompilation/README b/src/utils/LogCompilation/README
index 790173120d6..db9b20aec47 100644
--- a/src/utils/LogCompilation/README
+++ b/src/utils/LogCompilation/README
@@ -16,3 +16,10 @@ More information about the LogCompilation output can be found at
https://wiki.openjdk.java.net/display/HotSpot/LogCompilation+overview
https://wiki.openjdk.java.net/display/HotSpot/PrintCompilation
https://wiki.openjdk.java.net/display/HotSpot/LogCompilation+tool
+
+The project layout is now for Maven. To build the project with Maven do:
+
+ mvn clean install
+
+The build also copies the resulting target jar to ./logc.jar for easy
+interop with the Makefile build.
\ No newline at end of file
diff --git a/src/utils/LogCompilation/pom.xml b/src/utils/LogCompilation/pom.xml
new file mode 100644
index 00000000000..ca5c3aa0a1f
--- /dev/null
+++ b/src/utils/LogCompilation/pom.xml
@@ -0,0 +1,110 @@
+
+
+
+ 4.0.0
+ com.sun.hotspot.tools.compiler
+ LogCompilation
+ jar
+ 1.0-SNAPSHOT
+ LogCompilation
+ http://maven.apache.org
+
+
+ junit
+ junit
+ 4.8.2
+ test
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ 3.1.0
+
+
+ package
+
+ shade
+
+
+
+
+ com.sun.hotspot.tools.compiler.LogCompilation
+
+
+ false
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ 1.8
+ 1.8
+
+
+
+ org.apache.maven.plugins
+ maven-release-plugin
+ 2.5.3
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 3.0.0-M1
+
+
+ maven-antrun-plugin
+ 1.8
+
+
+ copy
+ package
+
+
+
+
+
+
+ run
+
+
+
+
+
+
+
diff --git a/src/utils/LogCompilation/src/com/sun/hotspot/tools/compiler/BasicLogEvent.java b/src/utils/LogCompilation/src/main/java/com/sun/hotspot/tools/compiler/BasicLogEvent.java
similarity index 100%
rename from src/utils/LogCompilation/src/com/sun/hotspot/tools/compiler/BasicLogEvent.java
rename to src/utils/LogCompilation/src/main/java/com/sun/hotspot/tools/compiler/BasicLogEvent.java
diff --git a/src/utils/LogCompilation/src/com/sun/hotspot/tools/compiler/CallSite.java b/src/utils/LogCompilation/src/main/java/com/sun/hotspot/tools/compiler/CallSite.java
similarity index 100%
rename from src/utils/LogCompilation/src/com/sun/hotspot/tools/compiler/CallSite.java
rename to src/utils/LogCompilation/src/main/java/com/sun/hotspot/tools/compiler/CallSite.java
diff --git a/src/utils/LogCompilation/src/com/sun/hotspot/tools/compiler/Compilation.java b/src/utils/LogCompilation/src/main/java/com/sun/hotspot/tools/compiler/Compilation.java
similarity index 100%
rename from src/utils/LogCompilation/src/com/sun/hotspot/tools/compiler/Compilation.java
rename to src/utils/LogCompilation/src/main/java/com/sun/hotspot/tools/compiler/Compilation.java
diff --git a/src/utils/LogCompilation/src/com/sun/hotspot/tools/compiler/Constants.java b/src/utils/LogCompilation/src/main/java/com/sun/hotspot/tools/compiler/Constants.java
similarity index 100%
rename from src/utils/LogCompilation/src/com/sun/hotspot/tools/compiler/Constants.java
rename to src/utils/LogCompilation/src/main/java/com/sun/hotspot/tools/compiler/Constants.java
diff --git a/src/utils/LogCompilation/src/com/sun/hotspot/tools/compiler/LogCleanupReader.java b/src/utils/LogCompilation/src/main/java/com/sun/hotspot/tools/compiler/LogCleanupReader.java
similarity index 100%
rename from src/utils/LogCompilation/src/com/sun/hotspot/tools/compiler/LogCleanupReader.java
rename to src/utils/LogCompilation/src/main/java/com/sun/hotspot/tools/compiler/LogCleanupReader.java
diff --git a/src/utils/LogCompilation/src/com/sun/hotspot/tools/compiler/LogCompilation.java b/src/utils/LogCompilation/src/main/java/com/sun/hotspot/tools/compiler/LogCompilation.java
similarity index 100%
rename from src/utils/LogCompilation/src/com/sun/hotspot/tools/compiler/LogCompilation.java
rename to src/utils/LogCompilation/src/main/java/com/sun/hotspot/tools/compiler/LogCompilation.java
diff --git a/src/utils/LogCompilation/src/com/sun/hotspot/tools/compiler/LogEvent.java b/src/utils/LogCompilation/src/main/java/com/sun/hotspot/tools/compiler/LogEvent.java
similarity index 100%
rename from src/utils/LogCompilation/src/com/sun/hotspot/tools/compiler/LogEvent.java
rename to src/utils/LogCompilation/src/main/java/com/sun/hotspot/tools/compiler/LogEvent.java
diff --git a/src/utils/LogCompilation/src/com/sun/hotspot/tools/compiler/LogParser.java b/src/utils/LogCompilation/src/main/java/com/sun/hotspot/tools/compiler/LogParser.java
similarity index 99%
rename from src/utils/LogCompilation/src/com/sun/hotspot/tools/compiler/LogParser.java
rename to src/utils/LogCompilation/src/main/java/com/sun/hotspot/tools/compiler/LogParser.java
index bd98f02b283..85ce379e16f 100644
--- a/src/utils/LogCompilation/src/com/sun/hotspot/tools/compiler/LogParser.java
+++ b/src/utils/LogCompilation/src/main/java/com/sun/hotspot/tools/compiler/LogParser.java
@@ -632,7 +632,7 @@ public class LogParser extends DefaultHandler implements ErrorHandler {
/**
* Entry point for log file parsing with a file reader.
- * {@see #parse(String,boolean)}
+ * {@link #parse(String,boolean)}
*/
public static ArrayList parse(Reader reader, boolean cleanup) throws Exception {
// Create the XML input factory
@@ -825,7 +825,7 @@ public class LogParser extends DefaultHandler implements ErrorHandler {
* an {@linkplain #site initial scope} with a bogus bytecode index and the
* right inline ID, and push the scope with the inline ID attached. Note
* that most of late inlining processing happens in
- * {@link #endElement()}.
+ * {@link #endElement(String,String,String)}.
*
jvms: record a {@linkplain Jvms JVMState}. Depending on the
* context in which this event is encountered, this can mean adding
* information to the currently being processed trap, lock elimination, or
@@ -1182,11 +1182,11 @@ public class LogParser extends DefaultHandler implements ErrorHandler {
* {@code true} here. (It will be reset when parsing the inlined methods is
* done; this happens for the successful case in this method as well, when
* {@code parse} elements are processed; and for inlining failures, in
- * {@link #startElement()}, when {@code inline_fail} elements are
+ * {@link #startElement(String,String,String,Attributes)}, when {@code inline_fail} elements are
* processed.)
*
task: perform cleanup at the end of a compilation. Note that
* the explicit {@code task_done} event is handled in
- * {@link #startElement()}.
+ * {@link #startElement(String,String,String,Attributes)}.
*
*/
@Override
diff --git a/src/utils/LogCompilation/src/com/sun/hotspot/tools/compiler/MakeNotEntrantEvent.java b/src/utils/LogCompilation/src/main/java/com/sun/hotspot/tools/compiler/MakeNotEntrantEvent.java
similarity index 100%
rename from src/utils/LogCompilation/src/com/sun/hotspot/tools/compiler/MakeNotEntrantEvent.java
rename to src/utils/LogCompilation/src/main/java/com/sun/hotspot/tools/compiler/MakeNotEntrantEvent.java
diff --git a/src/utils/LogCompilation/src/com/sun/hotspot/tools/compiler/Method.java b/src/utils/LogCompilation/src/main/java/com/sun/hotspot/tools/compiler/Method.java
similarity index 100%
rename from src/utils/LogCompilation/src/com/sun/hotspot/tools/compiler/Method.java
rename to src/utils/LogCompilation/src/main/java/com/sun/hotspot/tools/compiler/Method.java
diff --git a/src/utils/LogCompilation/src/com/sun/hotspot/tools/compiler/NMethod.java b/src/utils/LogCompilation/src/main/java/com/sun/hotspot/tools/compiler/NMethod.java
similarity index 100%
rename from src/utils/LogCompilation/src/com/sun/hotspot/tools/compiler/NMethod.java
rename to src/utils/LogCompilation/src/main/java/com/sun/hotspot/tools/compiler/NMethod.java
diff --git a/src/utils/LogCompilation/src/com/sun/hotspot/tools/compiler/Phase.java b/src/utils/LogCompilation/src/main/java/com/sun/hotspot/tools/compiler/Phase.java
similarity index 100%
rename from src/utils/LogCompilation/src/com/sun/hotspot/tools/compiler/Phase.java
rename to src/utils/LogCompilation/src/main/java/com/sun/hotspot/tools/compiler/Phase.java
diff --git a/src/utils/LogCompilation/src/com/sun/hotspot/tools/compiler/UncommonTrap.java b/src/utils/LogCompilation/src/main/java/com/sun/hotspot/tools/compiler/UncommonTrap.java
similarity index 100%
rename from src/utils/LogCompilation/src/com/sun/hotspot/tools/compiler/UncommonTrap.java
rename to src/utils/LogCompilation/src/main/java/com/sun/hotspot/tools/compiler/UncommonTrap.java
diff --git a/src/utils/LogCompilation/src/com/sun/hotspot/tools/compiler/UncommonTrapEvent.java b/src/utils/LogCompilation/src/main/java/com/sun/hotspot/tools/compiler/UncommonTrapEvent.java
similarity index 100%
rename from src/utils/LogCompilation/src/com/sun/hotspot/tools/compiler/UncommonTrapEvent.java
rename to src/utils/LogCompilation/src/main/java/com/sun/hotspot/tools/compiler/UncommonTrapEvent.java