Hello Richard,

thank you very much for your implementation.

On 03/09/2012 02:56 AM, Richard Henderson wrote:
On 03/08/12 10:02, Joel Sherrill wrote:
If so, it is just a matter of ifdef's to get the right code.

Ok.

Does arm-eabi have this support? We probably could
just use the same code.

There's scant bare metal support atm.  For sufficiently new ARM core revisions,
gcc will inline operations.  In order to get all of it, you have to target 
ARMv7.

I threw this together today.  It likely needs quite a bit of spit and polish:
[...]
   * This has received only compile testing with the arm-rtemseabi multilibs.
     There may well be bugs.
[...]

I run the test suite with this patch and now the link errors vanish. I have currently no time to test the C++ atomics, but it would be nice if we can use this work in GCC 4.7.

=== g++ tests ===

Schedule of variations:
rtems-arm-edb7312

Running target rtems-arm-edb7312
Using /home/sh/rtems-testing/dejagnu/boards/rtems-arm-edb7312.exp as board
description file for target.
Using /usr/share/dejagnu/config/sim.exp as generic interface file for target.
Using /usr/share/dejagnu/baseboards/basic-sim.exp as board description file for
target.
Using /home/sh/archive/gcc-4.7.0-RC-20120302/gcc/testsuite/config/default.exp
as tool-and-target-specific interface file.
Running
/home/sh/archive/gcc-4.7.0-RC-20120302/gcc/testsuite/g++.dg/bprob/bprob.exp ...
Running
/home/sh/archive/gcc-4.7.0-RC-20120302/gcc/testsuite/g++.dg/charset/charset.exp 
...
Running
/home/sh/archive/gcc-4.7.0-RC-20120302/gcc/testsuite/g++.dg/compat/compat.exp 
...
Running
/home/sh/archive/gcc-4.7.0-RC-20120302/gcc/testsuite/g++.dg/compat/struct-layout-1.exp
...
Running
/home/sh/archive/gcc-4.7.0-RC-20120302/gcc/testsuite/g++.dg/debug/debug.exp ...
FAIL: g++.dg/debug/const1.C -gdwarf-2 -g3 (test for excess errors)
FAIL: g++.dg/debug/const1.C -gdwarf-2 -g3 -O2 (test for excess errors)
FAIL: g++.dg/debug/const1.C -gdwarf-2 -g3 -O3 (test for excess errors)
FAIL: g++.dg/debug/debug4.C -gdwarf-2 -g3 (test for excess errors)
FAIL: g++.dg/debug/debug4.C -gdwarf-2 -g3 -O2 (test for excess errors)
FAIL: g++.dg/debug/debug4.C -gdwarf-2 -g3 -O3 (test for excess errors)
FAIL: g++.dg/debug/pr27657.C -gdwarf-2 -g3 (test for excess errors)
FAIL: g++.dg/debug/pr27657.C -gdwarf-2 -g3 -O2 (test for excess errors)
FAIL: g++.dg/debug/pr27657.C -gdwarf-2 -g3 -O3 (test for excess errors)
FAIL: g++.dg/debug/trivial.C -gdwarf-2 -g3 (test for excess errors)
WARNING: g++.dg/debug/trivial.C -gdwarf-2 -g3 compilation failed to produce
executable
FAIL: g++.dg/debug/trivial.C -gdwarf-2 -g3 -O2 (test for excess errors)
WARNING: g++.dg/debug/trivial.C -gdwarf-2 -g3 -O2 compilation failed to produce
executable
FAIL: g++.dg/debug/trivial.C -gdwarf-2 -g3 -O3 (test for excess errors)
WARNING: g++.dg/debug/trivial.C -gdwarf-2 -g3 -O3 compilation failed to produce
executable
Running
/home/sh/archive/gcc-4.7.0-RC-20120302/gcc/testsuite/g++.dg/debug/dwarf2/dwarf2.exp
...
Running /home/sh/archive/gcc-4.7.0-RC-20120302/gcc/testsuite/g++.dg/dfp/dfp.exp 
...
Running /home/sh/archive/gcc-4.7.0-RC-20120302/gcc/testsuite/g++.dg/dg.exp ...
Running
/home/sh/archive/gcc-4.7.0-RC-20120302/gcc/testsuite/g++.dg/gcov/gcov.exp ...
Running
/home/sh/archive/gcc-4.7.0-RC-20120302/gcc/testsuite/g++.dg/gomp/gomp.exp ...
Running
/home/sh/archive/gcc-4.7.0-RC-20120302/gcc/testsuite/g++.dg/graphite/graphite.exp
...
Running
/home/sh/archive/gcc-4.7.0-RC-20120302/gcc/testsuite/g++.dg/guality/guality.exp 
...
Running /home/sh/archive/gcc-4.7.0-RC-20120302/gcc/testsuite/g++.dg/lto/lto.exp 
...
Running /home/sh/archive/gcc-4.7.0-RC-20120302/gcc/testsuite/g++.dg/pch/pch.exp 
...
Running
/home/sh/archive/gcc-4.7.0-RC-20120302/gcc/testsuite/g++.dg/plugin/plugin.exp 
...
Running
/home/sh/archive/gcc-4.7.0-RC-20120302/gcc/testsuite/g++.dg/simulate-thread/simulate-thread.exp
...
Running
/home/sh/archive/gcc-4.7.0-RC-20120302/gcc/testsuite/g++.dg/special/ecos.exp ...
Running /home/sh/archive/gcc-4.7.0-RC-20120302/gcc/testsuite/g++.dg/tls/tls.exp 
...
Running /home/sh/archive/gcc-4.7.0-RC-20120302/gcc/testsuite/g++.dg/tm/tm.exp 
...
Running
/home/sh/archive/gcc-4.7.0-RC-20120302/gcc/testsuite/g++.dg/torture/dg-torture.exp
...
Running
/home/sh/archive/gcc-4.7.0-RC-20120302/gcc/testsuite/g++.dg/torture/stackalign/stackalign.exp
...
Running
/home/sh/archive/gcc-4.7.0-RC-20120302/gcc/testsuite/g++.dg/tree-prof/tree-prof.exp
...
Running
/home/sh/archive/gcc-4.7.0-RC-20120302/gcc/testsuite/g++.dg/vect/vect.exp ...
Running
/home/sh/archive/gcc-4.7.0-RC-20120302/gcc/testsuite/g++.old-deja/old-deja.exp 
...

=== g++ Summary ===

# of expected passes 43093
# of unexpected failures 12
# of expected failures 277
# of unsupported tests 738
/home/sh/rtems-testing/gcc/b-arm-gcc/gcc/testsuite/g++/../../g++ version 4.7.0
20120307 (prerelease) (GCC)

--
Sebastian Huber, embedded brains GmbH

Address : Obere Lagerstr. 30, D-82178 Puchheim, Germany
Phone   : +49 89 18 90 80 79-6
Fax     : +49 89 18 90 80 79-9
E-Mail  : sebastian.hu...@embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.

Reply via email to