Re: [DynInst_API:] dyninst_proccontrol branch always building testsuite


Date: Tue, 15 May 2012 14:57:30 -0400
From: William Cohen <wcohen@xxxxxxxxxx>
Subject: Re: [DynInst_API:] dyninst_proccontrol branch always building testsuite
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
>>

[← Prev in Thread] Current Thread [Next in Thread→]