1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
From 9657a0fc671dd0987b6954932a08b680c35f480f Mon Sep 17 00:00:00 2001
From: Justin Bronder <jsbronder@gmail.com>
Date: Wed, 3 Feb 2010 17:13:13 -0500
Subject: [PATCH] Backport r22513
Per #2201, move the user arguments up to be the first set of argv
after the compiler argv tokens.
Not closing #2201 yet; there's still discussion on that ticket about
whether we want to do more or not.
Refs #2201
cmr:v1.4.2
cmr:v1.5
Author: jsquyres
---
ompi/tools/wrappers/ompi_wrapper_script.in | 4 +++-
opal/tools/wrappers/opal_wrapper.c | 9 +++++----
2 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/ompi/tools/wrappers/ompi_wrapper_script.in b/ompi/tools/wrappers/ompi_wrapper_script.in
index 24726ad..87fd8a5 100644
--- a/ompi/tools/wrappers/ompi_wrapper_script.in
+++ b/ompi/tools/wrappers/ompi_wrapper_script.in
@@ -140,13 +140,15 @@ my @exec_argv = ();
# assemble command
push(@exec_argv, split(' ', $comp));
+# Per https://svn.open-mpi.org/trac/ompi/ticket/2201, add all the user
+# arguments before anything else.
+push(@exec_argv, @appargs);
if ($want_preproc == 1) {
push(@exec_argv, split(' ', $preproc_flags));
}
if ($want_compile == 1) {
push(@exec_argv, split(' ', $comp_flags));
}
-push(@exec_argv, @appargs);
if ($want_link == 1) {
push(@exec_argv, split(' ', $linker_flags));
push(@exec_argv, split(' ', $libs));
diff --git a/opal/tools/wrappers/opal_wrapper.c b/opal/tools/wrappers/opal_wrapper.c
index 86ece5b..1b80f53 100644
--- a/opal/tools/wrappers/opal_wrapper.c
+++ b/opal/tools/wrappers/opal_wrapper.c
@@ -712,6 +712,11 @@ main(int argc, char *argv[])
exec_argc = 0;
}
+ /* Per https://svn.open-mpi.org/trac/ompi/ticket/2201, add all the
+ user arguments before anything else. */
+ opal_argv_insert(&exec_argv, exec_argc, user_argv);
+ exec_argc = opal_argv_count(exec_argv);
+
/* preproc flags */
if (flags & COMP_WANT_PREPROC) {
opal_argv_insert(&exec_argv, exec_argc, options_data[user_data_idx].preproc_flags);
@@ -732,10 +737,6 @@ main(int argc, char *argv[])
exec_argc = opal_argv_count(exec_argv);
}
- /* add all the user arguments */
- opal_argv_insert(&exec_argv, exec_argc, user_argv);
- exec_argc = opal_argv_count(exec_argv);
-
/* link flags and libs */
if (flags & COMP_WANT_LINK) {
opal_argv_insert(&exec_argv, exec_argc, options_data[user_data_idx].link_flags);
--
1.6.4.4
|