[mvapich-discuss] fail to link with mvapich2-1.2p1/mvapich2-1.4rc2

Manhui Wang wangm9 at cardiff.ac.uk
Fri Oct 9 11:45:44 EDT 2009


Hi Jonathan,
     I forgot to update the files in the source tree with:
$ cd mvapich2
$ maint/updatefiles

Thus configure is produced. Now I have built the newest Mvapich2, and it
has resolved the previous linking problem I mentioned.

Thanks,
Manhui

Manhui Wang wrote:
> Hi Jonathan,
>     Thanks for telling me about this. I will try it. Just a quick
> questions, do the tar balls ( eg. mvapich2-trunk-2009-10-08.tar.gz) at
> http://mvapich.cse.ohio-state.edu/nightly/mvapich2/trunk/
> contain all the source code? Or do they just contain bugfixes?
> It seems no configure file exists after untarring the
> mvapich2-trunk-2009-10-08.tar.gz. Or am I missing something?
> 
> Thank you.
> Manhui
> 
> Jonathan Perkins wrote:
>> Hi Manhui.  I just wanted to let you know that we recently applied the
>> patch that you've sent.  Please let us know if the issue is resolved in
>> our trunk.
>>
>> On Tue, Sep 29, 2009 at 02:42:07PM +0100, Manhui Wang wrote:
>>> I made a mistake in producing the previous uploaded patches, here
>>> attached is the updated one, which seems to work fine with Molpro.
>>>
>>> Manhui Wang wrote:
>>>> Dear MVAPICH2 developers,
>>>>        Following last mail, I tried to see whether it is possible to
>>>> make some change in Molpro. But it seems to be impossible since Molpro
>>>> directly calls these functions, which are from yacc or bison libraries.
>>>> This means these name conflicts with those in yacc or bison libraries. I
>>>> have made two small patches(see files attached) for mvapich2, with these
>>>> patches Molpro works fine with Mvapich2. I would be very appreciated if
>>>> you can  include these changes (probably you will consider more changes
>>>> to avoid conflicting with other programs, but this works for molpro at
>>>> least) in the mvapich2 development version at your earliest convenience.
>>>> So I can test the updated mvapich2 before the final release.
>>>>
>>>> Thank you very much.
>>>> Manhui
>>>>
>>>> Jonathan Perkins wrote:
>>>>> On Thu, Sep 24, 2009 at 04:14:08PM +0100, Manhui Wang wrote:
>>>>>> Dear MVAPICH2 developers,
>>>>>>       I tried to build Molpro (see http://www.molpro.net/) with MVAPICH2
>>>>>> 1.2p1 (as well as mvapich2-1.4rc2) library, but failed. The reason is
>>>>>> that both Molpro and Mvapich use some general function names.  The
>>>>>> source code of mvapich library (tokens.c parser.c) contains
>>>>>> some yacc-like parsing code. These three
>>>>>> functions(yylex yyparse  yyerror) happen to have the same names as those
>>>>>> in parse files of Molpro. I renamed these three function to those with a
>>>>>> prefix mvapich_* in MVAPICH source code, and recompiled the mvapich2
>>>>>> library. Now it works fine.  Could you please slightly change these
>>>>>> names to avoid potential conflict with other application program in next
>>>>>> release version? Surely, Molpro could also choose other specific
>>>>>> function names to avoid such problems.
>>>>> Thank you for the suggestion.  We'll take a look at this and have it
>>>>> resolved before our final release.
>>>>>
>>>>>> The following is the error message:
>>>>>>
>>>>>> /home/sacmw4/soft/mvapich2-1.2p1-install/lib/libmpich.a(parser.o): In
>>>>>> function `yylex':
>>>>>> parser.c:(.text+0xbfc): multiple definition of `yylex'
>>>>>> ../lib/libmolpro.a(licence.o):parse.c:(.text+0x9ccf): first defined here
>>>>>> ld: Warning: size of symbol `yylex' changed from 3091 in
>>>>>> ../lib/libmolpro.a(licence.o) to 3336 in
>>>>>> /home/sacmw4/soft/mvapich2-1.2p1-install/lib/libmpich.a(parser.o)
>>>>>> /home/sacmw4/soft/mvapich2-1.2p1-install/lib/libmpich.a(tokens.o): In
>>>>>> function `yyparse':
>>>>>> tokens.c:(.text+0x0): multiple definition of `yyparse'
>>>>>> ../lib/libmolpro.a(licence.o):parse.c:(.text+0xdb): first defined here
>>>>>> ld: Warning: size of symbol `yyparse' changed from 22803 in
>>>>>> ../lib/libmolpro.a(licence.o) to 3110 in
>>>>>> /home/sacmw4/soft/mvapich2-1.2p1-install/lib/libmpich.a(tokens.o)
>>>>>> /home/sacmw4/soft/mvapich2-1.2p1-install/lib/libmpich.a(tokens.o): In
>>>>>> function `yyerror':
>>>>>> tokens.c:(.text+0x1e5c): multiple definition of `yyerror'
>>>>>> ../lib/libmolpro.a(licence.o):parse.c:(.text+0x5edd): first defined here
>>>>>> ld: Warning: size of symbol `yyerror' changed from 934 in
>>>>>> ../lib/libmolpro.a(licence.o) to 26 in
>>>>>> /home/sacmw4/soft/mvapich2-1.2p1-install/lib/libmpich.a(tokens.o)
>>>>>> failure
>>>>>> /home/sacmw4/soft/mvapich2-1.2p1-install/lib/libmpich.a(parser.o): In
>>>>>> function `yylex':
>>>>>> parser.c:(.text+0xbfc): multiple definition of `yylex'
>>>>>> ../lib/libmolpro.a(licence.o):parse.c:(.text+0x9ccf): first defined here
>>>>>> ld: Warning: size of symbol `yylex' changed from 3091 in
>>>>>> ../lib/libmolpro.a(licence.o) to 3336 in
>>>>>> /home/sacmw4/soft/mvapich2-1.2p1-install/lib/libmpich.a(parser.o)
>>>>>> /home/sacmw4/soft/mvapich2-1.2p1-install/lib/libmpich.a(tokens.o): In
>>>>>> function `yyparse':
>>>>>> tokens.c:(.text+0x0): multiple definition of `yyparse'
>>>>>> ../lib/libmolpro.a(licence.o):parse.c:(.text+0xdb): first defined here
>>>>>> ld: Warning: size of symbol `yyparse' changed from 22803 in
>>>>>> ../lib/libmolpro.a(licence.o) to 3110 in
>>>>>> /home/sacmw4/soft/mvapich2-1.2p1-install/lib/libmpich.a(tokens.o)
>>>>>> /home/sacmw4/soft/mvapich2-1.2p1-install/lib/libmpich.a(tokens.o): In
>>>>>> function `yyerror':
>>>>>> tokens.c:(.text+0x1e5c): multiple definition of `yyerror'
>>>>>> ../lib/libmolpro.a(licence.o):parse.c:(.text+0x5edd): first defined here
>>>>>>
>>>>>> Thanks
>>>>>> Manhui
>>>>>>
>>>>>> Yutaka Kubota wrote:
>>>>>>> Dear MVAPICH2 discussion Mailing list,
>>>>>>>
>>>>>>> This is Yutaka Kubota from Cray Japan.
>>>>>>>
>>>>>>> I would like to know when will release MVAPICH2 1.4 official version. If
>>>>>>> this plan was not decided, we will try to use RC2 or RC3 version. We
>>>>>>> just would like to know this plan is exist or not.
>>>>>>>
>>>>>>> Best regards
>>>>>>>
>>>>>>> Yutaka Kubota
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> mvapich-discuss mailing list
>>>>>>> mvapich-discuss at cse.ohio-state.edu
>>>>>>> http://mail.cse.ohio-state.edu/mailman/listinfo/mvapich-discuss
>>>>>> -- 
>>>>>> -----------
>>>>>> Manhui  Wang
>>>>>> School of Chemistry, Cardiff University,
>>>>>> Main Building, Park Place,
>>>>>> Cardiff CF10 3AT, UK
>>>>>> Telephone: +44 (0)29208 76637
>>>>>> _______________________________________________
>>>>>> mvapich-discuss mailing list
>>>>>> mvapich-discuss at cse.ohio-state.edu
>>>>>> http://mail.cse.ohio-state.edu/mailman/listinfo/mvapich-discuss
>>>> ------------------------------------------------------------------------
>>>>
>>>> _______________________________________________
>>>> mvapich-discuss mailing list
>>>> mvapich-discuss at cse.ohio-state.edu
>>>> http://mail.cse.ohio-state.edu/mailman/listinfo/mvapich-discuss
>>> -- 
>>> -----------
>>> Manhui  Wang
>>> School of Chemistry, Cardiff University,
>>> Main Building, Park Place,
>>> Cardiff CF10 3AT, UK
>>> Telephone: +44 (0)29208 76637
>>> diff -crB mvapich2-1.4rc2-orig/src/mpid/ch3/channels/mrail/src/plpa/parser.c mvapich2-1.4rc2/src/mpid/ch3/channels/mrail/src/plpa/parser.c
>>> *** mvapich2-1.4rc2-orig/src/mpid/ch3/channels/mrail/src/plpa/parser.c	2009-06-01 22:56:18.000000000 +0100
>>> --- mvapich2-1.4rc2/src/mpid/ch3/channels/mrail/src/plpa/parser.c	2009-09-29 13:20:10.000000000 +0100
>>> ***************
>>> *** 551,557 ****
>>>    * easily add parameters.
>>>    */
>>>   #ifndef YY_DECL
>>> ! #define YY_DECL int yylex YY_PROTO(( void ))
>>>   #endif
>>>   
>>>   /* Code executed at the beginning of each rule, after yytext and yyleng
>>> --- 551,557 ----
>>>    * easily add parameters.
>>>    */
>>>   #ifndef YY_DECL
>>> ! #define YY_DECL int mvapich_yylex YY_PROTO(( void ))
>>>   #endif
>>>   
>>>   /* Code executed at the beginning of each rule, after yytext and yyleng
>>> ***************
>>> *** 714,720 ****
>>>   			/* We're scanning a new file or input source.  It's
>>>   			 * possible that this happened because the user
>>>   			 * just pointed yyin at a new source and called
>>> ! 			 * yylex().  If so, then we have to assure
>>>   			 * consistency between yy_current_buffer and our
>>>   			 * globals.  Here is the right place to do so, because
>>>   			 * this is the first action (other than possibly a
>>> --- 714,720 ----
>>>   			/* We're scanning a new file or input source.  It's
>>>   			 * possible that this happened because the user
>>>   			 * just pointed yyin at a new source and called
>>> ! 			 * mvapich_yylex().  If so, then we have to assure
>>>   			 * consistency between yy_current_buffer and our
>>>   			 * globals.  Here is the right place to do so, because
>>>   			 * this is the first action (other than possibly a
>>> ***************
>>> *** 827,833 ****
>>>   			"fatal flex scanner internal error--no action found" );
>>>   	} /* end of action switch */
>>>   		} /* end of scanning one token */
>>> ! 	} /* end of yylex */
>>>   
>>>   
>>>   /* yy_get_next_buffer - try to read in a new buffer
>>> --- 827,833 ----
>>>   			"fatal flex scanner internal error--no action found" );
>>>   	} /* end of action switch */
>>>   		} /* end of scanning one token */
>>> ! 	} /* end of mvapich_yylex */
>>>   
>>>   
>>>   /* yy_get_next_buffer - try to read in a new buffer
>>> ***************
>>> *** 1574,1580 ****
>>>   #if YY_MAIN
>>>   int main()
>>>   	{
>>> ! 	yylex();
>>>   	return 0;
>>>   	}
>>>   #endif
>>> --- 1574,1580 ----
>>>   #if YY_MAIN
>>>   int main()
>>>   	{
>>> ! 	mvapich_yylex();
>>>   	return 0;
>>>   	}
>>>   #endif
>>> diff -crB mvapich2-1.4rc2-orig/src/mpid/ch3/channels/mrail/src/plpa/tokens.c mvapich2-1.4rc2/src/mpid/ch3/channels/mrail/src/plpa/tokens.c
>>> *** mvapich2-1.4rc2-orig/src/mpid/ch3/channels/mrail/src/plpa/tokens.c	2009-06-01 22:56:18.000000000 +0100
>>> --- mvapich2-1.4rc2/src/mpid/ch3/channels/mrail/src/plpa/tokens.c	2009-09-29 13:20:05.000000000 +0100
>>> ***************
>>> *** 113,119 ****
>>>    * Global functions
>>>    */
>>>   int token_parse(PLPA_NAME(cpu_set_t) *cpu_set);
>>> ! void yyerror(char const *s);
>>>   
>>>   /*
>>>    * Local functions
>>> --- 113,119 ----
>>>    * Global functions
>>>    */
>>>   int token_parse(PLPA_NAME(cpu_set_t) *cpu_set);
>>> ! void mvapich_yyerror(char const *s);
>>>   
>>>   /*
>>>    * Local functions
>>> ***************
>>> *** 495,501 ****
>>>   #define YYERROR		goto yyerrorlab
>>>   
>>>   
>>> ! /* Like YYERROR except do call yyerror.  This remains here temporarily
>>>      to ease the transition to the new meaning of YYERROR, for GCC.
>>>      Once GCC version 2 has supplanted version 1, this can go.  */
>>>   
>>> --- 495,501 ----
>>>   #define YYERROR		goto yyerrorlab
>>>   
>>>   
>>> ! /* Like YYERROR except do call mvapich_yyerror.  This remains here temporarily
>>>      to ease the transition to the new meaning of YYERROR, for GCC.
>>>      Once GCC version 2 has supplanted version 1, this can go.  */
>>>   
>>> ***************
>>> *** 515,521 ****
>>>       }								\
>>>     else								\
>>>       { 								\
>>> !       yyerror ("syntax error: cannot back up");\
>>>         YYERROR;							\
>>>       }								\
>>>   while (0)
>>> --- 515,521 ----
>>>       }								\
>>>     else								\
>>>       { 								\
>>> !       mvapich_yyerror ("syntax error: cannot back up");\
>>>         YYERROR;							\
>>>       }								\
>>>   while (0)
>>> ***************
>>> *** 534,545 ****
>>>       (Current).last_column  = (Rhs)[N].last_column)
>>>   #endif
>>>   
>>> ! /* YYLEX -- calling `yylex' with the right arguments.  */
>>>   
>>>   #ifdef YYLEX_PARAM
>>> ! # define YYLEX yylex (YYLEX_PARAM)
>>>   #else
>>> ! # define YYLEX yylex ()
>>>   #endif
>>>   
>>>   /* Enable debugging if requested.  */
>>> --- 534,545 ----
>>>       (Current).last_column  = (Rhs)[N].last_column)
>>>   #endif
>>>   
>>> ! /* YYLEX -- calling `mvapich_yylex' with the right arguments.  */
>>>   
>>>   #ifdef YYLEX_PARAM
>>> ! # define YYLEX mvapich_yylex (YYLEX_PARAM)
>>>   #else
>>> ! # define YYLEX mvapich_yylex ()
>>>   #endif
>>>   
>>>   /* Enable debugging if requested.  */
>>> ***************
>>> *** 787,801 ****
>>>   
>>>   #ifdef YYPARSE_PARAM
>>>   # if defined (__STDC__) || defined (__cplusplus)
>>> ! int yyparse (void *YYPARSE_PARAM);
>>>   # else
>>> ! int yyparse ();
>>>   # endif
>>>   #else /* ! YYPARSE_PARAM */
>>>   #if defined (__STDC__) || defined (__cplusplus)
>>> ! int yyparse (void);
>>>   #else
>>> ! int yyparse ();
>>>   #endif
>>>   #endif /* ! YYPARSE_PARAM */
>>>   
>>> --- 787,801 ----
>>>   
>>>   #ifdef YYPARSE_PARAM
>>>   # if defined (__STDC__) || defined (__cplusplus)
>>> ! int mvapich_yyparse (void *YYPARSE_PARAM);
>>>   # else
>>> ! int mvapich_yyparse ();
>>>   # endif
>>>   #else /* ! YYPARSE_PARAM */
>>>   #if defined (__STDC__) || defined (__cplusplus)
>>> ! int mvapich_yyparse (void);
>>>   #else
>>> ! int mvapich_yyparse ();
>>>   #endif
>>>   #endif /* ! YYPARSE_PARAM */
>>>   
>>> ***************
>>> *** 813,835 ****
>>>   
>>>   
>>>   /*----------.
>>> ! | yyparse.  |
>>>   `----------*/
>>>   
>>>   #ifdef YYPARSE_PARAM
>>>   # if defined (__STDC__) || defined (__cplusplus)
>>> ! int yyparse (void *YYPARSE_PARAM)
>>>   # else
>>> ! int yyparse (YYPARSE_PARAM)
>>>     void *YYPARSE_PARAM;
>>>   # endif
>>>   #else /* ! YYPARSE_PARAM */
>>>   #if defined (__STDC__) || defined (__cplusplus)
>>>   int
>>> ! yyparse (void)
>>>   #else
>>>   int
>>> ! yyparse ()
>>>   
>>>   #endif
>>>   #endif
>>> --- 813,835 ----
>>>   
>>>   
>>>   /*----------.
>>> ! | mvapich_yyparse.  |
>>>   `----------*/
>>>   
>>>   #ifdef YYPARSE_PARAM
>>>   # if defined (__STDC__) || defined (__cplusplus)
>>> ! int mvapich_yyparse (void *YYPARSE_PARAM)
>>>   # else
>>> ! int mvapich_yyparse (YYPARSE_PARAM)
>>>     void *YYPARSE_PARAM;
>>>   # endif
>>>   #else /* ! YYPARSE_PARAM */
>>>   #if defined (__STDC__) || defined (__cplusplus)
>>>   int
>>> ! mvapich_yyparse (void)
>>>   #else
>>>   int
>>> ! mvapich_yyparse ()
>>>   
>>>   #endif
>>>   #endif
>>> ***************
>>> *** 1305,1319 ****
>>>   			yyprefix = " or ";
>>>   		      }
>>>   		}
>>> ! 	      yyerror (yymsg);
>>>   	      YYSTACK_FREE (yymsg);
>>>   	    }
>>>   	  else
>>> ! 	    yyerror ("syntax error; also virtual memory exhausted");
>>>   	}
>>>         else
>>>   #endif /* YYERROR_VERBOSE */
>>> ! 	yyerror ("syntax error");
>>>       }
>>>   
>>>   
>>> --- 1305,1319 ----
>>>   			yyprefix = " or ";
>>>   		      }
>>>   		}
>>> ! 	      mvapich_yyerror (yymsg);
>>>   	      YYSTACK_FREE (yymsg);
>>>   	    }
>>>   	  else
>>> ! 	    mvapich_yyerror ("syntax error; also virtual memory exhausted");
>>>   	}
>>>         else
>>>   #endif /* YYERROR_VERBOSE */
>>> ! 	mvapich_yyerror ("syntax error");
>>>       }
>>>   
>>>   
>>> ***************
>>> *** 1431,1437 ****
>>>   | yyoverflowlab -- parser overflow comes here.  |
>>>   `----------------------------------------------*/
>>>   yyoverflowlab:
>>> !   yyerror ("parser stack overflow");
>>>     yyresult = 2;
>>>     /* Fall through.  */
>>>   #endif
>>> --- 1431,1437 ----
>>>   | yyoverflowlab -- parser overflow comes here.  |
>>>   `----------------------------------------------*/
>>>   yyoverflowlab:
>>> !   mvapich_yyerror ("parser stack overflow");
>>>     yyresult = 2;
>>>     /* Fall through.  */
>>>   #endif
>>> ***************
>>> *** 1454,1467 ****
>>>   
>>>       PLPA_CPU_ZERO(cpu_set);
>>>       return_value = cpu_set;
>>> !     ret = yyparse();
>>>       if (0 != ret) {
>>>           return ret;
>>>       }
>>>       return 0;
>>>   }
>>>   
>>> ! void yyerror (char const *s)
>>>   {
>>>       fprintf(stderr, "ERROR: %s\n", s);
>>>   }
>>> --- 1454,1467 ----
>>>   
>>>       PLPA_CPU_ZERO(cpu_set);
>>>       return_value = cpu_set;
>>> !     ret = mvapich_yyparse();
>>>       if (0 != ret) {
>>>           return ret;
>>>       }
>>>       return 0;
>>>   }
>>>   
>>> ! void mvapich_yyerror (char const *s)
>>>   {
>>>       fprintf(stderr, "ERROR: %s\n", s);
>>>   }
>>
> 

-- 
-----------
Manhui  Wang
School of Chemistry, Cardiff University,
Main Building, Park Place,
Cardiff CF10 3AT, UK
Telephone: +44 (0)29208 76637


More information about the mvapich-discuss mailing list