# HG changeset patch # User Richard Lowe # Date 1363980431 14400 # Node ID df716869fcba1aac2b4933178d5cb3a9b716c968 # Parent e0554f834eb0ec759c6848de29f693abea7f6c38 3638 ld confuses files with group sections and files that should lazy load Reviewed by: Dan McDonald Reviewed by: Garrett D'Amore Reviewed by: Robert Mustacchi Approved by: Dan McDonald diff -r e0554f834eb0 -r df716869fcba usr/src/cmd/sgs/include/libld.h --- a/usr/src/cmd/sgs/include/libld.h Tue Apr 02 15:17:12 2013 -0400 +++ b/usr/src/cmd/sgs/include/libld.h Fri Mar 22 15:27:11 2013 -0400 @@ -891,6 +891,7 @@ /* 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 @@ #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 -r e0554f834eb0 -r df716869fcba usr/src/cmd/sgs/libld/common/files.c --- a/usr/src/cmd/sgs/libld/common/files.c Tue Apr 02 15:17:12 2013 -0400 +++ b/usr/src/cmd/sgs/libld/common/files.c Fri Mar 22 15:27:11 2013 -0400 @@ -2343,7 +2343,7 @@ * 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 @@ * 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;