[PATCH] ld: Don't define section symbols for excluded sections

"H.J. Lu" <[email protected]> Thu, 30 Jul 2026 15:17:45 +0800
Newsgroups gmane.comp.gnu.binutils
Message-ID <CAMe9rOo-zgrwN88q7HMHDu8F4WTqcu1Cu9Cv5iaTjtyyST=fAQ@mail.gmail.com>
--0000000000008ebff10657cee028
Content-Type: text/plain; charset="UTF-8"

When the SEC_EXCLUDE bit is set on a section, the contents of the section
are excluded by the linker for non-relocatable output.  Define  __start,
__stop, .startof. and .sizeof. symbols for relocatable link or if the
SEC_EXCLUDE bit on the section is cleared.

PR ld/34448
* ldlang.c (lang_init_start_stop): Call lang_define_start_stop
for relocatable link or if the SEC_EXCLUDE bit on the section
is cleared.


-- 
H.J.

--0000000000008ebff10657cee028
Content-Type: text/x-patch; charset="US-ASCII"; 
	name="0001-ld-Don-t-define-section-symbols-for-excluded-section.patch"
Content-Disposition: attachment; 
	filename="0001-ld-Don-t-define-section-symbols-for-excluded-section.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_ms76kpac0>
X-Attachment-Id: f_ms76kpac0

RnJvbSBlOTM5ZDFlMDQyNjUzNWE4NjRjNzVlNTZlOTNmMTMwMWQzOGY0MzQxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhqbC50b29sc0BnbWFpbC5jb20+CkRhdGU6
IFRodSwgMzAgSnVsIDIwMjYgMTU6MTA6MzYgKzA4MDAKU3ViamVjdDogW1BBVENIXSBsZDogRG9u
J3QgZGVmaW5lIHNlY3Rpb24gc3ltYm9scyBmb3IgZXhjbHVkZWQgc2VjdGlvbnMKCldoZW4gdGhl
IFNFQ19FWENMVURFIGJpdCBpcyBzZXQgb24gYSBzZWN0aW9uLCB0aGUgY29udGVudHMgb2YgdGhl
IHNlY3Rpb24KYXJlIGV4Y2x1ZGVkIGJ5IHRoZSBsaW5rZXIgZm9yIG5vbi1yZWxvY2F0YWJsZSBv
dXRwdXQuICBEZWZpbmUgIF9fc3RhcnQsCl9fc3RvcCwgLnN0YXJ0b2YuIGFuZCAuc2l6ZW9mLiBz
eW1ib2xzIGZvciByZWxvY2F0YWJsZSBsaW5rIG9yIGlmIHRoZQpTRUNfRVhDTFVERSBiaXQgb24g
dGhlIHNlY3Rpb24gaXMgY2xlYXJlZC4KCglQUiBsZC8zNDQ0OAoJKiBsZGxhbmcuYyAobGFuZ19p
bml0X3N0YXJ0X3N0b3ApOiBDYWxsIGxhbmdfZGVmaW5lX3N0YXJ0X3N0b3AKCWZvciByZWxvY2F0
YWJsZSBsaW5rIG9yIGlmIHRoZSBTRUNfRVhDTFVERSBiaXQgb24gdGhlIHNlY3Rpb24KCWlzIGNs
ZWFyZWQuCgpTaWduZWQtb2ZmLWJ5OiBILkouIEx1IDxoamwudG9vbHNAZ21haWwuY29tPgotLS0K
IGxkL2xkbGFuZy5jIHwgMzkgKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0t
CiAxIGZpbGUgY2hhbmdlZCwgMjEgaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0pCgpkaWZm
IC0tZ2l0IGEvbGQvbGRsYW5nLmMgYi9sZC9sZGxhbmcuYwppbmRleCAzNTRmYTYzNWJhOC4uN2Rj
MzMxYzA0Y2QgMTAwNjQ0Ci0tLSBhL2xkL2xkbGFuZy5jCisrKyBiL2xkL2xkbGFuZy5jCkBAIC03
MjgzLDI4ICs3MjgzLDMxIEBAIGxhbmdfaW5pdF9zdGFydF9zdG9wICh2b2lkKQogCiAgIGZvciAo
YWJmZCA9IGxpbmtfaW5mby5pbnB1dF9iZmRzOyBhYmZkICE9IE5VTEw7IGFiZmQgPSBhYmZkLT5s
aW5rLm5leHQpCiAgICAgZm9yIChzID0gYWJmZC0+c2VjdGlvbnM7IHMgIT0gTlVMTDsgcyA9IHMt
Pm5leHQpCi0gICAgICB7Ci0JY29uc3QgY2hhciAqcHM7Ci0JY29uc3QgY2hhciAqc2VjbmFtZSA9
IHMtPm5hbWU7CisgICAgICBpZiAoYmZkX2xpbmtfcmVsb2NhdGFibGUgKCZsaW5rX2luZm8pCisJ
ICB8fCAocy0+ZmxhZ3MgJiBTRUNfRVhDTFVERSkgPT0gMCkKKwl7CisJICBjb25zdCBjaGFyICpw
czsKKwkgIGNvbnN0IGNoYXIgKnNlY25hbWUgPSBzLT5uYW1lOwogCi0JZm9yIChwcyA9IHNlY25h
bWU7ICpwcyAhPSAnXDAnOyBwcysrKQotCSAgaWYgKCFJU0FMTlVNICgodW5zaWduZWQgY2hhcikg
KnBzKSAmJiAqcHMgIT0gJ18nKQotCSAgICBicmVhazsKLQlpZiAoKnBzID09ICdcMCcpCi0JICB7
Ci0JICAgIGNoYXIgKnN5bWJvbCA9IChjaGFyICopIHhtYWxsb2MgKDEwICsgc3RybGVuIChzZWNu
YW1lKSk7CisJICBmb3IgKHBzID0gc2VjbmFtZTsgKnBzICE9ICdcMCc7IHBzKyspCisJICAgIGlm
ICghSVNBTE5VTSAoKHVuc2lnbmVkIGNoYXIpICpwcykgJiYgKnBzICE9ICdfJykKKwkgICAgICBi
cmVhazsKKwkgIGlmICgqcHMgPT0gJ1wwJykKKwkgICAgeworCSAgICAgIGNoYXIgKnN5bWJvbCA9
IChjaGFyICopIHhtYWxsb2MgKDEwICsgc3RybGVuIChzZWNuYW1lKSk7CiAKLQkgICAgc3ltYm9s
WzBdID0gbGVhZGluZ19jaGFyOwotCSAgICBzcHJpbnRmIChzeW1ib2wgKyAobGVhZGluZ19jaGFy
ICE9IDApLCAiX19zdGFydF8lcyIsIHNlY25hbWUpOwotCSAgICBsYW5nX2RlZmluZV9zdGFydF9z
dG9wIChzeW1ib2wsIHMpOworCSAgICAgIHN5bWJvbFswXSA9IGxlYWRpbmdfY2hhcjsKKwkgICAg
ICBzcHJpbnRmIChzeW1ib2wgKyAobGVhZGluZ19jaGFyICE9IDApLCAiX19zdGFydF8lcyIsCisJ
CSAgICAgICBzZWNuYW1lKTsKKwkgICAgICBsYW5nX2RlZmluZV9zdGFydF9zdG9wIChzeW1ib2ws
IHMpOwogCi0JICAgIHN5bWJvbFsxXSA9IGxlYWRpbmdfY2hhcjsKLQkgICAgbWVtY3B5IChzeW1i
b2wgKyAxICsgKGxlYWRpbmdfY2hhciAhPSAwKSwgIl9fc3RvcCIsIDYpOwotCSAgICBsYW5nX2Rl
ZmluZV9zdGFydF9zdG9wIChzeW1ib2wgKyAxLCBzKTsKKwkgICAgICBzeW1ib2xbMV0gPSBsZWFk
aW5nX2NoYXI7CisJICAgICAgbWVtY3B5IChzeW1ib2wgKyAxICsgKGxlYWRpbmdfY2hhciAhPSAw
KSwgIl9fc3RvcCIsIDYpOworCSAgICAgIGxhbmdfZGVmaW5lX3N0YXJ0X3N0b3AgKHN5bWJvbCAr
IDEsIHMpOwogCi0JICAgIGZyZWUgKHN5bWJvbCk7Ci0JICB9Ci0gICAgICB9CisJICAgICAgZnJl
ZSAoc3ltYm9sKTsKKwkgICAgfQorCX0KIH0KIAogLyogSXRlcmF0ZSBvdmVyIHN0YXJ0X3N0b3Bf
c3ltcy4gICovCi0tIAoyLjU1LjAKCg==
--0000000000008ebff10657cee028--