lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Problems with mingw build


From: Michael Käppler
Subject: Re: Problems with mingw build
Date: Wed, 15 Dec 2021 23:17:00 +0100
User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.4.0

Am 15.12.2021 um 19:26 schrieb Jonas Hahnfeld:
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.
Hmm...I did understand the error differently. From checking with 'nm' I
can tell that
the symbols are actually defined in libfribidi.a _without_  the __imp_
prefix.
But libpango-1.0.a has references to the prefixed symbols.

I found https://gitlab.gnome.org/GNOME/pango/-/issues/301 but not sure
if this is related.
Pango switched to generating their *.pc files through meson afterwards.
In the generated pango.pc, fribidi is not mentioned.

So the question is how you end up *not* having those defines. Are you
building from scratch (ie, mingw/ removed) with the exact scripts from
master or my latest merge request?
I built completely from scratch with the scripts from master.

Jonas




reply via email to

[Prev in Thread] Current Thread [Next in Thread]