From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1792) id DB1CE3851C20; Fri, 24 Feb 2023 19:44:15 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DB1CE3851C20 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1677267855; bh=LIL9BaSwzYy05q+nwVDKMp4mUZc7qggZNs5U3q2OWzY=; h=From:To:Subject:Date:From; b=yXJtOGkQXjJAUh0KOOLsn/g4Mc6yctfGoi+Oif/UwVxBnzWC/WLSXnu2MSCf2qTX2 F0lvihuIt4sSMUdxBrLShUA2nDwmh+BVf9KDcm3ZTjl7KJacCfSpWA3u0Ry0Bg8raN ZOrhhNjV/S4m/08bqV7cySlX6t9RSMmlGHyyqlxk= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Samuel Thibault To: glibc-cvs@sourceware.org Subject: [glibc] hurd: Generalize init-first.c to support x86_64 X-Act-Checkin: glibc X-Git-Author: Sergey Bugaev X-Git-Refname: refs/heads/master X-Git-Oldrev: b020355f382b658b3b99e8e3575dd16f8757a148 X-Git-Newrev: 91689649656314b04f3dbee0415a9254eb1424dd Message-Id: <20230224194415.DB1CE3851C20@sourceware.org> Date: Fri, 24 Feb 2023 19:44:15 +0000 (GMT) List-Id: https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=91689649656314b04f3dbee0415a9254eb1424dd commit 91689649656314b04f3dbee0415a9254eb1424dd Author: Sergey Bugaev Date: Thu Feb 23 18:14:36 2023 +0300 hurd: Generalize init-first.c to support x86_64 Signed-off-by: Sergey Bugaev Message-Id: <20230223151436.49180-2-bugaevc@gmail.com> Diff: --- sysdeps/mach/hurd/{i386 => x86}/init-first.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sysdeps/mach/hurd/i386/init-first.c b/sysdeps/mach/hurd/x86/init-first.c similarity index 97% rename from sysdeps/mach/hurd/i386/init-first.c rename to sysdeps/mach/hurd/x86/init-first.c index 05424563bf..2fccaefdd2 100644 --- a/sysdeps/mach/hurd/i386/init-first.c +++ b/sysdeps/mach/hurd/x86/init-first.c @@ -225,9 +225,15 @@ _hurd_stack_setup (void) void doinit (intptr_t *data) { init ((void **) data); +# ifdef __x86_64__ + asm volatile ("movq %0, %%rsp\n" /* Switch to new outermost stack. */ + "xorq %%rbp, %%rbp\n" /* Clear outermost frame pointer. */ + "jmp *%1" : : "r" (data), "r" (caller)); +# else asm volatile ("movl %0, %%esp\n" /* Switch to new outermost stack. */ "xorl %%ebp, %%ebp\n" /* Clear outermost frame pointer. */ "jmp *%1" : : "r" (data), "r" (caller)); +# endif __builtin_unreachable (); }