Hi Ulrich,
Before I build the cross compiler for ARM target I do a bootstrap
process of an i686 compiler on the same code base to use that one
building the cross compiler to reduce the chance of seeing subtle
problems late in the game. This process unveiled a x86 bootstrap
regression with some of your changes on the Linaro 4.7 branch.
It all boils down to the following set of changes you did:
commit c904094f2421bbd5d2cab6d7fbccecf055509629
Author: Ulrich Weigand <uweigand(a)de.ibm.com>
Date: Mon Jul 16 16:31:58 2012 +0200
Update to exactly reflect upstream version.
commit bf378903a1b749b904ae64635182e7fc9b43e0e4
Author: Ulrich Weigand <uweigand(a)de.ibm.com>
Date: Tue Jul 10 15:46:51 2012 +0200
Fix backport.
commit e0c3b0a21916ffafc058cd88d82423d87ce77b50
Author: Ulrich Weigand <uweigand(a)de.ibm.com>
Date: Mon Jul 9 22:52:10 2012 +0200
Fix LP 1020601.
This is the introduction of optimize_unreachable in gcc/tree-ssa-ccp.c.
When configuring with
../gcc/configure --host=i686-build_pc-linux-gnu
--build=i686-build_pc-linux-gnu --target=i686-build_pc-linux-gnu
--prefix=/ --libexecdir=//lib
--program-prefix=i686-build_pc-linux-gnu-
--with-sysroot=/user/rschiele/l/builddir/i686-build_pc-linux-gnu/sysroot
--with-local-prefix=/user/rschiele/l/builddir/i686-build_pc-linux-gnu/sysroot
--with-gmp=/user/rschiele/l/builddir/i686-build_pc-linux-gnu/sysroot/usr
--with-mpfr=/user/rschiele/l/builddir/i686-build_pc-linux-gnu/sysroot/usr
--with-mpc=/user/rschiele/l/builddir/i686-build_pc-linux-gnu/sysroot/usr
--with-cloog=/user/rschiele/l/builddir/i686-build_pc-linux-gnu/sysroot/usr
--with-ppl=/user/rschiele/l/builddir/i686-build_pc-linux-gnu/sysroot/usr
'--with-host-libstdcxx=/user/rschiele/l/builddir/i686-build_pc-linux-gnu/tools/lib/libstdc++.a
-lm' --disable-multilib --disable-checking --enable-__cxa_atexit
--enable-libmudflap --enable-libgomp --enable-libssp
--enable-languages=c,c++ --enable-threads=posix
--disable-libstdcxx-pch --enable-c99 --enable-long-long
--disable-shared
It fails in the bootstrap at
/user/rschiele/l/src/gccbuild/./prev-gcc/g++
-B/user/rschiele/l/src/gccbuild/./prev-gcc/
-B//i686-build_pc-linux-gnu/bin/ -nostdinc++
-B/user/rschiele/l/src/gccbuild/prev-i686-build_pc-linux-gnu/libstdc++-v3/src/.libs
-B/user/rschiele/l/src/gccbuild/prev-i686-build_pc-linux-gnu/libstdc++-v3/libsupc++/.libs
-I/user/rschiele/l/src/gccbuild/prev-i686-build_pc-linux-gnu/libstdc++-v3/include/i686-build_pc-linux-gnu
-I/user/rschiele/l/src/gccbuild/prev-i686-build_pc-linux-gnu/libstdc++-v3/include
-I/user/rschiele/l/src/gcc/libstdc++-v3/libsupc++
-L/user/rschiele/l/src/gccbuild/prev-i686-build_pc-linux-gnu/libstdc++-v3/src/.libs
-L/user/rschiele/l/src/gccbuild/prev-i686-build_pc-linux-gnu/libstdc++-v3/libsupc++/.libs
-c -g -O2 -gtoggle -DIN_GCC -fno-exceptions -fno-rtti -W -Wall
-Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute
-pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings
-DHAVE_CONFIG_H -I. -I. -I../../gcc/gcc -I../../gcc/gcc/.
-I../../gcc/gcc/../include -I../../gcc/gcc/../libcpp/include
-I/user/rschiele/l/builddir/i686-build_pc-linux-gnu/sysroot/usr/include
-I/user/rschiele/l/builddir/i686-build_pc-linux-gnu/sysroot/usr/include
-I/user/rschiele/l/builddir/i686-build_pc-linux-gnu/sysroot/usr/include
-I../../gcc/gcc/../libdecnumber -I../../gcc/gcc/../libdecnumber/bid
-I../libdecnumber
-I/user/rschiele/l/builddir/i686-build_pc-linux-gnu/sysroot/usr/include
-I/user/rschiele/l/builddir/i686-build_pc-linux-gnu/sysroot/usr/include
../../gcc/gcc/sel-sched.c -o sel-sched.o
../../gcc/gcc/sel-sched.c: In function 'void sel_sched_region_2(int)':
../../gcc/gcc/sel-sched.c:7472:1: error: mismatching comparison operand types
struct rtx_def *
bool
if (insn_1716 == 0)
../../gcc/gcc/sel-sched.c:7472:1: internal compiler error: verify_gimple failed
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
Note, that the --disable-checking is essential to reproduce. As soon
as you do --enable-checking the bootstrap completes successfully. I
would assume that you then still have the bug in the compiler but it
is just subtle enough not to be triggered then.
Reverting your mentioned changes fixes this problem.
If you need further information about my environment to reproduce the
problem feel free to contact me.
Greetings,
Robert
The minutes of the performance call held on 11 December 2012 can be found at:
https://wiki.linaro.org/WorkingGroups/ToolChain/Meetings/2012-12-11
In summary the actions from the meeting are:
* ACTION: Matt update meeting template attendees - to include Yvan
* ACTION: mgrettondann split LRA blueprint
* ACTION: Christophe to update Hot/Cold partitioning bugzilla
* ACTION: mgrettondann: benchmark on Hold/Cold partitioning
* ACTION: Christophe to look at the loop peeling cost
Thanks,
Yvan
This patch provides support to detect the host architecture in
configure.in use the detected architecture to conditionalize parts of
the Makefile.am. The intention is that we retain a single top level
Makefile which contains rules relevant to all supported architectures,
each gated by the AM_CONDITIONAL infrastructure.
/Marcus
Folks, In preparation for adding aarch64 string functions into
cortex-strings, I'd like feed back on the following series of patches.
1/5 Trivial whitespace cleanups.
2/5 Autotools foo for cross building support.
3/5 Autotools foo for architecture detection.
4/5 Missing LDADD and CFLAGS setting.
5/5 Use --std=gnu99
I'm particularly interested in views on 3/5. This patch sets
direction for autoconf detection of the host architecture. The
intention is that we retain the single toplevel Makefile.am which
gains AM_CONDITIONAL support for the detected host triple.
The aarch64 specific code will follow in a different patch set.
Cheers
/Marcus
Hi,
the issue seems indeed to be introduced by r193959 and fixed in
r194161, as it is reported in:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55571
Unfortunately, my merge attempt was at r190461 :(
I redo the merge...
Yvan
Summary:
* Validate RM toolchain, Linaro QENU 2012.12 and Linaro aarch64 2012.11.
* Collect performance data for different branch cost.
Details:
* Validate RM toolchain release.
* Set up test environment with the help of Michael and validate Linaro
QEMU 2012.12 release.
* Validate aarch64 toolchain 2012.11. From 2012.12, it will be
released regularly like arm-linux-gnueabihf toolchain.
* Collect denbench and spec2000int performance data for branch cost tuning.
* Investigate how to do copy propagation for shrink-wrap to optimize
453.povray benchmark. Will reuse current codes in pass_cprop_hardreg.
Plans:
* Performance reports for branch cost tuning.
* Fix README issue (lp:1068402) in Linaro crosstool-ng.
Best regards!
-Zhenqiang
Hi all,
I am a rookie, and now I'm focusing on ARM virtualization. As we know,KVM (for Kernel-based Virtual Machine) is a full virtualization solution. KVM-Autotest is a set of virtualization tests for X86 platform, but it may not be suitable for ARM.I want to know, in the linaro , what tools can protect the KVM and qemu quality ? Thanks and Regards,Qun Chen
* usual set of meetings etc
* rebased qemu-linaro on upstream 1.3, rolled tarball for 2012.12;
Zhenqiang has tested it and it should be ready to go next week
* qemu arm patch catchup; pinging or resending some patches of
mine from before upstream freeze
* applied a set of boot-wrapper patches from tixy
* virtio patch code review: design definitely coming together now
KVM blueprint progress tracker (note new url):
http://cbuild.validation.linaro.org/helpers/backlog?group_by=topic&colour_b…
-- PMM
== Progress ==
* Turn off 64-bits bitos in Neon: Ping-ed patch proposal.
* Disable peeling: benchmarks show good results; sent a proposal
upstream to discuss preliminary implementation & needed testsuite
modifications.
* builtin_bswap16 backport to linaro-4.7: need to investigation an
unexpected regression reported for i686 target.
* Updated gdb linaro sources to 7.5.1, exercising the release process.
* Trying to bootstrap gcc-linaro/4.7 on board: need to retry with a
different rootfs distribution.
== Next ==
* handle 64-bits bitops in Neon and disable-peeling feedback from
upstream if any.
* finish builtin_bswap16 backport
== Blueprints ==
Initial Current Actual
initial-aarch64-backport 31 Oct 2012 14 Dec 2012
aarch64-baremetal-testing 31 Oct 2012 14 Dec 2012
fix-gcc-multiarch-testing 31 Dec 2012 31 Dec 2012
backport-fma-intrinsic 31 Dec 2012 31 Dec 2012
fused-multiply-add-support 31 Dec 2012 31 Dec 2012
gcc-investigate-lra-for-arm 31 Dec 2012 31 Dec 2012
== Progress ==
* Admin
* Interviewing
* Took over from Michael
* Preparation for taking over from Michael
* re-PINGed triplet backport patches upstream
* Patch review
* Initial thoughts about cards
== Next Week ==
* initial-aarch64-backport and aarch64-baremetal-testing
* Complete documentation
* gcc-investigate-lra-for-arm
* Analyse benchmarks
* Run HOT/COLD partitioning benchmarks
* Analyse ARM results
* On x86_64 to see what the actual benefit we could get
* fix-gcc-multiarch-testing
* Come up with strawman proposal for updating testsuite to handle
testing with varying command-line options.
== Future ==
* backport-fma-intrinsic & fused-multiply-add-support
* Backport patches once fix-gcc-multiarch-testing has been done.
--
Matthew Gretton-Dann
Linaro Toolchain Working Group
matthew.gretton-dann(a)linaro.org
Hi,
I am trying to compile UEFI code with linaro toolchain version:
# arm-linux-gnueabi-gcc --version
arm-linux-gnueabi-gcc (Ubuntu/Linaro 4.7.1-5ubuntu1~ppa1) 4.7.1
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
I got the erros as follows:
"/usr/bin/arm-linux-gnueabi-gcc" -mthumb -march=armv7-a
-I/home/shiva/workspace/arndale/edk2/SamsungPlatformPkg/ExynosPkg/Exynos5250/Include/Platform
-g -Os -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces
-Wno-array-bounds -c -include AutoGen.h -mword-relocations -mlittle-endian
-mabi=aapcs -mapcs -fno-short-enums -save-temps -fsigned-char
-ffunction-sections -fdata-sections -fomit-frame-pointer -Wno-address -O0
-o
/home/shiva/workspace/arndale/edk2/Build/Arndale-Exynos/DEBUG_ARMLINUXGCC/ARM/SamsungPlatformPkg/ExynosPkg/Exynos5250/Sec/Sec/OUTPUT/./Smc.obj
-I/home/shiva/workspace/arndale/edk2/SamsungPlatformPkg/ExynosPkg/Exynos5250/Sec
-I/home/shiva/workspace/arndale/edk2/Build/Arndale-Exynos/DEBUG_ARMLINUXGCC/ARM/SamsungPlatformPkg/ExynosPkg/Exynos5250/Sec/Sec/DEBUG
-I/home/shiva/workspace/arndale/edk2/MdePkg
-I/home/shiva/workspace/arndale/edk2/MdePkg/Include
-I/home/shiva/workspace/arndale/edk2/MdePkg/Include/Arm
-I/home/shiva/workspace/arndale/edk2/MdeModulePkg
-I/home/shiva/workspace/arndale/edk2/MdeModulePkg/Include
-I/home/shiva/workspace/arndale/edk2/ArmPkg
-I/home/shiva/workspace/arndale/edk2/ArmPkg/Include
-I/home/shiva/workspace/arndale/edk2/ArmPlatformPkg
-I/home/shiva/workspace/arndale/edk2/ArmPlatformPkg/Include
-I/home/shiva/workspace/arndale/edk2/SamsungPlatformPkg/ExynosPkg/Exynos5250
-I/home/shiva/workspace/arndale/edk2/SamsungPlatformPkg/ExynosPkg/Exynos5250/Include
/home/shiva/workspace/arndale/edk2/SamsungPlatformPkg/ExynosPkg/Exynos5250/Sec/Smc.c
Smc.s: Assembler messages:
Smc.s:51: Error: selected processor does not support Thumb mode `smc 0'
Is there any issue with the toolchain or any flags I am using?
--
Thanks and Regards,
Shiva.
I've done a couple of tweaks to the scheduler. You now see pending
jobs by the class of machine they'll run on. Clicking a job takes you
to the detail, which includes a link to drop/cancel the job.
-- Michael
All,
As I mentioned on Monday, due to new members of the team coming on
board I am going to rejig the meeting times from 18th December.
My proposal is as follows (all times UK Local - UTC+0h winter, UTC+1h summer):
0. These changes will come into effect the week commencing 18th December.
1. The weekly call will happen on a Monday, at 0930 and 1600. You
only need to make it to one instance of the call. For those who are
physically near each other arranging it so that both calls get
attended would be good and notes shared would be good.
2. The Stand-up call will happen on a Thursday, alternating between
0930 and 1600. This is 'best effort' - but please try to attend at
least every other week.
3. The performance call will go weekly, and will happen on a Thursday,
alternating between 0930 and 1600. If you are on the invite list to
this call again please try to attend at least every other week, but if
you can manage every week that would be great.
If you have any comments on these please can you raise them by the end
of the week as I would like to confirm what we are going to do at the
call on Monday (at the normal time of 0915UTC).
Thanks,
Matt
--
Matthew Gretton-Dann
Linaro Toolchain Working Group
matthew.gretton-dann(a)linaro.org
The minutes of the performance call held on 3 December 2012 can be found at:
https://wiki.linaro.org/WorkingGroups/ToolChain/Meetings/2012-12-03
In summary the actions from the meeting are:
* ACTION: Yvan will do the trunk merge this week
* ACTION: Yvan to do the GCC release next week
* ACTION: Christophe to do the GDB release branch merge
* ACTION: Matt volunteered Zhenqiang as the QEMU manual tester this month
* ACTION: Matt: want shrinkwrap to go upstream
* ACTION: Matt - Can blueprint improvements in shrink wrap past that
* ACTION: Matt to create a blueprint on aarch32 ARMv8 instructions in QEMU
* ACTION: Matt to decide if aarch32 ARMv8 instructions in QEMU needs a card
* ACTION: Christophe to send Michael cross build failures to investigate
Thanks,
-- Michael
== Progress ==
* Turn off 64-bits bitops in Neon: patch proposed upstream after
positive benchmarking.
Re-submitted after request to add testcases and documentation for
the new option.
* Disable peeling: running benchmarks with peeling completely disabled
to see the impact.
* PGO/hot-cold partitioning: tested new patch from google, which
solves some of the ICEs, but makes new ones appear.
* builtin_bswap16 backport to Linaro-4.7: checking if there would be a
possibility to keep the testcase which fails in one of our
configurations, after rebasing my branch.
* Trying to bootstrap gcc-linaro/4.7 on board
* Internal support
== Next ==
* Follow-up on 64-bits bitops in Neon
* Look at benchmarks results with peeling disabled
* finish builtin_bswap16 backport
Summary:
* Verify shrink-wrap related bugs.
* Validate and release Linaro toolchain binary 2012.11 release.
* Collect performance data for different branch costs.
Details:
* Validate and release Linaro toolchain binary 2012.11.
* Test aarch64 toolchain. All the basic tests PASS except gdbserver.
* Collect performance data for branch cost combination. For eembcv1,
some combinations have more than 2% performance improvement on
PandaBoard THUMB mode. More test results will come later.
* Verify shrink-wrap related bugs (http://goo.gl/6fGg5). All pass with
the new patch. Native tests are ongoing. Identify the root cause why
the copy, which blocks the shrink-wrap optimization for 453.povray
benchmark, is not optimized.
Plans:
* Finalize the aarch64 toolchain binary release plan.
* Collect performance data for branch cost tuning.
* Enhance shrink-wrap to optimize the copy.
Best regards!
-Zhenqiang
== Progress ==
* Boehm GC AArch64 support:
- Read wikis and papers on the memory model
- Reported an issue with the current ARMv7 atomic builtins
- Submitted the fix, which was approved
- Improving libatomic-ops AArch64 support with load-acquire/
store-release usage.
== Next ==
* Continue on the Boehm GC AArch64 support.
[Short week: 3 days]
* looked at (but failed to reproduce) a hang in QEMU reported
by Christoffer when shutting down a KVM ARM guest using TUN/TAP
networking
* investigated LP:1084148 (segfault in qemu usermode) sufficiently
to diagnose it as probably another of qemu's "can't handle
multithreaded guest programs" bugs
* fixed some problems with QEMU's secondary CPU boot code which
were masked by errors in QEMU's GIC model but revealed by
real hardware (ie KVM); fixed the GIC model bugs as well
* investigated LP:955379 (cmake hangs under qemu-arm-static).
Tracked down to a race condition involving signal delivery,
the fix to which would require the significant redesign I
sketched out here a year or so ago:
http://lists.gnu.org/archive/html/qemu-devel/2011-12/msg00384.html
KVM blueprint progress tracker:
http://ex.seabright.co.nz/helpers/backlog?group_by=topic&colour_by=state&pr…
-- PMM
== Blueprints ==
Initial Current Actual
initial-aarch64-backport 31 Oct 2012 7 Dec 2012*
aarch64-baremetal-testing 31 Oct 2012 7 Dec 2012*
fix-gcc-multiarch-testing 31 Dec 2012 31 Dec 2012
backport-fma-intrinsic 31 Dec 2012 31 Dec 2012
fused-multiply-add-support 31 Dec 2012 31 Dec 2012
gcc-investigate-lra-for-arm 31 Dec 2012 31 Dec 2012
== Progress ==
* Admin
* Interviewing
* Preparation for taking over from Michael
* Investigate patches for literal pool layout bug
* Applied
* PINGed triplet backport patches upstream
* Other bug issues
* Including an issue running SPEC2K on x86 with recent trunk
* And a 4.6 gcc-linaro only issue
== Next Week ==
* Start leading Toolchain team
* Run HOT/COLD partitioning benchmarks
* Analyse ARM results
* On x86_64 to see what the actual benefit we could get
* initial-aarch64-backport & aarch64-baremetal-testing
* Finish documentation
* gcc-investigate-lra-for-arm
* Analyse benchmarks
* fix-gcc-multiarch-testing
* Come up with strawman proposal for updating testsuite to handle
testing with varying command-line options.
== Future ==
* backport-fma-intrinsic & fused-multiply-add-support
* Backport patches once fix-gcc-multiarch-testing has been done.
== Planned Leave ==
* Monday 24 December - Monday 31 December
--
Matthew Gretton-Dann
Linaro Toolchain Working Group
matthew.gretton-dann(a)linaro.org
Hi,
I think I have identified some issues with the atomic builtins, but I want
your advises.
For instance :
A: __atomic_store_n (addr, val, __ATOMIC_SEQ_CST);
gives the armv7 code:
DMB sy
STR r1, [r0]
DMB sy
but if I have well understood, the DMBs instructions only provide the
property that the
code is sequentially consistent, but not the atomicity for which we have to
use the
LDREX/STREX instructions. Thus I think that the code should be :
DMB sy
1: LDREX r2, [r0]
STREX r1, r2, [r0]
TEQ r1, #0
BNE 1b
B: __atomic_load_n (addr, __ATOMIC_ACQUIRE);
gives the armv7 code:
DMB sy
LDR r0, [r0]
but the load-acquire semantique specifies that all loads and stores
appearing in program order
after the load-acquire will be observed after the load-acquire, thus the
DMB should be after the
LDR, no ?
--
Yvan
Hi,
I'm working on the libatomic-ops (part of the Boehm gc) AArch64 support,
I mainly use GCC's __atomic builtins to do this, but in our 4.7 version
they don't use the load acquire / store release instructions now available
in the ARMv8 ISA. These instructions are used in the mainline GCC
(in atomic.md) but not in their exclusive form, I understand that it should
be due to the performance penalty, but I want your feeling on that point
as I don't find the ARMv8 ISA really clear.
If we want to implement an atomic load acquire, is
LDAR x1, [x0]
sufficient, or do we have to write it like that :
L: LDAXR x0, [x3]
STEX x1, x0, [x3]
CBZ x0, L1
Thanks
Yvan
All,
[Editiorial: Michael & I discussed making what we do as a working
group more visible at Connect. One thing we discussed was making our
meeting minutes more visible by emailing actions out after each
meeting. This will be part of the job of the 'minuter' - a job I plan
to spread around as I am useless at it whilst also running a call -
more info on the Wiki:
https://wiki.linaro.org/WorkingGroups/ToolChain/Meetings]
The minutes of the performance call held on 27 November 2012 can be found at:
https://wiki.linaro.org/WorkingGroups/ToolChain/Meetings/2012-11-27
In summary the actions from the meting are:
* mgrettondann split LRA blueprint
* Christophe to update Hot/Cold partitioning bugzilla
* mgrettondann: benchmark on Hold/Cold partitioning
* Michael to log a ticket to improve reporting of benchmarks when the
run complete.
* Ramana to log EEMBC failure with Hot/Cold partitioning into bugzilla.
* Christophe to backport bswap16 builtin, except for the testcase
which fails in one of our configurations (Thumb1 + hard FP ABI)
The next performance call will be on 11 December 2012 and the agenda
can be found at:
https://wiki.linaro.org/WorkingGroups/ToolChain/Meetings/2012-12-11
Thanks,
Matt
--
Matthew Gretton-Dann
Linaro Toolchain Working Group
matthew.gretton-dann(a)linaro.org
The Linaro Toolchain Working Group is pleased to announce the 2012.11
release of the Linaro Toolchain Binaries, a pre-built version of
Linaro GCC and Linaro GDB that runs on generic Linux or Windows and
targets the glibc Linaro Evaluation Build.
Uses include:
* Cross compiling ARM applications from your laptop
* Remote debugging
* Build the Linux kernel for your board
What's included:
* Linaro GCC 4.7 2012.11
* Linaro GDB 7.5 2012.09
* A statically linked gdbserver
* A system root
* Manuals under share/doc/
The system root contains the basic header files and libraries to link
your programs against.
The Linux version is supported on Ubuntu 10.04.3 and 12.04, Debian
6.0.2, Fedora 16, openSUSE 12.1, Red Hat Enterprise Linux Workstation
5.7 and later, and should run on any Linux Standard Base 3.0
compatible distribution. Please see the README about running on
x86_64 hosts.
The Windows version is supported on Windows XP Pro SP3, Windows Vista
Business SP2, and Windows 7 Pro SP1.
The binaries and build scripts are available from:
https://launchpad.net/linaro-toolchain-binaries/trunk/2012.11
Need help? Ask a question on https://ask.linaro.org/
Already on Launchpad? Submit a bug at
https://bugs.launchpad.net/linaro-toolchain-binaries
On IRC? See us on #linaro on Freenode.
Other ways that you can contact us or get involved are listed at
https://wiki.linaro.org/GettingInvolved.
Summary:
* Investigate shrink-wrap result.
* Prepare for Linaro toolchain binary release, script merge and aarch64 test.
Details:
1. Investigate shrink-wrap result of function Ray_In_Bound. By
default, ARM/MIPS/PPC/X86 toolchain can not shrink-wrap the function.
For ARM, there is copy "r6 = r1" which blocks the optimization. By
hacking the assemble code, I got ~3% performance improvement for
453.povray benchmark.
2. Setup AARCH64 simulation environment by following
http://www.linaro.org/engineering/armv8.
3. Write scripts to collect branch cost performance. It will take
weeks to get all the benchmark results.
4. Smoke test Linaro toolchain binaries 2012.11 release.
5. Try export crosstool-ng trunk to a bzr project. bzr fast-import
always fail on Ubuntu 10.04, but it works on 12.04.
6. RM toolchain related work.
Plans:
* Collect performance data for branch cost tuning.
* Linaro binary toolchain 2012.11 release.
* Verify shrink-wrap bugs.
Best regards!
-Zhenqiang
== Progress ==
* Turn off 64-bits bitops in Neon: initial implementation under
benchmarking.
Currently it modifies the handling of: add, sub, and, or, xor, shifts,
not. In some case the generated code is quite larger, so it will careful
benchmarking.
* Started looking at "disable peeling" blue-print. Reading GCC source code
to get more familiar with that area.
* Internal support
== Blueprints ==
Initial Current Actual
initial-aarch64-backport 31 Oct 2012 30 Nov 2012
aarch64-baremetal-testing 31 Oct 2012 30 Nov 2012
fix-gcc-multiarch-testing 31 Dec 2012 31 Dec 2012
backport-fma-intrinsic 31 Dec 2012 31 Dec 2012
fused-multiply-add-support 31 Dec 2012 31 Dec 2012
gcc-investigate-lra-for-arm 31 Dec 2012 31 Dec 2012
== Progress ==
* Admin
* Interviewing
* Investigate patches for literal pool layout bug
* Took longer than expected as the 'simple' fix is wrong due to GCC not
knowing how large instructions actually are.
* Patch posted upstream
* Post triplet backport patches upstream
* Other bug issues
* Including an issue running SPEC2K on x86 with recent trunk
== Next Week ==
* Run HOT/COLD partitioning benchmarks
* Analyse ARM results
* On x86_64 to see what the actual benefit we could get
* initial-aarch64-backport & aarch64-baremetal-testing
* Finish documentation
* gcc-investigate-lra-for-arm
* Analyse benchmarks
* fix-gcc-multiarch-testing
* Come up with strawman proposal for updating testsuite to handle
testing with varying command-line options.
== Future ==
* backport-fma-intrinsic & fused-multiply-add-support
* Backport patches once fix-gcc-multiarch-testing has been done.
--
Matthew Gretton-Dann
Linaro Toolchain Working Group
matthew.gretton-dann(a)linaro.org
Hi,
I try ARM, MIPS, PowerPC and X86 on povray benchmark. No one can
shrink-wrap function Ray_In_Bound.
Here is:
bool Ray_In_Bound (RAY *Ray, OBJECT *Bounding_Object)
{
...
for (Bound = Bounding_Object; Bound != NULL; Bound = Bound->Sibling)
{...}
return (true);
}
For ARM O2/O3, "Bound" is allocated to "r6" during ira. So there is copy
r6 = r1 before
testing Bound != NULL
The copy (using r6) blocks the shrink-wrap optimization since r6
should be saved. Need enhance shrink-wrap to handle this case.
Overall, for povray benchmark,
54 functions are shrink-wrapped for ARM;
59 functions are shrink-wrapped for X86;
25 functions are shrink-wrapped for MIPS;
26 functions are shrink-wrapped for PowerPC.
Thanks!
-Zhenqiang
On 15 November 2012 01:58, 남관우 <kw46.nam(a)samsung.com> wrote:
>
> Hi,
>
>
>
> As your guide, i tried to build again.
>
>
>
> without : -mapcs -fno-common -fstack-protector --param==ssp=buffer-size=4
>
>
> and -fPIC instead of -fpic
>
>
>
> But it is failed with same the message. (/usr/lib/libnfc-common-lib.so.1: unexpected reloc type 0x03)
>
>
>
> Thank you,
>
> Kwanwoo Nam.
>
>
>
> ------- Original Message -------
>
> Sender : 남관우<kw46.nam(a)samsung.com> S4(선임)/선임/SLP개발그룹(무선)/삼성전자
>
> Date : 2012-11-14 21:45 (GMT+09:00)
>
> Title : Re: Re: Re: unexpected reloc type 0x03 error with gcc-4.6.4 (2012.10 version)
>
>
>
> Hi,
>
>
>
> Here is our LDFLAGS.
>
> -Wl,--rpath=/usr/lib -Wl,--as-needed
>
>
>
> And i try to build with your guide.
>
> without : -mapcs -fno-common
> and -fPIC instead of -fpic
>
>
>
> But it is failed with same the message. (/usr/lib/libnfc-common-lib.so.1: unexpected reloc type 0x03)
Ta. I'm afraid we don't have enough information to solve this.
Could you please send a full build log and we can go from there.
gzipped on a public server is best.
-- Michael
== Blueprints ==
Initial Current Actual
initial-aarch64-backport 31 Oct 2012 30 Nov 2012
aarch64-baremetal-testing 31 Oct 2012 30 Nov 2012
fix-gcc-multiarch-testing 31 Dec 2012 31 Dec 2012
backport-fma-intrinsic 31 Dec 2012 31 Dec 2012
fused-multiply-add-support 31 Dec 2012 31 Dec 2012
gcc-investigate-lra-for-arm 31 Dec 2012 31 Dec 2012
== Progress ==
* Admin
* Interviewing
* Hand over prep with Michael
* Release Week
* Made 2012.11 releases of gcc-linaro 4.6 and 4.7.
* LEG interations:
* Investigated CILK+ and how much work to port to AArch64.
* HOT/COLD partitioning
* Ran benchmarks on ARM
* LRA
* Ran x86-64 benchmarks
== Next Week ==
* Investigate patches for literal pool layout bug
* Post triplet backport patches upstream
* Run HOT/COLD partitioning benchmarks
* Analyse ARM results
* On x86_64 to see what the actual benefit we could get
* initial-aarch64-backport & aarch64-baremetal-testing
* Finish documentation
* gcc-investigate-lra-for-arm
* Analyse benchmarks
* fix-gcc-multiarch-testing
* Come up with strawman proposal for updating testsuite to handle
testing with varying command-line options.
== Future ==
* backport-fma-intrinsic & fused-multiply-add-support
* Backport patches once fix-gcc-multiarch-testing has been done.
--
Matthew Gretton-Dann
Linaro Toolchain Working Group
matthew.gretton-dann(a)linaro.org
== Progress ==
* Infrastructure:
- Managed to have my laptop re-installed by IT with a native Ubuntu 12.04,
(as a beta tester).
- Re-setup my working environment.
* GCC release process familiarization.
* Boehm GC AArch64 support:
- Resume libatomic-ops work.
* Some internal support
== Next ==
* Continue on the Boehm GC AArch64 support.
== Progress ==
* Started working on "Turn off 64 bits Bitops in Neon in GCC" blueprint.
* branch review for aarch64-4.7 merge.
A lot of time wasted due network instability making it difficult to
checkout a GCC branch from launchpad/bzr.
* Internal support for infrastructure problems.
* Resumed discussions with our internal IT and Christian Bejram to try to
decrease our constraints.
The Linaro Toolchain Working Group is pleased to announce the 2012.11
release of both Linaro GCC 4.7 and Linaro GCC 4.6.
Linaro GCC 4.7 2012.11 is the eigth release in the 4.7 series. Based
off the latest GCC 4.7.2+svn193200 release, it includes ARM-focused
performance improvements and bug fixes.
Interesting changes include:
* Updates to GCC 4.7.2+svn193200
* Also includes arm/aarch64-4.7-branch up to svn revision 193328.
Fixes:
* LP #1065122
* LP #1065559
* LP #1067760
Linaro GCC 4.6 2012.11 is the 21st release in the 4.6 series. Based
off the latest GCC 4.6.3+svn193199 release, this is the eigth release
after entering maintenance.
Interesting changes include:
* Updates to 4.6.3+svn193199
The source tarballs are available from:
https://launchpad.net/gcc-linaro/+milestone/4.7-2012.11https://launchpad.net/gcc-linaro/+milestone/4.6-2012.11
Downloads are available from the Linaro GCC page on Launchpad:
https://launchpad.net/gcc-linaro
More information on the features and issues are available from the
release pages:
https://launchpad.net/gcc-linaro/4.7/4.7-2012.11https://launchpad.net/gcc-linaro/4.6/4.6-2012.11
Mailing list: http://lists.linaro.org/mailman/listinfo/linaro-toolchain
Bugs: https://bugs.launchpad.net/gcc-linaro/
Questions? https://ask.linaro.org/
Interested in commercial support? Inquire at support(a)linaro.org
--
Matthew Gretton-Dann
Linaro Toolchain Working Group
matthew.gretton-dann(a)linaro.org
Hi,
I've encountered a case where gcc produces a broken program: a branch that should never be taken is taken, and wrong values are written to memory (and printed out).
The code is fairly ordinary and small. It can be seen here: http://pastebin.com/0Hspz8mw
This happens when -funroll-loops flag is used in conjunction with -O2 or -O3. It doesn't seem to happen when it is used with -O1.
Another few things that influences the program flow from from incorrect to correct run (gives expected outpus) are:
- Adding/removing printf's inside the inner loop
- Changing the order of the expressions in the "if" clause. i.e. from this:
if ((y < mu) || (y >= H - md) ||
(x < ml) || (x >= W - mr))
to this:
if ((x < ml) || (y >= H - md) ||
(y < mu) || (x >= W - mr))
- Assigning ml inside f() to the same value (3) it's getting from the function arguments.
All of these shouldn't change how the program behaves but it does.
I compiled this with two different compilers/environments:
1. g++ (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3, running on 3.2.1-42-linaro-lt-mx6 (native compilation on the ARM board)
Compilation command:
g++ -march=armv7-a -mfpu=neon -mfloat-abi=hard -mtune=cortex-a9 -O3 -std=c++0x -funroll-loops -o test_bug_sa_loops_linaro test_bug.cxx
2. arm-fsl-linux-gnueabi-g++ (Freescale MAD -- Linaro 2011.07 -- Built at 2011/08/10 09:20) 4.6.2 20110630 (prerelease)
Running on a freescale LTIB built linux (3.0.15-1359-g1b64ead)
Compilation command:
arm-fsl-linux-gnueabi-g++ -march=armv7-a -mfpu=neon -mfloat-abi=hard -mtune=cortex-a9 -O3 -std=c++0x -funroll-loops -o test_bug_sa_loops test_bug.cxx
In all the variations I tried it seems that -funroll-loops is critical for this problem to appear.
I'd be glad to hear some comments on this.
Mickey.
This mail was sent via Mail-SeCure system.
On 10 November 2012 05:11, "Frank Müller" <franky1976(a)gmx.net> wrote:
> Michael Hope <michael.hope(a)linaro.org>:
>> My suspicion is that we/crosstool-NG enable extra features like
>> Graphite or GCC is built with a different level of checking. If you
>
> I suspected Graphite as well and removed it in my own builds without noticable difference.
>
>> have the time, could you check the flags passed to GCCs configure?
>> You can do this on Ubuntu using:
>>
>> apt-get build-dep gcc
>> apt-get source gcc
>> dpkg-buildpackage -uc -us -b
>>
>> and compare the configure line with the one in crosstool-NG's build.log.
>
> Isn't this the same as gcc -v? I've posted the lines at http://lists.linaro.org/pipermail/linaro-toolchain/2012-October/002913.html
Good point. There's nothing obvious in the list. Ubuntu explicitly
adds --enable-checking=release but it's the default for release
branches like ours.
I can reproduce the slowdown in a smaller testcase. Compiling pcre
with -O3 -mfpu=neon -march=armv7-a -mtune=cortex-a8 takes 18.8 s for
the Ubuntu Precise 4.6 compiler, 17.8 s for the Ubuntu Quantal 4.7
compiler, and 41.2 s for the Linaro 4.7 2012.10 build. I've logged
LP: #1077739 to track. I'll spin a --enable-checking=release build
just to check.
> The above lines do not work for me, the last line misses a changelog file:
>
> # dpkg-buildpackage -uc -us -b
> tail: cannot open `debian/changelog' for reading: No such file or directory
> dpkg-buildpackage: error: tail of debian/changelog gave error exit status 1
Yip, you need to change to the just-extracted source directory first.
-- Michael
On 14 November 2012 00:48, 남관우 <kw46.nam(a)samsung.com> wrote:
>
> Hi,
>
>
>
> First, our CFLAGS is here.
>
>
>
> -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Wl,--as-needed
> -fmessage-length=0 -march=armv7-a -mtune=cortex-a8 -mfpu=vfpv3-d16 -mfloat-abi=hard -mthumb -Wa,-mimplicit-it=thumb
> -mapcs -mno-sched-prolog -mabi=aapcs-linux -Uarm -fno-common -fpic
>
>
>
> It was occurred with the message. (/usr/lib/libnfc-common-lib.so.1: unexpected reloc type 0x03)
>
>
>
> Second,
>
> -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Wl,--as-needed
> -fmessage-length=0 -march=armv7-a -mtune=cortex-a8 -mfpu=vfpv3-d16 -mfloat-abi=hard -mthumb -Wa,-mimplicit-it=thumb
> -mapcs -mno-sched-prolog -fno-common -fpic
>
>
>
> It was occurred too. (/usr/lib/libnfc-common-lib.so.1: unexpected reloc type 0x03)
Hi there. I don't know the cause but I'm suspicious of a few things.
Could you try the following builds?
The most likely:
* Without -mapcs
* Without -fstack-protector --param=ssp-buffer-size=4
Less likely:
* Without -fno-common
* With -fPIC instead of -fpic (should make no difference on ARM)
Could you also send through the linker command line? It would be
great to get a full log up on pastebin or similar.
-- Michael
Hi Michael,
Recently I tested the linaro toolchain gcc-4.6 version and try to
build our codes.
it's okay to compile the codes, but when launching the binary it
occures following messages.
/usr/lib/libnfc-common-lib.so.1: unexpected reloc type 0x03
I tested it both "hard float" and "soft float". the result is same.
do you have any clues?
Test environment:
toolchain: gcc-4.6.4 (2012.10 version) soft float option.
Thank you,
Kyungmin Park
hi,
I use beaglebone ,and the CPU is AM3359 from TI
can I use the linaro toolchain to the u-Boot linux kernel and android files?if I can ,which tool chain you suggest you use.
other question, your android realese file also can use my CPU(AM3359),Can I build image and download to my SD and run it?
thanks for your reply.
zhangzhangwei
2012-11-09
== Progress ==
* Watched some Connect sessions (ARMv8, GCC performance)
* AArch64 GDB support testing and backport investigation:
- Activities blocked until patches with the pthread interface update
are ready.
* Boehm GC AArch64 support:
- Read documentation on the garbage collector and ARMv8.
- Asked for advices to the maintainers.
- Started to port the libatomic_ops.
== Next ==
* Continue on the Boehm GC AArch64 support.
* Attended LinuxCon Europe / ELC-Europe / QEMU Summit / KVM Forum
(an overlapping set of conferences across a week in Barcelona)
LCE/ELC: brief summary of interesting sessions (I've only listed
ones which seem most relevant to ARM just to keep the length of this
report down):
* "Devicetree and its stumbling blocks" -- a view from a kernel
developer perspective of some of the issues with doing platform
data to dt conversions: (a) dt is supposedly OS independent and
an external ABI, implying more need for cleanliness and long term
supportable interfaces. (b) conversions imply a need to generalise
bindings to be usable across many devices (c) what do we do about
configuration / policy choices?
My take is that the kernel folks are tying themselves in knots
to try to preserve the (somewhat fictional in practice) idea that
any kernel will work with any older device tree blob and they'd
find it easier if they declared an amnesty for breaking changes
before some deadline date...
* Developing and testing industrial hardware with QEMU
Rather than developing/testing sw against expensive/limited
availability hw, use a model -- easier automation, ability to
simulate error conditions, etc. If your hardware is basically
a PCI card in an x86 box QEMU's fairly easy to use for this.
* UEFI Secure Boot
A summary of the current status of UEFI Secure Boot: it's mandatory
for Win8 hardware; Linux implication is that we need to be able to
maintain simple "out of box boot off distro CD"; optionally, if we
have end-to-end signed binaries we have access to environments which
will end up mandating it (read: government). Fortunately people
have come together to tackle this and it looks like we're in good shape.
http://mjg59.dreamwidth.org/18945.html is a good summary.
* Kernel report by Jonathon Corbet
ARM featured fairly prominently in this stats-driven roundup:
64-bit ARM support was first listed bullet point for 3.7 features
Pointed out that Linaro and other embedded-ARM kernel contributions
are notably up, ARM mess has been cleaned up.
KVM Forum:
* Concurrency in QEMU
Plans for splitting QEMU's "big lock" into finer grained mutexes;
should improve I/O scalability for KVM guests and realtime guest
latency. However some tricky locking design issues to be solved.
I am as usual sticking my oar in occasionally to remind people that
the world is not solely x86-and-PCI...
* qtest
A summary of QEMU's new qtest framework, how it works and how to
write tests. We're going to start insisting on test cases for new
patches, so I need to write some basic tests for a few ARM devices
so I know how it works :-)
* ARM Virtualization for the Masses
Christoffer Dall's talk introducing the ARM virt. extensions and KVM
work. Well received, various questions afterwards (some elements of
"why doesn't this work the way the x86 stuff does", also lots of
"does this work on the Samsung/Google Chromebook" :-))
QEMU Summit:
* This was an invite-only afternoon with perhaps 20 or so of the
main QEMU contributors; broadly focused on "process" issues like
release management, patch flow and security bug handling. Productive
session; minutes should be available on the QEMU mailing list shortly.
This is likely to be repeated next year.
Informal discussions (IME the most important and worthwhile part):
* virtio related : ran through current status of virtio-mmio patches
with Anthony Liguori and Alex Graf, confirmed what changes we need
to make and what the next steps with this should be. Some enthusiasm
for getting this patchset in in the early part of the QEMU 1.4
release if we can. I'm really happy that we've unblocked this bit of
work which had stalled slightly trying to figure out the right approach.
Long term we will probably end up using virtio-pci on ARM but this
is really dependent on hardware with good PCI support appearing.
* SystemC : the upstream community is not currently interested in
SystemC support, but there is some work on the QEMU core which would
be a useful cleanup for QEMU itself and also useful for the SystemC
folk. I'm hopeful that this might help to bring people working with
QEMU in SystemC closer to the "QEMU upstream" community and mailing
list, but it will be a gradual process both socially and technically
if it does happen.
* an informal enquiry about whether system emulation of virt. mode
in ARM was planned or how much work it would be
* in-kernel-irqchip: common ABI cross architecture
the current ABI is a bit x86-specific, useful discussion about
what POWER/S390/ARM would need. There will probably be some more
ioctls coming along but the good news is that what the KVM ARM
patches have currently fits into the proposals with only a very
trivial tweak; we can add support for the new ioctls later if
they are useful for us.
-- PMM
== Blueprints ==
Initial Current Actual
initial-aarch64-backport 31 Oct 2012 30 Nov 2012
aarch64-baremetal-testing 31 Oct 2012 30 Nov 2012
fix-gcc-multiarch-testing 31 Dec 2012 31 Dec 2012
backport-fma-intrinsic 31 Dec 2012 31 Dec 2012
fused-multiply-add-support 31 Dec 2012 31 Dec 2012
gcc-investigate-lra-for-arm 31 Dec 2012 31 Dec 2012
== Progress ==
* Returned from Connect and followed up.
* Updated performance blueprints for next iteration
* Backporting Doko's triplet patches to 4.7
* Patches ready except for problems building Ada
* HOT/COLD partitioning
* Rebuilt with TBB/TBH disabled always
* Started investigated LRA for ARM
== Next Week ==
* Post triplet backport patches upstream
* Run HOT/COLD partitioning benchmarks
* On ARM to see if TBB/TBH is making the difference previously seen
* On x86_64 to see what the actual benefit we could get
* initial-aarch64-backport & aarch64-baremetal-testing
* Finish documentation
* gcc-investigate-lra-for-arm
* Benchmark on x86_64 to see what the benfit could be.
* fix-gcc-multiarch-testing
* Come up with strawman proposal for updating testsuite to handle
testing with varying command-line options.
== Future ==
* backport-fma-intrinsic & fused-multiply-add-support
* Backport patches once fix-gcc-multiarch-testing has been done.
--
Matthew Gretton-Dann
Linaro Toolchain Working Group
matthew.gretton-dann(a)linaro.org
Dear all,
we have an ARM Cortex-A8 board where we are running our application. I am in charge of maintaining the Linux on it and the toolchain/SDK setup. So far we've been running Poky/OpenEmbedded and using the cross compiler that came about during the compilation.
For easier maintenance, we are now switching to Linaro. The image is set up and I can compile, however I notice a peculiar fact: the binary distribution of Linaro's gcc (https://launchpad.net/linaro-toolchain-binaries/trunk/2012.10/+download/gcc…) has a significantly larger compilation speed than a version of arm-linux-gnueabihf-gcc that is shipping with Ubuntu. In our particular case, using Ubuntu's version it takes less than 6 minutes to compile our software, but 10 minutes when we use Linaro's version. The makefiles and source are exactly the same, only the compiler is different. I also tried an older version (4.6) of Linaro's gcc to match the Ubuntu one (tested the 12.04 shipped version), with no significant difference.
Compiler flags for the system are -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=hard
Running with -ftime-report, most of the additional time seems to be spent in the parser. Adding -fno-graphite-identity -fno-graphite for Linaro's gcc did not make a difference.
I believe I tried to use crosstool-ng to make my own version, but I don't remember the results as this was over 7 weeks ago. I also did not have a chance to compare performance of the binaries. I do notice a difference in compilation sizes (4.8 MB for Ubuntu's 4.6 version, 4.1 MB for Linaro's 4.7 versions - can't test anything other right now).
I would like to use Linaro's gcc as the crosscompiler for our project, as it is an easy setup. Repackaging Ubuntu's version is an option, though (some of the team do not use Ubuntu, plus I'd like everybody to use EXACTLY the same version of the crosscompiler). So there is no real "problem" for me, per se, but I am extremely curious as to what is going on here. It seems that Linaro's gcc has additional patches or maybe just different default settings that cause additional time to be spent in the parser. It would be interesting to know what exactly this is and whether/how it can be disabled in those cases where time of compilation is more important than e.g. performance gain.
TIA for replying.
Best
Frank
* Attended Linaro Connect; notable sessions:
+ Ubuntu plans for QEMU for Ringtail release
= upstream qemu has merged qemu-kvm back in so
Ubuntu will switch to qemu from qemu-kvm for x86
= also makes sense now to use upstream qemu for all archs
(following Debian) rather than using qemu-linaro for non-x86:
reasons for using q-l in Ubuntu now mostly fixed (ie upstream
ARM support no longer dire). Ubuntu will carry omap3 patches
to avoid dropping that feature in the changeover
= makes sense for Linaro too as we now have an automated
package-to-PPA setup for people who need bleeding-edge and
also will want Ubuntu to transition to a more stably released
and supported QEMU codebase to use for KVM-on-ARM-servers
+ KVM Testing plans
= worked through a list of things that would be nice to test;
useful feedback from people in the session about what matters.
Missing: specific commitment by anybody to write tests :-)
+ various informal discussions about possibilities for v8 QEMU
* this week: at LinuxCon Europe / ELC-Europe / KVM-Forum / QEMU Summit
-- PMM
Hi toolchain people,
I've gone through and massaged our meetings and 1-on-1s to handle the
recent daylight savings changes. Most meetings now start at 9:15 am GMT
and 1-on-1s are packed before them if possible.
Let me know if I should massage them further,
-- Michael
== Progress ==
* Attended Linaro Connect
* Worked out focus for performance in next iteration:
* Cortex-A15
* Other discussions on:
* Transitioning from cbuild->LAVA
* ARMv8 GNU Tools support
* big.LITTLE Toolchain tuning
== Next Week ==
* Backport Doko's configury changes for arm-none-linux-gnueabihf support
* Remerge HOT/COLD partitioning to test like for like (TBB generation)
* Benchmark LRA vs Reload on x86 and x86-64
* Write up strawman for non-multitest testing in GCC
== Future ==
* Decide whether the effort to develop HOT/COLD partitioning is worth it.
* Support LRA on ARM.
* Attend Connect in Hong Kong...
--
Matthew Gretton-Dann
Linaro Toolchain Working Group
matthew.gretton-dann(a)linaro.org
Dear All,
We have ARM cross compiler, and building our code. we got below error.
we have GCC Linaro 4.6.4.
arm-linux-gnueabi/bin/ld: DIV usage mismatch between
/home/Release/libasm.a(Blt32_Neon.o) and /home/Release/liblayer.so
arm-linux-gnueabi/bin/ld: failed to merge target specific data of file
/home/Release/libasm.a(Blt32_Neon.o)
is it related to below link ?
http://sourceware.org/ml/binutils/2012-03/msg00211.html
thanks
Hi,
here's some patches for gcc-linaro to make it work with
--host=arm-linux-androideabi
They're the quick and dirty thing to do and look like they could have
been written by Microsoft, needed something working in time for
Connect ;)
gcc-4.7-android-workarounds.patch: Workarounds for things that go
wrong, but where the true cause is yet to be determined (e.g. why
would configure think we have fread_unlocked and friends when we
don't?)
gcc-4.7-libitm-android.patch: Workaround for Bionic not knowing Elf32_auxv_t
gcc-4.7-no-unneeded-multilib.patch: Get the multilib config in sync
with regular Linux
gcc-4.7-stlport.patch: Use stlport instead of libstdc++ (yes, this
sucks - but it's what Android decided to do). Still needs to link
libstdc++ because Bionic contains a libstdc++.so (but it's more like a
libsupc++ - no STL there, but needed for stlport to work).
ttyl
bero
== Progress ==
* HOT/COLD partitioning for PGO
* Initial look at results
* Patch Tracking & Backporting
* Testing Doko's configury changes for arm-none-linux-gnueabihf support
* Connect Prep
* LRA Investigations
* Sign/zero extension II
== Next Week ==
* Linaro Connect
== Future ==
* Attend Connect
* HOT/COLD partitioning for PGO:
* Get two current patches accepted upstream
* Post question upstream about register allocation 'mistakes' I am seeing
--
Matthew Gretton-Dann
Linaro Toolchain Working Group
matthew.gretton-dann(a)linaro.org
Summary:
* Validate and release Linaro binary toolchain 2012.10
* Test
Details:
1. Release Linaro binary toolchain 2012.10
* Fix windows installer issue due to version format change.
* Validate and release Linaro binary toolchain 2012.10.
2. Identify the root cause of PR 54902 (lp:1065559), and Richard
Biener fixed it.
3. Enable SPEC2006 test. Testing is ongoing.
Planed Leaves:
* Nov. 5-7: Off site teambuilding event.
* Nov. 9, 12-13: Annual leaves
Plans:
* Performance test for shrink-wrap.
Best regards!
-Zhenqiang
== track-kvm-abi-changes ==
* updated qemu patches to match Christoffer's v13 tree, committed
all fixes suggested in previous round of code review, rebased
and sent RFC v3 of the QEMU KVM/ARM support patches
== other ==
* rebased qemu-linaro on master; found and fixed a bug which
meant that beagle models crashed when the kernel tried to touch
the USB-OHCI device
* submitted some minor QEMU cleanup patches (last lot of stuff
before softfreeze next week, I expect)
* usual upstream review/etc
* started to look at virtio-mmio patches
* prep for Linaro Connect next week
KVM blueprint progress tracker:
http://ex.seabright.co.nz/helpers/backlog?group_by=topic&colour_by=state&pr…
-- PMM
== Progress ==
* Aarch64 GDB support testing:
- Ran the GDB testsuite via gdbserver on x86
- Made a board file to run against the model
- Tried debugging a simple hello world via gdbserver:
It fails while loading the image, because of a mismatch between
kernel and GDB ptrace interface.
* Aarch64 GDB backport investigation:
- Backported to the Linaro GDB 7.5 release.
- Discussed with ARM people the ptrace issue.
== Next ==
* On vacation.
The Linaro Toolchain Working Group is pleased to announce the 2012.10
release of the Linaro Toolchain Binaries, a pre-built version of
Linaro GCC and Linaro GDB that runs on generic Linux or Windows and
targets the glibc Linaro Evaluation Build.
Uses include:
* Cross compiling ARM applications from your laptop
* Remote debugging
* Build the Linux kernel for your board
What's included:
* Linaro GCC 4.7 2012.10
* Linaro GDB 7.5 2012.09
* A statically linked gdbserver
* A system root
* Manuals under share/doc/
The system root contains the basic header files and libraries to link
your programs against.
The Linux version is supported on Ubuntu 10.04.3 and 12.04, Debian
6.0.2, Fedora 16, openSUSE 12.1, Red Hat Enterprise Linux Workstation
5.7 and later, and should run on any Linux Standard Base 3.0
compatible distribution. Please see the README about running on
x86_64 hosts.
The Windows version is supported on Windows XP Pro SP3, Windows Vista
Business SP2, and Windows 7 Pro SP1.
The binaries and build scripts are available from:
https://launchpad.net/linaro-toolchain-binaries/trunk/2012.10
Need help? Ask a question on https://ask.linaro.org/
Already on Launchpad? Submit a bug at
https://bugs.launchpad.net/linaro-toolchain-binaries
On IRC? See us on #linaro on Freenode.
Other ways that you can contact us or get involved are listed at
https://wiki.linaro.org/GettingInvolved.
Hi All,
I wanted to see the difference in objdump of an application where I can
make the difference between the VFPV3 and VFPV4 support. I tried enabling
the flag -mfpu=vfpv3 and -mfpu=vfpv4 for ARM Cortex A15 toolchain in my
test code but cannot see the difference in two objdumps.
According to my survey, the fused multiply and accumulate is the only
instruction that can create the difference in two. Can any one provide the
sample test code for the same? Precisely, I wish to see the difference in
performance for vfpv3 and vfpv4.
Looking forward to your reply.
Thanks and Regards,
Jubi
Summary:
* Linaro bug analysis
* Validation
Details:
1. Linaro bug analysis:
* lp:1065122: Triaged. A fix patch was committed to 4.7 and trunk.
* lp:1065559: Confirmed. Need more investigation to find the root cause.
* lP:1065509: Can not reproduce it with the latest Linaro toolchain.
* lp:1066095: Investigate and invalid it since the reporter can not
reproduce it now.
2. Bug fix and smoke test for Linaro binary toolchain 2012.10 release.
3. Clean up shrink-wrap related patches and send to Linaro mail-list for review.
Plans:
* Linaro binary toolchain 2012.10 release.
* Shrink-wrap performance test.
Planed leave:
* Oct. 26
Best regards!
-Zhenqiang
== Progress ==
* Read wikis on OpenEmbedded and FastModel
* Aarch64 GDB support testing :
- Managed to run OE rootfs and kernel under FastModel
- Configured the ssh/scp access to the model
* Aarch64 GDB backport investigation :
- Discussed with ARM the port and plans
- Identified upstream patches
== Next ==
* Continue on Aarch64 GDB.
Short week (two days):
== other ==
* implemented QEMU patches to track and tell the kernel where the
various bits of the VGIC should be mapped in the address space;
however these seem to cause the host kernel to Oops...
* added a log message category for "guest just did something that's
probably a bug in the guest", so we can use it instead of random
printf/aborting QEMU
* generate inline code for Neon 64 bit negate and 32 bit abs,
rather than calling helper functions
* updated and resent new versions of some minor cleanup patches
which had got lost/obsoleted by QEMU internals changes
KVM blueprint progress tracker:
http://ex.seabright.co.nz/helpers/backlog?group_by=topic&colour_by=state&pr…
-- PMM
== Progress ==
* HOT/COLD partitioning for PGO
* Submitted merge request for current changes so that we can
benchmark and see how much benefit we can actually expect
* Patch Tracking & Backporting
* Backported Uli's fix for insn splitting at -O0 to 4.7
* Started backporting Doko's configury changes for
arm-none-linux-gnueabihf support
* Connect Prep
* Started investigating LRA
* Admin
* Interviewing
== Next Week ==
* Prepare for Connect
* Investigate zero/sign extension
* Investigate LRA
* Investigate Conditional Comparison benefits
* AArch64
* Document processes
== Future ==
* Attend Connect
* HOT/COLD partitioning for PGO:
* Get two current patches accepted upstream
* Post question upstream about register allocation 'mistakes' I am seeing
--
Matthew Gretton-Dann
Linaro Toolchain Working Group
matthew.gretton-dann(a)linaro.org
Hi Ramana,
The attached file is a reference patch to add more dwarf/unwind info
in epilogue. Please help to review.
Without the patch, dwarf check fail for the following cases when
enabling shrink-wrap:
tst ... L1 //simple_return
push ...
...
pop ... //.cfa_offset is not 0
L1:
bx lr //common simple_return
Thanks!
-Zhenqiang
== other ==
* upstream patch review
* target-arm pull request
* reviewed/committed some boot wrapper patches from Tixy to init the CCI
* rebased various qemu kvm-related patches on current upstream master,
sent out RFC v2 for review (matching kernel -v12 patches); this is
getting some useful review feedback
* added check for 'does KVM support vfp-d32' rather than just
assuming it on the QEMU side
* discussed API for userspace to tell KVM the base address of the
VGIC with Avi, Christoffer [todo: write QEMU patches to go with
C's proposed kernel patches]
KVM blueprint progress tracker:
http://ex.seabright.co.nz/helpers/backlog?group_by=topic&colour_by=state&pr…
-- PMM
Summary:
* Test shrink-wrap.
* Identify the root cause of dwarf check fail when enabling shrink-wrap.
Details:
1. Test shrink-wrap on PandaBoard with Precise
* Bootstrap is OK
* No make check regression
* No performance change for SPEC2000 INT.
2. Identify the root case for dwarf check fail on ARM, while they are
OK on X86 and MIPS when enabling shrink-wrap.
* "push" related INSNs are set as RTX_FRAME_RELATED_P in prologue; but
not all "pop" related INSNs are set as RTX_FRAME_RELATED_P.
* Prologue uses REG_FRAME_RELATED_EXPR notes to tell the dwarf backend
SP is adjusted; but no such kind of notes in epilogue.
* In addition, dwarf info for INSNs to adjust SP are not handled
correctly in epilogue.
Plans:
* Verify shrink-wrap related bugs
* Prepare Linaro binary toolchain 2012.10 release
Best regards!
-Zhenqiang
The Linaro Toolchain Working Group is pleased to announce the 2012.10
release of both Linaro GCC 4.7 and Linaro GCC 4.6.
Linaro GCC 4.7 2012.10 is the seventh release in the 4.7 series. Based
off the latest GCC 4.7.2+svn191881 release, it includes ARM-focused
performance improvements and bug fixes.
Interesting changes include:
* Updates to GCC 4.7.2+svn191881
* Backport changes to use VLD1 for Neon quad loads.
Fixes:
* LP 1053348: Missing binary files
Linaro GCC 4.6 2012.10 is the twentieth release in the 4.6 series.
Based off the latest GCC 4.6.3+svn191880 release, this is the seventh
release after entering maintenance.
Interesting changes include:
* Updates to 4.6.3+svn191880
* A fix to LP #1029454
The source tarballs are available from:
https://launchpad.net/gcc-linaro/+milestone/4.7-2012.10https://launchpad.net/gcc-linaro/+milestone/4.6-2012.10
Downloads are available from the Linaro GCC page on Launchpad:
https://launchpad.net/gcc-linaro
More information on the features and issues are available from the
release pages:
https://launchpad.net/gcc-linaro/4.7/4.7-2012.10https://launchpad.net/gcc-linaro/4.6/4.6-2012.10
Mailing list: http://lists.linaro.org/mailman/listinfo/linaro-toolchain
Bugs: https://bugs.launchpad.net/gcc-linaro/
Questions? https://ask.linaro.org/
Interested in commercial support? Inquire at support(a)linaro.org
--
Matthew Gretton-Dann
Linaro Toolchain Working Group
matthew.gretton-dann(a)linaro.org
== Progress ==
* Completed Linaro ramp up process.
* Obtained my SSH security exception
* Crosstool-ng :
- Repoduced the aarch64 builds (bare and linux)
- Updated gcc to Linaro 2012.10 and submitted the merge request.
* Cbuild autobuilder :
- Not able to spawn a job on seabright (lack of permission)
== Misc ==
* One day off.
== Progress ==
* builtin_bswap16:
* Backported missing patch from thunk to Linaro/4.7. One test still
failing in the hard-float + thumb configuration because it forces
armv6 and results in a unsupported configuration: vfp-1 + hard-float.
Resumed discussion about a fix I proposed 3 weeks ago.
* PGO/hot-cold partitioning/Spec2k:
* read doc about spec2k
* started looking at 254.gap causing an ICE.
* started studying qemu traces about 175.vpr crashing when compiled
using profiling info. Cold code returns from a function using a
clobbered lr value.
== Next ==
* builtin_bswap16:
* complete backport to linaro-gcc 4.7.
* PGO/hot-cold partitioning/Spec2k:
* investigate compiler crash and runtime failures.
== Progress ==
* Deputising for Michael
* 4.6 and 4.7 2012.10 releases
* Included extra AArch64 merge into gcc-lianro/4.7
* AArch64 support
* Did another merge
* Starting another one.
* HOT/COLD partitioning for PGO
* PINGed If/Then/Else block conversion patch
* Started reworking postreload-gcse.c patch
* Ran into issues with vanilla gcc-linaro/4.7 not being able to
build for 'arm-none-linux-gnueabihf' without some configury magic
* Admin
* Interviewing
== Next Week ==
* Do another AArch64 merge.
* HOT/COLD partitioning for PGO:
* Get two current patches accepted upstream
* Post question upstream about register allocation 'mistakes' I am seeing
* symbol_ref splitting
* Test code alignment hypothesis
* Test v2 patch.
== Future ==
* Look at Cards for Vectorization, PGO and LTO with Michael.
--
Matthew Gretton-Dann
Linaro Toolchain Working Group
matthew.gretton-dann(a)linaro.org
Hi Guys,
I just found an issue in kernel code and thought we must have a
compilation warning for such cases.
Submitted a bug here:
https://bugs.launchpad.net/gcc-linaro/+bug/1064218
Problem description:
-------------------------
When we have following declaration:
struct foo {
char array[5];
....
};
And have a definition like:
struct foo foo_abc = {
.array = "12345",
};
Problem here is: size of array is 5 bytes and so we can actually add a
string with four characters only to it, as '\0' will take
an additional space.
But with my definition of foo_abc.. i had 5 characters + '\0'... that
will make it 6 and that will overflow the array..
What will actually happen here?
- compiler will not add '\0' at all?
-or it will go outside of boundaries of array?
--
viresh
On 5 October 2012 12:10, Rob Herring <robherring2(a)gmail.com> wrote:
> I've been scratching my head with a "scheduling while atomic" bug I
> started seeing on 3.6. I can easily reproduce this problem when doing a
> wget on my system. It ultimately seems to be a combination of factors.
> The "scheduling while atomic" bug is triggered in do_alignment which
> gets triggered by this code in net/ipv4/af_inet.c, line 1356:
>
> id = ntohl(*(__be32 *)&iph->id);
> flush = (u16)((ntohl(*(__be32 *)iph) ^ skb_gro_len(skb)) | (id ^ IP_DF));
> id >>= 16;
>
> This code compiles into this using "gcc version 4.6.3 (Ubuntu/Linaro
> 4.6.3-1ubuntu5)":
>
> c02ac020: e8920840 ldm r2, {r6, fp}
> c02ac024: e6bfbf3b rev fp, fp
> c02ac028: e6bf6f36 rev r6, r6
> c02ac02c: e22bc901 eor ip, fp, #16384 ; 0x4000
> c02ac030: e0266008 eor r6, r6, r8
> c02ac034: e18c6006 orr r6, ip, r6
>
> which generates alignment faults on the ldm. These are silent until this
> commit is applied:
Hi Rob. I assume that iph is something like:
struct foo {
u32 x;
char id[8];
};
struct foo *iph;
GCC merged the two adjacent loads of x and id into one ldm. This is
an ARM specific optimisation done in load_multiple_sequence() and
enabled with -fpeephole2.
I think the assembly is correct - GCC knows that iph is aligned and
knows the offsets of both x and id. Happy to be corrected if I'm
wrong, but I think the assembly is valid given the C code.
-- Michael
== Progress ==
* builtin_bswap16:
* backporting of builtin_bswap16 for ARM to Linaro/4.7: one of the
tests fails. Waiting for Ramana's return to see if he can help me
identify the patch needed from trunk.
* Useless zero extensions: despite Ulrich support I didn't succeed
to rewrite the bswap16 pattern in a way that would avoid
generating useless zero extension. Asking for help on gcc list
shows that it would actually need a complete new optimization
pass, which has already been discussed several times.
* PGO/hot-cold partitioning/Spec2k:
* looking at spec2k build & run system
* Branch reviews: approved Matt's october merges for Linaro-gcc 4.6 and 4.7.
Briefly looked at aarch64-4.7 merge request.
== Next ==
* builtin_bswap16:
* try to complete backport to linaro-gcc 4.7.
* PGO/hot-cold partitioning/Spec2k:
* investigate compiler crash and runtime failures.
* setup Snowball
== Progress ==
* Started Linaro ramp up process.
* Started to look at Crosstool-ng and CBuild
* Fighting against proxy and bazaar configuration
== Next Week ==
* Continue the started tasks.
== Progress ==
* 4.6 and 4.7 start of month merges
* Fixed missing binary files issues whilst doing this.
* 4.7 AArch64 merge into gcc-linaro/4.7
* Completed initial merge
* Admin
* Interviewing
== Next Week ==
* Deputise for Michael
* Do GCC-Linaro releases
* Fix up any issues with aarch64 merge.
* HOT/COLD partitioning for PGO:
* Get two current patches accepted upstream
* Post question upstream about register allocation 'mistakes' I am seeing
* symbol_ref splitting
* Test code alignment hypothesis
* Test v2 patch.
== Future ==
* Look at Cards for Vectorization, PGO and LTO with Michael.
--
Matthew Gretton-Dann
Linaro Toolchain Working Group
matthew.gretton-dann(a)linaro.org
Adding linaro-toolchain
On Tue, Oct 02, 2012, Khem Raj wrote:
> On Tue, Oct 2, 2012 at 4:59 PM, Tim Bird <tim.bird(a)am.sony.com> wrote:
> > When I try to build the Linux kernel version 3.6 with the gcc-4.7
> > nightly build Linaro toolchains,
>
> linaro binutils needs to back port
>
> http://sourceware.org/git/?p=binutils.git;a=commit;h=3fd1fadc205bc69410080a…
>
> >
> > $ arm-eabi-gcc --version
> > arm-eabi-gcc (Linaro GCC 4.7-2012.09-1~dev) 4.7.2 20120910 (prerelease)
> > $ arm-eabi-as --version
> > GNU assembler (Linux/GNU Binutils) 2.23.51.0.3.20120918
> >
> > I get a compiler error (actually, assembler error):
> >
> > AS arch/arm/lib/copy_from_user.o
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S: Assembler messages:
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:100: Error: selected processor does not support ARM mode `ldralt r3,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:100: Error: selected processor does not support ARM mode `ldralt r4,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:100: Error: selected processor does not support ARM mode `ldralt r5,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:100: Error: selected processor does not support ARM mode `ldralt r6,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:100: Error: selected processor does not support ARM mode `ldralt r7,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:100: Error: selected processor does not support ARM mode `ldralt r8,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:100: Error: selected processor does not support ARM mode `ldralt ip,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:100: Error: selected processor does not support ARM mode `ldralt lr,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:118: Error: selected processor does not support ARM mode `ldralt r3,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:119: Error: selected processor does not support ARM mode `ldralt r4,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:120: Error: selected processor does not support ARM mode `ldralt r5,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:121: Error: selected processor does not support ARM mode `ldralt r6,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:122: Error: selected processor does not support ARM mode `ldralt r7,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:123: Error: selected processor does not support ARM mode `ldralt r8,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:124: Error: selected processor does not support ARM mode `ldralt lr,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:173: Error: selected processor does not support ARM mode `ldralt lr,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:243: Error: selected processor does not support ARM mode `ldralt r4,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:243: Error: selected processor does not support ARM mode `ldralt r5,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:243: Error: selected processor does not support ARM mode `ldralt r6,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:243: Error: selected processor does not support ARM mode `ldralt r7,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:243: Error: selected processor does not support ARM mode `ldralt r8,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:243: Error: selected processor does not support ARM mode `ldralt r9,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:243: Error: selected processor does not support ARM mode `ldralt ip,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:243: Error: selected processor does not support ARM mode `ldralt lr,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:243: Error: selected processor does not support ARM mode `ldralt lr,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:245: Error: selected processor does not support ARM mode `ldralt r4,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:245: Error: selected processor does not support ARM mode `ldralt r5,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:245: Error: selected processor does not support ARM mode `ldralt r6,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:245: Error: selected processor does not support ARM mode `ldralt r7,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:245: Error: selected processor does not support ARM mode `ldralt r8,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:245: Error: selected processor does not support ARM mode `ldralt r9,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:245: Error: selected processor does not support ARM mode `ldralt ip,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:245: Error: selected processor does not support ARM mode `ldralt lr,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:245: Error: selected processor does not support ARM mode `ldralt lr,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:247: Error: selected processor does not support ARM mode `ldralt r4,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:247: Error: selected processor does not support ARM mode `ldralt r5,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:247: Error: selected processor does not support ARM mode `ldralt r6,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:247: Error: selected processor does not support ARM mode `ldralt r7,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:247: Error: selected processor does not support ARM mode `ldralt r8,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:247: Error: selected processor does not support ARM mode `ldralt r9,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:247: Error: selected processor does not support ARM mode `ldralt ip,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:247: Error: selected processor does not support ARM mode `ldralt lr,[r1],#4'
> > /a/home/tbird/work/auto-reduce/lto-test/linux-3/arch/arm/lib/copy_template.S:247: Error: selected processor does not support ARM mode `ldralt lr,[r1],#4'
> > make[2]: *** [arch/arm/lib/copy_from_user.o] Error 1
> > make[1]: *** [arch/arm/lib] Error 2
> > make[1]: *** Waiting for unfinished jobs....
> >
> >
> > This appears to be related to the following bug report for binutils:
> > http://sourceware.org/ml/binutils/2012-09/msg00128.html
> >
> > I'm compiling the kernel for PandaBoard
> >
> > Any ideas for work-arounds or fixes for this? Note that the ldralt instruction
> > doesn't actually appear in copy_template.S (maybe it's coming from a macro?)
> > -- Tim
> >
> > =============================
> > Tim Bird
> > Architecture Group Chair, CE Workgroup of the Linux Foundation
> > Senior Staff Engineer, Sony Network Entertainment
> > =============================
>
> _______________________________________________
> linaro-dev mailing list
> linaro-dev(a)lists.linaro.org
> http://lists.linaro.org/mailman/listinfo/linaro-dev
--
Loïc Minier
== GCC ==
* Implemented patch to prevent lower-subreg pass from splitting
pseudo register moves during first pass. Committed to mainline.
* Updated patch to perform 64-bit integer shifts in NEON registers
to avoid NEON single to NEON double register hazard. Re-started
testing via Launchpad branch neon-shifts-4.7-v3.
* Rebased patch to improve 32-to-64-bit extended from core into
NEON registers, added backport of lower-subreg mainline fix.
New Launchpad branch neon-extendsidi-4.7-v3.
* Tested reload patch to fix aarch64 find_reloads_subreg_address
bug on multiple platforms to prepare for mainline.
Mit freundlichen Gruessen / Best Regards
Ulrich Weigand
--
Dr. Ulrich Weigand | Phone: +49-7031/16-3727
STSM, GNU compiler and toolchain for Linux on System z and Cell/B.E.
IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Martin Jetter | Geschäftsführung: Dirk
Wittkopp
Sitz der Gesellschaft: Böblingen | Registergericht: Amtsgericht
Stuttgart, HRB 243294
== Progress ==
* builtin_bswap16:
* patch to catch (x<<8)|<x>>8) committed upstream after confirmation
it was OK by PowerPC guys.
* backporting of builtin_bswap16 for ARM to Linaro/4.7: one of the
tests fails. Trying to isolate the trunk change that would make is
pass.
* useful discussions with Ulrich to investigate if we could avoid
generating useless zero-extensions after rev16. I still need to
experiment.
* PGO/hot-cold partitioning:
* applied info from Matt, I have now a usable Spec2000 setup based
on qemu.
== Next ==
* builtin_bswap16:
* try to avoid useless zero-extensions.
* PGO/hot-cold partitioning:
* investigate runtime failures.
* run on a Snowball board.
== Progress ==
* 4.7 AArch64 merge into gcc-linaro/4.7
* Got Foundation model working
* Ran testsuite - results OK - some obvious infrastructure issues though
* Hot/Cold partitioning in PGO:
* Posted second patch upstream
* Had basic flaw with it pointed out (shame was the flaw fixed the issue)
* Admin
* Interviewing
== Next Week ==
* Start of month branch merges.
* HOT/COLD partitioning for PGO:
* Get two current patches accepted upstream
* Post question upstream about register allocation 'mistakes' I am seeing
* ARM/aarch64-4.7-branch merge into gcc-linaro/4.7.
* Investigate failure in testsuite run
* Check that I am merging the svn branches correctly.
* Participate in sprint
* symbol_ref splitting
* Test code alignment hypothesis
* Test v2 patch.
== Future ==
* Look at Cards for Vectorization, PGO and LTO with Michael.
--
Matthew Gretton-Dann
Linaro Toolchain Working Group
matthew.gretton-dann(a)linaro.org
(two week rollup report since week 38 was a short week for me)
Current Milestones:
|| || Planned || Estimate || Actual ||
|| clean up kvm-qemu cp i/f || 2012-09-20 || 2012-09-20 || ||
|| fake-trustzone || 2012-10-15 || 2012-10-15 || ||
Also planned: general keeping up with kernel changes; upstream patch
review; qemu-linaro releases. May change dates to align with overall
KVM plan for the quarter when that is finalised.
Previous Milestones:
||cp15-rework || 2012-01-06 || 2012-06-23 || 2012-06-24 ||
||a15-lpae-support || 2012-07-13 || 2012-07-20 || 2012-07-20 ||
== other ==
* looked briefly at the result of running the clang static analyzer
over QEMU
* wrote some fixes to totally broken code in the ds1338 model as
result
* reviewed some nice TCG optimisation patches from Aurelien which bump
up performance for ARM guests by 10-15%
* reviewed, bugfixed and committed some patches for the bootwrapper
from Dave Martin
* removed obsolete SMC API support from bootwrapper (lets us knock
the final item off a blueprint)
* implemented the new movcond TCG IR insn in the ARM backend
KVM blueprint progress tracker:
http://ex.seabright.co.nz/helpers/backlog?group_by=topic&colour_by=state&pr…
-- PMM
Summary:
* Validate and release Linaro binary toolchain 2012.09
* Identify the root cause of dwarf check fail in native build when
enabling shrink-wrap.
Details:
1. Validate and release Linaro binary toolchain 2012.09.
2. Analyze the dwarf check fail in native build when enabling shrink-wrap:
* Root cause: tail calls from simple-return path and normal return
path are optimized as one common tail call.
* To fix it, use simple-return to indicate the one from simple-return
path, which will block the optimization to mix them.
Plans:
* Test shrink-wrap performance.
Planed leaves:
* Sept. 30 - Oct. 7: Mid-Autumn Festival and National Day of China's holiday.
Best regards!
-Zhenqiang
Hi,
I am using Linaro Toolchain for compiling UEFI and I am getting alignment
fault as exception while running UEFI on Origen Board.
When I was using other cross compilers the issue was not there.
The crash report is as follows:
Data Abort Exception PC at 0x4F84DCDC CPSR 0x60000133 nZCveAifT_svc
/home/shiva/workspace/armserver/uefi_origen/edk2/Build/OrigenBoard-Exynos/DEBUG_ARMLINUXGCC/ARM/FatPkg/EnhancedFatDxe/Fat/DEBUG/Fat.dll
loaded at 0x4F84D000 (PE/COFF offset) 0xCDC (ELF or Mach-O offset) 0xA9C
0xF8BD6037 LDRH r6, [sp, #0x37]
R0 0x0000000B R1 0x0000000A R2 0x4FCEEAD8 R3 0x80000000
R4 0x4F836010 R5 0x4F863619 R6 0x00000000 R7 0x4F837F10
R8 0xFFFFFFFF R9 0x00000000 R10 0x00000001 R11 0x00000000
R12 0x00000000 SP 0x4FCEEA20 LR 0x4F84DCDD PC 0x4F84DCDC
DFSR 0x00000001 DFAR 0x4FCEEB17 IFSR 0x0000140B IFAR 0x00910883
Alignment fault: read from 0x4FCEEB17
Instruction Domain fault on Page at 0x00910883
ASSERT
/home/shiva/workspace/armserver/uefi_origen/edk2/ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandler.c(304):
((BOOLEAN)(0==1))
--
Thanks and Regards,
Shiva.
Interested in working with us on improving the performance of Linux on
ARM? We’re looking for motivated engineers to work in our toolchain
team on compiler technology, developer tools, and low level
performance libraries. You will use your specialised knowledge to work
in the open, work upstream, and make ARM flavoured improvements to a
range of tools that are fundamental to making the latest mobile and
server products.
We’re currently looking for:
* GCC developers
* Developer tools engineers, especially on the GNU tools like binutils and GDB
* ARM performance engineers, to work on a range of low level libraries
We’re a distributed team. Working from the home office is an option.
Please see the careers page on our website for more information and
how to contact us.
-- Michael
== GCC ==
* Committed patch to use vld1.64/vst1.64 instead of vldm/vstm
to GCC mainline and Linaro GCC 4.7
* Committed patch to use vld1/vst1 to implement vec_set/vec_extract
to GCC mainline and Linaro GCC 4.7
* Posted patch to perform 64-bit integer shifts in NEON registers
for mainline inclusion. Started to address review comments.
* Rebased patch to improve 32-to-64-bit extends from core
into NEON registers; ran into lower-subreg regression.
* Worked on implementing fix for lower-subreg regression.
* Handed over (Richard's) auto-inc-dec patches to Matt.
Mit freundlichen Gruessen / Best Regards
Ulrich Weigand
--
Dr. Ulrich Weigand | Phone: +49-7031/16-3727
STSM, GNU compiler and toolchain for Linux on System z and Cell/B.E.
IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Martin Jetter | Geschäftsführung: Dirk
Wittkopp
Sitz der Gesellschaft: Böblingen | Registergericht: Amtsgericht
Stuttgart, HRB 243294
The Linaro Toolchain Working Group is pleased to announce the 2012.09
release of the Linaro Toolchain Binaries, a pre-built version of
Linaro GCC and Linaro GDB that runs on generic Linux or Windows and
targets the glibc Linaro Evaluation Build.
Uses include:
* Cross compiling ARM applications from your laptop
* Remote debugging
* Build the Linux kernel for your board
What's included:
* Linaro GCC 4.7 2012.09
* Linaro GDB 7.5 2012.09
* A statically linked gdbserver
* A system root
* Manuals under share/doc/
The system root contains the basic header files and libraries to link
your programs against.
Interesting changes include:
* gdbserver is stripped.
* gdbtui is replaced by "gdb --tui"
The Linux version is supported on Ubuntu 10.04.3 and 12.04, Debian
6.0.2, Fedora 16, openSUSE 12.1, Red Hat Enterprise Linux Workstation
5.7 and later, and should run on any Linux Standard Base 3.0
compatible distribution. Please see the README about running on
x86_64 hosts.
The Windows version is supported on Windows XP Pro SP3, Windows Vista
Business SP2, and Windows 7 Pro SP1.
The binaries and build scripts are available from:
https://launchpad.net/linaro-toolchain-binaries/trunk/2012.09
Need help? Ask a question on https://ask.linaro.org/
Already on Launchpad? Submit a bug at
https://bugs.launchpad.net/linaro-toolchain-binaries
On IRC? See us on #linaro on Freenode.
Other ways that you can contact us or get involved are listed at
https://wiki.linaro.org/GettingInvolved.
Summary
* Prepare Linaro binary toolchain 2012.09 release
* Fix lp:1036170/pr50970
Details:
1. Prepare Linaro binary toolchain 2012.09 release
* Update linaro gcc and gdb to 2012.09 release
* Workaround gdb lsb build issue.
* Strip gdbserver.
* Smoke tests.
2. Merge shrink-wrap patch to lp:gcc for cbuild test. But dwarf checks
fail when building fortan related codes at stage 2.
3. Identify the root cause of lp:1036170/pr50970 and work out a patch to fix it.
Plans:
* Linaro binary toolchain 2012.09 release.
* Fix shrink-wrap build fail issues.
Planed leaves:
* Sept. 30 - Oct. 7: Mid-Autumn Festival and National Day of China's holiday.
Best regards!
-Zhenqiang
== Progress ==
* Discussed big-endian patches for vext tests: careful review of the
specification is required and this patch might actually expose GCC
bugs in big-endian/Neon.
* builtin_bswap16:
* Posted 2 implementations of the generic patch for
(x<<8)|(x>>8). The 2nd one looks OK, but I was asked to make some
checks on powerPC, which are on-going.
* backporting it to Linaro/4.7. On-going: merged obvious patches but
one test does not produce the same code as on trunk.
* validations in cbuild in with GCC configured for thumb and hard FP
showed that some bswap16 tests fail because they force armv6,
which leads to unsupported thumb1 configuration. Proposed
testsuite modification to make this easier, under discussion with
Matt & Richard.
== Next ==
* builtin_bswap16:
* check powerPC results and have the patch accepted upstream.
* measure probable regression in libav when using the builtin
instead of an asm().
* complete backport in Linaro/4.7.
* PGO/hot-cold partitioning: start working on this blueprint.
== Progress ==
* Fixed
https://bugs.launchpad.net/ubuntu/+source/gcc-4.6/+bug/1029454
* After investigating further found that this was actually an issue
already fixed in FSF upstream
* 4.7 AArch64 merge into gcc-linaro/4.7
* Did an initial merge of upstream ARM/aarch64-4.7-branch into gcc-linaro/4.7
* So far it hasn't broken other platforms
* Investigated getting FastModels working for me
* Hot/Cold partitioning in PGO:
* Tidied up current patches ready for reposting upstream
* Handed current status to Christophe
== Next Week ==
* HOT/COLD partitioning for PGO:
* Complete hand-over to Christophe
* Get two current patches accepted upstream
* Post question upstream about register allocation 'mistakes' I am seeing
* ARM/aarch64-4.7-branch merge into gcc-linaro/4.7.
* Get a test run of aarch64 targetted compiler complete
* Confirm no code generation changes for other back-ends
* symbol_ref splitting
* Test code alignment hypothesis
* Test v2 patch.
* Admin
* Several interviews
== Future ==
* Look at Cards for Vectorization, PGO and LTO with Michael.
--
Matthew Gretton-Dann
Linaro Toolchain Working Group
matthew.gretton-dann(a)linaro.org
Current Milestones:
|| || Planned || Estimate || Actual ||
|| clean up kvm-qemu cp i/f || 2012-09-20 || 2012-09-20 || ||
|| fake-trustzone || 2012-10-15 || 2012-10-15 || ||
Also planned: general keeping up with kernel changes; upstream patch
review; qemu-linaro releases. May change dates to align with overall
KVM plan for the quarter when that is finalised.
Previous Milestones:
||cp15-rework || 2012-01-06 || 2012-06-23 || 2012-06-24 ||
||a15-lpae-support || 2012-07-13 || 2012-07-20 || 2012-07-20 ||
== track-kvm-abi-changes ==
* folded in Christoffer's interrupt ABI changes
* updated to new ONE_REG ABI for register accesses
* QEMU now in sync with the kernel patchset Christoffer has just sent to alkml
== other ==
* qemu-linaro 2012.09 released
* various meetings/status calls
KVM blueprint progress tracker:
http://ex.seabright.co.nz/helpers/backlog?group_by=topic&colour_by=state&pr…
Summary
* Workaround the unwind issue for shrink-wrap
* Verify Linaro tickets.
Details:
1. Debugging the failed cases for shrink-wrap. To workaround the
unwind issue, update arm_expand_epilogue to generate return not
simple_return when sp is changed.
2. Setup Linaro toolchain and verify 8 tickets:
*Linaro gcc:
lp:1036170: Function pointer dereferenced twice. It is ARM special bug
which is confirmed in 4.6, 4.7 and FSF trunk only on ARM.
lp:1048709: wrong assembler, out of range vldr instruction. Confirmed
in Linaro 4.6. Can not reproduce it in 4.7 or FSF 4.6.
lp:1014658: It is c++11 related issue in 4.6.
lp:944572: It is a gcc general issue.
lp:972503 and lp:1039401 can not be reproduced.
* Linaro binary toolchain:
lp:1046718: confirmed and fixed it.
lP:1049498: invalid
Plans:
* Prepare Linaro binary toolchain 2012.09 release.
* Performance test for shrink-wrap.
* Follow-up the tickets.
Best regards!
-Zhenqiang
== Progress ==
* Committed patch to fix 3 testcases in big-endian after upstream comments.
* Updated patch to make vext tests support big-endian after upstream comments.
* builtin_bswap16:
* Committed implementation for ARM.
* Investigating testsuite regressions caused by my patch to catch
(x<<8)|(x>>8)
== Next ==
* Continue with bswap16 support.
== Progress ==
* Started looking at
https://bugs.launchpad.net/ubuntu/+source/gcc-4.6/+bug/1029454
* Confirmed the failure
* Unfortunately the git bisect I thought would find the fix didn't
* Hot/Cold partitioning in PGO:
* Some further investigations
* Talked to Uli about one failure - he gave me some further pointers
* Admin
* Some interviewing
== Next Week ==
* Continue looking at 1029454: cselim tree optimizer generates incorrect code
* Start looking at merging the ARM public 4.7 GCC branch into gcc-linaro/4.7
* Hot/Cold Partitioning:
* Investigate remaining silent code-gen faults and non-termination
issue in SPEC
* If failures are fixed start profiledbootstraps and tests on the
central boards.
* symbol_ref splitting
* Test code alignment hypothesis
* Test v2 patch.
== Future ==
* Look at Cards for Vectorization, PGO and LTO with Michael.
--
Matthew Gretton-Dann
Linaro Toolchain Working Group
matthew.gretton-dann(a)linaro.org
== GDB ==
* Created and published Linaro GDB 7.5 release.
== GCC ==
* Posted patch to use vld1.64/vst1.64 instead of vldm/vstm
for mainline inclusion.
* Posted patch to use vld1/vst1 to implement vec_set/vec_extract
with scalar operand residing in memory.
Mit freundlichen Gruessen / Best Regards
Ulrich Weigand
--
Dr. Ulrich Weigand | Phone: +49-7031/16-3727
STSM, GNU compiler and toolchain for Linux on System z and Cell/B.E.
IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Martin Jetter | Geschäftsführung: Dirk
Wittkopp
Sitz der Gesellschaft: Böblingen | Registergericht: Amtsgericht
Stuttgart, HRB 243294