From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lj1-x232.google.com (mail-lj1-x232.google.com [IPv6:2a00:1450:4864:20::232]) by sourceware.org (Postfix) with ESMTPS id AD9433858405 for ; Fri, 22 Jul 2022 22:02:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org AD9433858405 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=martin.st Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=martin.st Received: by mail-lj1-x232.google.com with SMTP id o12so6918026ljc.3 for ; Fri, 22 Jul 2022 15:02:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=martin-st.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=PWeZDMFMzhqAZ1urfl30/UWI/+yR9IVuq2NFT8v7cyE=; b=ebN3pXO5OONfV0+IdapTPNF/09vpFkiTVDPh6gDhzmuixexTzOMP63GQuSN0XnYp15 shpGz3u+MaFNusf4KfYffjcegFQEup2qDKPUgn4huKnRQdIjLMl3CZqMVXIMGg5gf33A 6VZaSNHawRs9OPTJAp+jW8ZIU4vBYgvvVLtyig/sn0a2DV+dvKxoXFRqQBWqyEWOQit6 lMHrNT44mbTbi/HvB7wiFJyrdLvU8HzaYvrCAc51osE/RZaPyd0VwiAS/QIstPLAq/z/ ThTUGOfhDtt5MuZv73rE0ZP3AIPSIiKdVvlWOqJASuUeLSkfzkPPYkcNpuhg1jdIovtD Hnww== 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=PWeZDMFMzhqAZ1urfl30/UWI/+yR9IVuq2NFT8v7cyE=; b=W9RWtyXZRjNAww2LPS66k94O0fa3cRtLk/6BQ8HwLmiP1UQEpY1tIZZqjY6pyVD5We j3+ZtSHvVXSh7ieA6AHM09+MxFspNB3dzWeXoNgr/2ere3qR/a/F7INfV+DZsl/CTPJD X8Jhm2VHOvfC5O2y2bibP9SaKaMnBYp71mwk+p0He+DOmwyDkrjjPGjLCw2I5mcQ7EH1 +iTrgXh6ozrocFDGCqKoJrHifNB5Rxo++WuscTgiHAU0ReHiKJuwMDPCMXxzdW4bGmoE n0fuCwaZfq6d1EAAhZtTvonpJiaTJ4I0AWE+3K9y8EM6WNqdHv1PCrNO8d9yV6Jsaaie /paQ== X-Gm-Message-State: AJIora9H0jZoeg7TBmNhMBVqhgtgqOZYw4T24IV7JgDJ5bY7RmfLt7AI nqLpMcpqZwrQvGsGGe80uhy9QnVQ0mr/Bgip X-Google-Smtp-Source: AGRyM1s3Tgb//jL2R7JQaRO1+zY1nc3lo5Q0K5j8tS0nEoVmg5oBLjSoxCUTIgA+CpTys2yBxLab/A== X-Received: by 2002:a2e:b0e2:0:b0:25d:6956:d963 with SMTP id h2-20020a2eb0e2000000b0025d6956d963mr709547ljl.209.1658527326284; Fri, 22 Jul 2022 15:02:06 -0700 (PDT) Received: from localhost.localdomain (dsl-tkubng21-58c01c-243.dhcp.inet.fi. [88.192.28.243]) by smtp.gmail.com with ESMTPSA id s7-20020a056512202700b0048a7c86f4e7sm240253lfs.291.2022.07.22.15.02.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Jul 2022 15:02:05 -0700 (PDT) From: Martin Storsjo To: binutils@sourceware.org Subject: [PATCH v2 2/2] ld: Support the -exclude-symbols option via COFF def files, with the EXCLUDE_SYMBOLS keyword Date: Sat, 23 Jul 2022 01:02:03 +0300 Message-Id: <20220722220203.1712670-2-martin@martin.st> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220722220203.1712670-1-martin@martin.st> References: <20220722220203.1712670-1-martin@martin.st> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-14.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, JMQ_SPF_NEUTRAL, 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-List-Received-Date: Fri, 22 Jul 2022 22:02:11 -0000 This was requested in review. --- WIP: The testcase doesn't run successfully. How do I pass the full path to exclude-symbols-def.def as parameter to the ld command? --- ld/deffilep.y | 3 +++ ld/testsuite/ld-pe/exclude-symbols-def.d | 10 ++++++++++ ld/testsuite/ld-pe/exclude-symbols-def.def | 4 ++++ ld/testsuite/ld-pe/exclude-symbols-def.s | 11 +++++++++++ ld/testsuite/ld-pe/pe.exp | 1 + 5 files changed, 29 insertions(+) create mode 100644 ld/testsuite/ld-pe/exclude-symbols-def.d create mode 100644 ld/testsuite/ld-pe/exclude-symbols-def.def create mode 100644 ld/testsuite/ld-pe/exclude-symbols-def.s diff --git a/ld/deffilep.y b/ld/deffilep.y index 126f33a1352..e8d31c6dae7 100644 --- a/ld/deffilep.y +++ b/ld/deffilep.y @@ -249,6 +249,7 @@ keyword_as_name: BASE { $$ = "BASE"; } | DATAL { $$ = "data"; } | DESCRIPTION { $$ = "DESCRIPTION"; } | DIRECTIVE { $$ = "DIRECTIVE"; } + | EXCLUDE_SYMBOLS { $$ = "EXCLUDE_SYMBOLS"; } | EXECUTE { $$ = "EXECUTE"; } | EXPORTS { $$ = "EXPORTS"; } | HEAPSIZE { $$ = "HEAPSIZE"; } @@ -337,6 +338,7 @@ anylang_id: ID { $$ = $1; } symbol_list: anylang_id { def_exclude_symbols ($1); } + | symbol_list anylang_id { def_exclude_symbols ($2); } | symbol_list ',' anylang_id { def_exclude_symbols ($3); } ; @@ -1355,6 +1357,7 @@ tokens[] = { "data", DATAL }, { "DESCRIPTION", DESCRIPTION }, { "DIRECTIVE", DIRECTIVE }, + { "EXCLUDE_SYMBOLS", EXCLUDE_SYMBOLS }, { "EXECUTE", EXECUTE }, { "EXPORTS", EXPORTS }, { "HEAPSIZE", HEAPSIZE }, diff --git a/ld/testsuite/ld-pe/exclude-symbols-def.d b/ld/testsuite/ld-pe/exclude-symbols-def.d new file mode 100644 index 00000000000..4582d03c670 --- /dev/null +++ b/ld/testsuite/ld-pe/exclude-symbols-def.d @@ -0,0 +1,10 @@ +#source: exclude-symbols-def.s +#target: i*86-*-cygwin* i*86-*-pe i*86-*-mingw* +#ld: -shared exclude-symbols-def.def +#objdump: -p + +#... +.*\[[ ]*0\] sym1 +.*\[[ ]*1\] sym3 +.*\[[ ]*2\] sym5 +#pass diff --git a/ld/testsuite/ld-pe/exclude-symbols-def.def b/ld/testsuite/ld-pe/exclude-symbols-def.def new file mode 100644 index 00000000000..c0cee7b1e70 --- /dev/null +++ b/ld/testsuite/ld-pe/exclude-symbols-def.def @@ -0,0 +1,4 @@ +LIBRARY exclude-symbols-def.dll +EXCLUDE_SYMBOLS +sym2 +sym4 diff --git a/ld/testsuite/ld-pe/exclude-symbols-def.s b/ld/testsuite/ld-pe/exclude-symbols-def.s new file mode 100644 index 00000000000..fd533bb44c9 --- /dev/null +++ b/ld/testsuite/ld-pe/exclude-symbols-def.s @@ -0,0 +1,11 @@ +.global _sym1 +.global _sym2 +.global _sym3 +.global _sym4 +.global _sym5 +_sym1: +_sym2: +_sym3: +_sym4: +_sym5: + ret diff --git a/ld/testsuite/ld-pe/pe.exp b/ld/testsuite/ld-pe/pe.exp index 8dfdd0cc16e..45b16f843ac 100644 --- a/ld/testsuite/ld-pe/pe.exp +++ b/ld/testsuite/ld-pe/pe.exp @@ -126,3 +126,4 @@ setup_xfail mcore-*-pe run_ld_link_tests $foreign_sym_test run_dump_test "exclude-symbols-embedded" +run_dump_test "exclude-symbols-def" -- 2.25.1