Bug#792204: Setting default CPU to ultrasparc for -m32 on sparc64 does not work

2016-07-08 Thread John Paul Adrian Glaubitz
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

2016-07-07 Thread John Paul Adrian Glaubitz
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 Glaubitz 
Date: 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

2015-11-06 Thread John Paul Adrian Glaubitz
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

2015-11-06 Thread John Paul Adrian Glaubitz
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

2015-11-05 Thread John Paul Adrian Glaubitz
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

2015-07-21 Thread John Paul Adrian Glaubitz
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

2015-07-21 Thread John Paul Adrian Glaubitz
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

2015-07-21 Thread Matthias Klose
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

2015-07-20 Thread Matthias Klose
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

2015-07-20 Thread Matthias Klose
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

2015-07-19 Thread Michael Karcher
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