x11-libs/libdrm-2.4.18 complied and installed fine, trying to upgrade to 2.4.20 (both Solaris x86 and sparc) gives: make[2]: Entering directory `/sys_tools/var/tmp/portage/x11-libs/libdrm-2.4.20/work/libdrm-2.4.20/libkms' /sys_tools/bin/bash ../libtool --tag=CC --mode=compile i386-pc-solaris2.10-gcc -DHAVE_CONFIG_H -I. -I.. -I/sys_tools/usr/include -Wall -Wextra -Wsign-compare -Werror-implicit-function-declaration -Wpointer-arith -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Wpacked -Wswitch-enum -Wmissing-format-attribute -Wstrict-aliasing=2 -Winit-self -Wunsafe-loop-optimizations -Wdeclaration-after-statement -Wold-style-definition -Wno-missing-field-initializers -Wno-unused-parameter -Wno-attributes -Wno-long-long -Winline -I../include/drm -O2 -pipe -MT linux.lo -MD -MP -MF .deps/linux.Tpo -c -o linux.lo linux.c libtool: compile: i386-pc-solaris2.10-gcc -DHAVE_CONFIG_H -I. -I.. -I/sys_tools/usr/include -Wall -Wextra -Wsign-compare -Werror-implicit-function-declaration -Wpointer-arith -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Wpacked -Wswitch-enum -Wmissing-format-attribute -Wstrict-aliasing=2 -Winit-self -Wunsafe-loop-optimizations -Wdeclaration-after-statement -Wold-style-definition -Wno-missing-field-initializers -Wno-unused-parameter -Wno-attributes -Wno-long-long -Winline -I../include/drm -O2 -pipe -MT linux.lo -MD -MP -MF .deps/linux.Tpo -c linux.c -fPIC -DPIC -o .libs/linux.o linux.c: In function 'linux_name_from_sysfs': linux.c:76: error: implicit declaration of function 'major' linux.c:76: warning: nested extern declaration of 'major' linux.c:77: error: implicit declaration of function 'minor' linux.c:77: warning: nested extern declaration of 'minor' make[2]: *** [linux.lo] Error 1 make[2]: Leaving directory `/sys_tools/var/tmp/portage/x11-libs/libdrm-2.4.20/work/libdrm-2.4.20/libkms' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/sys_tools/var/tmp/portage/x11-libs/libdrm-2.4.20/work/libdrm-2.4.20' make: *** [all] Error 2 * ERROR: x11-libs/libdrm-2.4.20 failed:
This is strange, because the libkms part should be enabled only if USE=kernel_linux But there is another problem compiling it on solaris: radeon_cs_gem.c: In function 'cs_gem_write_reloc': radeon_cs_gem.c:261: error: implicit declaration of function 'atomic_add_uint' radeon_cs_gem.c:261: warning: nested extern declaration of 'atomic_add_uint' radeon_cs_gem.c: In function 'cs_gem_emit': radeon_cs_gem.c:348: error: too many arguments to function 'atomic_dec_uint' radeon_cs_gem.c: In function 'cs_gem_erase': radeon_cs_gem.c:380: error: too many arguments to function 'atomic_dec_uint' radeon_cs_gem.c: In function 'radeon_get_device_id': radeon_cs_gem.c:431: warning: assignment makes integer from pointer without a cast Upstream has a patch: http://cgit.freedesktop.org/mesa/drm/commit/?id=c9065c5963db1b8196d278c47b8da2c33a3c49d1 . It can be removed at libdrm-2.4.21 when it comes into the portage tree.
Created attachment 238555 [details, diff] libdrm-2.4.20-xf86atomic.h.patch
Created attachment 238557 [details, diff] libdrm-2.4.20.ebuild.patch
fixed in 2.4.25, libkms masked on Solaris, thanks