This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: G77, libg2c and a linking problem


On 15 September 2006 14:05, Angelo Graziosi wrote:

>>       program hello
>>       implicit none
>>       write(*,*) 'Hello!'
>>       end

>> $ g77 hello.F -o hello -L/usr/lib/gcc/i686-pc-cygwin/3.4.4 -lg2c
>>
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../libcygwin.a(libcmain.o):(.text+0xab
):
>>  undefined reference to `_WinMain@16'
>>  collect2: ld returned 1 exit status

> 1) adding -s at the end works
>   $ g77 hello.F -o hello -L/usr/lib/gcc/i686-pc-cygwin/3.4.4 -lg2c -s

> 2) but after hello.F, doesn't
> 
>    $ g77 hello.F -s -o hello -L/usr/lib/gcc/i686-pc-cygwin/3.4.4 -lg2c
>
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../libcygwin.a(libcmain.o):(.text+0xab
):
>  undefined reference to `_WinMain@16'
> collect2: ld returned 1 exit status

> 3) moving '-o hello' at the end works
> 
>     $ g77 hello.F -s -L/usr/lib/gcc/i686-pc-cygwin/3.4.4 -lg2c -o hello

> 4) also moving -s works
> 
>    $ g77 hello.F -L/usr/lib/gcc/i686-pc-cygwin/3.4.4 -lg2c -s -o hello

> 5) or removing it
> 
>    $ g77 hello.F -L/usr/lib/gcc/i686-pc-cygwin/3.4.4 -lg2c -o hello


  This is probably a consequence of that packaging error that you noticed:

http://www.cygwin.com/ml/cygwin/2006-07/msg00619.html

  The problem (I suspect but have not yet proven) is that the g77 driver gets
all the libs and objects in the correct order on the commandline, and tagging
one on the end with -L/-l doesn't work because it's in the wrong place.

  Using your hello world testcase, I found that 

g77 hello.F -o hello

"just works".  You don't mention that you've tried this but I assume you did
and it didn't work.  So please try the fix I suggested in 

http://www.cygwin.com/ml/cygwin/2006-07/msg00620.html

which moves the libs to the place where the compiler expects to find them, and
means you don't need to worry about manually trying to add the library into
the correct place on the command line.  I expect that this should resolve the
problem for you.



    cheers,
      DaveK
-- 
Can't think of a witty .sigline today....


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]