Print this page
ld should reject kernel modules as input
10366 ld(1) should support GNU-style linker sets
10367 ld(1) tests should be a real test suite
10368 want an ld(1) regression test for i386 LD tls transition (10267)
ld: implement -ztype and rework option parsing

Split Close
Expand all
Collapse all
          --- old/usr/src/cmd/sgs/libld/common/libld.msg
          +++ new/usr/src/cmd/sgs/libld/common/libld.msg
↓ open down ↓ 28 lines elided ↑ open up ↑
  29   29  #
  30   30  
  31   31  @ _START_
  32   32  
  33   33  # Message file for cmd/sgs/libld.
  34   34  
  35   35  @ MSG_ID_LIBLD
  36   36  
  37   37  #
  38   38  # TRANSLATION_NOTE -- Beginning of USAGE message
  39      -#       The following messages are the usage messages for the ld command.
       39 +#       The following messages are the usage messages for the ld command.
  40   40  #       Tab characters (\t) are used to align the messages.
  41   41  #
  42   42  #       Each usage message starts with \t, and if the message has more than one
  43   43  #               line, the following messages are aligned by 3 tab characters.
  44   44  #               When you see \n\t\t\t, the first \n is used to change the line,
  45   45  #               and following 3 tab characters are used to align the line.
  46   46  #
  47   47  #       Each usage message option is surrounded by [ and ].  Then the
  48   48  #       description of the option follows. The descriptions should be aligned,
  49   49  #       so tab characters are padded as needed after the closing bracket ].
  50   50  #
  51   51  #       How to align the messages are up to the translators and the
  52   52  #       localization engineers.
  53   53  #
  54   54  #       In C locale, the first 3 messages would look like the following:
  55   55  #
  56   56  #       usage: ld [-6:abc:.....] file(s)
  57      -#               [-a]            create an absolute file
  58      -#               [-b]            do not do special PIC relocations in a.out
  59      -#               [-c file]       record configuration 'file'
       57 +#               [-a]            create an absolute file
       58 +#               [-b]            do not do special PIC relocations in a.out
       59 +#               [-c file]       record configuration 'file'
  60   60  #
  61   61  @ MSG_ARG_USAGE         "usage: ld [-%s] file(s)\n"
  62   62  @ MSG_ARG_DETAIL_3      "\t[-32]\t\tenforce a 32-bit link-edit\n"
  63   63  @ MSG_ARG_DETAIL_6      "\t[-64]\t\tenforce a 64-bit link-edit\n"
  64   64  @ MSG_ARG_DETAIL_A      "\t[-a]\t\tcreate an absolute file\n"
  65   65  @ MSG_ARG_DETAIL_B      "\t[-b]\t\tdo not do special PIC relocations in a.out\n"
  66   66  @ MSG_ARG_DETAIL_CBDR   "\t[-B direct | nodirect]\n\
  67   67                           \t\t\testablish direct bindings, or inhibit direct \
  68   68                           binding\n\
  69   69                           \t\t\tto, the object being created\n"
↓ open down ↓ 174 lines elided ↑ open up ↑
 244  244  @ MSG_ARG_DETAIL_ZSCAP  "\t[-z symbolcap]\tconvert object capabilities to \
 245  245                           symbol capabilities\n"
 246  246  @ MSG_ARG_DETAIL_ZTARG  "\t[-z target=platform]\n\
 247  247                           \t\t\ttarget machine for cross linking\n"
 248  248  @ MSG_ARG_DETAIL_ZT     "\t[-z text]\tdisallow output relocations against \
 249  249                           text\n"
 250  250  @ MSG_ARG_DETAIL_ZTO    "\t[-z textoff]\tallow output relocations against \
 251  251                           text\n"
 252  252  @ MSG_ARG_DETAIL_ZTW    "\t[-z textwarn]\twarn if there are relocations \
 253  253                           against text\n"
      254 +@ MSG_ARG_DETAIL_ZTY    "\t[-z type=type]\tspecify the type of object \
      255 +                         (exec, kmod, reloc, shared)\n"
 254  256  @ MSG_ARG_DETAIL_ZWRAP  "\t[-z wrap=symbol], [-wrap=symbol], [--wrap=symbol]\n\
 255  257                           \t\t\twrap symbol references\n"
 256  258  @ MSG_ARG_DETAIL_ZVER   "\t[-z verbose]\t\
 257  259                           generate warnings for suspicious processings\n"
 258  260  
 259  261  #
 260  262  # TRANSLATION_NOTE -- End of USAGE message
 261  263  #
 262  264  @ MSG_GRP_INVALNDX      "file %s: group section [%u]%s: entry %d: \
 263  265                           invalid section index: %d"
↓ open down ↓ 82 lines elided ↑ open up ↑
 346  348                           section [%u]%s: redirected to file %s"
 347  349  @ MSG_REL_SLOPCDATNOSYM "relocation warning: %s: file %s: section [%u]%s: \
 348  350                           symbol %s: relocation against discarded COMDAT \
 349  351                           section [%u]%s: symbol not found, relocation ignored"
 350  352  
 351  353  @ MSG_REL_NOREG         "relocation error: REGISTER relocation not supported \
 352  354                           on target architecture"
 353  355  
 354  356  #
 355  357  # TRANSLATION_NOTE
 356      -#       The following 7 messages are the message to print the
      358 +#       The following 7 messages are the message to print the
 357  359  #       following example messages.
 358  360  #
 359  361  #Text relocation remains                      referenced
 360  362  #    against symbol                 offset      in file
 361      -#str                                 0x14       main.o
 362      -#printf                              0x1c       main.o
      363 +#str                                 0x14       main.o
      364 +#printf                              0x1c       main.o
 363  365  #
 364  366  #       The first two lines are the header, and the next msgid
 365  367  #       is the format string for the header.
 366  368  #       Tabs and spaces are used for alignment.
 367  369  #       The first and third %s are for: "Text relocation remains against symbol"
 368  370  #       The second %s and fourth %s are for: "referenced in file"
 369  371  #       The third %s is for: "offset"
 370  372  #
 371  373  @ MSG_REL_REMAIN_FMT_1  "%-40s\t%s\n    %s\t\t    %s\t%s"
 372  374  #
↓ open down ↓ 96 lines elided ↑ open up ↑
 469  471  # Section processing errors
 470  472  
 471  473  @ MSG_SCN_NONALLOC      "%s: non-allocatable section '%s' directed to a \
 472  474                           loadable segment: %s"
 473  475  
 474  476  @ MSG_SCN_MULTICOMDAT   "file %s: section [%u]%s: cannot be susceptible to multiple \
 475  477                           COMDAT mechanisms: %s"
 476  478  
 477  479  @ MSG_SCN_DWFOVRFLW     "%s: section %s: encoded DWARF data exceeds \
 478  480                           section size"
 479      -@ MSG_SCN_DWFBADENC     "%s: section %s: invalid DWARF encoding: %#x"                         
      481 +@ MSG_SCN_DWFBADENC     "%s: section %s: invalid DWARF encoding: %#x"
 480  482  
 481  483  # Symbol processing errors
 482  484  
 483  485  @ MSG_SYM_NOSECDEF      "symbol '%s' in file %s has no section definition"
 484  486  @ MSG_SYM_INVSEC        "symbol '%s' in file %s associated with invalid \
 485  487                           section[%lld]"
 486  488  @ MSG_SYM_TLS           "symbol '%s' in file %s (STT_TLS), is defined \
 487  489                           in a non-SHF_TLS section"
 488  490  @ MSG_SYM_BADADDR       "symbol '%s' in file %s: section [%u]%s: size %#llx: \
 489  491                           symbol (address %#llx, size %#llx) lies outside \
↓ open down ↓ 46 lines elided ↑ open up ↑
 536  538  # Support library failures
 537  539  #
 538  540  @ MSG_SUP_NOLOAD        "dlopen() of support library (%s) failed with \
 539  541                           error: %s"
 540  542  @ MSG_SUP_BADVERSION    "initialization of support library (%s) failed with \
 541  543                           bad version.  supported: %d returned: %d"
 542  544  
 543  545  
 544  546  #
 545  547  # TRANSLATION_NOTE
 546      -#       The following 7 messages are the message to print the
      548 +#       The following 7 messages are the message to print the
 547  549  #       following example messages.
 548  550  #
 549  551  #Undefined                      first referenced
 550      -# symbol                            in file
      552 +# symbol                            in file
 551  553  #inquire                            halt_hold.o
 552  554  #
 553  555  @ MSG_SYM_FMT_UNDEF     "%s\t\t\t%s\
 554  556                           \n %s  \t\t\t    %s"
 555  557  
 556  558  #
 557  559  # TRANSLATION_NOTE
 558  560  #       The next two msdid make a sentence. So translate:
 559  561  #               "Undefined symbol"
 560  562  #       And separate them into two msgstr considering the proper
↓ open down ↓ 126 lines elided ↑ open up ↑
 687  689                           unsupported: %s"
 688  690  @ MSG_REJ_SFCAP_1       "file %s: software capability (CA_SUNW_SF_1) \
 689  691                           unsupported: %s"
 690  692  @ MSG_REJ_MACHCAP       "file %s: machine capability (CA_SUNW_MACH) \
 691  693                           unsupported: %s"
 692  694  @ MSG_REJ_PLATCAP       "file %s: platform capability (CA_SUNW_PLAT) \
 693  695                           unsupported: %s"
 694  696  @ MSG_REJ_HWCAP_2       "file %s: hardware capability (CA_SUNW_HW_2) \
 695  697                           unsupported: %s"
 696  698  @ MSG_REJ_ARCHIVE       "file %s: invalid archive use"
      699 +@ MSG_REJ_KMOD          "file %s: kernel modules can't be link-edit input"
 697  700  
 698  701  # Guidance messages
 699  702  @ MSG_GUIDE_SUMMARY     "see ld(1) -z guidance for more information"
 700  703  @ MSG_GUIDE_DEFS        "-z defs option recommended for shared objects"
 701  704  @ MSG_GUIDE_DIRECT      "-B direct or -z direct option recommended before \
 702  705                           first dependency"
 703  706  @ MSG_GUIDE_LAZYLOAD    "-z lazyload option recommended before \
 704  707                           first dependency"
 705  708  @ MSG_GUIDE_MAPFILE     "version 2 mapfile syntax recommended: %s"
 706  709  @ MSG_GUIDE_TEXT        "position independent (PIC) code recommended for \
 707  710                           shared objects"
 708  711  @ MSG_GUIDE_UNUSED      "removal of unused dependency recommended: %s"
      712 +@ MSG_GUIDE_KMOD        "use -z type=kmod, not -r -dy"
 709  713  
 710  714  @ _END_
 711  715  
 712  716  
 713  717  # The following strings represent reserved names.  Reference to these strings
 714  718  # is via the MSG_ORIG() macro, and thus translations are not required.
 715  719  
 716  720  @ MSG_STR_EOF           "<eof>"
 717  721  @ MSG_STR_ERROR         "<error>"
 718  722  @ MSG_STR_EMPTY         ""
↓ open down ↓ 153 lines elided ↑ open up ↑
 872  876  @ MSG_SYM_PLKTBL        "PROCEDURE_LINKAGE_TABLE_"
 873  877  @ MSG_SYM_PLKTBL_U      "_PROCEDURE_LINKAGE_TABLE_"
 874  878  @ MSG_SYM_TLSGETADDR_U  "__tls_get_addr"
 875  879  @ MSG_SYM_TLSGETADDR_UU "___tls_get_addr"
 876  880  
 877  881  @ MSG_SYM_L_END         "END_"
 878  882  @ MSG_SYM_L_END_U       "_END_"
 879  883  @ MSG_SYM_L_START       "START_"
 880  884  @ MSG_SYM_L_START_U     "_START_"
 881  885  
      886 +@ MSG_SYM_SECBOUND_START "__start_"
      887 +@ MSG_SYM_SECBOUND_STOP "__stop_"
      888 +
 882  889  # Support functions
 883  890  
 884  891  @ MSG_SUP_VERSION       "ld_version"
 885  892  @ MSG_SUP_INPUT_DONE    "ld_input_done"
 886  893  
 887  894  @ MSG_SUP_START_64      "ld_start64"
 888  895  @ MSG_SUP_ATEXIT_64     "ld_atexit64"
 889  896  @ MSG_SUP_OPEN_64       "ld_open64"
 890  897  @ MSG_SUP_FILE_64       "ld_file64"
 891  898  @ MSG_SUP_INSEC_64      "ld_input_section64"
 892  899  @ MSG_SUP_SEC_64        "ld_section64"
 893  900  
 894  901  @ MSG_SUP_START         "ld_start"
 895  902  @ MSG_SUP_ATEXIT        "ld_atexit"
 896  903  @ MSG_SUP_OPEN          "ld_open"
 897  904  @ MSG_SUP_FILE          "ld_file"
 898  905  @ MSG_SUP_INSEC         "ld_input_section"
 899  906  @ MSG_SUP_SEC           "ld_section"
 900  907  
 901      -# 
      908 +#
 902  909  # Message previously in 'ld'
 903  910  #
 904      -# 
      911 +#
 905  912  @ _START_
 906  913  
 907  914  # System error messages
 908  915  
 909  916  @ MSG_SYS_STAT          "file %s: stat failed: %s"
 910  917  @ MSG_SYS_READ          "file %s: read failed: %s"
 911  918  @ MSG_SYS_NOTREG        "file %s: is not a regular file"
 912  919  
 913  920  # Argument processing messages
 914  921  
↓ open down ↓ 40 lines elided ↑ open up ↑
 955  962  @ MSG_MARG_AR_GRPS      "archive rescan groups \
 956  963                           (-z rescan-start, -(, --start-group)"
 957  964  @ MSG_MARG_AR_GRP_END   "archive rescan group end option \
 958  965                           (-z rescan-end, -), --end-group)"
 959  966  @ MSG_MARG_AR_GRP_START "archive rescan group start option \
 960  967                           (-z rescan-start, -(, --start-group)"
 961  968  @ MSG_MARG_ENTRY        "entry point option (-e, --entry)"
 962  969  @ MSG_MARG_FILTER_AUX   "auxiliary filter option (-f, --auxiliary)"
 963  970  @ MSG_MARG_FILTER       "filter option (-F, --filter)"
 964  971  @ MSG_MARG_OUTFILE      "output object option (-o, --output)"
 965      -@ MSG_MARG_REL          "relocatable object option (-r, --relocatable)"
      972 +@ MSG_MARG_REL          "relocatable object option (-r, --relocatable, \
      973 +                        -z type=reloc)"
 966  974  @ MSG_MARG_RPATH        "runpath option (-R, -rpath)"
 967      -@ MSG_MARG_SO           "shared object option (-G, -shared)"
      975 +@ MSG_MARG_SO           "shared object option (-G, -shared, -z type=shared)"
 968  976  @ MSG_MARG_SONAME       "soname option (-h, --soname)"
 969  977  @ MSG_MARG_STRIP        "strip option (-s, --strip-all)"
      978 +@ MSG_MARG_TYPE_KMOD    "-z type=kmod"
 970  979  
 971  980  # Entrance criteria messages
 972  981  
 973  982  @ MSG_ENT_MAP_FMT_TIL_1 "\t\t%s\n\n"
 974  983  @ MSG_ENT_MAP_TITLE_1   "LINK EDITOR MEMORY MAP"
 975  984  
 976  985  #
 977  986  # TRANSLATION_NOTE -- Entry map header
 978  987  #
 979  988  # The next message is a format string for a title. The title is composed of
 980  989  # two lines. In C locale, it would look like:
 981  990  #
 982      -#       output          input           new
      991 +#       output          input           new
 983  992  #       section         section         displacement    size
 984  993  #
 985  994  # The \t characters are used for alignment.  (output section), (input section),
 986  995  # and (new displacement) have to be aligned.
 987  996  #
 988  997  @ MSG_ENT_MAP_FMT_TIL_2 "\n%s\t\t%s\t\t%s\n%s\t\t%s\t\t%s\t%s\n\n"
 989  998  @ MSG_ENT_MAP_FMT_TIL_3 "\n%s\t\t%s\t\t%s\n%s\t\t%s\t\t%s\t\t%s\n\n"
 990  999  @ MSG_ENT_ITM_OUTPUT    "output"
 991 1000  @ MSG_ENT_ITM_INPUT     "input"
 992 1001  @ MSG_ENT_ITM_NEW       "new"
↓ open down ↓ 307 lines elided ↑ open up ↑
1300 1309  @ MSG_DBG_CLS64_FMT     "64: "
1301 1310  
1302 1311  @ MSG_STR_PATHTOK       ";:"
1303 1312  @ MSG_STR_AOUT          "a.out"
1304 1313  
1305 1314  @ MSG_STR_LIB_A         "%s/lib%s.a"
1306 1315  @ MSG_STR_LIB_SO        "%s/lib%s.so"
1307 1316  @ MSG_STR_PATH          "%s/%s"
1308 1317  @ MSG_STR_STRNL         "%s\n"
1309 1318  @ MSG_STR_NL            "\n"
1310      -@ MSG_STR_CAPGROUPID    "CAP_GROUP_%d"
     1319 +@ MSG_STR_CAPGROUPID    "CAP_GROUP_%d"
1311 1320  
1312 1321  @ MSG_STR_LD_DYNAMIC    "dynamic"
1313 1322  @ MSG_STR_SYMBOLIC      "symbolic"
1314 1323  @ MSG_STR_ELIMINATE     "eliminate"
1315 1324  @ MSG_STR_LOCAL         "local"
1316 1325  @ MSG_STR_PROGBITS      "progbits"
1317 1326  @ MSG_STR_SYMTAB        "symtab"
1318 1327  @ MSG_STR_DYNSYM        "dynsym"
1319 1328  @ MSG_STR_REL           "rel"
1320 1329  @ MSG_STR_RELA          "rela"
↓ open down ↓ 115 lines elided ↑ open up ↑
1436 1445  @ MSG_ARG_FATWARN       "fatal-warnings"
1437 1446  @ MSG_ARG_NOFATWARN     "nofatal-warnings"
1438 1447  @ MSG_ARG_HELP          "help"
1439 1448  @ MSG_ARG_GROUP         "group"
1440 1449  @ MSG_ARG_REDUCE        "reduce"
1441 1450  @ MSG_ARG_STATIC        "static"
1442 1451  @ MSG_ARG_SYMBOLCAP     "symbolcap"
1443 1452  @ MSG_ARG_DEFERRED      "deferred"
1444 1453  @ MSG_ARG_NODEFERRED    "nodeferred"
1445 1454  @ MSG_ARG_ASSDEFLIB     "assert-deflib"
     1455 +@ MSG_ARG_TYPE          "type"
1446 1456  
1447 1457  @ MSG_ARG_LCOM          "L,"
1448 1458  @ MSG_ARG_PCOM          "P,"
1449 1459  @ MSG_ARG_UCOM          "U,"
1450 1460  
1451 1461  @ MSG_ARG_T_RPATH       "rpath"
1452 1462  @ MSG_ARG_T_SHARED      "shared"
1453 1463  @ MSG_ARG_T_SONAME      "soname"
1454 1464  @ MSG_ARG_T_WL          "l,-"
1455 1465  
↓ open down ↓ 28 lines elided ↑ open up ↑
1484 1494  
1485 1495  # -z guidance=item strings
1486 1496  @ MSG_ARG_GUIDE_DELIM           ",: \t"
1487 1497  @ MSG_ARG_GUIDE_NO_ALL          "noall"
1488 1498  @ MSG_ARG_GUIDE_NO_DEFS         "nodefs"
1489 1499  @ MSG_ARG_GUIDE_NO_DIRECT       "nodirect"
1490 1500  @ MSG_ARG_GUIDE_NO_LAZYLOAD     "nolazyload"
1491 1501  @ MSG_ARG_GUIDE_NO_MAPFILE      "nomapfile"
1492 1502  @ MSG_ARG_GUIDE_NO_TEXT         "notext"
1493 1503  @ MSG_ARG_GUIDE_NO_UNUSED       "nounused"
     1504 +
     1505 +# -z type= strings
     1506 +@ MSG_ARG_TYPE_RELOC    "reloc"
     1507 +@ MSG_ARG_TYPE_EXEC     "exec"
     1508 +@ MSG_ARG_TYPE_SHARED   "shared"
     1509 +@ MSG_ARG_TYPE_KMOD     "kmod"
1494 1510  
1495 1511  # Environment variable strings
1496 1512  
1497 1513  @ MSG_LD_RUN_PATH       "LD_RUN_PATH"
1498 1514  @ MSG_LD_LIBPATH_32     "LD_LIBRARY_PATH_32"
1499 1515  @ MSG_LD_LIBPATH_64     "LD_LIBRARY_PATH_64"
1500 1516  @ MSG_LD_LIBPATH        "LD_LIBRARY_PATH"
1501 1517  
1502 1518  @ MSG_LD_NOVERSION_32   "LD_NOVERSION_32"
1503 1519  @ MSG_LD_NOVERSION_64   "LD_NOVERSION_64"
↓ open down ↓ 101 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX