nokia800: Add cx3110x to image
authorRichard Purdie <richard@openedhand.com>
Fri, 25 May 2007 23:01:54 +0000 (23:01 +0000)
committerRichard Purdie <richard@openedhand.com>
Fri, 25 May 2007 23:01:54 +0000 (23:01 +0000)
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@1779 311d38ba-8fff-0310-9ca6-ca027cbcb966

meta/conf/machine/nokia800.conf
meta/packages/oprofile/oprofile/xml_callgraph_details.patch [new file with mode: 0644]
meta/packages/tasks/task-base.bb

index 6ad1a14..247e761 100644 (file)
@@ -25,6 +25,7 @@ PREFERRED_PROVIDER_virtual/kernel = "linux-nokia800"
 ROOTFS_POSTPROCESS_COMMAND += " remove_init_link; "
 
 MACHINE_FEATURES = "kernel26 apm alsa bluetooth usbgadget usbhost"
+MACHINE_EXTRA_RDEPENDS = "cx3110x"
 MACHINE_ESSENTIAL_EXTRA_RDEPENDS = "nokia770-init"
 
 MACHINE_TASK_PROVIDER = "task-base"
diff --git a/meta/packages/oprofile/oprofile/xml_callgraph_details.patch b/meta/packages/oprofile/oprofile/xml_callgraph_details.patch
new file mode 100644 (file)
index 0000000..e5ab3d9
--- /dev/null
@@ -0,0 +1,232 @@
+Work in Progress- This patch breaks output_symbol_bytes
+---
+ ChangeLog                     |    9 +++++++++
+ libpp/callgraph_container.cpp |   10 ++++++++--
+ libpp/callgraph_container.h   |   14 ++++++++++----
+ libpp/format_output.cpp       |   30 +++++++++++++++++++++++++-----
+ libpp/format_output.h         |    6 +++---
+ pp/opreport.cpp               |    5 +++--
+ pp/opreport_options.cpp       |    4 ++--
+ 7 files changed, 60 insertions(+), 18 deletions(-)
+
+Index: oprofile1/pp/opreport.cpp
+===================================================================
+--- oprofile1.orig/pp/opreport.cpp     2007-05-24 15:32:20.000000000 +0100
++++ oprofile1/pp/opreport.cpp  2007-05-24 20:07:14.000000000 +0100
+@@ -555,10 +555,11 @@ int opreport(options::spec const & spec)
+               output_diff_symbols(pc1, pc2, multiple_apps);
+       } else if (options::callgraph) {
+-              callgraph_container cg_container;
++              callgraph_container cg_container(options::debug_info,
++                                               options::details);
+               cg_container.populate(options::archive_path, iprofiles,
+                       options::extra_found_images,
+-                      options::debug_info, options::threshold,
++                      options::threshold,
+                       options::merge_by.lib, options::symbol_filter);
+               output_cg_symbols(cg_container, multiple_apps);
+Index: oprofile1/ChangeLog
+===================================================================
+--- oprofile1.orig/ChangeLog   2007-05-24 18:30:47.000000000 +0100
++++ oprofile1/ChangeLog        2007-05-24 20:07:14.000000000 +0100
+@@ -1,5 +1,14 @@
+ 2007-05-24  Richard Purdie  <rpurdie@openedhand.com>
++      * libpp/callgraph_container.cpp:
++      * libpp/callgraph_container.h:
++      * libpp/format_output.cpp:
++      * libpp/format_output.h:
++      * pp/opreport.cpp:
++      * pp/opreport_options.cpp: Add callgraph XML detail support
++
++2007-05-24  Richard Purdie  <rpurdie@openedhand.com>
++
+       * events/arm/xscale1/events:
+       * events/arm/xscale2/events: Add extra Xscale PMU event definitions
+Index: oprofile1/libpp/callgraph_container.cpp
+===================================================================
+--- oprofile1.orig/libpp/callgraph_container.cpp       2007-05-24 15:32:20.000000000 +0100
++++ oprofile1/libpp/callgraph_container.cpp    2007-05-24 20:07:14.000000000 +0100
+@@ -391,15 +391,21 @@ const symbol_collection & arc_recorder::
+       return cg_syms;
+ }
++callgraph_container::callgraph_container(bool debug_info, bool need_details)
++      :
++      pc(debug_info, need_details),
++      debug_info(debug_info)
++{
++}
++
+ void callgraph_container::populate(string const & archive_path, 
+    list<inverted_profile> const & iprofiles,
+-   extra_images const & extra, bool debug_info, double threshold,
++   extra_images const & extra, double threshold,
+    bool merge_lib, string_filter const & sym_filter)
+ {
+       // non callgraph samples container, we record sample at symbol level
+       // not at vma level.
+-      profile_container pc(debug_info, false);
+       list<inverted_profile>::const_iterator it;
+       list<inverted_profile>::const_iterator const end = iprofiles.end();
+Index: oprofile1/libpp/callgraph_container.h
+===================================================================
+--- oprofile1.orig/libpp/callgraph_container.h 2007-05-24 15:32:20.000000000 +0100
++++ oprofile1/libpp/callgraph_container.h      2007-05-24 20:07:14.000000000 +0100
+@@ -19,8 +19,8 @@
+ #include "symbol.h"
+ #include "symbol_functors.h"
+ #include "string_filter.h"
++#include "profile_container.h"
+-class profile_container;
+ class inverted_profile;
+ class profile_t;
+ class extra_images;
+@@ -103,6 +103,8 @@ private:
+  */
+ class callgraph_container {
+ public:
++      callgraph_container(bool debug_info, bool need_details);
++
+       /**
+        * Populate the container, must be called once only.
+        * @param archive_path  oparchive prefix path
+@@ -118,9 +120,8 @@ public:
+        */
+       void populate(std::string const & archive_path,
+                     std::list<inverted_profile> const & iprofiles,
+-                    extra_images const & extra, bool debug_info,
+-                    double threshold, bool merge_lib,
+-                    string_filter const & sym_filter);
++                    extra_images const & extra, double threshold,
++                    bool merge_lib, string_filter const & sym_filter);
+       /// return hint on how data must be displayed.
+       column_flags output_hint() const;
+@@ -131,6 +132,9 @@ public:
+       // return all the cg symbols
+       const symbol_collection & get_symbols() const;
++      // profile container callgraph is based on
++      profile_container pc;
++
+ private:
+       /**
+        * Record caller/callee for one cg file
+@@ -162,6 +166,8 @@ private:
+                     profile_container const & pc, bool debug_info,
+                     bool merge_lib);
++      bool debug_info;
++
+       /// record all main symbols
+       void add_symbols(profile_container const & pc);
+Index: oprofile1/pp/opreport_options.cpp
+===================================================================
+--- oprofile1.orig/pp/opreport_options.cpp     2007-05-24 15:32:20.000000000 +0100
++++ oprofile1/pp/opreport_options.cpp  2007-05-24 20:07:14.000000000 +0100
+@@ -165,8 +165,8 @@ void check_options(bool diff)
+       if (callgraph) {
+               symbols = true;
+-              if (details) {
+-                      cerr << "--callgraph is incompatible with --details" << endl;
++              if (details && !xml) {
++                      cerr << "--callgraph is incompatible with --details without --xml" << endl;
+                       do_exit = true;
+               }
+Index: oprofile1/libpp/format_output.cpp
+===================================================================
+--- oprofile1.orig/libpp/format_output.cpp     2007-05-24 15:32:20.000000000 +0100
++++ oprofile1/libpp/format_output.cpp  2007-05-24 20:07:14.000000000 +0100
+@@ -594,9 +594,9 @@ xml_formatter::
+ xml_formatter(profile_container const * p,
+               symbol_collection & s)
+       :
++      need_details(false),
+       profile(p),
+-      symbols(s),
+-      need_details(false)
++      symbols(s)
+ {
+       if (profile)
+               counts.total = profile->samples_count();
+@@ -673,8 +673,8 @@ void xml_formatter::output_symbol_data(o
+                       if (name.size() > 0 && name[0] != '?') {
+                               output_attribute(out, datum, ff_vma, STARTING_ADDR);
+-                              if (need_details)
+-                                      xml_support->output_symbol_bytes(bytes_out, symb, sd_it->second);
++                              //if (need_details)
++                              //      xml_support->output_symbol_bytes(bytes_out, symb, sd_it->second);
+                       }
+                       out << close_element();
+@@ -843,7 +843,7 @@ output_attribute(ostream & out, field_da
+ xml_cg_formatter::
+ xml_cg_formatter(callgraph_container const * cg, symbol_collection & s)
+       :
+-      xml_formatter(0, s),
++      xml_formatter(&cg->pc, s),
+       callgraph(cg)
+ {
+       counts.total = callgraph->samples_count();
+@@ -946,6 +946,26 @@ output_symbol(ostream & out,
+       out << init_attr(ID_REF, indx);
++      if (need_details) {
++              ostringstream details;
++              symbol_details_t & sd = symbol_details[indx];
++              size_t const detail_lo = sd.index;
++
++              string detail_str = output_symbol_details(symb, sd.index, lo, hi);
++
++              if (detail_str.size() > 0) {
++                      if (sd.id < 0)
++                              sd.id = indx;
++                      details << detail_str;
++              }
++
++              if (sd.index > detail_lo) {
++                      sd.details = sd.details + details.str();
++                      out << init_attr(DETAIL_LO, detail_lo);
++                      out << init_attr(DETAIL_HI, sd.index-1);
++              }
++      }
++
+       out << close_element(NONE, true);
+       out << open_element(CALLERS);
+Index: oprofile1/libpp/format_output.h
+===================================================================
+--- oprofile1.orig/libpp/format_output.h       2007-05-24 15:32:20.000000000 +0100
++++ oprofile1/libpp/format_output.h    2007-05-24 20:07:14.000000000 +0100
+@@ -249,6 +249,9 @@ public:
+       // output SymbolData XML elements
+       void output_symbol_data(std::ostream & out);
++      /// true if we need to show details for each symbols
++      bool need_details;
++
+ private:
+       /// container we work from
+       profile_container const * profile;
+@@ -256,9 +259,6 @@ private:
+       // ordered collection of symbols associated with this profile
+       symbol_collection & symbols;
+-      /// true if we need to show details for each symbols
+-      bool need_details;
+-
+       // count of DetailData items output so far
+       size_t detail_count;
index 8d8e884..49aaa59 100644 (file)
@@ -3,7 +3,7 @@
 #
 
 DESCRIPTION = "Merge machine and distro options to create a basic machine task/package"
-PR = "r4"
+PR = "r5"
 
 PACKAGES = "task-base \
             task-base-oh-minimal"