This is the mail archive of the cygwin-apps@cygwin.com 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]

RE: Did I find an error in the current binutils or what???



> Hi,
>
> I'm just trying to build the new born openssh-3.0p1 for Cygwin.
>
> There's a slight difference between 1.3.3 and 1.3.4 in so far as
> __progname is defined in 1.3.4 while it wasn't in 1.3.3.
>
> Unfortunately, __progname isn't defined in any header file.  So what
> happens (and what should work fine in theory) is, I'm getting the
> following message at the end of the link stage:
>
> Warning: resolving ___progname by linking to __imp____progname (auto-import)
>
> Hum, the problem is that I'm getting _another_ message right after
> the above one:
>
> nmth000000.o(.idata$4+0x0): undefined reference to `_nm____progname'
> collect2: ld returned 1 exit status
>
> Bingo.  I've tried to find a symbol `_nm____progname' in all(!) *.a
> files on my system.  Nada.  There's no such symbol anywhere.  Ok, so
> collect2 is right in that this symbol can't be resolved... but the
> symbol isn't even _requested_ anywhere!  I have called nm on all *.o
> files in the ssh build dir and I have called nm on all *.a files on
> my whole system.
>
> Sure, I can workaround that by undefining HAVE___PROGNAME in ssh's
> config.h but that's no solution, somehow.
>
> What's going wrong here???  I'm really not good in such stuff.  Btw.,
> I'm using the latest binutils and gcc.  a `-v' option when linking
> prints:
>
> /bin/../lib/gcc-lib/i686-pc-cygwin/2.95.3-5/collect2.exe -Bdynamic
>   --dll-search-prefix=cyg -o ssh.exe /usr/lib/crt0.o -L.
>   -Lopenbsd-compat/ -L/usr/local/lib -L/usr/lib -L/usr/lib/w32api
>   -L/bin/../lib/gcc-lib/i686-pc-cygwin/2.95.3-5 -L/bin/../lib/gcc-lib
>   -L/lib -L/usr/local/lib -L/usr/X11R6/lib
>   -L/usr/lib/gcc-lib/i686-pc-cygwin/2.95.3-5 ssh.o sshconnect.o
>   sshconnect1.o sshconnect2.o sshtty.o readconf.o clientloop.o
>   -lssh -lopenbsd-compat -lz -lregex /usr/lib/textmode.o -lcrypto
>   -lgcc -lcygwin -luser32 -lkernel32 -ladvapi32 -lshell32 -lgcc
>
>
> Corinna

I recognized a problem relating to the symbol __progname after downloading
the last cygwin (dll,lib,header) snapshot and linking a little app. At first
there was not problem. But after using the getopt_long function, linking was
okay, but on starting the app, the windows runtime loader say that cygwin1.dll
does not contain a symbol __progname.
If have looked in /lib/libcygwin.a to identify the relating object file and
found a reference to __progname, but I havn't found where this symbol is
defined. :-(
What me helped, was upgrading to the newest cygwin release (1.3.4-3)

d000030.o:
00000000 i .idata$4
00000000 i .idata$5
00000000 i .idata$6
00000000 i .idata$7
00000000 t .text
00000000 T ___signgam
         U __head_cygwin1_dll
00000000 I __imp____signgam
00000000 I __nm____signgam

d000029.o:
00000000 i .idata$4
00000000 i .idata$5
00000000 i .idata$6
00000000 i .idata$7
00000000 t .text
         U __head_cygwin1_dll
00000000 I __imp____progname
00000000 I __nm____progname

d000028.o:
00000000 i .idata$4
00000000 i .idata$5
00000000 i .idata$6
00000000 i .idata$7
00000000 t .text
         U __head_cygwin1_dll
00000000 I __imp____mb_cur_max
00000000 I __nm____mb_cur_max


Ralf  Habacker





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