From 70307493a6cd84a42bafbe8534e1280f282a4d01 Mon Sep 17 00:00:00 2001 From: Jason Hiser <jdhiser@gmail.com> Date: Mon, 3 Feb 2025 15:17:48 -0500 Subject: [PATCH] Updates for ubuntu24 --- SMPStaticAnalyzer | 2 +- builtin_xforms/move_globals/mg.cpp | 22 ++++++++++++++----- irdb-libs/dump_insns/SConscript | 2 +- irdb-libs/dump_map/SConscript | 2 +- irdb-libs/ir_builders/SConscript | 2 +- irdb-libs/ir_builders/fix_calls.cpp | 2 +- irdb-libs/ir_builders/split_eh_frame.cpp | 2 +- irdb-libs/libEXEIO/src/SConscript | 2 +- irdb-libs/libEXEIO/test/SConscript | 2 +- irdb-libs/libIRDB-cfg/src/SConscript | 2 +- irdb-libs/libIRDB-core/src/SConscript | 2 +- irdb-libs/libIRDB-deep/src/SConscript | 2 +- irdb-libs/libIRDB-elfdep/src/SConscript | 2 +- irdb-libs/libIRDB-elfdep/src/elfdep.cpp | 3 ++- irdb-libs/libIRDB-elfdep/test/SConscript | 2 +- irdb-libs/libIRDB-syscall/include/syscall.hpp | 2 +- irdb-libs/libIRDB-syscall/src/SConscript | 2 +- irdb-libs/libIRDB-transform/src/SConscript | 2 +- irdb-libs/libIRDB-util/src/SConscript | 2 +- irdb-libs/libMEDSannotation/SConscript | 2 +- .../include/VirtualOffset.hpp | 1 + irdb-libs/libehp | 2 +- irdb-libs/meds2pdb/SConscript | 2 +- irdb-libs/thanos/SConscript | 2 +- irdb-sdk | 2 +- zipr-sdk | 2 +- zipr/include/zipr_dollop.h | 4 ++-- zipr/include/zipr_impl.h | 4 ++-- zipr/src/dollop.cpp | 14 +++++++----- zipr/src/plugin_man.cpp | 6 ++--- zipr_push64_reloc_plugin/SConscript | 2 +- zipr_unpin_plugin/SConscript | 2 +- 32 files changed, 60 insertions(+), 44 deletions(-) diff --git a/SMPStaticAnalyzer b/SMPStaticAnalyzer index 152274cfb..cd5de1160 160000 --- a/SMPStaticAnalyzer +++ b/SMPStaticAnalyzer @@ -1 +1 @@ -Subproject commit 152274cfbdc3fc428ea3583fa6311507e3aa7c9f +Subproject commit cd5de11609d4cb125396f7345365886fbdc0ced9 diff --git a/builtin_xforms/move_globals/mg.cpp b/builtin_xforms/move_globals/mg.cpp index 9d2c2c784..85d467698 100644 --- a/builtin_xforms/move_globals/mg.cpp +++ b/builtin_xforms/move_globals/mg.cpp @@ -21,10 +21,20 @@ using namespace EXEIO; #define ALLOF(s) begin(s), end(s) +template <typename Fn, typename FirstArg> +auto myBind1st(Fn fn, const FirstArg& first) { + return std::bind(fn, first, std::placeholders::_1); +} + +template <typename Func, typename T> +auto myBind2nd(Func func, const T& value) { + return std::bind(func, std::placeholders::_1, value); +} + // use this to determine whether a scoop has a given name. -static struct ScoopFinder : binary_function<DataScoop_t*,string,bool> +static struct ScoopFinder // : binary_function<DataScoop_t*,string,bool> { // declare a simple scoop finder function that finds scoops by name bool operator()(const DataScoop_t* scoop, const string word) const @@ -401,7 +411,7 @@ void MoveGlobals_t<T_Sym,T_Rela,T_Rel,T_Dyn,T_Extractor>::FilterScoops() istream_iterator<string>(), [&](const string & word) { // find the scoop - auto it=find_if(ALLOF(moveable_scoops), bind2nd(finder, word)); + auto it=find_if(ALLOF(moveable_scoops), myBind2nd(finder, word)); // if found, insert into the move_only set. if(it!=moveable_scoops.end()) { @@ -441,7 +451,7 @@ void MoveGlobals_t<T_Sym,T_Rela,T_Rel,T_Dyn,T_Extractor>::FilterScoops() istream_iterator<string>(), [&](const string & word) { // find scoop by that name. - auto it=find_if(ALLOF(moveable_scoops), bind2nd(finder,word)); + auto it=find_if(ALLOF(moveable_scoops), myBind2nd(finder,word)); if(it!=moveable_scoops.end()) { moveable_scoops.erase(*it); @@ -496,8 +506,8 @@ void MoveGlobals_t<T_Sym,T_Rela,T_Rel,T_Dyn,T_Extractor>::TieScoops() for_each(ALLOF(scoop_pairs), [this](const scoop_pairs_t pair) { - auto it1=find_if(ALLOF(moveable_scoops), bind2nd(finder,pair.first)); - auto it2=find_if(ALLOF(moveable_scoops), bind2nd(finder,pair.second)); + auto it1=find_if(ALLOF(moveable_scoops), myBind2nd(finder,pair.first)); + auto it2=find_if(ALLOF(moveable_scoops), myBind2nd(finder,pair.second)); // both exist, tie together. if(it1!=moveable_scoops.end() && it2!=moveable_scoops.end()) @@ -1809,7 +1819,7 @@ void MoveGlobals_t<T_Sym,T_Rela,T_Rel,T_Dyn,T_Extractor>::FilterAndCoalesceTiedS ".dynamic", ".jcr" }; - const auto a_binder = bind1st(finder, to_find); + const auto a_binder = myBind1st(finder, to_find); const auto it=find_if(ALLOF(dont_coalesce_scoops), a_binder); return (it!=end(dont_coalesce_scoops)); diff --git a/irdb-libs/dump_insns/SConscript b/irdb-libs/dump_insns/SConscript index bdd98d4d4..08948a1cc 100644 --- a/irdb-libs/dump_insns/SConscript +++ b/irdb-libs/dump_insns/SConscript @@ -13,7 +13,7 @@ cpppath=''' files=Glob( Dir('.').srcnode().abspath+"/*.cpp") -myenv.Append(CPPFLAGS="-std=c++14") +myenv.Append(CPPFLAGS="-std=c++17") pgm="dump_insns.exe" diff --git a/irdb-libs/dump_map/SConscript b/irdb-libs/dump_map/SConscript index 31f7ac41b..9515e0384 100644 --- a/irdb-libs/dump_map/SConscript +++ b/irdb-libs/dump_map/SConscript @@ -11,7 +11,7 @@ cpppath=''' $IRDB_SDK/include ''' -myenv.Append(CPPFLAGS="-std=c++14") +myenv.Append(CPPFLAGS="-std=c++17") LIBPATH="$SECURITY_TRANSFORMS_HOME/lib" LIBS=Split( " irdb-core irdb-cfg irdb-util irdb-transform ") diff --git a/irdb-libs/ir_builders/SConscript b/irdb-libs/ir_builders/SConscript index 158efa768..42780e7cf 100644 --- a/irdb-libs/ir_builders/SConscript +++ b/irdb-libs/ir_builders/SConscript @@ -24,7 +24,7 @@ if 'build_tools' not in myenv or myenv['build_tools'] is None or int(myenv['buil myenv=myenv.Clone(CPPPATH=Split(cpppath)) - myenv.Append(CCFLAGS=" -std=c++14 -Wall") + myenv.Append(CCFLAGS=" -std=c++17 -Wall") ehframe=myenv.SharedObject("read_ehframe.cpp"); split_eh_frame=myenv.SharedObject("split_eh_frame.cpp"); diff --git a/irdb-libs/ir_builders/fix_calls.cpp b/irdb-libs/ir_builders/fix_calls.cpp index 22f253045..2f117bec4 100644 --- a/irdb-libs/ir_builders/fix_calls.cpp +++ b/irdb-libs/ir_builders/fix_calls.cpp @@ -698,7 +698,7 @@ class FixCalls_t : public TransformStep_t } - template <class T> struct insn_less : binary_function <T,T,bool> + template <class T> struct insn_less // : binary_function <T,T,bool> { bool operator() (const T& x, const T& y) const { diff --git a/irdb-libs/ir_builders/split_eh_frame.cpp b/irdb-libs/ir_builders/split_eh_frame.cpp index 10a43cb49..3416ba96a 100644 --- a/irdb-libs/ir_builders/split_eh_frame.cpp +++ b/irdb-libs/ir_builders/split_eh_frame.cpp @@ -263,7 +263,7 @@ void split_eh_frame_impl_t<ptrsize>::build_ir() const auto reusedpgms=size_t(0); struct EhProgramComparator_t { - bool operator() (const whole_pgm_t& lhs, const whole_pgm_t& rhs) + bool operator() (const whole_pgm_t& lhs, const whole_pgm_t& rhs) const { const auto &a=(lhs.pgm); const auto &b=(rhs.pgm); diff --git a/irdb-libs/libEXEIO/src/SConscript b/irdb-libs/libEXEIO/src/SConscript index 8655f2860..2ae3a0b0a 100644 --- a/irdb-libs/libEXEIO/src/SConscript +++ b/irdb-libs/libEXEIO/src/SConscript @@ -20,7 +20,7 @@ cpppath=''' myenv=myenv.Clone(CPPPATH=Split(cpppath)) -myenv.Append(CXXFLAGS=" -std=c++14 -Wall -Werror ") +myenv.Append(CXXFLAGS=" -std=c++17 -Wall -Werror ") lib=myenv.SharedLibrary(libname, Split(files), LIBS=Split("irdb-core pebliss"), LIBPATH="$SECURITY_TRANSFORMS_HOME/lib" ) install=myenv.Install("$SECURITY_TRANSFORMS_HOME/lib/", lib) diff --git a/irdb-libs/libEXEIO/test/SConscript b/irdb-libs/libEXEIO/test/SConscript index e2df64a61..3df481f7b 100644 --- a/irdb-libs/libEXEIO/test/SConscript +++ b/irdb-libs/libEXEIO/test/SConscript @@ -30,7 +30,7 @@ if "CYGWIN" in sysname: libs = libs + " iconv" myenv=myenv.Clone(CPPPATH=Split(cpppath), LIBS=Split(libs), LIBPATH=Split(libpath)) -myenv.Append(CXXFLAGS=" -Wall -Werror -std=c++14 ") +myenv.Append(CXXFLAGS=" -Wall -Werror -std=c++17 ") pgm=myenv.Program(libname, Split(files)) install=myenv.Install("$SECURITY_TRANSFORMS_HOME/bin/", pgm) diff --git a/irdb-libs/libIRDB-cfg/src/SConscript b/irdb-libs/libIRDB-cfg/src/SConscript index 0192688f5..2ef427576 100644 --- a/irdb-libs/libIRDB-cfg/src/SConscript +++ b/irdb-libs/libIRDB-cfg/src/SConscript @@ -21,7 +21,7 @@ libpath=''' $SECURITY_TRANSFORMS_HOME/lib ''' -myenv.Append(CCFLAGS=" -Wall -std=c++14 -fmax-errors=2 ") +myenv.Append(CCFLAGS=" -Wall -std=c++17 -fmax-errors=2 ") myenv=myenv.Clone(CPPPATH=Split(cpppath)) lib=myenv.SharedLibrary(libname, Split(files), LIBS=Split("irdb-core"), LIBPATH=Split(libpath)) diff --git a/irdb-libs/libIRDB-core/src/SConscript b/irdb-libs/libIRDB-core/src/SConscript index de6379524..a62e70443 100644 --- a/irdb-libs/libIRDB-core/src/SConscript +++ b/irdb-libs/libIRDB-core/src/SConscript @@ -56,7 +56,7 @@ libpath=''' $SECURITY_TRANSFORMS_HOME/lib ''' -myenv.Append(CCFLAGS=" -Wall -std=c++14 -fmax-errors=2") +myenv.Append(CCFLAGS=" -Wall -std=c++17 -fmax-errors=2") myenv.Append(LIBPATH=libpath) myenv=myenv.Clone(CPPPATH=Split(cpppath)) diff --git a/irdb-libs/libIRDB-deep/src/SConscript b/irdb-libs/libIRDB-deep/src/SConscript index 86998c6ce..d980c8b97 100644 --- a/irdb-libs/libIRDB-deep/src/SConscript +++ b/irdb-libs/libIRDB-deep/src/SConscript @@ -20,7 +20,7 @@ cpppath=''' #myenv.Append(CCFLAGS=" -Wall -W -Wextra -Wconversion ") myenv=myenv.Clone(CPPPATH=Split(cpppath)) -myenv.Append(CXXFLAGS = " -std=c++14 ") +myenv.Append(CXXFLAGS = " -std=c++17 ") lib=myenv.SharedLibrary(libname, Split(files), LIBS=Split("irdb-core irdb-util irdb-transform stars MEDSannotation"), LIBPATH=Split("$SECURITY_TRANSFORMS_HOME/lib")) install=env.Install("$SECURITY_TRANSFORMS_HOME/lib/", lib) diff --git a/irdb-libs/libIRDB-elfdep/src/SConscript b/irdb-libs/libIRDB-elfdep/src/SConscript index 86fb9c1a4..635b6075a 100644 --- a/irdb-libs/libIRDB-elfdep/src/SConscript +++ b/irdb-libs/libIRDB-elfdep/src/SConscript @@ -20,7 +20,7 @@ LIBPATH="$SECURITY_TRANSFORMS_HOME/lib" LIBS=Split("irdb-core irdb-transform") myenv=myenv.Clone(CPPPATH=Split(cpppath)) -myenv.Append(CXXFLAGS = " -std=c++14 ") +myenv.Append(CXXFLAGS = " -std=c++17 ") lib=myenv.SharedLibrary("irdb-elfdep", Split(files), LIBPATH=LIBPATH, LIBS=LIBS) install=myenv.Install("$SECURITY_TRANSFORMS_HOME/lib/", lib) diff --git a/irdb-libs/libIRDB-elfdep/src/elfdep.cpp b/irdb-libs/libIRDB-elfdep/src/elfdep.cpp index f2546a430..2eeb92f14 100644 --- a/irdb-libs/libIRDB-elfdep/src/elfdep.cpp +++ b/irdb-libs/libIRDB-elfdep/src/elfdep.cpp @@ -29,6 +29,7 @@ #include <libElfDep.hpp> #include <iterator> #include <algorithm> +#include <functional> using namespace libIRDB; using namespace std; @@ -52,7 +53,7 @@ auto myBind2nd(Func func, const T& value) { // static helpers // use this to determine whether a scoop has a given name. -static struct ScoopFinder : binary_function<const IRDB_SDK::DataScoop_t*,const string,bool> +static struct ScoopFinder // : binary_function<const IRDB_SDK::DataScoop_t*,const string,bool> { // declare a simple scoop finder function that finds scoops by name bool operator()(const IRDB_SDK::DataScoop_t* scoop, const string& name) const diff --git a/irdb-libs/libIRDB-elfdep/test/SConscript b/irdb-libs/libIRDB-elfdep/test/SConscript index ebd9ea15e..38e873618 100644 --- a/irdb-libs/libIRDB-elfdep/test/SConscript +++ b/irdb-libs/libIRDB-elfdep/test/SConscript @@ -11,7 +11,7 @@ myenv.Replace(ZIPR_HOME=os.environ['ZIPR_HOME']) myenv.Replace(ZIPR_SDK=os.environ['ZIPR_SDK']) myenv.Replace(IRDB_SDK=os.environ['IRDB_SDK']) -myenv.Replace(CXXFLAGS = " -g -std=c++14 -Wall ") +myenv.Replace(CXXFLAGS = " -g -std=c++17 -Wall ") myenv.Append(LINKFLAGS = " -Wl,-unresolved-symbols=ignore-in-shared-libs ") cpppath=''' diff --git a/irdb-libs/libIRDB-syscall/include/syscall.hpp b/irdb-libs/libIRDB-syscall/include/syscall.hpp index 9f3308e70..91bec9117 100644 --- a/irdb-libs/libIRDB-syscall/include/syscall.hpp +++ b/irdb-libs/libIRDB-syscall/include/syscall.hpp @@ -47,7 +47,7 @@ namespace libIRDB const IRDB_SDK::SyscallSiteSet_t& getSyscalls() const {return syscalls;} - IRDB_SDK::SyscallSiteSet_t getSyscalls() {return syscalls;} + IRDB_SDK::SyscallSiteSet_t& getSyscalls() {return syscalls;} protected: IRDB_SDK::SyscallNumber_t FindSystemCallNumber(IRDB_SDK::Instruction_t* insn, diff --git a/irdb-libs/libIRDB-syscall/src/SConscript b/irdb-libs/libIRDB-syscall/src/SConscript index 477712163..f81c2c557 100644 --- a/irdb-libs/libIRDB-syscall/src/SConscript +++ b/irdb-libs/libIRDB-syscall/src/SConscript @@ -18,7 +18,7 @@ cpppath=''' #myenv.Append(CCFLAGS=" -Wall -W -Wextra -Wconversion ") -myenv.Append(CXXFLAGS = " -std=c++14 ") +myenv.Append(CXXFLAGS = " -std=c++17 ") myenv=myenv.Clone(CPPPATH=Split(cpppath)) diff --git a/irdb-libs/libIRDB-transform/src/SConscript b/irdb-libs/libIRDB-transform/src/SConscript index 0bc204784..49ae10447 100644 --- a/irdb-libs/libIRDB-transform/src/SConscript +++ b/irdb-libs/libIRDB-transform/src/SConscript @@ -24,7 +24,7 @@ LIBPATH="$SECURITY_TRANSFORMS_HOME/lib" LIBS=Split("irdb-core irdb-cfg irdb-util MEDSannotation capstone keystone") myenv=myenv.Clone(CPPPATH=Split(cpppath)) -myenv.Append(CXXFLAGS = " -std=c++14 ") +myenv.Append(CXXFLAGS = " -std=c++17 ") lib=myenv.SharedLibrary("irdb-transform", Split(files), LIBPATH=LIBPATH, LIBS=LIBS) install=myenv.Install("$SECURITY_TRANSFORMS_HOME/lib/", lib) diff --git a/irdb-libs/libIRDB-util/src/SConscript b/irdb-libs/libIRDB-util/src/SConscript index c0bfa55ec..1669589c1 100644 --- a/irdb-libs/libIRDB-util/src/SConscript +++ b/irdb-libs/libIRDB-util/src/SConscript @@ -22,7 +22,7 @@ cpppath=''' #myenv.Append(CCFLAGS=" -Wall -W -Wextra -Wconversion ") myenv=myenv.Clone(CPPPATH=Split(cpppath)) -myenv.Append(CXXFLAGS = " -std=c++14 ") +myenv.Append(CXXFLAGS = " -std=c++17 ") lib=myenv.SharedLibrary(libname, Split(files), LIBS=Split("irdb-core"), LIBPATH=Split("$SECURITY_TRANSFORMS_HOME/lib")) install=env.Install("$SECURITY_TRANSFORMS_HOME/lib/", lib) diff --git a/irdb-libs/libMEDSannotation/SConscript b/irdb-libs/libMEDSannotation/SConscript index f250ef67d..c93d70e1d 100644 --- a/irdb-libs/libMEDSannotation/SConscript +++ b/irdb-libs/libMEDSannotation/SConscript @@ -29,7 +29,7 @@ cpppath=''' #CFLAGS="-fPIC " myenv=myenv.Clone(CPPPATH=Split(cpppath)) -myenv.Append(CXXFLAGS=" -std=c++14 -Wall -Werror ") +myenv.Append(CXXFLAGS=" -std=c++17 -Wall -Werror ") lib=myenv.SharedLibrary(lib, Split(files)) install=myenv.Install("$SECURITY_TRANSFORMS_HOME/lib/", lib) diff --git a/irdb-libs/libMEDSannotation/include/VirtualOffset.hpp b/irdb-libs/libMEDSannotation/include/VirtualOffset.hpp index 216827253..3f6bc5478 100644 --- a/irdb-libs/libMEDSannotation/include/VirtualOffset.hpp +++ b/irdb-libs/libMEDSannotation/include/VirtualOffset.hpp @@ -23,6 +23,7 @@ #include <string> #include <sstream> +#include <cstdint> namespace MEDS_Annotation { diff --git a/irdb-libs/libehp b/irdb-libs/libehp index 8dc3b9ad6..559c0d71c 160000 --- a/irdb-libs/libehp +++ b/irdb-libs/libehp @@ -1 +1 @@ -Subproject commit 8dc3b9ad64d39d25ef7f3fb0dbd4a2a48356f2bd +Subproject commit 559c0d71c3dda2067bfe757307655fad0f1c7d9f diff --git a/irdb-libs/meds2pdb/SConscript b/irdb-libs/meds2pdb/SConscript index d830c12a0..d3885fd3b 100644 --- a/irdb-libs/meds2pdb/SConscript +++ b/irdb-libs/meds2pdb/SConscript @@ -19,7 +19,7 @@ files=Glob( Dir('.').srcnode().abspath+"/*.cpp") + Glob(Dir('.').srcnode().abspa pgm="meds2pdb" -myenv.Append(CXXFLAGS = " -std=c++14 ") +myenv.Append(CXXFLAGS = " -std=c++17 ") LIBPATH="$SECURITY_TRANSFORMS_HOME/lib" LIBS=Split(" irdb-cfg irdb-util irdb-transform EXEIO MEDSannotation pqxx "+env.subst('$BASE_IRDB_LIBS')) myenv=myenv.Clone(CPPPATH=Split(cpppath)) diff --git a/irdb-libs/thanos/SConscript b/irdb-libs/thanos/SConscript index 99bf343a6..5e9935985 100644 --- a/irdb-libs/thanos/SConscript +++ b/irdb-libs/thanos/SConscript @@ -14,7 +14,7 @@ cpppath=''' files=Glob( Dir('.').srcnode().abspath+"/*.cpp") -myenv.Append(CXXFLAGS = " -std=c++14 -Wall ") +myenv.Append(CXXFLAGS = " -std=c++17 -Wall ") pgm="thanos.exe" diff --git a/irdb-sdk b/irdb-sdk index ceb1a1646..5548b306e 160000 --- a/irdb-sdk +++ b/irdb-sdk @@ -1 +1 @@ -Subproject commit ceb1a16469ce55d6cacb6de9129dfc45c21419f4 +Subproject commit 5548b306e7440df78974e581c9cf20155f55e0a4 diff --git a/zipr-sdk b/zipr-sdk index 7104c04d3..93ceb364a 160000 --- a/zipr-sdk +++ b/zipr-sdk @@ -1 +1 @@ -Subproject commit 7104c04d3d156a1010ef2ce83cc22c5e17d4d5f5 +Subproject commit 93ceb364adfe484c6c34a3582f6e3cce036bf805 diff --git a/zipr/include/zipr_dollop.h b/zipr/include/zipr_dollop.h index ccdd88084..528c4e07a 100644 --- a/zipr/include/zipr_dollop.h +++ b/zipr/include/zipr_dollop.h @@ -52,8 +52,8 @@ namespace zipr Zipr_SDK::Dollop_t *getMemberOfDollop() const { return m_member_of_dollop; } void MemberOfDollop(Zipr_SDK::Dollop_t *member_of) { m_member_of_dollop = member_of; } - bool operator==(const DollopEntry_t &); - bool operator!=(const DollopEntry_t &); + virtual bool operator==(const Zipr_SDK::DollopEntry_t &) const; + virtual bool operator!=(const Zipr_SDK::DollopEntry_t &) const; private: Instruction_t *m_instruction; Zipr_SDK::Dollop_t *m_target_dollop, *m_member_of_dollop; diff --git a/zipr/include/zipr_impl.h b/zipr/include/zipr_impl.h index e53f9d74e..c7316e8a1 100644 --- a/zipr/include/zipr_impl.h +++ b/zipr/include/zipr_impl.h @@ -36,7 +36,7 @@ class Stats_t; class DataScoopByAddressComp_t { public: - bool operator()(const IRDB_SDK::DataScoop_t *lhs, const IRDB_SDK::DataScoop_t *rhs) { + bool operator()(const IRDB_SDK::DataScoop_t *lhs, const IRDB_SDK::DataScoop_t *rhs) const { if (!lhs || !rhs || @@ -57,7 +57,7 @@ using DataScoopByAddressSet_t = std::set<IRDB_SDK::DataScoop_t*, DataScoopByAddr class pin_sorter_t { public: - bool operator() (const UnresolvedPinned_t& p1, const UnresolvedPinned_t& p2) + bool operator() (const UnresolvedPinned_t& p1, const UnresolvedPinned_t& p2) const { assert(p1.getInstruction()); assert(p2.getInstruction()); diff --git a/zipr/src/dollop.cpp b/zipr/src/dollop.cpp index b4157b45e..6dc78b4ac 100644 --- a/zipr/src/dollop.cpp +++ b/zipr/src/dollop.cpp @@ -5,14 +5,14 @@ namespace Zipr_SDK { - bool DollopEntry_t::operator==(const DollopEntry_t &comp) + bool Zipr_SDK::DollopEntry_t::operator==(const Zipr_SDK::DollopEntry_t &comp) const { return make_tuple( getInstruction(), getTargetDollop()) == make_tuple(comp.getInstruction(), comp.getTargetDollop()) ; } - bool DollopEntry_t::operator!=(const Zipr_SDK::DollopEntry_t &comp) + bool DollopEntry_t::operator!=(const DollopEntry_t &comp) const { return !operator==(comp); } @@ -216,8 +216,11 @@ namespace zipr m_member_of_dollop = member_of; } - bool DollopEntry_t::operator==(const DollopEntry_t &comp) { - cout << "operator==s being invoked " + bool DollopEntry_t::operator==(const Zipr_SDK::DollopEntry_t &sdk_comp) const { + const auto &comp = *dynamic_cast<const zipr::DollopEntry_t*>(&sdk_comp); + + /* + cout << "operator== being invoked " << "(" << hex << m_instruction << ", " << hex << comp.m_instruction << ") " @@ -225,11 +228,12 @@ namespace zipr << ", " << hex << comp.m_target_dollop << ") " << endl; + */ return comp.m_instruction == m_instruction && comp.m_target_dollop == m_target_dollop; } - bool DollopEntry_t::operator!=(const DollopEntry_t &comp) { + bool DollopEntry_t::operator!=(const Zipr_SDK::DollopEntry_t &comp) const { return !operator==(comp); } diff --git a/zipr/src/plugin_man.cpp b/zipr/src/plugin_man.cpp index bddd12489..a71ae193e 100644 --- a/zipr/src/plugin_man.cpp +++ b/zipr/src/plugin_man.cpp @@ -149,7 +149,7 @@ RangeAddress_t ZiprPluginManager_t::PlaceScoopsEnd(const RangeAddress_t max_addr bool ZiprPluginManager_t::DoesPluginAddress(const Zipr_SDK::Dollop_t *dollop, const RangeAddress_t &source, Range_t &place, bool &coalesce, bool &fallthrough_allowed, DLFunctionHandle_t &placer) { DLFunctionHandleSet_t::iterator it=m_handleList.begin(); - for(m_handleList.begin();it!=m_handleList.end();++it) + for(;it!=m_handleList.end();++it) { ZiprPluginInterface_t* zpi=(ZiprPluginInterface_t*)*it; if (Must == zpi->addressDollop(dollop, source, place, coalesce, fallthrough_allowed)) @@ -165,7 +165,7 @@ bool ZiprPluginManager_t::DoPluginsPlop(Instruction_t *insn, std::list<DLFunctio { bool a_plugin_does_plop = false; DLFunctionHandleSet_t::iterator it=m_handleList.begin(); - for(m_handleList.begin();it!=m_handleList.end();++it) + for(;it!=m_handleList.end();++it) { ZiprPluginInterface_t* zpi=(ZiprPluginInterface_t*)*it; if (zpi->willPluginPlop(insn)) @@ -180,7 +180,7 @@ bool ZiprPluginManager_t::DoPluginsPlop(Instruction_t *insn, std::list<DLFunctio bool ZiprPluginManager_t::DoesPluginRetargetCallback(const RangeAddress_t &callback_addr, const Zipr_SDK::DollopEntry_t *callback_entry, RangeAddress_t &target_address, DLFunctionHandle_t &patcher) { DLFunctionHandleSet_t::iterator it=m_handleList.begin(); - for(m_handleList.begin();it!=m_handleList.end();++it) + for(;it!=m_handleList.end();++it) { ZiprPluginInterface_t* zpi=(ZiprPluginInterface_t*)*it; if(Must==zpi->retargetCallback(callback_addr,callback_entry,target_address)) diff --git a/zipr_push64_reloc_plugin/SConscript b/zipr_push64_reloc_plugin/SConscript index 51ddc4029..3244ef07b 100644 --- a/zipr_push64_reloc_plugin/SConscript +++ b/zipr_push64_reloc_plugin/SConscript @@ -48,7 +48,7 @@ libpath=''' if sysname != "SunOS": myenv.Append(CCFLAGS=" -Wall -Werror -fmax-errors=2") -myenv.Append(CXXFLAGS=" -std=c++14 ") +myenv.Append(CXXFLAGS=" -std=c++17 ") myenv=myenv.Clone(CPPPATH=Split(cpppath), LIBS=Split(libs), LIBPATH=Split(libpath), SHLIBSUFFIX=".zpi", SHLIBPREFIX="") lib=myenv.SharedLibrary("push64_relocs", Split(files)) diff --git a/zipr_unpin_plugin/SConscript b/zipr_unpin_plugin/SConscript index ce5a25432..ca757d073 100644 --- a/zipr_unpin_plugin/SConscript +++ b/zipr_unpin_plugin/SConscript @@ -50,7 +50,7 @@ libpath=''' if sysname != "SunOS": myenv.Append(CCFLAGS=" -Wall -Werror -fmax-errors=2") -myenv.Append(CXXFLAGS=" -std=c++14 ") +myenv.Append(CXXFLAGS=" -std=c++17 ") myenv=myenv.Clone(CPPPATH=Split(cpppath), LIBS=Split(libs), LIBPATH=Split(libpath), SHLIBSUFFIX=".zpi", SHLIBPREFIX="") lib=myenv.SharedLibrary("unpin", Split(files)) -- GitLab