Linux Standard Base (LSB) — Part 2-3: Desktop specification for X86-32 architecture

This document defines a system interface for compiled applications and a minimal environment for support of installation scripts. Its purpose is to enable a uniform industry standard environment for high-volume applications conforming to the LSB. These specifications are composed of two basic parts: a common part describing those parts of the interface that remain constant across all implementations of the LSB, and an architecture-specific part describing the parts of the interface that vary by processor architecture. Together, the common part and the relevant architecture-specific part for a single hardware architecture provide a complete interface specification for compiled application programs on systems that share a common hardware architecture. The LSB contains both a set of Application Program Interfaces (APIs) and Application Binary Interfaces (ABIs). APIs may appear in the source code of portable applications, while the compiled binary of that application may use the larger set of ABIs. A conforming implementation provides all of the ABIs listed here. The compilation system may replace (e.g. by macro definition) certain APIs with calls to one or more of the underlying binary interfaces, and may insert calls to binary interfaces as needed. The LSB is primarily a binary interface definition. Not all of the source level APIs available to applications may be contained in this specification. This is the X86 architecture specific part of the Desktop module of the Linux Standard Base (LSB). This part supplements the common part of the LSB Desktop module with those interfaces that differ between architectures. This part should be used in conjunction with the common part of LSB Desktop. Whenever a section of the common part is supplemented by architecture-specific information, the common part includes a reference to the architecture-specific part. This part may also contain additional information that is not referenced in the common part. Interfaces described in this part of LSB Desktop are mandatory except where explicitly listed otherwise. Interfaces described in the LSB Desktop module supplement those described in the LSB Core module. They do not depend on other LSB modules.

Noyau de base normalisé Linux (LSB) — Partie 2-3: Spécification du module de bureau "Desktop" pour l'architecture X86-32

General Information

Status
Published
Publication Date
07-Oct-2021
Current Stage
6060 - International Standard published
Start Date
08-Oct-2021
Due Date
11-Sep-2021
Completion Date
08-Oct-2021
Ref Project

Relations

Standard
ISO/IEC 23360-2-3:2021 - Linux Standard Base (LSB) — Part 2-3: Desktop specification for X86-32 architecture Released:10/8/2021
English language
493 pages
sale 15% off
Preview
sale 15% off
Preview

Standards Content (Sample)


INTERNATIONAL ISO/IEC
STANDARD 23360-2-3
First edition
2021-10
Linux Standard Base (LSB) —
Part 2-3:
Desktop specification for X86-32
architecture
Reference number
©
ISO/IEC 2021
© ISO/IEC 2021
All rights reserved. Unless otherwise specified, or required in the context of its implementation, no part of this publication may
be reproduced or utilized otherwise in any form or by any means, electronic or mechanical, including photocopying, or posting
on the internet or an intranet, without prior written permission. Permission can be requested from either ISO at the address
below or ISO’s member body in the country of the requester.
ISO copyright office
CP 401 • Ch. de Blandonnet 8
CH-1214 Vernier, Geneva
Phone: +41 22 749 01 11
Email: copyright@iso.org
Website: www.iso.org
Published in Switzerland
ii © ISO/IEC 2021 – All rights reserved

Foreword
ISO (the International Organization for Standardization) and IEC (the International Electrotechnical
Commission) form the specialized system for worldwide standardization. National bodies that are
members of ISO or IEC participate in the development of International Standards through technical
committees established by the respective organization to deal with particular fields of technical activity.
ISO and IEC technical committees collaborate in fields of mutual interest. Other international
organizations, governmental and non-governmental, in liaison with ISO and IEC, also take part in the
work.
The procedures used to develop this document and those intended for its further maintenance are
described in the ISO/IEC Directives, Part 1. In particular, the different approval criteria needed for the
different types of document should be noted (see www.iso.org/directives or
www.iec.ch/members_experts/refdocs).
Attention is drawn to the possibility that some of the elements of this document may be the subject of
patent rights. ISO and IEC shall not be held responsible for identifying any or all such patent rights. Details
of any patent rights identified during the development of the document will be in the Introduction and/or
on the ISO list of patent declarations received (see www.iso.org/patents) or the IEC list of patent
declarations received (see patents.iec.ch).
Any trade name used in this document is information given for the convenience of users and does not
constitute an endorsement.
For an explanation of the voluntary nature of standards, the meaning of ISO specific terms and
expressions related to conformity assessment, as well as information about ISO's adherence to the World
Trade Organization (WTO) principles in the Technical Barriers to Trade (TBT),
see www.iso.org/iso/foreword.html. In the IEC, see www.iec.ch/understanding-standards.
This document was prepared by the Linux Foundation as Linux Standard Base (LSB): Desktop
specification for X86-32 architecture and drafted in accordance with its editorial rules. It was assigned
to Joint Technical Committee ISO/IEC JTC 1, Information technology, Subcommittee SC 22, Programming
languages, their environments and system software interfaces, and adopted by National Bodies.
This first edition of ISO/IEC 23360-2-3 cancels and replaces ISO/IEC 23360-2:2006, which has been
technically revised.
This document is based on “The GNU Free Documentation License, version 1.1”. The license is available
at https://www.gnu.org/licenses/old-licenses/fdl-1.1.html.
A list of all parts in the ISO/IEC 23660 series can be found on the ISO and IEC websites.
Any feedback or questions on this document should be directed to the user’s national standards body. A
complete listing of these bodies can be found at www.iso.org/members.html and www.iec.ch/national-
committees.
© ISO/IEC 2021 – All rights reserved iii

Contents
Foreword . iii
Introduction . vi
I Introductory Elements . 1
1 Scope. 2
2 References . 3
2.1 Normative References . 3
2.2 Informative References/Bibliography. 6
3 Requirements . 7
3.1 Relevant Libraries . 7
4 Terms and Definitions . 8
5 Documentation Conventions . 10
II GTK+ Stack Libraries . 11
6 Libraries . 12
6.1 Introduction . 12
6.2 Interfaces for libglib-2.0 . 13
6.3 Data Definitions for libglib-2.0 . 20
6.4 Interfaces for libgmodule-2.0 . 21
6.5 Data Definitions for libgmodule-2.0 . 21
6.6 Interfaces for libgobject-2.0 . 22
6.7 Data Definitions for libgobject-2.0 . 23
6.8 Interfaces for libgthread-2.0 . 24
6.9 Interfaces for libgio-2.0 . 24
6.10 Data Definitions for libgio-2.0 . 25
6.11 Interfaces for libatk-1.0 . 42
6.12 Data Definitions for libatk-1.0 . 42
6.13 Interfaces for libpango-1.0 . 43
6.14 Data Definitions for libpango-1.0 . 43
6.15 Interfaces for libpangocairo-1.0 . 44
6.16 Data Definitions for libpangocairo-1.0 . 44
6.17 Interfaces for libpangoxft-1.0 . 45
6.18 Data Definitions for libpangoxft-1.0 . 45
6.19 Interfaces for libpangoft2-1.0 . 46
6.20 Data Definitions for libpangoft2-1.0 . 46
6.21 Interfaces for libgdk_pixbuf-2.0 . 47
6.22 Data Definitions for libgdk_pixbuf-2.0 . 47
6.23 Interfaces for libgdk_pixbuf_xlib-2.0 . 48
6.24 Data Definitions for libgdk_pixbuf_xlib-2.0 . 48
6.25 Interfaces for libgdk-x11-2.0 . 48
6.26 Data Definitions for libgdk-x11-2.0 . 49
6.27 Interfaces for libgtk-x11-2.0 . 49
6.28 Data Definitions for libgtk-x11-2.0 . 50
III Qt Libraries . 53
7 Libraries . 54
7.1 Introduction . 54
7.2 Interfaces for libQtCore . 55
7.3 Data Definitions for libQtCore . 69
7.4 Interface Definitions for libQtCore . 78
7.5 Interfaces for libQtGui . 79
7.6 Data Definitions for libQtGui . 355
7.7 Interfaces for libQtXml . 375
7.8 Data Definitions for libQtXml . 384
7.9 Interfaces for libQtOpenGL . 385
7.10 Data Definitions for libQtOpenGL . 390
7.11 Interfaces for libQtSql . 390
iv © 2021 ISO/IEC – All rights reserved

7.12 Data Definitions for libQtSql . 394
7.13 Interfaces for libQtSvg . 396
7.14 Data Definitions for libQtSvg . 400
7.15 Interfaces for libQtNetwork . 400
7.16 Data Definitions for libQtNetwork . 403
IV Package Format and Installation . 406
8 Software Installation . 407
8.1 Package Dependencies . 407
Annex A Alphabetical Listing of Interfaces by Library . 408
A.1 libGL . 408
A.2 libGLU . 418
A.3 libICE . 419
A.4 libSM . 420
A.5 libX11 . 421
A.6 libXext . 432
A.7 libXft . 434
A.8 libXi . 435
A.9 libXrender . 436
A.10 libXt . 437
A.11 libXtst. 442
A.12 libcairo . 442
A.13 libcairo-gobject . 449
A.14 libcairo-script-interpreter . 450
A.15 libfontconfig. 450
A.16 libfreetype . 453
A.17 libjpeg . 455
A.18 libpng12 . 456
A.19 libtiff . 459
A.20 libxcb . 461
A.21 libQtCore . 470
A.22 libQtGui . 470
A.23 libQtOpenGL . 476
A.24 libQtSql . 476
A.25 libQtSvg . 476
A.26 libQtXml . 477
A.27 libasound . 477
© 2021 ISO/IEC – All rights reserved v

Introduction
The LSB defines a binary interface for application programs that are compiled
and packaged for LSB-conforming implementations on many different hardware
architectures. A binary specification must include information specific to the
computer processor architecture for which it is intended. To avoid the complexity
of conditional descriptions, the specification has instead been divided into
generic parts which are augmented by one of several architecture-specific parts,
depending on the target processor architecture; the generic part will indicate
when reference must be made to the architecture part, and vice versa.
This document should be used in conjunction with the documents it references.
This document enumerates the system components it includes, but descriptions
of those components may be included entirely or partly in this document, partly
in other documents, or entirely in other reference documents. For example, the
section that describes system service routines includes a list of the system
routines supported in this interface, formal declarations of the data structures
they use that are visible to applications, and a pointer to the underlying
referenced specification for information about the syntax and semantics of each
call. Only those routines not described in standards referenced by this document,
or extensions to those standards, are described in the detail. Information
referenced in this way is as much a part of this document as is the information
explicitly included here.
The specification carries a version number of either the form x.y or x.y.z. This
version number carries the following meaning:
1. The first number (x) is the major version number. Versions sharing the same
major version number shall be compatible in a backwards direction; that is,
a newer version shall be compatible with an older version. Any deletion of
a library results in a new major version number. Interfaces marked as
deprecated may be removed from the specification at a major version
change.
2. The second number (y) is the minor version number. Libraries and
individual interfaces may be added, but not removed. Interfaces may be
marked as deprecated at a minor version change. Other minor changes may
be permitted at the discretion of the LSB workgroup.
3. The third number (z), if present, is the editorial level. Only editorial changes
should be included in such versions.
Since this specification is a descriptive Application Binary Interface, and not a
source level API specification, it is not possible to make a guarantee of 100%
backward compatibility between major releases. However, it is the intent that
those parts of the binary interface that are visible in the source level API will
remain backward compatible from version to version, except where a feature
marked as "Deprecated" in one release may be removed from a future release.
Implementors are strongly encouraged to make use of symbol versioning to
permit simultaneous support of applications conforming to different releases of
this specification.
LSB is a trademark of the Linux Foundation. Developers of applications or
implementations interested in using the trademark should see the Linux
Foundation Certification Policy for details.
vi © 2021 ISO/IEC – All rights reserved

I Introductory Elements
© 2021 ISO/IEC – All rights reserved 1

1 Scope
The Linux Standard Base (LSB) defines a system interface for compiled
applications and a minimal environment for support of installation scripts. Its
purpose is to enable a uniform industry standard environment for high-volume
applications conforming to the LSB.
These specifications are composed of two basic parts: a common part describing
those parts of the interface that remain constant across all implementations of the
LSB, and an architecture-specific part describing the parts of the interface that
vary by processor architecture. Together, the common part and the relevant
architecture-specific part for a single hardware architecture provide a complete
interface specification for compiled application programs on systems that share
a common hardware architecture.
The LSB contains both a set of Application Program Interfaces (APIs) and
Application Binary Interfaces (ABIs). APIs may appear in the source code of
portable applications, while the compiled binary of that application may use the
larger set of ABIs. A conforming implementation provides all of the ABIs listed
here. The compilation system may replace (e.g. by macro definition) certain APIs
with calls to one or more of the underlying binary interfaces, and may insert calls
to binary interfaces as needed.
The LSB is primarily a binary interface definition. Not all of the source level APIs
available to applications may be contained in this specification.
This is the X86 architecture specific part of the Desktop module of the Linux
Standard Base (LSB). This part supplements the common part of the LSB Desktop
module with those interfaces that differ between architectures.
This part should be used in conjunction with the common part of LSB Desktop.
Whenever a section of the common part is supplemented by architecture-specific
information, the common part includes a reference to the architecture-specific
part. This part may also contain additional information that is not referenced in
the common part.
Interfaces described in this part of LSB Desktop are mandatory except where
explicitly listed otherwise. Interfaces described in the LSB Desktop module
supplement those described in the LSB Core module. They do not depend on
other LSB modules.
2 © 2021 ISO/IEC – All rights reserved

2 References
2.1 Normative References
The specifications listed below are referenced in whole or in part by the LSB
Desktop specification. Such references may be normative or informative; a
reference to specification shall only be considered normative if it is explicitly cited
as such. The LSB Desktop specification may make normative references to a
portion of these specifications (that is, to define a specific function or group of
functions); in such cases, only the explicitly referenced portion of the specification
is to be considered normative.
Table 2-1 Normative References
Name Title URL
ATK 2.2.0 Reference ATK 2.2.0 Reference http://developer.gnom
Manual Manual e.org/atk/2.2/index.ht
ml
Double Buffer Double Buffer http://refspecs.linux-
Extension Library Extension Library - foundation.org/X11/db
Protocol Version 1.0 elib.pdf
Fontconfig Developers Fontconfig Developers http://refspecs.linuxfo
Reference Reference, Version 2.6.0 undation.org/fontconfi
g-2.6.0
Gdk 2.10.14 Reference Gdk 2.10.14 Reference http://library.gnome.o
Manual Manual rg/devel/gdk/2.10/
Gdk-pixbuf 2.26.0 Gdk-pixbuf 2.26.0 http://developer.gnom
Reference Manual Reference Manual e.org/gdk-pixbuf/2.26
Gio 2.32 Reference Gio 2.32 Reference http://developer.gnom
Manual Manual e.org/gio/2.32
Glib 2.32 Reference Glib 2.32 Reference http://developer.gnom
Manual Manual e.org/glib/2.32
Gobject 2.32 Reference Gobject 2.32 Reference http://developer.gnom
Manual Manual e.org/gobject/2.32
Gtk+ 2.10.14 Reference Gtk+ 2.10.14 Reference http://library.gnome.o
Manual Manual rg/devel/gtk/2.10/
ISO C (1999) ISO/IEC 9899:1999 -
Programming
Languages -- C
ISO/IEC 14882: 2003 ISO/IEC 14882: 2003
C++ Language Programming
languages --C++
Itanium™ C++ ABI Itanium™ C++ ABI http://refspecs.linuxfo
(Revision 1.86) undation.org/cxxabi-
1.86.html
Libtiff 4.0.2 Reference Libtiff 4.0.2 Reference http://www.libtiff.org
Manual Manual /man/index.html
© 2021 ISO/IEC – All rights reserved 3

Name Title URL
Libxcb API Libxcb API http://xcb.freedesktop.
org/XcbApi/
The OpenGL® http://www.opengl.or
OpenGL 2.1
Graphics System: A g/registry/doc/glspec2
Specification (Version 1.20061201.pdf
2.1)
OpenGL ABI OpenGL® Application http://www.opengl.or
Binary Interface for g/registry/ABI/
Linux
OpenGL Extensions OpenGL® Graphics http://opengl.org/doc
with the X Window umentation/specs/glx/
System® (Version 1.3) glx1.3.pdf
OpenGL Utilities The OpenGL Graphics http://www.opengl.or
System Utility Library g/documentation/spec
(Version 1.3) s/glu/glu1_3.pdf
Pango 1.30.1 Reference Pango 1.30.1 Reference http://developer.gnom
Manual Manual e.org/pango/1.30/inde
x.html
POSIX 1003.1-2008 Portable Operating http://www.unix.org/
(ISO/IEC 9945-2009) System Interface version4/
(POSIX®) 2008 Edition
/ The Open Group
Technical Standard
Base Specifications,
Issue 7
QtCore 4.2.0 Qt 4.2.0 Reference http://doc.qt.digia.com
Manual /4.2/qtcore.html
QtGui 4.2.0 Qt 4.2.0 Reference http://doc.qt.digia.com
Manual /4.2/qtgui.html
QtNetwork 4.2.0 Qt 4.2.0 Reference http://doc.qt.digia.com
Manual /4.2/qtnetwork.html
QtOpenGL 4.2.0 Qt 4.2.0 Reference http://doc.qt.digia.com
Manual /4.2/qtopengl.html
QtSql 4.2.0 Qt 4.2.0 Reference http://doc.qt.digia.com
Manual /4.2/qtsql.html
QtSvg 4.2.0 Qt 4.2.0 Reference http://doc.qt.digia.com
Manual /4.2/qtsvg.html
QtXml 4.2.0 Qt 4.2.0 Reference http://doc.qt.digia.com
Manual /4.2/qtxml.html
The MIT Shared MIT-SHM - The MIT http://refspecs.linux-
Memory Extension Shared Memory foundation.org/X11/mi
Extension - X version t-shm.pdf
11, Release 5
4 © 2021 ISO/IEC – All rights reserved

Name Title URL
X Display Power X Display Power http://refspecs.linux-
Management Signaling Management Signaling foundation.org/X11/D
(DPMS) Extension -
PMSlib.pdf
Library Specificationi -
Version 1.0
X Extended Visual Extended Visual http://refspecs.linux-
Interface Extension Information Extension - foundation.org/X11/ev
Version 1.0 i.pdf
X Nonrectangular X Nonrectangular http://refspecs.linux-
Window Shape Window Shape foundation.org/X11/sh
Extension Library Extension Library - apelib.pdf
Version 1.0
X Record Extension X Record Extension http://refspecs.linux-
Library Library - Version 1.13 foundation.org/X11/re
cordlib.pdf
X Security Extension Security Extension http://refspecs.linux-
Specification - Version foundation.org/X11/se
Specification
7.1 curity.pdf
X Synchronization X Synchronization http://refspecs.linux-
Extension Library Extension Library - foundation.org/X11/sy
Version 3.0 nclib.pdf
X11 C Library Xlib - C Language X http://refspecs.linux-
Interface - X Version 11 foundation.org/X11/xli
Release 6.4 b.pdf
X11 Input Library X Input Device http://refspecs.linux-
Extension Library - X foundation.org/X11/Xi
Version 11, Release 6.4 nput.pdf
X11 Inter-Client Inter-Client Exchange http://refspecs.linux-
Exchange Library - Version 1.0 foundation.org/X11/IC
Elib.pdf
X11 Keyboard X Keyboard Extension http://refspecs.linux-
Extension Library Specification - X foundation.org/X11/X
Version 11, Release 6.4 KBlib.pdf
X11 Session X Session Management http://refspecs.linux-
Management Library - Version 1.0 foundation.org/X11/S
Mlib.pdf
X11 Toolkit Intrinsics X Toolkit Intrinsics - C http://refspecs.linux-
Language Interface - X foundation.org/X11/in
Version 11, Release 6.4 trinsics.pdf
Xft Placeholder Xft Specification
Placeholder
Xrender Placeholder Xrender Specification http://refspecs.linux-
Placeholder foundation.org/X11/X
RenderProtocol.html
© 2021 ISO/IEC – All rights reserved 5

Name Title URL
XTEST Extension XTEST Extension http://refspecs.linux-
Library Library - Version 2.2 foundation.org/X11/xt
estlib.pdf
2.2 Informative References/Bibliography
In addition, the specifications listed below provide essential background
information to implementors of this specification. These references are included
for information only.
Table 2-2 Other References
Name Title URL
A description on how to A description on how to http://www.libpng.org
use and modify libpng use and modify libpng /pub/png/libpng-
1.2.5-manual.html
ALSA Library API ALSA Library API http://www.alsa-
Reference Reference project.org/alsa-
doc/alsa-lib/
Base Directory Spec XDG Base Directory http://standards.freede
Specification Version sktop.org/basedir-
0.6 spec/basedir-spec-
0.6.html
Cairo API Reference Cairo Vector Graphics http://cairographics.or
API Specification for g/manual-1.12.4
1.12.4
Desktop Entry Spec Desktop Entry http://standards.freede
Specification Version sktop.org/desktop-
1.0 entry-spec/desktop-
entry-spec-1.0.html
Desktop Menu Spec Desktop Menu http://standards.freede
Specification Version sktop.org/menu-
1.0 spec/menu-spec-
1.0.html
FreeType 2.2 Reference FreeType 2.2.1 API http://refspecs.linuxfo
Reference undation.org/freetype/
freetype-doc-
2.2.1/docs/reference/ft
2-toc.html
Icon Theme http://standards.freede
Icon Theme Spec
Specification Version sktop.org/icon-theme-
0.11 spec/icon-theme-spec-
0.11.html
Independent JPEG Independent JPEG http://www.ijg.org/
Group Group
xdg-utils reference Portland Project XDG http://portland.freedes
Utilities Reference 1.0 ktop.org/xdg-utils-1.0/

6 © 2021 ISO/IEC – All rights reserved

3 Requirements
3.1 Relevant Libraries
The libraries listed in Table 3-1 shall be available on a Linux Standard Base -
Desktop system, with the specified runtime names. This list may be
supplemented or amended by the architecture-specific specification.
Table 3-1 Standard Library Names
Library Runtime Name
libQtCore libQtCore.so.4
libQtGui libQtGui.so.4
libQtNetwork libQtNetwork.so.4
libQtOpenGL libQtOpenGL.so.4
libQtSql libQtSql.so.4
libQtSvg libQtSvg.so.4
libQtXml libQtXml.so.4
libatk-1.0 libatk-1.0.so.0
libgdk-x11-2.0 libgdk-x11-2.0.so.0
libgdk_pixbuf-2.0 libgdk_pixbuf-2.0.so.0
libgdk_pixbuf_xlib-2.0 libgdk_pixbuf_xlib-2.0.so.0
libgio-2.0 libgio-2.0.so.0
libglib-2.0 libglib-2.0.so.0
libgmodule-2.0 libgmodule-2.0.so.0
libgobject-2.0 libgobject-2.0.so.0
libgthread-2.0 libgthread-2.0.so.0
libgtk-x11-2.0 libgtk-x11-2.0.so.0
libpango-1.0 libpango-1.0.so.0
libpangocairo-1.0 libpangocairo-1.0.so.0
libpangoft2-1.0 libpangoft2-1.0.so.0
libpangoxft-1.0 libpangoxft-1.0.so.0

These libraries will be in an implementation-defined directory which the
dynamic linker shall search by default.
© 2021 ISO/IEC – All rights reserved 7

4 Terms and Definitions
For the purposes of this document, the terms and definitions given in ISO/IEC
2382, ISO 80000–2, and the following apply.
ISO and IEC maintain terminological databases for use in standardization at the
following addresses:
— ISO Online browsing platform: available at https://www.iso.org/obp
— IEC Electropedia: available at http://www.electropedia.org/

4.1
archLSB
Some LSB specification documents have both a generic, architecture-neutral
part and an architecture-specific part. The latter describes elements whose
definitions may be unique to a particular processor architecture. The term
archLSB may be used in the generic part to refer to the corresponding section
of the architecture-specific part.

4.2
Binary Standard, ABI
The total set of interfaces that are available to be used in the compiled binary
code of a conforming application, including the run-time details such as
calling conventions, binary format, C++ name mangling, etc.

4.3
Implementation-defined
Describes a value or behavior that is not defined by this document but is
selected by an implementor. The value or behavior may vary among
implementations that conform to this document. An application should not
rely on the existence of the value or behavior. An application that relies on
such a value or behavior cannot be assured to be portable across conforming
implementations. The implementor shall document such a value or behavior
so that it can be used correctly by an application.

4.4
Shell Script
A file that is read by an interpreter (e.g., awk). The first line of the shell script
includes a reference to its interpreter binary.

8 © 2021 ISO/IEC – All rights reserved

4.5
Source Standard, API
The total set of interfaces that are available to be used in the source code of a
conforming application. Due to translations, the Binary Standard and the
Source Standard may contain some different interfaces.

4.6
Undefined
Describes the nature of a value or behavior not defined by this document
which results from use of an invalid program construct or invalid data input.
The value or behavior may vary among implementations that conform to this
document. An application should not rely on the existence or validity of the
value or behavior. An application that relies on any particular value or
behavior cannot be assured to be portable across conforming
implementations.
4.7
Unspecified
Describes the nature of a value or behavior not specified by this document
which results from use of a valid program construct or valid data input. The
value or behavior may vary among implementations that conform to this
document. An application should not rely on the existence or validity of the
value or behavior. An application that relies on any particular value or
behavior cannot be assured to be portable across conforming
implementations.
In addition, for the portions of this specification which build on IEEE Std 1003.1-
2001, the definitions given in IEEE Std 1003.1-2001, Base Definitions, Chapter 3
apply.
© 2021 ISO/IEC – All rights reserved 9

5 Documentation Conventions
Throughout this document, the following typographic conventions are used:
function()
the name of a function
command
the name of a command or utility
CONSTANT
a constant value
parameter
a parameter
variable
a variable
Throughout this specification, several tables of interfaces are presented. Each
entry in these tables has the following format:
name
the name of the interface
(symver)
An optional symbol version identifier, if required.
[refno]
A reference number indexing the table of referenced specifications that
follows this table.
For example,
forkpty(GLIBC_2.0) [SUSv4]
refers to the interface named forkpty() with symbol version GLIBC_2.0 that is
defined in the reference indicated by the tag SUSv4.
Note: For symbols with versions which differ between architectures, the symbol
versions are defined in the architecture specific parts of of this module specification
only. In the generic part, they will appear without symbol versions.

10 © 2021 ISO/IEC – All rights reserved

II GTK+ Stack Libraries
© 2021 ISO/IEC – All rights reserved 11

6 Libraries
6.1 Introduction
A conforming implementation shall support the following libraries from the
GTK+ stack which provide interfaces for creating rich graphical user interface
applications.
GLib
A general-purpose utility library, not specific to graphical user interfaces.
Glib is implemented as several libraries, providing a type system, a signal
system, data conversion routines, string utilities, a filesystem abstraction and
file utility routines, threading support and a main loop abstraction.
libglib-2.0
libgmodule-2.0
libgobject-2.0
libgthread-2.0
libgio-2.0
ATK
ATK is the Accessibility Toolkit. It provides a set of generic interfaces
allowing accessibility technologies to interact with a graphical user interface.
For example, a screen reader uses ATK to discover the text in an interface
and read it to blind users. GTK+ widgets have built-in support for
accessibility using the ATK framework.
libatk-1.0
Pango
Pango is a library for laying out and rendering text. It centers around the
PangoLayout object, representing a paragraph of text. Pango provides the
engine for GtkTextView, GtkLabel, GtkEntry, and other widgets that display
text.
libpango-1.0
libpangocairo-1.0
libpangoxft-1.0
libpangoft2-1.0
GdkPixbuf
This is a small library which allows you to create GdkPixbuf ("pixel buffer")
objects from image data or image files. Use a GdkPixbuf in combination with
GtkImage to display images.
libgdk_pixbuf-2.0
libgdk_pixbuf_xlib-2.0
GDK
GDK is the abstraction layer that allows GTK+ to support multiple
windowing systems. GDK provides drawing and window system facilities
on X11, Windows, and the Linux framebuffer device.
12 © 2021 ISO/IEC – All rights reserved

libgdk-x11-2.0
GTK+
The GTK+ library contains widgets, that is, GUI components such as
GtkButton or GtkTextView.
libgtk-x11-2.0
There are three main parts to the definition of each of these libraries.
The "Interfaces" section defines the required library name and version, and the
required public symbols (interfaces and global data), as well as symbol versions,
if any.
The "Interface Definitions" section provides complete or partial definitions of
certain interfaces where either this specification is the source specification, or
where there are variations from the source specification. If an interface definition
requires one or more header files, one of those headers shall include the function
prototype for the interface.
For source definitions of interfaces which include a reference to a header file, the
contents of such header files form a part of the specification. The "Data
Definitions" section provides the binary-level details for the header files from the
source specifications, such as values for macros and enumerated types, as well as
structure layouts, sizes and padding, etc. These data definitions, although
presented in the form of header files for convenience, should not be taken a
representing complete header files, as they are a supplement to the source
specifications. Application developers should follow the guidelines of the source
specifications when determining which header files need to be included to
completely resolve all references.
Note: While the Data Definitions supplement the source specifications, this
specification itself does not require conforming implementations to supply any
header files.
6.2 Interfaces for libglib-2.0
Table 6-1 defines the library name and shared object name for the libglib-2.0
library
Table 6-1 libglib-2.0 Definition
Library: libglib-2.0
SONAME: libglib-2.0.so.0
6.2.1 GTK General purpose utility library
6.2.1.1 Interfaces for GTK General purpose utility library
No external functions are defined for libglib-2.0 - GTK General purpose utility
library in this part of the specification. See also the generic specification.
6.2.2 Glib Arrays
6.2.2.1 Interfaces for Glib Arrays
No external functions are defined for libglib-2.0 - Glib Arrays in this part of the
specification. See also the generic specification.
© 2021 ISO/IEC – All rights reserved 13

6.2.3 Glib Asynchronous Queues
6.2.3.1 Interfaces for Glib Asynchronous Queues
No external functions are defined for libglib-2.0 - Glib Asynchronous Queues in
this part of the specification. See also the generic specification.
6.2.4 Glib Atomic Operations
6.2.4.1 Interfaces for Glib Atomic Operations
No external functions are defined for libglib-2.0 - Glib Atomic Operations in this
part of the specification. See also the generic specification.
6.2.5 Glib Automatic String Completion
6.2.5.1 Interfaces for Glib Automatic String Completion
No external functions are defined for libglib-2.0 - Glib Automatic String
Completion in this part of the specification. See also the generic specification.
6.2.6 Glib Balanced Binary Trees
6.2.6.1 Interfaces for Glib Balanced Binary Trees
No external functions are defined for libglib-2.0 - Glib Balanced Binary Trees in
this part of the specification. See also the generic specification.
6.2.7 Glib Byte Arrays
6.2.7.1 Interfaces for Glib Byte Arrays
No external functions are defined for libglib-2.0 - Glib Byte Arrays in this part of
the specification. See also the generic specification.
6.2.8 Glib Caches
6.2.8.1 Interfaces for Glib Caches
No external functions are defined for libglib-2.0 - Glib Caches in this part of the
specification. See also the generic specification.
6.2.9 Glib Character Set Conversion
6.2.9.1 Interfaces for Glib Character Set Conversion
No external functions are defined for libglib-2.0 - Glib Character Set Conversion
in this part of the specification. See also the generic specification.
6.2.10 Glib Commandline Option Parser
6.2.10.1 Interfaces for Glib Commandline Option Parser
No external functions are defined for libglib-2.0 - Glib Commandline Option
Parser in this part of the specification. See also the generic specification.
14 © 2021 ISO/IEC – All rights reserved

6.2.11 Glib Datasets
6.2.11.1 Interfaces for Glib Datasets
No external functions are defined for libglib-2.0 - Glib Datasets in this part of the
specification. See also the generic specification.
6.2.12 Glib Date and Time Functions
6.2.12.1 Interfaces for Glib Date and Time Functions
No external functions are defined for libglib-2.0 - Glib Date and Time Functions
in this part of the specification. See also the generic specification.
6.2.13 Glib Double-Ended Queues
6.2.13.1 Interfaces for Glib Double-Ended Queues
No external functions are defined for libglib-2.0 - Glib Double-Ended Queues in
this part of the specification. See also the generic specification.
6.2.14 Glib Doubly-Linked Lists
6.2.14.1 Interfaces for Glib Doubly-Linked Lists
No external functions are defined for libglib-2.0 - Glib Doubly-Linked Lists in this
part of the specification. See also the generic specification.
6.2.15 Glib Error Reporting
6.2.15.1 Interfaces for Glib Error Reporting
No external functions are defined for libglib-2.0 - Glib Error Reporting in this part
of the specification. See also the gen
...

Questions, Comments and Discussion

Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.

Loading comments...