bd0bb8b8f6
Since the bump to 1.5.3, the behavior of pkg-config has slightly changed. Like it used to behave before this bump, a few paths (libdir, includedir, etc.) are prefixed by the sysroot, and other paths are not. However, the behavior changes when a path, such as dridriverdir, is defined in terms of ${libdir}. With the older pkg-config, dridriverdir was not sysroot-prefixed. With the new pkg-config, it will be sysroot-prefixed, because pkg-config really resolved the value of libdir, which is sysroot-prefixed. dridriverdir is used on the target and not at build time, so we don't want it to be sysroot-prefixed. As reported by #11591, the xerver fail to load dri modules (r600_dri.so): >From Xorg.0.log: (EE) AIGLX error: dlopen of /full/path/to/sysroot/usr/lib/dri/r600_dri.so failed (/full/path/to/sysroot/usr/lib/dri/r600_dri.so: cannot open shared object file: No such file or directory) (II) GLX: no usable GL providers found for screen 0 That's because the xserver hardcode the dri divers directory path in DRI_DRIVER_PATH which come from dridriverdir=`$PKG_CONFIG --variable=dridriverdir dri` We can see in dri.pc that dridriverdir use libdir which is now prefixed by the sysroot by pkgconf 1.5.3: prefix=/usr exec_prefix=/usr libdir=${exec_prefix}/lib includedir=${prefix}/include dridriverdir=${libdir}/dri Since we can't rely on pkgconf anymore, use --with-dri-driverdir="/usr/lib/dri" to use explicitly "/usr/lib/dri" instead of relying on dri.pc. Tested using TestGlxinfo test from: http://patchwork.ozlabs.org/patch/1021669/ Fixes: https://bugs.buildroot.org/show_bug.cgi?id=11591 Signed-off-by: Romain Naour <romain.naour@gmail.com> Cc: Bernd Kuhls <bernd.kuhls@t-online.de> [Thomas: drop double quotes in path, rework commit log] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> |
||
---|---|---|
arch | ||
board | ||
boot | ||
configs | ||
docs | ||
fs | ||
linux | ||
package | ||
support | ||
system | ||
toolchain | ||
utils | ||
.defconfig | ||
.flake8 | ||
.gitignore | ||
.gitlab-ci.yml | ||
.gitlab-ci.yml.in | ||
CHANGES | ||
Config.in | ||
Config.in.legacy | ||
COPYING | ||
DEVELOPERS | ||
Makefile | ||
Makefile.legacy | ||
README |
Buildroot is a simple, efficient and easy-to-use tool to generate embedded Linux systems through cross-compilation. The documentation can be found in docs/manual. You can generate a text document with 'make manual-text' and read output/docs/manual/manual.text. Online documentation can be found at http://buildroot.org/docs.html To build and use the buildroot stuff, do the following: 1) run 'make menuconfig' 2) select the target architecture and the packages you wish to compile 3) run 'make' 4) wait while it compiles 5) find the kernel, bootloader, root filesystem, etc. in output/images You do not need to be root to build or run buildroot. Have fun! Buildroot comes with a basic configuration for a number of boards. Run 'make list-defconfigs' to view the list of provided configurations. Please feed suggestions, bug reports, insults, and bribes back to the buildroot mailing list: buildroot@buildroot.org You can also find us on #buildroot on Freenode IRC. If you would like to contribute patches, please read https://buildroot.org/manual.html#submitting-patches