Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 19 Feb 2013 16:24:16 +0000 (UTC)
From:      Koop Mast <kwm@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r312583 - head/Mk
Message-ID:  <201302191624.r1JGOGFf072433@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kwm
Date: Tue Feb 19 16:24:16 2013
New Revision: 312583
URL: http://svnweb.freebsd.org/changeset/ports/312583

Log:
  Add workaround for when clang is used as a compiler, due to a tail calls
  optimization bug in llvm when PIC mode is used. This bug was reproduced with
  3.2 and 3.1 on i386. And prevents modules that where dlopen()'d by the
  xorg-server, to dlopen() other shared modules by themself.
  
  This is known to happen with the vmware and vesa drivers others might be
  affected.
  
  More details: http://llvm.org/bugs/show_bug.cgi?id=15086
  
  Submitted by:	dim@

Modified:
  head/Mk/bsd.xorg.mk

Modified: head/Mk/bsd.xorg.mk
==============================================================================
--- head/Mk/bsd.xorg.mk	Tue Feb 19 16:18:01 2013	(r312582)
+++ head/Mk/bsd.xorg.mk	Tue Feb 19 16:24:16 2013	(r312583)
@@ -49,6 +49,11 @@ USE_GNOME+=	pkgconfig
 . if ${XORG_CAT} == "driver"
 USE_GNOME+=	pkgconfig
 USE_XORG+=	xorg-server xproto randrproto xi
+# work around a llvm bug on i386, llvm bug #15806 
+# reproduced with clang 3.2 (current release) and 3.1
+.  if ${ARCH} == i386
+CFLAGS+=	-fno-optimize-sibling-calls
+.  endif
 CONFIGURE_ENV+=	DRIVER_MAN_SUFFIX=4x DRIVER_MAN_DIR='$$(mandir)/man4'
 .  if ${PORTNAME:M*input*}x != x
 USE_XORG+=	inputproto renderproto



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201302191624.r1JGOGFf072433>