Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

1.72. ia32el

1.72.1. RHBA-2010:0250: bug fix update

An ia32el update that fixes several bugs is now available.
ia32el is the IA-32 Execution Layer platform, which allows the emulation of IA-32 binaries on IA-64.
This updated package addresses the following issues:
* When using the -D_FILE_OFFSET_BITS=64 compile option, the platform would try to call syscall statfs64 (syscall id=268). Unfortunately, this was unsupported by the previous package. Instead, the platform would resort to statfs(), and the case would fail. This package adds support for syscall statfs64. The platform no longer resorts to statfs(), and works correctly. (BZ#514938)
* When SIGALRM invokes the signal handler, the ia32el application that installed the signal handler stops executing system calls in the correct order. This package adds a patch to the code that changes the conditions for the order of executing system calls, preventing the signal handler from affecting it. (BZ#515165)
* The ia32el did not pass the second, third and fourth offset arguments of the fadvise64() or fadvise64_64() system call methods to the kernel correctly because it was unable to handle 64-bit arguments for that system call. This meant that the offset arguments were not recognized as valid by the kernel. Support for 64-bit arguments has now been added. ( BZ#528590 )
* The clock_nanosleep() system call method's fourth argument (remaining time) retained old values when interrupted by signal (EINTR). This caused invalid values to return for this argument. This patch adds a validity check before the values are returned. ( BZ#528590 )
* The ia32el would not perform operations on the third argument of the sendfile() system call method correctly. As a result, after a successful system call, the offset argument would not be set to the value of the byte following the last byte read. This updated package contains a patch to correctly set the offset argument (during the system call). (BZ#528596)
* The ia32el previously broke the arguments of the sync_file_range() syscall. When the syscall was run, it would respond with an 'Invalid argument' error. A patch has been created that fixes the syntax error in the code. The ia32el now reads the sync_file_range() arguments correctly. (BZ#528597)
* When a NULL pointer was specified for the 2nd argument of the timer_create() syscall, the ia32el would pass the kernel a non-NULL pointer to uninitialized data instead, and the syscall would fail. This package provides a patch that adjusts the syntax of the code for the timer_create() syscall, so that the ia32el correctly interprets the NULL pointer. (BZ#528598)
* The NOTE offset and filesize of some core dumps of i386 processes running under ia32el were greater than the first LOAD offset according to 'readelf -l'. When this happened, the gdb couldn't read the core file. This package includes a patch that adjusts the size of the offset to greater than that of the NOTE offset and filesize. The gdb can now succesfully read the core file. (BZ#533269)
Users are advised to upgrade to this updated ia32el package which resolves these issues.