You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by jparise <gi...@git.apache.org> on 2014/12/19 17:23:57 UTC

[GitHub] thrift pull request: Directly link libboost_unit_test_framework.a.

GitHub user jparise opened a pull request:

    https://github.com/apache/thrift/pull/333

    Directly link libboost_unit_test_framework.a.

    Not all linkers support the `-l:libfoo.a` syntax (notably ld(1) on Mac
    OS X).  For full compatibility, we want to link directly against the
    static library using its full path.
    
    (We can't link the dynamic version of this library because of the way
    that the `_main()` symbol is defined and used by the Thrift unit tests.)
    
    Unfortunately, AX_BOOST_BASE doesn't expose the selected library path
    as a variable, so we derive BOOST_LIB_DIR from BOOST_LDPATH instead.
    That variable is defined conditionally on C++ and Boost support.
    
    Lastly, I looked at the GNU AX_BOOST_UNIT_TEST_FRAMEWORK macro.  It
    unfortunately prefers the dynamic library over the static one (see
    above), so it's not suitable for our use case.  That macro could be
    extended to take an argument (e.g. 'static') which would force the use
    of the static library, but that felt unnecessary here.
    
    Fixes [THRIFT-2906](https://issues.apache.org/jira/browse/THRIFT-2906)

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/jparise/thrift thrift-2906

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/thrift/pull/333.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #333
    
----
commit 76577ed0189a628275246552e60ebbceb3c2cf4a
Author: Jon Parise <jo...@pinterest.com>
Date:   2014-12-19T01:51:46Z

    Directly link libboost_unit_test_framework.a.
    
    Not all linkers support the `-l:libfoo.a` syntax (notably ld(1) on Mac
    OS X).  For full compatibility, we want to link directly against the
    static library using its full path.
    
    (We can't link the dynamic version of this library because of the way
    that the _main() symbol is defined and used by the Thrift unit tests.)
    
    Unfortunately, AX_BOOST_BASE doesn't expose the selected library path
    as a variable, so we derive BOOST_LIB_DIR from BOOST_LDPATH instead.
    That variable is defined conditionally on C++ and Boost support.
    
    Lastly, I looked at the GNU AX_BOOST_UNIT_TEST_FRAMEWORK macro.  It
    unfortunately prefers the dynamic library over the static one (see
    above), so it's not suitable for our use case.  That macro could be
    extended to take an argument (e.g. 'static') which would force the use
    of the static library, but that felt unnecessary here.
    
    Fixes THRIFT-2906

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] thrift pull request: Directly link libboost_unit_test_framework.a.

Posted by asfgit <gi...@git.apache.org>.
Github user asfgit closed the pull request at:

    https://github.com/apache/thrift/pull/333


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---