From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.90_1) id 1nV6C8-0001OV-OJ for mharc-grub-devel@gnu.org; Fri, 18 Mar 2022 02:34:40 -0400 Received: from eggs.gnu.org ([209.51.188.92]:59426) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nV6C6-0001LN-5d for grub-devel@gnu.org; Fri, 18 Mar 2022 02:34:38 -0400 Received: from [2607:f8b0:4864:20::731] (port=33358 helo=mail-qk1-x731.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nV6C3-0003f5-0X for grub-devel@gnu.org; Fri, 18 Mar 2022 02:34:36 -0400 Received: by mail-qk1-x731.google.com with SMTP id k125so6177692qkf.0 for ; Thu, 17 Mar 2022 23:34:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=efficientek-com.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=d3ovJLd6DfztupfLQQwQB/cLItXC/uaRdO+Tvw0fgB8=; b=QagIYW+dRG3iaftdntKOB6xy8S341ciPz4GWXsZRXPf0rY8a+MTo0fPMq9ffHFMPZX V7JywDl3UNyKjAUkXmpxy9WJlGyff79Jh+PRaV5ynXJC0KbMY3pY40J3g+kx+lgcAuLz tctItwHjDnA6FnBgQzewoh9mtUzUuPIX+t+SV996bA2AqcxhoRosTViyugdaQU/DAWYY HzZB1T/gbUUh6oKBocKihhLYxcGvFZ75Sie1qLx5pVyB3g4D0MaXWeN/SN34rp8GZ3e+ Yn1tjuMnILHVHlE9FHIpJSrMy5SVKLfrSTuzghCJ9bgCAgGje2+biGLIjNC5BmMeEcp8 3ivg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=d3ovJLd6DfztupfLQQwQB/cLItXC/uaRdO+Tvw0fgB8=; b=o09BZwM6jyq5gbuEk1J5Sz8IYAZqx1JJcarEOyvWtLp+3eFH/WoG4d04wKDLcDCNO4 ENYeqOpcyrr7LXV0koAXb0ZGbeIoHqkiNto3t6wQvXfzkCF9ecOEbsOuxrst2NEk5Qk4 yj8vSnxmOCIELPd69dM7m8SQ++BAmQvdsAvdVzkMD2iGmAXz/5o9HCOLkK6cfesHk1O4 jZwPbF4WBjpfbLrwGUySMRA/qcSNf6d1TpHZlmyQXKdhJlTc8hv/5tm4wxPthr7IkUoy 34jYtnrQLtPeMWo455GCAeIEU6PtGjPsnnnUd30dRVNQTzCtiBM2UPJlxwQFmE79Oncm AWzg== X-Gm-Message-State: AOAM531V0K97dsFDBgGDCmDxBBFqDOZa46wnab8LmfxH7jRhpuCAlT1V 8dzNYZsZH745COEw7Ow9pqjT6w== X-Google-Smtp-Source: ABdhPJwrBCnrL5tR8ptbTvUxbV10dbTzHCJ1O0B4d6HksAv6cYtvJVDQ5aZczXy3oLGAM0U9SHEQrA== X-Received: by 2002:a05:620a:1981:b0:507:4a52:f310 with SMTP id bm1-20020a05620a198100b005074a52f310mr5029336qkb.611.1647585273489; Thu, 17 Mar 2022 23:34:33 -0700 (PDT) Received: from localhost.localdomain (51-15-0-88.rev.poneytelecom.eu. [51.15.0.88]) by smtp.gmail.com with ESMTPSA id x9-20020ae9f809000000b0067b4356e01esm3403934qkh.30.2022.03.17.23.34.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 17 Mar 2022 23:34:33 -0700 (PDT) From: Glenn Washburn To: Daniel Kiper , grub-devel@gnu.org Cc: Glenn Washburn Subject: [PATCH v2] gdb: Add malloc and free symbols to kernel.exec to improve gdb functionality Date: Fri, 18 Mar 2022 01:34:05 -0500 Message-Id: <20220318063405.3524547-1-development@efficientek.com> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::731 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::731; envelope-from=development@efficientek.com; helo=mail-qk1-x731.google.com X-Spam_score_int: -4 X-Spam_score: -0.5 X-Spam_bar: / X-Spam_report: (-0.5 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, PDS_HP_HELO_NORDNS=0.659, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Mar 2022 06:34:38 -0000 Add linker flags when linking kernel.exec to have malloc and free point to grub_malloc and grub_free respectively. Some gdb functionality depends on gdb locating the symbols "malloc" and "free", such as dynamically creating strings for arguments to injected function calls. A trivial example would the gdb command 'p strlen("astring")'. Make sure not to do this on emu platforms, or an infinite loop occurs because emu has a special grub_malloc() that calls malloc(). Signed-off-by: Glenn Washburn --- conf/Makefile.common | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/conf/Makefile.common b/conf/Makefile.common index b343a038ee..2d8f1bf2e8 100644 --- a/conf/Makefile.common +++ b/conf/Makefile.common @@ -39,6 +39,13 @@ LDFLAGS_KERNEL = $(LDFLAGS_PLATFORM) -nostdlib $(TARGET_LDFLAGS_OLDMAGIC) CPPFLAGS_KERNEL = $(CPPFLAGS_CPU) $(CPPFLAGS_PLATFORM) -DGRUB_KERNEL=1 CCASFLAGS_KERNEL = $(CCASFLAGS_CPU) $(CCASFLAGS_PLATFORM) STRIPFLAGS_KERNEL = -R .rel.dyn -R .reginfo -R .note -R .comment -R .drectve -R .note.gnu.gold-version -R .MIPS.abiflags -R .ARM.exidx +if !COND_emu +if COND_HAVE_ASM_USCORE + LDFLAGS_KERNEL += -Wl,--defsym=_malloc=_grub_malloc -Wl,--defsym=_free=_grub_free +else + LDFLAGS_KERNEL += -Wl,--defsym=malloc=grub_malloc -Wl,--defsym=free=grub_free +endif +endif CFLAGS_MODULE = $(CFLAGS_PLATFORM) -ffreestanding LDFLAGS_MODULE = $(LDFLAGS_PLATFORM) -nostdlib $(TARGET_LDFLAGS_OLDMAGIC) -Wl,-r -- 2.27.0