Bug 192286 - [PATCH] graphics/libGL: fix build with clang
Summary: [PATCH] graphics/libGL: fix build with clang
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: freebsd-x11 (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-07-31 07:01 UTC by Carlos J Puga Medina
Modified: 2014-10-17 10:28 UTC (History)
4 users (show)

See Also:


Attachments
patch.diff (2.68 KB, patch)
2014-07-31 07:01 UTC, Carlos J Puga Medina
no flags Details | Diff
Workaround Clang issue with Mesa on i386 (2.68 KB, patch)
2014-08-02 10:04 UTC, Jean-Sébastien Pédron
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Carlos J Puga Medina 2014-07-31 07:01:17 UTC
Created attachment 145174 [details]
patch.diff

ATI radeon 3450 is affected by this bug [1]. The following patch submitted by dim@ allows to build with Clang and avoids the duplicate symbol definitions.

[1] http://llvm.org/bugs/show_bug.cgi?id=19778
Comment 1 John Marino freebsd_committer freebsd_triage 2014-07-31 08:50:12 UTC
Over to maintainer team
Comment 2 Jean-Sébastien Pédron freebsd_committer freebsd_triage 2014-08-02 10:04:33 UTC
Created attachment 145241 [details]
Workaround Clang issue with Mesa on i386

While the LLVM bug is fixed upstream, Dimitry Andric posted a Mesa patch on freebsd-x11@ to workaround the problem:
http://lists.freebsd.org/pipermail/freebsd-x11/2014-July/014844.html

It was tested successfully by the OP:
http://lists.freebsd.org/pipermail/freebsd-x11/2014-July/014846.html

I attach this patch to this report.
Comment 3 Carlos J Puga Medina 2014-08-13 18:37:43 UTC
Almost 2 weeks have elapsed. We have any update on this? IMHO the bug status needs to change to "Patch ready".
Comment 4 Niclas Zeising freebsd_committer freebsd_triage 2014-08-13 20:15:45 UTC
Sorry for not getting back to you.  I've been busy elsewhere, and I believe the rest of the x11@ team have a lot on their plate as well.
Changes to libGL and other graphics related ports with lots of dependencies require a great deal of care, to not break other things.  We will look at this patch as time permits.
Comment 5 Carlos J Puga Medina 2014-08-13 20:21:34 UTC
(In reply to Niclas Zeising from comment #4)
> Sorry for not getting back to you.  I've been busy elsewhere, and I believe
> the rest of the x11@ team have a lot on their plate as well.
> Changes to libGL and other graphics related ports with lots of dependencies
> require a great deal of care, to not break other things.  We will look at
> this patch as time permits.

Hi Niclas,

After your clarification, we leave this bug in the pipeline :)
Comment 6 Alexey Dokuchaev freebsd_committer freebsd_triage 2014-09-07 15:59:37 UTC
I can confirm that it does allow me to build graphics/libGL on fresh -CURRENT/i386 with Clang.  With newly built libGL, I was able to get simple OpenGL apps to run without segfaulting I've reported [1] earlier, but "real" apps (Doom Legacy, Quake2) still crash upon startup.  (It might be unrelated though.)

[1] http://lists.freebsd.org/pipermail/freebsd-x11/2014-September/015008.html
Comment 7 commit-hook freebsd_committer freebsd_triage 2014-10-17 09:53:31 UTC
A commit references this bug:

Author: kwm
Date: Fri Oct 17 09:53:18 UTC 2014
New revision: 371035
URL: https://svnweb.freebsd.org/changeset/ports/371035

Log:
  Update Mesa ports to new default of 9.1.7 and more recent version to 10.3.0.

  The port will switch to the newer version if hw context is available in the
  i915kms driver.

  - Get ride of WITH_NEW_XORG.
  - Use @comment in plist to ignore unwanted files in the stagedir, instead of
    trying to remove them in post-install.
  - Bump portrevision of 9.1.7 due to dependency changes.
  - Drop :keepla from USES=libtool.
  - Drop @dirrm[try] from plists
  - Give dri propper options, with pkg-help for additional information.
  - Make separate plist for dri for the different versions, the combined plist
    was headache inducing.
  - Add "workaround" patches to allow clang to build the dri port on i386 [1].
    USE_GCC is now only needed for 8.x.
  - Add gbm port and USE_GL switch for it.

  PR:		192286 [1]
  Submitted by:	Carlos Jacobo Puga Medina [1]
  Approved by:	portmgr (bapt@)
  In collaberation with:	dumbbell@
  Obtained from:	xorg-dev

Changes:
  head/Mk/bsd.port.mk
  head/graphics/Makefile
  head/graphics/dri/Makefile
  head/graphics/dri/pkg-help
  head/graphics/dri/pkg-plist
  head/graphics/dri/pkg-plist-old
  head/graphics/gbm/
  head/graphics/gbm/Makefile
  head/graphics/gbm/pkg-descr
  head/graphics/gbm/pkg-plist
  head/graphics/libEGL/Makefile
  head/graphics/libEGL/pkg-plist
  head/graphics/libGL/Makefile
  head/graphics/libGL/bsd.mesalib.mk
  head/graphics/libGL/distinfo
  head/graphics/libGL/files/configure.ac
  head/graphics/libGL/files/patch-Makefile.in
  head/graphics/libGL/files/patch-configure
  head/graphics/libGL/files/patch-src-glsl_ir_constant_expression.cpp
  head/graphics/libGL/files/patch-src__gallium__drivers__r300__r300_chipset.c
  head/graphics/libGL/files/patch-src__gallium__include__pipe__p_config.h
  head/graphics/libGL/files/patch-src__gallium__state_trackers__clover__util__range.hpp
  head/graphics/libGL/files/patch-src__gallium__winsys__svga__drm__vmw_screen_ioctl.c
  head/graphics/libGL/files/patch-src__glsl__ir_constant_expression.cpp
  head/graphics/libGL/files/patch-src__loader__Makefile.in
  head/graphics/libGL/files/patch-src__loader__loader.c
  head/graphics/libGL/files/patch-src__mapi__entry_x86-64_tls.h
  head/graphics/libGL/files/patch-src__mapi__entry_x86_tls.h
  head/graphics/libGL/files/patch-src__mapi__entry_x86_tsd.h
  head/graphics/libGL/files/patch-src__mapi__glapi__gen__gl_gentable.py
  head/graphics/libGL/files/patch-src__mesa__main__compiler.h
  head/graphics/libGL/files/patch-src__mesa__main__imports.c
  head/graphics/libGL/files/patch-src_gallium_drivers_r300_r300-chipset.c
  head/graphics/libGL/files/patch-src_gallium_drivers_r600_r600-asm.c
  head/graphics/libGL/files/patch-src_gallium_drivers_r600_r600-shader.c
  head/graphics/libGL/files/patch-src_gallium_drivers_r600_r600_state_common.c
  head/graphics/libGL/files/patch-src_gallium_drivers_radeon_radeon-llvm-emit.cpp
  head/graphics/libGL/files/patch-src_gallium_drivers_radeonsi_r600-buffer.c
  head/graphics/libGL/files/patch-src_gallium_winsys_svga_drm_vmw-screen-ioctl.c
  head/graphics/libGL/files/patch-src_mapi_glapi_gen_gl-gentable.py
  head/graphics/libGL/files/patch-src_mesa_drivers_dri_common_Makefile.in
  head/graphics/libGL/files/patch-src_mesa_drivers_dri_common_xmlpool_Makefile.in
  head/graphics/libGL/files/patch-src_mesa_main_compiler.h
  head/graphics/libGL/files/patch-src_mesa_main_imports.c
  head/graphics/libGL/files/pkg-install.in
  head/graphics/libGL/files/src__loader__Makefile.am
  head/graphics/libGL/files-old/patch-Makefile.in
  head/graphics/libGL/files-old/patch-configure
  head/graphics/libGL/files-old/patch-mach64_context.h
  head/graphics/libGL/files-old/patch-src-glsl_ir_constant_expression.cpp
  head/graphics/libGL/files-old/patch-src__egl__drivers__dri2__Makefile.in
  head/graphics/libGL/files-old/patch-src__egl__drivers__dri2__common.c
  head/graphics/libGL/files-old/patch-src__egl__drivers__glx__Makefile.in
  head/graphics/libGL/files-old/patch-src__gallium__auxiliary__pipe-loader__pipe_loader_drm.c
  head/graphics/libGL/files-old/patch-src__gallium__include__pipe__p_config.h
  head/graphics/libGL/files-old/patch-src__gallium__state_trackers__egl__drm__native_drm.c
  head/graphics/libGL/files-old/patch-src__gallium__state_trackers__xvmc__tests__xvmc_bench.c
  head/graphics/libGL/files-old/patch-src__gallium__targets__egl-static__egl.c
  head/graphics/libGL/files-old/patch-src__gallium__targets__gbm__Makefile.in
  head/graphics/libGL/files-old/patch-src__gbm__Makefile.in
  head/graphics/libGL/files-old/patch-src__gbm__backends__dri__driver_name.c
  head/graphics/libGL/files-old/patch-src__gbm__main__common.c
  head/graphics/libGL/files-old/patch-src__gbm__main__common.h
  head/graphics/libGL/files-old/patch-src__mesa__x86-64__glapi_x86-64.S
  head/graphics/libGL/files-old/patch-src__mesa__x86-64__xform4.S
  head/graphics/libGL/files-old/patch-src__mesa__x86__glapi_x86.S
  head/graphics/libGL/files-old/patch-src__mesa__x86__read_rgba_span_x86.S
  head/graphics/libGL/files-old/patch-src_gallium_drivers_r300_r300-chipset.c
  head/graphics/libGL/files-old/patch-src_gallium_drivers_r600_r600-asm.c
  head/graphics/libGL/files-old/patch-src_gallium_drivers_r600_r600-shader.c
  head/graphics/libGL/files-old/patch-src_gallium_drivers_r600_r600_state_common.c
  head/graphics/libGL/files-old/patch-src_gallium_drivers_radeon_radeon-llvm-emit.cpp
  head/graphics/libGL/files-old/patch-src_gallium_drivers_radeonsi_r600-buffer.c
  head/graphics/libGL/files-old/patch-src_gallium_winsys_svga_drm_vmw-screen-ioctl.c
  head/graphics/libGL/files-old/patch-src_glx_x11_XF86dri.c
  head/graphics/libGL/files-old/patch-src_mapi_glapi_gen_gl-gentable.py
  head/graphics/libGL/files-old/patch-src_mapi_mapi_entry_x86-64_tls.h
  head/graphics/libGL/files-old/patch-src_mapi_mapi_entry_x86_tls.h
  head/graphics/libGL/files-old/patch-src_mapi_mapi_entry_x86_tsd.h
  head/graphics/libGL/files-old/patch-src_mesa_Makefile
  head/graphics/libGL/files-old/patch-src_mesa_drivers_dri_common_Makefile.in
  head/graphics/libGL/files-old/patch-src_mesa_drivers_dri_common_xmlpool_Makefile.in
  head/graphics/libGL/files-old/patch-src_mesa_main_compiler.h
  head/graphics/libGL/files-old/patch-src_mesa_main_imports.c
  head/graphics/libGL/files-old/pkg-deinstall.in
  head/graphics/libGL/files-old/pkg-install.in
  head/graphics/libGL/pkg-plist
  head/graphics/libglapi/Makefile
  head/graphics/libglapi/pkg-descr
  head/graphics/libglapi/pkg-plist
  head/graphics/libglesv2/Makefile
  head/graphics/libglesv2/pkg-plist