Hi,yes the second one, you can provide your own allocators which then use malloc/free, take a look in the corresponding tests/utils file for the doubly linked list.
The reason for the default implementation for static lists is, that OpENer is primary targeted at small platforms, without memory management and real-time behavior.
Also OpENer in its standard config, has a fixed number of possible connections, so it is more efficient to create them upfront.
They are compile time options, because I thought this is defined by the slaves EDS file, at least there are options in the EDS file editor (EZ-EDS from the ODVA) where you can define this in each connection type of the device.
Best,
Martin