|
From: | Knut Petersen |
Subject: | GUB mingw pixman 0.40 linking problem |
Date: | Tue, 13 Jul 2021 11:09:09 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.2 |
Hi everybody, My efforts to make GUB fit for the Cairo backend patch came to the following result: Building of LilyPond with the cairo backend code and the old versions of Pixman and Cairo included in Gub works fine. Old Cairo means that pdfs are generated without hyperlinks and without metadata. Building of Lilypond with the cairo backend code and the current stable versions of Pixman 0.40.0 and Cairo 1.16.0 works fine for the linux-x86, darwin-x86 and linux-64 platforms. For the mingw platform building of Pixman 0.40 fails. Pixman 0.30, the minimum version required by Cairo 1.16.0, fails with the same problem, so there is no need to work on anything but the latest stable code. Pixman 0.40 initially failed for all platforms, but adding appropriate LDFLAGS helped for linux.* and darwin-x86. See pixman-new.py. It's also a linker problem with mingw, but this problem proves to be hard for me. I tried many more or less obvious link options and searched google's advice, but I simply was unable to persuade the linker to resolve the PNG symbols that are in the libpng given on the command line. An excerpt from the log of a 'bin/gub mingw::pixman-new' run:libtool: link: i686-mingw32-gcc -mwindows -mms-bitfields -g -O2 -Wall -Wdeclaration-after-statement -Wno-unused-local-typedefs -fno-strict-aliasing -pthread -g -O2 -Wall -Wdeclaration-after-statement -Wno-unused-local-typedefs -fno-strict-aliasing -pthread -o .libs/region-test.exe region-test.o -L/home/gub/gub/target/mingw/root/usr/lib -L/home/gub/gub/target/mingw/root/usr/bin -L/home/gub/gub/target/mingw/root/usr/lib/w32api ./.libs/libutils.a ../pixman/.libs/libpixman-1.dll.a /home/gub/gub/target/mingw/root/usr/lib/libpng12.dll.a -lz -pthread -Wl,-rpath -Wl,/home/gub/gub/target/mingw/root/usr/lib -Wl,-rpath -Wl,'$'ORIGIN/../lib -Wl,-rpath -Wl,/home/gub/gub/target/mingw/root/usr/lib libtool: link: i686-mingw32-gcc -mwindows -mms-bitfields -g -O2 -Wall -Wdeclaration-after-statement -Wno-unused-local-typedefs -fno-strict-aliasing -pthread -g -O2 -Wall -Wdeclaration-after-statement -Wno-unused-local-typedefs -fno-strict-aliasing -pthread -o .libs/region-translate-test.exe region-translate-test.o -L/home/gub/gub/target/mingw/root/usr/lib -L/home/gub/gub/target/mingw/root/usr/bin -L/home/gub/gub/target/mingw/root/usr/lib/w32api ./.libs/libutils.a ../pixman/.libs/libpixman-1.dll.a /home/gub/gub/target/mingw/root/usr/lib/libpng12.dll.a -lz -pthread -Wl,-rpath -Wl,/home/gub/gub/target/mingw/root/usr/lib -Wl,-rpath -Wl,'$'ORIGIN/../lib -Wl,-rpath -Wl,/home/gub/gub/target/mingw/root/usr/lib
./.libs/libutils.a(utils.o): In function `write_png': /home/gub/gub/target/mingw/src/pixman-new-0.40.0/test/utils.c:683: undefined reference to `png_create_write_struct' /home/gub/gub/target/mingw/src/pixman-new-0.40.0/test/utils.c:687: undefined reference to `png_create_info_struct' /home/gub/gub/target/mingw/src/pixman-new-0.40.0/test/utils.c:690: undefined reference to `png_init_io' /home/gub/gub/target/mingw/src/pixman-new-0.40.0/test/utils.c:692: undefined reference to `png_set_IHDR' /home/gub/gub/target/mingw/src/pixman-new-0.40.0/test/utils.c:697: undefined reference to `png_write_info' /.home//gub/.gublibs//target/libutils.amingw(/utils.osrc)/:pixman -newIn- 0.40.0function/ test`/utils.cwrite_png:'699:: /undefinedhome /referencegub /togub /`targetpng_write_image/'mingw //srchome//pixmangub-/gubnew/-target0.40.0//mingwtest//src/utils.cpixman:-new683-:0.40.0 /undefinedtest /utils.creference: 701to : `undefinedpng_create_write_struct 'reference /tohome /`gubpng_write_end/'gub //targethome//mingwgub//srcgub//pixmantarget/-mingwnew/-src0.40.0/pixman/-testnew/-utils.c0.40.0/:test687/:utils.c :undefined706 : referenceundefined toreference `topng_create_info_struct '` png_destroy_write_struct/'home /gub/gub/target/mingw/src/pixman-new-0.40.0/test/utils.c:690: undefined reference to `png_init_io' /home/gub/gub/target/mingw/src/pixman-new-0.40.0/test/utils.c:692: undefined reference to `png_set_IHDR' /home/gub/gub/target/mingw/src/pixman-new-0.40.0/test/utils.c:697: undefined reference to `png_write_info' /home/gub/gub/target/mingw/src/pixman-new-0.40.0/test/utils.c:699: undefined reference to `png_write_image' /home/gub/gub/target/mingw/src/pixman-new-0.40.0/test/utils.c:701: undefined reference to `png_write_end' /home/gub/gub/target/mingw/src/pixman-new-0.40.0/test/utils.c:706: undefined reference to `png_destroy_write_struct' Attached are my modified gub/gub/spec files for the old versions (pixman.py, cairo.py) and spec files for the current versions of pixman and cairo (*new.py). Any idea how to solve the problem is welcome. Thanks in advance! Knut
pixman.py
Description: Text Data
pixman-new.py
Description: Text Data
cairo.py
Description: Text Data
cairo-new.py
Description: Text Data
[Prev in Thread] | Current Thread | [Next in Thread] |