Closed FuccDucc closed 3 years ago
I just updated the log content, after making all warnings more verbose enabling Xlint logging in build.gradle
:
allprojects {
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" << "-Xlint:removal"
}
}
}
Duplicate of #1668
You can build ghidra with this branch here in the meantime.
You can build ghidra with this branch here in the meantime.
I tried and failed.. first to mention, i got a lot of warnings about incorrect usage and deprecations that are in the Ghidra project, so this issue can also serve to know what to fix for future Java versions support. So i will post the build log below.. Note that it also contains the reason why building your "jdk14" branch failed.
tag *
^ D:\Development\Gradle\src\ghidra-master\Ghidra\Framework\Project\src\main\java\ghidra\framework\plugintool\Plugin.java:39: warning: empty
tag *
^ D:\Development\Gradle\src\ghidra-master\Ghidra\Framework\Project\src\main\java\ghidra\framework\plugintool\Plugin.java:160: warning: empty
tag *
^ D:\Development\Gradle\src\ghidra-master\Ghidra\Features\Base\src\main\java\ghidra\app\util\bin\format\dwarf4\attribs\DWARFIndirectAttribute.java:28: warning: empty
tag *
^ D:\Development\Gradle\src\ghidra-master\Ghidra\Features\Base\src\main\java\ghidra\app\util\bin\format\dwarf4\DWARFCompilationUnit.java:36: warning: empty
tag *
^ D:\Development\Gradle\src\ghidra-master\Ghidra\Features\Base\src\main\java\ghidra\app\util\bin\format\dwarf4\DWARFCompileUnit.java:26: warning: empty
tag *
^ D:\Development\Gradle\src\ghidra-master\Ghidra\Features\Base\src\main\java\ghidra\app\util\bin\format\dwarf4\expression\DWARFExpressionEvaluator.java:37: warning: empty
tag *
^ D:\Development\Gradle\src\ghidra-master\Ghidra\Features\Base\src\main\java\ghidra\app\util\bin\format\dwarf4\next\DWARFDataTypeImporter.java:41: warning: empty
tag *
^ D:\Development\Gradle\src\ghidra-master\Ghidra\Features\Base\src\main\java\ghidra\app\util\bin\format\dwarf4\next\DWARFNameInfo.java:29: warning: empty
tag *
^ D:\Development\Gradle\src\ghidra-master\Ghidra\Features\Base\src\main\java\ghidra\app\util\bin\format\dwarf4\next\DWARFRegisterMappings.java:33: warning: empty
tag * The format is:
^ D:\Development\Gradle\src\ghidra-master\Ghidra\Features\Base\src\main\java\ghidra\app\util\bin\format\dwarf4\next\DWARFRegisterMappingsManager.java:34: warning: empty
tag *
^ D:\Development\Gradle\src\ghidra-master\Ghidra\Features\Base\src\main\java\ghidra\app\util\bin\format\dwarf4\next\sectionprovider\DWARFSectionProvider.java:31: warning: empty
tag *
^ D:\Development\Gradle\src\ghidra-master\Ghidra\Features\Base\src\main\java\ghidra\app\util\bin\format\pe\BoundImportDescriptor.java:32: warning: empty
tag *
^ D:\Development\Gradle\src\ghidra-master\Ghidra\Features\Base\src\main\java\ghidra\app\util\bin\format\pe\BoundImportForwarderRef.java:31: warning: empty
tag *
^ D:\Development\Gradle\src\ghidra-master\Ghidra\Features\Base\src\main\java\ghidra\app\util\bin\format\pe\DelayImportDescriptor.java:33: warning: empty
tag *
^ D:\Development\Gradle\src\ghidra-master\Ghidra\Features\Base\src\main\java\ghidra\app\util\bin\format\pe\SecurityCertificate.java:32: warning: empty
tag *
^ D:\Development\Gradle\src\ghidra-master\Ghidra\Features\Base\src\main\java\ghidra\app\util\bin\InputStreamByteProvider.java:27: warning: empty
tag *
^ D:\Development\Gradle\src\ghidra-master\Ghidra\Features\Base\src\main\java\ghidra\app\util\datatype\microsoft\RTTI0DataType.java:34: warning: empty
tag *
^ D:\Development\Gradle\src\ghidra-master\Ghidra\Features\Base\src\main\java\ghidra\app\util\datatype\microsoft\RTTI1DataType.java:32: warning: empty
tag *
^ D:\Development\Gradle\src\ghidra-master\Ghidra\Features\Base\src\main\java\ghidra\app\util\datatype\microsoft\RTTI1DataType.java:41: warning: empty
tag *
^ D:\Development\Gradle\src\ghidra-master\Ghidra\Features\Base\src\main\java\ghidra\app\util\datatype\microsoft\RTTI3DataType.java:33: warning: empty
tag *
^ D:\Development\Gradle\src\ghidra-master\Ghidra\Features\Base\src\main\java\ghidra\app\util\datatype\microsoft\RTTI4DataType.java:32: warning: empty
tag *
^ D:\Development\Gradle\src\ghidra-master\Ghidra\Features\Base\src\main\java\ghidra\app\util\demangler\Demangled.java:23: warning: empty
Describe the bug It's not currently possible to build Ghidra (master) using the latest of the latest toolsets:
Build 26 (2020/6/3)
Below spoiler contains the build query that ends up failing for the errors that are in the log:
Full actions log
``` D:\Development\Gradle\src\ghidra-master>gradle BuildGhidra > Configure project : Searching for latest Visual Studio and required components... -> Installation Directory: d:\Program Files (x86)\Microsoft Visual Studio\2019\Community -> VCTools Version (default): 14.26.28801 -> SDK Directory (default): D:\Windows Kits\10\ -> SDK Version (default): 10.0.19631.0 -> SDK Version (override): N/A Returning 69 exclusion line(s) for jacocoReport. have binary: executable 'demangler_gnu_v2_24:linux64:executable' have binary: executable 'demangler_gnu_v2_24:osx64:executable' have binary: executable 'demangler_gnu_v2_24:win64:executable' have binary: executable 'demangler_gnu_v2_33_1:linux64:executable' have binary: executable 'demangler_gnu_v2_33_1:osx64:executable' have binary: executable 'demangler_gnu_v2_33_1:win64:executable' > Task :Project:compileJava D:\Development\Gradle\src\ghidra-master\Ghidra\Framework\Project\src\main\java\ghidra\framework\data\OptionsDB.java:227: error: reference to Record is ambiguous private Record getPropertyRecord(String propertyName) { ^ both class db.Record in db and class java.lang.Record in java.lang match D:\Development\Gradle\src\ghidra-master\Ghidra\Framework\Project\src\main\java\ghidra\framework\data\OptionsDB.java:243: error: reference to Record is ambiguous private void putRecord(Record rec) { ^ both class db.Record in db and class java.lang.Record in java.lang match D:\Development\Gradle\src\ghidra-master\Ghidra\Framework\Project\src\main\java\ghidra\framework\cmd\BackgroundCommand.java:59: warning: [deprecation] DUMMY_MONITOR in TaskMonitorAdapter has been deprecated return applyTo(obj, TaskMonitorAdapter.DUMMY_MONITOR); ^ D:\Development\Gradle\src\ghidra-master\Ghidra\Framework\Project\src\main\java\ghidra\framework\plugintool\util\PluginPackage.java:57: warning: [deprecation] newInstance() in Class has been deprecated pluginPackage = class1.newInstance(); ^ where T is a type-variable: T extends Object declared in class Class D:\Development\Gradle\src\ghidra-master\Ghidra\Framework\Project\src\main\java\ghidra\framework\data\DomainObjectAdapterDB.java:606: warning: [deprecation] DUMMY_MONITOR in TaskMonitorAdapter has been deprecated userData.save(null, TaskMonitorAdapter.DUMMY_MONITOR); ^ D:\Development\Gradle\src\ghidra-master\Ghidra\Framework\Project\src\main\java\ghidra\framework\data\OptionsDB.java:102: error: reference to Record is ambiguous Record rec = iterator.next(); ^ both class db.Record in db and class java.lang.Record in java.lang match D:\Development\Gradle\src\ghidra-master\Ghidra\Framework\Project\src\main\java\ghidra\framework\data\OptionsDB.java:111: error: reference to Record is ambiguous ArrayListI know that support for these bleeding-edge versions of tools isn't guaranteed, but the errors it spits and eventually fails with can still be helpful - there are some warnings about incorrect usage in Ghidra code, deprecations, and you might even be interested to start working on future toolset compatibility already now (especially if the reason my build failed, were problems in the Ghidra source code that will only be exposed in these upcoming versions due to the compiler being more strict or whatever, I didn't really investigate due to a lack of experience). I just want to let you know that what I was trying to do isn't possible. Heck, maybe your standpoint will even be that it shouldn't fail, and you can fix it so that we can do this..
To Reproduce Steps to reproduce the behavior:
Expected behavior Ghidra should ideally have broader compatibility with all modern toolset versions
Environment (please complete the following information):