--- /dev/null
+Index: oprofile/pp/oparchive.cpp
+===================================================================
+--- oprofile.orig/pp/oparchive.cpp     2007-01-22 12:23:51.000000000 +0000
++++ oprofile/pp/oparchive.cpp  2007-01-22 12:23:56.000000000 +0000
+@@ -35,6 +35,11 @@
+ 
+ void copy_one_file(image_error err, string const & source, string const & dest)
+ {
++      if (options::list_files) {
++              cout << source << endl;
++              return;
++      }
++
+       if (!copy_file(source, dest) && err == image_ok) {
+               cerr << "can't copy from " << source << " to " << dest
+                    << " cause: " << strerror(errno) << endl;
+Index: oprofile/pp/oparchive_options.cpp
+===================================================================
+--- oprofile.orig/pp/oparchive_options.cpp     2007-01-22 12:22:44.000000000 +0000
++++ oprofile/pp/oparchive_options.cpp  2007-01-22 12:23:03.000000000 +0000
+@@ -36,6 +36,7 @@
+       bool exclude_dependent;
+       merge_option merge_by;
+       string outdirectory;
++      bool list_files;
+ }
+ 
+ 
+@@ -47,7 +48,9 @@
+       popt::option(options::outdirectory, "output-directory", 'o',
+                    "output to the given directory", "directory"),
+       popt::option(options::exclude_dependent, "exclude-dependent", 'x',
+-                   "exclude libs, kernel, and module samples for applications")
++                   "exclude libs, kernel, and module samples for applications"),
++      popt::option(options::list_files, "list-files", 'l',
++                   "just list the files necessary, don't produce the archive")
+ };
+ 
+ 
+@@ -60,7 +63,7 @@
+       using namespace options;
+ 
+       /* output directory is required */
+-      if (outdirectory.size() == 0) {
++      if (outdirectory.size() == 0 && !list_files) {
+               cerr << "Requires --output-directory option." << endl;
+               exit(EXIT_FAILURE);
+       }
+Index: oprofile/pp/oparchive_options.h
+===================================================================
+--- oprofile.orig/pp/oparchive_options.h       2007-01-22 12:23:14.000000000 +0000
++++ oprofile/pp/oparchive_options.h    2007-01-22 12:23:30.000000000 +0000
+@@ -22,6 +22,7 @@
+       extern bool exclude_dependent;
+       extern merge_option merge_by;
+       extern std::string outdirectory;
++      extern bool list_files;
+ }
+ 
+ /// All the chosen sample files.