summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Lowe <richlowe@richlowe.net>2013-03-22 15:27:11 -0400
committerRichard Lowe <richlowe@richlowe.net>2013-04-02 19:13:51 -0400
commita8c23f9d905fadb090654516236f546ef3f0a1b2 (patch)
tree5e8af58938d5ecb7a261b4e8a709a40f6bbc5e30
parent43fab1a9f38ff02e665a874ea0a8eb3818e61ff3 (diff)
downloadillumos-joyent-a8c23f9d905fadb090654516236f546ef3f0a1b2.tar.gz
3638 ld confuses files with group sections and files that should lazy load
Reviewed by: Dan McDonald <danmcd@nexenta.com> Reviewed by: Garrett D'Amore <garrett@damore.org> Reviewed by: Robert Mustacchi <rm@joyent.com> Approved by: Dan McDonald <danmcd@nexenta.com>
-rw-r--r--usr/src/cmd/sgs/include/libld.h3
-rw-r--r--usr/src/cmd/sgs/libld/common/files.c4
2 files changed, 4 insertions, 3 deletions
diff --git a/usr/src/cmd/sgs/include/libld.h b/usr/src/cmd/sgs/include/libld.h
index d0d4776220..ddb0fb2506 100644
--- a/usr/src/cmd/sgs/include/libld.h
+++ b/usr/src/cmd/sgs/include/libld.h
@@ -891,6 +891,7 @@ struct ifl_desc { /* input file descriptor */
/* symbol capabilities */
#define FLG_IF_DEFERRED 0x00080000 /* dependency is deferred */
#define FLG_IF_RTLDINF 0x00100000 /* dependency has DT_SUNW_RTLTINF set */
+#define FLG_IF_GROUPS 0x00200000 /* input file has groups to process */
/*
* Symbol states that require the generation of a DT_POSFLAG_1 .dynamic entry.
@@ -934,7 +935,7 @@ struct is_desc { /* input section descriptor */
#define FLG_IS_EXTERNAL 0x0040 /* isp from a user file */
#define FLG_IS_INSTRMRG 0x0080 /* Usable SHF_MERGE|SHF_STRINGS sec */
#define FLG_IS_GNSTRMRG 0x0100 /* Generated mergeable string section */
-#define FLG_IS_GROUPS 0x0200 /* section has groups to process */
+
#define FLG_IS_PLACE 0x0400 /* section requires to be placed */
#define FLG_IS_COMDAT 0x0800 /* section is COMDAT */
#define FLG_IS_EHFRAME 0x1000 /* section is .eh_frame */
diff --git a/usr/src/cmd/sgs/libld/common/files.c b/usr/src/cmd/sgs/libld/common/files.c
index c1e66ecfea..99e6e89f9d 100644
--- a/usr/src/cmd/sgs/libld/common/files.c
+++ b/usr/src/cmd/sgs/libld/common/files.c
@@ -2343,7 +2343,7 @@ process_group(const char *name, Ifl_desc *ifl, Shdr *shdr, Elf_Scn *scn,
* Indicate that this input file has groups to process. Groups are
* processed after all input sections have been processed.
*/
- ifl->ifl_flags |= FLG_IS_GROUPS;
+ ifl->ifl_flags |= FLG_IF_GROUPS;
return (1);
}
@@ -2807,7 +2807,7 @@ process_elf(Ifl_desc *ifl, Elf *elf, Ofl_desc *ofl)
* of placement. In addition, COMDAT names may require transformation
* to indicate different output section placement.
*/
- if (ifl->ifl_flags & FLG_IS_GROUPS) {
+ if (ifl->ifl_flags & FLG_IF_GROUPS) {
for (ndx = 1; ndx < ifl->ifl_shnum; ndx++) {
Is_desc *isp;