flame / libflame

High-performance object-based library for DLA computations
Other
235 stars 83 forks source link

Build error for release with default gcc on CentOS #22

Closed s-sajid-ali closed 5 years ago

s-sajid-ali commented 5 years ago

Hi libflame developers,

I'm seeing the following error when I attempt to build the 5.1.0 release with gcc-4.8.5 on centOS 7.5.

[sajid@xrmlite spack]$ spack install libflame@5.1.0 %gcc@4.8.5                                                                                        
==> Installing libflame                                                                                                                               
==> Searching for binary cache of libflame                                                                                                            
==> Warning: No Spack mirrors are currently configured                                                                                                
==> No binary for libflame found: installing from source                                                                                              
==> Fetching https://github.com/flame/libflame/archive/5.1.0.tar.gz                                                                                   
######################################################################## 100.0%                                                                       
==> Staging archive: /home/sajid/packages/spack/var/spack/stage/libflame-5.1.0-d7l3mqr355nxmvshee5ngl5g3jvi2jc7/5.1.0.tar.gz                          
==> Created stage in /home/sajid/packages/spack/var/spack/stage/libflame-5.1.0-d7l3mqr355nxmvshee5ngl5g3jvi2jc7                                       
==> Applied patch /home/sajid/packages/spack/var/spack/repos/builtin/packages/libflame/Makefile_5.1.0.patch                                           
==> Building libflame [AutotoolsPackage]                                                                                                              
==> Executing phase: 'autoreconf'                                                                                                                     
==> Executing phase: 'configure'                                                                                                                      
==> Executing phase: 'build'                                                                                                                          
==> Error: ProcessError: Command exited with status 2:                                                                                                
    'make' '-j16'                                                                                                                                     

3 errors found in build log:                                                                                                                          
  >> 4       cat: revision: No such file or directory                                                                                                 
     5       checking build system type... x86_64-unknown-linux-gnu                                                                                   
     6       checking host system type... x86_64-unknown-linux-gnu                                                                                    
     7       checking for GNU make... make                                                                                                            
     8       checking for GNU bash... bash                                                                                                            
     9       checking whether user requested a specific C compiler... no                                                                              
     10      configure: CC environment variable is set to /home/sajid/packages/                                                                       
             spack/lib/spack/env/gcc/gcc, which will override --with-cc option                                                                        
             and default search list for C compiler.                                                                                                  

     ...                                                                                                                                              

     5599    Compiling src/lapack/util/app/qutinc/front/flamec/FLA_Apply_Q_UT_i                                                                       
             nc_lhfc.c                                                                                                                                
     5600    Compiling src/lapack/util/app/qutinc/front/flamec/FLA_Apply_Q_UT_i                                                                       
             nc_lnfc.c                                                                                                                                
     5601    Compiling src/lapack/util/app/qutinc/lhfc/flamec/FLA_Apply_Q_UT_in                                                                       
             c_lhfc_blk_var1.c                                                                                                                        
     5602    Compiling src/lapack/util/app/qutinc/lnfc/flamec/FLA_Apply_Q_UT_in                                                                       
             c_lnfc_blk_var1.c                                                                                                                        
     5603    Archiving lib/x86_64-unknown-linux-gnu/libflame.a                                                                                        
     5604    Dynamically linking lib/x86_64-unknown-linux-gnu/libflame.so                                                                             
  >> 5605    ar: @@ar: No such file or directory                                                                                                      
  >> 5606    make: *** [lib/x86_64-unknown-linux-gnu/libflame.a] Error 1                                                                              
     5607    make: *** Waiting for unfinished jobs....                                                                                                

See build log for details:                                                                                                                            
  /home/sajid/packages/spack/var/spack/stage/libflame-5.1.0-d7l3mqr355nxmvshee5ngl5g3jvi2jc7/spack-build-out.txt                                      

The build recipe I'm using is here 1.

adamjstewart commented 5 years ago

I encountered the same problem. Note that this has been fixed in the master branch. If you tell us what commit may have fixed this, we can add a patch to the latest release.

fgvanzee commented 5 years ago

@s-sajid-ali Try the latest commit (bafe30f). I realized that the version file was listed in the .gitignore, which was causing version to not be version-controlled.

adamjstewart commented 5 years ago

@fgvanzee I tried applying this patch to the latest release tarball but the build still crashes with:

Archiving lib/x86_64-unknown-linux-gnu/libflame.a
Dynamically linking lib/x86_64-unknown-linux-gnu/libflame.so
ar: @ar: No such file or directory
make: *** [lib/x86_64-unknown-linux-gnu/libflame.a] Error 1
make: *** Waiting for unfinished jobs....

I don't think that's the commit that fixed the issue.

fgvanzee commented 5 years ago

@adamjstewart Could you remind me: are you using the ARG_MAX hack (e.g. --enable-max-arg-list-hack) at configure-time?

adamjstewart commented 5 years ago

@fgvanzee Yes, the exact configure line is:

$ configure --prefix=/home/adamjs5/spack/opt/spack/linux-centos7-x86_64/gcc-4.8.5/libflame-5.1.0-5drqwss6df6dbyd5r7dab6gmggdhrdaw --enable-lapack2flame --enable-static-build --enable-dynamic-build --disable-debug --enable-multithreading=no --disable-supermatrix --enable-max-arg-list-hack
fgvanzee commented 5 years ago

@adamjstewart Also, are you literally using a release tarball (ie: 5.1.0)? We have not put out a release in ages. The only thing we "support" at this point is the head of the master branch. I highly recommend only using master (at least for now).

adamjstewart commented 5 years ago

I am using a release tarball (5.1.0). Is there any chance you'll cut a new release soon? @s-sajid-ali and I are developers of the Spack package manager, and libflame is one of the many packages in Spack that can provide LAPACK libraries. Spack defaults to the latest stable release of a package by default to prevent bugs and ensure checksum correctness. We can tell people to explicitly ask for libflame@develop, but only after they've already encountered this same error.

fgvanzee commented 5 years ago

@adamjstewart Ah, I see. I didn't realize it would be inconvenient to use a non-release.

I'll look into declaring a release to try to accommodate your needs.

fgvanzee commented 5 years ago

@adamjstewart Version 5.2.0 is tagged and released. Enjoy!

@s-sajid-ali Please try the most recent commit or version. Let me know if that doesn't fix your issues.

s-sajid-ali commented 5 years ago

Confirming that version 5.2.0 builds with old and new versions of gcc on CentOS.

Do you want us to list just 5.2.0 instead of 5.1.0 ?

[sajid@xrmlite ~]$ spack install libflame@5.2.0%gcc@9.1.0
==> Installing libflame
==> Searching for binary cache of libflame
==> Warning: No Spack mirrors are currently configured
==> No binary for libflame found: installing from source
==> Warning: There is no checksum on file to fetch libflame@5.2.0 safely.
==>   Fetch anyway? [y/N] y
==> Fetching with no checksum.
  Add a checksum or use --no-checksum to skip this check.
==> Fetching https://github.com/flame/libflame/archive/5.2.0.tar.gz
######################################################################## 100.0%
==> Staging archive: /home/sajid/packages/spack/var/spack/stage/libflame-5.2.0-5qh6ody5d5sot6w2d3yshpc7bwuwdtpp/5.2.0.tar.gz
==> Created stage in /home/sajid/packages/spack/var/spack/stage/libflame-5.2.0-5qh6ody5d5sot6w2d3yshpc7bwuwdtpp
==> No patches needed for libflame
==> Building libflame [AutotoolsPackage]
==> Executing phase: 'autoreconf'
==> Executing phase: 'configure'
==> Executing phase: 'build'
==> Executing phase: 'install'
==> Successfully installed libflame
  Fetch: 6.18s.  Build: 1m 13.12s.  Total: 1m 19.30s.
[+] /home/sajid/packages/spack/opt/spack/linux-centos7-x86_64/gcc-9.1.0/libflame-5.2.0-5qh6ody5d5sot6w2d3yshpc7bwuwdtpp
[sajid@xrmlite ~]$ spack install libflame@5.2.0%gcc@4.8.5
==> Installing libflame
==> Searching for binary cache of libflame
==> Warning: No Spack mirrors are currently configured
==> No binary for libflame found: installing from source
==> Warning: There is no checksum on file to fetch libflame@5.2.0 safely.
==>   Fetch anyway? [y/N] y
==> Fetching with no checksum.
  Add a checksum or use --no-checksum to skip this check.
==> Fetching https://github.com/flame/libflame/archive/5.2.0.tar.gz
######################################################################## 100.0%
==> Staging archive: /home/sajid/packages/spack/var/spack/stage/libflame-5.2.0-wj7iocgu63a7xmdawtjud3joxvby2vlo/5.2.0.tar.gz
==> Created stage in /home/sajid/packages/spack/var/spack/stage/libflame-5.2.0-wj7iocgu63a7xmdawtjud3joxvby2vlo
==> No patches needed for libflame
==> Building libflame [AutotoolsPackage]
==> Executing phase: 'autoreconf'
==> Executing phase: 'configure'
==> Executing phase: 'build'
==> Executing phase: 'install'
==> Successfully installed libflame
  Fetch: 4.48s.  Build: 1m 4.72s.  Total: 1m 9.19s.
[+] /home/sajid/packages/spack/opt/spack/linux-centos7-x86_64/gcc-4.8.5/libflame-5.2.0-wj7iocgu63a7xmdawtjud3joxvby2vlo
fgvanzee commented 5 years ago

Do you want us to list just 5.2.0 instead of 5.1.0 ?

Yes, that sounds good. Thanks.