diff options
author | Richard Lowe <richlowe@richlowe.net> | 2013-03-22 15:27:11 -0400 |
---|---|---|
committer | Richard Lowe <richlowe@richlowe.net> | 2013-04-02 19:13:51 -0400 |
commit | a8c23f9d905fadb090654516236f546ef3f0a1b2 (patch) | |
tree | 5e8af58938d5ecb7a261b4e8a709a40f6bbc5e30 | |
parent | 43fab1a9f38ff02e665a874ea0a8eb3818e61ff3 (diff) | |
download | illumos-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.h | 3 | ||||
-rw-r--r-- | usr/src/cmd/sgs/libld/common/files.c | 4 |
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; |