Skip to content
  • Carsten Emde's avatar
    Made a number of upgrade changes: · 0f52fb67
    Carsten Emde authored
    1. Some libraries have type ELFOSABI_LINUX instead of ELFOSABI_SYSV and,
       thus, were considered to belong to a different OS. In consequence,
       they were not searched for exports to the ELFOSABI_SYSV objects.
       The fix was to overwrite their type with ELFOSABI_SYSV.
    
    2. Undefined symbols have (at least here) length 0, but symbols with length 0
       were completely skipped. The fix was to only skip symbols with length 0 if
       they are not marked as undefined.
    
    3. Some valid function symbols have (again at least here) type STT_LOOS and
       were skipped, since only STT_FUNC was accepted. The fix was to store
       STT_LOOS symbols also as valid functions.
    
    4. Symbolic links of libraries were stored but not evaluated. The fix was to
       add targets of symbolic links to the list of libraries to be evaluated.
    
    5. In the original version, all symbols were included irrespective of whether
       they are in use or not. This has sometimes led to rather confusing images.
       The fix was to only include exported symbols that are in use at least once.
    
    6. When an entire root file system was evaluated, the number of links exceeded
       by far what Neo4j could handle. The fix was to add the command line option
       "-t" or "--target" that accepts a comma-separated list of binary objects to
       scan. It this option is given, all other binaries are skipped. For this
       functionality it was required to recursively resolve all dependencies of the
       given binaries and to add them to the list of included binaries.
    
    7. Added more output formats: 'gexf' for Gephi, 'gv' for Graphviz and
       'text' for simple text output.
    0f52fb67