On 05/15/2012 02:09 PM, Matthew LeGendre wrote:
>
> Will,
>
> I've made a new build-centric commit to our dyninst_proccontrol branch. Among other changes, this should fix the '--disable-testsuite' configure option, which allows you to skip the testsuite build. It also gets Dyninst to start using install-sh rather than cp for include and library installs.
>
> I'm not reproducing the testsuite's fortran "multiple definitions" problem with main, nor am I seeing how that would happen. I'm going to file a bug report, but it may not get a fast fix.
>
> -Matt
Hi Matt,
The "multiple definitions" only occurred with i386 build. Looking at the test code there is a main created for test1_18F_fortran.F and there is another main in mutatee_driver.c. It looks like the following git commit causes the fortran test to have a main:
http://git.dyninst.org/?p=dyninst.git;a=commit;h=f1679255a15c5c0ffc0f5f617174772b83db7b17
I noticed some differences between the testsuite/i386-unknown-linux2.4/Makefile and testsuite/x86_64-unknown-linux2.4/Makefile. Could those differences be causing different sets of tests to be built for i386 and x86_64? The i386 version Makefile has:
#if M_G77 is defined, g77 mutatees will be built
M_G77 = gfortran
The linux make files look pretty similar. Would it be possible factor out some of that common linux stuff for the testsuite/*/Make in a testsuite/make.linux?
Even with the configure "--disable-testsuite" with the latest git checkout of dyninst_proccontrol it still builds the testsuite code.
-Will
>
> On Mon, 14 May 2012, William Cohen wrote:
>> Hi Matt,
>>
>> I have been working the the dyninst_proccontrol branch as a starting point for additional improvements for packaging. I noticed two issues when building the RPMs:
>>
>> -the testsuite is alway being built (results in many additional RPMs being required)
>> -on i686 build the testsuite fails to build because of "multiple definition of `main'"
>> (http://koji.fedoraproject.org/koji/getfile?taskID=4074647&name=build.log)
>>
>> Below is the part of the log related to the i686 build failure:
>>
>> gfortran -g -o test1_18F.mutatee_solo_dynamic_gfortran_32_none_none test1_18F_mutatee_solo_gcc_32_none_none.o mutatee_util_gcc_32_none_none.o test1_18F_fortran_gfortran_32_none_none.o mutatee_driver_solo_gcc_32.o
>> mutatee_driver_solo_gcc_32.o: In function `main':
>> /builddir/build/BUILD/dyninst-8.0/dyninst/testsuite/i386-unknown-linux2.4/../src/mutatee_driver.c:253: multiple definition of `main'
>> test1_18F_fortran_gfortran_32_none_none.o:/builddir/build/BUILD/dyninst-8.0/dyninst/testsuite/i386-unknown-linux2.4/../src/dyninst/test1_18F_fortran.F:52: first defined here
>> collect2: ld returned 1 exit status
>> make[1]: *** [test1_18F.mutatee_solo_dynamic_gfortran_32_none_none] Error 1
>> make[1]: Leaving directory `/builddir/build/BUILD/dyninst-8.0/dyninst/testsuite/i386-unknown-linux2.4'
>> make: *** [testsuite] Error 2
>>
>> The srpm file with these issues is at:
>>
>> http://people.redhat.com/wcohen/dyninst/dyninst-8.0-0.10.fc16git.src.rpm
>>
>> -Will
>>
|