Subject: RE: Post install smoke test (or "Oh no not again")
From: "Bruce Adams [TSP Sunbury]" <[email-masked]>
To: "Max Bowsher" <[email-masked]>
Cc: <[email-masked]>
Date: Tue, 11 Mar 2003 15:58:45 -0000

>-----Original Message-----
>From: Max Bowsher [mailto:[email-masked]] 
>Sent: 11 March 2003 13:40
>To: Bruce Adams [TEPG Sunbury]
>Cc: [email-masked]
>Subject: Re: Post install smoke test (or "Oh no not again")
>
>
>On Tue, 11 Mar 2003, Bruce Adams [TEPG Sunbury] wrote:
>
>> Hi,
>>    I just did a fresh installation of gcc on another machine and had 
>> an "oh no not again" moment. Attempting to compile:
>>
>> int main(int argc,char** argv) {
>>   return 0;
>> } //main
>>
>> Gives the output:
>>
>> gcc hello.o -o hello.exe -lstdc++
>                           ^^^^^^^^
>Why? Don't do that.
>
Granted unecessary for this particular example.
It's a leftover from an example that actually used the standard library.

>> hello.o(.text+0x0):fake: multiple definition of `_mainCRTStartup'
>> 
>/usr/lib/gcc-lib/i686-pc-cygwin/3.2/../../../crt0.o(.text+0x0): first 
>> defined here
>> hello.o(.text+0x40):fake: multiple definition of `___do_frame_init'
>> /usr/lib/gcc-lib/i686-pc-cygwin/3.2/crtbegin.o(.text+0x0): first 
>> defined here
>> hello.o(.text+0x70):fake: multiple definition of `___do_frame_fini'
>> /usr/lib/gcc-lib/i686-pc-cygwin/3.2/crtbegin.o(.text+0x30): first 
>> defined here
>> hello.o(.data+0x0): In function `main':
>> /cygdrive/c/BruceA/code/typelist/hello.cpp:4: multiple definition of 
>> `___cygwin_crt0_bp'
>> 
>/usr/lib/gcc-lib/i686-pc-cygwin/3.2/../../../crt0.o(.data+0x0): first 
>> defined here
>> hello.o(.rdata+0x0): In function `main':
>> /cygdrive/c/BruceA/code/typelist/hello.cpp:4: multiple definition of 
>> `___EH_FRAME_BEGIN__'
>> /usr/lib/gcc-lib/i686-pc-cygwin/3.2/crtbegin.o(.eh_frame+0x0): first 
>> defined here
>> collect2: ld returned 1 exit status
>> make: *** [hello.exe] Error 1
>>
>>
>> I guess this means I have another corrupted installation. 
>Which brings 
>> me to two questions.
>>
>> 1) what standard corrective actions can we suggest for "dodgey" 
>> installations
>
>No standard corrective action, because "dodgey" is far too unspecific.
>
Well since all I know from my perspective is I installed and it doesn't
work I can't be much more specific.  But if I come on this list and it
say "it doesn't work" I will be asked several things.  Have I checked the
FAQ, searched the mailing list etc.  What is your cygcheck -c output
and other such quesitons.  For each specific package these may differ.
Judging from my output maybe it looks more like binutils is broken than
gcc itself.

>> 2) what would be the appropriate way to implement a 
>post-install smoke 
>> test.
>
>It would be more appropriate to find out what happened, and 
>make sure it doesn't occur in the future. Therefore, no 
>smoketest needed.
>
An interesting corollary to prevention is better than cure.
Fix the problem so that it doesn't re-occur is of course the first priority
but altering the system so that it is easier to detect and deal with new
bugs of a similar nature (not to mention regression testing the one you
think
you've fixed but may only have fixed one aspect of) is still worthwhile.

>> 1) run cygcheck -c
>>
>> See enclosed output.
>> This doesn't actually help me.
>> Should I try re-installing from a different mirror?
>>
Neither alas did installing from a different mirror :-(.
Is there a listing of the most current package set that is internally
consistent and working? or is that supposed to be a pre-release criteria
for any package?

>> 2) Presumably raw bash would be preferable to tcl or perl.
>>    Dos is just sick.
>>    Personally I would like to use TCL because it is what I know best
>>    but it needs to be compatible with whatever's already 
>being used as it
>>    probably ought to possible to install cygwin without TCL or perl.
>>
>>    at end of gcc package installation - append gcc-smoke.sh 
>to a list of
>>    post install smoke tests to run.
>>
>>    At (current) end of post install have another bash script 
>iterate over
>>    the scripts in smoketest.lst or whatever and dump the 
>output into a
>>    detailed postinstall log.
>>    Each script can generate one line (or at least minimal) 
>error reports
>>    that get displayed to the user at the very end a long 
>with a bit of 
>> advice
>>    saying what to try to fix it before coming here.
>>    It would be good if we could associate each error with a separate 
>> piece of
>>    advice but maybe that's version 2.
>>
>> I can probably supply the smoke test itself, though my bash is a bit 
>> rusty but so probably can pretty much anyone on the list.
>> Is the rest of it a 5 minute job?
>
>I do not think a smoketest is necessary or desirable.
>
>If you can find any problems, then lets fix them, so we don't 
>*need* to test for them.
>
>
>Max.
>
>
TQM places the emphasis on preventing problems from occurring but that does
not mean you don't need to test the final product.

Regards,
        Bruce A.

============================================================================
 Any opinions expressed in this e-mail are those of the individual and not
 necessarily those of Tyco Safety Products.

 Any prices for the supply of goods or services are only valid if supported
 by a formal written quotation.

 This e-mail and any files transmitted with it, including replies and
 forwarded copies (which may contain alterations) subsequently transmitted
 from Tyco Saftey Products are confidential and solely for the use
 of the intended recipient.

 If you are not the intended recipient or the person responsible for
 delivery to the intended recipient, be advised that you have received this
 e-mail in error and that any use is strictly prohibited.  In this event,
 please notify us via e-mail at [email-masked]' or telephone on 
 0121 255 6499 and then delete the e-mail and any copies of it.
============================================================================

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/