From 6f612ff5a7a962adb6bc423f1f14ed461b029c89 Mon Sep 17 00:00:00 2001 From: jdh8d <jdh8d@git.zephyr-software.com> Date: Fri, 25 Sep 2015 22:00:29 +0000 Subject: [PATCH] Reworked to have irdb_transforms dir that can link in libstars. Former-commit-id: 6cb76f301f4d8a2b9eb8605dd176f9085faa22f6 --- SConscript | 9 --------- libMEDSannotation/include/MEDS.hpp | 8 +++++++- libMEDSannotation/include/MEDS_AnnotationBase.hpp | 2 +- libMEDSannotation/include/MEDS_AnnotationParser.hpp | 4 ++-- .../include/MEDS_FuncPrototypeAnnotation.hpp | 6 +++--- libMEDSannotation/include/VirtualOffset.hpp | 5 +++++ libMEDSannotation/src/MEDS_AnnotationParser.cpp | 8 +------- libMEDSannotation/src/VirtualOffset.cpp | 1 + tools/meds2pdb/meds2pdb.cpp | 4 ++-- 9 files changed, 22 insertions(+), 25 deletions(-) diff --git a/SConscript b/SConscript index 0c5567653..4c3b86e71 100644 --- a/SConscript +++ b/SConscript @@ -80,15 +80,6 @@ libxform=SConscript("xform/SConscript", variant_dir='scons_build/libxform') libtransform=SConscript("libtransform/SConscript", variant_dir='scons_build/libtransform') libIRDB=SConscript("libIRDB/SConscript", variant_dir='scons_build/libIRDB') -if 'build_stars' in env and int(env['build_stars']) == 1: - stars_path=os.environ['SMPSA_HOME'] - stars_sconscript=os.path.join(stars_path,"SConscript"); - argenv=env.Clone() - ARGUMENTS['build_ida']=0 - ARGUMENTS['build_irdb']=1 - Export('argenv') - libstars=SConscript(stars_sconscript, variant_dir='scons_build/stars') - if 'build_tools' not in env or env['build_tools'] is None or int(env['build_tools']) == 1: SConscript("tools/SConscript", variant_dir='scons_build/tools') diff --git a/libMEDSannotation/include/MEDS.hpp b/libMEDSannotation/include/MEDS.hpp index c566808ae..c3b938802 100644 --- a/libMEDSannotation/include/MEDS.hpp +++ b/libMEDSannotation/include/MEDS.hpp @@ -21,10 +21,16 @@ #ifndef _MEDS_H #define _MEDS_H +namespace MEDS_Annotation +{ + class MEDS { public: enum Register { UNKNOWN, EAX, EBX, ECX, EDX }; -} +}; + +} #endif + diff --git a/libMEDSannotation/include/MEDS_AnnotationBase.hpp b/libMEDSannotation/include/MEDS_AnnotationBase.hpp index 8444695f2..7bad605af 100644 --- a/libMEDSannotation/include/MEDS_AnnotationBase.hpp +++ b/libMEDSannotation/include/MEDS_AnnotationBase.hpp @@ -55,7 +55,7 @@ class MEDS_AnnotationBase virtual void init() { m_isValid = false; m_size = 0; } virtual bool isFuncAnnotation() const { return false; } // false by default - virtual bool isFuncPrototypeAnnotation() const { return false; } // false by default +// virtual bool isFuncPrototypeAnnotation() const { return false; } // false by default protected: bool m_isValid; diff --git a/libMEDSannotation/include/MEDS_AnnotationParser.hpp b/libMEDSannotation/include/MEDS_AnnotationParser.hpp index 3c7cd4b7e..1f59cb146 100644 --- a/libMEDSannotation/include/MEDS_AnnotationParser.hpp +++ b/libMEDSannotation/include/MEDS_AnnotationParser.hpp @@ -45,12 +45,12 @@ class MEDS_AnnotationParser void parseFile(const std::string &); /* pass filename */ MEDS_Annotations_t & getAnnotations() { return m_annotations; } MEDS_FuncAnnotations_t & getFuncAnnotations() { return m_func_annotations; } - MEDS_Annotations_t & getFuncPrototypeAnnotations() { return m_func_prototype_annotations; } + //MEDS_Annotations_t & getFuncPrototypeAnnotations() { return m_func_prototype_annotations; } private: MEDS_Annotations_t m_annotations; MEDS_FuncAnnotations_t m_func_annotations; - MEDS_Annotations_t m_func_prototype_annotations; + //MEDS_Annotations_t m_func_prototype_annotations; }; } diff --git a/libMEDSannotation/include/MEDS_FuncPrototypeAnnotation.hpp b/libMEDSannotation/include/MEDS_FuncPrototypeAnnotation.hpp index 8280357dc..583850946 100644 --- a/libMEDSannotation/include/MEDS_FuncPrototypeAnnotation.hpp +++ b/libMEDSannotation/include/MEDS_FuncPrototypeAnnotation.hpp @@ -82,13 +82,13 @@ class MEDS_Arg { // // Class to handle one function prototype annotations // -class MEDS_FuncPrototypeAnnotation : public MEDS_FuncAnnotation +class MEDS_FuncPrototypeAnnotation : public MEDS_AnnotationBase { public: MEDS_FuncPrototypeAnnotation() { init(); }; MEDS_FuncPrototypeAnnotation(const string &p_rawLine); - virtual ~MEDS_FuncPrototypeAnnotation(){} - virtual bool isFuncPrototypeAnnotation() const { return true; } + virtual ~MEDS_FuncPrototypeAnnotation() {} +// virtual bool isFuncPrototypeAnnotation() const { return true; } virtual const string toString() const { return "func proto: " + m_rawInputLine; } diff --git a/libMEDSannotation/include/VirtualOffset.hpp b/libMEDSannotation/include/VirtualOffset.hpp index 581bccb12..cabc12f22 100644 --- a/libMEDSannotation/include/VirtualOffset.hpp +++ b/libMEDSannotation/include/VirtualOffset.hpp @@ -24,6 +24,9 @@ #include <string> #include <sstream> +namespace MEDS_Annotation +{ + typedef unsigned long long ApplicationAddress; #define DEFAULT_LIBRARY_NAME "a.out" @@ -51,4 +54,6 @@ class VirtualOffset std::string m_libraryName; }; +} + #endif diff --git a/libMEDSannotation/src/MEDS_AnnotationParser.cpp b/libMEDSannotation/src/MEDS_AnnotationParser.cpp index ff684dbeb..8b119e49d 100644 --- a/libMEDSannotation/src/MEDS_AnnotationParser.cpp +++ b/libMEDSannotation/src/MEDS_AnnotationParser.cpp @@ -66,13 +66,7 @@ void MEDS_AnnotationParser::parseFile(istream &p_inputStream) type * annot=new type(line); \ if (annot->isValid()) \ { \ - if(annot->isFuncPrototypeAnnotation()) \ - { \ - MEDS_FuncPrototypeAnnotation* fpannot=dynamic_cast<MEDS_FuncPrototypeAnnotation*>(annot); \ - assert(fpannot); \ - m_func_prototype_annotations.insert(MEDS_Annotations_Pair_t(annot->getVirtualOffset(), annot)); \ - } \ - else if(annot->isFuncAnnotation()) \ + if(annot->isFuncAnnotation()) \ { \ MEDS_FuncAnnotation* fannot=dynamic_cast<MEDS_FuncAnnotation*>(annot); \ assert(fannot); \ diff --git a/libMEDSannotation/src/VirtualOffset.cpp b/libMEDSannotation/src/VirtualOffset.cpp index fe1b616af..1e4ca4f64 100644 --- a/libMEDSannotation/src/VirtualOffset.cpp +++ b/libMEDSannotation/src/VirtualOffset.cpp @@ -24,6 +24,7 @@ #include "VirtualOffset.hpp" using namespace std; +using namespace MEDS_Annotation; VirtualOffset::VirtualOffset() { diff --git a/tools/meds2pdb/meds2pdb.cpp b/tools/meds2pdb/meds2pdb.cpp index 201f3b655..bed63cfbd 100644 --- a/tools/meds2pdb/meds2pdb.cpp +++ b/tools/meds2pdb/meds2pdb.cpp @@ -339,7 +339,7 @@ void update_function_prototype(vector<wahoo::Function*> functions, char* annotFi if (annotationif.is_open()) { MEDS_AnnotationParser annotationParser(annotationif); - annotations = annotationParser.getFuncPrototypeAnnotations(); + annotations = annotationParser.getAnnotations(); } else { @@ -360,7 +360,7 @@ void update_function_prototype(vector<wahoo::Function*> functions, char* annotFi { if (j >= functions.size()) break; wahoo::Function *f = functions[j]; - int function_id = f->getFunctionID(); + int function_id = f->getFunctionID(); app_iaddr_t functionAddress = f->getAddress(); VirtualOffset vo(functionAddress); -- GitLab