* solist.h (TARGET_SO_FREE_SO, TARGET_SO_CLEAR_SOLIB)
(TARGET_SO_SOLIB_CREATE_INFERIOR_HOOK)
(TARGET_SO_SPECIAL_SYMBOL_HANDLING, TARGET_SO_CURRENT_SOS)
(TARGET_SO_OPEN_SYMBOL_FILE_OBJECT): Remove defines.
* solib.c (solib_data): New variable.
(solib_init, solib_ops): New functions.
(solib_open, solib_map_sections, free_so, update_solib_list)
(solib_add, clear_solib, solib_create_inferior_hook)
(in_solib_dynsym_resolve_code): Call architecture-dependent code
using solib_ops.
(_initialize_solib): Register SOLIB_DATA.