Discoveries and Problems with dynamic linked-in drivers

Bruce Fitzsimons <>
Mon Aug 7 21:03:11 CEST 2000


Okay,

For those of your who are interested, I've found a script that builds the
static driver table at ~/otp_src_R6B-0/erts/emulator/utils/make_driver_tab
thats called from the makefile. It seems to search for drivers with a
certain naming convention/location.

But now I've seen how dynamic drivers can work using erl_ddll, I'm more
interested in making one of those. The documentation is really helpful, and
I've got one compiled, but....

when I load any type of driver, including Tobbes little byteorder driver, I
get

4> erl_ddll:load_driver("/root/byteorder-1.0","byteorder_driver").
{error,{open_error,"/root/byteorder-1.0/byteorder_driver.so: undefined
symbol: null_func"}}

I replaced null_func with NULL and I get an undefined symbol on
driver_output...so somethings wrong. I'm running under Linux R6B.

All the driver functions are defined in io.c, which should be linked into
erl (I guess) so I'm lost as to why its "undefined". The linked in drivers
also use these functions, and they work, but I guess they are statically
linked and I want to dynamically link.

Can anyone help?

Cheers,
Bruce




More information about the erlang-questions mailing list