[ 
https://issues.apache.org/jira/browse/THRIFT-4308?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16343912#comment-16343912
 ] 

ASF GitHub Bot commented on THRIFT-4308:
----------------------------------------

GitHub user jeking3 opened a pull request:

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

    THRIFT-4308: re-enable dlang deimos build support for libevent and openssl

    ... working around a dmd link order issue.
    
    https://issues.apache.org/jira/browse/THRIFT-4308

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

    $ git pull https://github.com/jeking3/thrift THRIFT-4308

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

    https://github.com/apache/thrift/pull/1483.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 #1483
    
----
commit 9357558278fb831a84cef42ded71887296b7e453
Author: James E. King III <jking@...>
Date:   2018-01-29T19:51:24Z

    THRIFT-4308: re-enable dlang deimos build support for libevent and openssl, 
working around a dmd link order issue

----


> D language docker images need demios for libevent and openssl fixed to 
> re-enable make cross on dlang
> ----------------------------------------------------------------------------------------------------
>
>                 Key: THRIFT-4308
>                 URL: https://issues.apache.org/jira/browse/THRIFT-4308
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Build Process, D - Library
>    Affects Versions: 0.11.0
>         Environment: docker:ubuntu-xenial
>            Reporter: James E. King, III
>            Assignee: James E. King, III
>            Priority: Major
>
> I had to disable the deimos hooks for libevent and openssl because they were 
> causing build failures in 0.11.0.  A result of this change is that dlang is 
> NOT tested in "make cross" at all, because the test executables are only 
> generated if openssl support exists, and it does not.
> It turns out this is some sort of link ordering issue.  On further diagnosis, 
> the dmd command outputs this build line when you add -v:
> {noformat}
> root@f82a62661052:/thrift/src/lib/d/test# cc client_pool_test.o -o 
> client_pool_test -m64 -levent -lssl -lcrypto -L/usr/lib/x86_64-linux-gnu 
> -Xlinker --export-dynamic ../../../lib/d/libthriftd.a ../libthriftd-event.a 
> ../libthriftd-ssl.a -Xlinker -Bstatic -lphobos2 -Xlinker -Bdynamic -lpthread 
> -lm -lrt -ldl
> ../libthriftd-event.a(libevent_1_846.o): In function 
> `_D6thrift5async8libevent21TLibeventAsyncManager6__ctorMFZC6thrift5async8libevent21TLibeventAsyncManager':
> src/thrift/async/libevent.d:(.text._D6thrift5async8libevent21TLibeventAsyncManager6__ctorMFZC6thrift5async8libevent21TLibeventAsyncManager+0x11):
>  undefined reference to `event_base_new'
> src/thrift/async/libevent.d:(.text._D6thrift5async8libevent21TLibeventAsyncManager6__ctorMFZC6thrift5async8libevent21TLibeventAsyncManager+0xa3):
>  undefined reference to `event_new'
> src/thrift/async/libevent.d:(.text._D6thrift5async8libevent21TLibeventAsyncManager6__ctorMFZC6thrift5async8libevent21TLibeventAsyncManager+0xb1):
>  undefined reference to `event_add'
> {noformat}
> If you add -Wl,--start-group before the event library, OR move event, ssl, 
> and crypto to the end of the library list, the link completes.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to