Thrift D bindings: make check broken under ubuntu 12.04. Where to report?

J notavail at notavailable.com
Mon Mar 25 11:43:11 PDT 2013


Where or to whom should I report a bug in the thrift D bindings?

In recent ubuntu, the maintainers inexplicably changed the linker 
(ld) defaults to --as-needed, which breaks the 'make check' for 
Thrifts D binding, presumably because they are using some kind of 
'indirect' linking.

reproduction:

~/pkg/thrift/thrift/lib/d$ make check # using dmd 2.062 on 
x86_64. (thrift at a recent version; 3c434ab87d).
...
dmd -gc -ofunittest/debug/thrift/server/transport/ssl -unittest 
-w -wi -I../../lib/d/src -L-levent -L-lssl -L-lcrypto 
src/thrift/server/transport/ssl.d libthriftd-event.a 
libthriftd-ssl.a libthriftd.a unittest/emptymain.d
libthriftd-ssl.a(ssl_3cd_3af.o): In function 
`_D6thrift9transport3ssl10TSSLSocket6isOpenMFNdZb':
src/thrift/transport/ssl.d:(.text._D6thrift9transport3ssl10TSSLSocket6isOpenMFNdZb+0x71): 
undefined refe\
rence to `SSL_get_shutdown'
...

I can fix this by

1. putting "DFLAGS_PRE=-L--no-as-needed" in dmd.conf and using a 
dmd branch that makes DFLAGS_PRE work: 
https://github.com/glycerine/dmd/tree/fix_9805 All this does is 
pre-pend (instead of append) the contents of DFLAGS_PRE to the 
dmd command line.

or

2. manually compiling with dmd --no-as-needed ... (which is 
painful, hence the #1 step above is vastly preferred)

but somebody smarter than me should probably have a look at the 
linking in the 'make check' for D's thrift bindings and try to 
make it work even without --no-as-needed.

-J


More information about the Digitalmars-d-learn mailing list