Re: BLCR 0.5.0_b1 (beta) install on x86_64 problem

From: Paul H. Hargrove (PHHargrove_at_lbl_dot_gov)
Date: Mon Feb 12 2007 - 14:50:36 PST

  • Next message: Paul H. Hargrove: "BLCR 0.5.0_b1 (beta) release now available"
    Looking further, I see two problems with what BLCR does now:
    
    1) The sub-configure for the 32-bit libs adds -m32 but doesn't remove 
    -m64 from CFLAGS or CC.  This is the root cause of Adolfo's problem.
    2) The RPM specfile places --enable-multilib *after* the user's 
    configure arguments when invoking configure, which prevents 
    --disabe-multilib from turning it off.
    
    I am now in testing to fix both of these problems in the 0.5.0_2 release 
    which is already due out at the end of today.
    
    -Paul
    
    Paul H. Hargrove wrote:
    > Adolfo,
    >  Thanks for the bug report.
    >
    >  What I see is that the sub-configure we run to get 32-bit libs is 
    > setting CC='gcc -m32', but that the CFLAGS contains '-m64'.  I find 
    > that my own gcc fails with a less than useful error message  in this 
    > case (though -m64 followed by -m32 does work).
    >
    > $ gcc -m32 -c foo.c && echo OK
    > OK
    > $ gcc -m64 -c foo.c && echo OK
    > OK
    > $ gcc -m64 -m32 -c foo.c && echo OK
    > OK
    > $ gcc -m32 -m64 -c foo.c && echo OK
    > /tmp/ccCkYECv.s: Assembler messages:
    > /tmp/ccCkYECv.s:10: Error: bad register name `%rbp'
    > /tmp/ccCkYECv.s:12: Error: bad register name `%rsp'
    > /tmp/ccCkYECv.s:14: Error: bad register name `%rsp'
    > /tmp/ccCkYECv.s:16: Error: bad register name `%rbp)'
    > /tmp/ccCkYECv.s:17: Error: bad register name `%rbp)'
    > /tmp/ccCkYECv.s:18: Error: bad register name `%rbp)'
    > /tmp/ccCkYECv.s:19: Error: bad register name `%rbp)'
    > /tmp/ccCkYECv.s:20: Error: bad register name `%rbp)'
    >
    > Regardless of whether is works or not, the "-m64" in the CFLAGS is 
    > never the "right thing" to do here.  Unless you say otherwise, I am 
    > going to assume that your distribution has chosen the values of CFLAGS 
    > and CXXFLAGS.  Correct me if I am wrong here.
    >
    > I am looking into what can be done more cleanly, but suggest for now 
    > that you will need to edit the specfile (rpm/specfile in the build 
    > dir) to set CFLAGS to something w/o the "-m64", just above the line 
    > that begins "%configure '--enable-multilib'".
    >
    > -Paul
    >
    > Adolfo J. Banchio wrote:
    >> Hi,
    >>
    >> first of all, thanks for all your work! The software is
    >> great, I'm using it since almost a year.
    >>
    >> Now, that I'm upgrading from 0.4.2 to 0.5.0 I encountered
    >> by compiling the RPMS (with make rpms) on a x86_64
    >> with kernel 4.6.9-42smp the following problem:
    >>
    >> The compilation aborts with these last lines:
    >>
    >> -----------
    >>         configure: >>>> BEGIN sub-configure for 32-bit libs >>>>
    >>         configure: 
    >> /home/adolfo/blcr/blcr-0.5.0_b1/rpm/BUILD/blcr-0.5.0_b1/configure 
    >> '--srcdir=/home/adolfo/blcr/blcr-0.5.0_b1/rpm/BUILD/blcr-0.5.0_b1' 
    >> '--build=i686-linux' '--libdir=/usr/lib' --with-components=libcr 
    >> '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr' 
    >> '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' 
    >> '--datadir=/usr/share' '--includedir=/usr/include' 
    >> '--libexecdir=/usr/libexec' '--localstatedir=/var' 
    >> '--sharedstatedir=/usr/com' '--mandir=/usr/share/man' 
    >> '--infodir=/usr/share/info' '--with-gnu-ld' '--disable-config-report' 
    >> 'CFLAGS=-O2 -g -pipe -m64' 'CXXFLAGS=-O2 -g -pipe -m64' 'FFLAGS=-O2 
    >> -g -pipe -m64' CC='gcc -m32'
    >>         checking for a BSD-compatible install... /usr/bin/install -c
    >>         checking whether build environment is sane... yes
    >>         checking for gawk... gawk
    >>         checking whether make sets $(MAKE)... yes
    >>         checking for pwd... /bin/pwd
    >>         checking build system type... i686-pc-linux-gnu
    >>         checking host system type... i686-pc-linux-gnu
    >>         checking for perl5... no
    >>         checking for perl... /usr/bin/perl
    >>         checking for gmake... /usr/bin/gmake
    >>         checking if /usr/bin/gmake is GNU make... yes (3.80)
    >>         checking for style of include used by /usr/bin/gmake... GNU
    >>         checking for gcc... gcc -m32
    >>         checking for C compiler default output file name... configure:
    >>         error: C compiler cannot create executables
    >>         See `config.log' for more details.
    >>         configure: error: --enable-multilib requested but FAILED sub-
    >>         configure for 32-bit libs
    >>         error: Bad exit status from /var/tmp/rpm-tmp.66677 (%build)
    >>                         RPM build errors:
    >>             Bad exit status from /var/tmp/rpm-tmp.66677 (%build)
    >>         gmake[2]: *** [_all] Error 1
    >>         gmake[2]: Leaving directory
    >>         `/home/adolfo/blcr/blcr-0.5.0_b1/rpm'
    >>         gmake[1]: *** [all] Error 2
    >>         gmake[1]: Leaving directory
    >>         `/home/adolfo/blcr/blcr-0.5.0_b1/rpm'
    >>         make: *** [rpms] Error 2
    >>         --------------------------
    >>
    >>
    >> Even if I try to use the --disable-multilib  or --enable-multilib=no
    >> flags.
    >>
    >>
    >> Let me know if you know how to solve this.
    >>
    >> best regards,
    >>
    >> adolfo
    >>
    >> -- 
    >> Prof. Adj. Adolfo J. Banchio
    >> FaMAF - Universidad Nacional de Cordoba
    >> Cordoba, Argentina
    >>   
    >
    >
    
    
    -- 
    Paul H. Hargrove                          PHHargrove_at_lbl_dot_gov
    Future Technologies Group                 
    HPC Research Department                   Tel: +1-510-495-2352
    Lawrence Berkeley National Laboratory     Fax: +1-510-486-6900
    

  • Next message: Paul H. Hargrove: "BLCR 0.5.0_b1 (beta) release now available"