Hello, Thanks, I can reproduce the problem on Debian with -O3 -m32. The issue is that -O3 makes gcc inline more. We have function A call B multiple times, and B calls C which contains asm with a label. So in the end A contains the asm label from C multiple times. Google says we should use local labels to fix the confusion between duplicates. This patch should help. Brice
--- a/include/private/cpuid-x86.h +++ b/include/private/cpuid-x86.h @@ -32,14 +32,14 @@ static __hwloc_inline int hwloc_have_x86_cpuid(void) "pushfl \n\t" \ "pop %1 \n\t" \ "cmp %1,%2\n\t" /* Compare with expected value */ \ - "jnz Lhwloc1\n\t" /* Unexpected, failure */ \ + "jnz 0f\n\t" /* Unexpected, failure */ \ TRY_TOGGLE /* Try to set/clear */ TRY_TOGGLE /* Try to clear/set */ "mov $1,%0\n\t" /* Passed the test! */ - "Lhwloc1: \n\t" + "0: \n\t" "popfl \n\t" /* Restore flags */ : "=r" (ret), "=&r" (tmp), "=&r" (tmp2)); Le 20/11/2014 03:04, Thomas Van Doren a écrit : > Hi > > I am getting the following error when building hwloc on 32bit ubuntu > 14.10 (utopic) with optimizations (CFLAGS='-O3'): > > ... snip ... > CC topology-x86.lo > /home/vagrant/src/hwloc/include/private/cpuid-x86.h: Assembler messages: > /home/vagrant/src/hwloc/include/private/cpuid-x86.h:40: Error: symbol > `Lhwloc1' is already defined > Makefile:878: recipe for target 'topology-x86.lo' failed > make[1]: *** [topology-x86.lo] Error 1 > make[1]: Leaving directory '/home/vagrant/src/hwloc/hwloc' > Makefile:615: recipe for target 'all-recursive' failed > make: *** [all-recursive] Error 1 > > I used these steps to verify that the build works without > optimizations and reproduce the error above with optimizations: > > git clone https://github.com/open-mpi/hwloc > cd hwloc/ > ./autogen.sh > ./configure > make > # This works, but no optimizations. > > # This fails with the error above... > git clean -dxf > ./autogen.sh > ./configure CFLAGS='-O3' CXXFLAGS='-O3' > make > > Is this expected to work? Do you have recommendations for fixing? I > first saw this on hwloc 1.9.1 and verified it also happens on 1.10.0. > > I attached the configure and make V=1 output, as well as the > config.log for the build against master (sha: 77fbe8f) that fails. > > I am using the utopic32 vagrant box from Ubuntu: > http://cloud-images.ubuntu.com/vagrant/utopic/current/ > > Please let me know if you need any other information. > > Thanks! > > Thomas Van Doren > thomas.vando...@gmail.com <mailto:thomas.vando...@gmail.com> > > > _______________________________________________ > hwloc-users mailing list > hwloc-us...@open-mpi.org > Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/hwloc-users > Link to this post: > http://www.open-mpi.org/community/lists/hwloc-users/2014/11/1117.php