Cross compilation failed

Werner Koch wk at gnupg.org
Fri Mar 6 09:19:34 CET 2009


On Thu, 19 Feb 2009 06:33, i.demonstrate at gmail.com said:

> Hi all. I want to make a Win32 port of GnuPG 2.0.10 from my sid with 
> the help of mingw32.

The easiest way is to use the gpg4win installer (the tar.bz2 file) which
makes sure that everthing is in place.   If you want to manually build
it, I suggest to create a directory

  $HOME/w32root

or alternativley any other directory and set w32root=directory.  Then
you can just use

 ./autogen.sh --build-w32 && make install

for all GnuPG related packages (those with that script).  For the other
packages you need to pass appropriate options to ./configure.  Start
with libgpg-error, libgcrypt, w32pth, libassuan, libksba.  

> When cross compiling libassuan, I got the following warnings:
> configure: WARNING:
> ***
> *** Data structure for sending ancillary data missing.
> *** Descriptor passing won't work.
> ***
> ***
> *** No implementation of fopencookie or funopen available.
> *** The assuan_get_data_fp feature won't work.
> ***

That's okay.

> -L/home/heli/w32root/lib
 [...]
> ../gl/libgnu.a  ../common/libgpgrl.a -lz  -lreadline   -lws2_32 -
> lgcrypt -lassuan -lgpg-error /home/heli/w32root/lib/libiconv.dll.a -
> L/home/heli/w32root/lib 

libassuan requires libws2_32 as well.  Compare your ld command to mine:

../gl/libgnu.a ../common/libgpgrl.a -lz -lws2_32 -L/home/wk/w32root/lib
-lgcrypt -lgpg-error -L/home/wk/w32root/lib -lassuan -lws2_32
-L/home/wk/w32root/lib -lgpg-error

Here you see -lws2_w32 after -lassuan.  This is because my
libassuan-config says this.

  $ ~/w32root/bin/libassuan-config --libs
  -L/home/wk/w32root/lib -lassuan -lws2_32

My conclusion is that you do did use "./autogen.sh --build-w32" for
libassuan or forgot to run "make install". The GnuPG build command is:

    ./configure --enable-maintainer-mode --prefix=${w32root}  \
             --host=${host} --build=${build} \
             --with-gpg-error-prefix=${w32root} \
	     --with-ksba-prefix=${w32root} \
	     --with-libgcrypt-prefix=${w32root} \
	     --with-libassuan-prefix=${w32root} \
	     --with-zlib=${w32root} \
	     --with-regex=${w32root} \
             --with-pth-prefix=${w32root} \
             --with-adns=${w32root} \
             --without-included-gettext "$@"

which uses "--with-libassuan-prefix=${w32root}" and thus takes 
libassuan-config from ~/w32root/bin/.



Shalom-Salam,

   Werner

-- 
Die Gedanken sind frei.  Auschnahme regelt ein Bundeschgesetz.




More information about the Gnupg-devel mailing list