Am Mittwoch, dem 15.12.2021 um 15:36 +0100 schrieb Michael Käppler:
Hi all and Jonas in particular,
I would like to understand why building for mingw with your scripts does
not work for me.
I'm on Ubuntu Focal. A linux build worked flawlessly.
During linking of the lilypond binary it fails with
usr/bin/x86_64-w64-mingw32-ld:
/home/michael/lilypond/release/binaries/mingw/dependencies/install/pango-1.48.7/lib/libpango-1.0.a(pango-bidi-type.c.obj):pango-bidi-type.c:(.text+0x6):
undefined reference to `__imp_fribidi_get_bidi_type'
/usr/bin/x86_64-w64-mingw32-ld:
/home/michael/lilypond/release/binaries/mingw/dependencies/install/pango-1.48.7/lib/libpango-1.0.a(pango-bidi-type.c.obj):pango-bidi-type.c:(.text+0x312):
undefined reference to `__imp_fribidi_get_bidi_type'
/usr/bin/x86_64-w64-mingw32-ld:
/home/michael/lilypond/release/binaries/mingw/dependencies/install/pango-1.48.7/lib/libpango-1.0.a(pango-bidi-type.c.obj):pango-bidi-type.c:(.text+0x337):
undefined reference to `__imp_fribidi_get_bracket'
/usr/bin/x86_64-w64-mingw32-ld:
/home/michael/lilypond/release/binaries/mingw/dependencies/install/pango-1.48.7/lib/libpango-1.0.a(pango-bidi-type.c.obj):pango-bidi-type.c:(.text+0x3c0):
undefined reference to `__imp_fribidi_get_par_embedding_levels_ex'
/usr/bin/x86_64-w64-mingw32-ld:
/home/michael/lilypond/release/binaries/mingw/dependencies/install/pango-1.48.7/lib/libpango-1.0.a(pango-bidi-type.c.obj):pango-bidi-type.c:(.text+0x4a6):
undefined reference to `__imp_fribidi_get_bidi_type'
These are defined in libfribidi.a, AFAICT.
No, the static libfribidi.a should define them without the __imp_
prefix which is special to shared Dlls. The compiler generates
references to them if a function declaration is annotated with
__declspec(dllimport). For FriBiDi, this decision happens in fribidi-
common.h where FRIBIDI_ENTRY should be '#define'd away if
FRIBIDI_LIB_STATIC is defined, which is injected from
pkgconfig/fribidi.pc.