Print this page
3638 ld confuses files with group sections and files that should lazy load

Split Close
Expand all
Collapse all
          --- old/usr/src/cmd/sgs/include/libld.h
          +++ new/usr/src/cmd/sgs/include/libld.h
↓ open down ↓ 883 lines elided ↑ open up ↑
 884  884  #define FLG_IF_FILEREF  0x00008000      /* file contains a section which */
 885  885                                          /*      is included in the output */
 886  886                                          /*      allocatable image */
 887  887  #define FLG_IF_GNUVER   0x00010000      /* file used GNU-style versioning */
 888  888  #define FLG_IF_ORDERED  0x00020000      /* ordered section processing */
 889  889                                          /*      required */
 890  890  #define FLG_IF_OTOSCAP  0x00040000      /* convert object capabilities to */
 891  891                                          /*      symbol capabilities */
 892  892  #define FLG_IF_DEFERRED 0x00080000      /* dependency is deferred */
 893  893  #define FLG_IF_RTLDINF  0x00100000      /* dependency has DT_SUNW_RTLTINF set */
      894 +#define FLG_IF_GROUPS   0x00200000      /* input file has groups to process */
 894  895  
 895  896  /*
 896  897   * Symbol states that require the generation of a DT_POSFLAG_1 .dynamic entry.
 897  898   */
 898  899  #define MSK_IF_POSFLAG1 (FLG_IF_LAZYLD | FLG_IF_GRPPRM | FLG_IF_DEFERRED)
 899  900  
 900  901  /*
 901  902   * Symbol states that require an associated Syminfo entry.
 902  903   */
 903  904  #define MSK_IF_SYMINFO  (FLG_IF_LAZYLD | FLG_IF_DIRECT | FLG_IF_DEFERRED)
↓ open down ↓ 23 lines elided ↑ open up ↑
 927  928  
 928  929  #define FLG_IS_ORDERED  0x0001          /* this is a SHF_ORDERED section */
 929  930  #define FLG_IS_KEY      0x0002          /* section requires sort keys */
 930  931  #define FLG_IS_DISCARD  0x0004          /* section is to be discarded */
 931  932  #define FLG_IS_RELUPD   0x0008          /* symbol defined here may have moved */
 932  933  #define FLG_IS_SECTREF  0x0010          /* section has been referenced */
 933  934  #define FLG_IS_GDATADEF 0x0020          /* section contains global data sym */
 934  935  #define FLG_IS_EXTERNAL 0x0040          /* isp from a user file */
 935  936  #define FLG_IS_INSTRMRG 0x0080          /* Usable SHF_MERGE|SHF_STRINGS sec */
 936  937  #define FLG_IS_GNSTRMRG 0x0100          /* Generated mergeable string section */
 937      -#define FLG_IS_GROUPS   0x0200          /* section has groups to process */
      938 +
 938  939  #define FLG_IS_PLACE    0x0400          /* section requires to be placed */
 939  940  #define FLG_IS_COMDAT   0x0800          /* section is COMDAT */
 940  941  #define FLG_IS_EHFRAME  0x1000          /* section is .eh_frame */
 941  942  
 942  943  /*
 943  944   * Output sections contain lists of input sections that are assigned to them.
 944  945   * These items fall into 4 categories:
 945  946   *      BEFORE - Ordered sections that specify SHN_BEFORE, in input order.
 946  947   *      ORDERED - Ordered sections that are sorted using unsorted sections
 947  948   *              as the sort key.
↓ open down ↓ 621 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX