From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id SWENAxWr0meZGA4AWB0awg (envelope-from ) for ; Thu, 13 Mar 2025 05:53:25 -0400 Authentication-Results: simark.ca; dkim=pass (1024-bit key; unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=GPrKR1LT; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=9vlhmgws; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=i4isSZyf; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=Si5n6pbz; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id EFB5E1E105; Thu, 13 Mar 2025 05:53:24 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-5.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=4.0.0 Received: from server2.sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id B23701E08E for ; Thu, 13 Mar 2025 05:53:23 -0400 (EDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 451773858039 for ; Thu, 13 Mar 2025 09:53:23 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 451773858039 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=GPrKR1LT; dkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=9vlhmgws; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.a=rsa-sha256 header.s=susede2_rsa header.b=i4isSZyf; dkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256 header.s=susede2_ed25519 header.b=Si5n6pbz Received: from smtp-out1.suse.de (smtp-out1.suse.de [IPv6:2a07:de40:b251:101:10:150:64:1]) by sourceware.org (Postfix) with ESMTPS id 6FE523858D33 for ; Thu, 13 Mar 2025 09:52:51 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6FE523858D33 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 6FE523858D33 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a07:de40:b251:101:10:150:64:1 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1741859571; cv=none; b=B17+pT+0glp1l9hjegjIBNv9v/8M/N1PTBclt0ibhuyLxrXbY32bhBfAmWKR+iibu/lCtpAwY83rQTds6XLJJCU8cZypucGnIlLjZ3p0GrQRpNBrLM4RYhTBAmjpeizjT//ag5Xp5IRB95gC7DaigLPVFHlaycnPR8STp4AdtYs= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1741859571; c=relaxed/simple; bh=XU37xDrdgqMfwqDF7KC1tPT56hCK0TP2RZBvZxto4X0=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:From: To:Subject:Date:Message-ID:MIME-Version; b=uOuMVpZVc8IwHGl0P0ty+4fFrCDiMxP0PViKXw6HiuhMZuRHFUJq7u0tkN578K0CNIEHWVJo4CXvqkyj0BleL3aeGxe+0jL/3o24GCc/OfzfBOBxVB6qgQEElDWymZx3tHsqgUz6tUZRRSUU3vwSwqUayF8qNU5WsdEqwj5F5M8= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6FE523858D33 Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 537D521192 for ; Thu, 13 Mar 2025 09:52:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1741859570; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=Xb+UW8kk0wX/17T7fBid4VvyWg+v4Gj9hHorXQXCqr0=; b=GPrKR1LT/PWgvBtGavIKo0JIkQ8wi5+94Pc4FJO8aMMcyE6SMTK7c3P5o7AxIB8rv4LK4Q dhM/v13h2FXpY+yEP3UUxia7rVu3UXfj8a5+ANG5atQ3b+LXgOWgqCjGQIXFNqyLwovD9w 00594VY3SeS4cdsOL1OA+9hbMIZAKsc= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1741859570; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=Xb+UW8kk0wX/17T7fBid4VvyWg+v4Gj9hHorXQXCqr0=; b=9vlhmgwsHjWB4nKW0i0jgFtzk0RM+PxMmfy3C35tMO4n8wUZ8/s0vuvUxihPL8vw/U8isG iit78fV3ADY/kWDQ== Authentication-Results: smtp-out1.suse.de; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=i4isSZyf; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=Si5n6pbz DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1741859569; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=Xb+UW8kk0wX/17T7fBid4VvyWg+v4Gj9hHorXQXCqr0=; b=i4isSZyf3ADFJOFCDbop1n1yZ1MLy8XFUzBdG9poQ5AJN6ZbyVuRqreGXmasincsAkn1qY LOIRI5pcIskJmEQaCmxWSrHurJC9qD+xPKCSLil+OmcepMUpvfuDQ8mhn2NKp24tDHU/Ix wBksmAOWZwq1JdMheGtAspe9k7dZ1FA= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1741859569; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=Xb+UW8kk0wX/17T7fBid4VvyWg+v4Gj9hHorXQXCqr0=; b=Si5n6pbzFYDqcwKLfp7vlYCGlnPrY/kFlwJSIuSCERTEhgHbUuB+2cEOzyJbB6cJykOx50 SWBDnj78IK2tYGDA== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 3B920137BA for ; Thu, 13 Mar 2025 09:52:49 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id ndkQDfGq0mdzPwAAD6G6ig (envelope-from ) for ; Thu, 13 Mar 2025 09:52:49 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [PATCH] [gdb/tdep] Backport i386_canonicalize_syscall rewrite to gdb-16-branch Date: Thu, 13 Mar 2025 10:53:25 +0100 Message-ID: <20250313095325.23876-1-tdevries@suse.de> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 537D521192 X-Spamd-Result: default: False [-3.01 / 50.00]; BAYES_HAM(-3.00)[99.99%]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; MIME_TRACE(0.00)[0:+]; TO_MATCH_ENVRCPT_ALL(0.00)[]; FUZZY_BLOCKED(0.00)[rspamd.com]; RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; RCPT_COUNT_ONE(0.00)[1]; ARC_NA(0.00)[]; RCVD_TLS_ALL(0.00)[]; DKIM_TRACE(0.00)[suse.de:+]; RCVD_COUNT_TWO(0.00)[2]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from]; TO_DN_NONE(0.00)[]; RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:106:10:150:64:167:received]; PREVIOUSLY_DELIVERED(0.00)[gdb-patches@sourceware.org]; RCVD_VIA_SMTP_AUTH(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:dkim, suse.de:mid, imap1.dmz-prg2.suse.org:helo, imap1.dmz-prg2.suse.org:rdns] X-Rspamd-Server: rspamd2.dmz-prg2.suse.org X-Rspamd-Action: no action X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org Commit fbfb29b304e ("[gdb/tdep] Rewrite i386_canonicalize_syscall") fixes PR32770, which reproduces on the gdb-16-branch, but the commit is not ideal for backporting because it completely rewrites i386_canonicalize_syscall. Instead, this is a version of the patch that adds a single line entry for each syscall value for which i386_canonicalize_syscall gives a different result with and without the patch. Consequently, the two versions give identical results. I've checked this for syscalls 0 to 466. Tested on x86_64-linux with target board unix/-m32, on top of gdb-16-branch. PR tdep/32770 Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=32770 --- gdb/i386-linux-tdep.c | 153 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 152 insertions(+), 1 deletion(-) diff --git a/gdb/i386-linux-tdep.c b/gdb/i386-linux-tdep.c index 9dec83ac753..c2cd594cebe 100644 --- a/gdb/i386-linux-tdep.c +++ b/gdb/i386-linux-tdep.c @@ -378,7 +378,158 @@ i386_all_but_ip_registers_record (struct regcache *regcache) static enum gdb_syscall i386_canonicalize_syscall (int syscall) { - enum { i386_syscall_max = 499 }; + enum { i386_syscall_max = 466 }; + + switch (syscall) + { + case 359 /* socket */: return gdb_sys_socket; + case 360 /* socketpair */: return gdb_sys_socketpair; + case 361 /* bind */: return gdb_sys_bind; + case 362 /* connect */: return gdb_sys_connect; + case 363 /* listen */: return gdb_sys_listen; + case 365 /* getsockopt */: return gdb_sys_getsockopt; + case 366 /* setsockopt */: return gdb_sys_setsockopt; + case 367 /* getsockname */: return gdb_sys_getsockname; + case 368 /* getpeername */: return gdb_sys_getpeername; + case 369 /* sendto */: return gdb_sys_sendto; + case 370 /* sendmsg */: return gdb_sys_sendmsg; + case 371 /* recvfrom */: return gdb_sys_recvfrom; + case 372 /* recvmsg */: return gdb_sys_recvmsg; + case 373 /* shutdown */: return gdb_sys_shutdown; + case 393 /* semget */: return gdb_sys_semget; + case 394 /* semctl */: return gdb_sys_semctl; + case 395 /* shmget */: return gdb_sys_shmget; + case 396 /* shmctl */: return gdb_sys_shmctl; + case 397 /* shmat */: return gdb_sys_shmat; + case 398 /* shmdt */: return gdb_sys_shmdt; + case 399 /* msgget */: return gdb_sys_msgget; + case 400 /* msgsnd */: return gdb_sys_msgsnd; + case 401 /* msgrcv */: return gdb_sys_msgrcv; + case 402 /* msgctl */: return gdb_sys_msgctl; + case 420 /* semtimedop_time64 */: return gdb_sys_semtimedop; + + case 320 /* utimensat */: return gdb_sys_no_syscall; + case 321 /* signalfd */: return gdb_sys_no_syscall; + case 322 /* timerfd_create */: return gdb_sys_no_syscall; + case 323 /* eventfd */: return gdb_sys_no_syscall; + case 325 /* timerfd_settime */: return gdb_sys_no_syscall; + case 326 /* timerfd_gettime */: return gdb_sys_no_syscall; + case 327 /* signalfd4 */: return gdb_sys_no_syscall; + case 333 /* preadv */: return gdb_sys_no_syscall; + case 334 /* pwritev */: return gdb_sys_no_syscall; + case 335 /* rt_tgsigqueueinfo */: return gdb_sys_no_syscall; + case 336 /* perf_event_open */: return gdb_sys_no_syscall; + case 337 /* recvmmsg */: return gdb_sys_no_syscall; + case 338 /* fanotify_init */: return gdb_sys_no_syscall; + case 339 /* fanotify_mark */: return gdb_sys_no_syscall; + case 340 /* prlimit64 */: return gdb_sys_no_syscall; + case 341 /* name_to_handle_at */: return gdb_sys_no_syscall; + case 342 /* open_by_handle_at */: return gdb_sys_no_syscall; + case 343 /* clock_adjtime */: return gdb_sys_no_syscall; + case 344 /* syncfs */: return gdb_sys_no_syscall; + case 345 /* sendmmsg */: return gdb_sys_no_syscall; + case 346 /* setns */: return gdb_sys_no_syscall; + case 347 /* process_vm_readv */: return gdb_sys_no_syscall; + case 348 /* process_vm_writev */: return gdb_sys_no_syscall; + case 349 /* kcmp */: return gdb_sys_no_syscall; + case 350 /* finit_module */: return gdb_sys_no_syscall; + case 351 /* sched_setattr */: return gdb_sys_no_syscall; + case 352 /* sched_getattr */: return gdb_sys_no_syscall; + case 353 /* renameat2 */: return gdb_sys_no_syscall; + case 354 /* seccomp */: return gdb_sys_no_syscall; + case 356 /* memfd_create */: return gdb_sys_no_syscall; + case 357 /* bpf */: return gdb_sys_no_syscall; + case 358 /* execveat */: return gdb_sys_no_syscall; + case 364 /* accept4 */: return gdb_sys_no_syscall; + case 374 /* userfaultfd */: return gdb_sys_no_syscall; + case 375 /* membarrier */: return gdb_sys_no_syscall; + case 376 /* mlock2 */: return gdb_sys_no_syscall; + case 377 /* copy_file_range */: return gdb_sys_no_syscall; + case 378 /* preadv2 */: return gdb_sys_no_syscall; + case 379 /* pwritev2 */: return gdb_sys_no_syscall; + case 380 /* pkey_mprotect */: return gdb_sys_no_syscall; + case 381 /* pkey_alloc */: return gdb_sys_no_syscall; + case 382 /* pkey_free */: return gdb_sys_no_syscall; + case 384 /* arch_prctl */: return gdb_sys_no_syscall; + case 385 /* io_pgetevents */: return gdb_sys_no_syscall; + case 386 /* rseq */: return gdb_sys_no_syscall; + case 404 /* clock_settime64 */: return gdb_sys_no_syscall; + case 405 /* clock_adjtime64 */: return gdb_sys_no_syscall; + case 406 /* clock_getres_time64 */: return gdb_sys_no_syscall; + case 407 /* clock_nanosleep_time64 */: return gdb_sys_no_syscall; + case 408 /* timer_gettime64 */: return gdb_sys_no_syscall; + case 409 /* timer_settime64 */: return gdb_sys_no_syscall; + case 410 /* timerfd_gettime64 */: return gdb_sys_no_syscall; + case 411 /* timerfd_settime64 */: return gdb_sys_no_syscall; + case 412 /* utimensat_time64 */: return gdb_sys_no_syscall; + case 413 /* pselect6_time64 */: return gdb_sys_no_syscall; + case 414 /* ppoll_time64 */: return gdb_sys_no_syscall; + case 416 /* io_pgetevents_time64 */: return gdb_sys_no_syscall; + case 417 /* recvmmsg_time64 */: return gdb_sys_no_syscall; + case 418 /* mq_timedsend_time64 */: return gdb_sys_no_syscall; + case 419 /* mq_timedreceive_time64 */: return gdb_sys_no_syscall; + case 421 /* rt_sigtimedwait_time64 */: return gdb_sys_no_syscall; + case 422 /* futex_time64 */: return gdb_sys_no_syscall; + case 423 /* sched_rr_get_interval_time64 */: return gdb_sys_no_syscall; + case 424 /* pidfd_send_signal */: return gdb_sys_no_syscall; + case 425 /* io_uring_setup */: return gdb_sys_no_syscall; + case 426 /* io_uring_enter */: return gdb_sys_no_syscall; + case 427 /* io_uring_register */: return gdb_sys_no_syscall; + case 428 /* open_tree */: return gdb_sys_no_syscall; + case 429 /* move_mount */: return gdb_sys_no_syscall; + case 430 /* fsopen */: return gdb_sys_no_syscall; + case 431 /* fsconfig */: return gdb_sys_no_syscall; + case 432 /* fsmount */: return gdb_sys_no_syscall; + case 433 /* fspick */: return gdb_sys_no_syscall; + case 434 /* pidfd_open */: return gdb_sys_no_syscall; + case 435 /* clone3 */: return gdb_sys_no_syscall; + case 436 /* close_range */: return gdb_sys_no_syscall; + case 437 /* openat2 */: return gdb_sys_no_syscall; + case 438 /* pidfd_getfd */: return gdb_sys_no_syscall; + case 439 /* faccessat2 */: return gdb_sys_no_syscall; + case 440 /* process_madvise */: return gdb_sys_no_syscall; + case 441 /* epoll_pwait2 */: return gdb_sys_no_syscall; + case 442 /* mount_setattr */: return gdb_sys_no_syscall; + case 443 /* quotactl_fd */: return gdb_sys_no_syscall; + case 444 /* landlock_create_ruleset */: return gdb_sys_no_syscall; + case 445 /* landlock_add_rule */: return gdb_sys_no_syscall; + case 446 /* landlock_restrict_self */: return gdb_sys_no_syscall; + case 447 /* memfd_secret */: return gdb_sys_no_syscall; + case 448 /* process_mrelease */: return gdb_sys_no_syscall; + case 449 /* futex_waitv */: return gdb_sys_no_syscall; + case 450 /* set_mempolicy_home_node */: return gdb_sys_no_syscall; + case 451 /* cachestat */: return gdb_sys_no_syscall; + case 452 /* fchmodat2 */: return gdb_sys_no_syscall; + case 453 /* map_shadow_stack */: return gdb_sys_no_syscall; + case 454 /* futex_wake */: return gdb_sys_no_syscall; + case 455 /* futex_wait */: return gdb_sys_no_syscall; + case 456 /* futex_requeue */: return gdb_sys_no_syscall; + case 457 /* statmount */: return gdb_sys_no_syscall; + case 458 /* listmount */: return gdb_sys_no_syscall; + case 459 /* lsm_get_self_attr */: return gdb_sys_no_syscall; + case 460 /* lsm_set_self_attr */: return gdb_sys_no_syscall; + case 461 /* lsm_list_modules */: return gdb_sys_no_syscall; + case 462 /* mseal */: return gdb_sys_no_syscall; + case 463 /* setxattrat */: return gdb_sys_no_syscall; + case 464 /* getxattrat */: return gdb_sys_no_syscall; + case 465 /* listxattrat */: return gdb_sys_no_syscall; + case 466 /* removexattrat */: return gdb_sys_no_syscall; + + case 222 /* unused */: return gdb_sys_no_syscall; + case 223 /* unused */: return gdb_sys_no_syscall; + case 251 /* unused */: return gdb_sys_no_syscall; + case 285 /* unused */: return gdb_sys_no_syscall; + case 387 /* unused */: return gdb_sys_no_syscall; + case 388 /* unused */: return gdb_sys_no_syscall; + case 389 /* unused */: return gdb_sys_no_syscall; + case 390 /* unused */: return gdb_sys_no_syscall; + case 391 /* unused */: return gdb_sys_no_syscall; + case 392 /* unused */: return gdb_sys_no_syscall; + case 415 /* unused */: return gdb_sys_no_syscall; + + default: + break; + } if (syscall <= i386_syscall_max) return (enum gdb_syscall) syscall; base-commit: 465465ce9ca4f3e6e29aeaf33f6a2220693f4e62 -- 2.43.0