usb-gadget: access external symbol using dlsym(), not extern keyword
The variable declared as extern storage class must be resolved when the
symbol is loaded onto memory regardless of lazy binding. Therefore if
a symbol doesn't exist on being loaded, the whole library loading will
fail. To avoid this, explicitly load a symbol using dlsym(), which is
able to handle undefined symbol error.
This is mainly because the device-common shared library contains both
of udev and usb-gadget, making them always be loaded onto memory
together even if a caller only wants to use udev, not usb-gadget. This
structure should be revamped later.
Change-Id: Ia2bd7801123c812976ce79f0e0b880e6f1e67463
Signed-off-by: Youngjae Cho <y0.cho@samsung.com>