#42 gtk-nodoka-engine: Fix undefined libm references with slibtool.
Merged by mso. Opened by orbea.
orbea/nodoka-theme libm  into  master

Download 42.patch

When building gtk-nodoka-engine with slibtool (https://dev.midipix.org/cross/slibtool) it fails.

rdlibtool --tag=CC --mode=link gcc -g -O2 -module -avoid-version -no-undefined -o libnodoka.la -rpath /usr/local/lib/gtk-2.0/2.10.0/engines nodoka_rc_style.lo nodoka_style.lo nodoka_theme_main.lo support.lo animation.lo nodoka_draw.lo nodoka_draw_classic.lo nodoka_draw_modern.lo nodoka_draw_glossy.lo cairo_support.lo -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lfontconfig -lfreetype
rdlibtool: lconf: {.name="libtool"}.
rdlibtool: fdcwd: {.fdcwd=AT_FDCWD, .realpath="/tmp/nodoka-theme/gtk-nodoka-engine/src/GTKEngine"}.
rdlibtool: lconf: fstatat(AT_FDCWD,".",...) = 0 {.st_dev = 45, .st_ino = 786799}.
rdlibtool: lconf: openat(AT_FDCWD,"libtool",O_RDONLY,0) = -1 [ENOENT].
rdlibtool: lconf: openat(AT_FDCWD,"../",O_DIRECTORY,0) = 3.
rdlibtool: lconf: fstat(3,...) = 0 {.st_dev = 45, .st_ino = 786798}.
rdlibtool: lconf: openat(3,"libtool",O_RDONLY,0) = -1 [ENOENT].
rdlibtool: lconf: openat(3,"../",O_DIRECTORY,0) = 4.
rdlibtool: lconf: fstat(4,...) = 0 {.st_dev = 45, .st_ino = 786786}.
rdlibtool: lconf: openat(4,"libtool",O_RDONLY,0) = 3.
rdlibtool: lconf: found "/tmp/nodoka-theme/gtk-nodoka-engine/libtool".
rdlibtool: link: ln -s /dev/null .libs/libnodoka.a.disabled
rdlibtool: link: gcc .libs/nodoka_rc_style.o .libs/nodoka_style.o .libs/nodoka_theme_main.o .libs/support.o .libs/animation.o .libs/nodoka_draw.o .libs/nodoka_draw_classic.o .libs/nodoka_draw_modern.o .libs/nodoka_draw_glossy.o .libs/cairo_support.o -g -O2 -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lfontconfig -lfreetype -shared -fPIC -Wl,--no-undefined -o .libs/libnodoka.so
/usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: .libs/nodoka_draw_classic.o: in function `nodoka_set_gradient':
/tmp/nodoka-theme/gtk-nodoka-engine/src/GTKEngine/nodoka_draw_classic.c:70: undefined reference to `pow'
/usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: /tmp/nodoka-theme/gtk-nodoka-engine/src/GTKEngine/nodoka_draw_classic.c:72: undefined reference to `pow'
/usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: /tmp/nodoka-theme/gtk-nodoka-engine/src/GTKEngine/nodoka_draw_classic.c:88: undefined reference to `pow'
/usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: /tmp/nodoka-theme/gtk-nodoka-engine/src/GTKEngine/nodoka_draw_classic.c:106: undefined reference to `pow'
/usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: .libs/nodoka_draw_modern.o: in function `nodoka_set_gradient':
/tmp/nodoka-theme/gtk-nodoka-engine/src/GTKEngine/nodoka_draw_modern.c:102: undefined reference to `pow'
/usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: .libs/nodoka_draw_modern.o:/tmp/nodoka-theme/gtk-nodoka-engine/src/GTKEngine/nodoka_draw_modern.c:104: more undefined references to `pow' follow
/usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: .libs/cairo_support.o: in function `rotate_mirror_translate':
/tmp/nodoka-theme/gtk-nodoka-engine/src/GTKEngine/cairo_support.c:107: undefined reference to `sincos'
collect2: error: ld returned 1 exit status
rdlibtool: exec error upon slbt_exec_link_create_library(), line 1446: (see child process error messages).
rdlibtool: < returned to > slbt_exec_link(), line 1868.
make[2]: *** [Makefile:462: libnodoka.la] Error 2
make[2]: Leaving directory '/tmp/nodoka-theme/gtk-nodoka-engine/src/GTKEngine'
make[1]: *** [Makefile:361: install-recursive] Error 1
make[1]: Leaving directory '/tmp/nodoka-theme/gtk-nodoka-engine/src'
make: *** [Makefile:462: install-recursive] Error 1

This is because libnodoka_la_LDFLAGS uses -no-undefined and fails to link -lm which this PR fixes. GNU libtool does not fail because it silently ignores -no-undefined.

Also please see this gentoo issue: https://bugs.gentoo.org/show_bug.cgi?id=778884

Commit d4e38aaa fixes this pull-request

Pull-Request has been merged by mso

Pull-Request has been merged by mso

Metadata