AIR Wiki : RembrandtSoftwareCompilation

HomePage :: Categories :: PageIndex :: RecentChanges :: RecentlyCommented :: Login/Register

Rembrandt Software Compilation


During building and installing software from sources in /usr/local at the Rembrandt cluster some problems had been encountered and special non-standard commands had to be run. For the various packages yhey will be described in the following sections below.

Iperf V. 1.6.5


The configure part of the make command (at Iperf 1.X versions ./configure will be run from make) fails because the architecture is not recognised. This can be solved by adding at the bottom of the expression in line 159 from cfg/config.sub:

tahoe | i860 | m32r | ...
    ...
    ... sparc64 | v850)

the following:

    ... sparc64 | v850 | x86_64-unknown)

Tcptrace V. 6.6.7


Web100 Userland dependency issues


The tcptrace package is depending from the Web100 Userland utilitities, a.o. the shared object library. As this is alpha software that can only be used in a Web100 environment and using command names that are not very specific we prefer to install the Userland utilitities in a separate directory tree /usr/local/Web100_Userland. This makes it also possible to add only its bin directory to the executable path when a Web100 kernel has been used.

The disadvantage is that special commands should be given such that the Userland include files and libraries are found during the building and that also the shared object library could be loaded by the executable. To be able to do this before "/configure ... and make could be run the following environment variables should be set as follows (bash shell syntax):

export CFLAGS="-g -O2 -I/usr/local/Web100_Userland/include/web100"

export LDFLAGS="-g -O2 -L/usr/local/Web100_Userland/lib"
export LDFLAGS="$LDFLAGS -Wl,-rpath,/usr/local/Web100_Userland/lib"

Please note that the loader option -Wl,-rpath,... implies that the Web100 Userland lib directory will be add to the shared objects search path of the execuatble. This implies that the Userland shared object is found without needing to set the LD_LIBRARY_PATH environment variable which is pleasant because in this way the system is not drowned by a huge library path in LD_LIBRARY_PATH or wrapper scripts needed to set LD_LIBRARY_PATH only for their specific application.

Another issue is that the installation procedure will write into the current directory, so the building directory should be copied to a local directory and the Java bin path should be in the executable path for root.

Compilation problem


During compilation of tcptrace V. 6.6.7 the following error occurred:

gcc -O2 -DGUNZIP="\"gunzip\"" -DBUNZIP2="\"bunzip2\"" -DLOAD_MODULE_HTTP -DHTTP_SAFE -DHTTP_DUMP_TIMES -DLOAD_MODULE_TRAFFIC -DLOAD_MODULE_SLICE -DLOAD_MODULE_RTTGRAPH -DLOAD_MODULE_COLLIE -DLOAD_MODULE_REALTIME -DGROK_SNOOP -DGROK_TCPDUMP -DGROK_NETM -DGROK_ETHERPEEK -DGROK_NS -DGROK_NETSCOUT -DGROK_ERF -DYYTEXT_POINTER=1 -DHAVE_LIBM=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DSIZEOF_UNSIGNED_LONG_LONG_INT=8 -DSIZEOF_UNSIGNED_LONG_INT=8 -DSIZEOF_UNSIGNED_INT=4 -DSIZEOF_UNSIGNED_SHORT=2 -DHAVE_MKSTEMP=1 -DHAVE_VALLOC=1 -DHAVE_MEMALIGN=1 -DHAVE_INET_PTON=1 -DUSE_LLU=1 -D_BSD_SOURCE -I. -I/usr/local/include -I. -I../pcap -I/usr/include/pcap   -c -o filt_scanner.o filt_scanner.c
./filt_scanner.l: In function `filtyywrap':
./filt_scanner.l:159: error: `yytext_ptr'
undeclared (first use in this function)
./filt_scanner.l:159: error: (Each undeclared identifier is reported only once
./filt_scanner.l:159: error: for each function it appears in.)
make: *** [filt_scanner.o] Error 1

The reason appeared to be that in filt_scanner.c at line 166

#define unput(c) yyunput( c, (yytext_ptr)  )
 

end in line 336-337:

extern char *filtyytext;
#define yytext_ptr filtyytext
 

That combination did not seem to be understand by the GCC V. 3.3.5 (Debian 1:3.3.5-2) preprocessor. Permutations of the order did not help.

The solution was to uncomment in filt_scanner.l at line 155-161:

int yywrap(void)
{
    if (0)
    unput(0)/* never really called, but shuts up gcc */

    return(1);
}

the if (0) unput (0); lines (157-158). As it is never really called it could also be skipped.

Vim V. 6.3


The Vim editor has been build using the Motif toolkit such that XRDB support is maintained and with "multi-byte" support for compatibility with the RedHat VanGogh nodes. This could be done by editing src/Makefile, after unpacking of the distribution, as follows:



Also patches to the source distribution were applied. For the ease of use the own written small script patch_vim will be used for that porpose. The current version is hard coded into it in the shell variable VIM_VERSION. The Vim building and installing procedure has a difficulty with NFS mounted file system (file time issues?). Therefore the building and installing is performed at each host in /tmp. The following command lines will be used for that.

cd /tmp
tar xfvj ~/Install/vim-6.3.tar.bz2
tar xfvz ~/Install/vim-6.3-extra.tar.gz
tar xfvz ~/Install/vim-6.3-lang.tar.gz
cd vim63
~/Install/vim-6.3_patches/patch_vim
cd src
vi Makefile    # Enable Motif and multi-byte
make

su -

cd /tmp/vim63/src
make install

UDT V. 1.3


The UDT library should be compiled with the option -m64. Otherwise the obtained throughput (a.o. to the loopback device) will be very low, about 20 Mbits/s. It looks like if congestion did occur. The -m64 option could be set in the form CCFLAGS += -DIA64, below the fragment

ifeq ($(arch), IA64)
    CCFLAGS += ...
endif

in the make files src/Makefile and app/Makefile.

There are no comments on this page. [Add comment]

Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by Wikka Wakka Wiki 1.1.6.0
Page was generated in 0.0967 seconds