From patchwork Fri Dec 23 10:50:52 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alan Modra X-Patchwork-Id: 36206 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:e747:0:0:0:0:0 with SMTP id c7csp253071wrn; Fri, 23 Dec 2022 02:51:25 -0800 (PST) X-Google-Smtp-Source: AMrXdXskbRwuV+KCMoJVTu/ybYdjm2dQXt9b6LDaPZSNPMlrXZRg2TxC04PmNf++9zC1y+O8XRDE X-Received: by 2002:a17:906:b00d:b0:7c1:8ba6:6eb3 with SMTP id v13-20020a170906b00d00b007c18ba66eb3mr7974881ejy.35.1671792685068; Fri, 23 Dec 2022 02:51:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671792685; cv=none; d=google.com; s=arc-20160816; b=E80Tud4uoiXnYNzi7Wwf+KFbggAc25f8PQD1uwpWZFqZyVomd+ImZjKsMPkpTP5FVt H7RClgQ9y89WlMVuzf4qcxAiVMqJ5/B5oZYSsLg90E/BAy8I/lwDKm6NWvmUvk94WU6w 1aOuk9L5v3FgSRwJU6fRYna0F3lQU77oWtGSl4Laca21h4F7HAZu/ng465bce7DoPggI Sd7vEyFJoqB8oVt1ajzup055y9ZemY4TocVC1BO7ARblZiBn2rKjPjRGIpy4lgV+l3ZJ 40hExF0n/YOpUfZVCIaOF+9oHLvI40pjpXkvT5tS5n6X6vENVn6e3kPxJg0prma9X2Ab JIaw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:from:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence :content-disposition:mime-version:message-id:subject:cc:to:date :dmarc-filter:delivered-to:dkim-signature:dkim-filter; bh=Bt4CqdgNQdFXk8sd1ne8LaLP1lG9aOEDndh0UfonLog=; b=BkIQAtfSuQnVxL//zo0Kp8nUdMdJas2/P2WCb05vrA1WsQm/G3haWUL4dNhE9aQwRH Foo6qHqY/9LH8rghsZJpv509plNIB6plIryIHzd6Q72VrrEG/68RkFVDSsrL0npvzRgw vRfQd6RUqPLx7gU/2BN9nxWCacllRHoGlkB0N0SRlreCVdE8bVD4Bn3L6TqyAKsYlnaB T+3VOzwzgTUr+UGilUAbxlVAIdSEhZj5fNjVDdGTICCqKCUOqsas06o/JXyYcTM5TIas ZSVs09f+hN6h0xU7d2eakhJvfsVJaVaiRtymGoCZPIlp5AiwNSj1tKr2VtkWzQuEUNW1 WgIw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=IVW4EnP9; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id hz3-20020a1709072ce300b007c18f5f64cfsi2489691ejc.996.2022.12.23.02.51.24 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 23 Dec 2022 02:51:25 -0800 (PST) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=IVW4EnP9; spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id B892B3858425 for ; Fri, 23 Dec 2022 10:51:23 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B892B3858425 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1671792683; bh=Bt4CqdgNQdFXk8sd1ne8LaLP1lG9aOEDndh0UfonLog=; h=Date:To:Cc:Subject:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From:Reply-To:From; b=IVW4EnP9AHFNCLpdw5OTmk4tiiDkBj12CQGmK2ucJ3eslMl7yEPOLYuByKlmdd8du z/Y/7vZIkQDBKUY5ghUL4D5tn/hd+eXpLNqfhjKvriUIBsDNfpi+FyWekByAsyT1Hk gvC8bLgchlnZ8yM97+y16o8Y5Mk6aB3XIaVFeYZQ= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-pj1-x1031.google.com (mail-pj1-x1031.google.com [IPv6:2607:f8b0:4864:20::1031]) by sourceware.org (Postfix) with ESMTPS id 138DC385B50B for ; Fri, 23 Dec 2022 10:50:57 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 138DC385B50B Received: by mail-pj1-x1031.google.com with SMTP id p4so4659976pjk.2 for ; Fri, 23 Dec 2022 02:50:57 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-disposition:mime-version:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Bt4CqdgNQdFXk8sd1ne8LaLP1lG9aOEDndh0UfonLog=; b=LAnal/V6E2UOFyRGvyKyLNlEZMBnRKhVyTc/dlqB0vfoq2/5ww7a4ws1TJiOmPzJUK BAkjj512fZ4Bqg8xZQjc3HerGQkUhtDnp6/yUKsDYX7d4d/Ka3w4naz6NQtXe9kIIt5I Y+so1J6/KFrpzVclZNQnCsHwtll50tBcGPWSxY3hwQtHl8CRz4LqyWLhlYgGinvaccnR L9Y1z8ZzDtqGrLDsrhdLn8YFOHNBOxXmURxrjrhqDT/ipLdIIQgZXSZJWFMdrL5J7VrD 34xOVzdRpZrZMrWKTHI8zmsMhl1VM/s+uYPA/Nqy2nvW4JA0yvsr9mE+uDxVBEmQffPB iWbQ== X-Gm-Message-State: AFqh2kqdlUHYx9tqBR+KHdpfV1/z5wOGiTU7FUFPfyO6WL9YGSJR13M5 HSvaObtcFk1TDVmtcfHfODw0PcNFjWw= X-Received: by 2002:a05:6a20:9589:b0:b0:2070:2ef5 with SMTP id iu9-20020a056a20958900b000b020702ef5mr11978873pzb.22.1671792655857; Fri, 23 Dec 2022 02:50:55 -0800 (PST) Received: from squeak.grove.modra.org (158.106.96.58.static.exetel.com.au. [58.96.106.158]) by smtp.gmail.com with ESMTPSA id a125-20020a621a83000000b00575467891besm2251675pfa.136.2022.12.23.02.50.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 23 Dec 2022 02:50:55 -0800 (PST) Received: by squeak.grove.modra.org (Postfix, from userid 1000) id C5B2E1142CE5; Fri, 23 Dec 2022 21:20:52 +1030 (ACDT) Date: Fri, 23 Dec 2022 21:20:52 +1030 To: binutils@sourceware.org Cc: Mark Harmstone Subject: pdb build fixes Message-ID: MIME-Version: 1.0 Content-Disposition: inline X-Spam-Status: No, score=-3035.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Alan Modra via Binutils From: Alan Modra Reply-To: Alan Modra Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1753001686287951879?= X-GMAIL-MSGID: =?utf-8?q?1753001686287951879?= Enable compilation of ld/pdb.c just for x86, as is done for bfd/pdb.c. This reduces the size of ld and is necessary with the following patches that call a COFF-only bfd function from ld/pdb.c. Without it we'd break every non-COFF target build. diff --git a/ld/Makefile.am b/ld/Makefile.am index 65fef4e1690..a1ef4ad8c24 100644 --- a/ld/Makefile.am +++ b/ld/Makefile.am @@ -466,6 +466,7 @@ ALL_64_EMULATIONS = $(ALL_64_EMULATION_SOURCES:.c=.@OBJEXT@) ALL_EMUL_EXTRA_OFILES = \ deffilep.@OBJEXT@ \ + pdb.@OBJEXT@ \ pe-dll.@OBJEXT@ \ ldelf.@OBJEXT@ \ ldelfgen.@OBJEXT@ @@ -496,7 +497,7 @@ OFILES = ldgram.@OBJEXT@ ldlex-wrapper.@OBJEXT@ lexsup.@OBJEXT@ ldlang.@OBJEXT@ mri.@OBJEXT@ ldctor.@OBJEXT@ ldmain.@OBJEXT@ plugin.@OBJEXT@ \ ldwrite.@OBJEXT@ ldexp.@OBJEXT@ ldemul.@OBJEXT@ ldver.@OBJEXT@ ldmisc.@OBJEXT@ \ ldfile.@OBJEXT@ ldcref.@OBJEXT@ ${EMULATION_OFILES} ${EMUL_EXTRA_OFILES} \ - ldbuildid.@OBJEXT@ pdb.@OBJEXT@ + ldbuildid.@OBJEXT@ STAGESTUFF = *.@OBJEXT@ ldscripts/* e*.c @@ -956,11 +957,11 @@ $(ALL_EMULATION_SOURCES) $(ALL_64_EMULATION_SOURCES): $(GEN_DEPENDS) # We need this for automake to use YLWRAP. EXTRA_ld_new_SOURCES = deffilep.y ldlex.l # Allow dependency tracking to work for these files, too. -EXTRA_ld_new_SOURCES += pep-dll.c pe-dll.c ldelf.c ldelfgen.c +EXTRA_ld_new_SOURCES += ldelf.c ldelfgen.c pdb.c pep-dll.c pe-dll.c ld_new_SOURCES = ldgram.y ldlex-wrapper.c lexsup.c ldlang.c mri.c ldctor.c ldmain.c \ ldwrite.c ldexp.c ldemul.c ldver.c ldmisc.c ldfile.c ldcref.c plugin.c \ - ldbuildid.c pdb.c + ldbuildid.c ld_new_DEPENDENCIES = $(EMULATION_OFILES) $(EMUL_EXTRA_OFILES) \ $(BFDLIB) $(LIBCTF) $(LIBIBERTY) $(LIBINTL_DEP) $(JANSSON_LIBS) ld_new_LDADD = $(EMULATION_OFILES) $(EMUL_EXTRA_OFILES) $(BFDLIB) $(LIBCTF) \ diff --git a/ld/Makefile.in b/ld/Makefile.in index ff4c916c27b..10b63629e2f 100644 --- a/ld/Makefile.in +++ b/ld/Makefile.in @@ -212,7 +212,7 @@ am_ld_new_OBJECTS = ldgram.$(OBJEXT) ldlex-wrapper.$(OBJEXT) \ ldctor.$(OBJEXT) ldmain.$(OBJEXT) ldwrite.$(OBJEXT) \ ldexp.$(OBJEXT) ldemul.$(OBJEXT) ldver.$(OBJEXT) \ ldmisc.$(OBJEXT) ldfile.$(OBJEXT) ldcref.$(OBJEXT) \ - plugin.$(OBJEXT) ldbuildid.$(OBJEXT) pdb.$(OBJEXT) + plugin.$(OBJEXT) ldbuildid.$(OBJEXT) ld_new_OBJECTS = $(am_ld_new_OBJECTS) am__DEPENDENCIES_1 = @ENABLE_LIBCTF_TRUE@am__DEPENDENCIES_2 = ../libctf/libctf.la @@ -965,6 +965,7 @@ ALL_64_EMULATION_SOURCES = \ ALL_64_EMULATIONS = $(ALL_64_EMULATION_SOURCES:.c=.@OBJEXT@) ALL_EMUL_EXTRA_OFILES = \ deffilep.@OBJEXT@ \ + pdb.@OBJEXT@ \ pe-dll.@OBJEXT@ \ ldelf.@OBJEXT@ \ ldelfgen.@OBJEXT@ @@ -994,7 +995,7 @@ OFILES = ldgram.@OBJEXT@ ldlex-wrapper.@OBJEXT@ lexsup.@OBJEXT@ ldlang.@OBJEXT@ mri.@OBJEXT@ ldctor.@OBJEXT@ ldmain.@OBJEXT@ plugin.@OBJEXT@ \ ldwrite.@OBJEXT@ ldexp.@OBJEXT@ ldemul.@OBJEXT@ ldver.@OBJEXT@ ldmisc.@OBJEXT@ \ ldfile.@OBJEXT@ ldcref.@OBJEXT@ ${EMULATION_OFILES} ${EMUL_EXTRA_OFILES} \ - ldbuildid.@OBJEXT@ pdb.@OBJEXT@ + ldbuildid.@OBJEXT@ STAGESTUFF = *.@OBJEXT@ ldscripts/* e*.c SRC_POTFILES = $(CFILES) $(HFILES) @@ -1008,12 +1009,12 @@ GEN_DEPENDS = $(srcdir)/genscripts.sh stringify.sed # Allow dependency tracking to work for these files, too. # Dependency tracking for the generated emulation files. -EXTRA_ld_new_SOURCES = deffilep.y ldlex.l pep-dll.c pe-dll.c ldelf.c \ - ldelfgen.c $(ALL_EMULATION_SOURCES) \ +EXTRA_ld_new_SOURCES = deffilep.y ldlex.l ldelf.c ldelfgen.c pdb.c \ + pep-dll.c pe-dll.c $(ALL_EMULATION_SOURCES) \ $(ALL_64_EMULATION_SOURCES) ld_new_SOURCES = ldgram.y ldlex-wrapper.c lexsup.c ldlang.c mri.c ldctor.c ldmain.c \ ldwrite.c ldexp.c ldemul.c ldver.c ldmisc.c ldfile.c ldcref.c plugin.c \ - ldbuildid.c pdb.c + ldbuildid.c ld_new_DEPENDENCIES = $(EMULATION_OFILES) $(EMUL_EXTRA_OFILES) \ $(BFDLIB) $(LIBCTF) $(LIBIBERTY) $(LIBINTL_DEP) $(JANSSON_LIBS) diff --git a/ld/configure.tgt b/ld/configure.tgt index 741b246f67e..5971866fb61 100644 --- a/ld/configure.tgt +++ b/ld/configure.tgt @@ -423,17 +423,17 @@ i[3-7]86-*-moss*) targ_emul=i386moss targ_extra_emuls=i386msdos ;; i[3-7]86-*-winnt*) targ_emul=i386pe ; - targ_extra_ofiles="deffilep.o pe-dll.o" + targ_extra_ofiles="deffilep.o pdb.o pe-dll.o" ;; i[3-7]86-*-pe) targ_emul=i386pe ; - targ_extra_ofiles="deffilep.o pe-dll.o" + targ_extra_ofiles="deffilep.o pdb.o pe-dll.o" ;; i[3-7]86-*-cygwin*) targ_emul=i386pe ; - targ_extra_ofiles="deffilep.o pe-dll.o" ; + targ_extra_ofiles="deffilep.o pdb.o pe-dll.o" ; test "$targ" != "$host" && LIB_PATH='${tooldir}/lib/w32api' ;; i[3-7]86-*-mingw32*) targ_emul=i386pe ; - targ_extra_ofiles="deffilep.o pe-dll.o" + targ_extra_ofiles="deffilep.o pdb.o pe-dll.o" ;; i[3-7]86-*-interix*) targ_emul=i386pe_posix; targ_extra_ofiles="deffilep.o pe-dll.o" @@ -1047,16 +1047,16 @@ x86_64-*-freebsd* | x86_64-*-kfreebsd*-gnu) ;; x86_64-*-pe | x86_64-*-pep) targ_emul=i386pep ; targ_extra_emuls=i386pe ; - targ_extra_ofiles="deffilep.o pep-dll-x86_64.o pe-dll.o" + targ_extra_ofiles="deffilep.o pdb.o pep-dll-x86_64.o pe-dll.o" ;; x86_64-*-cygwin) targ_emul=i386pep ; targ_extra_emuls=i386pe - targ_extra_ofiles="deffilep.o pep-dll.o pe-dll.o" + targ_extra_ofiles="deffilep.o pdb.o pep-dll.o pe-dll.o" test "$targ" != "$host" && LIB_PATH='${tooldir}/lib/w32api' ;; x86_64-*-mingw*) targ_emul=i386pep ; targ_extra_emuls=i386pe - targ_extra_ofiles="deffilep.o pep-dll.o pe-dll.o" + targ_extra_ofiles="deffilep.o pdb.o pep-dll.o pe-dll.o" ;; xgate-*-*) targ_emul=xgateelf targ_extra_ofiles=ldelfgen.o diff --git a/ld/emultempl/pe.em b/ld/emultempl/pe.em index 1e0e23df043..cd4634180e7 100644 --- a/ld/emultempl/pe.em +++ b/ld/emultempl/pe.em @@ -15,6 +15,13 @@ case ${target} in ;; esac +case ${target} in + x86_64-*-mingw* | x86_64-*-pe | x86_64-*-pep | x86_64-*-cygwin | \ + i[3-7]86-*-mingw32* | i[3-7]86-*-cygwin* | i[3-7]86-*-winnt | i[3-7]86-*-pe) + pdb_support=" ";; + *) +esac + rm -f e${EMULATION_NAME}.c (echo;echo;echo;echo;echo)>e${EMULATION_NAME}.c # there, now line numbers match ;-) fragment <pe_opthdr.ImageBase; +#ifdef PDB_H if (pdb_name) pdb_base_name = lbasename (pdb_name); +#endif /* Construct a debug directory entry which points to an immediately following CodeView record. */ struct internal_IMAGE_DEBUG_DIRECTORY idd; @@ -1336,7 +1350,11 @@ write_build_id (bfd *abfd) idd.MajorVersion = 0; idd.MinorVersion = 0; idd.Type = PE_IMAGE_DEBUG_TYPE_CODEVIEW; - idd.SizeOfData = sizeof (CV_INFO_PDB70) + (pdb_base_name ? strlen (pdb_base_name) : 0) + 1; + idd.SizeOfData = (sizeof (CV_INFO_PDB70) +#ifdef PDB_H + + (pdb_base_name ? strlen (pdb_base_name) : 0) +#endif + + 1); idd.AddressOfRawData = asec->vma - ib + link_order->offset + sizeof (struct external_IMAGE_DEBUG_DIRECTORY); idd.PointerToRawData = asec->filepos + link_order->offset @@ -1352,11 +1370,13 @@ write_build_id (bfd *abfd) if (bfd_bwrite (contents, sizeof (*ext), abfd) != sizeof (*ext)) return 0; +#ifdef PDB_H if (pdb) { if (!create_pdb_file (abfd, pdb_name, build_id)) return 0; } +#endif /* Construct the CodeView record. */ CODEVIEW_INFO cvinfo; @@ -1414,9 +1434,10 @@ setup_build_id (bfd *ibfd) s->size = sizeof (struct external_IMAGE_DEBUG_DIRECTORY) + sizeof (CV_INFO_PDB70) + 1; +#ifdef PDB_H if (pdb_name) s->size += strlen (lbasename (pdb_name)); - +#endif return true; } @@ -1447,6 +1468,7 @@ gld${EMULATION_NAME}_after_open (void) } #endif +#ifdef PDB_H if (pdb && !pdb_name) { const char *base = lbasename (bfd_get_filename (link_info.output_bfd)); @@ -1465,6 +1487,7 @@ gld${EMULATION_NAME}_after_open (void) memcpy (pdb_name, base, len); memcpy (pdb_name + len, suffix, sizeof (suffix)); } +#endif if (emit_build_id != NULL) { diff --git a/ld/emultempl/pep.em b/ld/emultempl/pep.em index e61414893ad..7b2a656c8ab 100644 --- a/ld/emultempl/pep.em +++ b/ld/emultempl/pep.em @@ -17,6 +17,13 @@ case ${target} in ;; esac +case ${target} in + x86_64-*-mingw* | x86_64-*-pe | x86_64-*-pep | x86_64-*-cygwin | \ + i[3-7]86-*-mingw32* | i[3-7]86-*-cygwin* | i[3-7]86-*-winnt | i[3-7]86-*-pe) + pdb_support=" ";; + *) +esac + rm -f e${EMULATION_NAME}.c (echo;echo;echo;echo;echo)>e${EMULATION_NAME}.c # there, now line numbers match ;-) fragment <pe_opthdr.ImageBase; +#ifdef PDB_H if (pdb_name) pdb_base_name = lbasename (pdb_name); +#endif /* Construct a debug directory entry which points to an immediately following CodeView record. */ struct internal_IMAGE_DEBUG_DIRECTORY idd; @@ -1328,7 +1349,11 @@ write_build_id (bfd *abfd) idd.MajorVersion = 0; idd.MinorVersion = 0; idd.Type = PE_IMAGE_DEBUG_TYPE_CODEVIEW; - idd.SizeOfData = sizeof (CV_INFO_PDB70) + (pdb_base_name ? strlen (pdb_base_name) : 0) + 1; + idd.SizeOfData = (sizeof (CV_INFO_PDB70) +#ifdef PDB_H + + (pdb_base_name ? strlen (pdb_base_name) : 0) +#endif + + 1); idd.AddressOfRawData = asec->vma - ib + link_order->offset + sizeof (struct external_IMAGE_DEBUG_DIRECTORY); idd.PointerToRawData = asec->filepos + link_order->offset @@ -1344,11 +1369,13 @@ write_build_id (bfd *abfd) if (bfd_bwrite (contents, sizeof (*ext), abfd) != sizeof (*ext)) return 0; +#ifdef PDB_H if (pdb) { if (!create_pdb_file (abfd, pdb_name, build_id)) return 0; } +#endif /* Construct the CodeView record. */ CODEVIEW_INFO cvinfo; @@ -1403,12 +1430,13 @@ setup_build_id (bfd *ibfd) One IMAGE_DEBUG_DIRECTORY entry, of type IMAGE_DEBUG_TYPE_CODEVIEW, pointing at a CV_INFO_PDB70 record containing the build-id, followed by PdbFileName if relevant. */ - s->size = sizeof (struct external_IMAGE_DEBUG_DIRECTORY) - + sizeof (CV_INFO_PDB70) + 1; + s->size = (sizeof (struct external_IMAGE_DEBUG_DIRECTORY) + + sizeof (CV_INFO_PDB70) + 1); +#ifdef PDB_H if (pdb_name) s->size += strlen (lbasename (pdb_name)); - +#endif return true; } @@ -1440,6 +1468,7 @@ gld${EMULATION_NAME}_after_open (void) } #endif +#ifdef PDB_H if (pdb && !pdb_name) { const char *base = lbasename (bfd_get_filename (link_info.output_bfd)); @@ -1458,6 +1487,7 @@ gld${EMULATION_NAME}_after_open (void) memcpy (pdb_name, base, len); memcpy (pdb_name + len, suffix, sizeof (suffix)); } +#endif if (emit_build_id != NULL) {