Bug#792204: Setting default CPU to ultrasparc for -m32 on sparc64 does not work
On 07/07/2016 04:14 PM, John Paul Adrian Glaubitz wrote: > With this patch applied, we should be able to fix this issue the same > way it was fixed for gcc-6 [2]. Ok, here is an actually tested version of the patch (yes, I know :>). To make it work, I put the patch into debian/patches, removed sparc-force-cpu.diff from the same directory and debian/rules.patch, added sparc64-cpu32-support.diff instead. After that, I patched debian/rules2 the same way it was patched for gcc-6 [1]. Please note that both for gcc-5 and gcc-6 we are still ignoring the result of dh_makeshlibs [2] which should probably be reverted again now as well now that the symbols files are actually as expected. Thanks, Adrian > [1] > http://anonscm.debian.org/viewvc/gcccvs/branches/sid/gcc-6/debian/rules2?r1=8914=8913=8914 > [2] > http://anonscm.debian.org/viewvc/gcccvs/branches/sid/gcc-5/debian/rules.d/binary-libstdcxx.mk?r1=8189=8188=8189 -- .''`. John Paul Adrian Glaubitz : :' : Debian Developer - glaub...@debian.org `. `' Freie Universitaet Berlin - glaub...@physik.fu-berlin.de `-GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913 diff -Nru a/src/gcc/config/sparc/linux64.h b/src/gcc/config/sparc/linux64.h --- a/src/gcc/config/sparc/linux64.h 2016-07-08 12:11:19.526313139 +0300 +++ b/src/gcc/config/sparc/linux64.h 2016-07-08 12:42:45.547699512 +0300 @@ -164,22 +164,42 @@ #endif /* Support for a compile-time default CPU, et cetera. The rules are: - --with-cpu is ignored if -mcpu is specified. - --with-tune is ignored if -mtune is specified. + --with-cpu is ignored if -mcpu is specified; likewise --with-cpu-32 + and --with-cpu-64. + --with-tune is ignored if -mtune is specified; likewise --with-tune-32 + and --with-tune-64. --with-float is ignored if -mhard-float, -msoft-float, -mfpu, or -mno-fpu are specified. In the SPARC_BI_ARCH compiler we cannot pass %{!mcpu=*:-mcpu=%(VALUE)} here, otherwise say -mcpu=v7 would be passed even when -m64. - CC1_SPEC above takes care of this instead. */ + CC1_SPEC above takes care of this instead. + + Note that the order of the cpu* and tune* options matters: the + config.gcc file always sets with_cpu to some value, even if the + user didn't use --with-cpu when invoking the configure script. + This value is based on the target name. Therefore we have to make + sure that --with-cpu-32 takes precedence to --with-cpu in < v9 + systems, and that --with-cpu-64 takes precedence to --with-cpu in + >= v9 systems. As for the tune* options, in some platforms + config.gcc also sets a default value for it if the user didn't use + --with-tune when invoking the configure script. */ #undef OPTION_DEFAULT_SPECS #if DEFAULT_ARCH32_P #define OPTION_DEFAULT_SPECS \ + {"cpu_32", "%{!m64:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \ + {"cpu_64", "%{m64:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \ {"cpu", "%{!m64:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \ + {"tune_32", "%{!m64:%{!mtune=*:-mtune=%(VALUE)}}" }, \ + {"tune_64", "%{m64:%{!mtune=*:-mtune=%(VALUE)}}" }, \ {"tune", "%{!mtune=*:-mtune=%(VALUE)}" }, \ {"float", "%{!msoft-float:%{!mhard-float:%{!mfpu:%{!mno-fpu:-m%(VALUE)-float" } #else #define OPTION_DEFAULT_SPECS \ + {"cpu_32", "%{m32:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \ + {"cpu_64", "%{!m32:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \ {"cpu", "%{!m32:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \ + {"tune_32", "%{m32:%{!mtune=*:-mtune=%(VALUE)}}" }, \ + {"tune_64", "%{!m32:%{!mtune=*:-mtune=%(VALUE)}}" }, \ {"tune", "%{!mtune=*:-mtune=%(VALUE)}" }, \ {"float", "%{!msoft-float:%{!mhard-float:%{!mfpu:%{!mno-fpu:-m%(VALUE)-float" } #endif diff -Nru a/src/gcc/config/sparc/sol2.h b/src/gcc/config/sparc/sol2.h --- a/src/gcc/config/sparc/sol2.h 2015-10-01 15:01:18.0 +0300 +++ b/src/gcc/config/sparc/sol2.h 2016-07-08 12:46:25.148702254 +0300 @@ -231,22 +231,42 @@ #endif /* Support for a compile-time default CPU, et cetera. The rules are: - --with-cpu is ignored if -mcpu is specified. - --with-tune is ignored if -mtune is specified. + --with-cpu is ignored if -mcpu is specified; likewise --with-cpu-32 + and --with-cpu-64. + --with-tune is ignored if -mtune is specified; likewise --with-tune-32 + and --with-tune-64. --with-float is ignored if -mhard-float, -msoft-float, -mfpu, or -mno-fpu are specified. In the SPARC_BI_ARCH compiler we cannot pass %{!mcpu=*:-mcpu=%(VALUE)} here, otherwise say -mcpu=v7 would be passed even when -m64. - CC1_SPEC above takes care of this instead. */ + CC1_SPEC above takes care of this instead. + + Note that the order of the cpu* and tune* options matters: the + config.gcc file always sets with_cpu to some value, even if the + user didn't use --with-cpu when invoking the configure script. + This value is based on the target name. Therefore we have to make + sure that --with-cpu-32 takes precedence to --with-cpu in < v9 + systems, and that --with-cpu-64 takes precedence
Bug#792204: Setting default CPU to ultrasparc for -m32 on sparc64 does not work
Control: tags -1 +patch Hi Matthias! As discussed previously at DebConf16, I have backported the cpu32 patch by Jose Marchesi [1] to the gcc-5-branch, I used the current SVN revision of the gcc-5-branch, so this patch should probably be updated after the svn-updates.diff patch. With this patch applied, we should be able to fix this issue the same way it was fixed for gcc-6 [2]. Thanks, Adrian > [1] https://gcc.gnu.org/ml/gcc-patches/2016-05/msg00123.html > [2] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=809509 -- .''`. John Paul Adrian Glaubitz : :' : Debian Developer - glaub...@debian.org `. `' Freie Universitaet Berlin - glaub...@physik.fu-berlin.de `-GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913 >From 28dca9945d35db9030c3bbaa7467a4152f41eaff Mon Sep 17 00:00:00 2001 From: John Paul Adrian GlaubitzDate: Thu, 7 Jul 2016 16:02:56 +0200 Subject: [PATCH] Backport from mainline 2016-04-28 Jose E. Marchesi * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and tune_64. * doc/install.texi (--with-cpu-32, --with-cpu-64): Document support on SPARC. * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32 and tune_64. --- gcc/config.gcc | 4 ++-- gcc/config/sparc/linux64.h | 26 +++--- gcc/config/sparc/sol2.h| 26 +++--- gcc/doc/install.texi | 2 +- 4 files changed, 49 insertions(+), 9 deletions(-) diff --git a/gcc/config.gcc b/gcc/config.gcc index 9f31f1a..5dbee15 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -4120,9 +4120,9 @@ case "${target}" in esac ;; sparc*-*-*) - supported_defaults="cpu float tune" + supported_defaults="cpu cpu_32 cpu_64 float tune tune_32 tune_64" - for which in cpu tune; do + for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do eval "val=\$with_$which" case ${val} in "" | sparc | sparcv9 | sparc64 \ diff --git a/gcc/config/sparc/linux64.h b/gcc/config/sparc/linux64.h index fa805fd..3e84392 100644 --- a/gcc/config/sparc/linux64.h +++ b/gcc/config/sparc/linux64.h @@ -164,22 +164,42 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); #endif /* Support for a compile-time default CPU, et cetera. The rules are: - --with-cpu is ignored if -mcpu is specified. - --with-tune is ignored if -mtune is specified. + --with-cpu is ignored if -mcpu is specified; likewise --with-cpu-32 + and --with-cpu-64. + --with-tune is ignored if -mtune is specified; likewise --with-tune-32 + and --with-tune-64. --with-float is ignored if -mhard-float, -msoft-float, -mfpu, or -mno-fpu are specified. In the SPARC_BI_ARCH compiler we cannot pass %{!mcpu=*:-mcpu=%(VALUE)} here, otherwise say -mcpu=v7 would be passed even when -m64. - CC1_SPEC above takes care of this instead. */ + CC1_SPEC above takes care of this instead. + + Note that the order of the cpu* and tune* options matters: the + config.gcc file always sets with_cpu to some value, even if the + user didn't use --with-cpu when invoking the configure script. + This value is based on the target name. Therefore we have to make + sure that --with-cpu-32 takes precedence to --with-cpu in < v9 + systems, and that --with-cpu-64 takes precedence to --with-cpu in + >= v9 systems. As for the tune* options, in some platforms + config.gcc also sets a default value for it if the user didn't use + --with-tune when invoking the configure script. */ #undef OPTION_DEFAULT_SPECS #if DEFAULT_ARCH32_P #define OPTION_DEFAULT_SPECS \ + {"cpu_32", "%{!m64:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \ + {"cpu_64", "%{m64:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \ {"cpu", "%{!m64:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \ + {"tune_32", "%{!m64:%{!mtune=*:-mtune=%(VALUE)}}" }, \ + {"tune_64", "%{m64:%{!mtune=*:-mtune=%(VALUE)}}" }, \ {"tune", "%{!mtune=*:-mtune=%(VALUE)}" }, \ {"float", "%{!msoft-float:%{!mhard-float:%{!mfpu:%{!mno-fpu:-m%(VALUE)-float" } #else #define OPTION_DEFAULT_SPECS \ + {"cpu_32", "%{m32:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \ + {"cpu_64", "%{!m32:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \ {"cpu", "%{!m32:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \ + {"tune_32", "%{m32:%{!mtune=*:-mtune=%(VALUE)}}" }, \ + {"tune_64", "%{!m32:%{!mtune=*:-mtune=%(VALUE)}}" }, \ {"tune", "%{!mtune=*:-mtune=%(VALUE)}" }, \ {"float", "%{!msoft-float:%{!mhard-float:%{!mfpu:%{!mno-fpu:-m%(VALUE)-float" } #endif diff --git a/gcc/config/sparc/sol2.h b/gcc/config/sparc/sol2.h index 0d25703..13567da 100644 --- a/gcc/config/sparc/sol2.h +++ b/gcc/config/sparc/sol2.h @@ -231,22 +231,42 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); #endif /* Support for a compile-time default CPU, et cetera. The rules are: - --with-cpu is ignored if -mcpu is specified. - --with-tune is ignored if -mtune is specified. + --with-cpu is ignored if
Bug#792204: Setting default CPU to ultrasparc for -m32 on sparc64 does not work
Control: tags -1 patch On 11/05/2015 11:10 PM, John Paul Adrian Glaubitz wrote: > But, surprise, surprise, gcc-5 with bi-arch enabled works fine on > sparc64 now. Hence, please update the patch > debian/patches/sparc-force-cpu.diff and remove the "DISABLED" in line > 18. Attaching a patch for now. Interestingly, the future symbols still seem to be missing in lib32stdc++6 which I find rather odd. Hmm. -- .''`. John Paul Adrian Glaubitz : :' : Debian Developer - glaub...@debian.org `. `' Freie Universitaet Berlin - glaub...@physik.fu-berlin.de `-GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913 --- debian/patches/sparc-force-cpu.diff.orig 2015-11-06 10:11:52.0 +0100 +++ debian/patches/sparc-force-cpu.diff 2015-11-06 10:14:46.604668582 +0100 @@ -15,7 +15,7 @@ +val=ultrasparc + fi + ;; -+ DISABLEDsparc64-*-linux*) ++ sparc64-*-linux*) + if test "$option" = cpu_32; then +val=ultrasparc + fi
Bug#792204: Setting default CPU to ultrasparc for -m32 on sparc64 does not work
On 11/06/2015 10:21 AM, John Paul Adrian Glaubitz wrote: > Interestingly, the future symbols still seem to be missing in > lib32stdc++6 which I find rather odd. Ok, back to the drawing board. Apparently sparc-force-cpu.diff doesn't have any influence anymore. "-mcpu=ultrasparc" is never passed according to the build logs. -- .''`. John Paul Adrian Glaubitz : :' : Debian Developer - glaub...@debian.org `. `' Freie Universitaet Berlin - glaub...@physik.fu-berlin.de `-GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913
Bug#792204: Setting default CPU to ultrasparc for -m32 on sparc64 does not work
Hi Matthias! On Thu, Jul 23, 2015 at 09:55:32AM +0200, John Paul Adrian Glaubitz wrote: > On 07/21/2015 09:13 PM, Matthias Klose wrote: > > no, v8 is ancient. re-enable it and check if it works, and if not, fix it. > > I modified the patch now to set cpu to "ultrasparc" which results in > a different problem. Could be possible that this bug was hidden > because of ATOMIC_LOCK_INT_FREE being 1 and future never being compiled > on sparc64 with -mcpu32. Awesome news! I gave bi-arch on sparc64 another try today with gcc-5.2.1-23 and it actually works now [1]. I was actually expecting the build to fail and my original intention was to get a full build log of a failed build to be able to file an upstream bug report. But, surprise, surprise, gcc-5 with bi-arch enabled works fine on sparc64 now. Hence, please update the patch debian/patches/sparc-force-cpu.diff and remove the "DISABLED" in line 18. After that, 32-bit libraries should build fine on sparc64 now and we drop the workaround to ignore the missing symbols for the 32-bit libraries :). Adrian > [1] > https://people.debian.org/~glaubitz/gcc-5_5.2.1-23+sparc64_sparc64-20151105-1512.build -- .''`. John Paul Adrian Glaubitz : :' : Debian Developer - glaub...@debian.org `. `' Freie Universitaet Berlin - glaub...@physik.fu-berlin.de `-GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913
Bug#792204: Setting default CPU to ultrasparc for -m32 on sparc64 does not work
On Mon, Jul 20, 2015 at 12:38:45PM +0200, Matthias Klose wrote: see sparc-force-cpu.diff, which currently disables this for sparc64 biarch. So maybe somebody should just enable it and see if it works as intended, or make it working. ahh, and r7502 disabled it again, so probably somebody should have a look how to set the default for the 32bit build. Ok, but why exactly was it disabled. Were there any issues with -mcpu=ultrasparc when compiling with -m32? Was this chosen to remain compatible with older SPARC CPUs? Adrian -- .''`. John Paul Adrian Glaubitz : :' : Debian Developer - glaub...@debian.org `. `' Freie Universitaet Berlin - glaub...@physik.fu-berlin.de `-GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913 -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#792204: Setting default CPU to ultrasparc for -m32 on sparc64 does not work
On Tue, Jul 21, 2015 at 09:13:41PM +0200, Matthias Klose wrote: Ok, but why exactly was it disabled. Were there any issues with -mcpu=ultrasparc when compiling with -m32? Was this chosen to remain compatible with older SPARC CPUs? no, v8 is ancient. re-enable it and check if it works, and if not, fix it. Alright, I will. Thanks for the explanation. -- .''`. John Paul Adrian Glaubitz : :' : Debian Developer - glaub...@debian.org `. `' Freie Universitaet Berlin - glaub...@physik.fu-berlin.de `-GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913 -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#792204: Setting default CPU to ultrasparc for -m32 on sparc64 does not work
On 07/21/2015 08:34 PM, John Paul Adrian Glaubitz wrote: On Mon, Jul 20, 2015 at 12:38:45PM +0200, Matthias Klose wrote: see sparc-force-cpu.diff, which currently disables this for sparc64 biarch. So maybe somebody should just enable it and see if it works as intended, or make it working. ahh, and r7502 disabled it again, so probably somebody should have a look how to set the default for the 32bit build. Ok, but why exactly was it disabled. Were there any issues with -mcpu=ultrasparc when compiling with -m32? Was this chosen to remain compatible with older SPARC CPUs? no, v8 is ancient. re-enable it and check if it works, and if not, fix it. -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#792204: Setting default CPU to ultrasparc for -m32 on sparc64 does not work
On 07/20/2015 01:37 AM, Michael Karcher wrote: Hello, the problem (ATOMIC_INT_LOCK_FREE == 1) applies for the 32-bit build of libstdc++, and is caused by gcc assuming a too old 32-bit sparc processor, as can be seen by: (unstable-sparc64-sbuild)mkarcher@ravirin:~$ COLUMNS=140 dpkg -l gcc-4.9 Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version ArchitectureDescription +++-=-===-===-=== ii gcc-4.9 4.9.2-21+sparc64 sparc64 GNU C compiler (this is a custom build of the official debian gcc source with the symbol verification quieted by using fudged expected symbols lists) (unstable-sparc64-sbuild)mkarcher@ravirin:~$ g++-4.9 -std=c++11 -dM -E -m32 -x c++ /dev/null | grep INT_LOCK #define __GCC_ATOMIC_INT_LOCK_FREE 1 (unstable-sparc64-sbuild)mkarcher@ravirin:~$ g++-4.9 -std=c++11 -dM -E -m32 -mcpu=ultrasparc -x c++ /dev/null | grep INT_LOCK #define __GCC_ATOMIC_INT_LOCK_FREE 2 The changelog messages for gcc seem to indicate that the default CPU for -m32 is intended to be ultrasparc: gcc-4.9 (4.9.0-10) unstable; urgency=medium * Update to SVN 20140704 (r212295) from the gcc-4_9-branch. * Explicitly set cpu_32 to ultrasparc for sparc64 builds. [...] gcc-4.9 (4.9.0-9) unstable; urgency=medium * Update to SVN 20140701 (r212192) from the gcc-4_9-branch. * Update libstdc++ symbols files for ARM. * Configure --with-cpu-32=ultrasparc on sparc64. This seems to not have the intended effect of defaulting to require the ultrasparc architecture providing lock-free atomics. Regards, Michael Karcher see sparc-force-cpu.diff, which currently disables this for sparc64 biarch. So maybe somebody should just enable it and see if it works as intended, or make it working. -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#792204: Setting default CPU to ultrasparc for -m32 on sparc64 does not work
On 07/20/2015 12:31 PM, Matthias Klose wrote: On 07/20/2015 01:37 AM, Michael Karcher wrote: Hello, the problem (ATOMIC_INT_LOCK_FREE == 1) applies for the 32-bit build of libstdc++, and is caused by gcc assuming a too old 32-bit sparc processor, as can be seen by: (unstable-sparc64-sbuild)mkarcher@ravirin:~$ COLUMNS=140 dpkg -l gcc-4.9 Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version ArchitectureDescription +++-=-===-===-=== ii gcc-4.9 4.9.2-21+sparc64 sparc64 GNU C compiler (this is a custom build of the official debian gcc source with the symbol verification quieted by using fudged expected symbols lists) (unstable-sparc64-sbuild)mkarcher@ravirin:~$ g++-4.9 -std=c++11 -dM -E -m32 -x c++ /dev/null | grep INT_LOCK #define __GCC_ATOMIC_INT_LOCK_FREE 1 (unstable-sparc64-sbuild)mkarcher@ravirin:~$ g++-4.9 -std=c++11 -dM -E -m32 -mcpu=ultrasparc -x c++ /dev/null | grep INT_LOCK #define __GCC_ATOMIC_INT_LOCK_FREE 2 The changelog messages for gcc seem to indicate that the default CPU for -m32 is intended to be ultrasparc: gcc-4.9 (4.9.0-10) unstable; urgency=medium * Update to SVN 20140704 (r212295) from the gcc-4_9-branch. * Explicitly set cpu_32 to ultrasparc for sparc64 builds. [...] gcc-4.9 (4.9.0-9) unstable; urgency=medium * Update to SVN 20140701 (r212192) from the gcc-4_9-branch. * Update libstdc++ symbols files for ARM. * Configure --with-cpu-32=ultrasparc on sparc64. This seems to not have the intended effect of defaulting to require the ultrasparc architecture providing lock-free atomics. Regards, Michael Karcher see sparc-force-cpu.diff, which currently disables this for sparc64 biarch. So maybe somebody should just enable it and see if it works as intended, or make it working. ahh, and r7502 disabled it again, so probably somebody should have a look how to set the default for the 32bit build. -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#792204: Setting default CPU to ultrasparc for -m32 on sparc64 does not work
Hello, the problem (ATOMIC_INT_LOCK_FREE == 1) applies for the 32-bit build of libstdc++, and is caused by gcc assuming a too old 32-bit sparc processor, as can be seen by: (unstable-sparc64-sbuild)mkarcher@ravirin:~$ COLUMNS=140 dpkg -l gcc-4.9 Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version ArchitectureDescription +++-=-===-===-=== ii gcc-4.9 4.9.2-21+sparc64 sparc64 GNU C compiler (this is a custom build of the official debian gcc source with the symbol verification quieted by using fudged expected symbols lists) (unstable-sparc64-sbuild)mkarcher@ravirin:~$ g++-4.9 -std=c++11 -dM -E -m32 -x c++ /dev/null | grep INT_LOCK #define __GCC_ATOMIC_INT_LOCK_FREE 1 (unstable-sparc64-sbuild)mkarcher@ravirin:~$ g++-4.9 -std=c++11 -dM -E -m32 -mcpu=ultrasparc -x c++ /dev/null | grep INT_LOCK #define __GCC_ATOMIC_INT_LOCK_FREE 2 The changelog messages for gcc seem to indicate that the default CPU for -m32 is intended to be ultrasparc: gcc-4.9 (4.9.0-10) unstable; urgency=medium * Update to SVN 20140704 (r212295) from the gcc-4_9-branch. * Explicitly set cpu_32 to ultrasparc for sparc64 builds. [...] gcc-4.9 (4.9.0-9) unstable; urgency=medium * Update to SVN 20140701 (r212192) from the gcc-4_9-branch. * Update libstdc++ symbols files for ARM. * Configure --with-cpu-32=ultrasparc on sparc64. This seems to not have the intended effect of defaulting to require the ultrasparc architecture providing lock-free atomics. Regards, Michael Karcher -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org