# Buildsheet autogenerated by ravenadm tool -- Do not edit. NAMEBASE= mesa VERSION= 19.0.3 KEYWORDS= graphics VARIANTS= standard SDESC[standard]= Mesa 3D Graphics Library HOMEPAGE= https://www.mesa3d.org/ CONTACT= nobody DOWNLOAD_GROUPS= main SITES[main]= https://mesa.freedesktop.org/archive/ ftp://ftp.freedesktop.org/pub/mesa/ DISTFILE[1]= mesa-19.0.3.tar.xz:main DF_INDEX= 1 SPKGS[standard]= complete libs clover drivers osmesa OPTIONS_AVAILABLE= X86_DRIVERS ARM_DRIVERS OPTIONS_STANDARD= X86_DRIVERS ARM_DRIVERS OPT_ON[aarch64]= ARM_DRIVERS OPT_ON[x86_64]= X86_DRIVERS OPT_ON[i386]= X86_DRIVERS BUILD_DEPENDS= libpthread-stubs:single:standard libclc:single:standard clang:compiler:standard zlib:static:standard libelf:single:standard libvdpau:single:standard libva:single:standard expat:static:standard BUILDRUN_DEPENDS= expat:shared:standard zlib:shared:standard libdrm:single:standard ocl-icd:primary:standard opencl:single:standard B_DEPS[sunos]= libbsd4sol:single:standard EXRUN[clover]= llvm:single:standard zlib:shared:standard libelf:single:standard expat:shared:standard libdrm:single:standard EXRUN[drivers]= llvm:single:standard mesa:libs:standard zlib:shared:standard libelf:single:standard EXRUN[osmesa]= llvm:single:standard mesa:libs:standard zlib:shared:standard USES= bison gettext-tools gmake libtool pkgconfig python:py27,build shebangfix solaris-funcs c++:clover,drivers,osmesa XORG_COMPONENTS= x11 xcb xdamage xext xfixes xshmfence xxf86vm xv xvmc xrandr LICENSE= MIT:libs CUSTOM1:libs CUSTOM2:libs LICENSE_NAME= CUSTOM1:"Kronos License (MIT with modifications)" CUSTOM2:"SGI Free Software License B" LICENSE_FILE= MIT:{{WRKDIR}}/LICENSE_MIT CUSTOM1:{{WRKDIR}}/LICENSE_KHRONOS CUSTOM2:{{WRKDIR}}/LICENSE_SGI LICENSE_AWK= MIT:"^$$" CUSTOM2:"^$$" LICENSE_SOURCE= MIT:{{WRKSRC}}/include/GL/gl.h CUSTOM2:{{WRKSRC}}/src/glx/eval.c LICENSE_SCHEME= multi FPC_EQUIVALENT= graphics/mesa-libs SHEBANG_FILES= src/gallium/*/*/*.py src/gallium/tools/trace/*.py src/gallium/drivers/svga/svgadump/svga_dump.py src/mapi/glapi/gen/*.py src/mapi/mapi_abi.py src/util/xmlpool/gen_xmlpool.py src/mesa/main/get_*.py src/util/format_srgb.py src/amd/*/*.py src/intel/genxml/gen_pack_header.py SHEBANG_OLD_PYTHON= /usr/bin/env[[:space:]]python2 /usr/bin/python2 /bin/env[[:space:]]python SOL_FUNCTIONS= dirfd:src/util/disk_cache.c MUST_CONFIGURE= gnu CONFIGURE_ARGS= --enable-llvm --enable-texture-float --enable-vdpau --enable-va --enable-xvmc --disable-glx-tls --disable-gles1 --disable-libunwind --with-platforms=x11,drm --enable-gallium-osmesa --with-llvm-prefix={{LOCALBASE}} --with-dri-drivers="{{DRI_DRIVERS:tl}}" --with-gallium_drivers="{{GALLIUM_DRIVERS:tl}}" --enable-autotools CONFIGURE_ENV= ax_cv_check_cflags___Wno_initializer_overrides=no INSTALL_TARGET= install-strip INSTALL_REQ_TOOLCHAIN= yes VAR_OPSYS[sunos]= CPPFLAGS=-D__EXTENSIONS__=1 CPPFLAGS=-D_POSIX_PTHREAD_SEMANTICS CFLAGS=-DF_DUPFD_CLOEXEC=F_DUPFD [ARM_DRIVERS].DESCRIPTION= Build drivers for aarch64 architecture [ARM_DRIVERS].MAKEFILE_ON= GALLIUM_DRIVERS+=FREEDRENO GALLIUM_DRIVERS+=VC4 [X86_DRIVERS].DESCRIPTION= Build drivers for i386 and x86_64 architectures [X86_DRIVERS].CONFIGURE_ENABLE_BOTH= opencl opencl-icd [X86_DRIVERS].MAKEFILE_ON= DRI_DRIVERS+=RADEON DRI_DRIVERS+=R200 DRI_DRIVERS+=I915 DRI_DRIVERS+=I965 GALLIUM_DRIVERS+=R300 GALLIUM_DRIVERS+=R600 GALLIUM_DRIVERS+=RADEONSI GALLIUM_DRIVERS+=SVGA post-patch: ${REINPLACE_CMD} -e 's|/etc/|${PREFIX}/etc/|g' \ ${WRKSRC}/src/util/xmlconfig.c post-patch-linux: # memfd_create is too new for linux base ${REINPLACE_CMD} -e '/^noinst_PROGRAMS =/ s|tools/aubinator.(EXEEXT)||' \ ${WRKSRC}/src/intel/Makefile.in post-patch-dragonfly: # shm_open doesn't support SHM_ANON, and no memfd_create syscall ${REINPLACE_CMD} -e '/^noinst_PROGRAMS =/ s|tools/aubinator.(EXEEXT)||' \ ${WRKSRC}/src/intel/Makefile.in post-extract: ${AWK} '/Copyright/,/DEALINGS/' ${WRKSRC}/include/GL/glext.h \ > ${WRKDIR}/LICENSE_KHRONOS post-patch-freebsd: ${REINPLACE_CMD} -e 's|x86_64|amd64|' ${WRKSRC}/configure post-patch-sunos: ${REINPLACE_CMD}\ -e '/^CFLAGS =/ s|$$| -I$$(prefix)/include/bsd|' \ -e '/^LDFLAGS =/ s|$$| -lbsd|' \ ${WRKSRC}/src/egl/Makefile.in \ ${WRKSRC}/src/gallium/drivers/r600/Makefile.in \ ${WRKSRC}/src/gallium/drivers/radeonsi/Makefile.in \ ${WRKSRC}/src/gallium/auxiliary/Makefile.in \ ${WRKSRC}/src/loader/Makefile.in [FILE:808:descriptions/desc.libs] The Mesa project began as an open-source implementation of the OpenGL specification - a system for rendering interactive 3D graphics. Over the years the project has grown to implement more graphics APIs, including OpenGL ES (versions 1, 2, 3), OpenCL, OpenMAX, VDPAU, VA API, XvMC and Vulkan. A variety of device drivers allows the Mesa libraries to be used in many different environments ranging from software emulation to complete hardware acceleration for modern GPUs. Mesa ties into several other open-source projects: the Direct Rendering Infrastructure and X.org to provide OpenGL support on Linux, FreeBSD and other operating systems. This package contains the Mesa OpenGL libraries for GLX and EGL clients. These include libEGL, libGL, and libglesv2 as well as utlity libraries libglapi and gbm. [FILE:130:descriptions/desc.clover] This package contains Mesa's libOpenCL implementation "Clover". It is built upon GALLIUM and currently only supports Radeon GPUs. [FILE:162:descriptions/desc.drivers] This package contains the Mesa OpenGL libraries for GLX and EGL clients. These include libEGL, libGL, and libglesv2 as well as utlity libraries libglapi and gbm. [FILE:591:descriptions/desc.osmesa] Mesa is a 3-D graphics library with an API which is very similar to that of OpenGL*. To the extent that Mesa utilizes the OpenGL command syntax or state machine, it is being used with authorization from Silicon Graphics, Inc. However, the author makes no claim that Mesa is in any way a compatible replacement for OpenGL or associated with Silicon Graphics, Inc. This is a Off-Screen version of Mesa in order to do off-screen rendering in other packages like VTK. Offscreen rendering is useful for a number of things, such as batch processing, parallel processing, and remote processing. [FILE:97:distinfo] f027244e38dc309a4c12db45ef79be81ab62c797a50a88d566e4edb6159fc4d5 11963844 mesa-19.0.3.tar.xz [FILE:582:manifests/plist.libs] include/gbm.h include/EGL/ egl.h eglext.h eglextchromium.h eglmesaext.h eglplatform.h include/GL/ gl.h gl_mangle.h glcorearb.h glext.h glx.h glx_mangle.h glxext.h include/GLES2/ gl2.h gl2ext.h gl2platform.h include/GLES3/ gl3.h gl31.h gl32.h gl3ext.h gl3platform.h include/KHR/khrplatform.h lib/ libEGL.so libEGL.so.1 libEGL.so.1.0.0 libGL.so libGL.so.1 libGL.so.1.2.0 libGLESv2.so libGLESv2.so.2 libGLESv2.so.2.0.0 libgbm.so libgbm.so.1 libgbm.so.1.0.0 libglapi.so libglapi.so.0 libglapi.so.0.0.0 lib/pkgconfig/ egl.pc gbm.pc gl.pc glesv2.pc [FILE:245:manifests/plist.clover] %%X86_DRIVERS-ON%%etc/OpenCL/vendors/mesa.icd %%X86_DRIVERS-ON%%lib/ libMesaOpenCL.so libMesaOpenCL.so.1 libMesaOpenCL.so.1.0.0 %%X86_DRIVERS-ON%%lib/gallium-pipe/ pipe_r300.so pipe_r600.so pipe_radeonsi.so pipe_swrast.so pipe_vmwgfx.so [FILE:777:manifests/plist.drivers] %%ARM_DRIVERS-ON%%lib/dri/ kgsl_dri.so msm_dri.so vc4_dri.so %%X86_DRIVERS-ON%%lib/ libXvMCr600.so libXvMCr600.so.1 libXvMCr600.so.1.0 libXvMCr600.so.1.0.0 %%X86_DRIVERS-ON%%lib/dri/ i915_dri.so i965_dri.so r200_dri.so r300_dri.so r600_dri.so r600_drv_video.so radeon_dri.so radeonsi_dri.so radeonsi_drv_video.so vmwgfx_dri.so %%X86_DRIVERS-ON%%lib/vdpau/ libvdpau_r300.so libvdpau_r300.so.1 libvdpau_r300.so.1.0 libvdpau_r300.so.1.0.0 libvdpau_r600.so libvdpau_r600.so.1 libvdpau_r600.so.1.0 libvdpau_r600.so.1.0.0 libvdpau_radeonsi.so libvdpau_radeonsi.so.1 libvdpau_radeonsi.so.1.0 libvdpau_radeonsi.so.1.0.0 include/GL/internal/dri_interface.h lib/dri/ kms_swrast_dri.so swrast_dri.so lib/pkgconfig/dri.pc share/drirc.d/00-mesa-defaults.conf [FILE:99:manifests/plist.osmesa] include/GL/osmesa.h lib/ libOSMesa.so libOSMesa.so.8 libOSMesa.so.8.0.0 lib/pkgconfig/osmesa.pc [FILE:2143:patches/patch-configure] --- configure.orig 2019-04-24 17:40:15 UTC +++ configure @@ -22237,7 +22237,7 @@ LDFLAGS=$save_LDFLAGS case "$host_os" in -openbsd* | darwin* ) +openbsd* | darwin* | solaris* ) LD_NO_UNDEFINED="" ;; *) if test "x$enable_sanitize" = xno; then @@ -22305,7 +22305,7 @@ fi case "$host_os" in -darwin*) +darwin*|solaris*) LD_BUILD_ID="" ;; *) @@ -24260,7 +24260,7 @@ fi case "$host_os" in -linux*) +linux* | freebsd* | dragonfly*) dri3_default=yes ;; *) @@ -28714,9 +28714,6 @@ rm -f core conftest.err conftest.$ac_obj CLANG_LIBDIR=${LLVM_LIBDIR} fi CLANG_RESOURCE_DIR=$CLANG_LIBDIR/clang/${LLVM_VERSION} - if test ! -f "$CLANG_RESOURCE_DIR/include/stddef.h"; then : - as_fn_error $? "Could not find clang internal header stddef.h in $CLANG_RESOURCE_DIR Use --with-clang-libdir to specify the correct path to the clang libraries." "$LINENO" 5 -fi fi if test "x$enable_opencl" = xyes; then HAVE_CLOVER_TRUE= @@ -30044,7 +30041,7 @@ if test "x$enable_llvm" = xyes; then LLVM_CXXFLAGS="$CXX11_CXXFLAGS $LLVM_CXXFLAGS" - if test $LLVM_VERSION_MAJOR -ge 4 -o $LLVM_VERSION_MAJOR -eq 3 -a $LLVM_VERSION_MINOR -ge 9; then + if false $LLVM_VERSION_MAJOR -ge 4 -o $LLVM_VERSION_MAJOR -eq 3 -a $LLVM_VERSION_MINOR -ge 9; then if test "x$enable_llvm_shared_libs" = xyes; then LLVM_LIBS="`$LLVM_CONFIG --link-shared --libs ${LLVM_COMPONENTS}`" else @@ -30058,7 +30055,7 @@ if test "x$enable_llvm" = xyes; then else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Building mesa with statically linked LLVM may cause compilation issues" >&5 $as_echo "$as_me: WARNING: Building mesa with statically linked LLVM may cause compilation issues" >&2;} - if test $LLVM_VERSION_MAJOR -ge 4 -o $LLVM_VERSION_MAJOR -eq 3 -a $LLVM_VERSION_MINOR -ge 5; then + if false $LLVM_VERSION_MAJOR -ge 4 -o $LLVM_VERSION_MAJOR -eq 3 -a $LLVM_VERSION_MINOR -ge 5; then LLVM_LIBS="$LLVM_LIBS `$LLVM_CONFIG --system-libs`" fi fi [FILE:512:patches/patch-include_GL_internal_dri__interface.h] GCC on 9.x doesn't allow types to be overwritten, these types are defined in drm.h also, which causes build issues in xorg-server. --- include/GL/internal/dri_interface.h.orig 2019-04-24 17:40:00 UTC +++ include/GL/internal/dri_interface.h @@ -40,13 +40,7 @@ #ifndef DRI_INTERFACE_H #define DRI_INTERFACE_H -#ifdef HAVE_LIBDRM #include -#else -typedef unsigned int drm_context_t; -typedef unsigned int drm_drawable_t; -typedef struct drm_clip_rect drm_clip_rect_t; -#endif #include [FILE:629:patches/patch-src_amd_common_ac__debug.c] --- src/amd/common/ac_debug.c.orig 2019-04-24 17:40:00 UTC +++ src/amd/common/ac_debug.c @@ -562,6 +562,10 @@ void ac_parse_ib_chunk(FILE *f, uint32_t unsigned trace_id_count, enum chip_class chip_class, ac_debug_addr_callback addr_callback, void *addr_callback_data) { +#ifdef __sun__ + printf("\nac_parse_ib_chunk: open_memstream unsupported on solaris"); + exit (1); +#else struct ac_ib_parser ib = {}; ib.ib = ib_ptr; ib.num_dw = num_dw; @@ -587,6 +591,7 @@ void ac_parse_ib_chunk(FILE *f, uint32_t printf("\nPacket ends after the end of IB.\n"); exit(1); } +#endif } /** [FILE:321:patches/patch-src_amd_vulkan_winsys_amdgpu_radv__amdgpu__cs.c] - Define ETIME if missing --- src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c.orig 2019-04-24 17:40:00 UTC +++ src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c @@ -35,6 +35,9 @@ #include "radv_amdgpu_bo.h" #include "sid.h" +#ifndef ETIME +#define ETIME ETIMEDOUT +#endif enum { VIRTUAL_BUFFER_HASH_TABLE_SIZE = 1024 [FILE:784:patches/patch-src_compiler_glsl_linker.cpp] --- src/compiler/glsl/linker.cpp.orig 2019-04-24 17:40:00 UTC +++ src/compiler/glsl/linker.cpp @@ -91,6 +91,38 @@ #include "main/enums.h" #include "main/mtypes.h" +#ifdef __sun__ +/* uses libbsd4sol prototypes, so can't be static */ +#include +#include +#include + +size_t +strnlen(const char *s, size_t maxlen) +{ + size_t len; + for (len = 0; len < maxlen; len++, s++) { + if (!*s) break; + } + return (len); +} + +char * +strndup(const char *str, size_t n) +{ + size_t len; + char *copy; + + len = strlen(str); + if (len <= n) + return strdup(str); + if ((copy = (char *)malloc(len + 1)) == NULL) + return (NULL); + memcpy(copy, str, len); + copy[len] = '\0'; + return (copy); +} +#endif namespace { [FILE:586:patches/patch-src_egl_drivers_dri2_platform__x11.c] # work-around for https://bugs.freedesktop.org/show_bug.cgi?id=100627 # --- src/egl/drivers/dri2/platform_x11.c.orig 2019-04-24 17:40:00 UTC +++ src/egl/drivers/dri2/platform_x11.c @@ -1540,6 +1540,9 @@ dri2_initialize_x11(_EGLDriver *drv, _EG if (!disp->Options.ForceSoftware) { #ifdef HAVE_DRI3 +#if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) && !defined(__DRM_NEXT__) + if (env_var_as_boolean("LIBGL_DRI3_ENABLE", false)) +#endif if (!env_var_as_boolean("LIBGL_DRI3_DISABLE", false)) initialized = dri2_initialize_x11_dri3(drv, disp); #endif [FILE:3256:patches/patch-src_gallium_auxiliary_pipe-loader_pipe__loader__drm.c] Revert the following commit. FreeBSD and DragonFly don't have the required render nodes. ------- From 69a1b9959e59653da262185c4e2cf57d24939b19 Mon Sep 17 00:00:00 2001 From: Emil Velikov Date: Mon, 29 Jun 2015 12:36:45 +0100 Subject: pipe-loader: drop support for non-render node devices Render nodes have been around for quite some time. Removing support via the master/primary node allows us to clean up the conditional compilation and simplify the build greatly. For example currently we the pipe-loader, which explicitly links against xcb and friends (for X auth) if found at compile-time. That would cause problems as one will be forced to use X/xcb, even if it's a headless system that is used for opencl. v2: Clarify the linking topic in the commit message. Cc: Tom Stellard Signed-off-by: Emil Velikov Reviewed-by: Francisco Jerez --- src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c.orig 2019-04-24 17:40:00 UTC +++ src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c @@ -228,6 +228,14 @@ pipe_loader_drm_probe_fd(struct pipe_loa } static int +open_drm_minor(int minor) +{ + char path[PATH_MAX]; + snprintf(path, sizeof(path), DRM_DEV_NAME, DRM_DIR_NAME, minor); + return open(path, O_RDWR, 0); +} + +static int open_drm_render_node_minor(int minor) { char path[PATH_MAX]; @@ -239,8 +247,15 @@ open_drm_render_node_minor(int minor) int pipe_loader_drm_probe(struct pipe_loader_device **devs, int ndev) { - int i, j, fd; + int i, k, fd, num_render_node_devs; + int j = 0; + + struct { + unsigned vendor_id; + unsigned chip_id; + } render_node_devs[DRM_RENDER_NODE_MAX_NODES]; + /* Look for render nodes first */ for (i = DRM_RENDER_NODE_MIN_MINOR, j = 0; i <= DRM_RENDER_NODE_MAX_MINOR; i++) { struct pipe_loader_device *dev; @@ -254,6 +269,9 @@ pipe_loader_drm_probe(struct pipe_loader continue; } + render_node_devs[j].vendor_id = dev->u.pci.vendor_id; + render_node_devs[j].chip_id = dev->u.pci.chip_id; + if (j < ndev) { devs[j] = dev; } else { @@ -263,6 +281,46 @@ pipe_loader_drm_probe(struct pipe_loader j++; } + num_render_node_devs = j; + + /* Next look for drm devices. */ + for (i = 0; i < DRM_MAX_MINOR; i++) { + struct pipe_loader_device *dev; + boolean duplicate = FALSE; + fd = open_drm_minor(i); + if (fd < 0) + continue; + + if (!pipe_loader_drm_probe_fd(&dev, fd)) { + close(fd); + continue; + } + + /* Check to make sure we aren't already accessing this device via + * render nodes. + */ + for (k = 0; k < num_render_node_devs; k++) { + if (dev->u.pci.vendor_id == render_node_devs[k].vendor_id && + dev->u.pci.chip_id == render_node_devs[k].chip_id) { + close(fd); + dev->ops->release(&dev); + duplicate = TRUE; + break; + } + } + + if (duplicate) + continue; + + if (j < ndev) { + devs[j] = dev; + } else { + dev->ops->release(&dev); + } + + j++; + } + return j; } [FILE:338:patches/patch-src_gallium_drivers_radeonsi_si__shader.c] --- src/gallium/drivers/radeonsi/si_shader.c.orig 2019-04-24 17:40:00 UTC +++ src/gallium/drivers/radeonsi/si_shader.c @@ -22,6 +22,10 @@ * USE OR OTHER DEALINGS IN THE SOFTWARE. */ +#ifdef __sun__ +#include /* for alloca */ +#endif + #include "util/u_memory.h" #include "util/u_string.h" #include "tgsi/tgsi_build.h" [FILE:511:patches/patch-src_gallium_drivers_radeonsi_si__state__shaders.c] --- src/gallium/drivers/radeonsi/si_state_shaders.c.orig 2019-04-24 17:40:00 UTC +++ src/gallium/drivers/radeonsi/si_state_shaders.c @@ -1715,6 +1715,7 @@ static void si_build_shader_variant(stru return; } +#ifndef __sun__ if (shader->compiler_ctx_state.is_debug_context) { FILE *f = open_memstream(&shader->shader_log, &shader->shader_log_size); @@ -1723,6 +1724,7 @@ static void si_build_shader_variant(stru fclose(f); } } +#endif si_shader_init_pm4_state(sscreen, shader); } [FILE:360:patches/patch-src_gallium_drivers_vc4_vc4__bufmgr.c] # define ETIME as ETIMEOUT same as in intel driver # --- src/gallium/drivers/vc4/vc4_bufmgr.c.orig 2019-04-24 17:40:00 UTC +++ src/gallium/drivers/vc4/vc4_bufmgr.c @@ -27,6 +27,9 @@ #include #include #include +#ifndef ETIME +#define ETIME ETIMEDOUT +#endif #include "util/u_hash_table.h" #include "util/u_memory.h" [FILE:1043:patches/patch-src_gallium_include_pipe_p__config.h] --- src/gallium/include/pipe/p_config.h.orig 2019-04-24 17:40:00 UTC +++ src/gallium/include/pipe/p_config.h @@ -77,6 +77,13 @@ #define PIPE_CC_ICL #endif +#if defined(__sparc__) || defined(__sparc64__) +#define PIPE_ARCH_SPARC +#if defined(__sparc64__) +#define PIPE_ARCH_SPARC_64 +#endif +#endif + /* * Processor architecture @@ -131,7 +138,7 @@ #if defined(PIPE_ARCH_X86) || defined(PIPE_ARCH_X86_64) || defined(PIPE_ARCH_ARM) || defined(PIPE_ARCH_AARCH64) #define PIPE_ARCH_LITTLE_ENDIAN -#elif defined(PIPE_ARCH_PPC) || defined(PIPE_ARCH_PPC_64) || defined(PIPE_ARCH_S390) +#elif defined(PIPE_ARCH_PPC) || defined(PIPE_ARCH_PPC_64) || defined(PIPE_ARCH_S390) || defined(PIPE_ARCH_SPARC) || defined(PIPE_ARCH_SPARC_64) #define PIPE_ARCH_BIG_ENDIAN #endif @@ -160,6 +167,12 @@ #define PIPE_OS_ANDROID #endif +#if defined(__DragonFly__) +#define PIPE_OS_DRAGONFLY +#define PIPE_OS_BSD +#define PIPE_OS_UNIX +#endif + #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) #define PIPE_OS_FREEBSD #define PIPE_OS_BSD [FILE:1604:patches/patch-src_gallium_state__trackers_clover_llvm_invocation.cpp] # fix errors like the following # # llvm/invocation.cpp:(.text+0x1275): undefined reference to `std::__1::basic_string, std::__1::allocator >::c_str() const' # /usr/bin/ld: ../../../../src/gallium/state_trackers/clover/.libs/libclover.a(libclllvm_la-invocation.o): relocation R_X86_64_PC32 against `_ZNKSt3__112bas ic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE5c_strEv' can not be used when making a shared object; recompile with -fPIC # /usr/bin/ld: final link failed: Bad value # --- src/gallium/state_trackers/clover/llvm/invocation.cpp.orig 2019-04-24 17:40:00 UTC +++ src/gallium/state_trackers/clover/llvm/invocation.cpp @@ -181,6 +181,8 @@ namespace { return get_lang_standard_from_version_str(device_version); } + const char* cstr(const std::string& str) { return str.c_str(); } + std::unique_ptr create_compiler_instance(const device &dev, const std::vector &opts, @@ -193,8 +195,8 @@ namespace { // Parse the compiler options. A file name should be present at the end // and must have the .cl extension in order for the CompilerInvocation // class to recognize it as an OpenCL source file. - const std::vector copts = - map(std::mem_fn(&std::string::c_str), opts); + std::vector copts(opts.size()); + std::transform(opts.begin(), opts.end(), copts.begin(), cstr); const target &target = dev.ir_target(); const std::string &device_clc_version = dev.device_clc_version(); [FILE:635:patches/patch-src_gallium_state__trackers_clover_llvm_metadata.hpp] # Fix error: no matching constructor for initialization of 'std::vector' # --- src/gallium/state_trackers/clover/llvm/metadata.hpp.orig 2019-04-24 17:40:00 UTC +++ src/gallium/state_trackers/clover/llvm/metadata.hpp @@ -42,7 +42,7 @@ namespace clover { get_kernel_nodes(const ::llvm::Module &mod) { if (const ::llvm::NamedMDNode *n = mod.getNamedMetadata("opencl.kernels")) - return { n->op_begin(), n->op_end() }; + return { n->getOperand(0), n->getOperand(n->getNumOperands()) }; else return {}; } [FILE:1150:patches/patch-src_gallium_state__trackers_clover_util_range.hpp] From b95533b981af9a6687b41418e7cc2a5652fc2bdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-S=C3=A9bastien=20P=C3=A9dron?= Date: Fri, 7 Mar 2014 15:16:08 +0100 Subject: [PATCH 3/3] Work around for clang 3.4 which fails to build Clover See: https://bugs.freedesktop.org/show_bug.cgi?id=74098#c3 --- src/gallium/state_trackers/clover/util/range.hpp.orig 2019-04-24 17:40:00 UTC +++ src/gallium/state_trackers/clover/util/range.hpp @@ -362,6 +362,12 @@ namespace clover { return { i, i + n }; } + namespace detail { + template + using fixup_function_type = + typename std::conditional::value, T &, T>::type; + } + /// /// Create a range by transforming the contents of a number of /// source ranges \a rs element-wise using a provided functor \a f. @@ -369,7 +375,7 @@ namespace clover { /// \sa adaptor_range. /// template - adaptor_range + adaptor_range, Rs...> map(F &&f, Rs &&... rs) { return { std::forward(f), std::forward(rs)... }; } [FILE:310:patches/patch-src_gallium_winsys_amdgpu_drm_amdgpu__cs.c] --- src/gallium/winsys/amdgpu/drm/amdgpu_cs.c.orig 2019-04-24 17:40:00 UTC +++ src/gallium/winsys/amdgpu/drm/amdgpu_cs.c @@ -41,6 +41,10 @@ #define AMDGPU_CHUNK_ID_BO_HANDLES 0x06 #endif +#ifdef __sun__ +#include +#endif + DEBUG_GET_ONCE_BOOL_OPTION(noop, "RADEON_NOOP", false) /* FENCES */ [FILE:575:patches/patch-src_glx_glxext.c] # work-around for https://bugs.freedesktop.org/show_bug.cgi?id=100627 # --- src/glx/glxext.c.orig 2019-04-24 17:40:00 UTC +++ src/glx/glxext.c @@ -923,6 +923,9 @@ __glXInitialize(Display * dpy) #if defined(GLX_USE_DRM) if (glx_direct && glx_accel) { #if defined(HAVE_DRI3) +#if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) && !defined(__DRM_NEXT__) + if (env_var_as_boolean("LIBGL_DRI3_ENABLE", false)) +#endif if (!env_var_as_boolean("LIBGL_DRI3_DISABLE", false)) dpyPriv->dri3Display = dri3_create_display(dpy); #endif /* HAVE_DRI3 */ [FILE:686:patches/patch-src_intel_Makefile.in] ../../src/util/.libs/libmesautil.a(libmesautil_la-half_float.o): In function `_mesa_float_to_half': half_float.c:(.text+0x94): undefined reference to `lrintf' half_float.c:(.text+0xbf): undefined reference to `lrintf' cc: error: linker command failed with exit code 1 (use -v to see invocation) gmake[5]: *** [Makefile:2706: tools/aubinator_error_decode] Error 1 --- src/intel/Makefile.in.orig 2019-04-24 17:40:21 UTC +++ src/intel/Makefile.in @@ -2483,7 +2483,8 @@ tools_aubinator_error_decode_LDADD = \ isl/libisl.la \ $(top_builddir)/src/util/libmesautil.la \ $(PTHREAD_LIBS) \ - $(ZLIB_LIBS) + $(ZLIB_LIBS) \ + -lm tools_aubinator_error_decode_CFLAGS = \ $(AM_CFLAGS) \ [FILE:995:patches/patch-src_intel_compiler_brw__eu__validate.c] --- src/intel/compiler/brw_eu_validate.c.orig 2019-04-24 17:40:00 UTC +++ src/intel/compiler/brw_eu_validate.c @@ -40,6 +40,39 @@ #include "brw_eu.h" +#ifdef __sun__ +#include + +static void * +memmem(const void *l, size_t l_len, const void *s, size_t s_len) +{ + char *cur, *last; + const char *cl = (const char *)l; + const char *cs = (const char *)s; + + /* we need something to compare */ + if (l_len == 0 || s_len == 0) + return NULL; + + /* "s" must be smaller or equal to "l" */ + if (l_len < s_len) + return NULL; + + /* special case where s_len == 1 */ + if (s_len == 1) + return memchr(l, (int)*cs, l_len); + + /* the last position where its possible to find "s" in "l" */ + last = (char *)cl + l_len - s_len; + + for (cur = (char *)cl; cur <= last; cur++) + if (cur[0] == cs[0] && memcmp(cur, cs, s_len) == 0) + return cur; + + return NULL; +} +#endif + /* We're going to do lots of string concatenation, so this should help. */ struct string { char *str; [FILE:954:patches/patch-src_intel_compiler_brw__fs__bank__conflicts.cpp] --- src/intel/compiler/brw_fs_bank_conflicts.cpp.orig 2019-04-24 17:40:00 UTC +++ src/intel/compiler/brw_fs_bank_conflicts.cpp @@ -309,8 +309,13 @@ namespace { const unsigned align = MAX2(sizeof(void *), __alignof__(vector_type)); const unsigned size = DIV_ROUND_UP(n, vector_width) * sizeof(vector_type); void *p; +#ifdef __sun + p = memalign(align, size); + if (p == NULL) return NULL; +#else if (posix_memalign(&p, align, size)) return NULL; +#endif memset(p, 0, size); return reinterpret_cast(p); } @@ -728,7 +733,7 @@ namespace { const weight_vector_type &conflicts) { const unsigned m = DIV_ROUND_UP(conflicts.size, vector_width); - vector_type s_p = {}, s_n = {}; + vector_type s_p = {0}, s_n = {0}; for (unsigned r = 0; r < m; r++) { s_p = adds(s_p, mask(bank_mask_p.v[r], conflicts.v[r])); [FILE:225:patches/patch-src_intel_isl_isl.h] --- src/intel/isl/isl.h.orig 2019-04-24 17:40:00 UTC +++ src/intel/isl/isl.h @@ -46,6 +46,9 @@ #include "util/macros.h" #ifdef __cplusplus +# ifdef __sun__ +# define restrict __restrict__ +# endif extern "C" { #endif [FILE:973:patches/patch-src_intel_tools_aub__mem.c] - Partially implement memfd_create() via mkostemp() --- src/intel/tools/aub_mem.c.orig 2019-04-24 17:40:00 UTC +++ src/intel/tools/aub_mem.c @@ -30,11 +30,34 @@ #ifndef HAVE_MEMFD_CREATE #include +#include static inline int memfd_create(const char *name, unsigned int flags) { +#if defined(__linux__) return syscall(SYS_memfd_create, name, flags); +#elif defined(__FreeBSD__) + return shm_open(SHM_ANON, flags | O_RDWR | O_CREAT, 0600); +#else /* DragonFly, NetBSD, OpenBSD, Solaris */ + char template[] = "/tmp/shmfd-XXXXXX"; +#ifdef HAVE_MKOSTEMP + int fd = mkostemp(template, flags); +#else + int fd = mkstemp(template); + if (flags & O_CLOEXEC) { + int flags = fcntl(fd, F_GETFD); + if (flags != -1) { + flags |= FD_CLOEXEC; + (void) fcntl(fd, F_SETFD, &flags); + } + } +#endif /* HAVE_MKOSTEMP */ + if (fd >= 0) + unlink(template); + + return fd; +#endif /* __linux__ */ } #endif [FILE:302:patches/patch-src_intel_tools_aubinator__error__decode.c] # expose getline in FreeBSD's stdio.h # --- src/intel/tools/aubinator_error_decode.c.orig 2019-04-24 17:40:00 UTC +++ src/intel/tools/aubinator_error_decode.c @@ -22,6 +22,9 @@ * */ +#ifdef __FreeBSD__ +#define _WITH_GETLINE +#endif #include #include #include [FILE:238:patches/patch-src_intel_tools_error2aub.c] --- src/intel/tools/error2aub.c.orig 2019-04-24 17:40:00 UTC +++ src/intel/tools/error2aub.c @@ -22,6 +22,9 @@ * */ +#ifdef __FreeBSD__ +#define _WITH_GETLINE +#endif #include #include #include [FILE:1069:patches/patch-src_intel_vulkan_anv__device.c] - Without sysinfo() fall back to sysconf() - Define ETIME if missing --- src/intel/vulkan/anv_device.c.orig 2019-04-24 17:40:00 UTC +++ src/intel/vulkan/anv_device.c @@ -25,7 +25,9 @@ #include #include #include +#ifdef __GLIBC__ #include +#endif #include #include #include @@ -44,6 +46,10 @@ #include "genxml/gen7_pack.h" +#ifndef ETIME +#define ETIME ETIMEDOUT +#endif + static void compiler_debug_log(void *data, const char *fmt, ...) { } @@ -64,10 +70,15 @@ static uint64_t anv_compute_heap_size(int fd, uint64_t gtt_size) { /* Query the total ram from the system */ +#ifdef __GLIBC__ struct sysinfo info; sysinfo(&info); uint64_t total_ram = (uint64_t)info.totalram * (uint64_t)info.mem_unit; +#else + uint64_t total_ram = sysconf(_SC_PHYS_PAGES) * sysconf(_SC_PAGE_SIZE); +#endif + /* We don't want to burn too much ram with the GPU. If the user has 4GiB * or less, we use at most half. If they have more than 4GiB, we use 3/4. [FILE:619:patches/patch-src_mapi_glapi_gen_gl__gentable.py] --- src/mapi/glapi/gen/gl_gentable.py.orig 2019-04-24 17:40:00 UTC +++ src/mapi/glapi/gen/gl_gentable.py @@ -45,7 +45,7 @@ header = """/* GLXEXT is the define used #endif #if (defined(GLXEXT) && defined(HAVE_BACKTRACE)) \\ - || (!defined(GLXEXT) && defined(DEBUG) && !defined(__CYGWIN__) && !defined(__MINGW32__) && !defined(__OpenBSD__) && !defined(__NetBSD__) && !defined(__DragonFly__)) + || (!defined(GLXEXT) && defined(DEBUG) && !defined(__CYGWIN__) && !defined(__MINGW32__) && !defined(__OpenBSD__) && !defined(__NetBSD__) && !defined(__FreeBSD__) && !defined(__DragonFly__)) #define USE_BACKTRACE #endif [FILE:944:patches/patch-src_mesa_drivers_dri_i965_brw__bufmgr.c] --- src/mesa/drivers/dri/i965/brw_bufmgr.c.orig 2019-04-24 17:40:00 UTC +++ src/mesa/drivers/dri/i965/brw_bufmgr.c @@ -77,6 +77,10 @@ #define VG(x) #endif +#ifndef O_CLOEXEC +#define O_CLOEXEC 0 +#endif + /* VALGRIND_FREELIKE_BLOCK unfortunately does not actually undo the earlier * VALGRIND_MALLOCLIKE_BLOCK but instead leaves vg convinced the memory is * leaked. All because it does not call VG(cli_free) from its @@ -1721,8 +1725,12 @@ brw_bufmgr_init(struct gen_device_info * bufmgr->initial_kflags |= EXEC_OBJECT_SUPPORTS_48B_ADDRESS; /* Allocate VMA in userspace if we have softpin and full PPGTT. */ +#ifdef __DragonFly__ + if (false) { +#else if (gem_param(fd, I915_PARAM_HAS_EXEC_SOFTPIN) > 0 && gem_param(fd, I915_PARAM_HAS_ALIASING_PPGTT) > 1) { +#endif bufmgr->initial_kflags |= EXEC_OBJECT_PINNED; util_vma_heap_init(&bufmgr->vma_allocator[BRW_MEMZONE_LOW_4G], [FILE:714:patches/patch-src_mesa_drivers_dri_i965_brw__disk__cache.c] --- src/mesa/drivers/dri/i965/brw_disk_cache.c.orig 2019-04-24 17:40:00 UTC +++ src/mesa/drivers/dri/i965/brw_disk_cache.c @@ -380,6 +380,7 @@ brw_disk_cache_init(struct intel_screen if (INTEL_DEBUG & DEBUG_DISK_CACHE_DISABLE_MASK) return; +# ifdef HAVE_DL_ITERATE_PHDR /* array length: print length + null char + 1 extra to verify it is unused */ char renderer[11]; MAYBE_UNUSED int len = snprintf(renderer, sizeof(renderer), "i965_%04x", @@ -399,5 +400,6 @@ brw_disk_cache_init(struct intel_screen const uint64_t driver_flags = brw_get_compiler_config_value(screen->compiler); screen->disk_cache = disk_cache_create(renderer, timestamp, driver_flags); +# endif #endif } [FILE:1350:patches/patch-src_mesa_drivers_dri_i965_brw__performance__query.c] --- src/mesa/drivers/dri/i965/brw_performance_query.c.orig 2019-04-24 17:40:00 UTC +++ src/mesa/drivers/dri/i965/brw_performance_query.c @@ -1813,9 +1813,17 @@ enumerate_sysfs_metrics(struct brw_conte while ((metric_entry = readdir(metricsdir))) { struct hash_entry *entry; +#ifdef __sun__ + struct stat entry_stat; + + lstat(metric_entry->d_name, &entry_stat); + if ((!S_ISDIR(entry_stat.st_mode) && !S_ISLNK(entry_stat.st_mode)) || + metric_entry->d_name[0] == '.') +#else if ((metric_entry->d_type != DT_DIR && metric_entry->d_type != DT_LNK) || metric_entry->d_name[0] == '.') +#endif continue; DBG("metric set: %s\n", metric_entry->d_name); @@ -2087,9 +2095,17 @@ get_sysfs_dev_dir(struct brw_context *br } while ((drm_entry = readdir(drmdir))) { +#ifdef __sun__ + struct stat drm_stat; + + lstat(drm_entry->d_name, &drm_stat); + if ((S_ISDIR(drm_stat.st_mode) || S_ISLNK(drm_stat.st_mode)) && + strncmp(drm_entry->d_name, "card", 4) == 0) +#else if ((drm_entry->d_type == DT_DIR || drm_entry->d_type == DT_LNK) && strncmp(drm_entry->d_name, "card", 4) == 0) +#endif { len = snprintf(brw->perfquery.sysfs_dev_dir, sizeof(brw->perfquery.sysfs_dev_dir), [FILE:851:patches/patch-src_mesa_drivers_dri_i965_brw__program__binary.c] --- src/mesa/drivers/dri/i965/brw_program_binary.c.orig 2019-04-24 17:40:00 UTC +++ src/mesa/drivers/dri/i965/brw_program_binary.c @@ -36,9 +36,11 @@ static uint8_t driver_sha1[20]; void brw_program_binary_init(unsigned device_id) { +#ifdef HAVE_DL_ITERATE_PHDR const struct build_id_note *note = build_id_find_nhdr_for_addr(brw_program_binary_init); assert(note); +#endif /** * With Mesa's megadrivers, taking the sha1 of i965_dri.so may not be @@ -52,7 +54,9 @@ brw_program_binary_init(unsigned device_ int len = snprintf(renderer, sizeof(renderer), "i965_%04x", device_id); assert(len == sizeof(renderer) - 1); _mesa_sha1_update(&ctx, renderer, len); +#ifdef HAVE_DL_ITERATE_PHDR _mesa_sha1_update(&ctx, build_id_data(note), build_id_length(note)); +#endif _mesa_sha1_final(&ctx, driver_sha1); } [FILE:406:patches/patch-src_mesa_main_compiler.h] --- src/mesa/main/compiler.h.orig 2019-04-24 17:40:00 UTC +++ src/mesa/main/compiler.h @@ -51,6 +51,9 @@ #if defined(__linux__) #include #define CPU_TO_LE32( x ) bswap_32( x ) +#elif defined(__FreeBSD__) +#include +#define CPU_TO_LE32( x ) bswap32( x ) #elif defined(__APPLE__) #include #define CPU_TO_LE32( x ) CFSwapInt32HostToLittle( x ) [FILE:328:patches/patch-src_util_build__id.c] # Elf_ doesn't exist, use Elf32_ or Elf64_ # --- src/util/build_id.c.orig 2019-04-24 17:40:00 UTC +++ src/util/build_id.c @@ -35,7 +35,11 @@ #endif #ifndef ElfW -#define ElfW(type) Elf_##type +#ifdef __LP64__ +#define ElfW(type) Elf64_##type +#else +#define ElfW(type) Elf32_##type +#endif #endif struct build_id_note { [FILE:282:patches/patch-src_util_disk__cache.c] --- src/util/disk_cache.c.orig 2019-04-24 17:40:00 UTC +++ src/util/disk_cache.c @@ -51,6 +51,10 @@ #include "disk_cache.h" +#ifndef O_CLOEXEC +#define O_CLOEXEC 0 +#endif + /* Number of bits to mask off from a cache key to get an index. */ #define CACHE_INDEX_KEY_BITS 16 [FILE:1462:patches/patch-src_util_futex.h] - Implement futex_wake() and futex_wait() via _umtx_op() --- src/util/futex.h.orig 2019-04-24 17:40:00 UTC +++ src/util/futex.h @@ -29,10 +29,35 @@ #include #include #include +#if defined(__FreeBSD__) +#include +# if __FreeBSD__ < 11 +# include +# endif +#include +#else #include #include +#endif #include +#if defined(__FreeBSD__) +static inline int futex_wake(uint32_t *addr, int count) +{ + return _umtx_op(addr, UMTX_OP_WAKE, (uint32_t)count, NULL, NULL) == -1 ? errno : 0; +} + +static inline int futex_wait(uint32_t *addr, int32_t value, struct timespec *timeout) +{ + void *uaddr = NULL, *uaddr2 = NULL; + if (timeout != NULL) { + const struct _umtx_time tmo = { ._timeout = *timeout, ._flags = UMTX_ABSTIME, ._clockid = CLOCK_MONOTONIC }; + uaddr = (void *)(uintptr_t)sizeof(tmo); + uaddr2 = (void *)&tmo; + } + return _umtx_op(addr, UMTX_OP_WAIT_UINT, (uint32_t)value, uaddr, uaddr2) == -1 ? errno : 0; +} +#else static inline long sys_futex(void *addr1, int op, int val1, const struct timespec *timeout, void *addr2, int val3) { return syscall(SYS_futex, addr1, op, val1, timeout, addr2, val3); @@ -50,6 +75,7 @@ static inline int futex_wait(uint32_t *a return sys_futex(addr, FUTEX_WAIT_BITSET, value, timeout, NULL, FUTEX_BITSET_MATCH_ANY); } +#endif #endif [FILE:360:patches/patch-src_util_os__time.c] - Use monotonic clock for timeouts --- src/util/os_time.c.orig 2019-04-24 17:40:00 UTC +++ src/util/os_time.c @@ -95,7 +95,7 @@ os_time_get_nano(void) void os_time_sleep(int64_t usecs) { -#if defined(PIPE_OS_LINUX) +#if defined(HAVE_CLOCK_NANOSLEEP) struct timespec time; time.tv_sec = usecs / 1000000; time.tv_nsec = (usecs % 1000000) * 1000; [FILE:430:patches/patch-src_util_u__atomic.h] --- src/util/u_atomic.h.orig 2019-04-24 17:40:00 UTC +++ src/util/u_atomic.h @@ -20,11 +20,7 @@ * locally coded assembly, compiler intrinsic or ultimately a * mutex-based implementation. */ -#if defined(__sun) -#define PIPE_ATOMIC_OS_SOLARIS -#elif defined(_MSC_VER) -#define PIPE_ATOMIC_MSVC_INTRINSIC -#elif defined(__GNUC__) +#if defined(__GNUC__) #define PIPE_ATOMIC_GCC_INTRINSIC #else #error "Unsupported platform" [FILE:1289:patches/patch-src_util_u__thread.h] - Implement setting thread name - Use monotonic clock for timeouts --- src/util/u_thread.h.orig 2019-04-24 17:40:00 UTC +++ src/util/u_thread.h @@ -34,6 +34,13 @@ #ifdef HAVE_PTHREAD #include +#if defined(__DragonFly__) || defined(__FreeBSD__) || defined(__OpenBSD__) +#include +# ifndef __DragonFly__ +# define cpu_set_t cpuset_t +# endif +#undef ALIGN /* Avoid conflict on FreeBSD in main/macros.h */ +#endif #endif static inline thrd_t u_thread_create(int (*routine)(void *), void *param) @@ -64,6 +71,12 @@ static inline void u_thread_setname( con (__GLIBC__ >= 3 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 12)) && \ defined(__linux__) pthread_setname_np(pthread_self(), name); +# elif defined(__sun) + (void)name; +# elif defined(__DragonFly__) || defined(__FreeBSD__) || defined(__OpenBSD__) + pthread_set_name_np(pthread_self(), name); +# elif defined(__NetBSD__) + pthread_setname_np(pthread_self(), "%s", (void*)name); # endif #endif (void)name; @@ -134,7 +147,7 @@ util_get_L3_for_pinned_thread(thrd_t thr static inline int64_t u_thread_get_time_nano(thrd_t thread) { -#if defined(__linux__) && defined(HAVE_PTHREAD) +#if defined(HAVE_PTHREAD) && !defined(__sun) struct timespec ts; clockid_t cid; [FILE:573:files/patch-src_mesa_drivers_dri_i965_brw__bufmgr.c] --- src/mesa/drivers/dri/i965/brw_bufmgr.c.orig 2019-01-17 11:26:23 UTC +++ src/mesa/drivers/dri/i965/brw_bufmgr.c @@ -1721,7 +1721,7 @@ brw_bufmgr_init(struct gen_device_info * bufmgr->initial_kflags |= EXEC_OBJECT_SUPPORTS_48B_ADDRESS; /* Allocate VMA in userspace if we have softpin and full PPGTT. */ - if (gem_param(fd, I915_PARAM_HAS_EXEC_SOFTPIN) > 0 && + if (false && gem_param(fd, I915_PARAM_HAS_EXEC_SOFTPIN) > 0 && gem_param(fd, I915_PARAM_HAS_ALIASING_PPGTT) > 1) { bufmgr->initial_kflags |= EXEC_OBJECT_PINNED; [FILE:47:files/special.mk] DRI_DRIVERS+= SWRAST GALLIUM_DRIVERS+= SWRAST [FILE:713:sunos/patch-src_amd_Makefile.in] --- src/amd/Makefile.in.orig 2019-04-11 03:36:23 UTC +++ src/amd/Makefile.in @@ -354,7 +354,7 @@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ +CFLAGS = @CFLAGS@ -I$(prefix)/include/bsd CLANG_RESOURCE_DIR = @CLANG_RESOURCE_DIR@ CLOCK_LIB = @CLOCK_LIB@ CLOVER_STD_OVERRIDE = @CLOVER_STD_OVERRIDE@ @@ -775,7 +775,7 @@ addrlib_libamdgpu_addrlib_la_SOURCES = $ @HAVE_GALLIUM_LLVM_TRUE@ $(AMD_GENERATED_FILES) \ @HAVE_GALLIUM_LLVM_TRUE@ $(AMD_NIR_FILES) -common_libamd_common_la_LIBADD = $(LIBELF_LIBS) +common_libamd_common_la_LIBADD = $(LIBELF_LIBS) -lbsd BUILT_SOURCES = $(AMD_GENERATED_FILES) EXTRA_DIST = \ $(COMMON_HEADER_FILES) \ [FILE:370:sunos/patch-src_compiler_Makefile.in] --- src/compiler/Makefile.in.orig 2019-04-11 03:36:23 UTC +++ src/compiler/Makefile.in @@ -1015,7 +1015,7 @@ CLANG_RESOURCE_DIR = @CLANG_RESOURCE_DIR CLOCK_LIB = @CLOCK_LIB@ CLOVER_STD_OVERRIDE = @CLOVER_STD_OVERRIDE@ CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ +CPPFLAGS = @CPPFLAGS@ -I$(prefix)/include/bsd CXX = @CXX@ CXX11_CXXFLAGS = @CXX11_CXXFLAGS@ CXXCPP = @CXXCPP@ [FILE:343:sunos/patch-src_intel_Makefile.in] --- src/intel/Makefile.in.orig 2018-07-20 17:55:23 UTC +++ src/intel/Makefile.in @@ -2104,7 +2104,7 @@ tools_aubinator_error_decode_LDADD = \ tools_aubinator_error_decode_CFLAGS = \ $(AM_CFLAGS) \ - $(ZLIB_CFLAGS) + $(ZLIB_CFLAGS) -I$(prefix)/include/bsd # Due to a what seems like a autoconf bug, we must ensure that the genaration [FILE:760:sunos/patch-src_mesa_drivers_dri_common_Makefile.in] --- src/mesa/drivers/dri/common/Makefile.in.orig 2019-04-11 03:36:28 UTC +++ src/mesa/drivers/dri/common/Makefile.in @@ -138,7 +138,7 @@ AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = -libmegadriver_stub_la_LIBADD = +libmegadriver_stub_la_LIBADD = -lbsd am__objects_2 = megadriver_stub.lo am_libmegadriver_stub_la_OBJECTS = $(am__objects_2) libmegadriver_stub_la_OBJECTS = $(am_libmegadriver_stub_la_OBJECTS) @@ -228,7 +228,7 @@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ +CFLAGS = @CFLAGS@ -I$(prefix)/include/bsd CLANG_RESOURCE_DIR = @CLANG_RESOURCE_DIR@ CLOCK_LIB = @CLOCK_LIB@ CLOVER_STD_OVERRIDE = @CLOVER_STD_OVERRIDE@ [FILE:939:sunos/patch-src_util_Makefile.in] --- src/util/Makefile.in.orig 2019-04-11 03:36:28 UTC +++ src/util/Makefile.in @@ -953,6 +953,7 @@ libmesautil_la_CPPFLAGS = \ -I$(top_srcdir)/src/mesa \ -I$(top_srcdir)/src/gallium/include \ -I$(top_srcdir)/src/gallium/auxiliary \ + -I$(prefix)/include/bsd \ $(VISIBILITY_CFLAGS) \ $(MSVC2013_COMPAT_CFLAGS) \ $(ZLIB_CFLAGS) @@ -966,19 +967,20 @@ libmesautil_la_LIBADD = \ $(CLOCK_LIB) \ $(ZLIB_LIBS) \ $(LIBATOMIC_LIBS) \ - -lm + -lm -lbsd libxmlconfig_la_SOURCES = $(XMLCONFIG_FILES) libxmlconfig_la_CFLAGS = \ $(DEFINES) \ -I$(top_srcdir)/include \ -I$(top_srcdir)/src \ + -I$(prefix)/include/bsd \ -DSYSCONFDIR=\"$(sysconfdir)\" \ -DDATADIR=\"$(datadir)\" \ $(VISIBILITY_CFLAGS) \ $(EXPAT_CFLAGS) -libxmlconfig_la_LIBADD = $(EXPAT_LIBS) -lm +libxmlconfig_la_LIBADD = $(EXPAT_LIBS) -lm -lbsd drircdir = $(datadir)/drirc.d drirc_DATA = 00-mesa-defaults.conf u_atomic_test_LDADD = libmesautil.la