diff --git a/Ghidra/Features/Base/src/main/help/help/topics/ImporterPlugin/images/BatchImportDialog.png b/Ghidra/Features/Base/src/main/help/help/topics/ImporterPlugin/images/BatchImportDialog.png index 9e19244c7e..fb2d026de7 100644 Binary files a/Ghidra/Features/Base/src/main/help/help/topics/ImporterPlugin/images/BatchImportDialog.png and b/Ghidra/Features/Base/src/main/help/help/topics/ImporterPlugin/images/BatchImportDialog.png differ diff --git a/Ghidra/Features/Base/src/main/help/help/topics/ImporterPlugin/images/ImporterDialog.png b/Ghidra/Features/Base/src/main/help/help/topics/ImporterPlugin/images/ImporterDialog.png index 9d747632ed..3f70064d34 100644 Binary files a/Ghidra/Features/Base/src/main/help/help/topics/ImporterPlugin/images/ImporterDialog.png and b/Ghidra/Features/Base/src/main/help/help/topics/ImporterPlugin/images/ImporterDialog.png differ diff --git a/Ghidra/Features/Base/src/main/help/help/topics/ImporterPlugin/images/LanguagePickerDialog.png b/Ghidra/Features/Base/src/main/help/help/topics/ImporterPlugin/images/LanguagePickerDialog.png index 805971f258..5906dfd6b8 100644 Binary files a/Ghidra/Features/Base/src/main/help/help/topics/ImporterPlugin/images/LanguagePickerDialog.png and b/Ghidra/Features/Base/src/main/help/help/topics/ImporterPlugin/images/LanguagePickerDialog.png differ diff --git a/Ghidra/Features/Base/src/main/help/help/topics/ImporterPlugin/images/SearchPathsDialog.png b/Ghidra/Features/Base/src/main/help/help/topics/ImporterPlugin/images/SearchPathsDialog.png index a173c31ca0..a31500a941 100644 Binary files a/Ghidra/Features/Base/src/main/help/help/topics/ImporterPlugin/images/SearchPathsDialog.png and b/Ghidra/Features/Base/src/main/help/help/topics/ImporterPlugin/images/SearchPathsDialog.png differ diff --git a/Ghidra/Features/Base/src/main/help/help/topics/ImporterPlugin/importer.htm b/Ghidra/Features/Base/src/main/help/help/topics/ImporterPlugin/importer.htm index b705861890..5a95a95494 100644 --- a/Ghidra/Features/Base/src/main/help/help/topics/ImporterPlugin/importer.htm +++ b/Ghidra/Features/Base/src/main/help/help/topics/ImporterPlugin/importer.htm @@ -279,6 +279,12 @@ removed (e.g., .xml, .gzf). Path information at the beginning of this field will be used to create a destination folder in the current project under the root folder specified by the Destination Folder field.
+ +
  • Mirror Filesystem - If checked, the filesystem path layout of any imported + binaries will be mirrored in the destination folder. Any filesystem directory and file + soft links will be mirrored as + Ghidra + project folder and file links..

  • Options... - This button will pop up format specific options for the import.

  • @@ -335,7 +341,9 @@

    The project folder that will get searched for existing library programs. If left - empty, the folder that the main program is being imported to will be searched.

    + empty, the folder that the main program is being imported to will be searched. + This option is hidden and set to the program destination folder if filesystem + mirroring is enabled in the Importer Dialog.

    Load Libraries From Disk

    @@ -360,7 +368,20 @@

    The project folder where newly loaded library programs will get created. If left - empty, they will get created in the same folder as the main program being imported.

    + empty, they will get created in the same folder as the main program being imported. + This option is hidden and set to the program destination folder if filesystem + mirroring is enabled in the Importer Dialog.

    +
    + +

    Mirror Library Disk Layout

    + +
    +

    If selected, the filesystem path layout of all imported libraries are + mirrored in the library destination folder. Any filesystem directory and file + soft links will be mirrored as + Ghidra + project folder and file links. This option is hidden and enabled if filesystem + mirroring is enabled in the Importer Dialog.

    @@ -718,6 +739,9 @@ added via the File System Browser context menu.

    +

    If importing with filesystem mirroring activated, these paths also are used to lookup + already-imported libraries that are rooted in the project at the specified destination folder. +

    @@ -936,6 +960,16 @@ the result in the project. Otherwise, the file will be in a corresponding relative path to the path the file was in its archive.

    + +

    Mirror Filesystem

    + +
    +

    If selected, the filesystem path layout of any imported + binaries will be mirrored in the destination folder. Any filesystem directory and file + soft links will be mirrored as + Ghidra + project folder and file links.

    +

    Project Destination

    diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/dwarf/sectionprovider/ExternalDebugFileSectionProvider.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/dwarf/sectionprovider/ExternalDebugFileSectionProvider.java index 7d08760b79..4a5d2776c4 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/dwarf/sectionprovider/ExternalDebugFileSectionProvider.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/dwarf/sectionprovider/ExternalDebugFileSectionProvider.java @@ -24,6 +24,7 @@ import ghidra.app.util.bin.ByteProvider; import ghidra.app.util.bin.format.dwarf.external.*; import ghidra.app.util.importer.MessageLog; import ghidra.app.util.opinion.*; +import ghidra.app.util.opinion.Loader.ImporterSettings; import ghidra.formats.gfilesystem.*; import ghidra.framework.options.Options; import ghidra.plugin.importer.ImporterUtilities; @@ -84,11 +85,13 @@ public class ExternalDebugFileSectionProvider extends BaseSectionProvider { Loader origLoader = origLoadSpec.getLoader(); List