6. Supplementary UNIT
6.1. LINKINFO_PROPS
Number of encoding bits | 0 |
Is coding extendable | no |
Unit identification | linkinfo |
This is an additional UNIT
which gives extra information about linking.
6.1.1. make_linkinfos
Encoding number | 0 |
no_labels: TDFINT tds: SLIST(LINKINFO) -> LINKINFO_PROPS
Makes the UNIT
.
6.2. LINKINFO
Number of encoding bits | 2 |
Is encoding extendable | yes |
6.2.1. static_name_def
Encoding number | 1 |
assexp: EXP POINTER x id: TDFSTRING(k, n) -> LINKINFO
assexp will be an obtain_tag construction which refers to a TAG
which is defined with make_id_tagdef, make_var_tagdef or common_tagdef. This TAG
will not be linked to an EXTERNAL
.
The name id shall be used (but not exported, i.e. static) to identify the definition for subsequent linking.
This construction is likely to be needed for profiling, so that useful names appear for statically defined objects. It may also be needed when C++ is translated into C, in order to identify global initialisers.
6.2.2. make_comment
Encoding number | 2 |
n: TDFSTRING(k, n) -> LINKINFO
n shall be incorporated into the object file as a comment, if this facility exists. Otherwise the construct is ignored.
6.2.3. make_weak_defn
Encoding number | 3 |
namer: EXP POINTER x val: EXP POINTER y -> LINKINFO
namer and val will be obtain_tag constructions which refer to TAG
s which are defined with make_id_tagdef, make_var_tagdef or common_tagdef. They shall be made synonymous.
6.2.4. make_weak_symbol
Encoding number | 4 |
id: TDFSTRING(k, n) val: EXP POINTER x -> LINKINFO
val will be an obtain_tag construction which refers to a TAG
which is defined with make_id_tagdef, make_var_tagdef or common_tagdef.
This TAG
shall be made weak (in the same sense as in the SVID ABI Symbol Table), and id shall be synonymous with it.