Bug 162686

Summary: atlas build tries to use 64 bit fortran compiler on AMD64 hardware running 32 bit kernel [patch]
Product: Ports & Packages Reporter: Don Lewis <truckman>
Component: Individual Port(s)Assignee: Brendan Fabeny <bf>
Status: Closed FIXED    
Severity: Affects Only Me CC: maho
Priority: Normal    
Version: Latest   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
file.diff
none
atlas3841.diff.txt none

Description Don Lewis freebsd_committer freebsd_triage 2011-11-19 22:50:04 UTC
	When attempting to build the math/atlas port on x86_64 hardware
	running a 32 bit kernel, userland, and ports, the atlas hardware
	probe detects that it is running on an x86_64 architecture CPU.
	The build then assumes that it should do a 64 bit build and falls
	over when gfortran rejects the -m64 option.  Strangely, it doesn't
	attempt this when compiling C code with gcc.

	cmnd=make IRunCComp CC='gcc46' CCFLAGS='-O -fomit-frame-pointer -Wl,-rpath=/usr/local/lib/gcc46  -fpic -DPIC  ' | fgrep SUCCESS
	   gcc46 -O -fomit-frame-pointer -Wl,-rpath=/usr/local/lib/gcc46  -fpic -DPIC   : SUCCESS!
	f951: sorry, unimplemented: 64-bit mode not compiled in
	cmnd=make IRunF77Comp F77='gfortran46' F77FLAGS='-fomit-frame-pointer -mfpmath=387 -O2 -falign-loops=4 -Wl,-rpath=/usr/local/lib/gcc46  -fpic -DPIC  -m64' | fgrep SUCCESS
	   gfortran46 -fomit-frame-pointer -mfpmath=387 -O2 -falign-loops=4 -Wl,-rpath=/usr/local/lib/gcc46  -fpic -DPIC  -m64 : FAILURE!
	f951: sorry, unimplemented: 64-bit mode not compiled in
	cmnd=make IRunF77Comp F77='gfortran46' F77FLAGS='-O -Wl,-rpath=/usr/local/lib/gcc46  -fpic -DPIC  -m64' | fgrep SUCCESS
	   gfortran46 -O -Wl,-rpath=/usr/local/lib/gcc46  -fpic -DPIC  -m64 : FAILURE!
	g77: not found
	cmnd=make IRunF77Comp F77='g77' F77FLAGS='-O -Wl,-rpath=/usr/local/lib/gcc46  -fpic -DPIC  ' | fgrep SUCCESS
	   g77 -O -Wl,-rpath=/usr/local/lib/gcc46  -fpic -DPIC   : FAILURE!
	f77: not found
	cmnd=make IRunF77Comp F77='f77' F77FLAGS='-O -Wl,-rpath=/usr/local/lib/gcc46  -fpic -DPIC  ' | fgrep SUCCESS
	   f77 -O -Wl,-rpath=/usr/local/lib/gcc46  -fpic -DPIC   : FAILURE!
	
	
	Unable to find usable compiler for F77; abortingMake sure compilers are in your path, and specify good compilers to configure
	(see INSTALL.txt or 'configure --help' for details)*** Error code 7
	
	Stop in /usr/ports/math/atlas/work/ATLAS/shared.
	*** Error code 1
	
	Stop in /usr/ports/math/atlas/work/ATLAS/shared.
	Assertion failed: (!system(ln)), function ProbeComp, file /usr/ports/math/atlas/work/ATLAS/shared/..//CONFIG/src/config.c, line 125.
	cmnd=make IRun_OS args="-v 2 " | fgrep 'OS='
	
	OS configured as FreeBSD (10)
	cmnd=make IRun_asm args="-v 2  -O 10" | fgrep 'ASM='
	
	Assembly configured as GAS_x8632 (1)
	cmnd=make IRun_vec args="-v 2  -O 10 -s 1" | fgrep 'VECFLAG='
	
	Vector ISA Extension configured as  SSE3 (2,60)
	cmnd=make IRun_arch args="-v 2  -O 10 -s 1 -a" | fgrep 'MACHTYPE='
	
	Architecture configured as  HAMMER (24)
	cmnd=make IRun_arch args="-v 2  -O 10 -s 1 -m" | fgrep 'CPU MHZ='
	
	Clock rate configured as 2500Mhz
	cmnd=make IRun_arch args="-v 2  -O 10 -s 1 -n" | fgrep 'NCPU='
	
	Maximum number of threads configured as  2
	cmnd=make IRun_arch args="-v 2  -O 10 -s 1 -b" | fgrep 'PTR BITS='
	
	Pointer width configured as 64
	cmnd=make IRun_arch args="-v 2  -O 10 -s 1 -t" | fgrep 'CPU THROTTLE='
	Cannot detect CPU throttling.
	Abort trap (core dumped)
	xconfig exited with 134
	*** Error code 134
	
	Stop in /usr/ports/math/atlas.
	*** Error code 1
	
	Stop in /usr/ports/math/atlas.

Fix: There is probably a way that the hardware probe could detect that
	the CPU is running in 32 bit mode on x86_64 hardware that could
	be added to the generic probe code.  The following patch just
	skips the generic probe so that the FreeBSD specific probe is
	executed instead.
How-To-Repeat: 
	Attempt to build the math/atlas port on x86_64 hardware running
	a 32 bit kernel and userland.
Comment 1 Brendan Fabeny freebsd_committer freebsd_triage 2011-11-19 23:59:51 UTC
Responsible Changed
From-To: freebsd-ports-bugs->bf

I'll take it.
Comment 2 b. f. 2012-01-23 08:35:58 UTC
Don:

Sorry about the delay in my response -- this port is intimately
connected with math/lapack, and we are just finishing making some
alterations to some of the other lapack-related ports -- soon
afterward, I'll try to fix this problem, although in a slightly
different way (by restoring the pointer width argument to the
configure script that was removed in the last revision of atlas),
since other architectures (e.g., powerpc/powerpc64) could also be
affected.

Regards,
                b.
Comment 3 b. f. 2012-02-07 13:39:58 UTC
On 1/23/12, b. f. <bf1783@googlemail.com> wrote:
> Don:
>
> Sorry about the delay in my response -- this port is intimately
> connected with math/lapack, and we are just finishing making some
> alterations to some of the other lapack-related ports -- soon
> afterward, I'll try to fix this problem, although in a slightly
> different way (by restoring the pointer width argument to the
> configure script that was removed in the last revision of atlas),
> since other architectures (e.g., powerpc/powerpc64) could also be
> affected.

Don:

Would you please check if the following patch solves your problem, and
inform me of the result?

Regards,
           b.
Comment 4 Don Lewis freebsd_committer freebsd_triage 2012-02-12 22:27:00 UTC
On  7 Feb, b. f. wrote:
> On 1/23/12, b. f. <bf1783@googlemail.com> wrote:
>> Don:
>>
>> Sorry about the delay in my response -- this port is intimately
>> connected with math/lapack, and we are just finishing making some
>> alterations to some of the other lapack-related ports -- soon
>> afterward, I'll try to fix this problem, although in a slightly
>> different way (by restoring the pointer width argument to the
>> configure script that was removed in the last revision of atlas),
>> since other architectures (e.g., powerpc/powerpc64) could also be
>> affected.
> 
> Don:
> 
> Would you please check if the following patch solves your problem, and
> inform me of the result?

The build seems to run way to quickly and exits here:

[snip]
cp /usr/ports/math/atlas/work/ATLAS/shared/bin/INSTALL_LOG/?PerfSumm.txt /usr/p
orts/math/atlas/work/ATLAS/shared/ARCHS/HAMMER32SSE3/.
rm -f xnegflt
rm HAMMER32SSE3.tgz HAMMER32SSE3.tar
rm: HAMMER32SSE3.tgz: No such file or directory
rm: HAMMER32SSE3.tar: No such file or directory
*** Error code 1 (ignored)
tar cvf HAMMER32SSE3.tar HAMMER32SSE3
a HAMMER32SSE3
a HAMMER32SSE3/kern
a HAMMER32SSE3/sPerfSumm.txt
a HAMMER32SSE3/dPerfSumm.txt
a HAMMER32SSE3/zPerfSumm.txt
a HAMMER32SSE3/cPerfSumm.txt
a HAMMER32SSE3/gcc46
a HAMMER32SSE3/gemm
[snip]
a HAMMER32SSE3/kern/gcc46/dCPSC_SUMM
a HAMMER32SSE3/kern/gcc46/dCOPY_SUMM
a HAMMER32SSE3/kern/gcc46/dAXPY_SUMM
a HAMMER32SSE3/kern/gcc46/sSWAP_SUMM
a HAMMER32SSE3/kern/gcc46/dAXPBY_SUMM
a HAMMER32SSE3/kern/gcc46/zSWAP_SUMM
gzip --best HAMMER32SSE3.tar
mv HAMMER32SSE3.tar.gz HAMMER32SSE3.tgz
Building ATLAS shared libraries:

Full build log at:
<http://people.freebsd.org/~truckman/math_atlas_make.out>
Comment 5 dfilter service freebsd_committer freebsd_triage 2012-02-13 22:28:27 UTC
bf          2012-02-13 22:28:14 UTC

  FreeBSD ports repository

  Modified files:
    math/atlas           Makefile 
  Log:
  restore the explicit pointer bitwidth configure argument, to prevent
  misconfiguration on some machines
  
  PR:             162686
  Submitted by:   truckman (different patch)
  
  Revision  Changes    Path
  1.66      +10 -3     ports/math/atlas/Makefile
_______________________________________________
cvs-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
Comment 6 Brendan Fabeny freebsd_committer freebsd_triage 2012-02-13 22:30:14 UTC
State Changed
From-To: open->closed

Committed, with minor changes. Thanks!