Thomas Zeiser

Some comments by Thomas Zeiser about HPC@RRZE and other things

Content

OS Upgrade on Cluster32

There is a scheduled downtime of Cluster32 starting on Wednesday, March 9 at 8 o’clock in the morning with open end. It is expected that Cluster32 is available again for user operation in the late afternoon of Thurday, March 10!

As major software components will be upgraded (Linux kernel 2.4.x => 2.6.y, glibc 2.2.x => 2.3.y) throrough testing will be required … As we cannot test all applications your help is required. Contact hpc@rrze in case of problems – but do not forget to give a detailed description of the problem.

Error message “symbol errno, version GLIBC_2.0 not defined in file libc.so.6”: If you happen to see the above error message about the symbol errno, the program is broken! It is NOT a bug of our Cluster32.

The program probably says “extern int errno” somewhere instead of including . Glibc versions older than 2.3 did not report this problem. However, errno in recent glibc versions is a macro, which calls the function __errno_location; when glibc is built with thread-local storage enabled, there is no extern int variable named errno. In addition, “extern int errno” is not thread-safe.

The program should continue to run if you export LD_ASSUME_KERNEL=2.4.0 disabling NPTL and thread-local storage. Sometimes, you might even need to use LD_ASSUME_KERNEL=2.2.0.

But the problem should really be fixed in the original program. Complain with the supplier of the software!

See e.g. a page from Novell or a posting to the Debian mailinglist from 2003, or the file /usr/share/doc/libc6/README.Debian.gz for more details.

RRZE-built GCC versions are available via modules on Cluster32

Different versions of the GNU Compiler Collection (GCC) can now be selected via the module mechanisms on Cluster32 just as any other module-controled software package.

The latest releases of version 2.95.3, 3.2, 3.3 and 3.4 are available as 32-bit-only compilers, version 3.3 and 3.4 are additionally available as 64/32-bit compilers. For the 64/32-bit compilers, the defaut is to produce 64-bit code!

The compilers have been compiled at RRZE from the latest released GNU GCC source without further patches. Just two small changes had to be made to adapt to the local configuration,. In particular, for the 64/32-bit compilers the specs file has been modified to pass --64 to the assembler whenever no -m32 is given explicitly.

To load the GCC modules, you first of all have to add the “testing” directory to your module searchpath: module -a use /opt/rrze/modules/modulefiles/testing. After that, the procedure is as usual …