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: Mon, 20 Dec 2021 10:05:37 +0100
User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.4.0

Am 16.12.2021 um 10:24 schrieb Jonas Hahnfeld:
Am Donnerstag, dem 16.12.2021 um 09:48 +0100 schrieb Michael Käppler:
Am 16.12.2021 um 08:43 schrieb Jonas Hahnfeld:
Am Mittwoch, dem 15.12.2021 um 23:17 +0100 schrieb Michael Käppler:
Am 15.12.2021 um 19:26 schrieb Jonas Hahnfeld:
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.
Yes, so Pango's build was not aware that libfribidi was built
statically.
Could you share mingw/dependencies/log/pango-1.48.7.log and
mingw/dependencies/build/pango-1.48.7/meson-logs/meson-log.txt ? The
latter should show `-DFRIBIDI_LIB_STATIC` as part of the --cflags
returned by pkg-config-static.sh.
That is not the case.
Ah yes, please install the more modern "pkgconf", not "pkg-config".
That's why I provide a list of packages that I tested with in the form
of an Ansible playbook...
Well, it was not obvious for me that "pkgconf" is different from
"pkg-config"...
I think I found the related issue here:
https://github.com/fribidi/fribidi/issues/156
and see also
https://github.com/fribidi/fribidi/pull/151

Since we do not use the 'meson' build system for fribidi this fix
would not help, right?
Right. I think I chose the configure way of building because it was the
recommended one? But maybe I'm confusing this with some other projects
saying that their Meson support is still experimental.
They phrased it in a rather neutral way:
"Start with running the autogen.sh script and follow the instructions.
Alternatively use meson."

I could fix it locally by manually patching fribidi.pc.in, adding
`-DFRIBIDI_LIB_STATIC` to cflags.

After recompiling fribidi and pango I could complete a LilyPond mingw
build successfully.

Interesting why it worked for you, though.

Btw, they fixed this in fribidi 10 days ago:
https://github.com/fribidi/fribidi/commit/859aa1bd9ecdf58957f5a7af747ae3b6bd418c1c

I would suggest patching `fribidi.pc.in` for now and then bumping
fribidi to 1.0.12 as soon as
it becomes available.
Thoughts?
We could either do this, investigate the Meson build, or just use the
more modern "pkgconf".
Ok, let's leave it as it is, maybe add a comment somewhere that
'pkgconf' is needed for CFLAGS.private.

Michael



reply via email to

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