LSB 3.1 Specification Technical Corrigendum #1
LSB 3.1 Specification Errata
Last updated 15 Jan 2007 (last change ref: id=1334)
==========================================================================
Specfication: LSB Core Generic
Edition of Specification: 3.1
Type: Editorial
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1530
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1531
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1532
Rationale: collected small typographical errors
===
Section: 14.4. Interface Definitions for libz
Interface gzwrite, Description, change
On entry, buf shall point to a buffer containing lenbytes of
uncompressed data.
to
On entry, buf shall point to a buffer containing len bytes of
uncompressed data.
===
Section: 13.5. Interface Definitions for libc
Interface svc_sendreply, Description, change
This routine returns one if it succeeds, zero other-wise.
to
This routine returns one if it succeeds, zero otherwise.
===
Section: 13.5. Interface Definitions for libc
Interface svctcp_create, Description, change
svctcp_create() cretes a TCP/IP-based RPC service transport,
to which it returns a pointer.
to
svctcp_create() creates a TCP/IP-based RPC service transport,
to which it returns a pointer.
==========================================================================
Specfication: LSB Core Generic
Specfication: LSB Core IA32, IA64, AMD64, PPC32, PPC64, S390, S390X
Edition of Specification: 3.1
Type: Editorial
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1291
Rationale: the referenced underlying specification for the
matherr() function was incorrect. In one instance the
referenced specification needed to be added to the list.
In LSB Core Generic:
Section : 13.6.1.1. Interfaces for Math, change
matherr [ISOC99]
to
matherr [SVID.3]
Section : A.4 (Appendix A)
Add to the list of Standards:
SVID Issue 3 [SVID.3]
In Table A-5, libm Function Interfaces, change
matherr(GLIBC_2.0)[ISOC99]
to
matherr(GLIBC_2.0)[SVID.3]
===
In LSB Core IA32 change
11.4.1.1. Interfaces for Math
matherr(GLIBC_2.0) [ISOC99]
to
matherr(GLIBC_2.0) [SVID.3]
===
In LSB Core IA64 change
11.4.1.1. Interfaces for Math
matherr(GLIBC_2.2) [ISOC99]
to
matherr(GLIBC_2.2) [SVID.3]
===
In LSB Core PPC32 change
11.4.1.1. Interfaces for Math
matherr(GLIBC_2.0) [ISOC99]
to
matherr(GLIBC_2.0) [SVID.3]
===
In LSB Core PPC64 change
11.4.1.1. Interfaces for Math
matherr(GLIBC_2.3) [ISOC99]
to
matherr(GLIBC_2.3) [SVID.3]
===
In LSB Core S390 change
11.4.1.1. Interfaces for Math
matherr(GLIBC_2.0) [ISOC99]
to
matherr(GLIBC_2.0) [SVID.3]
===
In LSB Core S390X change
11.4.1.1. Interfaces for Math
matherr(GLIBC_2.2) [ISOC99]
to
matherr(GLIBC_2.2) [SVID.3]
===
In LSB Core AMD64 change
11.4.1.1. Interfaces for Math
matherr(GLIBC_2.2.5) [ISOC99]
to
matherr(GLIBC_2.2.5) [SVID.3]
==========================================================================
Specfication: LSB Core Generic
Edition of Specification: 3.1
Type: Error
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1293
Rationale: the RUSAGE_BOTH constant was defined in error
in the header. This is not an application-
usable constant, and in fact generates an error if passed
to the getrlimit function.
13.4.55. sys/resource.h
Remove the following define:
#define RUSAGE_BOTH (-2)
==========================================================================
Specfication: LSB Core Generic
Edition of Specification: 3.1
Type: Error
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1294
Rationale: the speed constants for the cfsetspeed function are
defined twice, in inconsistent ways. The defines in the data
definitions section are correct; the ones in the interface
definitions section were incorrect.
13.5. Interface Definitions for libc
Interface cfsetspeed, Section Getting and Setting the Baud Rate,
delete entire section
Interface cfsetspeed, Section Description, change:
cfsetspeed() sets the baud rate values in the termios
structure. The effects of the function on the terminal as
described below do not become effective, nor are all errors
detected, until the tcsetattr() function is called. Certain
values for baud rates set in termios and passed to tcsetattr()
have special meanings.
to
The cfsetspeed() function shall set the input and output
speeds in t to the value specified by speed. The effects of
the function on the terminal as described below do not become
effective, nor are all errors detected, until the tcsetattr()
function is called. Certain values for baud rates set in
termios and passed to tcsetattr() have special meanings.
==========================================================================
Specfication: LSB Core Generic
Edition of Specification: 3.1
Type: Editorial
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1329
Rationale: strnlen wording is not clear; references to string
where the array of characters need not be null-terminated.
Section: 13.5. Interface Definitions for libc
Interface strnlen, section Description,
Change:
strnlen() returns the number of characters in the string s,
not including the terminating \0 character, but at most
maxlen. In doing this, strnlen() looks only at the first
maxlen characters at s and never beyond s + maxlen.
To:
The strnlen() function shall compute the number of bytes in the
array to which s points, stopping at maxlen bytes. A null byte
and any bytes following it are not counted.
Interface strnlen, section Return Value,
Change:
strnlen() returns strlen(s), if that is less than maxlen, or
maxlen if there is no \0 character among the first maxlen
characters pointed to by s.
To:
The strnlen() function shall return the length of s if that is
less than maxlen, or maxlen if there is no null byte in the first
maxlen bytes.
==========================================================================
Specfication: LSB Core Generic
Edition of Specification: 3.1
Type: Error
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1334
Rationale: several error conditions for flock() were not described
Section: 13.4. Data Definitions for libc
Interface flock, section Errors, add:
EBADF fd is not a not an open file descriptor.
EINTR While waiting to acquire a lock, the call was interrupted by
delivery of a signal caught by a handler.
EINVAL The operation is invalid.
EWOULDBLOCK The implementation ran out of memory for allocating lock
records.
==========================================================================
Specfication: LSB Core Generic
Edition of Specification: 3.1
Type: Error
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1336
Rationale: two structure members had a type different than
required by ISO POSIX and in use by implementations.
Section: 13.4. Data Definitions for libc
13.4.80. wordexp.h
Change:
typedef struct {
int we_wordc;
char **we_wordv;
int we_offs;
} wordexp_t;
To:
typedef struct {
size_t we_wordc;
char **we_wordv;
size_t we_offs;
} wordexp_t;
==========================================================================
Specfication: LSB Core Generic
Edition of Specification: 3.1
Type: Editorial
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1337
Rationale: certain Curses Data Interfaces were correctly
identified as such in Tables 14-5 and A-8, but misidentified
as function interfaces in the Data Definitions section.
Section 14.6. Data Definitions for libncurses, 14.6.1. curses.h) change:
extern int COLORS(void);
extern int COLOR_PAIRS(void);
extern WINDOW *curscr(void);
extern WINDOW *stdscr(void);
extern int COLS(void);
extern int LINES(void);
to
extern int COLORS;
extern int COLOR_PAIRS;
extern WINDOW *curscr;
extern WINDOW *stdscr;
extern int COLS;
extern int LINES;
and change
extern chtype acs_map(void);
to
extern chtype acs_map [128];
==========================================================================
Specfication: LSB Core Generic
Edition of Specification: 3.1
Type: Editorial
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1338
Rationale: typographical error, duplicated word "and"
Section: 14.4. Interface Definitions for libz
Interface gzread, Return Value, change
On other errors, gzread() shall return a value less than 0
and and applications may examine the cause using gzerror().
to
On other errors, gzread() shall return a value less than 0
and applications may examine the cause using gzerror().
==========================================================================
Specfication: LSB Core Generic
Edition of Specification: 3.1
Type: Error
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1346
Rationale: The __WRDE_FLAGS constant in wordexp.h is not defined;
it is not intended for application usage and was included in error.
Section: 13.4. Data Definitions for libc
13.4.80. wordexp.h
Change:
WRDE_UNDEF = 32,
__WRDE_FLAGS = 63
To:
WRDE_UNDEF = 32
==========================================================================
Specfication: LSB Core Generic
Edition of Specification: 3.1
Type: Editorial
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1347
Rationale: typgraphical error, "value" misspelled
Section: 14.4. Interface Definitions for libz
Interface inflateSyncPoint, Description, change
The inflateSyncPoint() function shall return a non-zero calue
if the compressed data stream referenced by stream is at a
synchronization point.
to
The inflateSyncPoint() function shall return a non-zero value
if the compressed data stream referenced by stream is at a
synchronization point.
==========================================================================
Specfication: LSB Core Generic
Edition of Specification: 3.1
Type: Editorial
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1350
Rationale: typographical error, "machine" misspelled
Section : 13.5. Interface Definitions for libc
Interface sethostname, Description, change
If the process has appropriate privileges, the sethostname()
function shall change the host name for the current macine.
to
If the process has appropriate privileges, the sethostname()
function shall change the host name for the current machine.
==========================================================================
Specfication: LSB Core Generic
Edition of Specification: 3.1
Type: Editorial
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1352
Rationale: there is no description of the purpose of the
longindex parameter to getopt_long and getopt_long_only.
Section: 13.5. Interface Definitions for libc
Interface getopt_long, section Description, add
13.5. Interface Definitions for libc
If longindex is not NULL, it points to a variable which is
set to the index of the long option relative to longopts.
==========================================================================
Specfication: LSB Core Generic
Edition of Specification: 3.1
Type: Editorial
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1353
Rationale: typographical error, wrong name for constants
MAX_WBITS and MAX_MEM_LEVEL used.
Section: 14.4. Interface Definitions for libz
Interface inflateInit_, Description, change
The inflateInit_() shall be equivalent to
inflateInit2_(strm, DEF_WBITS, version, stream_size);
to
The inflateInit_() function is equivalent to
inflateInit2_(strm, MAX_WBITS, version, stream_size);
Interface deflateInit_, Description, change
The deflateInit_() function is equivalent to
deflateInit2_(stream, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL,
Z_DEFAULT_STRATEGY, version, stream_size);
to
The deflateInit_() function is equivalent to
deflateInit2_(stream, level, Z_DEFLATED, MAX_WBITS, MAX_MEM_LEVEL,
Z_DEFAULT_STRATEGY, version, stream_size);
==========================================================================
Specfication: LSB Core Generic
Edition of Specification: 3.1
Type: Editorial
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1361
Rationale: the referenced underlying specification for the
endutent() function was incorrect and the definition of
the interface was omitted.
Section 13.3.14.1. Interfaces for System Database Interface, change
endutent [SUSv2]
to
endutent [LSB]
Section 13.5, Interface Definitions for libc, Contents, add
endutent -- access utmp file entries
Section 13.5, Interface Definitions for libc, add
endutent
Name
endutent -- access utmp file entries
Synopsis
#include
void endutent(void);
Description
endutent() closes the utmp file. It should be called when the
user code is done accessing the file with the other functions.
Table A-1. libc Function Interfaces, change
endutent(GLIBC_2.0)[SUSv2]
to
endutent(GLIBC_2.0)[LSB]
==========================================================================
Specfication: LSB Core Generic
Edition of Specification: 3.1
Type: Editorial
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1366
Rationale: the definition of the newlocale function omitted
a description of the error when the locale cannot be found.
13.5. Interface Definitions for libc
Interface newlocale, section Errors
Add:
ENOENT
For any of the categories in category_mask, the locale data is
not available.
==========================================================================
Specfication: LSB Core Generic
Edition of Specification: 3.1
Type: Editorial
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1367
Rationale: typographical error, extra commas after elements
of comma-separated list
Section: 14.4. Interface Definitions for libz
Interface inflateSync, Return Value, change
On success, inflateSync() shall return Z_OK, and update the
next_in,, avail_in, and, total_in fields of stream to reflect
the number of bytes of compressed data that have been skipped.
Otherwise, inflateSync() shall return a value as described
below to indicate the error.
to
On success, inflateSync() shall return Z_OK, and update the
next_in, avail_in and total_in fields of stream to reflect
the number of bytes of compressed data that have been skipped.
Otherwise, inflateSync() shall return a value as described
below to indicate the error.
==========================================================================
Specfication: LSB Core Generic
Edition of Specification: 3.1
Type: Editorial
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1374
Rationale: omitted prototype for __strdup() function
13.4. Data Definitions for libc
13.4.47. string.h add:
extern char *__strdup(const char *);
==========================================================================
Specfication: LSB Core Generic
Edition of Specification: 3.1
Type: Editorial
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1375
Rationale: typographical error, *(main) instead of (*main)
in prototype
Section : 13.5. Interface Definitions for libc
Interface __libc_start_main, Synopsis, change
int __libc_start_main(int *(main) (int, char * *, char * *),
int argc, char * * ubp_av, void (*init) (void), void (*fini)
(void), void (*rtld_fini) (void), void (* stack_end));
to:
int __libc_start_main(int (*main) (int, char **, char **),
int argc, char ** ubp_av, void (*init) (void), void (*fini)
(void), void (*rtld_fini) (void), void (* stack_end));
==========================================================================
Specfication: LSB Core IA64, AMD64
Edition of Specification: 3.1
Type: Editorial
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1377
Rationale: the reference specification for __fpclassifyl was incorrect.
Since the reference specification is this document, the specification
text needed to be added. After the change, this now matches how
LSB Core IA32 appears.
In Specification LSB Core IA64:
Section 11.4.1.1 Interfaces for Math, change
__fpclassifyl(GLIBC_2.2) [ISOC99]
to
__fpclassifyl(GLIBC_2.2) [LSB]
Add new section:
Interface Definitions for libm
Table of Contents
__fpclassifyl -- Classify real floating type
The interfaces defined on the following pages are included in
libm and are defined by this specification. Unless otherwise
noted, these interfaces shall be included in the source
standard.
Other interfaces listed in Section [XX] shall behave as
described in the referenced base document.
__fpclassify
Name
__fpclassifyl -- Classify real floating type
Synopsis
int __fpclassifyl(long double arg);
Description
__fpclassifyl() has the same specification as fpclassify() in
ISO POSIX (2003), except that the argument type for
__fpclassifyl() is known to be long double.
__fpclassifyl() is not in the source standard; it is only in
the binary standard.
Section A.2 libm, add to the list of Standards:
This Specification [LSB]
In Table A-2, libm Function Interfaces, change
__fpclassifyl[ISOC99]
to
__fpclassifyl[LSB]
===
In Specification LSB Core AMD64:
Section 11.4.1.1 Interfaces for Math, change
__fpclassifyl(GLIBC_2.2) [ISOC99]
to
__fpclassifyl(GLIBC_2.2) [LSB]
Add new section:
Interface Definitions for libm
Table of Contents
__fpclassifyl -- Classify real floating type
The interfaces defined on the following pages are included in
libm and are defined by this specification. Unless otherwise
noted, these interfaces shall be included in the source
standard.
Other interfaces listed in Section [XX] shall behave as
described in the referenced base document.
__fpclassify
Name
__fpclassifyl -- Classify real floating type
Synopsis
int __fpclassifyl(long double arg);
Description
__fpclassifyl() has the same specification as fpclassify() in
ISO POSIX (2003), except that the argument type for
__fpclassifyl() is known to be long double.
__fpclassifyl() is not in the source standard; it is only in
the binary standard.
Section A.2 libm, add to the list of Standards:
This Specification [LSB]
In Table A-2, libm Function Interfaces, change
__fpclassifyl[ISOC99]
to
__fpclassifyl[LSB]
==========================================================================
Specfication: LSB Core Generic
Edition of Specification: 3.1
Type: Editorial
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1379
Rationale: typographical error, wrong name for constant
Z_DEFAULT_COMPRESSION was used
Section: 14.4. Interface Definitions for libz
Interface compress, Description, change:
The compress() function is equivalent to compress2() with a
level of Z_DEFAULT_LEVEL.
to
The compress() function is equivalent to compress2() with a
level of Z_DEFAULT_COMPRESSION.
Interface compress2, Description, change:
The compress() function is equivalent to compress2() with a
level of Z_DEFAULT_LEVEL.
to
The compress() function is equivalent to compress2() with a
level of Z_DEFAULT_COMPRESSION.
Interface compress2, Errors, change:
The level was not Z_DEFAULT_LEVEL, or was not between 0 and 9.
to
The level was not Z_DEFAULT_COMPRESSION, or was not between 0 and 9.
==========================================================================
Specfication: LSB Core Generic
Edition of Specification: 3.1
Type: Editorial
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1380
Rationale: typographical error, reference to wrong function
in descriptions
Section: 14.4. Interface Definitions for libz
Interface gzdopen, Description for digit, change
See defaultInit2_() for further details.
to
See deflateInit2_() for further details.
Interface gzdopen, Description for [fhr], change
See defaultInit2_() for further details.
to
See deflateInit2_() for further details.
Interface gzopen, Description for digit, change
See defaultInit2_() for further details.
to
See deflateInit2_() for further details.
Interface gzopen, Description for [fhr], change
See defaultInit2_() for further details.
to
See deflateInit2_() for further details.
==========================================================================
Specfication: LSB Core Generic
Edition of Specification: 3.1
Type: Editorial
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1398
Rationale: the behavior on success is defined in the Return
Value section. The text to be deleted is not only superfluous,
it is incorrect.
Section: 14.4. Interface Definitions for libz
Interface inflate, Description, delete:
On success, the inflate() function shall set the adler field
of the stream to the Adler-32 checksum of all the input data
compressed so far (represented by total_in).
==========================================================================
Specfication: LSB Core Generic
Edition of Specification: 3.1
Type: Editorial
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1399
Rationale: typographical error, wrong constant used
in place of SEEK_CUR
Section: 14.4. Interface Definitions for libz
Interface gztell, Description, change
gztell() is equivalent to gzseek(file, 0L, SEEK_SET)
to
gztell() is equivalent to gzseek(file, 0L, SEEK_CUR)
==========================================================================
Specfication: LSB Core Generic
Edition of Specification: 3.1
Type: Editorial
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1405
Rationale: omitted prototype for function clog10()
13.7. Data Definitions for libm
13.7.1. complex.h add:
extern double complex clog10(double complex);
==========================================================================
Specfication: LSB Core Generic
Edition of Specification: 3.1
Type: Editorial
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1410
Rationale: definitions of SIOCGIFNAME, SIOCGIFDSTADDR, SIOCGIFBRDADDR
and SIOCGIFMTU macros omitted or partially present. All four
macros missing in Data Definitions; SIOCGIFDSTADDR and SIOCGIFNAME
missing in Interface Definitions.
Section: 13.4. Data Definitions for libc
13.4.58. sys/socket.h
Add to the other SIOCG* macros:
#define SIOCGIFNAME 0x8910
#define SIOCGIFDSTADDR 0x8917
#define SIOCGIFBRDADDR 0x8919
#define SIOCGIFMTU 0x8921
Section: 13.5. Interface Definitions for libc
under: sockio -- socket ioctl commands
add:
SIOCGIFDSTADDR
Get the point-to-point address for the given interface.
argp shall point to a ifreq structure. Before calling,
the caller should fill in the ifr_name field with the
interface name, and upon return, the ifr_dstaddr field
is set with the point-to-point address.
SIOCGIFNAME
Get the name of an interface. argp shall point to a
ifreq structure. Before calling, the caller should fill
in the ifr_ifindex field with the number (index) of the
interface, and upon return, the ifr_name field is set
with the interface name.
==========================================================================
Specfication: LSB Core Generic
Edition of Specification: 3.1
Type: Error
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1425
Rationale: several sets of constants are presented in the
Data Definitions as enums, but are not given their correct
values in those enums.
Section : 13.4. Data Definitions for libc
In 13.4.3. ctype.h, change
enum {
_ISupper, _ISlower, _ISalpha, _ISdigit, _ISxdigit, _ISspace, _ISprint,
_ISgraph, _ISblank, _IScntrl, _ISpunct, _ISalnum
};
to:
enum {
_ISupper = 256,
_ISlower = 512,
_ISalpha = 1024,
_ISdigit = 2048,
_ISxdigit = 4096,
_ISspace = 8192,
_ISprint = 16384,
_ISgraph = 32768,
_ISblank = 1,
_IScntrl = 2,
_ISpunct = 4,
_ISalnum = 8
};
==
In 13.4.10. ftw.h, Change
enum {
FTW_PHYS, FTW_MOUNT, FTW_CHDIR, FTW_DEPTH
};
To:
enum {
FTW_PHYS = 1,
FTW_MOUNT = 2,
FTW_CHDIR = 4,
FTW_DEPTH = 8
};
==
In 13.4.32. regex.h, Change
typedef enum {
REG_ENOSYS, REG_NOERROR, REG_NOMATCH, REG_BADPAT, REG_ECOLLATE,
REG_ECTYPE, REG_EESCAPE, REG_ESUBREG, REG_EBRACK, REG_EPAREN,
REG_EBRACE, REG_BADBR, REG_ERANGE, REG_ESPACE, REG_BADRPT,
REG_EEND, REG_ESIZE, REG_ERPAREN
} reg_errcode_t;
To:
typedef enum {
REG_ENOSYS = -1,
REG_NOERROR = 0,
REG_NOMATCH = 1,
REG_BADPAT = 2,
REG_ECOLLATE = 3,
REG_ECTYPE = 4,
REG_EESCAPE = 5,
REG_ESUBREG = 6,
REG_EBRACK = 7,
REG_EPAREN = 8,
REG_EBRACE = 9,
REG_BADBR = 10,
REG_ERANGE = 11,
REG_ESPACE = 12,
REG_BADRPT = 13,
REG_EEND = 14,
REG_ESIZE = 15,
REG_ERPAREN = 16
} reg_errcode_t;
==
In 13.4.81. wordexp.h, Change:
enum {
WRDE_DOOFFS, WRDE_APPEND, WRDE_NOCMD, WRDE_REUSE, WRDE_SHOWERR,
WRDE_UNDEF, __WRDE_FLAGS
};
To:
enum {
WRDE_DOOFFS = 1,
WRDE_APPEND = 2,
WRDE_NOCMD = 4,
WRDE_REUSE = 8,
WRDE_SHOWERR = 16,
WRDE_UNDEF = 32,
__WRDE_FLAGS = 63
};
NOTE: bug 1346 removes the __WRDE_FLAGS value entirely
==========================================================================
Specfication: LSB Core Generic
Edition of Specification: 3.1
Type: Error
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1432
Rationale: wrong values for PTHREAD_MUTEX constants, did not
match implementations
13.10. Data Definitions for libpthread
13.10.1. pthread.h change these constants:
#define PTHREAD_MUTEX_DEFAULT 1
#define PTHREAD_MUTEX_NORMAL 1
#define PTHREAD_MUTEX_RECURSIVE 2
#define PTHREAD_MUTEX_ERRORCHECK 3
to
#define PTHREAD_MUTEX_DEFAULT 0
#define PTHREAD_MUTEX_NORMAL 0
#define PTHREAD_MUTEX_RECURSIVE 1
#define PTHREAD_MUTEX_ERRORCHECK 2
==========================================================================
Specfication: LSB Core Generic
Edition of Specification: 3.1
Type: Editorial
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1436
Rationale: typographical error, reference to wrong function
in Errors description
Section: 14.4. Interface Definitions for libz
Interface gzflush, Errors, change
On error, gzwrite() shall return an error value, and may set
the error number associated with the stream identified by file
to indicate the error.
to
On error, gzflush() shall return an error value, and may set
the error number associated with the stream identified by file
to indicate the error.
==========================================================================
Specfication: LSB Core Generic
Edition of Specification: 3.1
Type: Editorial
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1438
Rationale: the definition of the CIE pointer is incorrect
In LSB Core Generic:
Section : 11.6.1.2. The Frame Description Entry Format, change
A 4 byte unsigned value that when subtracted from the
offset of the current FDE yields the offset of the
start of the associated CIE. This value shall never be
0.
to:
A 4 byte unsigned value that when subtracted from the
offset of the CIE pointer in the current FDE yields the
offset of the start of the associated CIE. This value
shall never be 0.
==========================================================================
Specfication: LSB Core Generic
Specfication: LSB Core IA32
Edition of Specification: 3.1
Type: Editorial
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1443
Rationale: incorrect reference to base function in ISO POSIX for
__fpclassifyf, __fpclassifyl and incorrect summary for the latter.
In Specification LSB Core Generic:
13.8. Interface Definitions for libm
Interface __fpclassifyl, Description, change
__fpclassifyf() has the same specification as fpclassifyf() in
ISO POSIX (2003), except that the argument type for
__fpclassifyf() is known to be float.
to
__fpclassifyf() has the same specification as fpclassify() in
ISO POSIX (2003), except that the argument type for
__fpclassifyf() is known to be float.
===
In Specification LSB Core IA32:
11.6. Interface Definitions for libm
Table of Contents, change:
__fpclassifyl -- test for infinity
to
__fpclassifyl -- Classify real floating type
Interface __fpclassifyl, Name, change
__fpclassifyl -- test for infinity
to
__fpclassifyl -- Classify real floating type
Interface __fpclassifyl, Synopsis, change
__fpclassifyl() has the same specification as fpclassifyl() in
ISO POSIX (2003), except that the argument type for
__fpclassifyl() is known to be long double.
to
__fpclassifyl() has the same specification as fpclassify() in
ISO POSIX (2003), except that the argument type for
__fpclassifyl() is known to be long double.
==========================================================================
Specfication: LSB Core Generic
Edition of Specification: 3.1
Type: Error
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1446
Rationale: wrong reference specification for cpio command
Section: 15.2. Command Behavior
Command cpio, Description, change:
cpio is as specified in ISO POSIX (2003), but with differences
as listed below.
to
cpio is as specified in SUSv2, but with differences as listed
below.
==========================================================================
Specfication: LSB Core Generic
Edition of Specification: 3.1
Type: Editorial
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1447
Rationale: several references to two nonexistent sections.
References are changed to the correct section names.
13.5. Interface Definitions for libc
Interface regexec, section Differences
Change:
Certain aspects of regular expression matching are optional;
see Internationalization and Regular Expressions.
To:
Certain aspects of regular expression matching are optional;
see Regular Expressions.
==
Section 15.2. Command Behavior
Command awk, section Differences
Change:
Certain aspects of internationalized regular expressions are
optional; see Internationalization and Regular Expressions.
To:
Certain aspects of internationalized regular expressions are
optional; see Regular Expressions.
Command cpio, section Differences
Change:
Some elements of the Pattern Matching Notation are optional;
see Internationalization and Pattern Matching Notation.
To:
Some elements of the Pattern Matching Notation are optional;
see Pattern Matching Notation.
Command find, section Differences
Change:
Some elements of the Pattern Matching Notation are optional;
see Internationalization and Pattern Matching Notation.
Change:
Some elements of the Pattern Matching Notation are optional;
see Pattern Matching Notation.
Command grep, section LSB Differences
Change:
Certain aspects of regular expression matching are optional;
see Internationalization and Regular Expressions.
To:
Certain aspects of regular expression matching are optional;
see Regular Expressions.
Command sed, section LSB Differences
Change:
Certain aspects of regular expression matching are optional;
see Internationalization and Regular Expressions.
To:
Certain aspects of regular expression matching are optional;
see Regular Expressions.
Command tar, section Differences
Change:
Some elements of the Pattern Matching Notation are optional;
see Internationalization and Pattern Matching Notation.
To:
Some elements of the Pattern Matching Notation are optional;
see Pattern Matching Notation.
==========================================================================
Specfication: LSB Core IA32
Edition of Specification: 3.1
Type: Editorial
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1455
Rationale: wrong type for st_uid member in struct stat
Section : 13.5. Interface Definitions for libc
Section 11.3. Data Definitions for libc,
part 11.3.59. sys/stat.h, struct stat, Change
pid_t st_uid;
to:
uid_t st_uid;
==========================================================================
Specfication: LSB Core generic
Edition of Specification: 3.1
Type: Editorial
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1474
Rationale: blksize_t and blkcnt_t typedefs must be signed according to
ISO POSIX. By extension, blkcnt64_t should also be signed.
Section : 13.4. Interface Definitions for libc
part 13.4.64. sys/types.h, change:
typedef unsigned long int blksize_t;
to
typedef long int blksize_t;
change
typedef unsigned long int blkcnt_t;
to
typedef long int blkcnt_t;
change:
typedef unsigned long long int blkcnt64_t;
to
typedef long long int blkcnt64_t;
==========================================================================
Specfication: LSB Desktop generic
Edition of Specification: 3.1
Type: Editorial
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1493
Rationale: two internal macros that reflect the result of
configuring the jpeg library, but do not form part of the
API/ABI, were included in error. Since these may interfere
with application usage, they are removed.
Section : 9.2. Data Definitions for libjpeg
Section 9.2.1. jpeglib.h
Remove:
#define HAVE_STDDEF_H
#define HAVE_STDLIB_H
==========================================================================
Specfication: LSB Core generic
Edition of Specification: 3.1
Type: Editorial
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1497
Rationale: __INT_MAX__ is an internal compiler-provided constant
that should not have been included in the LSB specification.
Section : 13.5. Interface Definitions for libc
part 13.4.19. limits.h, remove:
#define __INT_MAX__ 2147483647
==========================================================================
Specfication: LSB Desktop generic
Edition of Specification: 3.1
Type: Editorial
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1508
Rationale: the function prototype for glXGetProcAddressARB is incorrect
Section : 7.2. Data Definitions for libGL
part 7.2.2. GL/glx.h, change
extern void (*GLXWindow) (GLubyte * procName) glXGetProcAddressARB(void);
to
extern void (*glXGetProcAddressARB(const GLubyte * procName)) (void);
==========================================================================
Specfication: LSB Core Generic
Edition of Specification: 3.1
Type: Editorial
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1518
Rationale: definition of Z_BLOCK macro omitted
Section: 14.3. Data Definitions for libz
14.3.1. zlib.h, following
#define Z_FINISH 4
add:
#define Z_BLOCK 5
==========================================================================
Specfication: LSB Core Generic
Specfication: LSB Core IA32, IA64, AMD64, PPC32, PPC64, S390, S390X
Edition of Specification: 3.1
Type: Editorial
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1525
Rationale: the statfs and fstatfs functions were marked as obsolete in
LSB 1.3 and removed at 2.0. However, since these interfaces provide
the only method for discovering the file system type, their removal
was regarded as premature, and they have been reinstated (together with
their obsolete status) until such time as there is a better alternative
in widespread use.
In LSB Core Generic:
Section : 13.3.2.1. Interfaces for System Calls, insert
fstatfs [LSB]
statfs [LSB]
Section : 13.3.16.1. Interfaces for Large File Support, insert
fstatfs64 [LSB]
statfs64 [LSB]
Section : 13.4 Data Defintions for libc, add
13.4.60. sys/statfs.h
#define NFS_SUPER_MAGIC 0x6969
struct statfs {
int f_type;
int f_bsize;
fsblkcnt_t f_blocks;
fsblkcnt_t f_bfree;
fsblkcnt_t f_bavail;
fsblkcnt_t f_files;
fsblkcnt_t f_ffree;
fsid_t f_fsid;
int f_namelen;
int f_spare[6];
};
struct statfs64 {
int f_type;
int f_bsize;
fsblkcnt64_t f_blocks;
fsblkcnt64_t f_bfree;
fsblkcnt64_t f_bavail;
fsblkcnt64_t f_files;
fsblkcnt64_t f_ffree;
fsid_t f_fsid;
int f_namelen;
int f_spare[6];
};
extern int fstatfs64(int, struct statfs64 *);
extern int statfs64(const char *, struct stat64 *);
extern int fstatfs(int, struct statfs *);
extern int statfs(const char *, struct statfs *);
Section : 13.5. Interface Definitions for libc, add
fstatfs -- (deprecated)
fstatfs64 -- (deprecated)
statfs -- (deprecated)
statfs64 -- (deprecated)
and add:
fstatfs
Name
fstatfs -- (deprecated)
Synopsis
#include
int fstatfs(int fd, struct statfs * buf);
Description
The fstatfs() function returns information about a mounted
file system. The file system is identified by fd, a file
descriptor of an open file within the mounted filesystem. The
results are placed in the structure pointed to by buf.
Fields that are undefined for a particular file system shall
be set to 0.
Note: Application developers should use the fstatvfs()
function to obtain general file system information.
Applications should only use the fstatfs() function if they
must determine the file system type, which need not be
provided by fstatvfs().
Return Value
On success, the fstatfs() function shall return 0 and sed the
fields of the structure idenfitied by buf accordingly. On
error, the fstatfs() function shall return -1 and set errno
accordingly.
Errors
EBADF fd is not a valid open file descriptor.
EFAULT buf points to an invalid address.
EIO An I/O error occurred while reading from or writing to
the file system.
ENOSYS The filesystem fd is open on does not support statfs().
fstatfs64
Name
fstatfs64 -- (deprecated)
Synopsis
#include
int fstatfs64(int fd, struct statfs64 * buf);
Description
The fstatfs64() function returns information about a mounted
file system. The file system is identified by fd, a file
descriptor of an open file within the mounted filesystem. The
results are placed in the structure pointed to by buf.
Fields that are undefined for a particular file system shall
be set to 0.
fstatfs64() is the 64-bit version of fstatfs().
Note: Application developers should use the fstatvfs64()
function to obtain general file system information.
Applications should only use the fstatfs64() function if
they must determine the file system type, which need not be
provided by fstatvfs64().
Return Value
On success, the fstatfs64() function shall return 0 and sed
the fields of the structure idenfitied by buf accordingly. On
error, the fstatfs64() function shall return -1 and set errno
accordingly.
Errors
See fstatfs().
statfs
Name
statfs -- (deprecated)
Synopsis
#include
int statfs(const char *path, (struct statfs * buf));
Description
The statfs() function returns information about a mounted file
system. The file system is identified by path, a path name of
a file within the mounted filesystem. The results are placed
in the structure pointed to by
Fields that are undefined for a particular file system shall
be set to 0.
Note: Application developers should use the statvfs()
function to obtain general file system information.
Applications should only use the statfs() function if they
must determine the file system type, which need not be
provided by statvfs().
Return Value
On success, the statfs() function shall return 0 and sed the
fields of the structure idenfitied by buf accordingly. On
error, the statfs() function shall return -1 and set errno
accordingly.
Errors
ENOTDIR A component of the path prefix of path is not a
directory.
ENAMETOOLONG path is too long.
ENOENT The file referred to by path does not exist.
EACCES Search permission is denied for a component of the
path prefix of path.
ELOOP Too many symbolic links were encountered in translating
path.
EFAULT buf or path points to an invalid address.
EIO An I/O error occurred while reading from or writing
to the file system.
ENOMEM Insufficient kernel memory was available.
ENOSYS The filesystem path is on does not support statfs().
statfs64
Name
statfs64 -- (deprecated)
Synopsis
#include
int statfs64(const char * path, (struct statfs64 * buf));
Description
The statfs64() function returns information about a mounted
file system. The file system is identified by path, a path
name of a file within the mounted filesystem. The results are
placed in the structure pointed to by buf.
statfs64() is the 64-bit version of statfs().
Fields that are undefined for a particular file system shall
be set to 0.
Note: Application developers should use the statvfs64()
function to obtain general file system information.
Applications should only use the statfs64() function if
they must determine the file system type, which need not be
provided by statvfs64().
Return Value
On success, the statfs64() function shall return 0 and sed the
fields of the structure idenfitied by buf accordingly. On
error, the statfs64() function shall return -1 and set errno
accordingly.
Errors
See fstatfs().
==
In LSB Core IA32
Section : 11.2.2.1. Interfaces for System Calls, insert
fstatfs(GLIBC_2.0) [LSB]
statfs(GLIBC_2.0) [LSB]
Section : 11.2.16.1. Interfaces for Large File Support, insert
fstatfs64(GLIBC_2.1) [LSB]
statfs64(GLIBC_2.1) [LSB]
==
In LSB Core IA64
Section : 11.2.2.1. Interfaces for System Calls, insert
fstatfs(GLIBC_2.2) [LSB]
statfs(GLIBC_2.2) [LSB]
Section : 11.2.16.1. Interfaces for Large File Support, insert
fstatfs64(GLIBC_2.2) [LSB]
statfs64(GLIBC_2.2) [LSB]
==
In LSB Core AMD64
Section : 11.2.2.1. Interfaces for System Calls, insert
fstatfs(GLIBC_2.2.5) [LSB]
statfs(GLIBC_2.2.5) [LSB]
Section : 11.2.16.1. Interfaces for Large File Support, insert
fstatfs64(GLIBC_2.2.5) [LSB]
statfs64(GLIBC_2.2.5) [LSB]
==
In LSB Core PPC32
Section : 11.2.2.1. Interfaces for System Calls, insert
fstatfs(GLIBC_2.0) [LSB]
statfs(GLIBC_2.0) [LSB]
Section : 11.2.16.1. Interfaces for Large File Support, insert
fstatfs64(GLIBC_2.1) [LSB]
statfs64(GLIBC_2.1) [LSB]
==
In LSB Core PPC64
Section : 11.2.2.1. Interfaces for System Calls, insert
fstatfs(GLIBC_2.3) [LSB]
statfs(GLIBC_2.3) [LSB]
Section : 11.2.16.1. Interfaces for Large File Support, insert
fstatfs64(GLIBC_2.3) [LSB]
statfs64(GLIBC_2.3) [LSB]
==
In LSB Core S390
Section : 11.2.2.1. Interfaces for System Calls, insert
fstatfs(GLIBC_2.0) [LSB]
statfs(GLIBC_2.0) [LSB]
Section : 11.2.16.1. Interfaces for Large File Support, insert
fstatfs64(GLIBC_2.1) [LSB]
statfs64(GLIBC_2.1) [LSB]
==
In LSB Core S390X
Section : 11.2.2.1. Interfaces for System Calls, insert
fstatfs(GLIBC_2.2) [LSB]
statfs(GLIBC_2.2) [LSB]
Section : 11.2.16.1. Interfaces for Large File Support, insert
fstatfs64(GLIBC_2.2) [LSB]
statfs64(GLIBC_2.2) [LSB]
==========================================================================
Specfication: LSB Core Generic
Edition of Specification: 3.1
Type: Editorial
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1533
Rationale: editorial, duplicated paragraph
Section: 13.5. Interface Definitions for libc
Interface bind_textdomain_codeset, Description, remove
The bind_textdomain_codeset() function returns a pointer to
string containing the name of the selected codeset.
The string is allocated internally in the function and
shall not be changed by the user.
==========================================================================
Specfication: LSB Core generic
Edition of Specification: 3.1
Type: Editorial
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1541
Rationale: The svcudp_create function was incompletely defined.
Section : 13.5. Interface Definitions for libc
Interface svcudp_create, section Description, change
This call is equivalent to svcudp_bufcreate( sock, SZ, SZ) for
some default size SZ.
To:
The svcudp_create() function shall create a UDP/IP-based RPC service
transport, and return a pointer to its descriptor. The transport is
associated with the socket sock, which may be RPC_ANYSOCK, in which
case a new socket shall be created. If the socket is not bound to a
local UDP port, then svcudp_create() shall bind it to an arbitrary
port.
If svcudp_create() returns successfully, then the xp_sock field in
the result shall be the transport's socket descriptor, and the xp_port
field shall be the transport's port number.
Add section Return Value:
Upon successful completion, svcudp_create() shall return a pointer to
a RPC service transport; otherwise, a null pointer shall be returned.
==========================================================================
Specfication: LSB Desktop generic
Edition of Specification: 3.1
Type: Editorial
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1544
Rationale: Xt Intrinsics functions have incorrect prototypes
Section : 6.9. Data Definitions for libXt
part 6.9.6. X11/Intrinsic.h
Change:
extern Boolean XtIsApplicationShell(void);
extern Boolean XtIsComposite(void);
extern Boolean XtIsConstraint(void);
To:
extern Boolean XtIsApplicationShell(Widget);
extern Boolean XtIsComposite(Widget);
extern Boolean XtIsConstraint(Widget);
Change:
extern Boolean XtIsOverrideShell(void);
To:
extern Boolean XtIsOverrideShell(Widget);
Change:
extern Boolean XtIsRectObj(void);
To:
extern Boolean XtIsRectObj(Widget);
Change:
extern Boolean XtIsSessionShell(void);
extern Boolean XtIsShell(void);
To:
extern Boolean XtIsSessionShell(Widget);
extern Boolean XtIsShell(Widget);
Change:
extern Boolean XtIsTopLevelShell(void);
extern Boolean XtIsTransientShell(void);
extern Boolean XtIsVendorShell(void);
extern Boolean XtIsWMShell(void);
extern Boolean XtIsWidget(void);
To:
extern Boolean XtIsTopLevelShell(Widget);
extern Boolean XtIsTransientShell(Widget);
extern Boolean XtIsVendorShell(Widget);
extern Boolean XtIsWMShell(Widget);
extern Boolean XtIsWidget(Widget);
==========================================================================
Specfication: LSB Core Generic
Edition of Specification: 3.1
Type: Editorial
Status: Unapproved
Bug reference: http://bugs.linuxbase.org/show_bug.cgi?id=1545
Rationale: description of "option" structure for getopt_long
differs in the Data Definitions and in Interface Definitions.
The latter is correct.
Section: 13.4. Data Definitions for libc
13.4.11. getopt.h, change
struct option {
char *name;
to:
struct option {
const char *name;