Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Date: Tue, 11 Mar 2003 13:39:36 +0000 (GMT Standard Time) From: Max Bowsher To: "Bruce Adams [TEPG Sunbury]" cc: cygwin AT cygwin DOT com Subject: Re: Post install smoke test (or "Oh no not again") In-Reply-To: Message-ID: References: X-X-Sender: mob22 AT imap DOT hermes DOT cam DOT ac DOT uk MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII 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. > 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. > 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. > 1) run cygcheck -c > > See enclosed output. > This doesn't actually help me. > Should I try re-installing from a different mirror? > > 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. -- 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/