Hi, Recent changes in mig/Hurd have broken GDB's build process. I've appended my changes here and would appreciate any feedback. (Apologies if this is better sent to a GDB mailing list; I'm hoping someone here can tell me if I'm doing something stupid with mig output.)
The first part fixes an awk script after the "auto" keywords were stripped from mig's output. The patch adds another block that should make it compatible with both old and new versions of mig. The second part defines some process_reply.defs functions to bring it in line with Hurd's 0845794f. I assume these will just be unused functions when building with old Hurd versions, but I haven't tested. Can anyone comment on this? (Also, sorry if this steps on any of the other Hurd/GDB projects going on--I'm just trying to get a working debugger again.) Thanks. David --- gdb/reply_mig_hack.awk 2013-01-01 01:32:50.000000000 -0500 +++ gdb/reply_mig_hack.awk 2013-01-01 01:32:50.000000000 -0500 @@ -85,6 +85,13 @@ parse_phase == 5 && /^[ \t]*(auto|static print; next; } +parse_phase == 5 && /^[ \t]*const mach_msg_type_t/ { + # The type check structure for an argument. + arg_check_name[num_checks] = $3; + num_checks++; + print; next; +} + parse_phase == 5 && /^[ \t]*mig_external kern_return_t/ { # The declaration of the user server function for this rpc. user_function_name = $3; --- gdb/gnu-nat.c 2013-01-01 01:32:44.000000000 -0500 +++ gdb/gnu-nat.c 2013-01-01 01:32:44.000000000 -0500 @@ -1902,6 +1902,142 @@ S_proc_getmsgport_reply (mach_port_t rep return ill_rpc ("S_proc_getmsgport_reply"); } +error_t +S_proc_pid2task (mach_port_t reply, error_t err, mach_port_t task) +{ + return ill_rpc ("S_proc_pid2task"); +} + +error_t +S_proc_task2pid (mach_port_t reply, error_t err, pid_t pid) +{ + return ill_rpc ("S_proc_task2pid"); +} + +error_t +S_proc_task2proc (mach_port_t reply, error_t err, mach_port_t proc) +{ + return ill_rpc ("S_proc_task2proc"); +} + +error_t +S_proc_proc2task (mach_port_t reply, error_t err, mach_port_t task) +{ + return ill_rpc ("S_proc_proc2task"); +} + +error_t +S_proc_pid2proc (mach_port_t reply, error_t err, mach_port_t proc) +{ + return ill_rpc ("S_proc_pid2proc"); +} + +error_t +S_proc_getprocinfo (mach_port_t reply, error_t err, int flags, + procinfo_t procinfo, mach_msg_type_number_t procinfoCnt, + data_t threadwaits, mach_msg_type_number_t threadwaitsCnt) +{ + return ill_rpc ("S_proc_getprocinfo"); +} + +error_t +S_proc_getprocargs (mach_port_t reply, error_t err, + data_t procargs, mach_msg_type_number_t procargsCnt) +{ + return ill_rpc ("S_proc_getprocargs"); +} + +error_t +S_proc_getprocenv (mach_port_t reply, error_t err, + data_t procenv, mach_msg_type_number_t procenvCnt) +{ + return ill_rpc ("S_proc_getprocenv"); +} + +error_t +S_proc_getloginid (mach_port_t reply, error_t err, pid_t login_id) +{ + return ill_rpc ("S_proc_getloginid"); +} + +error_t +S_proc_getloginpids (mach_port_t reply, error_t err, + pidarray_t pids, mach_msg_type_number_t pidsCnt) +{ + return ill_rpc ("S_proc_getloginpids"); +} + +error_t +S_proc_getlogin (mach_port_t reply, error_t err, string_t logname) +{ + return ill_rpc ("S_proc_getlogin"); +} + +error_t +S_proc_getsid (mach_port_t reply, error_t err, pid_t sid) +{ + return ill_rpc ("S_proc_getsid"); +} + +error_t +S_proc_getsessionpgids (mach_port_t reply, error_t err, + pidarray_t pgidset, mach_msg_type_number_t pgidsetCnt) +{ + return ill_rpc ("S_proc_getsessionpgids"); +} + +error_t +S_proc_getsessionpids (mach_port_t reply, error_t err, + pidarray_t pidset, mach_msg_type_number_t pidsetCnt) +{ + return ill_rpc ("S_proc_getsessionpids"); +} + +error_t +S_proc_getsidport (mach_port_t reply, error_t err, mach_port_t sessport) +{ + return ill_rpc ("S_proc_getsidport"); +} + +error_t +S_proc_getpgrp (mach_port_t reply, error_t err, pid_t pgrp) +{ + return ill_rpc ("S_proc_getpgrp"); +} + +error_t +S_proc_getpgrppids (mach_port_t reply, error_t err, + pidarray_t pidset, mach_msg_type_number_t pidsetCnt) +{ + return ill_rpc ("S_proc_getpgrppids"); +} + +error_t +S_proc_get_tty (mach_port_t reply, error_t err, mach_port_t tty) +{ + return ill_rpc ("S_proc_get_tty"); +} + +error_t +S_proc_getnports (mach_port_t reply, error_t err, + mach_msg_type_number_t nports) +{ + return ill_rpc ("S_proc_getnports"); +} + +error_t +S_proc_is_important (mach_port_t reply, error_t err, boolean_t essential) +{ + return ill_rpc ("S_proc_is_important"); +} + +error_t +S_proc_get_code (mach_port_t reply, error_t err, + vm_address_t start_code, vm_address_t end_code) +{ + return ill_rpc ("S_proc_get_code"); +} + /* Msg_reply server routines. We only use msg_sig_post_untraced_reply. */