6. Supplementary UNIT

  1. 6.1. LINKINFO_PROPS
    1. 6.1.1. make_linkinfos
  2. 6.2. LINKINFO
    1. 6.2.1. static_name_def
    2. 6.2.2. make_comment
    3. 6.2.3. make_weak_defn
    4. 6.2.4. make_weak_symbol

6.1. LINKINFO_PROPS

Number of encoding bits0
Is coding extendableno
Unit identificationlinkinfo

This is an additional UNIT which gives extra information about linking.

6.1.1. make_linkinfos

Encoding number0
no_labels:       TDFINT
tds:             SLIST(LINKINFO)
		   -> LINKINFO_PROPS

Makes the UNIT.

6.2. LINKINFO

Number of encoding bits2
Is encoding extendableyes

6.2.1. static_name_def

Encoding number1
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 number2
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 number3
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 number4
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.