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