From: Paul H. Hargrove (PHHargrove_at_lbl_dot_gov)
Date: Mon Feb 12 2007 - 14:50:36 PST
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