Catherine Pitt

From CUC3
Revision as of 17:14, 20 March 2008 by import>Cen1001 (→‎Library linking aide memoire)
Jump to navigation Jump to search

Catherine is the systems administrator for the theory sector.

Remastering Knoppix

Backup strategy

Proposed changes to backup and archiving

LDAP plans

Computer Office services

Torque and Maui

useful stuff

export LD_DEBUG=all

is my friend

^[a-z][a-z0-9]{1,7}$

is a regexp for crsids.

cat ${PBS_NODEFILE} | uniq -c | awk '{print $2":"$1}'

I saw this on the Torque mailing list and can't believe I didn't think of it

dsh -a "rm -rf /var/adm/YaST/InstSrcManager/IS_CACHE_0x00000001"
dsh -a  'installation_sources -a "nfs://192.168.1.254/install/suse/x86_64/9.3"'

fixing up node installation sources on a Streamline cluster

Library linking aide memoire

LIBRARY_PATH is used by many gccs at the link stage as a list of directories to search for shared libraries at link time. I have also tweaked the local PGI and Intel compilers to honour it (Pathscale and nag are gcc frontends so honour it out of the box). This is equivalent to the -L option that most compilers support.

There is a worrying(?) note in one of the CV modulefiles on tardis saying that Pathscale doesn't use bog-standard 'ld' when in -Ofast mode, and so LIBRARY_PATH doesn't work. Must test. Also I notice that the Pathscale 3.0 on tardis isn't wrapped. But I think this is must be because it's safe to set LD_LIBRARY_PATH on tardis (if you lose /usr/local you're doomed anyway) and so we don't need to jump through all the hoops we did on the workstations. I don't recall what I was thinking at the time though.

LD_LIBRARY_PATH is used by the runtime linker as a list of directories to search for shared libraries at RUNTIME. Should be avoided where possible, as setting it means that every binary you call must search its contents. Especially dangerous if you set it to include NFS paths.

-rpath is a linker option that sets the RPATH in the ELF header of the resulting binary when you link the thing. At runtime the RPATH is used by the runtime linker as a list of directories to search for shared libraries. I have tweaked the local commercial compiler drivers to pass appropriate -rpath options that match the setting of LIBRARY_PATH, usually plus some compiler-specific ones (eg the particular compiler's own runtime libs)

LD_RUN_PATH is used by the linker at link time, if and ONLY if you didn't use -rpath (gah!). Its contents are used to set the RPATH. I suspect use of -rpath is better as it's more finely tuned- setting LD_RUN_PATH generally rather than using rpath per compiler would involve every binary you created having a huge RPATH, containing stuff for all the compilers you had kicking around.

CPATH is used by many C compiler drivers as a list of directories to search for headers. I think FPATH may do something similar. Equivalent to -I .

very old stuff

Other IT stuff

Upgrading sword

Upgrading destiny