--- /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.