LSB 3.1 Specification Errata, TC1 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;