Some of this stuff is cosmetic/convenience. I made the macros for my nto_target structure testable and moved the comments into the structure where they're more useful. A few things had to do with initializers. Some of the signal handling stuff didn't work because other _init functions hadn't been called so I moved them out to where they could be called when the osabi is initialized. I added osabi and core sniffers. Some is practical, some is future-proofing. If we start supporting multiple targets, I'm going to want to be able to swap our various target processors support in and out. The is_nto_target type stuff can be made more interesting later to do things like check to see if the remote host processor matches the binary abi and such. cheers, Kris ChangeLog entry: * nto-tdep.h: Include osabi.h. Prototypes for generic Neutrino osabi sniffer, signal handling initializer and 'in_dynsym_resolve_code' function. (struct nto_target_ops): Put comments inline with struct. Add osabi sniffer hook. Redefine macros to permit testing/assignment. * nto-tdep.c (nto_find_and_open_solib): Allocate all buffers dynamically to support arbitrary root paths. Check for basename of lib in search path and then check for absolute. (nto_in_dynsym_resolve_code): New function. (nto_core_sniffer): New function. (regset_core_fns): Register core sniffer. (nto_initialize_signals): New function. (_initialize_nto_tdep): Move signal initialization code to above to avoid initialization race conditions. * nto-procfs.c: Minor formatting/indenting changes. (procfs_is_nto_target): New function. (procfs_open): Set nto_is_nto_target. (_initialize_procfs): Ditto. Remove notice_signals() call to avoid initialization race conditions. (procfs_create_inferior): Resume inferior after creation. * i386-nto-tdep.c (init_i386nto_ops): Use new macros for assignment. (i386nto_init_abi): Initialize signals. Set TARGET_SO_IN_DYNSYM_RESOLVE_CODE. (_initialize_i386nto_tdep): Register osabi sniffer.