[Prev] Thread [Next]  |  [Prev] Date [Next]

Re: libidn-1.23 bug in lib/Makefile cross-building for Windows René Berber Wed Jan 11 22:00:08 2012

On 12/19/2011 7:25 AM, Simon Josefsson wrote:

> It appears correct in the sense that libidn-X.def will only be installed
> if -Wl,--output-def,libidn-X.def was passed when building the library.

But you missed the part where I said : It's not used anywhere.  That
means it is not being passed when building the library.

> Is support for -Wl,--output-def detected properly on your platform?

I don't know, just started using Gentoo's crossdev environment.  In
other cross development environments .def files are not needed nor used,
but MinGW-W64 tries to be compatible with the Microsoft compilers, so
perhaps its supposed to work that way.

> There should be a message like 'checking if gcc/ld supports
> -Wl,--output-def' when you run ./configure.

I'll check this, but as I said, if the Makefile never uses that part...

> If you remove lib/libidn.la and type 'make -C lib V=99' how do the
> commands look like?  It should pass -Wl,--output-def,libidn-X.def to the
> linker.

I'm not building directly (i.e. no configure && make && make install),
I'm using Gentoo's tools (i.e. x86_64-w64-mingw32-emerge -av libidn).

> If the -Wl,--output-def,libidn-X.def parameter is passed to the linker
> properly, and the file is not generated, it seems like a bug in the
> compiler.

Not the case.

> FWIW, I'm cross-compiling the Libidn binaries using MinGW-64 as well,
> and I haven't seen this problem before.
> Could it be a build ordering issue?  Are you trying to install
> libidn-X.def before the library has been built perhaps?

It could be a problem with the x86_64-w64-mingw32-emerge and the .ebuild
file, the idea is to use the existing .ebuild files for building things
(just like everything gets build on Gentoo).  In this case I think
ebuild rebuilt configure (trying to adapt it to the cross development
environment), and that could have created the problem.

Thanks for your reply, at least it seems to imply that if I just build
"by hand" (configure && make && ...) it works.
René Berber

Help-libidn mailing list