dvdhrm / kmscon

Linux KMS/DRM based virtual Console Emulator
http://www.freedesktop.org/wiki/Software/kmscon
Other
436 stars 81 forks source link

./.libs/libuterm.so: undefined reference to `udev_device_has_tag' #59

Closed mrueg closed 11 years ago

mrueg commented 11 years ago

I'm using udev-171 and receive the following error when I'm trying to compile kmscon-6:

libtool: link: x86_64-pc-linux-gnu-gcc -std=gnu99 -Wall -O0 -march=native -O2 -pipe -Wl,-O1 -o .libs/kmscon external/kmscon-htable.o src/kmscon-conf.o src/kmscon-log.o src/kmscon-pty.o src/kmscon-text.o src/kmscon-kmscon_seat.o src/kmscon-kmscon_conf.o src/kmscon-kmscon_main.o src/kmscon-kmscon_dummy.o src/kmscon-kmscon_terminal.o src/kmscon-kmscon_cdev.o src/kmscon-text_bblit.o src/kmscon-text_bbulk.o src/kmscon-text_gltex.o src/kmscon-static_gl_math.o src/kmscon-static_gl_shader.o src/kmscon-static_shaders.o -pthread -Wl,--as-needed ./.libs/libeloop.so ./.libs/libuterm.so /usr/lib64/libudev.so -lrt -lpciaccess -ldrm -lEGL -lgbm ./.libs/libtext-font.a /var/tmp/portage/x11-terms/kmscon-6/work/kmscon-6/.libs/libtsm.so -lpangoft2-1.0 -lpango-1.0 /usr/lib64/libfontconfig.so -lfreetype -lz -lbz2 -lexpat -lgobject-2.0 -lglib-2.0 -lpthread ./.libs/libtsm.so /usr/lib64/libxkbcommon.so -lfuse -lGLESv2 -pthread ./.libs/libuterm.so: undefined reference to udev_device_has_tag' collect2: ld returned 1 exit status make[2]: *** [kmscon] Error 1 make[2]: Leaving directory/var/tmp/portage/x11-terms/kmscon-6/work/kmscon-6' make[1]: * [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/x11-terms/kmscon-6/work/kmscon-6' make: * [all] Error 2

The following configuration was used:

configure: Build configuration:

           prefix: /usr
      exec-prefix: ${prefix}
           libdir: /usr/lib64
       includedir: ${prefix}/include

Applications and Libraries: kmscon: yes (yes: ) wlterm: no (no: enable-wlterm) uterm: yes (yes: ) tsm: yes (yes: ) eloop: yes (yes: )

Miscellaneous Options: debug: no (no: enable-debug) optimizations: no (no: enable-optimizations) multi-seat: no (no: enable-multi-seat) hotplug: yes (yes: ) pciaccess: yes (yes: ) eloop-dbus: no (no: enable-eloop-dbus)

Video Backends: fbdev: yes (yes: ) dumb drm: yes (yes: ) drm: yes (yes: )

Font Backends: 8x16: yes (yes: ) unifont: no (yes: ) freetype2: yes (yes: ) pango: yes (yes: )

Renderers: bblit: yes (yes: ) bbulk: yes (yes: ) gltex: yes (yes: )

Session Types: dummy: yes (yes: ) terminal: yes (yes: ) cdev: yes (yes: )

dvdhrm commented 11 years ago

udev_device_has_tag() was introduced in udev-172. Why are you using such an old udev version? I think udev-196 is the most recent release. Is there any particular reason why you cannot upgrade? If there is, I can add a replacement for udev_device_has_tag(), but I'd really like to do that only if there is an urgent reason.

Besides, why did you pass --disable-debug and --disable-optimizations to ./configure? I recommend enabling both options.

Thanks for the report! David

mrueg commented 11 years ago

Thank you for your quick reply. My plattform here has Gentoo Linux installed and of course the Gentoo devs plan to stabilize a newer udev version, but there are still some blockers [1]. I could install udev-196, but as that is some critical component I'd like to stay on a stable version.

There is no urgent need to replace that function call, but specifying a minimum udev version e.g. in README would be great.

I passed --disable-{debug,optimizations} to configure because I have set global flags, which would otherwise be overwritten. Here is the downstream bug [2], if you're interested in.

[1] https://bugs.gentoo.org/show_bug.cgi?id=411627

[2] https://bugs.gentoo.org/show_bug.cgi?id=431872

dvdhrm commented 11 years ago

I changed the configure-check to test for udev-172 and later. This should fix your issue. See eba51786439aed9ee5fec6b2128caf41fd0484aa

If there is a reason to support older udev-versions, don't hesitate to ask me to provide a fallback. But I'd really like to avoid supporting that old udev versions.

Thanks David

dvdhrm commented 11 years ago

Regarding your downstream kmscon bug: Everything discussed there should be fixed now. And if anyone wants to get something fixed, just send me an email with a link to the downstream bugtrackers (I haven't got any notification about this gentoo-bug).

And if I still miss it, simply open an bug-report on github.

Thanks for the hints! David