From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13338 invoked by alias); 20 Sep 2013 00:43:13 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 13329 invoked by uid 89); 20 Sep 2013 00:43:12 -0000 Received: from mail-pd0-f177.google.com (HELO mail-pd0-f177.google.com) (209.85.192.177) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Fri, 20 Sep 2013 00:43:12 +0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,NO_RELAYS autolearn=no version=3.3.2 X-HELO: mail-pd0-f177.google.com Received: by mail-pd0-f177.google.com with SMTP id y10so9027387pdj.36 for ; Thu, 19 Sep 2013 17:43:10 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.66.162.195 with SMTP id yc3mr5673032pab.64.1379637790483; Thu, 19 Sep 2013 17:43:10 -0700 (PDT) Received: by 10.70.103.74 with HTTP; Thu, 19 Sep 2013 17:43:10 -0700 (PDT) Date: Fri, 20 Sep 2013 00:43:00 -0000 Message-ID: Subject: Re: [RFC] GDB Hurd Fixes From: David Michael To: bug-hurd@gnu.org, gdb-patches@sourceware.org Content-Type: text/plain; charset=UTF-8 X-SW-Source: 2013-09/txt/msg00713.txt.bz2 Hi, (Copying gdb-patches this time.) Here is an updated patch to successfully build GDB after today's Hurd/mig changes. The awk script changes handle the "auto" keyword being dropped from mig output, and that an "#if TypeCheck" line appears before arg_check_name is defined in some new functions. The gnu-nat.c changes define functions for the new process_reply.defs entries. I'd appreciate any feedback or suggestions for getting GDB building on current Hurd 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,13 +85,20 @@ 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; print; next; } -parse_phase == 5 && /^#if[ \t]TypeCheck/ { +parse_phase == 5 && /^#if[ \t]TypeCheck/ && num_checks > 0 { # The first args type checking statement; we need to insert our chunk of # code that bypasses all the type checks if this is an error return, after # which we're done until we get to the next function. Handily, the size --- 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_reply (mach_port_t reply, error_t err, mach_port_t task) +{ + return ill_rpc ("S_proc_pid2task_reply"); +} + +error_t +S_proc_task2pid_reply (mach_port_t reply, error_t err, pid_t pid) +{ + return ill_rpc ("S_proc_task2pid_reply"); +} + +error_t +S_proc_task2proc_reply (mach_port_t reply, error_t err, mach_port_t proc) +{ + return ill_rpc ("S_proc_task2proc_reply"); +} + +error_t +S_proc_proc2task_reply (mach_port_t reply, error_t err, mach_port_t task) +{ + return ill_rpc ("S_proc_proc2task_reply"); +} + +error_t +S_proc_pid2proc_reply (mach_port_t reply, error_t err, mach_port_t proc) +{ + return ill_rpc ("S_proc_pid2proc_reply"); +} + +error_t +S_proc_getprocinfo_reply (mach_port_t reply, error_t err, int flags, + procinfo_t procinfo, mach_msg_type_number_t piCnt, + data_t threadwaits, mach_msg_type_number_t twCnt) +{ + return ill_rpc ("S_proc_getprocinfo_reply"); +} + +error_t +S_proc_getprocargs_reply (mach_port_t reply, error_t err, + data_t procargs, mach_msg_type_number_t procargsCnt) +{ + return ill_rpc ("S_proc_getprocargs_reply"); +} + +error_t +S_proc_getprocenv_reply (mach_port_t reply, error_t err, + data_t procenv, mach_msg_type_number_t procenvCnt) +{ + return ill_rpc ("S_proc_getprocenv_reply"); +} + +error_t +S_proc_getloginid_reply (mach_port_t reply, error_t err, pid_t login_id) +{ + return ill_rpc ("S_proc_getloginid_reply"); +} + +error_t +S_proc_getloginpids_reply (mach_port_t reply, error_t err, + pidarray_t pids, mach_msg_type_number_t pidsCnt) +{ + return ill_rpc ("S_proc_getloginpids_reply"); +} + +error_t +S_proc_getlogin_reply (mach_port_t reply, error_t err, string_t logname) +{ + return ill_rpc ("S_proc_getlogin_reply"); +} + +error_t +S_proc_getsid_reply (mach_port_t reply, error_t err, pid_t sid) +{ + return ill_rpc ("S_proc_getsid_reply"); +} + +error_t +S_proc_getsessionpgids_reply (mach_port_t reply, error_t err, + pidarray_t pgidset, mach_msg_type_number_t psCnt) +{ + return ill_rpc ("S_proc_getsessionpgids_reply"); +} + +error_t +S_proc_getsessionpids_reply (mach_port_t reply, error_t err, + pidarray_t pidset, mach_msg_type_number_t psCnt) +{ + return ill_rpc ("S_proc_getsessionpids_reply"); +} + +error_t +S_proc_getsidport_reply (mach_port_t reply, error_t err, mach_port_t sessport) +{ + return ill_rpc ("S_proc_getsidport_reply"); +} + +error_t +S_proc_getpgrp_reply (mach_port_t reply, error_t err, pid_t pgrp) +{ + return ill_rpc ("S_proc_getpgrp_reply"); +} + +error_t +S_proc_getpgrppids_reply (mach_port_t reply, error_t err, + pidarray_t pidset, mach_msg_type_number_t pidsetCnt) +{ + return ill_rpc ("S_proc_getpgrppids_reply"); +} + +error_t +S_proc_get_tty_reply (mach_port_t reply, error_t err, mach_port_t tty) +{ + return ill_rpc ("S_proc_get_tty_reply"); +} + +error_t +S_proc_getnports_reply (mach_port_t reply, error_t err, + mach_msg_type_number_t nports) +{ + return ill_rpc ("S_proc_getnports_reply"); +} + +error_t +S_proc_is_important_reply (mach_port_t reply, error_t err, boolean_t essential) +{ + return ill_rpc ("S_proc_is_important_reply"); +} + +error_t +S_proc_get_code_reply (mach_port_t reply, error_t err, + vm_address_t start_code, vm_address_t end_code) +{ + return ill_rpc ("S_proc_get_code_reply"); +} + /* Msg_reply server routines. We only use msg_sig_post_untraced_reply. */