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 TAGs 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.