This is the mail archive of the
cygwin-developers
mailing list for the Cygwin project.
Re: Latest 64 bit test stuff on sourceware
On Feb 20 19:56, Andy Koppe wrote:
> On 15 February 2013 15:29, Corinna Vinschen wrote:
> > Hi guys,
> >
> > I just uploaded all the latest 64 bit stuff to
> > ftp://cygwin.com/pub/cygwin/64bit/
> >
> > The main change here is what has been discussed in
> > http://cygwin.com/ml/cygwin-developers/2013-02/msg00029.html
> >
> > - The cygwin DLL is named cygwin1.dll rather than cyg64win1.dll.
> > - The DLL library prefix is "cyg" rather than "cyg64".
> > - The link library search path is /usr/lib, rather than /usr/lib64.
> >
> > Here's what you get:
> >
> > - binary-toolchain-x86_64-pc-linux-x-x86_64-pc-cygwin-20130215.tar.xz
> >
> > A complete binary x86_64 Linux cross toolchain, latest patches.
>
> Apparently this one can't find its Win32 libraries:
>
> $ cat test.c
> main(){}
>
> $ x86_64-pc-cygwin-gcc test.c
> /home/andy/opt/x86_64-pc-cygwin/bin/../lib/gcc/x86_64-pc-cygwin/4.8.0/../../../../x86_64-pc-cygwin/bin/ld:
> cannot find -ladvapi32
> /home/andy/opt/x86_64-pc-cygwin/bin/../lib/gcc/x86_64-pc-cygwin/4.8.0/../../../../x86_64-pc-cygwin/bin/ld:
> cannot find -lshell32
> /home/andy/opt/x86_64-pc-cygwin/bin/../lib/gcc/x86_64-pc-cygwin/4.8.0/../../../../x86_64-pc-cygwin/bin/ld:
> cannot find -luser32
> /home/andy/opt/x86_64-pc-cygwin/bin/../lib/gcc/x86_64-pc-cygwin/4.8.0/../../../../x86_64-pc-cygwin/bin/ld:
> cannot find -lkernel32
> collect2: error: ld returned 1 exit status
This really puzzles me. The toolchain I uploaded is the exact toolchain
I'm using on Linux right now. And for me, building applications works.
I built the packages I uploaded to the 64bit/install dir with it and
your STC works fine for me.
> A somewhat related issue: in the mintty makefile, I tried to work
> around the fact that there are two libuuids, one in the main library
> directory and one in its w32api subdirectory, by adding -L`$(HOST)-gcc
> -print-sysroot`/usr/lib/w32api to the link line, so as to pick up the
> w32api one. (Incidentally that should also work around the issue
> above.) Unfortunately that doesn't work with the Linux-hosted
> cross-compiler because that returns nothing for -print-sysroot,
> whereas Yaakov's Cygwin-32-to-64 cross-compiler does return the
> appropriate directory.
The toolchain I created on Linux is not using --with-sysroot. All
target files are installed into $(exec_prefix)/$(target_alias) and
expected there by the compiler. For testing I moved away
/ext/redhat/x86_64-pc-cygwin/x86_64-pc-cygwin/lib/w32api/libkernel32.a
and I got
$ x86_64-pc-cygwin-gcc -g test.c
/ext/redhat/x86_64-pc-cygwin/bin/../lib/gcc/x86_64-pc-cygwin/4.8.0/../../../../x86_64-pc-cygwin/bin/ld: cannot find -lkernel32
collect2: error: ld returned 1 exit status
If I move libkernel32.a back, linking works.
> Is there a better approach for dealing with that, other than requiring
> the library directory to be passed into the makefile?
Where is the non w32api libuuid.a coming from? I don't have such a
file.
Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Maintainer cygwin AT cygwin DOT com
Red Hat