manpagez: man pages & more
info gawk
Home | html | info | man

gawk: Old Extension Mechanism

 C.6 Compatibility For Old Extensions
 ⇒Dynamic Extensions, describes the supported API and mechanisms
 for writing extensions for 'gawk'.  This API was introduced in version
 4.1.  However, for many years 'gawk' provided an extension mechanism
 that required knowledge of 'gawk' internals and that was not as well
    In order to provide a transition period, 'gawk' version 4.1 continues
 to support the original extension mechanism.  This will be true for the
 life of exactly one major release.  This support will be withdrawn, and
 removed from the source code, at the next major release.
    Briefly, original-style extensions should be compiled by including
 the 'awk.h' header file in the extension source code.  Additionally, you
 must define the identifier 'GAWK' when building (use '-DGAWK' with
 Unix-style compilers).  Otherwise, the definitions in 'gawkapi.h' will
 cause conflicts with those in 'awk.h' and your extension will not
    Just as in previous versions, you load an old-style extension with
 the 'extension()' built-in function (which is not otherwise documented).
 This function in turn finds and loads the shared object file containing
 the extension and calls its 'dl_load()' C routine.
    Because original-style and new-style extensions use different
 initialization routines ('dl_load()' versus 'dlload()'), they may safely
 be installed in the same directory (to be found by 'AWKLIBPATH') without
    The 'gawk' development team strongly recommends that you convert any
 old extensions that you may have to use the new API described in ⇒
 Dynamic Extensions.
© 2000-2019
Individual documents may contain additional copyright information.