Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Installation and Deployment
  4. Configure does not find XCB on Solaris 11.4 (Qt 5.13)
QtWS25 Last Chance

Configure does not find XCB on Solaris 11.4 (Qt 5.13)

Scheduled Pinned Locked Moved Solved Installation and Deployment
4 Posts 2 Posters 548 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • L Offline
    L Offline
    lenticularis
    wrote on last edited by
    #1

    Hi,

    I'm trying to build Qt 5.13 on Solaris 11.4 GA. It actually builds surprisingly well considering it is an unsupported platform, requiring just a few modifications, the only problem is that it seems like configure does not detect XCB properly,, causing the X11 backend to be disabled, which I obviously do not want.

    Here you can see that XCB files appear to be present on the system:

    root@solaris:~# ls /usr/include/xcb
    
    bigreq.h          present.h         sync.h            xcb_event.h       xcbext.h          xprint.h
    
    composite.h       randr.h           xc_misc.h         xcb_ewmh.h        xevie.h           xproto.h
    
    damage.h          record.h          xcb.h             xcb_icccm.h       xf86dri.h         xselinux.h
    
    dpms.h            render.h          xcb_atom.h        xcb_image.h       xfixes.h          xtest.h
    
    dri2.h            res.h             xcb_aux.h         xcb_keysyms.h     xia.h             xv.h
    
    dri3.h            screensaver.h     xcb_bitops.h      xcb_pixel.h       xinerama.h        xvmc.h
    
    ge.h              shape.h           xcb_cursor.h      xcb_renderutil.h  xinput.h
    
    glx.h             shm.h             xcb_errors.h      xcb_util.h        xkb.h
    
    root@solaris:~# ls /usr/lib/libxcb*
    
    /usr/lib/libxcb-composite.a           /usr/lib/libxcb-present.so            /usr/lib/libxcb-xevie.so.0
    
    /usr/lib/libxcb-composite.la          /usr/lib/libxcb-present.so.0          /usr/lib/libxcb-xevie.so.0.0.0
    
    /usr/lib/libxcb-composite.so          /usr/lib/libxcb-present.so.0.0.0      /usr/lib/libxcb-xf86dri.a
    
    /usr/lib/libxcb-composite.so.0        /usr/lib/libxcb-randr.a               /usr/lib/libxcb-xf86dri.la
    
    /usr/lib/libxcb-composite.so.0.0.0    /usr/lib/libxcb-randr.la              /usr/lib/libxcb-xf86dri.so
    
    /usr/lib/libxcb-cursor.so             /usr/lib/libxcb-randr.so              /usr/lib/libxcb-xf86dri.so.0
    
    /usr/lib/libxcb-cursor.so.0           /usr/lib/libxcb-randr.so.0            /usr/lib/libxcb-xf86dri.so.0.0.0
    
    /usr/lib/libxcb-cursor.so.0.0.0       /usr/lib/libxcb-randr.so.0.1.0        /usr/lib/libxcb-xfixes.a
    
    /usr/lib/libxcb-damage.a              /usr/lib/libxcb-record.a              /usr/lib/libxcb-xfixes.la
    
    /usr/lib/libxcb-damage.la             /usr/lib/libxcb-record.la             /usr/lib/libxcb-xfixes.so
    
    /usr/lib/libxcb-damage.so             /usr/lib/libxcb-record.so             /usr/lib/libxcb-xfixes.so.0
    
    /usr/lib/libxcb-damage.so.0           /usr/lib/libxcb-record.so.0           /usr/lib/libxcb-xfixes.so.0.0.0
    
    /usr/lib/libxcb-damage.so.0.0.0       /usr/lib/libxcb-record.so.0.0.0       /usr/lib/libxcb-xinerama.a
    
    /usr/lib/libxcb-dpms.a                /usr/lib/libxcb-render-util.so        /usr/lib/libxcb-xinerama.la
    
    /usr/lib/libxcb-dpms.la               /usr/lib/libxcb-render-util.so.0      /usr/lib/libxcb-xinerama.so
    
    /usr/lib/libxcb-dpms.so               /usr/lib/libxcb-render-util.so.0.0.0  /usr/lib/libxcb-xinerama.so.0
    
    /usr/lib/libxcb-dpms.so.0             /usr/lib/libxcb-render.a              /usr/lib/libxcb-xinerama.so.0.0.0
    
    /usr/lib/libxcb-dpms.so.0.0.0         /usr/lib/libxcb-render.la             /usr/lib/libxcb-xinput.a
    
    /usr/lib/libxcb-dri2.a                /usr/lib/libxcb-render.so             /usr/lib/libxcb-xinput.la
    
    /usr/lib/libxcb-dri2.la               /usr/lib/libxcb-render.so.0           /usr/lib/libxcb-xinput.so
    
    /usr/lib/libxcb-dri2.so               /usr/lib/libxcb-render.so.0.0.0       /usr/lib/libxcb-xinput.so.0
    
    /usr/lib/libxcb-dri2.so.0             /usr/lib/libxcb-res.a                 /usr/lib/libxcb-xinput.so.0.1.0
    
    /usr/lib/libxcb-dri2.so.0.0.0         /usr/lib/libxcb-res.la                /usr/lib/libxcb-xkb.a
    
    /usr/lib/libxcb-dri3.a                /usr/lib/libxcb-res.so                /usr/lib/libxcb-xkb.la
    
    /usr/lib/libxcb-dri3.la               /usr/lib/libxcb-res.so.0              /usr/lib/libxcb-xkb.so
    
    /usr/lib/libxcb-dri3.so               /usr/lib/libxcb-res.so.0.0.0          /usr/lib/libxcb-xkb.so.1
    
    /usr/lib/libxcb-dri3.so.0             /usr/lib/libxcb-screensaver.a         /usr/lib/libxcb-xkb.so.1.0.0
    
    /usr/lib/libxcb-dri3.so.0.0.0         /usr/lib/libxcb-screensaver.la        /usr/lib/libxcb-xprint.so
    
    /usr/lib/libxcb-errors.so             /usr/lib/libxcb-screensaver.so        /usr/lib/libxcb-xprint.so.0
    
    /usr/lib/libxcb-errors.so.0           /usr/lib/libxcb-screensaver.so.0      /usr/lib/libxcb-xprint.so.0.0.0
    
    /usr/lib/libxcb-errors.so.0.0.0       /usr/lib/libxcb-screensaver.so.0.0.0  /usr/lib/libxcb-xtest.a
    
    /usr/lib/libxcb-ewmh.so               /usr/lib/libxcb-shape.a               /usr/lib/libxcb-xtest.la
    
    /usr/lib/libxcb-ewmh.so.2             /usr/lib/libxcb-shape.la              /usr/lib/libxcb-xtest.so
    
    /usr/lib/libxcb-ewmh.so.2.0.0         /usr/lib/libxcb-shape.so              /usr/lib/libxcb-xtest.so.0
    
    /usr/lib/libxcb-glx.a                 /usr/lib/libxcb-shape.so.0            /usr/lib/libxcb-xtest.so.0.0.0
    
    /usr/lib/libxcb-glx.la                /usr/lib/libxcb-shape.so.0.0.0        /usr/lib/libxcb-xv.a
    
    /usr/lib/libxcb-glx.so                /usr/lib/libxcb-shm.a                 /usr/lib/libxcb-xv.la
    
    /usr/lib/libxcb-glx.so.0              /usr/lib/libxcb-shm.la                /usr/lib/libxcb-xv.so
    
    /usr/lib/libxcb-glx.so.0.0.0          /usr/lib/libxcb-shm.so                /usr/lib/libxcb-xv.so.0
    
    /usr/lib/libxcb-icccm.so              /usr/lib/libxcb-shm.so.0              /usr/lib/libxcb-xv.so.0.0.0
    
    /usr/lib/libxcb-icccm.so.4            /usr/lib/libxcb-shm.so.0.0.0          /usr/lib/libxcb-xvmc.a
    
    /usr/lib/libxcb-icccm.so.4.0.0        /usr/lib/libxcb-sync.a                /usr/lib/libxcb-xvmc.la
    
    /usr/lib/libxcb-image.so              /usr/lib/libxcb-sync.la               /usr/lib/libxcb-xvmc.so
    
    /usr/lib/libxcb-image.so.0            /usr/lib/libxcb-sync.so               /usr/lib/libxcb-xvmc.so.0
    
    /usr/lib/libxcb-image.so.0.0.0        /usr/lib/libxcb-sync.so.1             /usr/lib/libxcb-xvmc.so.0.0.0
    
    /usr/lib/libxcb-keysyms.so            /usr/lib/libxcb-sync.so.1.0.0         /usr/lib/libxcb.a
    
    /usr/lib/libxcb-keysyms.so.1          /usr/lib/libxcb-util.so               /usr/lib/libxcb.la
    
    /usr/lib/libxcb-keysyms.so.1.0.0      /usr/lib/libxcb-util.so.1             /usr/lib/libxcb.so
    
    /usr/lib/libxcb-present.a             /usr/lib/libxcb-util.so.1.0.0         /usr/lib/libxcb.so.1
    
    /usr/lib/libxcb-present.la            /usr/lib/libxcb-xevie.so              /usr/lib/libxcb.so.1.1.0
    

    Does anyone know how configure looks up XCB and/or where the problem may be? I never worked with the Qt build system and I wasn't able to find it there. (I suspect pkg-config may play a role in this, since Solaris AFAIK does not provide the .pc files to many packages.)

    1 Reply Last reply
    0
    • L Offline
      L Offline
      lenticularis
      wrote on last edited by lenticularis
      #4

      Ah, it's the linker where the problem is, adding

      -Wl,-rpath-link,/lib/64,-rpath-link,/usr/X11/lib/amd64
      

      to QMAKE_LFLAGS fixes the problem.

      Edit: This problem arose by using a custom GCC compiled to link with /usr/bin/gld (GNU ld) supplied by Oracle. The GNU ld seems like it doesn't look for shared library dependencies in the right folders, so it has to be explicitly told to do so (the folders I specified aren't all that are missing, adding /usr/lib/64 and /usr/lib/amd64 seems to fix even more libraries.)

      1 Reply Last reply
      1
      • SGaistS Offline
        SGaistS Offline
        SGaist
        Lifetime Qt Champion
        wrote on last edited by
        #2

        Hi and welcome to devnet,

        Since Qt 5.12.4, the libxkbcommon development package must be available through the system. I don't see anything related to that package in what you posted.

        Interested in AI ? www.idiap.ch
        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

        L 1 Reply Last reply
        1
        • SGaistS SGaist

          Hi and welcome to devnet,

          Since Qt 5.12.4, the libxkbcommon development package must be available through the system. I don't see anything related to that package in what you posted.

          L Offline
          L Offline
          lenticularis
          wrote on last edited by
          #3

          Thank you for your reply. That's a good point, but in this case this is probably not the problem, since I have libxkbcommon (both headers and libraries)
          and configure detects it.

          I think I spotted something that could be causing the problem: it's the unusual location of 64-bit libraries on modern versions of Solaris, for example the default qmake.conf for solaris-g++-64 includes this line:

          QMAKE_LIBDIR_X11        = /usr/X11/lib/64
          

          while the correct directory is /usr/X11/lib/amd64. I suspect there will be more problems like this.

          Furthermore I noticed that the libxcb* files I showed in the previous post are actually some 32-bit and some 64-bit because of me stupidly installing libxcb both using the package manager and "make install" from source.

          I'll roll back to the original post-installation snapshot to get rid of this crazy library mix and try it again.

          1 Reply Last reply
          0
          • L Offline
            L Offline
            lenticularis
            wrote on last edited by lenticularis
            #4

            Ah, it's the linker where the problem is, adding

            -Wl,-rpath-link,/lib/64,-rpath-link,/usr/X11/lib/amd64
            

            to QMAKE_LFLAGS fixes the problem.

            Edit: This problem arose by using a custom GCC compiled to link with /usr/bin/gld (GNU ld) supplied by Oracle. The GNU ld seems like it doesn't look for shared library dependencies in the right folders, so it has to be explicitly told to do so (the folders I specified aren't all that are missing, adding /usr/lib/64 and /usr/lib/amd64 seems to fix even more libraries.)

            1 Reply Last reply
            1

            • Login

            • Login or register to search.
            • First post
              Last post
            0
            • Categories
            • Recent
            • Tags
            • Popular
            • Users
            • Groups
            • Search
            • Get Qt Extensions
            • Unsolved