-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
harfbuz 8.4.0 build issues #56
Comments
Hi Shawn,
|
Thanks Rob. The cairo directive is one I added after the error first manifested. Disabling glib and gobject seems to have no effect, although that does not preclude user error. The I'll have a look at the Makefile to see if I can work anything out. |
IIRC, you wouldn't really need to hack the Cmake files.
Then generate the corrected
Of course, all of that needs to be done before you build any other dlls that depend on harfbuzz. I think (untested) I've got that right. |
If that's the case then that would greatly simplify the entire build process. Note the number of references to DLLSUFFIX in build.sh |
I'll test it out (with gmp and mpfr dlls), and update this post when I've got the result. Update: Nah, too good to be true. This is a useful technique for creating an import lib from a dll ... but it's of no assistance if you're wanting to change the name of the dll. Sorry - I should've taken the time to check before I posted. |
Oh well. It was worth looking into regardless. If only there were a patchelf equivalent for PE32 format DLLs. |
I've had no luck with the autotools approach. The same failure occurs without using the So I have circled back to the meson approach. The docker setup modifies the path so the MSYS2 mingw64 bin dir is excluded, so that needs to be added or meson complains about the python version. (@genio - it might be useful to add this back, although it might interfere with other build steps). With the invocation below I can get things to build. (Noting that I hard coded the value of Next is to try to add the DLLSUFFIX in the right places. And maybe reinstate the tests. PATH=/z/msys64/mingw64/bin:${PATH} \
CFLAGS="-O2 -I$OUT/include -mms-bitfields -pthread -Wa,-mbig-obj" \
CXXFLAGS="-pthread -Wa,-mbig-obj" \
LDFLAGS="-L$OUT/lib" \
meson setup \
--prefix=$OUT --buildtype plain \
--wrap-mode=nofallback --default-library=shared \
-Dauto_features=enabled -Dintrospection=disabled -Dicu=disabled \
-Dgdi=enabled -Dgraphite=enabled -Dchafa=disabled \
-Ddirectwrite=enabled -Dtests=disabled -Dfreetype=enabled \
-Dglib=disabled -Dgobject=disabled -Dcairo=disabled \
-Ddocs=disabled \
. \
_build
meson compile -C _build
meson install -C _build
|
The good news is that adding the DLL suffix is quite easy when one knows where to look. For future reference:
The less good news is that we seem to have some weird interactions in the build system with path formatting, possibly related to pkg-config versions (basic msys vs mingw64). Note entries like
I've tried a few options such as ensuring the default pkg-config is at the front of the path, moving the mingw64 version out of the way and so forth but not yet with any success. I'll leave to it sit for a bit and come back to it later. |
Edit: Meson is not the cause. It is due to === It would seem to be an interaction between meson (python) and MSYS2. Meson checks which operating system it is using, which for MSYS2 returns Windows. Given it is on Windows, meson then converts any paths to windows format, with a backslash as the directory separator. These backslashes are not escaped (I assume) before/when the data are converted to json and written to the It should be possible to work around this in the build system in the short term by editing the |
Seems ridiculously wrong to me that meson thinks you're on "windows". I would have thought it would see "msys" - as is reported by Have you checked that the pkg_config path was initially set using forward slashes ? |
It was a pkg-config issue. I've edited the preceding post to note this. |
Code is in commit 7b1e197 |
This was resolved a while ago. |
Upgrading the build system to harfbuz 8.4.0, the latest supported by MSYS2, is hitting the issues below despite cairo being disabled.
Full configure and build logs are attached.
If anyone has ideas then please let me know.
Points to note:
-Wa,-mbig-obj
to the CFLAGS and CXXFLAGS to get past a size issue.Extract from the build log:
harfbuzz-8.4.0.build.log
harfbuzz-8.4.0.configure-help.txt
The text was updated successfully, but these errors were encountered: