config/xconfig problems (was Re: [Math-atlas-devel] Any advice on IRIX dynamic linking?)
Brought to you by:
rwhaley,
tonyc040457
From: Ed A. S. <ea...@be...> - 2004-11-22 06:52:12
|
OK. I've now tried config (several times over) and found some difficulties: A. config won't take the length of flags et al required; a patch (see below) was necessary. The CC/CCFLAGS/etcetera that I _suspect_ are advisable/required are as follows: FLINKER: /usr/bin/f77 -n32 -mips4 -L/usr/share/rutgers/lib32/r12000 -L/usr/share/rutgers/lib32 -L/usr/lib32/mips4 -L/usr/lib32 -L/lib32 -Wl,-rpath,/usr/share/rutgers/lib32/r12000:/usr/share/rutgers/lib32:/usr/lib32/mips4:/usr/lib32:/lib32 FLINKER FLAGS: -O3 -LANG:recursive=ON -OPT:Olimit=0:got_call_conversion=OFF:IEEE_arithmetic=1 -LNO:blocking=OFF:opt=1:ou_further=3 -TARG:platform=IP30:processor=r12000 -D_SGI_SOURCE -D_SGI_REENTRANT_FUNCTIONS -I/usr/share/rutgers/include CC: /usr/bin/cc -n32 -mips4 -L/usr/share/rutgers/lib32/r12000 -L/usr/share/rutgers/lib32 -L/usr/lib32/mips4 -L/usr/lib32 -L/lib32 -Wl,-rpath,/usr/share/rutgers/lib32/r12000:/usr/share/rutgers/lib32:/usr/lib32/mips4:/usr/lib32:/lib32 CC FLAGS: -D_SGI_SOURCE -D_SGI_REENTRANT_FUNCTIONS -I/usr/share/rutgers/include -TARG:platform=IP30:processor=r12000 -O3 -LNO:blocking=OFF:opt=1:ou_further=3:vintr=ON -OPT:Olimit=0:got_call_conversion=OFF:IEEE_arithmetic=1 -INLINE:=ON MCC: /usr/bin/cc -n32 -mips4 -L/usr/share/rutgers/lib32/r12000 -L/usr/share/rutgers/lib32 -L/usr/lib32/mips4 -L/usr/lib32 -L/lib32 -TARG:platform=IP30:processor=r12000 -INLINE:=ON MCC FLAGS: -D_SGI_SOURCE -D_SGI_REENTRANT_FUNCTIONS -I/usr/share/rutgers/include -TENV:X=1 -O3 -OPT:alias=typed:Olimit=0:swp=OFF:roundoff=0:fast_exp=ON:got_call_conversion=OFF:fold_unsafe_relops=OFF:reorg_common=OFF -LNO:opt=0:vintr=ON CLINKER: /usr/bin/cc -n32 -mips4 -L/usr/share/rutgers/lib32/r12000 -L/usr/share/rutgers/lib32 -L/usr/lib32/mips4 -L/usr/lib32 -L/lib32 -Wl,-rpath,/usr/share/rutgers/lib32/r12000:/usr/share/rutgers/lib32:/usr/lib32/mips4:/usr/lib32:/lib32 CLINKER FLAGS: -D_SGI_SOURCE -D_SGI_REENTRANT_FUNCTIONS -I/usr/share/rutgers/include -TARG:platform=IP30:processor=r12000 -O3 -LNO:blocking=OFF:opt=1:ou_further=3 -OPT:Olimit=0:got_call_conversion=OFF:IEEE_arithmetic=1 These are my best guesses from experience compiling and linking other libraries, most especially with perl (the "modules" of which often have XS (translated into C) components or XS used to interface with C (or Fortran, for that matter) libraries), plus the advice in CONFIG regarding CC & CCFLAGS vs MCC & MCCFLAGS vs CLINKER & CLINKER flags. B. Problem 2: Assertion system(ln) == 0 failed, line 881 of config.c Unable to figure F2C data Calculated F77/C interoperation conventions: Unable to determine naming conventions Unable to determine F77/C integer correspondence Unable to determine F77/C string interoperation It is possible that this is due to the patch, for which is possible that some of the 'ln' variables could be reduced in size, but I was making sure that they could accomodate the entire line lengths put in - possibly this did not work, causing the F2C problem, or possibly this line length was problematic for system() (as in line length in execvp - although the kernel in question was built with a ncargs (ARG_MAX, or sysconf(_SC_ARG_MAX)) of 65000? - or in sh). It is also possible that this is due to the FLINKER & FLINKER FLAGS chosen; my experience with Fortran compiles is rather less. Note that the current default install for a IP30 machine (note that IP30 machines can actually have two different processors (R10000 and R12000), and code scheduling for each apparently does have some differences...) does not exhibit this problem: F77 & FLAGS: /usr/bin/f77 -O3 -64 -OPT:Olimit=15000 -LNO:blocking=OFF -TARG:platform=IP30 FLINKER & FLAGS: $(F77) $(F77FLAGS) CC & FLAGS: /usr/bin/cc -O3 -64 -OPT:Olimit=15000 -LNO:blocking=OFF -TARG:platform=IP30 MCC & FLAGS: /usr/bin/cc -O3 -64 -OPT:Olimit=15000 -LNO:blocking=OFF -TARG:platform=IP30 -LOPT:alias=typed CLINKER & FLAGS: $(CC) $(CCFLAGS) Suffix F77 names with _ F77 INTEGER -> C int F77 strings handled via standard sun style However, the above is also with a -64 mode, which is not something I would want to use for much code (the only programs compiled locally that use 64-bit are either A. interfacing directly with the kernel, such as identd; or B. compiled only for testing, such as with perl smoketesting), given incompatibility and, at times, stability problems. C. Problem 3: The F77 and F77 FLAGS setting is automatically done, not overridable by the FLINKER and FLINKER FLAGS set manually within config, and incorrect/incompatible with the rest. If ATLAS' testing code requires F77 (as opposed to FLINKER) to be set correctly to work, then this will need fixing. (I couldn't use the command line overrides because of the line lengths.) It is also quite possible indeed, probable at this point - that the F2C problem above is due to that the F2C code (findF2C) is using _all_ of the "F77, F77FLAGS, FLINK, FLFLAGS, CC, CCFLAGS" variables, and a -64 compile will not work with a -n32 link, nor would a -64 compiled Fortran program be able to interface with a -n32 C program. Below are the various logfiles and the patch. (A thank you to Yozo Hida for the patch mentioned in ATLAS' errata, which set me on the right track on this one.) Incidentally, the patch also turns off looking for GCC on IRIX - a modification to sped up xconfig; this should probably actually be a command-line option... but /usr/bin/cc is the current default compiler for ATLAS on IRIX anyway, so looking for gcc doesn't seem to make much sense. bin/IRIX_IP30_R12000_2/INSTALL_LOG/ConfSummary.log: ATLAS3.6.0 configure started. Probing to make operating system determination: Operating system configured as IRIX Probing for architecture: Architecture is set to SGIIP30 Number of CPUs: 2 Required cache flush detected as : 4194304 bytes Looking for compilers (this may take a while): F77 = /usr/bin/f77 -O3 -64 -OPT:Olimit=15000 -LNO:blocking=OFF -TARG:platform=IP30 CC = /usr/bin/cc -O3 -64 -OPT:Olimit=15000 -LNO:blocking=OFF -TARG:platform=IP30 MCC = /usr/bin/cc -O3 -64 -OPT:Olimit=15000 -LNO:blocking=OFF -TARG:platform=IP30 -LOPT:alias=typed FINDING tar, gzip, AND gunzip tar : /sbin/tar gzip : /usr/sbin/gzip gunzip : /usr/sbin/gunzip <arch> set to 'IRIX_IP30_R12000_2' F77 & FLAGS: /usr/bin/f77 -O3 -64 -OPT:Olimit=15000 -LNO:blocking=OFF -TARG:platform=IP30 FLINKER & FLAGS: /usr/bin/f77 -n32 -mips4 -L/usr/share/rutgers/lib32/r12000 -L/usr/share/rutgers/lib32 -L/usr/lib32/mips4 -L/usr/lib32 -L/lib32 -Wl,-rpath,/usr/share/rutgers/lib32/r12000:/usr/share/rutgers/lib32:/usr/lib32/mips4:/usr/lib32:/lib32 -O3 -LANG:recursive=ON -OPT:Olimit=0:got_call_conversion=OFF:IEEE_arithmetic=1 -LNO:blocking=OFF:opt=1:ou_further=3 -TARG:platform=IP30:processor=r12000 -D_SGI_SOURCE -D_SGI_REENTRANT_FUNCTIONS -I/usr/share/rutgers/include CC & FLAGS: /usr/bin/cc -n32 -mips4 -L/usr/share/rutgers/lib32/r12000 -L/usr/share/rutgers/lib32 -L/usr/lib32/mips4 -L/usr/lib32 -L/lib32 -Wl,-rpath,/usr/share/rutgers/lib32/r12000:/usr/share/rutgers/lib32:/usr/lib32/mips4:/usr/lib32:/lib32 -D_SGI_SOURCE -D_SGI_REENTRANT_FUNCTIONS -I/usr/share/rutgers/include -TARG:platform=IP30:processor=r12000 -O3 -LNO:blocking=OFF:opt=1:ou_further=3:vintr=ON -OPT:Olimit=0:got_call_conversion=OFF:IEEE_arithmetic=1 -INLINE:=ONMCC & FLAGS: /usr/bin/cc -n32 -mips4 -L/usr/share/rutgers/lib32/r12000 -L/usr/share/rutgers/lib32 -L/usr/lib32/mips4 -L/usr/lib32 -L/lib32 -TARG:platform=IP30:processor=r12000 -INLINE:=ON -D_SGI_SOURCE -D_SGI_REENTRANT_FUNCTIONS -I/usr/share/rutgers/include -TENV:X=1 -O3 -OPT:alias=typed:Olimit=0:swp=OFF:roundoff=0:fast_exp=ON:got_call_conversion=OFF:fold_unsafe_relops=OFF:reorg_common=OFF -LNO:opt=0:vintr=ON CLINKER & FLAGS: /usr/bin/cc -n32 -mips4 -L/usr/share/rutgers/lib32/r12000 -L/usr/share/rutgers/lib32 -L/usr/lib32/mips4 -L/usr/lib32 -L/lib32 -Wl,-rpath,/usr/share/rutgers/lib32/r12000:/usr/share/rutgers/lib32:/usr/lib32/mips4:/usr/lib32:/lib32 -D_SGI_SOURCE -D_SGI_REENTRANT_FUNCTIONS -I/usr/share/rutgers/include -TARG:platform=IP30:processor=r12000 -O3 -LNO:blocking=OFF:opt=1:ou_further=3 -OPT:Olimit=0:got_call_conversion=OFF:IEEE_arithmetic=1 Unable to determine naming conventions Unable to determine F77/C integer correspondence Unable to determine F77/C string interoperation Creating make include file Make.IRIX_IP30_R12000_2 Make.IRIX_IP30_R12000_2 successfully created. Creating ATLrun.sh Subdirectories successfully created. Storing L1 cache size of 32KB. Configuration completed successfully. bin/IRIX_IP30_R12000_2/INSTALL_LOG/ConfDump.log: make -f Make.top killall arch=IRIX_IP30_R12000_2 make -f Make.top kill arch=IRIX_IP30_R12000_2 rm -rf interfaces/lapack/F77/src/IRIX_IP30_R12000_2 rm -rf interfaces/lapack/C/src/IRIX_IP30_R12000_2 rm -rf interfaces/blas/F77/testing/IRIX_IP30_R12000_2 rm -rf interfaces/blas/F77/src/IRIX_IP30_R12000_2 rm -rf interfaces/blas/C/testing/IRIX_IP30_R12000_2 rm -rf interfaces/blas/C/src/IRIX_IP30_R12000_2 rm -rf tune/sysinfo/IRIX_IP30_R12000_2 rm -rf tune/blas/level3/IRIX_IP30_R12000_2 rm -rf tune/blas/level1/IRIX_IP30_R12000_2 rm -rf tune/blas/ger/IRIX_IP30_R12000_2 rm -rf tune/blas/gemv/IRIX_IP30_R12000_2 rm -rf tune/blas/gemm/IRIX_IP30_R12000_2 rm -rf src/pthreads/misc/IRIX_IP30_R12000_2 rm -rf src/pthreads/blas/level3/IRIX_IP30_R12000_2 rm -rf src/pthreads/blas/level2/IRIX_IP30_R12000_2 rm -rf src/pthreads/blas/level1/IRIX_IP30_R12000_2 rm -rf src/lapack/IRIX_IP30_R12000_2 rm -rf src/blas/level3/kernel/IRIX_IP30_R12000_2 rm -rf src/blas/level3/rblas/IRIX_IP30_R12000_2 rm -rf src/blas/level3/IRIX_IP30_R12000_2 rm -rf src/blas/pklevel3/sprk/IRIX_IP30_R12000_2 rm -rf src/blas/pklevel3/gpmm/IRIX_IP30_R12000_2 rm -rf src/blas/pklevel3/IRIX_IP30_R12000_2 rm -rf src/blas/level2/kernel/IRIX_IP30_R12000_2 rm -rf src/blas/level2/IRIX_IP30_R12000_2 rm -rf src/blas/level1/IRIX_IP30_R12000_2 rm -rf src/blas/gemm/GOTO/IRIX_IP30_R12000_2 rm -rf src/blas/gemm/IRIX_IP30_R12000_2 rm -rf src/blas/ger/IRIX_IP30_R12000_2 rm -rf src/blas/gemv/IRIX_IP30_R12000_2 rm -rf src/blas/reference/level3/IRIX_IP30_R12000_2 rm -rf src/blas/reference/level2/IRIX_IP30_R12000_2 rm -rf src/blas/reference/level1/IRIX_IP30_R12000_2 rm -rf src/auxil/IRIX_IP30_R12000_2 rm -rf src/testing/IRIX_IP30_R12000_2 rm -rf lib/IRIX_IP30_R12000_2 rm -rf bin/IRIX_IP30_R12000_2 rm -rf include/IRIX_IP30_R12000_2 lib/IRIX_IP30_R12000_2 make -f Make.top startup arch=IRIX_IP30_R12000_2 mkdir include/IRIX_IP30_R12000_2 touch include/IRIX_IP30_R12000_2/atlas_cacheedge.h touch include/IRIX_IP30_R12000_2/zXover.h touch include/IRIX_IP30_R12000_2/cXover.h touch include/IRIX_IP30_R12000_2/dXover.h touch include/IRIX_IP30_R12000_2/sXover.h make -f Make.top leafstart leaf=interfaces/lapack/F77/src arch=IRIX_IP30_R12000_2 cd interfaces/lapack/F77/src ; mkdir IRIX_IP30_R12000_2 cd interfaces/lapack/F77/src/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=interfaces/lapack/C/src arch=IRIX_IP30_R12000_2 cd interfaces/lapack/C/src ; mkdir IRIX_IP30_R12000_2 cd interfaces/lapack/C/src/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=interfaces/blas/F77/testing arch=IRIX_IP30_R12000_2 cd interfaces/blas/F77/testing ; mkdir IRIX_IP30_R12000_2 cd interfaces/blas/F77/testing/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=interfaces/blas/F77/src arch=IRIX_IP30_R12000_2 cd interfaces/blas/F77/src ; mkdir IRIX_IP30_R12000_2 cd interfaces/blas/F77/src/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=interfaces/blas/C/testing arch=IRIX_IP30_R12000_2 cd interfaces/blas/C/testing ; mkdir IRIX_IP30_R12000_2 cd interfaces/blas/C/testing/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=interfaces/blas/C/src arch=IRIX_IP30_R12000_2 cd interfaces/blas/C/src ; mkdir IRIX_IP30_R12000_2 make -f Make.top killall arch=IRIX_IP30_R12000_2 make -f Make.top kill arch=IRIX_IP30_R12000_2 rm -rf interfaces/lapack/F77/src/IRIX_IP30_R12000_2 rm -rf interfaces/lapack/C/src/IRIX_IP30_R12000_2 rm -rf interfaces/blas/F77/testing/IRIX_IP30_R12000_2 rm -rf interfaces/blas/F77/src/IRIX_IP30_R12000_2 rm -rf interfaces/blas/C/testing/IRIX_IP30_R12000_2 rm -rf interfaces/blas/C/src/IRIX_IP30_R12000_2 rm -rf tune/sysinfo/IRIX_IP30_R12000_2 rm -rf tune/blas/level3/IRIX_IP30_R12000_2 rm -rf tune/blas/level1/IRIX_IP30_R12000_2 rm -rf tune/blas/ger/IRIX_IP30_R12000_2 rm -rf tune/blas/gemv/IRIX_IP30_R12000_2 rm -rf tune/blas/gemm/IRIX_IP30_R12000_2 rm -rf src/pthreads/misc/IRIX_IP30_R12000_2 rm -rf src/pthreads/blas/level3/IRIX_IP30_R12000_2 rm -rf src/pthreads/blas/level2/IRIX_IP30_R12000_2 rm -rf src/pthreads/blas/level1/IRIX_IP30_R12000_2 rm -rf src/lapack/IRIX_IP30_R12000_2 rm -rf src/blas/level3/kernel/IRIX_IP30_R12000_2 rm -rf src/blas/level3/rblas/IRIX_IP30_R12000_2 rm -rf src/blas/level3/IRIX_IP30_R12000_2 rm -rf src/blas/pklevel3/sprk/IRIX_IP30_R12000_2 rm -rf src/blas/pklevel3/gpmm/IRIX_IP30_R12000_2 rm -rf src/blas/pklevel3/IRIX_IP30_R12000_2 rm -rf src/blas/level2/kernel/IRIX_IP30_R12000_2 rm -rf src/blas/level2/IRIX_IP30_R12000_2 rm -rf src/blas/level1/IRIX_IP30_R12000_2 rm -rf src/blas/gemm/GOTO/IRIX_IP30_R12000_2 rm -rf src/blas/gemm/IRIX_IP30_R12000_2 rm -rf src/blas/ger/IRIX_IP30_R12000_2 rm -rf src/blas/gemv/IRIX_IP30_R12000_2 rm -rf src/blas/reference/level3/IRIX_IP30_R12000_2 rm -rf src/blas/reference/level2/IRIX_IP30_R12000_2 rm -rf src/blas/reference/level1/IRIX_IP30_R12000_2 rm -rf src/auxil/IRIX_IP30_R12000_2 rm -rf src/testing/IRIX_IP30_R12000_2 rm -rf lib/IRIX_IP30_R12000_2 rm -rf bin/IRIX_IP30_R12000_2 rm -rf include/IRIX_IP30_R12000_2 lib/IRIX_IP30_R12000_2 make -f Make.top startup arch=IRIX_IP30_R12000_2 mkdir include/IRIX_IP30_R12000_2 touch include/IRIX_IP30_R12000_2/atlas_cacheedge.h touch include/IRIX_IP30_R12000_2/zXover.h touch include/IRIX_IP30_R12000_2/cXover.h touch include/IRIX_IP30_R12000_2/dXover.h touch include/IRIX_IP30_R12000_2/sXover.h make -f Make.top leafstart leaf=interfaces/lapack/F77/src arch=IRIX_IP30_R12000_2 cd interfaces/lapack/F77/src ; mkdir IRIX_IP30_R12000_2 cd interfaces/lapack/F77/src/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=interfaces/lapack/C/src arch=IRIX_IP30_R12000_2 cd interfaces/lapack/C/src ; mkdir IRIX_IP30_R12000_2 cd interfaces/lapack/C/src/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=interfaces/blas/F77/testing arch=IRIX_IP30_R12000_2 cd interfaces/blas/F77/testing ; mkdir IRIX_IP30_R12000_2 cd interfaces/blas/F77/testing/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=interfaces/blas/F77/src arch=IRIX_IP30_R12000_2 cd interfaces/blas/F77/src ; mkdir IRIX_IP30_R12000_2 cd interfaces/blas/F77/src/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=interfaces/blas/C/testing arch=IRIX_IP30_R12000_2 cd interfaces/blas/C/testing ; mkdir IRIX_IP30_R12000_2 cd interfaces/blas/C/testing/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=interfaces/blas/C/src arch=IRIX_IP30_R12000_2 cd interfaces/blas/C/src ; mkdir IRIX_IP30_R12000_2 cd interfaces/blas/C/src/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=tune/sysinfo arch=IRIX_IP30_R12000_2 cd tune/sysinfo ; mkdir IRIX_IP30_R12000_2 cd tune/sysinfo/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=tune/blas/level3 arch=IRIX_IP30_R12000_2 cd tune/blas/level3 ; mkdir IRIX_IP30_R12000_2 cd tune/blas/level3/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=tune/blas/level1 arch=IRIX_IP30_R12000_2 cd tune/blas/level1 ; mkdir IRIX_IP30_R12000_2 cd tune/blas/level1/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=tune/blas/ger arch=IRIX_IP30_R12000_2 cd tune/blas/ger ; mkdir IRIX_IP30_R12000_2 cd tune/blas/ger/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=tune/blas/gemv arch=IRIX_IP30_R12000_2 cd tune/blas/gemv ; mkdir IRIX_IP30_R12000_2 cd tune/blas/gemv/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=tune/blas/gemm arch=IRIX_IP30_R12000_2 cd tune/blas/gemm ; mkdir IRIX_IP30_R12000_2 cd tune/blas/gemm/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=src/pthreads/misc arch=IRIX_IP30_R12000_2 cd src/pthreads/misc ; mkdir IRIX_IP30_R12000_2 cd src/pthreads/misc/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=src/pthreads/blas/level3 arch=IRIX_IP30_R12000_2 cd src/pthreads/blas/level3 ; mkdir IRIX_IP30_R12000_2 cd src/pthreads/blas/level3/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=src/pthreads/blas/level2 arch=IRIX_IP30_R12000_2 cd src/pthreads/blas/level2 ; mkdir IRIX_IP30_R12000_2 cd src/pthreads/blas/level2/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=src/pthreads/blas/level1 arch=IRIX_IP30_R12000_2 cd src/pthreads/blas/level1 ; mkdir IRIX_IP30_R12000_2 cd src/pthreads/blas/level1/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=src/lapack arch=IRIX_IP30_R12000_2 cd src/lapack ; mkdir IRIX_IP30_R12000_2 cd src/lapack/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=src/blas/level3/kernel arch=IRIX_IP30_R12000_2 cd src/blas/level3/kernel ; mkdir IRIX_IP30_R12000_2 cd src/blas/level3/kernel/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=src/blas/level3/rblas arch=IRIX_IP30_R12000_2 cd src/blas/level3/rblas ; mkdir IRIX_IP30_R12000_2 cd src/blas/level3/rblas/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=src/blas/level3 arch=IRIX_IP30_R12000_2 cd src/blas/level3 ; mkdir IRIX_IP30_R12000_2 cd src/blas/level3/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=src/blas/pklevel3/sprk arch=IRIX_IP30_R12000_2 cd src/blas/pklevel3/sprk ; mkdir IRIX_IP30_R12000_2 cd src/blas/pklevel3/sprk/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=src/blas/pklevel3/gpmm arch=IRIX_IP30_R12000_2 cd src/blas/pklevel3/gpmm ; mkdir IRIX_IP30_R12000_2 cd src/blas/pklevel3/gpmm/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=src/blas/pklevel3 arch=IRIX_IP30_R12000_2 cd src/blas/pklevel3 ; mkdir IRIX_IP30_R12000_2 cd src/blas/pklevel3/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=src/blas/level2/kernel arch=IRIX_IP30_R12000_2 cd src/blas/level2/kernel ; mkdir IRIX_IP30_R12000_2 cd src/blas/level2/kernel/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=src/blas/level2 arch=IRIX_IP30_R12000_2 cd src/blas/level2 ; mkdir IRIX_IP30_R12000_2 cd src/blas/level2/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=src/blas/level1 arch=IRIX_IP30_R12000_2 cd src/blas/level1 ; mkdir IRIX_IP30_R12000_2 cd src/blas/level1/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=src/blas/gemm/GOTO arch=IRIX_IP30_R12000_2 cd src/blas/gemm/GOTO ; mkdir IRIX_IP30_R12000_2 cd src/blas/gemm/GOTO/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=src/blas/gemm arch=IRIX_IP30_R12000_2 cd src/blas/gemm ; mkdir IRIX_IP30_R12000_2 cd src/blas/gemm/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=src/blas/ger arch=IRIX_IP30_R12000_2 cd src/blas/ger ; mkdir IRIX_IP30_R12000_2 cd src/blas/ger/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=src/blas/gemv arch=IRIX_IP30_R12000_2 cd src/blas/gemv ; mkdir IRIX_IP30_R12000_2 cd src/blas/gemv/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=src/blas/reference/level3 arch=IRIX_IP30_R12000_2 cd src/blas/reference/level3 ; mkdir IRIX_IP30_R12000_2 cd src/blas/reference/level3/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=src/blas/reference/level2 arch=IRIX_IP30_R12000_2 cd src/blas/reference/level2 ; mkdir IRIX_IP30_R12000_2 cd src/blas/reference/level2/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=src/blas/reference/level1 arch=IRIX_IP30_R12000_2 cd src/blas/reference/level1 ; mkdir IRIX_IP30_R12000_2 cd src/blas/reference/level1/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=src/auxil arch=IRIX_IP30_R12000_2 cd src/auxil ; mkdir IRIX_IP30_R12000_2 cd src/auxil/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=src/testing arch=IRIX_IP30_R12000_2 cd src/testing ; mkdir IRIX_IP30_R12000_2 cd src/testing/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=lib arch=IRIX_IP30_R12000_2 cd lib ; mkdir IRIX_IP30_R12000_2 cd lib/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc make -f Make.top leafstart leaf=bin arch=IRIX_IP30_R12000_2 cd bin ; mkdir IRIX_IP30_R12000_2 cd bin/IRIX_IP30_R12000_2 ; ln -s /server/people/staff/easmith/bin/research/atlas3.6.0/Make.IRIX_IP30_R12000_2 Make.inc cd src/blas/gemm/IRIX_IP30_R12000_2 ; mkdir KERNEL cd tune/blas/gemm/IRIX_IP30_R12000_2 ; mkdir KERNEL cd tune/blas/gemm/IRIX_IP30_R12000_2 ; mkdir res cd tune/blas/gemv/IRIX_IP30_R12000_2 ; mkdir res cd tune/blas/ger/IRIX_IP30_R12000_2 ; mkdir res cd tune/blas/level1/IRIX_IP30_R12000_2 ; mkdir res cd tune/blas/level1/IRIX_IP30_R12000_2 ; mkdir GEN cd tune/blas/level3/IRIX_IP30_R12000_2 ; mkdir res cd tune/sysinfo/IRIX_IP30_R12000_2 ; mkdir res cd bin/IRIX_IP30_R12000_2 ; mkdir INSTALL_LOG make -f Make.top refresh arch=IRIX_IP30_R12000_2 cp makes/Make.bin bin/IRIX_IP30_R12000_2/Makefile cp makes/Make.lib lib/IRIX_IP30_R12000_2/Makefile cp makes/Make.aux src/auxil/IRIX_IP30_R12000_2/Makefile cp makes/Make.l1ref src/blas/reference/level1/IRIX_IP30_R12000_2/Makefile cp makes/Make.l2ref src/blas/reference/level2/IRIX_IP30_R12000_2/Makefile cp makes/Make.l3ref src/blas/reference/level3/IRIX_IP30_R12000_2/Makefile cp makes/Make.tstsrc src/testing/IRIX_IP30_R12000_2/Makefile cp makes/Make.mvsrc src/blas/gemv/IRIX_IP30_R12000_2/Makefile cp makes/Make.r1src src/blas/ger/IRIX_IP30_R12000_2/Makefile cp makes/Make.mmsrc src/blas/gemm/IRIX_IP30_R12000_2/Makefile cp makes/Make.goto src/blas/gemm/GOTO/IRIX_IP30_R12000_2/Makefile cp makes/Make.l1src src/blas/level1/IRIX_IP30_R12000_2/Makefile cp makes/Make.l2 src/blas/level2/IRIX_IP30_R12000_2/Makefile cp makes/Make.l2aux src/blas/level2/kernel/IRIX_IP30_R12000_2/Makefile cp makes/Make.lpsrc src/lapack/IRIX_IP30_R12000_2/Makefile cp makes/Make.l3tune tune/blas/level3/IRIX_IP30_R12000_2/Makefile cp makes/Make.mmtune tune/blas/gemm/IRIX_IP30_R12000_2/Makefile cp makes/Make.mvtune tune/blas/gemv/IRIX_IP30_R12000_2/Makefile cp makes/Make.r1tune tune/blas/ger/IRIX_IP30_R12000_2/Makefile cp makes/Make.l1tune tune/blas/level1/IRIX_IP30_R12000_2/Makefile cp makes/Make.sysinfo tune/sysinfo/IRIX_IP30_R12000_2/Makefile cp makes/Make.cblas interfaces/blas/C/src/IRIX_IP30_R12000_2/Makefile cp makes/Make.f77blas interfaces/blas/F77/src/IRIX_IP30_R12000_2/Makefile cp makes/Make.cblastst interfaces/blas/C/testing/IRIX_IP30_R12000_2/Makefile cp makes/Make.f77blastst interfaces/blas/F77/testing/IRIX_IP30_R12000_2/Makefile cp makes/Make.Clp interfaces/lapack/C/src/IRIX_IP30_R12000_2/Makefile cp makes/Make.Flp interfaces/lapack/F77/src/IRIX_IP30_R12000_2/Makefile cp makes/Make.l3ptblas src/pthreads/blas/level3/IRIX_IP30_R12000_2/Makefile cp makes/Make.l2ptblas src/pthreads/blas/level2/IRIX_IP30_R12000_2/Makefile cp makes/Make.l1ptblas src/pthreads/blas/level1/IRIX_IP30_R12000_2/Makefile cp makes/Make.miptblas src/pthreads/misc/IRIX_IP30_R12000_2/Makefile cp makes/Make.pkl3 src/blas/pklevel3/IRIX_IP30_R12000_2/Makefile cp makes/Make.gpmm src/blas/pklevel3/gpmm/IRIX_IP30_R12000_2/Makefile cp makes/Make.sprk src/blas/pklevel3/sprk/IRIX_IP30_R12000_2/Makefile cp makes/Make.l3 src/blas/level3/IRIX_IP30_R12000_2/Makefile cp makes/Make.l3aux src/blas/level3/rblas/IRIX_IP30_R12000_2/Makefile cp makes/Make.l3kern src/blas/level3/kernel/IRIX_IP30_R12000_2/Makefile cp CONFIG/ATLrun.IRIX_IP30_R12000_2 bin/IRIX_IP30_R12000_2/ATLrun.sh rm -f /server/people/staff/easmith/bin/research/atlas3.6.0/tune/sysinfo/IRIX_IP30_R12000_2/res/L1CacheSize echo 32 > /server/people/staff/easmith/bin/research/atlas3.6.0/tune/sysinfo/IRIX_IP30_R12000_2/res/L1CacheSize Following patch necessary to get ATLAS to take long names/flags necessary. --- config.c.old Thu Nov 18 20:19:12 2004 +++ config.c Sun Nov 21 21:37:05 2004 @@ -182,16 +182,16 @@ * any extra len with NULLs */ { - char str[512], *sp; + char str[4096], *sp; int i; - assert(len+1 <= 512); + assert(len+1 <= 4096); if (expstr) { if (Default) fprintf(stdout, "%sEnter %s [%s]: ", spc, expstr, Default); else fprintf(stdout, "%sEnter %s:", spc, expstr); } - sp = fgets(str, 512, fpin); + sp = fgets(str, 4096, fpin); if ( (sp == NULL) || (str[0] == '\0') || (str[0] == '\n') ) { if (Default) strcpy(str0, Default); @@ -731,6 +731,9 @@ FILE *fp; remove(tnam); + if (OS == OSIRIX) + return 1; + if (*goodgcc != '\0') { if (IsGoodGcc(OS, mach, fpout, fplog, goodgcc)) @@ -854,8 +857,8 @@ char *namdef[4] = {"Add_", "Add__", "NoChange", "UpCase"}; char *intdef[4]={"F77_INTEGER=int", "F77_INTEGER=long", "F77_INTEGER=short"}; char *strdef[4] = {"SunStyle", "CrayStyle", "StructVal", "StructPtr"}; - char compdef[1024], ln[1024]; - char FLINK[512], FLFLAGS[512]; + char compdef[8192], ln[8192]; + char FLINK[2084], FLFLAGS[2084]; char *tnam = "CONFIG/config.tmp"; int i; FILE *fp; @@ -878,7 +881,7 @@ F2C_assert(system(ln) == 0); fp = fopen(tnam, "r"); F2C_assert(fp); - fgets(ln, 256, fp); + fgets(ln, 8192, fp); fclose(fp); remove(tnam); if (strstr(ln, "Add__")) *f2cnam = f2c_Add__; @@ -901,7 +904,7 @@ F2C_assert(system(ln) == 0); fp = fopen(tnam, "r"); F2C_assert(fp); - fgets(ln, 256, fp); + fgets(ln, 8192, fp); fclose(fp); remove(tnam); if (strstr(ln, "short")) *f2cint = FintCshort; @@ -928,7 +931,7 @@ { fp = fopen(tnam, "r"); F2C_assert(fp); - fgets(ln, 256, fp); + fgets(ln, 8192, fp); fclose(fp); remove(tnam); if (strstr(ln, strdef[i])) @@ -948,7 +951,7 @@ { char **files; char *dirs[ND] = {"/usr/lib", "/usr/local", ""}; - char ln[256]; + char ln[8192]; int i, j, n; ATL_mprintf(2, fplog, fpout, "Looking for BLAS (this may take a while):\n"); @@ -3406,13 +3409,13 @@ char F77BLASlib[256], PTF77BLASlib[256]; int L1SIZE=(-1), L2SIZE, BADMCC=0; char F2CDEFS[256]; - char FLINKER[128], CLINKER[128], ARCHIVER[128], RANLIB[128]; - char CLINKFLAGS[512], FLINKFLAGS[512], ARFLAGS[256], FCLINKFLAGS[512]; + char FLINKER[2048], CLINKER[2048], ARCHIVER[128], RANLIB[128]; + char CLINKFLAGS[4096], FLINKFLAGS[4096], ARFLAGS[256], FCLINKFLAGS[4096]; char LIBS[256]; char TAR[256], GZIP[256], GUNZIP[256], PMAKE[128]; - char comp[64], cflg[512], ln[512], tnam[256], archdef[256], mmdef[256]; - char BC[256], BCFLAGS[256]; + char comp[2048], cflg[2048], ln[8192], tnam[256], archdef[256], mmdef[256]; + char BC[1024], BCFLAGS[1024]; int GOGO=0, L2IsKnown=0, Use3DNow=0, TuneL1=1; int USEDEFL1=0; int ierr, i, j, SOLERR=0, np=2, delay=0; @@ -3707,8 +3710,8 @@ if (ierr != 0) { if (GOGO) DisplayFile("CONFIG/f77exp.txt", stdout, NLINES); - GetString(stdin, F77, " ", "f77 compiler", 127, F77); - GetString(stdin, F77FLAGS, " ", "F77 Flags", 511, F77FLAGS); + GetString(stdin, F77, " ", "f77 compiler", 2047, F77); + GetString(stdin, F77FLAGS, " ", "F77 Flags", 4095, F77FLAGS); } sprintf(ln, "%s -c CONFIG/tst.f %s\n", F77, redir); ierr = system(ln); @@ -3724,8 +3727,8 @@ while (ierr); if (!GOGO) { - GetString(stdin, FLINKER, " ", "F77 Linker ", 127, FLINKER); - GetString(stdin, FLINKFLAGS, " ", "F77 Link Flags ", 511, FLINKFLAGS); + GetString(stdin, FLINKER, " ", "F77 Linker ", 2047, FLINKER); + GetString(stdin, FLINKFLAGS, " ", "F77 Link Flags ", 4095, FLINKFLAGS); fprintf(stdout, "\n\n"); } ATL_mprintf(2, fplog, stdout, "F77 & FLAGS: %s %s\n", F77, F77FLAGS); @@ -3739,8 +3742,8 @@ if (ierr != 0) { if (GOGO) DisplayFile("CONFIG/ccomp.txt", stdout, NLINES); - GetString(stdin, CC, " ", "ANSI C compiler(CC)", 127, CC); - GetString(stdin, CCFLAGS, " ", "C Flags (CCFLAGS)", 511, CCFLAGS); + GetString(stdin, CC, " ", "ANSI C compiler(CC)", 2047, CC); + GetString(stdin, CCFLAGS, " ", "C Flags (CCFLAGS)", 4095, CCFLAGS); } sprintf(ln, "%s %s -c CONFIG/tst.c %s\n", CC, CCFLAGS, redir); ierr = system(ln); @@ -3765,8 +3768,8 @@ { if (GOGO) DisplayFile("CONFIG/ccomp-alpha.txt", stdout, NLINES); GetString(stdin, MCC, " ", "C compiler for generated code (MCC)", - 127, MCC); - GetString(stdin, MMFLAGS, " ", "C FLAGS (MMFLAGS)", 511, MMFLAGS); + 2047, MCC); + GetString(stdin, MMFLAGS, " ", "C FLAGS (MMFLAGS)", 4095, MMFLAGS); } Wstrfndsub("$(CC)", CC, MCC, comp); Wstrfndsub("$(CCFLAGS)", CCFLAGS, MMFLAGS, ln); @@ -3785,8 +3788,8 @@ while(ierr); if (!GOGO) { - GetString(stdin, CLINKER, " ", "C Linker ", 127, CLINKER); - GetString(stdin, CLINKFLAGS, " ", "C Link Flags ", 511, CLINKFLAGS); + GetString(stdin, CLINKER, " ", "C Linker ", 2047, CLINKER); + GetString(stdin, CLINKFLAGS, " ", "C Link Flags ", 4095, CLINKFLAGS); } ATL_mprintf(2, fplog, stdout, "MCC & FLAGS: %s %s\n", MCC, MMFLAGS); ATL_mprintf(2, fplog, stdout, "CLINKER & FLAGS: %s %s\n\n", @@ -4358,8 +4361,8 @@ main(int nargs, char *args[]) { char TOPdir[512], blaslib[512], ARCH[512]; - char F77[512], CC[512], MCC[512], XCC[512], GOODGCC[512]; - char F77FLAGS[512], CCFLAGS[512], MMFLAGS[512], XCCFLAGS[512]; + char F77[2048], CC[2048], MCC[2048], XCC[512], GOODGCC[512]; + char F77FLAGS[2048], CCFLAGS[2048], MMFLAGS[2048], XCCFLAGS[512]; int flag, ncpu; char UCDEF[256]; enum MACHTYPE mach; -- Allen Smith http://cesario.rutgers.edu/easmith/ There is only one sound argument for democracy, and that is the argument that it is a crime for any man to hold himself out as better than other men, and, above all, a most heinous offense for him to prove it. - H. L. Mencken |