Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 03 Mar 2016 11:43:04 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-ports-bugs@FreeBSD.org
Subject:   [Bug 207675] databases/mariadb101-server - unbreak OQGRAPH option
Message-ID:  <bug-207675-13@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D207675

            Bug ID: 207675
           Summary: databases/mariadb101-server - unbreak OQGRAPH option
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Keywords: needs-qa, patch
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: brnrd@freebsd.org
          Reporter: truckman@FreeBSD.org
            Blocks: 199601
             Flags: maintainer-feedback?(brnrd@freebsd.org)
          Assignee: brnrd@freebsd.org

Created attachment 167680
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=3D167680&action=
=3Dedit
patch to fix OQGRAPH build failures

mariadb101-server does not build if the OQGRAPH option is enabled for a cou=
ple
of reasons.  One is the https://mariadb.atlassian.net/browse/MDEV-8051 when
building with clang.  Switching to gcc to build is undesirable because link=
ing
an application built with g++ (which links to libstdc++) with any other C++
code compiled with clang (which links to libc++) causes the application to
immediately crash on startup.  The issue appears to be problems in the
namespace usage of the code that interfaces mariadb with the boost graph
library.  The attached patches to storage/oqgraph/oqgraph_shim.h and
storage/oqgraph/graphcore.cc to fix this problem.  The oqgraph_shim.h also
conditionally used some boost typedefs that were introduced in boost 1.46.1,
but removed in boost 1.49.  This also broke the build with clang.  This pat=
ch
disables the use of these typedefs when using boost 1.49 or newer.

The other build problem is caused by trying to link to the static libJudy.a
library instead of the dynamic libJudy.so library.  This appears to have ca=
used
a linker failure when mariadb was building a shared library because the obj=
ect
files in libJudy.a were not compiled with the -fPIC option.  The cause of t=
his
problem is in the FreeBSD port changes to cmake/ssl.cmake.  The upstream
default is to statically link the SSL libraries.  This was done by reversing
the library suffix list in ssl.cmake before doing the the library search, a=
nd
then reversing the suffix list again to restore the original order.  The
FreeBSD port patched this file to disable the first reversal so that the
dynamic libraries would be found first, but neglected to disable the second
reversal, which then left the suffix list in the wrong order, causing libJu=
dy.a
to be found first.  Disabling the second reversal fixes this problem.

The final change in the attached patch removes the gcc stuff from the port
Makefile and gets rid of a portlint "fatal" error.

With these changes, the OQGRAPH now also builds correctly with boost 1.55 a=
nd
boost 1.60.

My build testing did find a build problem with the default GSSAPI_BASE opti=
on
on FreeBSD 9.3, which I did not try to fix.  I was able to successfully bui=
ld
with GSSAPI_HEIMDAL on FreeBSD 9.3.  I am using the base openssl.


Referenced Bugs:

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D199601
[Bug 199601] devel/boost-all: Upgrade to 1.58, 1.59, or 1.60
--=20
You are receiving this mail because:
You are the assignee for the bug.=



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