[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug ld/24576] New: Feature request: error out when passed the same link
From: |
jwerner at chromium dot org |
Subject: |
[Bug ld/24576] New: Feature request: error out when passed the same linker script with -T and as an object file |
Date: |
Fri, 17 May 2019 19:42:54 +0000 |
https://sourceware.org/bugzilla/show_bug.cgi?id=24576
Bug ID: 24576
Summary: Feature request: error out when passed the same linker
script with -T and as an object file
Product: binutils
Version: 2.32
Status: UNCONFIRMED
Severity: enhancement
Priority: P2
Component: ld
Assignee: unassigned at sourceware dot org
Reporter: jwerner at chromium dot org
Target Milestone: ---
This is just a small feature request to help people notice mistakes. When using
Makefiles to build things, it's easy to write rules like:
linker_script.ld: linker_script.ld.S
<preprocess with CPP>
my.elf: $(myobjects) $(somelibrary) linker_script.ld
$(LD) $(LDFLAGS) -o $@ -T linker_script.ld $^
There's a subtle error in the above: sincer linker_script.ld is part of the
prerequisites, it will be part of the $^ variable expansion, despite already
being listed explicitly for the -T flag. This means the linker will both use it
as the default linker script and then use it again to "augment" that script.
This will often not lead to an obvious error but cause all kinds of subtle
hijinks with symbol placement. The resulting binary may still run and contain
hard to understand rare errors.
I don't think there could ever be a valid use case where you'd want to pass the
same file as an argument to -T and as an augment linker script later on, so
could you just add a check to error out somewhere if that happens? That could
save the people running into this a lot of headache.
--
You are receiving this mail because:
You are on the CC list for the bug.
- [Bug ld/24576] New: Feature request: error out when passed the same linker script with -T and as an object file,
jwerner at chromium dot org <=
- [Bug ld/24576] Feature request: error out when passed the same linker script with -T and as an object file, nickc at redhat dot com, 2019/05/21
- [Bug ld/24576] Feature request: error out when passed the same linker script with -T and as an object file, jwerner at chromium dot org, 2019/05/21
- [Bug ld/24576] Feature request: error out when passed the same linker script with -T and as an object file, nickc at redhat dot com, 2019/05/22
- [Bug ld/24576] Feature request: error out when passed the same linker script with -T and as an object file, nickc at redhat dot com, 2019/05/22
- [Bug ld/24576] Feature request: error out when passed the same linker script with -T and as an object file, cvs-commit at gcc dot gnu.org, 2019/05/22
- [Bug ld/24576] Feature request: error out when passed the same linker script with -T and as an object file, nickc at redhat dot com, 2019/05/22
- [Bug ld/24576] Feature request: error out when passed the same linker script with -T and as an object file, jwerner at chromium dot org, 2019/05/22
- [Bug ld/24576] Feature request: error out when passed the same linker script with -T and as an object file, amodra at gmail dot com, 2019/05/22
- [Bug ld/24576] Feature request: error out when passed the same linker script with -T and as an object file, cvs-commit at gcc dot gnu.org, 2019/05/22
- [Bug ld/24576] Feature request: error out when passed the same linker script with -T and as an object file, amodra at gmail dot com, 2019/05/22