Skip to content
Commit 54527670 authored by Colin Watson's avatar Colin Watson
Browse files

Fix building on Cygwin

Achim reported that 2.10.0 no longer builds on Cygwin, while 2.9.4 did.
This was magnificently obscure, at least to this Unix-head.  Initially
it appeared to be an issue with inter-library linking between libman and
libmandb, but 2.9.4 relied on that too, just slightly less so.

The actual problem was that libman only exported
`gl_get_setlocale_null_lock` and not all the other symbols it's supposed
to export, which is because that was explicitly marked for export and no
other symbols were.  Building libman with `-Wl,--export-all-symbols`
fixes this; libman is intended as an aggregation of various helper
functions, including those from Gnulib, and it doesn't make sense to be
especially selective since it's only installed as a private library
anyway.

(I'm still not exactly sure why 2.9.4 didn't do the same thing, but this
seems to be a good enough fix.)

* configure.ac: Set LIBMAN_EXPORT_LDFLAGS to '-Wl,--export-all-symbols'
when linking with GNU ld on Windows platforms.
* lib/Makefile.am (libman_la_LDFLAGS): Add $(LIBMAN_EXPORT_LDFLAGS).
* src/Makefile.am (LIBMAN): Remove $(top_builddir)/gl/lib/libgnu.la; as
a convenience library, this is already incorporated into libman.la, and
specifying it again causes multiple-definition errors on Cygwin.
* src/tests/Makefile.am (get_mtime_LDADD): Likewise.
* NEWS.md: Document this.
parent 1f807e37
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment