Mail Archives: cygwin/2003/03/11/08:39:47
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/
- Raw text -