r18551 brakes ompi compilation on SLES10 gcc 4.1.0.

I got follow error on my systems (http://www.open-mpi.org/mtt/index.php?do_redir=672 ): make[2]: Entering directory `/.autodirect/hpc/work/pasha/tmp/mtt-8/installs/5VHm/src/openmpi-1.3a1r18553/ompi/mca/pml/ob1' /bin/sh ../../../../libtool --tag=CC --mode=link gcc -g -pipe -Wall -Wundef -Wno-long-long -Wsign-compare -Wmissing-prototypes -Wstrict-prototypes -Wcomment -pedantic -Werror-implicit-function-declaration -finline-functions -fno-strict-aliasing -pthread -fvisibility=hidden -module -avoid-version -export-dynamic -o mca_pml_ob1.la -rpath /.autodirect/hpc/work/pasha/tmp/mtt-8/installs/5VHm/install/lib/openmpi pml_ob1.lo pml_ob1_comm.lo pml_ob1_component.lo pml_ob1_iprobe.lo pml_ob1_irecv.lo pml_ob1_isend.lo pml_ob1_progress.lo pml_ob1_rdma.lo pml_ob1_rdmafrag.lo pml_ob1_recvfrag.lo pml_ob1_recvreq.lo pml_ob1_sendreq.lo pml_ob1_start.lo -lnsl -lutil -lm libtool: link: gcc -shared .libs/pml_ob1.o .libs/pml_ob1_comm.o .libs/pml_ob1_component.o .libs/pml_ob1_iprobe.o .libs/pml_ob1_irecv.o .libs/pml_ob1_isend.o .libs/pml_ob1_progress.o .libs/pml_ob1_rdma.o .libs/pml_ob1_rdmafrag.o .libs/pml_ob1_recvfrag.o .libs/pml_ob1_recvreq.o .libs/pml_ob1_sendreq.o .libs/pml_ob1_start.o -lnsl -lutil -lm -pthread -pthread -Wl,-soname -Wl,mca_pml_ob1.so -o .libs/mca_pml_ob1.so /usr/lib64/gcc/x86_64-suse-linux/4.1.0/../../../../x86_64-suse-linux/bin/ld: .libs/pml_ob1_sendreq.o: relocation R_X86_64_PC32 against `mca_pml_ob1_rndv_completion' can not be used when making a shared object; recompile with -fPIC /usr/lib64/gcc/x86_64-suse-linux/4.1.0/../../../../x86_64-suse-linux/bin/ld: final link failed: Bad value
collect2: ld returned 1 exit status

Removing inline from some of functions (see attached file), resolves the problem.

Thanks,
Pasha

--- pml_ob1_sendreq.c   2008-06-01 10:59:51.094063000 +0300
+++ pml_ob1_sendreq.c.new       2008-06-02 15:07:02.612983000 +0300
@@ -192,7 +192,7 @@
     MCA_PML_OB1_PROGRESS_PENDING(bml_btl);
 }

-static inline void
+static void
 mca_pml_ob1_match_completion_free( struct mca_btl_base_module_t* btl,  
                                    struct mca_btl_base_endpoint_t* ep,
                                    struct mca_btl_base_descriptor_t* des,
@@ -235,7 +235,7 @@
  *  Completion of the first fragment of a long message that 
  *  requires an acknowledgement
  */
-static inline void
+static void
 mca_pml_ob1_rndv_completion( mca_btl_base_module_t* btl,
                              struct mca_btl_base_endpoint_t* ep,
                              struct mca_btl_base_descriptor_t* des,
@@ -269,7 +269,7 @@
  * Completion of a get request.
  */

-static inline void
+static void
 mca_pml_ob1_rget_completion( mca_btl_base_module_t* btl,
                              struct mca_btl_base_endpoint_t* ep,
                              struct mca_btl_base_descriptor_t* des,
@@ -295,7 +295,7 @@
  * Completion of a control message - return resources.
  */

-static inline void
+static void
 mca_pml_ob1_send_ctl_completion( mca_btl_base_module_t* btl,
                                  struct mca_btl_base_endpoint_t* ep,
                                  struct mca_btl_base_descriptor_t* des,
@@ -312,7 +312,7 @@
  * to schedule additional fragments.
  */

-static inline void
+static void
 mca_pml_ob1_frag_completion( mca_btl_base_module_t* btl,
                              struct mca_btl_base_endpoint_t* ep,
                              struct mca_btl_base_descriptor_t* des,

Reply via email to