[Mesa-dev] [PATCH WIP 1/1] configure: include llvm systemlibs when using static llvm

Jan Vesely jan.vesely at rutgers.edu
Mon Oct 27 11:05:07 PDT 2014


On Mon, 2014-10-27 at 02:24 +0000, Emil Velikov wrote:
> On 26/10/14 19:36, Jan Vesely wrote:
> > On Fri, 2014-10-24 at 23:54 +0000, Emil Velikov wrote:
> >> On 24/10/14 17:03, Jan Vesely wrote:
> >>> -Wl,--exclude-libs prevents automatic export of symbols
> >>>
> >>>
> >>> CC: Kai Wasserbach <kai at dev.carbon-project.org>
> >>> CC: Emil Velikov <emil.l.velikov at gmail.com>
> >>> Signed-off-by: Jan Vesely <jan.vesely at rutgers.edu>
> >>> ---
> >>>
> >>> Kai,
> >>> can you try this patch with your setup, and check whether LLVM symbols are
> >>> exported from mesa library? (and it's still working)
> >>>
> >>> Emil,
> >>> would it help to have --exclude-libs ALL enabled globally?
> >>>
> >> Haven't really looked up on the documentation about it, yet there should
> >> be no (unneeded) exported symbols thanks to the version scripts.
> >> As such I'm not entirely sure what this patch (attempts to) resolve :(
> > 
> > you are right. I don't know why I thought it was still a problem.
> > In that case the attached patch should fix compiling with llvm static
> > libs (#70410)
> > 
> For future patches please add the full link in the commit message
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=70410
> 
> Afaics the bug mentioned has a slightly different patch, which brings
> the question - do we need to append to the existing LLVM_LIBS, or can we
> overwrite them ? Either way it would be nice if we can get a tested-by
> or two :)

Hi,

I looked at this again. LLVM cmake links system-libs as either PUBLIC or
INTERFACE [0].
it means my patch is incorrect, and we should link against system-libs
even if we use llvm-shared-libs.
you can add my R-b to the patch by K. Sobiecky that is attached to the
bug.[1]

jan


[0] lib/Support/CMakeLists.txt:150
[1] https://bugs.freedesktop.org/attachment.cgi?id=91764
> 
> Thanks
> Emil
> 
> > jan
> > 
> >>
> >> -Emil
> >>
> >>> jan
> >>>
> >>>  configure.ac | 10 +++++++++-
> >>>  1 file changed, 9 insertions(+), 1 deletion(-)
> >>>
> >>> diff --git a/configure.ac b/configure.ac
> >>> index 3c76deb..b4b4b13 100644
> >>> --- a/configure.ac
> >>> +++ b/configure.ac
> >>> @@ -1981,7 +1981,15 @@ if test "x$MESA_LLVM" != x0; then
> >>>             dnl already added all of these objects to LLVM_LIBS.
> >>>          fi
> >>>      else
> >>> -        AC_MSG_WARN([Building mesa with staticly linked LLVM may cause compilation issues])
> >>> +        AC_MSG_WARN([Building mesa with statically linked LLVM may cause compilation issues])
> >>> +	dnl Don't export symbols automatically
> >>> +	dnl TODO: Do we want to list llvm libs explicitly here?
> >>> +	LLVM_LDFLAGS+=" -Wl,exclude-libs ALL"
> >>> +	dnl We need to link to llvm system libs when using static libs
> >>> +	dnl However, only llvm 3.5+ provides --system-libs
> >>> +	if test $LLVM_VERSION_MAJOR -eq 3 -a $LLVM_VERSION_MINOR -ge 5; then
> >>> +		LLVM_LIBS+=" `$LLVM_CONFIG --system-libs`"
> >>> +	fi
> >>>      fi
> >>>  fi
> >>>  
> >>>
> >>
> > 
> 

-- 
Jan Vesely <jan.vesely at rutgers.edu>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20141027/a7e9f9a8/attachment.sig>


More information about the mesa-dev mailing list