
additional functionality. Rationale (refs trac:3422): * Normal MPI applications only ever use the MPI API. Hence, -lmpi is sufficient (they'll never directly call ORTE or OPAL functions). This is arguably the most common case. * That being said, we do have some test programs (e.g., those in orte/test/mpi) that call MPI functions but also call ORTE/OPAL functions. I've also written the occasional MPI test program that calls opal_output, for example (there even might be a few tests in the IBM test suite that directly call ORTE/OPAL functions). * Even though this is not a common case, these applications should also compile/link with mpicc. * So we should add a --openmpi:linkall option that will also link in whatever is necessary to call ORTE/OPAL functions * Yes, we could hard-code "-lopen-rte -lopen-pal" in Makefiles, but we do reserve the right to change those library names and/or add others someday, so it's better to abstract out the names and let the wrapper supply whatever is necessary. * ORTE programs, however, are different. They almost always call OPAL functions (e.g., if they want to send a message, they must use the OPAL DSS). As such, it seems like the ORTE programs should always link in OPAL. Therefore: * Add undocumented --openmpi:linkall flag to the wrapper compilers. See the comment in opal_wrapper.c for an explanation of what it does. This flag is only intended for Open MPI developers -- not end users. That's why it's undocumented. * Update orte/test/mpi/Makefile.am to add --openmpi:linkall * Make ortecc/ortec++'s wrapper data text files always explicitly link in libopen-pal This commit was SVN r27670. The following SVN revision numbers were found above: r27668 --> open-mpi/ompi@cf845897aa The following Trac tickets were found above: Ticket 3422 --> https://svn.open-mpi.org/trac/ompi/ticket/3422
23 строки
923 B
Makefile
23 строки
923 B
Makefile
PROGS = mpi_no_op mpi_barrier hello hello_nodename abort multi_abort simple_spawn concurrent_spawn spawn_multiple mpi_spin delayed_abort loop_spawn loop_child bad_exit pubsub hello_barrier segv accept connect hello_output hello_show_help crisscross read_write ziatest slave reduce-hang ziaprobe ziatest bcast_loop parallel_w8 parallel_w64 parallel_r8 parallel_r64 sio sendrecv_blaster early_abort debugger singleton_client_server intercomm_create spawn_tree init-exit77 mpi_info
|
|
|
|
all: $(PROGS)
|
|
|
|
# These guys need additional -I flags
|
|
|
|
hello_output: hello_output.c
|
|
$(CC) $(CFLAGS) $(CFLAGS_INTERNAL) $^ -o $@
|
|
|
|
hello_show_help: hello_show_help.c
|
|
$(CC) $(CFLAGS) $(CFLAGS_INTERNAL) $^ -o $@
|
|
|
|
CC = mpicc
|
|
CFLAGS = -g --openmpi:linkall
|
|
CFLAGS_INTERNAL = -I../../.. -I../../../orte/include -I../../../opal/include
|
|
CXX = mpic++ --openmpi:linkall
|
|
CXXFLAGS = -g
|
|
FC = mpifort -openmpi:linkall
|
|
FCFLAGS = -g
|
|
|
|
clean:
|
|
rm -f $(PROGS) *~
|